Metodo IPerChannelDbLevel::SetLevel (devicetopology.h)

Il metodo SetLevel imposta il livello del volume, in decibel, del canale specificato.

Sintassi

HRESULT SetLevel(
  [in] UINT    nChannel,
  [in] float   fLevelDB,
  [in] LPCGUID pguidEventContext
);

Parametri

[in] nChannel

Numero del canale selezionato. Se il flusso audio ha canali N , i canali vengono numerati da 0 a N- 1. Per ottenere il numero di canali nel flusso, chiamare il metodo IPerChannelDbLevel::GetChannelCount .

[in] fLevelDB

Nuovo livello di volume in decibel. Un valore positivo rappresenta il guadagno e un valore negativo rappresenta l'attenuazione.

[in] pguidEventContext

Valore di contesto per il metodo IControlChangeNotify::OnNotify . Questo parametro punta a un GUID di contesto evento. Se la chiamata SetLevel 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
E_INVALIDARG
Il parametro nChannel non è compreso nell'intervallo.
E_OUTOFMEMORY
Memoria insufficiente.

Commenti

Se il chiamante specifica un valore per fLevelDB che è un valore di passaggio esatto, il metodo SetLevel viene completato correttamente. Una chiamata successiva al metodo IPerChannelDbLevel::GetLevel restituirà il valore impostato o uno dei valori seguenti:

  • Se il valore impostato è inferiore al minimo, il metodo GetLevel restituisce il valore minimo.
  • Se il valore impostato è superiore al massimo, il metodo GetLevel restituisce il valore massimo.
  • Se il valore impostato è stato compreso tra due valori di passaggio, il metodo GetLevel restituisce un valore che potrebbe essere il valore di passaggio successivo sopra o il valore di passaggio inferiore al valore impostato; le distanze relative dal valore impostato ai valori di esecuzione adiacenti non sono importanti. Il valore restituito dal metodo GetLevel è il valore che ha un impatto maggiore sul percorso del segnale.

Requisiti

Requisito Valore
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

IPerChannelDbLevel::GetChannelCount

IPerChannelDbLevel::GetLevel

IPerChannelDbLevel::GetLevelRange