Metodo IPerChannelDbLevel::SetLevelAllChannels (devicetopology.h)
Il metodo SetLevelAllChannels imposta i livelli di volume, in decibel, di tutti i canali nel flusso audio.
Sintassi
HRESULT SetLevelAllChannels(
[in] float [] aLevelsDB,
[in] ULONG cChannels,
[in] LPCGUID pguidEventContext
);
Parametri
[in] aLevelsDB
Puntatore a una matrice di livelli di volume. Questo parametro punta a una matrice float allocata dal chiamante in cui il metodo scrive i nuovi livelli di volume, in decibel, per tutti i canali. Il metodo scrive il livello per un determinato canale nell'elemento matrice il cui indice corrisponde al numero di canale. Se il flusso audio contiene n canali, i canali vengono numerati da 0 a n- 1. Per ottenere il numero di canali nel flusso, chiamare il metodo IPerChannelDbLevel::GetChannelCount .
[in] cChannels
Numero di elementi nella matrice aLevelsDB . Se questo parametro non corrisponde al numero di canali nel flusso audio, il metodo non riesce senza modificare la matrice aLevelsDB .
[in] pguidEventContext
Valore di contesto per il metodo IControlChangeNotify::OnNotify . Questo parametro punta a un GUID di contesto evento. Se la chiamata SetLevelAllChannels modifica lo stato del controllo a livello, tutti i client che hanno registrato interfacce IControlChangeNotify con tale controllo ricevono notifiche. Nell'implementazione del metodo OnNotify , un client può esaminare il GUID del contesto evento per individuare se è l'origine dell'evento control-change o di un altro client. Se il chiamante fornisce un puntatore NULL per questo parametro, il metodo di notifica del client riceve un puntatore di contesto NULL .
Valore restituito
Se il metodo ha esito positivo, viene restituito S_OK. Se ha esito negativo, i codici restituiti possibili includono, ma non sono limitati a, i valori visualizzati nella tabella seguente.
Codice restituito | Descrizione |
---|---|
|
Parametro cChannels non è uguale al numero di canali. |
|
Puntatore aLevelsDB è NULL. |
|
Memoria insufficiente. |
Commenti
Se il valore di livello specificato per qualsiasi canale supera l'intervallo segnalato dal metodo IPerChannelDbLevel::GetLevelRange per tale canale, la chiamata SetLevelAllChannels blocca il valore all'intervallo supportato e completa correttamente. Una chiamata successiva al metodo IPerChannelDbLevel::GetLevel recupera il valore effettivo usato per tale canale.
Requisiti
Client minimo supportato | Windows Vista [solo app desktop] |
Server minimo supportato | Windows Server 2008 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | devicetopology.h |
Vedi anche
Interfaccia IPerChannelDbLevel