must

Форк
0
/
backend_base.py 
93 строки · 1.9 Кб
1
import os
2
import ctypes
3
import log
4

5

6
class BaseWrapper:
7
    def __init__(self) -> None:
8
        self.lib: ctypes.CDLL = None  # noqa
9

10
    def wrap(self, func_name: str, args: tuple = (), res: any = ctypes.c_void_p) -> any:
11
        try:
12
            result = getattr(self.lib, func_name)
13
        except AttributeError:
14
            log.warn('Failed to import function', func_name)
15
            return None
16
        result.argtypes = args
17
        result.restype = res
18
        return result
19

20

21
class BaseMusic:
22
    def __init__(self, fp: str) -> None:
23
        self.fp = fp
24
        self.fn = os.path.basename(fp)
25
        self.fn_no_ext = os.path.splitext(self.fn)[0]
26
        self.type = 'none'
27
        self.paused = False
28
        self.freq = 0.0
29
        self.bits = 0.0
30
        self.length = 0.0
31
        self.pitch = 1.0
32

33
    def play(self) -> None:
34
        pass
35

36
    def stop(self) -> None:
37
        pass
38

39
    def set_paused(self, paused: bool) -> None:
40
        pass
41

42
    def is_playing(self) -> bool:
43
        pass
44

45
    def set_volume(self, volume: float = 1.0) -> None:
46
        pass
47

48
    def set_speed(self, speed: float = 1.0) -> None:
49
        pass
50

51
    def set_pos(self, pos: float) -> None:
52
        pass
53

54
    def get_pos(self) -> float:
55
        pass
56

57
    def destroy(self) -> None:
58
        pass
59

60

61
class BaseBackend:
62
    def __init__(self) -> None:
63
        self.title = 'Base'
64

65
    def init(self) -> None:
66
        pass
67

68
    def open_music(self, fp: str) -> BaseMusic:
69
        pass
70

71
    def quit(self) -> None:
72
        pass
73

74
    def destroy(self) -> None:
75
        pass
76
    
77
    def get_audio_devices_names(self) -> list:
78
        pass
79

80
    def get_current_audio_device_name(self) -> str:
81
        pass
82

83
    def get_audio_drivers(self) -> list:
84
        pass
85

86
    def get_current_audio_driver(self) -> str:
87
        pass
88

89
    def update(self) -> None:
90
        pass
91

92
    def rewind(self) -> None:
93
        pass
94

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.