X-Git-Url: https://git.rvb.name/openhab-process.git/blobdiff_plain/0d4dd2a297fe44d645e64a1e5d48c1f37294c571..dec6ca23b56d7ce8f5e535c421c540029c104297:/mqtt-pulse/DEADJOE diff --git a/mqtt-pulse/DEADJOE b/mqtt-pulse/DEADJOE new file mode 100644 index 0000000..7069859 --- /dev/null +++ b/mqtt-pulse/DEADJOE @@ -0,0 +1,147 @@ + +*** These modified files were found in JOE when it aborted on Fri Sep 23 20:31:28 2016 +*** JOE was aborted because the terminal closed + +*** Файл '(БезИмени)' +mqtt_pulse.py + +*** Файл 'mqtt_pulse.py' +#!/usr/bin/python + +from pulsectl import Pulse,PulseLoopStop + +import threading + +sink_name=None +muted=False +volume=None + +paLock1=threading.RLock() +paLock2=threading.RLock() +stopFlag=False + +def Init(): + global pulse + pulse = Pulse("mqtt-pa") + +def Reconnect(): + pulse.close() + Init() + +def GetDefaultOut(): + return pulse.server_info().default_sink_name + +def GetDefaultSink(): + sinkname=GetDefaultOut() + for sink in pulse.sink_list(): + if sink.name==sinkname: + return sink + +def GetDefaultVolume(): + return pulse.volume_get_all_chans(GetDefaultSink()) + +def IsDefaultMuted(): + return GetDefaultSink().mute<>0 + +def MuteDefault(mute = True): + return pulse.mute(GetDefaultSink(),mute) + +def EventListener(callback): + pulse.event_mask_set('all') + pulse.event_callback_set(callback) + pulse.event_listen() + +def EventProcess(ev): + raise PulseLoopStop + +def AcquirePALock(): + paLock1.acquire() + + pulse.event_listen_stop() + paLock2.acquire() + +def ReleasePALock(): + paLock2.release() + paLock1.release() + +def StateProcess(): + global sink_name,muted,volume + try: + tname=threading.current_thread().name +# print tname+">trying to aquire lock" + AcquirePALock() +# print tname+">lock aquired" + current_sink=GetDefaultOut() + current_vol=round(GetDefaultVolume(),2) + current_muted=IsDefaultMuted() + if current_sink<>sink_name: + sink_name=current_sink + print tname+">sink: "+sink_name + if current_vol<>volume: + volume=current_vol + print tname+">volume: "+str(volume) + if current_muted<>muted: + muted=current_muted + print tname+">muted: "+str(muted) + finally: + ReleasePALock() +# print tname+">lock released" + +def PAListener(): + while not stopFlag: +# print "entering wait loop" + EventListener(EventProcess) +# print "event or break happened" + StateProcess() + +def RunBackground(process): + stopFlag=False + thread = threading.Thread(target=process,name="Background") + thread.start() + +def StopBackground(): + global stopFlag + stopFlag=True + pulse.event_listen_stop() + +def CommandGetDefaultOut(): + try: + tname=threading.current_thread().name +# print tname+">trying to aquire lock" + AcquirePALock() +# print tname+">lock aquired" + result=GetDefaultOut() + finally: + ReleasePALock() +# print tname+">lock released" + return result + +def CommandGetDefaultVolume(): + try: + tname=threading.current_thread().name +# print tname+">trying to aquire lock" + AcquirePALock() +# print tname+">lock aquired" + result=GetDefaultVolume() + finally: + ReleasePALock() +# print tname+">lock released" + return result + +def CommandIsDefaultMuted(): + try: + tname=threading.current_thread().name +# print tname+">trying to aquire lock" + AcquirePALock() +# print tname+">lock aquired" + result=IsDefaultMuted() + finally: + ReleasePALock() +# print tname+">lock released" + return result + +*** Файл '* Startup Log *' +Processing '/etc/joe/joerc'... +Processing '/etc/joe/ftyperc'... +Finished processing /etc/joe/ftyperc +Finished processing /etc/joe/joerc