diff options
author | waker <wakeroid@gmail.com> | 2011-03-15 20:55:54 +0100 |
---|---|---|
committer | waker <wakeroid@gmail.com> | 2011-03-15 20:55:54 +0100 |
commit | 3747e2f2cb5326b1631e3b47194728312144821b (patch) | |
tree | d67331d0e5ac510e8ced4f78426f2aa033a2a3d2 /plugins.c | |
parent | 186627f822f6c967a808d027efec056a89ac3ca8 (diff) |
copy waveformat during output plugin switch
Diffstat (limited to 'plugins.c')
-rw-r--r-- | plugins.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -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); |