mirror of
https://github.com/koush/scrypted.git
synced 2026-02-09 00:39:56 +00:00
52 lines
1.6 KiB
Python
52 lines
1.6 KiB
Python
from __future__ import annotations
|
|
from .types import *
|
|
from typing import Optional
|
|
from zipfile import ZipFile
|
|
import sys
|
|
|
|
deviceManager: DeviceManager = None
|
|
systemManager: SystemManager = None
|
|
mediaManager: MediaManager = None
|
|
zip: ZipFile = None
|
|
remote: Any = None
|
|
|
|
def sdk_init(z: ZipFile, r, sm: DeviceManager, dm: SystemManager, mm: MediaManager):
|
|
global zip
|
|
global remote
|
|
global systemManager
|
|
global deviceManager
|
|
global mediaManager
|
|
systemManager = sm
|
|
deviceManager = dm
|
|
mediaManager = mm
|
|
zip = z
|
|
remote = r
|
|
|
|
class ScryptedDeviceBase(DeviceState):
|
|
nativeId: str | None
|
|
deviceState: DeviceState = None
|
|
|
|
def __init__(self, nativeId: str | None = None):
|
|
self.nativeId = nativeId
|
|
|
|
def getScryptedProperty(self, property: str) -> Any:
|
|
if not self.deviceState:
|
|
global deviceManager
|
|
self.deviceState = deviceManager.getDeviceState(self.nativeId)
|
|
return getattr(self.deviceState, property, None)
|
|
|
|
def setScryptedProperty(self, property: str, value: Any):
|
|
if not self.deviceState:
|
|
global deviceManager
|
|
self.deviceState = deviceManager.getDeviceState(self.nativeId)
|
|
setattr(self.deviceState, property, value)
|
|
|
|
async def onDeviceEvent(self, interface: ScryptedInterface, eventData: Any):
|
|
await deviceManager.onDeviceEvent(self.nativeId, interface, eventData)
|
|
|
|
def print(self, *values: object, sep: Optional[str] = ' ',
|
|
end: Optional[str] = '\n',
|
|
flush: bool = True):
|
|
print(*values, sep=sep, end=end, flush=True)
|
|
remote.print(self.nativeId, *values, sep=sep, end=end, flush=flush)
|