Problemy se vstupem PCM2900
Miroslav Šinko
sinkomiro na gmail.com
Čtvrtek Září 29 22:24:37 CEST 2011
2011/9/29 Pavel Hudeček <edizon na seznam.cz>:
> Tlačítko "Hlasitost..." je při vybrané USB zvukovce šedivé.
>
> PH
Toto je vcelku zujimave, clovek sa stale uci. Je pravda, ze to
neodporuje hierarchii, ktoru som kedysi nastudoval a aj implementoval.
2011/9/29 Jan Waclawek <konfera na efton.sk>:
>Ja som sa stretol skor s tym, ze ziadny program vratane utilit a defaultnych driverov OS nevie poriadne s inymi nez trivialnymi zvukovkami (natozto USB) robit. [tu som zmazal niekolko odstavcov podrobne rozoberajucich tuto premisu]
>wek
Pekne :-)
Kukam tie svoje zdrojaky, ktore enumeruju "zvukove" zariadenia. Nejdem
tu pastovat cely kod, len par fragmentov:
Celkom hore su "mixery", t.j output a input zariadenia pre vsetky
zvukovky rovnocenne.
Pocet: numMixers = mixerGetNumDevs()
Pod nimi su tzv. destination zariadenia:
if(mixerGetDevCaps((UINT)hmx, &mxCaps, sizeof(mxCaps)) == MMSYSERR_NOERROR)
{
for(i=0; i < (int)mxCaps.cDestinations; i++)
{
mxLine.dwDestination = i;
mixerGetLineInfo((HMIXEROBJ)hmx, &mxLine, MIXER_GETLINEINFOF_DESTINATION)
...
Tu je z mojej skusenosti zaujimave, ze starsie onboard zvukovky mali
na tejto urovni povedzme pre output: master volume a vsetky zariadenia
CD, wave, MIDI, atd...
Novsie zvukovky maju na tejto urovni iba master a nic viac. Starsimi
myslim dosky pre PII, PIII, Athlon XP (skusane). Novsimi dosky pre
Athlon X2 (patica AM2).
Pod nimi, ale iba pre pripad, ze je to master na novsich zvukovkach,
su tzv. source zariadenia:
if(mixerGetLineInfo((HMIXEROBJ)hmx, &mxLine,
MIXER_GETLINEINFOF_DESTINATION) == MMSYSERR_NOERROR)
{
cConnections = mxLine.cConnections;
for(i=0; i < cConnections; i++)
{
mxLine.cbStruct = sizeof(mxLine);
mxLine.dwDestination = dstId;
mxLine.dwSource = i;
mixerGetLineInfo((HMIXEROBJ)hmx, &mxLine,
MIXER_GETLINEINFOF_SOURCE);
To su opat zariadenia CD, wave, atd
Kazde destination, aj source moze mat vlastnosti volume, mute apod:
mxlc.dwControlType = MIXERCONTROL_CONTROLTYPE_VOLUME;
mxlc.cControls = 1;
mxlc.cbmxctrl = sizeof(MIXERCONTROL);
mxlc.pamxctrl = &mxc;
if(mixerGetLineControls((HMIXEROBJ)hmx, &mxlc,
MIXER_OBJECTF_HMIXER|MIXER_GETLINECONTROLSF_ONEBYTYPE) ==
MMSYSERR_NOERROR)
Takze starsie zvukovky mali vsetko, co vidno v mixeri, od mastra po
posledne zriadenie, na urovni "destination". Novsie zvukovky maju
master volume/mute so svojim hejblatkom na urovni "destination" a
vsetko zvysne na urovni "source". Windows (testovane od W2000) sa s
tym vie vysporiadat. No niektore starsie programy, ktore enumerovali
len vrstvu "destination", vidia na novych zvukovkach len master
volume/mute, ale hejblatka zariadeni na urovni "source" uz nie...
miro
Další informace o konferenci Hw-list