summaryrefslogtreecommitdiff
path: root/plugins.c
diff options
context:
space:
mode:
authorGravatar waker <wakeroid@gmail.com>2011-03-15 20:55:54 +0100
committerGravatar waker <wakeroid@gmail.com>2011-03-15 20:55:54 +0100
commit3747e2f2cb5326b1631e3b47194728312144821b (patch)
treed67331d0e5ac510e8ced4f78426f2aa033a2a3d2 /plugins.c
parent186627f822f6c967a808d027efec056a89ac3ca8 (diff)
copy waveformat during output plugin switch
Diffstat (limited to 'plugins.c')
-rw-r--r--plugins.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/plugins.c b/plugins.c
index a442dd0b..0f9056e1 100644
--- a/plugins.c
+++ b/plugins.c
@@ -1048,8 +1048,11 @@ plug_reinit_sound (void) {
DB_output_t *prev = plug_get_output ();
int state = OUTPUT_STATE_STOPPED;
+ ddb_waveformat_t fmt = {0};
+
if (prev) {
state = prev->state ();
+ memcpy (&fmt, &prev->fmt, sizeof (fmt));
prev->free ();
}
@@ -1059,6 +1062,9 @@ plug_reinit_sound (void) {
output_plugin = prev;
}
DB_output_t *output = plug_get_output ();
+ if (fmt.channels) {
+ output->setformat (&fmt);
+ }
if (output->init () < 0) {
streamer_reset (1);
streamer_set_nextsong (-2, 0);