Changeset 4811:8d0d713ca0c1 in roaraudio
- Timestamp:
- 03/27/11 13:38:18 (13 years ago)
- Branch:
- default
- Phase:
- public
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
ChangeLog
r4809 r4811 5 5 so codecs do not drop to (near) zero bitrate. 6 6 * Added aRts (artsc) driver to roard. 7 * Removed old -d and friends from roard (Closes: #122) 7 8 8 9 v. 0.4beta4 - Sun Mar 20 2011 12:15 CET -
roard/driver.c
r4809 r4811 145 145 } 146 146 147 int driver_open (DRIVER_USERDATA_T * inst, int * driver_id, char * driver, char * device, struct roar_audio_info * info) { 147 int driver_openvio(struct roar_vio_calls * calls, 148 int * driver_id, char * driver /* NOTE: this is not part of struct roar_driver's def! */, 149 char * device, struct roar_audio_info * info, int fh, 150 struct roar_stream_server * sstream) { 148 151 int i; 149 152 … … 156 159 #endif 157 160 161 ROAR_DBG("driver_openvio(*): searching for driver '%s'...", driver); 162 158 163 for (i = 0; g_driver[i].name != NULL; i++) { 159 164 if ( strcmp(g_driver[i].name, driver) == 0 ) { 160 ROAR_DBG("driver_open(*): found driver: id = %i", i); 161 162 *driver_id = i; 163 164 if ( g_driver[i].vio_init != NULL ) { 165 if ( (*inst = malloc(sizeof(struct roar_vio_calls))) == NULL ) 166 return -1; 167 168 memset(*inst, 0, sizeof(struct roar_vio_calls)); 169 170 if ( (i = g_driver[i].vio_init(*inst, device, info, -1, NULL)) == -1 ) { 171 free(*inst); 172 return -1; 173 } 174 return i; 175 } 176 177 if ( g_driver[i].open ) { 178 ROAR_WARN("driver_open(*): driver(%s) uses old non-vio interface!", driver); 179 return g_driver[i].open(inst, device, info); 180 } 181 182 return 0; 183 } 184 } 185 186 return -1; 187 } 188 189 int driver_openvio(struct roar_vio_calls * calls, 190 int * driver_id, char * driver /* NOTE: this is not part of struct roar_driver's def! */, 191 char * device, struct roar_audio_info * info, int fh, 192 struct roar_stream_server * sstream) { 193 int i; 194 195 #ifdef ROAR_DRIVER_DEFAULT 196 if ( driver == NULL ) 197 driver = ROAR_DRIVER_DEFAULT; 198 #else 199 if ( driver == NULL ) 200 return -1; 201 #endif 202 203 ROAR_DBG("driver_openvio(*): searching for driver '%s'...", driver); 204 205 for (i = 0; g_driver[i].name != NULL; i++) { 206 if ( strcmp(g_driver[i].name, driver) == 0 ) { 207 ROAR_DBG("driver_open(*): found driver: id = %i", i); 165 ROAR_DBG("driver_openvio(*): found driver: id = %i", i); 208 166 209 167 *driver_id = i; … … 219 177 } 220 178 221 ROAR_WARN("driver_open (*): driver(%s) uses old non-vio interface!", driver);179 ROAR_WARN("driver_openvio(*): driver(%s) uses old non-vio interface!", driver); 222 180 ROAR_ERR("driver_openvio(calls=%p, driver_id={%i}, driver='%s', device='%s', info=%p, fh=%i): not a VIO driver!", 223 181 calls, i, driver, device, info, fh); … … 232 190 } 233 191 234 int driver_close(DRIVER_USERDATA_T inst, int driver) {235 int ret = 0;236 ROAR_DBG("driver_close(inst=%p, driver=%i) = ?", inst, driver);237 238 if ( driver == -1 )239 return -1;240 241 if ( g_driver[driver].close )242 ret = g_driver[driver].close(inst);243 244 if ( g_driver[driver].vio_init != NULL )245 free(inst);246 247 return ret;248 }249 250 192 int driver_closevio(struct roar_vio_calls * calls, int driver) { 251 193 ROAR_DBG("driver_closevio(calls=%p, driver=%i) = ?", calls, driver); … … 259 201 if ( calls->close != NULL ) 260 202 roar_vio_close(calls); 261 262 return 0;263 }264 265 int driver_write(DRIVER_USERDATA_T inst, int driver, char * buf, int len) {266 if ( driver == -1 )267 return -1;268 269 if ( g_driver[driver].vio_init != NULL )270 return roar_vio_write((struct roar_vio_calls *) inst, buf, len);271 272 return 0;273 }274 275 int driver_read (DRIVER_USERDATA_T inst, int driver, char * buf, int len) {276 if ( driver == -1 )277 return -1;278 279 if ( g_driver[driver].vio_init != NULL )280 return roar_vio_read((struct roar_vio_calls *) inst, buf, len);281 203 282 204 return 0; -
roard/include/driver.h
r4809 r4811 160 160 void print_driverlist (void); 161 161 162 int driver_open (DRIVER_USERDATA_T * inst,163 int * driver_id, char * driver /* NOTE: this is not part of struct roar_driver's def! */,164 char * device, struct roar_audio_info * info);165 162 int driver_openvio(struct roar_vio_calls * calls, 166 163 int * driver_id, char * driver /* NOTE: this is not part of struct roar_driver's def! */, … … 168 165 struct roar_stream_server * sstream); 169 166 170 int driver_close(DRIVER_USERDATA_T inst, int driver);171 167 int driver_closevio(struct roar_vio_calls * calls, int driver); 172 int driver_pause(DRIVER_USERDATA_T inst, int driver, int newstate);173 int driver_write(DRIVER_USERDATA_T inst, int driver, char * buf, int len);174 int driver_read (DRIVER_USERDATA_T inst, int driver, char * buf, int len);175 int driver_flush(DRIVER_USERDATA_T inst, int driver);176 168 int driver_set_volume(int stream, struct roar_mixer_settings * mixer); 177 169 -
roard/include/roard.h
r4766 r4811 144 144 #endif 145 145 146 int main_loop ( int driver, DRIVER_USERDATA_T driver_inst,struct roar_audio_info * sa, int sysclocksync);146 int main_loop (struct roar_audio_info * sa, int sysclocksync); 147 147 void cleanup_listen_socket (int terminate); 148 148 void clean_quit (void); -
roard/loop.c
r4708 r4811 26 26 #include "roard.h" 27 27 28 int main_loop ( int driver, DRIVER_USERDATA_T driver_inst,struct roar_audio_info * sa, int sysclocksync) {28 int main_loop (struct roar_audio_info * sa, int sysclocksync) { 29 29 void ** streams_input = NULL; 30 30 int term = 0; … … 125 125 #endif 126 126 clients_send_filter(sa, g_pos); 127 output_buffer_flush(driver_inst, driver);128 127 clients_send_mon(sa, g_pos); 129 128 #ifdef ROAR_HAVE_USLEEP -
roard/output.c
r4708 r4811 79 79 } 80 80 81 int output_buffer_flush (DRIVER_USERDATA_T inst, int driver) {82 ROAR_DBG("output_buffer_init(*): flushing output buffer");83 84 return driver_write(inst, driver, g_output_buffer, g_output_buffer_len);85 }86 87 81 //ll -
roard/roard.c
r4810 r4811 1693 1693 int realtime = 0; 1694 1694 int sysclocksync = 0; 1695 char * driver = NULL;1696 char * device = NULL;1697 #ifdef ROAR_HAVE_MAIN_ARGS1698 char * opts = NULL;1699 #endif1700 1695 // char * server = ROAR_DEFAULT_SOCK_GLOBAL; 1701 1696 #ifdef ROAR_SUPPORT_LISTEN … … 1706 1701 struct roar_audio_info sock_info = {0, 0, 0, 0}; 1707 1702 #endif 1708 int drvid;1709 1703 #ifndef ROAR_WITHOUT_DCOMP_SOURCES 1710 1704 char * s_drv = "cf"; … … 1763 1757 struct servent * serv = NULL; 1764 1758 #endif 1765 DRIVER_USERDATA_T drvinst;1766 1759 struct roar_client * self = NULL; 1767 1760 #ifdef ROAR_HAVE_LIBDNET … … 2068 2061 } 2069 2062 2070 } else if ( strcmp(k, "-d") == 0 || strcmp(k, "--driver") == 0 ) {2071 _CKHAVEARGS(1);2072 driver = argv[++i];2073 if ( strcmp(driver, "list") == 0 ) {2074 ROAR_WARN("The option is obsolete, use --list-driver!");2075 print_driverlist();2076 return 0;2077 }2078 } else if ( strcmp(k, "-D") == 0 || strcmp(k, "--device") == 0 ) {2079 _CKHAVEARGS(1);2080 device = argv[++i];2081 } else if ( strcmp(k, "-dO") == 0 ) {2082 _CKHAVEARGS(1);2083 opts = argv[++i];2084 2063 } else if ( strcmp(k, "--list-driver") == 0 ) { 2085 2064 print_driverlist(); … … 2669 2648 } 2670 2649 2671 if ( driver == NULL ) {2672 driver = "null";2673 } else {2674 ROAR_ERR("Usage of old driver interface. use -o not -d!");2675 ROAR_WARN("-d will be removed within the next releases");2676 }2677 2678 if ( driver_open(&drvinst, &drvid, driver, device, &sa) == -1 ) {2679 ROAR_ERR("Can not open output driver!");2680 return 1;2681 }2682 2683 2650 if ( samples_init() == -1 ) { 2684 2651 ROAR_ERR("Can not init samples!"); … … 2885 2852 // start main loop... 2886 2853 ROAR_INFO("Entering main loop", ROAR_DBG_INFO_INFO); 2887 main_loop( drvid, drvinst,&sa, sysclocksync);2854 main_loop(&sa, sysclocksync); 2888 2855 ROAR_INFO("Left main loop", ROAR_DBG_INFO_INFO); 2889 2856 2890 2857 // clean up. 2891 2858 clean_quit_prep(); 2892 driver_close(drvinst, drvid);2893 2859 output_buffer_free(); 2894 2860 … … 2978 2944 2979 2945 clean_quit_prep(); 2980 // driver_close(drvinst, drvid);2981 2946 // output_buffer_free(); 2982 2947
Note: See TracChangeset
for help on using the changeset viewer.