X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fxinestream.cpp;h=43a7d980d8862310c50bc9cd89133a18621ef2aa;hb=2e629085885b652a10d775695e63bc4892aa2eca;hp=619ec5800872e7d1c843f4eddde41c50178c1193;hpb=e9e15ac445100aee25fb3314a3ad89e7142c33fb;p=xinema.git diff --git a/source/xinestream.cpp b/source/xinestream.cpp index 619ec58..43a7d98 100644 --- a/source/xinestream.cpp +++ b/source/xinestream.cpp @@ -1,4 +1,4 @@ -#include +#include #include "xineengine.h" #include "xinestream.h" @@ -68,6 +68,7 @@ void XineStream::set_state(State s) if(s==state) return; + MutexLock lock(mutex); state = s; signal_state_changed.emit(state); } @@ -86,17 +87,10 @@ void XineStream::tick() void XineStream::check_info() { const char *xt = xine_get_meta_info(stream, XINE_META_INFO_TITLE); - if(xt) + if((xt && title.compare(xt)) || (!xt && !title.empty())) { - if(title.compare(xt)) - { - title = xt; - signal_title_changed.emit(title); - } - } - else if(!title.empty()) - { - title.clear(); + MutexLock lock(mutex); + title = (xt ? xt : string()); signal_title_changed.emit(title); } @@ -106,11 +100,13 @@ void XineStream::check_info() Time::TimeDelta pos = pos_msec*Time::msec; if(dur!=duration) { + MutexLock lock(mutex); duration = dur; signal_duration_changed.emit(duration); } if(pos!=position) { + MutexLock lock(mutex); position = pos; signal_position_changed.emit(position); } @@ -123,12 +119,6 @@ void XineStream::handle_event(const xine_event_t &event) case XINE_EVENT_UI_PLAYBACK_FINISHED: set_state(STOPPED); break; - case XINE_EVENT_PROGRESS: - { - xine_progress_data_t *data = reinterpret_cast(event.data); - IO::print("%s [%d%%]\n", data->description, data->percent); - } - break; } }