diff options
author | waker <wakeroid@gmail.com> | 2010-11-28 18:14:47 +0100 |
---|---|---|
committer | waker <wakeroid@gmail.com> | 2010-11-28 18:14:47 +0100 |
commit | 0c23a5d82d6f37c29dcbd65d0a4ce40c7abeb998 (patch) | |
tree | dc210a2aaf673eed46cff992f2d138e227382f0a /plugins.c | |
parent | 0cf1d57bc3dab11f773d23a25db0c3d18f6cfe52 (diff) |
fixed dsp reset; ported nullout plugin to new api; fixed output plugin switching
Diffstat (limited to 'plugins.c')
-rw-r--r-- | plugins.c | 13 |
1 files changed, 8 insertions, 5 deletions
@@ -937,19 +937,22 @@ plug_select_output (void) { void plug_reinit_sound (void) { - DB_output_t *output = plug_get_output (); - int state = output->state (); + DB_output_t *prev = plug_get_output (); + int state = OUTPUT_STATE_STOPPED; - output->free (); + if (prev) { + state = prev->state (); + prev->free (); + } - DB_output_t *prev = plug_get_output (); if (plug_select_output () < 0) { const char *outplugname = conf_get_str ("output_plugin", "ALSA output plugin"); trace ("failed to select output plugin %s\nreverted to %s\n", outplugname, prev->plugin.name); output_plugin = prev; } - streamer_reset (1); + DB_output_t *output = plug_get_output (); if (output->init () < 0) { + streamer_reset (1); streamer_set_nextsong (-2, 0); return; } |