X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fclient.cpp;h=47f8186d7d2899c0457568abc13f590037585bc0;hb=0ebb4044ca544358d6d944a89fd9f6e806528be4;hp=f116892a06b1073401a5c1683007935f29b9bd97;hpb=ed777426d367df15a67082f5dae0911c21472b5f;p=xinema.git diff --git a/source/client.cpp b/source/client.cpp index f116892..47f8186 100644 --- a/source/client.cpp +++ b/source/client.cpp @@ -17,6 +17,9 @@ Client::Client(Xinema &x, Net::StreamSocket *s): socket->signal_end_of_file.connect(sigc::mem_fun(this, &Client::end_of_stream)); xinema.signal_stream_created.connect(sigc::mem_fun(this, &Client::stream_created)); + XineStream *stream = xinema.get_stream(); + if(stream) + stream_created(*stream); } void Client::data_available() @@ -90,11 +93,19 @@ void Client::list_directory(const FS::Path &dn) 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)); string title = stream.get_title(); if(!title.empty()) send_reply("title "+title); + if(const Time::TimeDelta &dur = stream.get_duration()) + stream_duration_changed(dur); +} + +void Client::stream_title_changed(const string &title) +{ + send_reply("title "+title); } void Client::stream_duration_changed(const Time::TimeDelta &dur)