Changeset 121 for pjproject/trunk/pjmedia/src/pjmedia/nullsound.c
- Timestamp:
- Jan 18, 2006 11:12:57 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjmedia/src/pjmedia/nullsound.c
- Property svn:keywords set to Id
r65 r121 18 18 */ 19 19 #include <pjmedia/sound.h> 20 #include <pj/assert.h> 20 21 21 /* 22 * Null Factory Operations 23 */ 24 static pj_status_t null_sound_init(void); 25 static const char *null_sound_get_name(void); 26 static pj_status_t null_sound_destroy(void); 27 static pj_status_t null_sound_enum_devices(int *count, char *dev_names[]); 28 static pj_status_t null_sound_create_dev(const char *dev_name, pj_snd_dev *dev); 29 static pj_status_t null_sound_destroy_dev(pj_snd_dev *dev); 22 static pj_snd_dev_info null_info = 23 { 24 "Null Device", 25 1, 26 1, 27 8000 28 }; 30 29 31 30 32 /* 33 * Null Device Operations 34 */ 35 static pj_status_t null_sound_dev_open( pj_snd_dev *dev, pj_snd_role_t role ); 36 static pj_status_t null_sound_dev_close( pj_snd_dev *dev ); 37 static pj_status_t null_sound_dev_play( pj_snd_dev *dev ); 38 static pj_status_t null_sound_dev_record( pj_snd_dev *dev ); 39 40 41 static pj_snd_dev_factory null_sound_factory = 31 PJ_DEF(pj_status_t) pj_snd_init(pj_pool_factory *factory) 42 32 { 43 &null_sound_init, 44 &null_sound_get_name, 45 &null_sound_destroy, 46 &null_sound_enum_devices, 47 &null_sound_create_dev, 48 &null_sound_destroy_dev 49 }; 50 51 static struct pj_snd_dev_op null_sound_dev_op = 52 { 53 &null_sound_dev_open, 54 &null_sound_dev_close, 55 &null_sound_dev_play, 56 &null_sound_dev_record 57 }; 58 59 PJ_DEF(pj_snd_dev_factory*) pj_nullsound_get_factory() 60 { 61 return &null_sound_factory; 33 PJ_UNUSED_ARG(factory); 34 return PJ_SUCCESS; 62 35 } 63 36 64 static pj_status_t null_sound_init(void)37 PJ_DEF(int) pj_snd_get_dev_count(void) 65 38 { 66 return 0;39 return 1; 67 40 } 68 41 69 static const char *null_sound_get_name(void)42 PJ_DEF(const pj_snd_dev_info*) pj_snd_get_dev_info(unsigned index) 70 43 { 71 return "nullsound"; 44 PJ_ASSERT_RETURN(index==0, NULL); 45 return &null_info; 72 46 } 73 47 74 static pj_status_t null_sound_destroy(void) 48 PJ_DEF(pj_snd_stream*) pj_snd_open_recorder( int index, 49 const pj_snd_stream_info *param, 50 pj_snd_rec_cb rec_cb, 51 void *user_data) 75 52 { 76 return 0; 53 PJ_UNUSED_ARG(index); 54 PJ_UNUSED_ARG(param); 55 PJ_UNUSED_ARG(rec_cb); 56 PJ_UNUSED_ARG(user_data); 57 return (void*)1; 77 58 } 78 59 79 static pj_status_t null_sound_enum_devices(int *count, char *dev_names[]) 60 PJ_DEF(pj_snd_stream*) pj_snd_open_player( int index, 61 const pj_snd_stream_info *param, 62 pj_snd_play_cb play_cb, 63 void *user_data) 80 64 { 81 *count = 1; 82 dev_names[0] = "nullsound"; 83 return 0; 65 PJ_UNUSED_ARG(index); 66 PJ_UNUSED_ARG(param); 67 PJ_UNUSED_ARG(play_cb); 68 PJ_UNUSED_ARG(user_data); 69 return (void*)1; 84 70 } 85 71 86 static pj_status_t null_sound_create_dev(const char *dev_name, pj_snd_dev *dev)72 PJ_DEF(pj_status_t) pj_snd_stream_start(pj_snd_stream *stream) 87 73 { 88 PJ_UNUSED_ARG(dev_name); 89 dev->op = &null_sound_dev_op; 90 return 0; 74 PJ_UNUSED_ARG(stream); 75 return PJ_SUCCESS; 91 76 } 92 77 93 static pj_status_t null_sound_destroy_dev(pj_snd_dev *dev)78 PJ_DEF(pj_status_t) pj_snd_stream_stop(pj_snd_stream *stream) 94 79 { 95 PJ_UNUSED_ARG( dev);96 return 0;80 PJ_UNUSED_ARG(stream); 81 return PJ_SUCCESS; 97 82 } 98 83 99 100 /* 101 * Null Device Operations 102 */ 103 static pj_status_t null_sound_dev_open( pj_snd_dev *dev, pj_snd_role_t role ) 84 PJ_DEF(pj_status_t) pj_snd_stream_close(pj_snd_stream *stream) 104 85 { 105 PJ_UNUSED_ARG(dev); 106 PJ_UNUSED_ARG(role); 107 return 0; 86 PJ_UNUSED_ARG(stream); 87 return PJ_SUCCESS; 108 88 } 109 89 110 static pj_status_t null_sound_dev_close( pj_snd_dev *dev)90 PJ_DEF(pj_status_t) pj_snd_deinit(void) 111 91 { 112 PJ_UNUSED_ARG(dev); 113 return 0; 92 return PJ_SUCCESS; 114 93 } 115 116 static pj_status_t null_sound_dev_play( pj_snd_dev *dev )117 {118 PJ_UNUSED_ARG(dev);119 return 0;120 }121 122 static pj_status_t null_sound_dev_record( pj_snd_dev *dev )123 {124 PJ_UNUSED_ARG(dev);125 return 0;126 }127
Note: See TracChangeset
for help on using the changeset viewer.