| 1 | = Enabling External Sound Device Configurations = |
| 2 | |
| 3 | External sound device configuration enables application to provide its own sound device implementation rather than the implementation provided by PJMEDIA. This option was added in PJSIP version 0.9.5. |
| 4 | |
| 5 | == GNU Build System == |
| 6 | |
| 7 | Follow these steps to enable external sound device with GNU build system. |
| 8 | 1. Enable external sound device in {{{./configure}}} command: |
| 9 | {{{ |
| 10 | ./configure --enable-ext-sound |
| 11 | }}} |
| 12 | 1. Edit {{{user.mak}}} in root PJSIP directory to add your sound device implementation in the link process. For example, if your sound device implementation is in {{{ext_snd.c}}} in your home directory, the content of {{{user.mak}}} file will look something like this: |
| 13 | {{{ |
| 14 | # This is the rule to compile your sound implementation |
| 15 | ~/ext_snd.o: ~/ext_snd.c |
| 16 | $(APP_CC) $(APP_CFLAGS) -c $< -o $@ |
| 17 | |
| 18 | # Specify this so that your file will be compiled when 'make all' is invoked |
| 19 | all: ~/ext_snd.o |
| 20 | |
| 21 | # Add your implementation to LDFLAGS |
| 22 | export LDFLAGS += ~/ext_snd.o |
| 23 | |
| 24 | }}} |
| 25 | Note that all directory reference must use full path rather than relative path, since the {{{make}}} command will be invoked in {{{build}}} directory of the libraries rather than in root PJSIP directory. |
| 26 | 1. Build everything: |
| 27 | {{{ |
| 28 | make |
| 29 | }}} |
| 30 | |
| 31 | |
| 32 | == Visual Studio and Others == |
| 33 | |
| 34 | Follow these steps to enable external sound device with Visual Studio build system. |
| 35 | |
| 36 | 1. Declare this in your {{{config_site.h}}}: |
| 37 | {{{ |
| 38 | #define PJMEDIA_SOUND_IMPLEMENTATION PJMEDIA_SOUND_EXTERNAL |
| 39 | }}} |
| 40 | 1. Add your sound device implementation source file in the '''application''' project (e.g. in application's Visual Studio project, or in application's MMP file for Symbian). |
| 41 | |
| 42 | |