summaryrefslogtreecommitdiff
path: root/pjsip-apps
diff options
context:
space:
mode:
authorNanang Izzuddin <nanang@teluu.com>2009-06-30 13:37:26 +0000
committerNanang Izzuddin <nanang@teluu.com>2009-06-30 13:37:26 +0000
commitc2ffe11838cd6966a79df6749828ca0d14f9b5a7 (patch)
tree4ffb8b73b603b5b406121c86bf632cee04a9831d /pjsip-apps
parent2a76f00fd086c7969118623e4258ce2daeae2d5c (diff)
Ticket #909:
- Added new audio device VAS for Symbian platform. - Updated symsndtest to use the latest audio device framework. git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2821 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip-apps')
-rw-r--r--pjsip-apps/src/symbian_ua_gui/group/symbian_ua_gui.mmp2
-rw-r--r--pjsip-apps/src/symsndtest/app_main.cpp70
2 files changed, 32 insertions, 40 deletions
diff --git a/pjsip-apps/src/symbian_ua_gui/group/symbian_ua_gui.mmp b/pjsip-apps/src/symbian_ua_gui/group/symbian_ua_gui.mmp
index e3e209a2..f5a7931b 100644
--- a/pjsip-apps/src/symbian_ua_gui/group/symbian_ua_gui.mmp
+++ b/pjsip-apps/src/symbian_ua_gui/group/symbian_ua_gui.mmp
@@ -62,7 +62,7 @@ STATICLIBRARY libresample.lib
#endif
#if SND_HAS_VAS
-// LIBRARY
+ LIBRARY VoIPAudioIntfc.lib
#endif
#if SND_HAS_MDA
diff --git a/pjsip-apps/src/symsndtest/app_main.cpp b/pjsip-apps/src/symsndtest/app_main.cpp
index 056cde10..e58be081 100644
--- a/pjsip-apps/src/symsndtest/app_main.cpp
+++ b/pjsip-apps/src/symsndtest/app_main.cpp
@@ -17,8 +17,9 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+#include <pjmedia-audiodev/audiodev.h>
#include <pjmedia/delaybuf.h>
-#include <pjmedia/sound.h>
+#include <pj/assert.h>
#include <pj/errno.h>
#include <pj/os.h>
#include <pj/log.h>
@@ -36,7 +37,7 @@
extern CConsoleBase* console;
static pj_caching_pool cp;
-static pjmedia_snd_stream *strm;
+static pjmedia_aud_stream *strm;
static unsigned rec_cnt, play_cnt;
static pj_time_val t_start;
@@ -85,7 +86,7 @@ static pj_status_t app_init()
pj_caching_pool_init(&cp, NULL, 0);
/* Init sound subsystem */
- status = pjmedia_snd_init(&cp.factory);
+ status = pjmedia_aud_subsys_init(&cp.factory);
if (status != PJ_SUCCESS) {
app_perror("pjmedia_snd_init()", status);
pj_caching_pool_destroy(&cp);
@@ -93,15 +94,17 @@ static pj_status_t app_init()
return status;
}
- count = pjmedia_snd_get_dev_count();
+ count = pjmedia_aud_dev_count();
PJ_LOG(3,(THIS_FILE, "Device count: %d", count));
for (i=0; i<count; ++i) {
- const pjmedia_snd_dev_info *info;
+ pjmedia_aud_dev_info info;
+ pj_status_t status;
- info = pjmedia_snd_get_dev_info(i);
+ status = pjmedia_aud_dev_get_info(i, &info);
+ pj_assert(status == PJ_SUCCESS);
PJ_LOG(3, (THIS_FILE, "%d: %s %d/%d %dHz",
- i, info->name, info->input_count, info->output_count,
- info->default_samples_per_sec));
+ i, info.name, info.input_count, info.output_count,
+ info.default_samples_per_sec));
}
/* Create pool */
@@ -130,19 +133,15 @@ static pj_status_t app_init()
/* Sound capture callback */
static pj_status_t rec_cb(void *user_data,
- pj_uint32_t timestamp,
- void *input,
- unsigned size)
+ pjmedia_frame *frame)
{
PJ_UNUSED_ARG(user_data);
- PJ_UNUSED_ARG(timestamp);
- PJ_UNUSED_ARG(size);
- pjmedia_delay_buf_put(delaybuf, (pj_int16_t*)input);
+ pjmedia_delay_buf_put(delaybuf, (pj_int16_t*)frame->buf);
- if (size != SAMPLES_PER_FRAME*2) {
+ if (frame->size != SAMPLES_PER_FRAME*2) {
PJ_LOG(3, (THIS_FILE, "Size captured = %u",
- size));
+ frame->size));
}
++rec_cnt;
@@ -151,15 +150,13 @@ static pj_status_t rec_cb(void *user_data,
/* Play cb */
static pj_status_t play_cb(void *user_data,
- pj_uint32_t timestamp,
- void *output,
- unsigned size)
+ pjmedia_frame *frame)
{
PJ_UNUSED_ARG(user_data);
- PJ_UNUSED_ARG(timestamp);
- PJ_UNUSED_ARG(size);
- pjmedia_delay_buf_get(delaybuf, (pj_int16_t*)output);
+ pjmedia_delay_buf_get(delaybuf, (pj_int16_t*)frame->buf);
+ frame->size = SAMPLES_PER_FRAME*2;
+ frame->type = PJMEDIA_FRAME_TYPE_AUDIO;
++play_cnt;
return PJ_SUCCESS;
@@ -168,6 +165,7 @@ static pj_status_t play_cb(void *user_data,
/* Start sound */
static pj_status_t snd_start(unsigned flag)
{
+ pjmedia_aud_param param;
pj_status_t status;
if (strm != NULL) {
@@ -175,19 +173,13 @@ static pj_status_t snd_start(unsigned flag)
return PJ_EINVALIDOP;
}
- if (flag==PJMEDIA_DIR_CAPTURE_PLAYBACK)
- status = pjmedia_snd_open(-1, -1, CLOCK_RATE, CHANNEL_COUNT,
- SAMPLES_PER_FRAME, BITS_PER_SAMPLE,
- &rec_cb, &play_cb, NULL, &strm);
- else if (flag==PJMEDIA_DIR_CAPTURE)
- status = pjmedia_snd_open_rec(-1, CLOCK_RATE, CHANNEL_COUNT,
- SAMPLES_PER_FRAME, BITS_PER_SAMPLE,
- &rec_cb, NULL, &strm);
- else
- status = pjmedia_snd_open_player(-1, CLOCK_RATE, CHANNEL_COUNT,
- SAMPLES_PER_FRAME, BITS_PER_SAMPLE,
- &play_cb, NULL, &strm);
+ pjmedia_aud_dev_default_param(0, &param);
+ param.channel_count = CHANNEL_COUNT;
+ param.clock_rate = CLOCK_RATE;
+ param.samples_per_frame = SAMPLES_PER_FRAME;
+ param.dir = (pjmedia_dir) flag;
+ status = pjmedia_aud_stream_create(&param, &rec_cb, &play_cb, NULL, &strm);
if (status != PJ_SUCCESS) {
app_perror("snd open", status);
return status;
@@ -198,10 +190,10 @@ static pj_status_t snd_start(unsigned flag)
pjmedia_delay_buf_reset(delaybuf);
- status = pjmedia_snd_stream_start(strm);
+ status = pjmedia_aud_stream_start(strm);
if (status != PJ_SUCCESS) {
app_perror("snd start", status);
- pjmedia_snd_stream_close(strm);
+ pjmedia_aud_stream_destroy(strm);
strm = NULL;
return status;
}
@@ -220,11 +212,11 @@ static pj_status_t snd_stop()
return PJ_EINVALIDOP;
}
- status = pjmedia_snd_stream_stop(strm);
+ status = pjmedia_aud_stream_stop(strm);
if (status != PJ_SUCCESS) {
app_perror("snd failed to stop", status);
}
- status = pjmedia_snd_stream_close(strm);
+ status = pjmedia_aud_stream_destroy(strm);
strm = NULL;
pj_gettimeofday(&now);
@@ -243,7 +235,7 @@ static void app_fini()
if (strm)
snd_stop();
- pjmedia_snd_deinit();
+ pjmedia_aud_subsys_shutdown();
pjmedia_delay_buf_destroy(delaybuf);
pj_pool_release(pool);
pj_caching_pool_destroy(&cp);