diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2011-08-03 17:27:42 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2011-08-03 17:27:42 +0000 |
| commit | f53f3338f8fedb2790966c3a879275f71004e7f5 (patch) | |
| tree | fe68161f8f451996694f286a68e4e6eba7f90f9e /src/plugins/Output/jack/outputjack.cpp | |
| parent | bd04469dd8d10af7bae41a765dc7c99f26fe20b2 (diff) | |
| download | qmmp-f53f3338f8fedb2790966c3a879275f71004e7f5.tar.gz qmmp-f53f3338f8fedb2790966c3a879275f71004e7f5.tar.bz2 qmmp-f53f3338f8fedb2790966c3a879275f71004e7f5.zip | |
ixed pulseaudio and jack support, updated Russian translation
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2289 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Output/jack/outputjack.cpp')
| -rw-r--r-- | src/plugins/Output/jack/outputjack.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/plugins/Output/jack/outputjack.cpp b/src/plugins/Output/jack/outputjack.cpp index 39548acd4..a08f5efbc 100644 --- a/src/plugins/Output/jack/outputjack.cpp +++ b/src/plugins/Output/jack/outputjack.cpp @@ -31,10 +31,13 @@ #include <stdio.h> #include <string.h> +#define JACK_TIMEOUT 500000L + OutputJACK::OutputJACK(QObject *parent) : Output(parent), m_inited(false), m_configure(false) { JACK_Init(); + m_wait_time = 0; } OutputJACK::~OutputJACK() @@ -89,8 +92,17 @@ qint64 OutputJACK::writeAudio(unsigned char *data, qint64 maxSize) if(!m_configure) return -1; m = JACK_Write(jack_device, (unsigned char*)data, maxSize); + if (!m) + { usleep(2000); + if(JACK_GetState(jack_device) != PLAYING) + m_wait_time += 2000; + if(m_wait_time > JACK_TIMEOUT) + return -1; + } + else + m_wait_time = 0; return m; } @@ -107,4 +119,3 @@ void OutputJACK::uninitialize() if (m_configure) JACK_Close(jack_device); } - |
