mirror of
https://gitee.com/yqsphp/MediaCast.git
synced 2026-05-20 11:45:58 +08:00
65 lines
1.9 KiB
Python
65 lines
1.9 KiB
Python
class DeviceList:
|
|
def __init__(self):
|
|
"""
|
|
已选中的设备列表
|
|
"""
|
|
#已选中设备 {uuid, {stat:播放状态,dlna:设备控制类,pause:暂停状态}}
|
|
self.list = {}
|
|
|
|
def add_device(self, device):
|
|
"""
|
|
添加设备信息
|
|
:param device:
|
|
:param controller:
|
|
:return:
|
|
"""
|
|
if device["udn"] not in self.list:
|
|
self.list.setdefault(device["udn"], {"stat":False, "location":device["location"], "controller": None, "pause": False})
|
|
return self.list[device["udn"]]
|
|
|
|
def update_device(self, device, stat, controller = None, pause = None, location = None):
|
|
"""
|
|
更新设备信息
|
|
:param device:设备
|
|
:param stat:设备状态播放 bool
|
|
:param controller:控制对象
|
|
:param pause: 暂停状态
|
|
:param location: 设备文档地址
|
|
:return:
|
|
"""
|
|
if device["udn"] in self.list:
|
|
key = device["udn"]
|
|
if controller is None:
|
|
self.list[key]["stat"] = stat
|
|
else:
|
|
self.list[key].update({"stat":stat,"controller":controller})
|
|
if pause is not None:
|
|
self.list[key]["pause"] = pause
|
|
# 设备文档地址
|
|
if location is not None:
|
|
self.list[key]["location"] = location
|
|
|
|
return True
|
|
|
|
def remove_device(self, device):
|
|
"""
|
|
移除设备信息
|
|
:param device:
|
|
:return:
|
|
"""
|
|
self.logger.info(f"移除设备:{device}")
|
|
return True
|
|
|
|
def get_device(self, device):
|
|
"""
|
|
获取当前选中设备
|
|
:param device:
|
|
:return:
|
|
"""
|
|
if device["udn"] in self.list:
|
|
return self.list[device["udn"]]
|
|
return False
|
|
|
|
def get_device_list(self):
|
|
"""获取设备列表"""
|
|
return self.list |