Changeset 3127


Ignore:
Timestamp:
Mar 30, 2010 10:55:01 AM (14 years ago)
Author:
ming
Message:

Implemented ticket #1051: Core audio device support for Mac and iPhone OS

Location:
pjproject/branches/projects/iphone/pjmedia
Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • pjproject/branches/projects/iphone/pjmedia/build/Makefile

    r3102 r3127  
    7373export PJMEDIA_AUDIODEV_SRCDIR = ../src/pjmedia-audiodev 
    7474export PJMEDIA_AUDIODEV_OBJS +=  audiodev.o audiotest.o errno.o \ 
    75                                  legacy_dev.o null_dev.o pa_dev.o wmme_dev.o alsa_dev.o 
     75                                 coreaudio_dev.o legacy_dev.o null_dev.o pa_dev.o wmme_dev.o \ 
     76                                 alsa_dev.o 
    7677export PJMEDIA_AUDIODEV_CFLAGS += $(_CFLAGS) 
    7778 
  • pjproject/branches/projects/iphone/pjmedia/include/pjmedia-audiodev/audiodev.h

    r2506 r3127  
    202202 
    203203    /** Route to earpiece */ 
    204     PJMEDIA_AUD_DEV_ROUTE_EARPIECE = 2 
     204    PJMEDIA_AUD_DEV_ROUTE_EARPIECE = 2, 
     205 
     206    /** Route to paired Bluetooth device */ 
     207    PJMEDIA_AUD_DEV_ROUTE_BLUETOOTH = 4 
    205208 
    206209} pjmedia_aud_dev_route; 
  • pjproject/branches/projects/iphone/pjmedia/include/pjmedia-audiodev/config.h

    r3102 r3127  
    7272#ifndef PJMEDIA_AUDIO_DEV_HAS_NULL_AUDIO 
    7373#   define PJMEDIA_AUDIO_DEV_HAS_NULL_AUDIO     0 
     74#endif 
     75 
     76 
     77/** 
     78 * This setting controls whether coreaudio support should be included. 
     79 */ 
     80#ifndef PJMEDIA_AUDIO_DEV_HAS_COREAUDIO 
     81#   define PJMEDIA_AUDIO_DEV_HAS_COREAUDIO      1 
    7482#endif 
    7583 
  • pjproject/branches/projects/iphone/pjmedia/include/pjmedia-audiodev/errno.h

    r2506 r3127  
    9090            ((int)PJMEDIA_AUDIODEV_WMME_OUT_ERROR_START+err) 
    9191 
     92 
     93/** 
     94 * Mapping from CoreAudio error codes to pjmedia error space. 
     95 */ 
     96#define PJMEDIA_AUDIODEV_COREAUDIO_ERRNO_START \ 
     97            (PJMEDIA_AUDIODEV_ERRNO_START+20000) 
     98#define PJMEDIA_AUDIODEV_COREAUDIO_ERRNO_END   \ 
     99            (PJMEDIA_AUDIODEV_COREAUDIO_ERRNO_START + 20000 -1) 
     100/** 
     101 * Convert CoreAudio error code to PJLIB error code. 
     102 * CoreAudio error code range: 0 >= err >= -10000 
     103 */ 
     104#define PJMEDIA_AUDIODEV_ERRNO_FROM_COREAUDIO(err) \ 
     105            ((int)PJMEDIA_AUDIODEV_COREAUDIO_ERRNO_START-err) 
    92106 
    93107/************************************************************ 
  • pjproject/branches/projects/iphone/pjmedia/src/pjmedia-audiodev/audiodev.c

    r3102 r3127  
    7171#endif 
    7272 
     73#if PJMEDIA_AUDIO_DEV_HAS_COREAUDIO 
     74pjmedia_aud_dev_factory* pjmedia_coreaudio_factory(pj_pool_factory *pf); 
     75#endif 
     76 
    7377#if PJMEDIA_AUDIO_DEV_HAS_ALSA 
    7478pjmedia_aud_dev_factory* pjmedia_alsa_factory(pj_pool_factory *pf); 
     
    379383#if PJMEDIA_AUDIO_DEV_HAS_ALSA 
    380384    aud_subsys.drv[aud_subsys.drv_cnt++].create = &pjmedia_alsa_factory; 
     385#endif 
     386#if PJMEDIA_AUDIO_DEV_HAS_COREAUDIO 
     387    aud_subsys.drv[aud_subsys.drv_cnt++].create = &pjmedia_coreaudio_factory; 
    381388#endif 
    382389#if PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO 
  • pjproject/branches/projects/iphone/pjmedia/src/pjmedia-audiodev/errno.c

    r2506 r3127  
    7676#if defined(PJ_HAS_ERROR_STRING) && (PJ_HAS_ERROR_STRING != 0) 
    7777 
     78 
     79    /* See if the error comes from Core Audio. */ 
     80#if PJMEDIA_AUDIO_DEV_HAS_COREAUDIO 
     81    if (statcode >= PJMEDIA_AUDIODEV_COREAUDIO_ERRNO_START && 
     82        statcode <= PJMEDIA_AUDIODEV_COREAUDIO_ERRNO_END) 
     83    { 
     84        int ca_err = PJMEDIA_AUDIODEV_COREAUDIO_ERRNO_START - statcode; 
     85 
     86        PJ_UNUSED_ARG(ca_err); 
     87        // TODO: create more helpful error messages 
     88        errstr.ptr = buf; 
     89        pj_strcpy2(&errstr, "Core audio error"); 
     90        return errstr; 
     91    } else 
     92#endif 
     93 
    7894    /* See if the error comes from PortAudio. */ 
    7995#if PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO 
Note: See TracChangeset for help on using the changeset viewer.