send_reply("file "+*i);
}
+ send_reply("directory_end");
}
void Client::stream_created(XineStream &stream)
stream.signal_title_changed.connect(sigc::mem_fun(this, &Client::stream_title_changed));
stream.signal_duration_changed.connect(sigc::mem_fun(this, &Client::stream_duration_changed));
stream.signal_position_changed.connect(sigc::mem_fun(this, &Client::stream_position_changed));
+ stream.signal_video_size_changed.connect(sigc::mem_fun(this, &Client::stream_size_changed));
+ stream.signal_framerate_changed.connect(sigc::mem_fun(this, &Client::stream_framerate_changed));
+ stream.signal_codecs_changed.connect(sigc::mem_fun(this, &Client::stream_codecs_changed));
stream.signal_channels_changed.connect(sigc::mem_fun(this, &Client::stream_channels_changed));
stream.signal_current_audio_channel_changed.connect(sigc::mem_fun(this, &Client::stream_audio_channel_changed));
stream.signal_current_spu_channel_changed.connect(sigc::mem_fun(this, &Client::stream_spu_channel_changed));
send_reply("title "+title);
if(const Time::TimeDelta &dur = stream.get_duration())
+ {
stream_duration_changed(dur);
+ stream_position_changed(stream.get_position());
+ }
+
+ stream_size_changed(stream.get_video_width(), stream.get_video_height());
+ stream_framerate_changed(stream.get_framerate());
+ stream_codecs_changed(stream.get_video_codec(), stream.get_audio_codec());
stream_channels_changed();
stream_audio_channel_changed(stream.get_current_audio_channel());
}
}
+void Client::stream_size_changed(unsigned w, unsigned h)
+{
+ send_reply(format("video_size %d %d", w, h));
+}
+
+void Client::stream_framerate_changed(float fps)
+{
+ send_reply(format("framerate %.2f", fps));
+}
+
+void Client::stream_codecs_changed(const string &vc, const string &ac)
+{
+ send_reply("video_codec "+vc);
+ send_reply("audio_codec "+ac);
+}
+
void Client::stream_channels_changed()
{
XineStream &stream = get_stream();