Compare commits

..

No commits in common. "39c10452e8d4c13e6431d67ed62fcb7af7670ced" and "d9ff3a6e4a5dbc55959b049ded1d6707a65efaa6" have entirely different histories.

4 changed files with 40 additions and 83 deletions

View File

@ -1,3 +0,0 @@
{
"python.pythonPath": "C:\\Users\\User\\AppData\\Local\\Programs\\Python\\Python38-32\\python.exe"
}

View File

@ -1,61 +1,23 @@
import asyncio import asyncio
DEBUG=False from winrt.windows.media.control import GlobalSystemMediaTransportControlsSessionManager as MediaManager
try:
from winrt.windows.media.control import GlobalSystemMediaTransportControlsSessionManager as MediaManager
except:
print("DEBUG; winrt disabled")
DEBUG = True
import win32com.client import win32com.client
import time
import pythoncom import pythoncom
import time
from resources import LineState, CLMgrMessage from resources import LineState, CLMgrMessage
import serial phone_mgr = ""
from serial import SerialException lines = []
portName = 'COM3'
def sendSerial(byte):
try:
ser = serial.Serial(port=portName, baudrate=115200)
ser.write(byte)
except SerialException:
print('port already open')
class PhoneLineEventHandler(): class PhoneLineEventHandler():
phone_mgr = None
lines = []
line_selected = None
connected = False
def OnDispOnLineMgrNotification(self, msg, param, returns=""): def OnDispOnLineMgrNotification(self, msg, param, returns=""):
if msg == 0:
if not self.phone_mgr: print(CLMgrMessage.s[msg], LineState.s[param])
self.phone_mgr = win32com.client.Dispatch("CLMgr.ClientLineMgr") for line in lines:
if not self.phone_mgr:
"Swyx not connected!"
else:
print("Swyx connected!")
if self.phone_mgr:
if msg == CLMgrMessage.CLMgrLineStateChangedMessage:
line = self.phone_mgr.DispGetLine(param)
print("Line: {} {}".format(
param,
LineState.s[line.DispState])
)
if line.DispState != LineState.Inactive: if line.DispState != LineState.Inactive:
if line.DispState == LineState.Ringing:
sendSerial(b'y')
else:
sendSerial(b'r')
asyncio.run(try_pause()) asyncio.run(try_pause())
for linenum in range(self.phone_mgr.DispNumberOfLines):
line = self.phone_mgr.DispGetLine(linenum)
if line.DispState != LineState.Inactive:
return True return True
asyncio.run(try_play()) asyncio.run(try_play())
sendSerial(b'o')
return True return True
# async def get_media_info(): # async def get_media_info():
@ -88,7 +50,6 @@ class PhoneLineEventHandler():
async def try_play(): async def try_play():
print("try_play") print("try_play")
if not DEBUG:
sessions = await MediaManager.request_async() sessions = await MediaManager.request_async()
current_session = sessions.get_current_session() current_session = sessions.get_current_session()
if current_session: if current_session:
@ -96,14 +57,16 @@ async def try_play():
async def try_pause(): async def try_pause():
print("try_pause") print("try_pause")
if not DEBUG:
sessions = await MediaManager.request_async() sessions = await MediaManager.request_async()
current_session = sessions.get_current_session() current_session = sessions.get_current_session()
if current_session: if current_session:
await current_session.try_pause_async() await current_session.try_pause_async()
if __name__ == '__main__': if __name__ == '__main__':
win32com.client.WithEvents("CLMgr.ClientLineMgr", PhoneLineEventHandler) phone_mgr = win32com.client.Dispatch("CLMgr.ClientLineMgr")
phone_mgr_event = win32com.client.WithEvents("CLMgr.ClientLineMgr", PhoneLineEventHandler)
for i in range(3):
lines.append(phone_mgr.DispGetLine(i))
while True: while True:
pythoncom.PumpWaitingMessages() #pythoncom.PumpWaitingMessages()
time.sleep(0.1) # Don't use up all our CPU checking constantly time.sleep(0.1) # Don't use up all our CPU checking constantly

View File

@ -1,2 +0,0 @@
winrt
pywin32

View File

@ -16,31 +16,30 @@ class CLMgrMessage():
"CLMgrLineStateChangedMessage", "CLMgrLineStateChangedMessage",
"CLMgrLineSelectionChangedMessage", "CLMgrLineSelectionChangedMessage",
"CLMgrLineDetailsChangedMessage", "CLMgrLineDetailsChangedMessage",
"3", "",
"CLMgrCallDetailsMessage", "CLMgrCallDetailsMessage",
"CLMgrServerDownMessage", "CLMgrServerDownMessage",
"CLMgrServerUpMessage", "CLMgrServerUpMessage",
"CLMgrWaveDeviceChanged", "CLMgrWaveDeviceChanged",
"CLMgrGroupCallNotificationMessage", "CLMgrGroupCallNotificationMessage",
"9", "",
"CLMgrNumberOfLinesChangedMessage", "CLMgrNumberOfLinesChangedMessage",
"CLMgrClientShutDownRequest", "CLMgrClientShutDownRequest",
"12", "",
"13", "",
"14", "",
"15", "",
"16", "",
"17", "",
"18", "",
"19", "",
"20", "",
"21", "",
"22", "",
"23", "",
"24", "",
"25", "",
"26", "",
"27",
"CLMgrLineStateChangedMessageEx" "CLMgrLineStateChangedMessageEx"
] ]