X-Git-Url: http://git.tdb.fi/?p=xinema.git;a=blobdiff_plain;f=source%2Fxinestream.cpp;h=d152f518e2cb34941d24521d0e205ed04d532e1e;hp=69a0c1f44bdf90e69be4d22e4928af5a21843f3b;hb=ed777426d367df15a67082f5dae0911c21472b5f;hpb=de7f120098fc0e4455c532836767d8ed3fc340cc diff --git a/source/xinestream.cpp b/source/xinestream.cpp index 69a0c1f..d152f51 100644 --- a/source/xinestream.cpp +++ b/source/xinestream.cpp @@ -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)