Преглед изворни кода

Z991239-2465 #comment other: 优化音频管理库结构,兼容window版解耦

陈礼鹏80274480 пре 4 година
родитељ
комит
42993fac88

+ 2 - 4
Module/mod_sipphone/CMakeLists.txt

@@ -29,8 +29,8 @@ else()
 	set(${SIPPHONE_PLATFORM}_SRCS 
 	videorenderobj.h
 	videorenderobj.cpp
-	audio_pulse.h
-	audio_pulse.cpp
+	audio_manager.h
+	audio_manager.cpp
 	)
 endif(MSVC)
 
@@ -93,8 +93,6 @@ target_include_directories(${MODULE_NAME} PRIVATE
 
 message(STATUS "CONAN_INCLUDE_DIRS_SOFIA == ${CONAN_INCLUDE_DIRS_SOFIA}")
 
-
-
 if(MSVC)
 target_link_directories(${MODULE_NAME} PRIVATE
 	${CONAN_LIB_DIRS_FFMPEG}

+ 22 - 29
Module/mod_sipphone/audio_pulse.cpp → Module/mod_sipphone/audio_manager.cpp

@@ -1,4 +1,4 @@
-#include"audio_pulse.h"
+#include"audio_manager.h"
 #include<stdlib.h>
 #include<string.h>
 #include<stdarg.h>
@@ -12,45 +12,34 @@
 #endif
 
 
-AudioPulseMgr::AudioPulseMgr()
+CAudioManager::CAudioManager()
 {
 	m_pAudioMgr = CreateAudioMgrObj(this);
 }
 
-AudioPulseMgr::~AudioPulseMgr()
+CAudioManager::~CAudioManager()
 {
 	if (NULL != m_pAudioMgr){
 		DestroyIAudioMgrObj(m_pAudioMgr);
 	}
 }
 
-int AudioPulseMgr::AudioMgrInitialize()
-{
-	return m_pAudioMgr->audio_mgr_initialize();
-}
-
-int AudioPulseMgr::AudioMgrTerminate()
-{
-	return m_pAudioMgr->audio_mgr_terminate();
-}
-
-int AudioPulseMgr::audio_get_device_count(bool binput)
+int CAudioManager::audio_get_device_count(bool binput)
 {
 	return m_pAudioMgr->audio_get_device_count(binput);
 }
 
-
-int AudioPulseMgr::audio_get_device_name(char* strbuf, size_t ulen, bool binput, int index)
+int CAudioManager::audio_get_device_name(char* strbuf, size_t ulen, bool binput, int index)
 {
 	return m_pAudioMgr->audio_get_device_name(strbuf, ulen, binput, index);
 }
 
-int AudioPulseMgr::audio_get_device_id(const char* pstrname, bool binput)
+int CAudioManager::audio_get_device_id(const char* pstrname, bool binput)
 {
 	return m_pAudioMgr->audio_get_device_id(pstrname, binput);
 }
 
-int AudioPulseMgr::audio_get_device_volume(int* ivolume, const char* pstrname, bool binput)
+int CAudioManager::audio_get_device_volume(int* ivolume, const char* pstrname, bool binput)
 {
 	int iret = m_pAudioMgr->audio_get_device_volume(ivolume, pstrname, binput);
 	float fvol = (*ivolume) * 1000 / RVC_MAX_VOLUME;
@@ -66,19 +55,13 @@ int AudioPulseMgr::audio_get_device_volume(int* ivolume, const char* pstrname, b
 	return iret;
 }
 
-int AudioPulseMgr::audio_set_device_volume(int ivolume, int imax, const char* pstrname, bool binput)
+int CAudioManager::audio_set_device_volume(int ivolume, const char* pstrname, bool binput)
 {
-	if (imax > 0 && imax < 100) {
-		if (ivolume > imax){
-			ivolume = imax;
-		}
-	}
 	int ivol = ivolume * RVC_MAX_VOLUME / 100;
 	return m_pAudioMgr->audio_set_device_volume(ivol, pstrname, binput);
 }
 
-
-void AudioPulseMgr::debug(const char* fmt, ...)
+void CAudioManager::debug(const char* fmt, ...)
 {
 	va_list arg;
 	va_start(arg, fmt);
@@ -86,13 +69,23 @@ void AudioPulseMgr::debug(const char* fmt, ...)
 	va_end(arg);
 }
 
+void CAudioManager::on_audio_mgr_failed()
+{
 
-void AudioPulseMgr::on_audio_mgr_failed()
+}
+
+void CAudioManager::on_audio_mgr_excption()
 {
 
 }
 
-void AudioPulseMgr::on_audio_mgr_excption()
+int CAudioManager::audio_mgr_initialize()
+{
+	return m_pAudioMgr->audio_mgr_initialize();
+}
+
+int CAudioManager::audio_mgr_terminate()
 {
+	return m_pAudioMgr->audio_mgr_terminate();
+}
 
-}

+ 7 - 6
Module/mod_sipphone/audio_pulse.h → Module/mod_sipphone/audio_manager.h

@@ -3,24 +3,25 @@
 #include "../../Other/libaudiomgr/iaudiomgrinterface.h"
 
 
-class AudioPulseMgr : public IAudioMgrCallback
+class CAudioManager : public IAudioMgrCallback
 {
 public:
-	AudioPulseMgr();
-	virtual ~AudioPulseMgr();
+	CAudioManager();
+	virtual ~CAudioManager();
 
 	void debug(const char* fmt, ...);
 	void on_audio_mgr_failed();
 	void on_audio_mgr_excption();
 
-	int AudioMgrInitialize();
-	int AudioMgrTerminate();
+	int audio_mgr_initialize();
+	int audio_mgr_terminate();
+
 	int audio_get_device_count(bool binput);
 	int audio_get_device_name(char* strbuf, size_t ulen, bool binput, int index);
 	int audio_get_device_id(const char* pstrname, bool binput);
 
 	int audio_get_device_volume(int* ivolume, const char* pstrname, bool binput);
-	int audio_set_device_volume(int ivolume, int imax, const char* pstrname, bool binput);
+	int audio_set_device_volume(int ivolume, const char* pstrname, bool binput);
 
 private:
 	IAudioMgr* m_pAudioMgr;

+ 13 - 17
Module/mod_sipphone/mod_sipphone.cpp

@@ -27,7 +27,7 @@ using namespace AssistantChannel;
 #include "../mod_selfchecker/SelfChecker_client_g.h"
 #include "../mod_selfchecker/SelfChecker_def_g.h"
 
-#include "audio_pulse.h"
+#include "audio_manager.h"
 
 using namespace SelfChecker;
 
@@ -282,7 +282,6 @@ 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;
@@ -770,8 +769,8 @@ public:
 		}
 #ifdef RVC_OS_LINUX
 		{
-			m_pAudioMgr = new AudioPulseMgr();
-			if (0 == m_pAudioMgr->AudioMgrInitialize()) {
+			m_pAudioMgr = new CAudioManager();
+			if (0 == m_pAudioMgr->audio_mgr_initialize()) {
 				Dbg("Audio Manager Initialize success!");
 			}
 			else {
@@ -1111,7 +1110,7 @@ public:
 #else
 				if (m_pAudioMgr)
 				{
-					m_pAudioMgr->audio_set_device_volume(num.nValue,m_volume_max[DEV_HANDFREE], conf.audio_handfree_out_dev, false);
+					m_pAudioMgr->audio_set_device_volume(num.nValue, 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]);
@@ -1153,7 +1152,7 @@ public:
 				{
 					if (eStand2sType == m_eDeviceType)
 					{
-						m_pAudioMgr->audio_set_device_volume(num.nValue, m_volume_max[DEV_PICKUP], conf.audio_pickup_out_dev, false);
+						m_pAudioMgr->audio_set_device_volume(num.nValue, 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]);
@@ -1191,7 +1190,7 @@ public:
 #else
 				if (m_pAudioMgr)
 				{
-					m_pAudioMgr->audio_set_device_volume(num.nValue, RVC_MAX_VOLUME, conf.audio_handfree_in_dev, true);
+					m_pAudioMgr->audio_set_device_volume(num.nValue, 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]);
@@ -1233,7 +1232,7 @@ public:
 				{
 					if (eStand2sType == m_eDeviceType)
 					{
-						m_pAudioMgr->audio_set_device_volume(num.nValue, RVC_MAX_VOLUME, conf.audio_pickup_in_dev, true);
+						m_pAudioMgr->audio_set_device_volume(num.nValue, 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]);
@@ -1341,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], 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);
+				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);
 			}
 		}
 		return Error;
@@ -1584,7 +1583,7 @@ public:
 		}
 #else
 		if (NULL != m_pAudioMgr) {
-			m_pAudioMgr->AudioMgrTerminate();
+			m_pAudioMgr->audio_mgr_terminate();
 			delete m_pAudioMgr;
 			m_pAudioMgr = NULL;
 		}
@@ -1856,10 +1855,8 @@ 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);
@@ -2111,12 +2108,11 @@ 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];
 #else
