📄 callmanagerplayertest.cpp
字号:
//// Copyright (C) 2004, 2005 Pingtel Corp.// //// $$////////////////////////////////////////////////////////////////////////#include <cppunit/extensions/HelperMacros.h>#include <cppunit/TestCase.h>#include "test/mp/MpTestConfig.h"#include "os/OsDefs.h"#include "mp/MpStreamQueuePlayer.h"#include "mp/MpStreamPlayer.h"#include "mp/StreamDefs.h"#include "mp/MpMisc.h"class CallManagerPlayerTest : public CppUnit::TestCase{ CPPUNIT_TEST_SUITE(CallManagerPlayerTest); CPPUNIT_TEST(testQueuePlayerSimple); CPPUNIT_TEST(testBasicPlayerRaw); CPPUNIT_TEST(testBasicPlayerRaw); CPPUNIT_TEST(testBasicPlayerWav); CPPUNIT_TEST(testQueuePlayerSuperDrop); CPPUNIT_TEST(testSuperDrop); CPPUNIT_TEST(testSuperCreateDestory); CPPUNIT_TEST(testQueuePlayerCallGoesAwayFirst); CPPUNIT_TEST(testQueuePlayerDropCallMiddle); CPPUNIT_TEST(testQueuePlayerManyDropCallRandom); CPPUNIT_TEST_SUITE_END();public: void setUp() { mCfg = MpTestConfig::getTestInstance(); } void testQueuePlayerSimple() { osPrintf("testQueuePlayerSimple\n") ; char szUrl[128] ; MpStreamQueuePlayer* pQPlayer ; MpStreamPlayer* pPlayer = NULL ; for (int j=0; j<TESTING_ATTEMPTS; j++) { UtlString callId ; mCfg->getCallManager()->createCall(&callId) ; mCfg->getCallManager()->unholdAllTerminalConnections(callId) ; mCfg->getCallManager()->createPlayer(MpPlayer::STREAM_QUEUE_PLAYER, callId, NULL, STREAM_SOUND_LOCAL | STREAM_FORMAT_RAW, &pPlayer) ; pQPlayer = (MpStreamQueuePlayer*) pPlayer ; for (int i=3; i>0; i--) { sprintf(szUrl, "http://%s/nums/%d.raw", BASE_URL, i) ; Url url(szUrl) ; pQPlayer->add(url, STREAM_SOUND_LOCAL | STREAM_FORMAT_RAW) ; } pQPlayer->play() ; pQPlayer->wait() ; mCfg->getCallManager()->destroyPlayer(MpPlayer::STREAM_QUEUE_PLAYER, callId, pPlayer) ; mCfg->getCallManager()->drop(callId) ; } } void debug(const char* msg ) { osPrintf("\n******************************\n"); osPrintf("%s\n", msg); osPrintf("******************************\n"); } void testBasicPlayerRaw() { debug("testBasicPlayerRaw") ; char szUrl[128] ; MpStreamPlayer* pPlayer = NULL ; for (int j=0; j<3; j++) { sprintf(szUrl, "http://%s/nums/1.raw", BASE_URL) ; Url url(szUrl) ; // debug("NEW TEST ATTEMPT ******************************" ); UtlString callId ; mCfg->getCallManager()->createCall(&callId) ; mCfg->getCallManager()->unholdAllTerminalConnections(callId) ; debug("before createPlayer"); mCfg->getCallManager()->createPlayer(MpPlayer::STREAM_PLAYER, callId, szUrl, STREAM_SOUND_LOCAL | STREAM_FORMAT_RAW , &pPlayer) ; debug("after createPlayer"); pPlayer->setLoopCount(-1); // debug("before realize"); pPlayer->realize() ; // debug("before prefetch"); pPlayer->prefetch() ; // debug("before Playing" ); pPlayer->play(false) ; osPrintf("before sleeping for 20 seconds"); OsTask::delay(1000*20) ; // debug("before stop"); pPlayer->stop() ; pPlayer->rewind() ; mCfg->getCallManager()->destroyPlayer(MpPlayer::STREAM_PLAYER, callId, pPlayer) ; mCfg->getCallManager()->drop(callId) ; } } void testBasicPlayerWav() { debug("testBasicPlayerWav\n") ; char szUrl[128] ; MpStreamPlayer* pPlayer = NULL ; for (int j=0; j<3; j++) { sprintf(szUrl, "http://%s/nums/1.wav", BASE_URL) ; Url url(szUrl) ; // debug("NEW TEST ATTEMPT ******************************" ); UtlString callId ; mCfg->getCallManager()->createCall(&callId) ; mCfg->getCallManager()->unholdAllTerminalConnections(callId) ; debug("before createPlayer"); mCfg->getCallManager()->createPlayer(MpPlayer::STREAM_PLAYER, callId, szUrl, STREAM_SOUND_LOCAL | STREAM_FORMAT_WAV , &pPlayer) ; debug("after createPlayer"); pPlayer->setLoopCount(-1); // debug("before realize"); pPlayer->realize() ; // debug("before prefetch"); pPlayer->prefetch() ; // debug("before Playing" ); pPlayer->play(false) ; osPrintf("before sleeping for 20 seconds"); OsTask::delay(1000*20) ; debug("before stop"); pPlayer->stop() ; debug("after stop"); pPlayer->rewind() ; debug("before destroy player"); mCfg->getCallManager()->destroyPlayer(MpPlayer::STREAM_PLAYER, callId, pPlayer) ; debug("after destroy player"); mCfg->getCallManager()->drop(callId) ; } } void testQueuePlayerSuperDrop() { char szUrl[128] ; MpStreamQueuePlayer* pQPlayer ; MpStreamPlayer* pPlayer = NULL ; int j ; osPrintf("testQueuePlayerSuperDrop.1\n") ; for (j=0; j<TESTING_ATTEMPTS; j++) { UtlString callId ; mCfg->getCallManager()->createCall(&callId) ; mCfg->getCallManager()->unholdAllTerminalConnections(callId) ; mCfg->getCallManager()->createPlayer(MpPlayer::STREAM_QUEUE_PLAYER, callId, NULL, STREAM_SOUND_LOCAL | STREAM_FORMAT_RAW, &pPlayer) ; pQPlayer = (MpStreamQueuePlayer*) pPlayer ; sprintf(szUrl, "http://%s/nums/%d.raw", BASE_URL, 1) ; Url url(szUrl) ; pQPlayer->add(url, STREAM_SOUND_LOCAL | STREAM_FORMAT_RAW) ; pQPlayer->play() ; pQPlayer->add(url, STREAM_SOUND_LOCAL | STREAM_FORMAT_RAW) ; mCfg->getCallManager()->drop(callId) ; mCfg->getCallManager()->destroyPlayer(MpPlayer::STREAM_QUEUE_PLAYER, callId, pPlayer) ; OsTask::delay(DELAY_BEWTEEN_CALLS) ; // Delay so that we don't run out of flowgraphs } osPrintf("testQueuePlayerSuperDrop.2\n") ; for (j=0; j<TESTING_ATTEMPTS; j++) { UtlString callId ; mCfg->getCallManager()->createCall(&callId) ; mCfg->getCallManager()->unholdAllTerminalConnections(callId) ; mCfg->getCallManager()->createPlayer(MpPlayer::STREAM_QUEUE_PLAYER, callId, NULL, STREAM_SOUND_LOCAL | STREAM_FORMAT_RAW, &pPlayer) ; pQPlayer = (MpStreamQueuePlayer*) pPlayer ; sprintf(szUrl, "http://%s/nums/%d.raw", BASE_URL, 1) ; Url url(szUrl) ; pQPlayer->add(url, STREAM_SOUND_LOCAL | STREAM_FORMAT_RAW) ; pQPlayer->play() ; pQPlayer->add(url, STREAM_SOUND_LOCAL | STREAM_FORMAT_RAW) ; mCfg->getCallManager()->destroyPlayer(MpPlayer::STREAM_QUEUE_PLAYER, callId, pPlayer) ; mCfg->getCallManager()->drop(callId) ; OsTask::delay(DELAY_BEWTEEN_CALLS) ; // Delay so that we don't run out of flowgraphs } osPrintf("testQueuePlayerSuperDrop.3\n") ; for (j=0; j<TESTING_ATTEMPTS; j++) { UtlString callId ; mCfg->getCallManager()->createCall(&callId) ; mCfg->getCallManager()->unholdAllTerminalConnections(callId) ; mCfg->getCallManager()->createPlayer(MpPlayer::STREAM_QUEUE_PLAYER, callId, NULL, STREAM_SOUND_LOCAL | STREAM_FORMAT_RAW, &pPlayer) ; pQPlayer = (MpStreamQueuePlayer*) pPlayer ; sprintf(szUrl, "http://%s/nums/%d.raw", BASE_URL, 1) ; Url url(szUrl) ; pQPlayer->add(url, STREAM_SOUND_LOCAL | STREAM_FORMAT_RAW) ; pQPlayer->play() ; pQPlayer->add(url, STREAM_SOUND_LOCAL | STREAM_FORMAT_RAW) ; mCfg->getCallManager()->drop(callId) ; pQPlayer->add(url, STREAM_SOUND_LOCAL | STREAM_FORMAT_RAW) ; pQPlayer->play() ; pQPlayer->add(url, STREAM_SOUND_LOCAL | STREAM_FORMAT_RAW) ; pQPlayer->play() ; mCfg->getCallManager()->drop(callId) ; mCfg->getCallManager()->destroyPlayer(MpPlayer::STREAM_QUEUE_PLAYER, callId, pPlayer) ; OsTask::delay(DELAY_BEWTEEN_CALLS) ; // Delay so that we don't run out of flowgraphs } osPrintf("testQueuePlayerSuperDrop.4\n") ; for (j=0; j<TESTING_ATTEMPTS; j++) { UtlString callId ; mCfg->getCallManager()->createCall(&callId) ; mCfg->getCallManager()->unholdAllTerminalConnections(callId) ; mCfg->getCallManager()->createPlayer(MpPlayer::STREAM_QUEUE_PLAYER, callId, NULL, STREAM_SOUND_LOCAL | STREAM_FORMAT_RAW, &pPlayer) ; pQPlayer = (MpStreamQueuePlayer*) pPlayer ; sprintf(szUrl, "http://%s/nums/%d.raw", BASE_URL, 1) ; Url url(szUrl) ; pQPlayer->add(url, STREAM_SOUND_LOCAL | STREAM_FORMAT_RAW) ; pQPlayer->play() ; pQPlayer->add(url, STREAM_SOUND_LOCAL | STREAM_FORMAT_RAW) ; mCfg->getCallManager()->drop(callId) ; pQPlayer->add(url, STREAM_SOUND_LOCAL | STREAM_FORMAT_RAW) ; pQPlayer->play() ; pQPlayer->add(url, STREAM_SOUND_LOCAL | STREAM_FORMAT_RAW) ; pQPlayer->play() ; mCfg->getCallManager()->destroyPlayer(MpPlayer::STREAM_QUEUE_PLAYER, callId, pPlayer) ; mCfg->getCallManager()->drop(callId) ; OsTask::delay(DELAY_BEWTEEN_CALLS) ; // Delay so that we don't run out of flowgraphs } } void testSuperDrop()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -