mirror of
https://github.com/Astatin3/oliver-keypad-thing.git
synced 2026-06-09 00:28:02 -06:00
put sessions = AudioUtilities.GetAllSessions() on another thread
This commit is contained in:
@@ -23,9 +23,11 @@ SLIDER_VALS = [
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
import time
|
||||||
import math
|
import math
|
||||||
import subprocess
|
import subprocess
|
||||||
from serial import Serial
|
from serial import Serial
|
||||||
|
from threading import Thread
|
||||||
from comtypes import CLSCTX_ALL
|
from comtypes import CLSCTX_ALL
|
||||||
from pycaw.pycaw import AudioUtilities, IAudioEndpointVolume, ISimpleAudioVolume
|
from pycaw.pycaw import AudioUtilities, IAudioEndpointVolume, ISimpleAudioVolume
|
||||||
|
|
||||||
@@ -33,13 +35,21 @@ devices = AudioUtilities.GetSpeakers()
|
|||||||
interface = devices.Activate(IAudioEndpointVolume._iid_, CLSCTX_ALL, None)
|
interface = devices.Activate(IAudioEndpointVolume._iid_, CLSCTX_ALL, None)
|
||||||
masterVolume = interface.QueryInterface(IAudioEndpointVolume)
|
masterVolume = interface.QueryInterface(IAudioEndpointVolume)
|
||||||
|
|
||||||
|
sessions = None
|
||||||
|
|
||||||
|
def device_update_thread():
|
||||||
|
global sessions
|
||||||
|
while True:
|
||||||
|
sessions = AudioUtilities.GetAllSessions()
|
||||||
|
time.sleep(1)
|
||||||
|
|
||||||
def setMasterVolume(num: int):
|
def setMasterVolume(num: int):
|
||||||
if num < 0 or num > 100: return
|
if num < 0 or num > 100: return
|
||||||
masterVolume.SetMasterVolumeLevelScalar((num/100), None)
|
masterVolume.SetMasterVolumeLevelScalar((num/100), None)
|
||||||
|
|
||||||
def setProgramVolume(num: int, program: str):
|
def setProgramVolume(num: int, program: str):
|
||||||
if num < 0 or num > 100: return
|
if num < 0 or num > 100: return
|
||||||
sessions = AudioUtilities.GetAllSessions()
|
if sessions is None: return
|
||||||
for session in sessions:
|
for session in sessions:
|
||||||
volume = session._ctl.QueryInterface(ISimpleAudioVolume)
|
volume = session._ctl.QueryInterface(ISimpleAudioVolume)
|
||||||
if session.Process and session.Process.name() == program:
|
if session.Process and session.Process.name() == program:
|
||||||
@@ -91,6 +101,9 @@ serial_ports()
|
|||||||
|
|
||||||
ser = Serial(SERIAL_PORT, SERIAL_BUAD_RATE)
|
ser = Serial(SERIAL_PORT, SERIAL_BUAD_RATE)
|
||||||
|
|
||||||
|
sessions_thread = Thread(target = device_update_thread)
|
||||||
|
sessions_thread.start()
|
||||||
|
|
||||||
while ser.is_open:
|
while ser.is_open:
|
||||||
cc=str(ser.readline())
|
cc=str(ser.readline())
|
||||||
val = cc[2:][:-5].split('|')
|
val = cc[2:][:-5].split('|')
|
||||||
@@ -101,3 +114,5 @@ while ser.is_open:
|
|||||||
case 1: # Slider
|
case 1: # Slider
|
||||||
level = (int(val[2])/1024)*100
|
level = (int(val[2])/1024)*100
|
||||||
handle_slider(int(val[1]), level)
|
handle_slider(int(val[1]), level)
|
||||||
|
|
||||||
|
sessions_thread.join()
|
||||||
|
|||||||
Reference in New Issue
Block a user