]> git.tdb.fi Git - xinema.git/blobdiff - source/xinestream.cpp
Export some simple playback information to clients
[xinema.git] / source / xinestream.cpp
index 69a0c1f44bdf90e69be4d22e4928af5a21843f3b..d152f518e2cb34941d24521d0e205ed04d532e1e 100644 (file)
@@ -25,6 +25,12 @@ XineStream::~XineStream()
        xine_dispose(stream);
 }
 
+string XineStream::get_title() const
+{
+       const char *title = xine_get_meta_info(stream, XINE_META_INFO_TITLE);
+       return (title ? title : string());
+}
+
 void XineStream::play()
 {
        xine_play(stream, 0, 0);
@@ -42,6 +48,21 @@ void XineStream::tick()
                handle_event(*event);
                xine_event_free(event);
        }
+
+       int dur_msec, pos_msec;
+       xine_get_pos_length(stream, 0, &pos_msec, &dur_msec);
+       Time::TimeDelta dur = dur_msec*Time::msec;
+       Time::TimeDelta pos = pos_msec*Time::msec;
+       if(dur!=duration)
+       {
+               duration = dur;
+               signal_duration_changed.emit(duration);
+       }
+       if(pos!=position)
+       {
+               position = pos;
+               signal_position_changed.emit(position);
+       }
 }
 
 void XineStream::handle_event(const xine_event_t &event)