Files
MediaCast3/core/device_list.py
2026-01-15 15:56:11 +08:00

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