aboutsummaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/Output/jack/outputjack.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/plugins/Output/jack/outputjack.cpp b/src/plugins/Output/jack/outputjack.cpp
index 192d42d61..9672c7e72 100644
--- a/src/plugins/Output/jack/outputjack.cpp
+++ b/src/plugins/Output/jack/outputjack.cpp
@@ -85,13 +85,22 @@ qint64 OutputJACK::writeAudio(unsigned char *data, qint64 maxSize)
return -1;
m = JACK_Write(jack_device, (unsigned char*)data, maxSize);
- if (!m)
+ if(JACK_GetState(jack_device) != PLAYING && JACK_GetState(jack_device) != RESET)
+ {
+ qWarning("OutputJACK: jack is not in PLAYING or RESET states");
+ return -1;
+ }
+
+ if (m == 0)
{
usleep(2000);
- if(JACK_GetState(jack_device) != PLAYING)
- m_wait_time += 2000;
+ m_wait_time += 2000;
+
if(m_wait_time > JACK_TIMEOUT)
+ {
+ qWarning("OutputJACK: jack timeout error");
return -1;
+ }
}
else
m_wait_time = 0;