📄 pe_iconfig.cpp
字号:
}
pStrmCtrl = ((PEHANDLE *)handle)->iStreamCtrl;
// AudioMixer - GetGain
*level = g_audioMixerGain;
return (status);
}
/**
* Sets the audio DACs level.
*
* @param handle - iConfigure handle
* @param input - specifies the audio input type
* @param level - the audio level
*
* @return PE_STATUS - Error code.
*/
PE_STATUS PEiConfigureAMSetChannelLevel(PE_HANDLE handle, PE_ICONFIGURE_AUDIO_INPUT input,
PE_ICONFIGURE_AUDIO_INTERACTIVE_ID iaudio_id, PE_ICONFIGURE_AUDIO_LEVEL level)
{
PE_STATUS status = PE_SUCCESS;
ISTREAMCTRLHANDLE *pStrmCtrl;
DBGPRINT(DBG_ON(DBG_TRACE), ("PEiConfigureAMSetChannelLevel - STUBBED\n"));
if (handle == NULL)
{
return (PE_INVALID_HANDLE);
}
if (level > PE_AUDIO_LEVEL_MAX)
{
return (PE_INVALID_AUDIO_VOLUME);
}
if (level < PE_AUDIO_LEVEL_MIN)
{
return (PE_INVALID_AUDIO_VOLUME);
}
if (((PEHANDLE *)handle)->iStreamCtrl == NULL)
{
return (PE_INVALID_HANDLE);
}
pStrmCtrl = ((PEHANDLE *)handle)->iStreamCtrl;
status = PE_NOT_IMPLEMENTED;
return (status);
}
/**
* Returns the current analog audio volume.
*
* @param handle - iConfigure handle
* @param input - specifies the audio input type
* @param *level - the audio level
*
* @return PE_STATUS - Error code.
*/
PE_STATUS PEiConfigureAMGetChannelLevel(PE_HANDLE handle, PE_ICONFIGURE_AUDIO_INPUT input,
PE_ICONFIGURE_AUDIO_INTERACTIVE_ID iaudio_id, PE_ICONFIGURE_AUDIO_LEVEL *level)
{
ISTREAMCTRLHANDLE *pStrmCtrl;
PE_STATUS status = PE_SUCCESS;
if (handle == NULL)
{
return (PE_INVALID_HANDLE);
}
if (level == NULL)
{
return (PE_NULL_POINTER);
}
if (((PEHANDLE *)handle)->iStreamCtrl == NULL)
{
return (PE_INVALID_HANDLE);
}
pStrmCtrl = ((PEHANDLE *)handle)->iStreamCtrl;
status = PE_NOT_IMPLEMENTED;
return (status);
}
/**
* Mutes the analog audio volume.
*
* @param handle - iConfigure handle
* @param input - specifies the audio input type
* @param mute - mute on/off
*
* @return PE_STATUS - Error code.
*/
PE_STATUS PEiConfigureAMSetMute(PE_HANDLE handle, PE_ICONFIGURE_AUDIO_INPUT input,
PE_ICONFIGURE_AUDIO_INTERACTIVE_ID iaudio_id, BOOLEAN mute)
{
PE_STATUS status = PE_SUCCESS;
ISTREAMCTRLHANDLE *pStrmCtrl;
DBGPRINT(DBG_ON(DBG_TRACE), ("PEiConfigureAMSetMute\n"));
if (handle == NULL)
{
return (PE_INVALID_HANDLE);
}
if (((PEHANDLE *)handle)->iStreamCtrl == NULL)
{
return (PE_INVALID_HANDLE);
}
pStrmCtrl = ((PEHANDLE *)handle)->iStreamCtrl;
// AudioMixer - SetMute
g_audioMixerMute = mute;
PE_AM_LEVEL_EVENT_INFO event_info;
float flevel = 0.0;
/* if bstream is overall or primary and digital out is compressed, mute it also */
if (((input == PE_AUDIO_INPUT_OVERALL) || (input == PE_AUDIO_INPUT_PRIMARY)) &&
(((PEHANDLE *)handle)->iConfigure->DigitalAudio == AUDIO_CHANNELS_5p1))
{
/* mute SPDIF */
}
/*
* send a level changed event
*/
event_info.mute = mute;
event_info.level = g_audioMixerGain;
peSendEvent(handle, PE_EVENT_AM_LEVEL_CHG, &event_info);
return (status);
}
/**
* Returns the current analog audio volume mute state.
*
* @param handle - iConfigure handle
* @param input - specifies the audio input type
* @param *mute - mute on/off
*
* @return PE_STATUS Error code.
*/
PE_STATUS PEiConfigureAMGetMute(PE_HANDLE handle, PE_ICONFIGURE_AUDIO_INPUT input,
PE_ICONFIGURE_AUDIO_INTERACTIVE_ID iaudio_id, BOOLEAN *isMuted)
{
PE_STATUS status = PE_SUCCESS;
ISTREAMCTRLHANDLE *pStrmCtrl;
if (handle == NULL)
{
return (PE_INVALID_HANDLE);
}
if (isMuted == NULL)
{
return (PE_NULL_POINTER);
}
if (((PEHANDLE *)handle)->iStreamCtrl == NULL)
{
return (PE_INVALID_HANDLE);
}
pStrmCtrl = ((PEHANDLE *)handle)->iStreamCtrl;
BOOLEAN muteState = false;
// AudioMixer - GetMute
muteState = g_audioMixerMute;
*isMuted = (muteState != 0);
return (status);
}
/**
* Gets the audio balance (left to right)
*
* @param handle - iConfigure handle
* @param input - specifies the audio input type
* @param *balance - the audio balance
*
* @return PE_STATUS - Error code.
*/
PE_STATUS PEiConfigureAMGetBalance(PE_HANDLE handle, PE_ICONFIGURE_AUDIO_INPUT input,
PE_ICONFIGURE_AUDIO_INTERACTIVE_ID iaudio_id, PE_ICONFIGURE_AUDIO_BALANCE *balance)
{
PE_STATUS status = PE_SUCCESS;
ISTREAMCTRLHANDLE* pStrmCtrl;
if (handle == NULL)
{
return (PE_INVALID_HANDLE);
}
if (balance == NULL)
{
return (PE_NULL_POINTER);
}
if (((PEHANDLE *)handle)->iStreamCtrl == NULL)
{
return (PE_INVALID_HANDLE);
}
pStrmCtrl = ((PEHANDLE *)handle)->iStreamCtrl;
// AudioMixer - GetPan
*balance = g_audioMixerBalance;
return (status);
}
/**
* Sets the audio balance (left to right)
*
* @param handle - iConfigure handle
* @param input - specifies the audio input type
* @param balance - the audio balance
*
* @return PE_STATUS - Error code.
*/
PE_STATUS PEiConfigureAMSetBalance(PE_HANDLE handle, PE_ICONFIGURE_AUDIO_INPUT input,
PE_ICONFIGURE_AUDIO_INTERACTIVE_ID iaudio_id, PE_ICONFIGURE_AUDIO_BALANCE balance)
{
PE_STATUS status = PE_SUCCESS;
ISTREAMCTRLHANDLE* pStrmCtrl;
if (handle == NULL)
{
return (PE_INVALID_HANDLE);
}
if (balance > PE_AUDIO_BALANCE_MAX)
{
return (PE_INVALID_PARAM);
}
if (balance < PE_AUDIO_BALANCE_MIN)
{
return (PE_INVALID_PARAM);
}
if (((PEHANDLE *)handle)->iStreamCtrl == NULL)
{
return (PE_INVALID_HANDLE);
}
pStrmCtrl = ((PEHANDLE *)handle)->iStreamCtrl;
// AudioMixer - Set Balance
g_audioMixerBalance = balance;
PE_AM_PANNING_EVENT_INFO event_info;
/*
* send a panning changed event
*/
event_info.balance = balance;
event_info.panning = g_audioMixerPan;
peSendEvent(handle, PE_EVENT_AM_PANNING_CHG, &event_info);
return (status);
}
/**
* Gets the audio panning (front to back)
*
* @param handle - iConfigure handle
* @param input - specifies the audio input type
* @param *pan - the audio pan
*
* @return PE_STATUS - Error code.
*/
PE_STATUS PEiConfigureAMGetPan(PE_HANDLE handle, PE_ICONFIGURE_AUDIO_INPUT input,
PE_ICONFIGURE_AUDIO_INTERACTIVE_ID iaudio_id, PE_ICONFIGURE_AUDIO_PAN *pan)
{
PE_STATUS status = PE_SUCCESS;
ISTREAMCTRLHANDLE* pStrmCtrl;
if (handle == NULL)
{
return (PE_INVALID_HANDLE);
}
if (pan == NULL)
{
return (PE_NULL_POINTER);
}
if (((PEHANDLE *)handle)->iStreamCtrl == NULL)
{
return (PE_INVALID_HANDLE);
}
pStrmCtrl = ((PEHANDLE *)handle)->iStreamCtrl;
// AudioMixerGetPan
*pan = g_audioMixerPan;
return (status);
}
/**
* Sets the audio panning (front to back)
*
* @param handle - iConfigure handle
* @param input - specifies the audio input type
* @param pan - the audio pan
*
* @return PE_STATUS - Error code.
*/
PE_STATUS PEiConfigureAMSetPan(PE_HANDLE handle, PE_ICONFIGURE_AUDIO_INPUT input,
PE_ICONFIGURE_AUDIO_INTERACTIVE_ID iaudio_id, PE_ICONFIGURE_AUDIO_PAN pan)
{
PE_STATUS status = PE_SUCCESS;
ISTREAMCTRLHANDLE *pStrmCtrl;
if (handle == NULL)
{
return (PE_INVALID_HANDLE);
}
if (pan > PE_AUDIO_PAN_MAX)
{
return (PE_INVALID_PARAM);
}
if (pan < PE_AUDIO_PAN_MIN)
{
return (PE_INVALID_PARAM);
}
if (((PEHANDLE *)handle)->iStreamCtrl == NULL)
{
return (PE_INVALID_HANDLE);
}
pStrmCtrl = ((PEHANDLE *)handle)->iStreamCtrl;
// AudioMixer - SetPan
g_audioMixerPan = pan;
PE_AM_PANNING_EVENT_INFO event_info;
/*
* send a panning changed event
*/
event_info.balance = g_audioMixerBalance;
event_info.panning = pan;
peSendEvent(handle, PE_EVENT_AM_PANNING_CHG, &event_info);
return (status);
}
/**
* Open the sound sample
*
* @param handle - iConfigure handle
* @param config - specifies if the pcm sound is mono or stereo
* @param *pcm - buffer that contains the pcm data
* @param samples - the number of PCM samples in the buffer
* @param *iaudio_id - iaudio handle
*
* @return PE_STATUS - Error code.
*/
PE_STATUS PEiConfigureAMOpenSound(PE_HANDLE handle, PE_ICONFIGURE_AUDIO_CHANNEL_CONFIG *config,
BYTE *pcm, ULONG samples, PE_ICONFIGURE_AUDIO_INTERACTIVE_ID *iaudio_id)
{
PE_STATUS status = PE_SUCCESS;
ISTREAMCTRLHANDLE *pStrmCtrl;
if (handle == NULL)
{
return (PE_INVALID_HANDLE);
}
if (pcm == NULL)
{
return (PE_INVALID_PARAM);
}
if (config == NULL)
{
return (PE_INVALID_PARAM);
}
if (((PEHANDLE *)handle)->iStreamCtrl == NULL)
{
return (PE_INVALID_HANDLE);
}
pStrmCtrl = ((PEHANDLE *)handle)->iStreamCtrl;
status = PE_NOT_IMPLEMENTED;
return (status);
}
/**
* Play a PCM sound sample
*
* @param handle - iConfigure handle
* @param config - specifies if the pcm sound is mono or stereo
* @param *pcm - buffer that contains the pcm data
* @param samples - the number of PCM samples in the buffer
*
* @return PE_STATUS - Error code.
*/
PE_STATUS PEiConfigureAMPlaySound(PE_HANDLE handle, PE_ICONFIGURE_AUDIO_INTERACTIVE_ID iaudio_id)
{
PE_STATUS status = PE_SUCCESS;
if (handle == NULL)
{
return (PE_INVALID_HANDLE);
}
status = PE_NOT_IMPLEMENTED;
return (status);
}
/**
* Stop the sound sample
*
* @param handle - iConfigure handle
* @param iaudio_id - iaudio handle
*
* @return PE_STATUS - Error code.
*/
PE_STATUS PEiConfigureAMStopSound(PE_HANDLE handle, PE_ICONFIGURE_AUDIO_INTERACTIVE_ID iaudio_id)
{
PE_STATUS status = PE_SUCCESS;
if (handle == NULL)
{
return (PE_INVALID_HANDLE);
}
status = PE_NOT_IMPLEMENTED;
return (status);
}
/**
* Get state from audio playback
*
* @param handle - iConfigure handle
* @param iaudio_id - iaudio handle
* @param *isRunning - true if sound is playing
*
* @return PE_STATUS - Error code.
*/
PE_STATUS PEiConfigureAMGetSoundState(PE_HANDLE handle, PE_ICONFIGURE_AUDIO_INTERACTIVE_ID iaudio_id, BOOLEAN *isRunning)
{
PE_STATUS status = PE_SUCCESS;
if (handle == NULL)
{
return (PE_INVALID_HANDLE);
}
status = PE_NOT_IMPLEMENTED;
return (status);
}
/**
* Close the sound sample
*
* @param handle - iConfigure handle
* @param iaudio_id - iaudio handle
*
* @return PE_STATUS - Error code.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -