must
/
backend_base.py
93 строки · 1.9 Кб
1import os
2import ctypes
3import log
4
5
6class BaseWrapper:
7def __init__(self) -> None:
8self.lib: ctypes.CDLL = None # noqa
9
10def wrap(self, func_name: str, args: tuple = (), res: any = ctypes.c_void_p) -> any:
11try:
12result = getattr(self.lib, func_name)
13except AttributeError:
14log.warn('Failed to import function', func_name)
15return None
16result.argtypes = args
17result.restype = res
18return result
19
20
21class BaseMusic:
22def __init__(self, fp: str) -> None:
23self.fp = fp
24self.fn = os.path.basename(fp)
25self.fn_no_ext = os.path.splitext(self.fn)[0]
26self.type = 'none'
27self.paused = False
28self.freq = 0.0
29self.bits = 0.0
30self.length = 0.0
31self.pitch = 1.0
32
33def play(self) -> None:
34pass
35
36def stop(self) -> None:
37pass
38
39def set_paused(self, paused: bool) -> None:
40pass
41
42def is_playing(self) -> bool:
43pass
44
45def set_volume(self, volume: float = 1.0) -> None:
46pass
47
48def set_speed(self, speed: float = 1.0) -> None:
49pass
50
51def set_pos(self, pos: float) -> None:
52pass
53
54def get_pos(self) -> float:
55pass
56
57def destroy(self) -> None:
58pass
59
60
61class BaseBackend:
62def __init__(self) -> None:
63self.title = 'Base'
64
65def init(self) -> None:
66pass
67
68def open_music(self, fp: str) -> BaseMusic:
69pass
70
71def quit(self) -> None:
72pass
73
74def destroy(self) -> None:
75pass
76
77def get_audio_devices_names(self) -> list:
78pass
79
80def get_current_audio_device_name(self) -> str:
81pass
82
83def get_audio_drivers(self) -> list:
84pass
85
86def get_current_audio_driver(self) -> str:
87pass
88
89def update(self) -> None:
90pass
91
92def rewind(self) -> None:
93pass
94