+
+void Client::stream_channels_changed()
+{
+ XineStream &stream = get_stream();
+
+ const vector<string> &audio_channels = stream.get_audio_channels();
+ send_reply(format("audio_count %d", audio_channels.size()));
+ for(unsigned i=0; i<audio_channels.size(); ++i)
+ send_reply(format("audio %d %s", i, audio_channels[i]));
+
+ const vector<string> &spu_channels = stream.get_spu_channels();
+ send_reply(format("spu_count %d", spu_channels.size()));
+ for(unsigned i=0; i<spu_channels.size(); ++i)
+ send_reply(format("spu %d %s", i, spu_channels[i]));
+
+ send_reply("channels_end");
+}
+
+void Client::stream_audio_channel_changed(int chan)
+{
+ if(chan==XineStream::OFF)
+ send_reply("current_audio off");
+ else
+ send_reply(format("current_audio %d", chan));
+}
+
+void Client::stream_spu_channel_changed(int chan)
+{
+ if(chan==XineStream::OFF)
+ send_reply("current_spu off");
+ else
+ send_reply(format("current_spu %d", chan));
+}