Browse Source

Auto reactivate aloop bridge if running linux >= 3.8

tags/v0.9.0
falkTX 12 years ago
parent
commit
408763bf41
1 changed files with 33 additions and 11 deletions
  1. +33
    -11
      src/cadence_aloop_daemon.py

+ 33
- 11
src/cadence_aloop_daemon.py View File

@@ -30,6 +30,13 @@ from PyQt4.QtCore import QProcess

import jacklib

# --------------------------------------------------
# Auto re-activate if on good kernel

global reactivateCounter
reactivateCounter = -1
isKernelGood = os.uname()[2] >= "3.8"

# --------------------------------------------------
# Global loop check

@@ -75,18 +82,26 @@ def sample_rate_callback(newSampleRate, arg):
# listen to jack2 master switch

def client_registration_callback(clientName, register, arg):
global doRunNow
if clientName == b"system" and register:
print("NOTICE: Possible JACK2 master switch")
global bufferSize, sampleRate
doRunNow = True
sampleRate = jacklib.get_sample_rate(client)
global bufferSize, sampleRate, doRunNow
bufferSize = jacklib.get_buffer_size(client)
sampleRate = jacklib.get_sample_rate(client)
doRunNow = True

elif clientName in (b"alsa2jack", b"jack2alsa") and not register:
global doLoop, useZita
if doLoop and not doRunNow:
doLoop = False
print("NOTICE: %s have been stopped, quitting now..." % ("zita-a2j/j2a" if useZita else "alsa_in/out"))
global doLoop, reactivateCounter, useZita
if not doLoop:
return

if isKernelGood:
if reactivateCounter == -1:
reactivateCounter = 0
print("NOTICE: %s has been stopped, waiting 5 secs to reactivate" % ("zita-a2j/j2a" if useZita else "alsa_in/out"))
else:
if doLoop:
doLoop = False
print("NOTICE: %s has been stopped, quitting now..." % ("zita-a2j/j2a" if useZita else "alsa_in/out"))

# --------------------------------------------------
# listen to jack shutdown
@@ -173,13 +188,20 @@ if __name__ == '__main__':
firstStart = True
while doLoop and os.path.exists(checkFile):
if doRunNow:
run_alsa_bridge()
doRunNow = False

if firstStart:
firstStart = False
print("cadence-aloop-daemon started, using %s and %i channels" % ("zita-a2j/j2a" if useZita else "alsa_in/out", channels))

run_alsa_bridge()
doRunNow = False

elif isKernelGood and reactivateCounter >= 0:
if reactivateCounter == 5:
reactivateCounter = -1
doRunNow = True
else:
reactivateCounter += 1

sleep(1)

# Close JACK client


Loading…
Cancel
Save