Remote driver now responds so you can know for sure the command worked.
This commit is contained in:
@ -57,6 +57,35 @@ class remoteManager():
|
||||
def shutdown(self):
|
||||
self.env['runtime']['settingsManager'].shutdownDriver('remoteDriver')
|
||||
|
||||
def handleSettingsChangeWithResponse(self, settingsText):
|
||||
if not self.env['runtime']['settingsManager'].getSettingAsBool('remote', 'enableSettingsRemote'):
|
||||
return {"success": False, "message": "Settings remote control is disabled"}
|
||||
|
||||
upperSettingsText = settingsText.upper()
|
||||
try:
|
||||
# set setting
|
||||
if upperSettingsText.startswith(self.setSettingConst):
|
||||
parameterText = settingsText[len(self.setSettingConst):]
|
||||
self.setSettings(parameterText)
|
||||
return {"success": True, "message": f"Setting applied: {parameterText}"}
|
||||
# save as setting
|
||||
elif upperSettingsText.startswith(self.saveAsSettingConst):
|
||||
parameterText = settingsText[len(self.saveAsSettingConst):]
|
||||
self.saveSettings(parameterText)
|
||||
return {"success": True, "message": f"Settings saved to: {parameterText}"}
|
||||
# save setting
|
||||
elif upperSettingsText == self.saveSettingConst:
|
||||
self.saveSettings()
|
||||
return {"success": True, "message": "Settings saved"}
|
||||
# reset setting
|
||||
elif upperSettingsText == self.resetSettingConst:
|
||||
self.resetSettings()
|
||||
return {"success": True, "message": "Settings reset to defaults"}
|
||||
else:
|
||||
return {"success": False, "message": f"Unknown settings command: {settingsText}"}
|
||||
except Exception as e:
|
||||
return {"success": False, "message": f"Settings error: {str(e)}"}
|
||||
|
||||
def handleSettingsChange(self, settingsText):
|
||||
if not self.env['runtime']['settingsManager'].getSettingAsBool('remote', 'enableSettingsRemote'):
|
||||
return
|
||||
@ -77,6 +106,61 @@ class remoteManager():
|
||||
elif upperSettingsText == self.resetSettingConst:
|
||||
self.resetSettings()
|
||||
|
||||
def handleCommandExecutionWithResponse(self, commandText):
|
||||
if not self.env['runtime']['settingsManager'].getSettingAsBool('remote', 'enableCommandRemote'):
|
||||
return {"success": False, "message": "Command remote control is disabled"}
|
||||
|
||||
upperCommandText = commandText.upper()
|
||||
|
||||
try:
|
||||
# say
|
||||
if upperCommandText.startswith(self.sayConst):
|
||||
parameterText = commandText[len(self.sayConst):]
|
||||
self.say(parameterText)
|
||||
return {"success": True, "message": f"Speaking: {parameterText[:50]}{'...' if len(parameterText) > 50 else ''}"}
|
||||
# interrupt
|
||||
elif upperCommandText == self.interruptConst:
|
||||
self.interruptSpeech()
|
||||
return {"success": True, "message": "Speech interrupted"}
|
||||
# temp disable speech
|
||||
elif upperCommandText == self.tempDisableSpeechConst:
|
||||
self.tempDisableSpeech()
|
||||
return {"success": True, "message": "Speech temporarily disabled"}
|
||||
# set vmenu
|
||||
elif upperCommandText.startswith(self.vmenuConst):
|
||||
parameterText = commandText[len(self.vmenuConst):]
|
||||
self.setVMenu(parameterText)
|
||||
return {"success": True, "message": f"VMenu set to: {parameterText}"}
|
||||
# reset vmenu
|
||||
elif upperCommandText == self.resetVmenuConst:
|
||||
self.resetVMenu()
|
||||
return {"success": True, "message": "VMenu reset"}
|
||||
# quit fenrir
|
||||
elif upperCommandText == self.quitAppConst:
|
||||
self.quitFenrir()
|
||||
return {"success": True, "message": "Fenrir shutting down"}
|
||||
# define window
|
||||
elif upperCommandText.startswith(self.defineWindowConst):
|
||||
parameterText = commandText[len(self.defineWindowConst):]
|
||||
self.defineWindow(parameterText)
|
||||
return {"success": True, "message": f"Window defined: {parameterText}"}
|
||||
# reset window
|
||||
elif upperCommandText == self.resetWindowConst:
|
||||
self.resetWindow()
|
||||
return {"success": True, "message": "Window reset"}
|
||||
# set clipboard
|
||||
elif upperCommandText.startswith(self.setClipboardConst):
|
||||
parameterText = commandText[len(self.setClipboardConst):]
|
||||
self.setClipboard(parameterText)
|
||||
return {"success": True, "message": f"Clipboard set: {parameterText[:50]}{'...' if len(parameterText) > 50 else ''}"}
|
||||
elif upperCommandText.startswith(self.exportClipboardConst):
|
||||
self.exportClipboard()
|
||||
return {"success": True, "message": "Clipboard exported to file"}
|
||||
else:
|
||||
return {"success": False, "message": f"Unknown command: {commandText}"}
|
||||
except Exception as e:
|
||||
return {"success": False, "message": f"Command error: {str(e)}"}
|
||||
|
||||
def handleCommandExecution(self, commandText):
|
||||
if not self.env['runtime']['settingsManager'].getSettingAsBool('remote', 'enableCommandRemote'):
|
||||
return
|
||||
@ -185,6 +269,25 @@ class remoteManager():
|
||||
self.env['runtime']['settingsManager'].parseSettingArgs(settingsArgs)
|
||||
self.env['runtime']['screenManager'].updateScreenIgnored()
|
||||
self.env['runtime']['inputManager'].handleDeviceGrab(force = True)
|
||||
def handleRemoteIncommingWithResponse(self, eventData):
|
||||
if not eventData:
|
||||
return {"success": False, "message": "No data received"}
|
||||
|
||||
upperEventData = eventData.upper()
|
||||
self.env['runtime']['debug'].writeDebugOut('remoteManager:handleRemoteIncommingWithResponse: event: ' + str(eventData),debug.debugLevel.INFO)
|
||||
|
||||
try:
|
||||
if upperEventData.startswith(self.settingConst):
|
||||
settingsText = eventData[len(self.settingConst):]
|
||||
return self.handleSettingsChangeWithResponse(settingsText)
|
||||
elif upperEventData.startswith(self.commandConst):
|
||||
commandText = eventData[len(self.commandConst):]
|
||||
return self.handleCommandExecutionWithResponse(commandText)
|
||||
else:
|
||||
return {"success": False, "message": "Unknown command format. Use 'COMMAND ...' or 'SETTING ...'"}
|
||||
except Exception as e:
|
||||
return {"success": False, "message": f"Exception: {str(e)}"}
|
||||
|
||||
def handleRemoteIncomming(self, eventData):
|
||||
if not eventData:
|
||||
return
|
||||
|
Reference in New Issue
Block a user