summaryrefslogtreecommitdiff
path: root/plugins.c
diff options
context:
space:
mode:
authorGravatar waker <wakeroid@gmail.com>2010-11-28 18:14:47 +0100
committerGravatar waker <wakeroid@gmail.com>2010-11-28 18:14:47 +0100
commit0c23a5d82d6f37c29dcbd65d0a4ce40c7abeb998 (patch)
treedc210a2aaf673eed46cff992f2d138e227382f0a /plugins.c
parent0cf1d57bc3dab11f773d23a25db0c3d18f6cfe52 (diff)
fixed dsp reset; ported nullout plugin to new api; fixed output plugin switching
Diffstat (limited to 'plugins.c')
-rw-r--r--plugins.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/plugins.c b/plugins.c
index 79ad3675..537230c0 100644
--- a/plugins.c
+++ b/plugins.c
@@ -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;
}