|
@@ -39,6 +39,10 @@ using namespace SelfChecker;
|
|
|
#define DEVICE_PICKUP_IN 3
|
|
|
|
|
|
|
|
|
+#ifndef RVC_MAX_VOLUME
|
|
|
+#define RVC_MAX_VOLUME 100
|
|
|
+#endif
|
|
|
+
|
|
|
enum ePickupMicrophoneState
|
|
|
{
|
|
|
ePickupMicrophoneState_On,
|
|
@@ -277,6 +281,7 @@ public:
|
|
|
{
|
|
|
m_kept_volume_in[0] = m_kept_volume_in[1] = 0;
|
|
|
m_kept_volume_out[0] = m_kept_volume_out[1] = 0;
|
|
|
+ m_volume_max[0] = m_volume_max[1] = 100;
|
|
|
#ifdef RVC_OS_WIN
|
|
|
m_pKeeperIn[0] = m_pKeeperIn[1] = NULL;
|
|
|
m_pKeeperOut[0] = m_pKeeperOut[1] = NULL;
|
|
@@ -1105,7 +1110,7 @@ public:
|
|
|
#else
|
|
|
if (m_pAudioMgr)
|
|
|
{
|
|
|
- m_pAudioMgr->audio_set_device_volume(num.nValue, conf.audio_handfree_out_dev, false);
|
|
|
+ m_pAudioMgr->audio_set_device_volume(num.nValue,m_volume_max[DEV_HANDFREE], conf.audio_handfree_out_dev, false);
|
|
|
m_kept_volume_out[DEV_HANDFREE] = num.nValue;
|
|
|
SendAudioDeviceVolumn(DEVICE_HANDFREE_OUT);
|
|
|
SaveAudioRunConfig(m_kept_volume_out[DEV_HANDFREE], m_kept_volume_out[DEV_PICKUP], m_kept_volume_in[DEV_HANDFREE], m_kept_volume_in[DEV_PICKUP]);
|
|
@@ -1147,7 +1152,7 @@ public:
|
|
|
{
|
|
|
if (eStand2sType == m_eDeviceType)
|
|
|
{
|
|
|
- m_pAudioMgr->audio_set_device_volume(num.nValue, conf.audio_pickup_out_dev, false);
|
|
|
+ m_pAudioMgr->audio_set_device_volume(num.nValue, m_volume_max[DEV_PICKUP], conf.audio_pickup_out_dev, false);
|
|
|
m_kept_volume_out[DEV_PICKUP] = num.nValue;
|
|
|
SendAudioDeviceVolumn(DEVICE_PICKUP_OUT);
|
|
|
SaveAudioRunConfig(m_kept_volume_out[DEV_HANDFREE], m_kept_volume_out[DEV_PICKUP], m_kept_volume_in[DEV_HANDFREE], m_kept_volume_in[DEV_PICKUP]);
|
|
@@ -1185,7 +1190,7 @@ public:
|
|
|
#else
|
|
|
if (m_pAudioMgr)
|
|
|
{
|
|
|
- m_pAudioMgr->audio_set_device_volume(num.nValue, conf.audio_handfree_in_dev, true);
|
|
|
+ m_pAudioMgr->audio_set_device_volume(num.nValue, RVC_MAX_VOLUME, conf.audio_handfree_in_dev, true);
|
|
|
m_kept_volume_in[DEV_HANDFREE] = num.nValue;
|
|
|
SendAudioDeviceVolumn(DEVICE_HANDFREE_IN);
|
|
|
SaveAudioRunConfig(m_kept_volume_out[DEV_HANDFREE], m_kept_volume_out[DEV_PICKUP], m_kept_volume_in[DEV_HANDFREE], m_kept_volume_in[DEV_PICKUP]);
|
|
@@ -1227,7 +1232,7 @@ public:
|
|
|
{
|
|
|
if (eStand2sType == m_eDeviceType)
|
|
|
{
|
|
|
- m_pAudioMgr->audio_set_device_volume(num.nValue, conf.audio_pickup_in_dev, true);
|
|
|
+ m_pAudioMgr->audio_set_device_volume(num.nValue, RVC_MAX_VOLUME, conf.audio_pickup_in_dev, true);
|
|
|
m_kept_volume_in[DEV_PICKUP] = num.nValue;
|
|
|
SendAudioDeviceVolumn(DEVICE_PICKUP_IN);
|
|
|
SaveAudioRunConfig(m_kept_volume_out[DEV_HANDFREE], m_kept_volume_out[DEV_PICKUP], m_kept_volume_in[DEV_HANDFREE], m_kept_volume_in[DEV_PICKUP]);
|
|
@@ -1303,8 +1308,7 @@ public:
|
|
|
}
|
|
|
|
|
|
|
|
|
-#ifdef RVC_OS_WIN
|
|
|
-#else
|
|
|
+#ifdef RVC_OS_LINUX
|
|
|
ErrorCodeEnum RvcGetAudioDeviceInfo()
|
|
|
{
|
|
|
ErrorCodeEnum Error = Error_Param;
|
|
@@ -1336,10 +1340,10 @@ public:
|
|
|
if (eStand2sType == m_eDeviceType) {
|
|
|
Dbg("handfree out volume is %d, handfree in volume is %d, pickup out volume is %d, pickup in volume %d", m_kept_volume_out[DEV_HANDFREE], m_kept_volume_in[DEV_HANDFREE], m_kept_volume_out[DEV_PICKUP], m_kept_volume_in[DEV_PICKUP]);
|
|
|
if (m_pAudioMgr){
|
|
|
- m_pAudioMgr->audio_set_device_volume(m_kept_volume_out[DEV_HANDFREE], conf.audio_handfree_out_dev, false);
|
|
|
- m_pAudioMgr->audio_set_device_volume(m_kept_volume_in[DEV_HANDFREE], conf.audio_handfree_in_dev, true);
|
|
|
- m_pAudioMgr->audio_set_device_volume(m_kept_volume_out[DEV_PICKUP], conf.audio_pickup_out_dev, false);
|
|
|
- m_pAudioMgr->audio_set_device_volume(m_kept_volume_in[DEV_PICKUP], conf.audio_pickup_in_dev, true);
|
|
|
+ m_pAudioMgr->audio_set_device_volume(m_kept_volume_out[DEV_HANDFREE], m_volume_max[DEV_HANDFREE], conf.audio_handfree_out_dev, false);
|
|
|
+ m_pAudioMgr->audio_set_device_volume(m_kept_volume_in[DEV_HANDFREE], RVC_MAX_VOLUME, conf.audio_handfree_in_dev, true);
|
|
|
+ m_pAudioMgr->audio_set_device_volume(m_kept_volume_out[DEV_PICKUP], m_volume_max[DEV_PICKUP], conf.audio_pickup_out_dev, false);
|
|
|
+ m_pAudioMgr->audio_set_device_volume(m_kept_volume_in[DEV_PICKUP], RVC_MAX_VOLUME, conf.audio_pickup_in_dev, true);
|
|
|
}
|
|
|
}
|
|
|
return Error;
|
|
@@ -1851,8 +1855,10 @@ private:
|
|
|
table.AddEntryBoolean("audio", "handfree_aec", conf->audio_handfree_aec, false);
|
|
|
table.AddEntryInt("audio", "handfree_in_volume", m_kept_volume_in[DEV_HANDFREE], 0);
|
|
|
table.AddEntryInt("audio", "handfree_out_volume", m_kept_volume_out[DEV_HANDFREE], 0);
|
|
|
+ table.AddEntryInt("audio", "handfree_out_max", m_volume_max[DEV_HANDFREE], 100);
|
|
|
table.AddEntryInt("audio", "pickup_in_volume", m_kept_volume_in[DEV_PICKUP], 0);
|
|
|
table.AddEntryInt("audio", "pickup_out_volume", m_kept_volume_out[DEV_PICKUP], 0);
|
|
|
+ table.AddEntryInt("audio", "pickup_out_max", m_volume_max[DEV_PICKUP], 100);
|
|
|
table.AddEntryInt("video", "quant", conf->quant, 0);
|
|
|
table.AddEntryInt("video", "mtu", conf->mtu, 0);
|
|
|
Error = table.Load(spRootConfig);
|
|
@@ -1863,9 +1869,10 @@ private:
|
|
|
#else
|
|
|
id = m_pAudioMgr->audio_get_device_id(strHandFreeIn.GetData(), true);
|
|
|
#endif
|
|
|
- if (id == -1)
|
|
|
- {
|
|
|
+ if (id == -1) {
|
|
|
Dbg("audio handfree in device %s does not exist!", (LPCSTR)strHandFreeIn);
|
|
|
+ CSimpleStringA strErrMsg = "外部麦克风配置错误,请重新配置!";
|
|
|
+ LogWarn(Severity_Middle, Error_Param, 0, strErrMsg);
|
|
|
Error = Error_Param;
|
|
|
}
|
|
|
strcpy(conf->audio_handfree_in_dev, strHandFreeIn);
|
|
@@ -1875,9 +1882,10 @@ private:
|
|
|
#else
|
|
|
id = m_pAudioMgr->audio_get_device_id(strHandFreeOut.GetData(), false);
|
|
|
#endif
|
|
|
- if (id == -1)
|
|
|
- {
|
|
|
+ if (id == -1) {
|
|
|
Dbg("audio handfree out device %s does not exist!", (LPCSTR)strHandFreeOut);
|
|
|
+ CSimpleStringA strErrMsg = "外部扬声器配置错误,请重新配置!";
|
|
|
+ LogWarn(Severity_Middle, Error_Param, 0, strErrMsg);
|
|
|
Error = Error_Param;
|
|
|
}
|
|
|
strcpy(conf->audio_handfree_out_dev, strHandFreeOut);
|
|
@@ -1889,6 +1897,8 @@ private:
|
|
|
#endif
|
|
|
if (id == -1) {
|
|
|
Dbg("audio pickup in device %s does not exist!", (LPCSTR)strPickupIn);
|
|
|
+ CSimpleStringA strErrMsg = "话筒麦克风(大机)配置错误,请重新配置!";
|
|
|
+ LogWarn(Severity_Middle, Error_Param, 0, strErrMsg);
|
|
|
Error = Error_Param;
|
|
|
}
|
|
|
strcpy(conf->audio_pickup_in_dev, strPickupIn);
|
|
@@ -1901,6 +1911,8 @@ private:
|
|
|
|
|
|
if (id == -1) {
|
|
|
Dbg("audio device %s does not exist!", (LPCSTR)strPickupOut);
|
|
|
+ CSimpleStringA strErrMsg = "话筒扬声器(大机)配置错误,请重新配置!";
|
|
|
+ LogWarn(Severity_Middle, Error_Param, 0, strErrMsg);
|
|
|
Error = Error_Param;
|
|
|
}
|
|
|
strcpy(conf->audio_pickup_out_dev, strPickupOut);
|
|
@@ -2098,6 +2110,7 @@ private:
|
|
|
public:
|
|
|
int m_kept_volume_in[2];
|
|
|
int m_kept_volume_out[2];
|
|
|
+ int m_volume_max[2];
|
|
|
#ifdef RVC_OS_WIN
|
|
|
void* m_pKeeperIn[2];
|
|
|
void* m_pKeeperOut[2];
|