Lines 66-72
Link Here
|
66 |
fluid_midi_parser_t *parser; |
66 |
fluid_midi_parser_t *parser; |
67 |
} fluid_sndio_midi_driver_t; |
67 |
} fluid_sndio_midi_driver_t; |
68 |
|
68 |
|
69 |
int delete_fluid_sndio_audio_driver(fluid_audio_driver_t* p); |
69 |
//void delete_fluid_sndio_audio_driver(fluid_audio_driver_t* p); |
70 |
|
70 |
|
71 |
/* local utilities */ |
71 |
/* local utilities */ |
72 |
static void* fluid_sndio_audio_run(void* d); |
72 |
static void* fluid_sndio_audio_run(void* d); |
Lines 76-82
Link Here
|
76 |
void |
76 |
void |
77 |
fluid_sndio_audio_driver_settings(fluid_settings_t* settings) |
77 |
fluid_sndio_audio_driver_settings(fluid_settings_t* settings) |
78 |
{ |
78 |
{ |
79 |
fluid_settings_register_str(settings, "audio.sndio.device", "default", 0, NULL, NULL); |
79 |
fluid_settings_register_str(settings, "audio.sndio.device", "default", 0); |
80 |
} |
80 |
} |
81 |
|
81 |
|
82 |
/* |
82 |
/* |
Lines 109-115
Link Here
|
109 |
dev->data = NULL; |
109 |
dev->data = NULL; |
110 |
dev->cont = 1; |
110 |
dev->cont = 1; |
111 |
|
111 |
|
112 |
if (!fluid_settings_getstr(settings, "audio.sndio.device", &devname)) { |
112 |
if (!fluid_settings_dupstr(settings, "audio.sndio.device", &devname)) { |
113 |
devname = NULL; |
113 |
devname = NULL; |
114 |
} |
114 |
} |
115 |
|
115 |
|
Lines 210-216
Link Here
|
210 |
dev->data = data; |
210 |
dev->data = data; |
211 |
dev->cont = 1; |
211 |
dev->cont = 1; |
212 |
|
212 |
|
213 |
if (!fluid_settings_getstr(settings, "audio.sndio.device", &devname)) { |
213 |
if (!fluid_settings_dupstr(settings, "audio.sndio.device", &devname)) { |
214 |
devname = NULL; |
214 |
devname = NULL; |
215 |
} |
215 |
} |
216 |
|
216 |
|
Lines 286-304
Link Here
|
286 |
/* |
286 |
/* |
287 |
* delete_fluid_sndio_audio_driver |
287 |
* delete_fluid_sndio_audio_driver |
288 |
*/ |
288 |
*/ |
289 |
int |
289 |
void |
290 |
delete_fluid_sndio_audio_driver(fluid_audio_driver_t* p) |
290 |
delete_fluid_sndio_audio_driver(fluid_audio_driver_t* p) |
291 |
{ |
291 |
{ |
292 |
fluid_sndio_audio_driver_t* dev = (fluid_sndio_audio_driver_t*) p; |
292 |
fluid_sndio_audio_driver_t* dev = (fluid_sndio_audio_driver_t*) p; |
293 |
|
293 |
|
294 |
if (dev == NULL) { |
294 |
if (dev == NULL) { |
295 |
return FLUID_OK; |
295 |
return; |
296 |
} |
296 |
} |
297 |
dev->cont = 0; |
297 |
dev->cont = 0; |
298 |
if (dev->thread) { |
298 |
if (dev->thread) { |
299 |
if (pthread_join(dev->thread, NULL)) { |
299 |
if (pthread_join(dev->thread, NULL)) { |
300 |
FLUID_LOG(FLUID_ERR, "Failed to join the audio thread"); |
300 |
FLUID_LOG(FLUID_ERR, "Failed to join the audio thread"); |
301 |
return FLUID_FAILED; |
301 |
return; |
302 |
} |
302 |
} |
303 |
} |
303 |
} |
304 |
if (dev->hdl) { |
304 |
if (dev->hdl) { |
Lines 308-314
Link Here
|
308 |
FLUID_FREE(dev->buffer); |
308 |
FLUID_FREE(dev->buffer); |
309 |
} |
309 |
} |
310 |
FLUID_FREE(dev); |
310 |
FLUID_FREE(dev); |
311 |
return FLUID_OK; |
311 |
return; |
312 |
} |
312 |
} |
313 |
|
313 |
|
314 |
/* |
314 |
/* |
Lines 372-381
Link Here
|
372 |
|
372 |
|
373 |
void fluid_sndio_midi_driver_settings(fluid_settings_t* settings) |
373 |
void fluid_sndio_midi_driver_settings(fluid_settings_t* settings) |
374 |
{ |
374 |
{ |
375 |
fluid_settings_register_str(settings, "midi.sndio.device", "default", 0, NULL, NULL); |
375 |
fluid_settings_register_str(settings, "midi.sndio.device", "default", 0); |
376 |
} |
376 |
} |
377 |
|
377 |
|
378 |
int |
378 |
void |
379 |
delete_fluid_sndio_midi_driver(fluid_midi_driver_t *addr) |
379 |
delete_fluid_sndio_midi_driver(fluid_midi_driver_t *addr) |
380 |
{ |
380 |
{ |
381 |
int err; |
381 |
int err; |
Lines 382-388
Link Here
|
382 |
fluid_sndio_midi_driver_t *dev = (fluid_sndio_midi_driver_t *)addr; |
382 |
fluid_sndio_midi_driver_t *dev = (fluid_sndio_midi_driver_t *)addr; |
383 |
|
383 |
|
384 |
if (dev == NULL) { |
384 |
if (dev == NULL) { |
385 |
return FLUID_OK; |
385 |
return; |
386 |
} |
386 |
} |
387 |
dev->status = FLUID_MIDI_DONE; |
387 |
dev->status = FLUID_MIDI_DONE; |
388 |
|
388 |
|
Lines 391-401
Link Here
|
391 |
err = pthread_cancel(dev->thread); |
391 |
err = pthread_cancel(dev->thread); |
392 |
if (err) { |
392 |
if (err) { |
393 |
FLUID_LOG(FLUID_ERR, "Failed to cancel the midi thread"); |
393 |
FLUID_LOG(FLUID_ERR, "Failed to cancel the midi thread"); |
394 |
return FLUID_FAILED; |
394 |
return; |
395 |
} |
395 |
} |
396 |
if (pthread_join(dev->thread, NULL)) { |
396 |
if (pthread_join(dev->thread, NULL)) { |
397 |
FLUID_LOG(FLUID_ERR, "Failed to join the midi thread"); |
397 |
FLUID_LOG(FLUID_ERR, "Failed to join the midi thread"); |
398 |
return FLUID_FAILED; |
398 |
return; |
399 |
} |
399 |
} |
400 |
} |
400 |
} |
401 |
if (dev->hdl != NULL) { |
401 |
if (dev->hdl != NULL) { |
Lines 405-411
Link Here
|
405 |
delete_fluid_midi_parser(dev->parser); |
405 |
delete_fluid_midi_parser(dev->parser); |
406 |
} |
406 |
} |
407 |
FLUID_FREE(dev); |
407 |
FLUID_FREE(dev); |
408 |
return FLUID_OK; |
408 |
return; |
409 |
} |
409 |
} |
410 |
|
410 |
|
411 |
void * |
411 |
void * |
Lines 493-499
Link Here
|
493 |
} |
493 |
} |
494 |
|
494 |
|
495 |
/* get the device name. if none is specified, use the default device. */ |
495 |
/* get the device name. if none is specified, use the default device. */ |
496 |
if (!fluid_settings_getstr(settings, "midi.sndio.device", &device)) { |
496 |
if (!fluid_settings_dupstr(settings, "midi.sndio.device", &device)) { |
497 |
device = NULL; |
497 |
device = NULL; |
498 |
} |
498 |
} |
499 |
|
499 |
|