-	AudioPulseMgr* m_pAudioMgr;
+	CAudioManager* m_pAudioMgr;
 #endif
 	//int m_nDownDynamicFps;	//当前视频下行的帧频,由前端通知后端更改频率,只有移动版才使用
 	CSystemStaticInfo staticInfo;

+ 1 - 0
Module/mod_sipphone/volumekeeper.cpp

@@ -93,6 +93,7 @@ Exit:
 		return hr;
 
 	}
+
 	void Term()
 	{
 		if (m_pAudioEndpointVolume) {

+ 6 - 6
Other/libaudiomgr/CMakeLists.txt

@@ -12,12 +12,12 @@ endif(RVC_DEBUG_MODE)
 set(${MODULE_PREFIX}_SRCS
     iaudiomgrinterface.h
 	iaudiomgrinterface.cpp
-	libaudiomgr.h
-	libaudiomgr.cpp
-	core_time.h
-	core_time.cpp
-	audiodevicepulse.h
-	audiodevicepulse.cpp
+	./linux/libaudiomgr_linux.h
+	./linux/libaudiomgr_linux.cpp
+	./linux/core_time.h
+	./linux/core_time.cpp
+	./linux/audiodevicepulse.h
+	./linux/audiodevicepulse.cpp
 )
 
 add_library(${MODULE_NAME} SHARED ${${MODULE_PREFIX}_SRCS})

+ 1 - 1
Other/libaudiomgr/iaudiomgrinterface.cpp

@@ -1,5 +1,5 @@
 #include "iaudiomgrinterface.h"
-#include "libaudiomgr.h"
+#include "./linux/libaudiomgr_linux.h"
 
 
 IAudioMgr* CreateAudioMgrObj(IAudioMgrCallback* pCallback)

+ 0 - 0
Other/libaudiomgr/audiodevicepulse.cpp → Other/libaudiomgr/linux/audiodevicepulse.cpp


+ 0 - 0
Other/libaudiomgr/audiodevicepulse.h → Other/libaudiomgr/linux/audiodevicepulse.h


+ 0 - 0
Other/libaudiomgr/core_time.cpp → Other/libaudiomgr/linux/core_time.cpp


+ 0 - 0
Other/libaudiomgr/core_time.h → Other/libaudiomgr/linux/core_time.h


+ 1 - 1
Other/libaudiomgr/libaudiomgr.cpp → Other/libaudiomgr/linux/libaudiomgr_linux.cpp

@@ -1,4 +1,4 @@
-#include"libaudiomgr.h"
+#include"libaudiomgr_linux.h"
 #include "core_time.h"
 #include <stdlib.h>
 #include <string.h>

+ 1 - 1
Other/libaudiomgr/libaudiomgr.h → Other/libaudiomgr/linux/libaudiomgr_linux.h

@@ -1,6 +1,6 @@
 #pragma once
 
-#include "iaudiomgrinterface.h"
+#include "../iaudiomgrinterface.h"
 #include <pthread.h>
 #include <stdint.h>
 #include <assert.h>