⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ppcaudio.c

📁 ppciaxclient softphone
💻 C
字号:



//#include <windows.h>
#include "iaxclient_lib.h"
#include "ppcaudio.h"

#include <commctrl.h>
#include <aygshell.h>
#include <sipapi.h>


typedef void (CALLBACK* cbWaveOut)(WAVE_OUT_EVENT);

#define BUF_COUNT 64
#define SINGLE_BUF_SIZE 2*160 

static int sample_rate = 0;
static int m_bInitialized = 0;
static cbWaveOut m_pcbWaveOut = NULL;
static WAVEFORMATEX      m_wfxOut;
static WORD m_wBufferCount=64;
DWORD m_dwBufferSize=0;
static m_dwSingleBufferSize = 0;

static int running=0;

static int ppcaudio_initialize(struct iaxc_audio_driver *d, int sr)
{

	if(m_bInitialized)
		return 0;
	sample_rate = sr;

	d->initialize = ppcaudio_initialize;
    d->destroy = ppc_destroy;
    d->select_devices = ppc_select_devices;
    d->selected_devices = ppc_selected_devices;
    d->start = ppc_start;
    d->stop = ppc_stop;
    d->output = ppc_output;
    d->input = ppc_input;
    d->input_level_get = ppc_input_level_get;
	d->input_level_get = ppc_input_level_get;
    d->input_level_set = ppc_input_level_set;
    d->output_level_get = ppc_output_level_get;
    d->output_level_set = ppc_output_level_set;
    d->play_sound = ppc_play_sound;
    d->stop_sound = ppc_stop_sound;
    d->mic_boost_get = ppc_mic_boost_get;
    d->mic_boost_set = ppc_mic_boost_set;

//	m_pcbWaveOut               = pcbWaveOut;
//	m_dwActiveThreadPriority   = dwActiveThreadPriority;
	m_wBufferCount             = 64;
	m_dwSingleBufferSize       = 2*160;

	m_wfxOut.cbSize               = 0;
	m_wfxOut.wFormatTag           = WAVE_FORMAT_PCM;
	m_wfxOut.nChannels            = 1;
	m_wfxOut.wBitsPerSample       = 8000;
	m_wfxOut.nSamplesPerSec       = 10*(m_wfxOut.wBitsPerSample/1000);
	m_wfxOut.nBlockAlign          = (m_wfxOut.wBitsPerSample * m_wfxOut.nChannels) / 8;
	m_wfxOut.nAvgBytesPerSec      = m_wfxOut.nSamplesPerSec * m_wfxOut.nBlockAlign;
	

//	m_dwBufferSize = 64 * 2*160;
	m_dwBufferSize = BUF_COUNT * SINGLE_BUF_SIZE;

	m_bInitialized = TRUE;

   return TRUE;

}

static int ppc_destroy (struct iaxc_audio_driver *d )
{
	free(d->devices);
//	stop_output();
}


static int ppc_select_devices (struct iaxc_audio_driver *d, int input, int output, int ring)
{

}

static int ppc_selected_devices (struct iaxc_audio_driver *d, int *input, int *output, int *ring)
{

}

static double ppc_input_level_get(struct iaxc_audio_driver *d)
{

}

static double ppc_output_level_get(struct iaxc_audio_driver *d)
{

}

static int ppc_input_level_set(struct iaxc_audio_driver *d, double level)
{

}

static int ppc_output_level_set(struct iaxc_audio_driver *d, double level)
{

}

static int ppc_mic_boost_get( struct iaxc_audio_driver* d )
{

}

static int ppc_mic_boost_set( struct iaxc_audio_driver* d, int enable )
{

}


static int ppc_start (struct iaxc_audio_driver *d )
{
	static int errcnt=0;
	if(running) return 0;
}

static int ppc_stop (struct iaxc_audio_driver *d )
{

}

static void ppc_shutdown()
{

}


static int ppc_input(struct iaxc_audio_driver *d, void *samples, int *nSamples)
{

}


static int ppc_output(struct iaxc_audio_driver *d, void *samples, int nSamples)
{

}

static int ppc_play_sound(struct iaxc_sound *inSound, int ring)
{

}

static int ppc_stop_sound(int soundID)
{

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -