Search
j0ke.net Open Build Service
>
Projects
>
multimedia
>
kaffeine
> mutex.diff
Sign Up
|
Log In
Username
Password
Cancel
Overview
Repositories
Revisions
Requests
Users
Advanced
Attributes
Meta
File mutex.diff of Package kaffeine (Revision 6)
Currently displaying revision
6
,
show latest
--- kaffeine/src/player-parts/xine-part/kxinewidget.cpp +++ kaffeine/src/player-parts/xine-part/kxinewidget.cpp @@ -380,12 +380,13 @@ { debugOut("xine event: channels changed"); int i,channels; - char* lang = new char[128]; + char lang[128]; QString slang; int num; QStringList tmp; bool update=false, sk; + vw->m_mutex.lock(); /*** get audio channels ***/ tmp.append(i18n("auto")); channels = xine_get_stream_info(vw->m_xineStream, XINE_STREAM_INFO_MAX_AUDIO_CHANNEL); @@ -433,8 +434,6 @@ vw->m_currentSub = num; } - delete [] lang; - //check if stream is seekable sk = (bool)xine_get_stream_info(vw->m_xineStream, XINE_STREAM_INFO_SEEKABLE); if ( vw->m_trackIsSeekable!=sk ) { @@ -442,6 +441,7 @@ vw->m_trackIsSeekable = sk; } + vw->m_mutex.unlock(); if ( update ) QApplication::postEvent(vw, new QTimerEvent(TIMER_EVENT_NEW_CHANNELS)); break; @@ -705,7 +705,9 @@ } case TIMER_EVENT_NEW_CHANNELS: { + m_mutex.lock(); emit signalNewChannels(m_audioCh, m_subCh, m_currentAudio, m_currentSub); + m_mutex.unlock(); break; } case TIMER_EVENT_NEW_TITLE: --- kaffeine/src/player-parts/xine-part/kxinewidget.h +++ kaffeine/src/player-parts/xine-part/kxinewidget.h @@ -47,6 +47,7 @@ class QTime; #include <qtimer.h> +#include <qmutex.h> #include <qptrlist.h> #include <qthread.h> #include <X11/Xlib.h> @@ -485,6 +486,7 @@ bool m_trackHasAudio; bool m_trackHasChapters; bool m_trackIsSeekable; + QMutex m_mutex; /* dvb */ signals: