-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFlooMsgBm.py
More file actions
46 lines (42 loc) · 1.49 KB
/
FlooMsgBm.py
File metadata and controls
46 lines (42 loc) · 1.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
from FlooMessage import FlooMessage
class FlooMsgBm(FlooMessage):
"""
BC:BM
BC:BM=xx xx:Bit 0~1:
0 TMAP broadcast, no encrypt
1 TMAP broadcast, encrypted
2 PBP broadcast, no encrypt
3 PBP broadcast, encrypted
Bit 2:
0 Broadcast in standard quality
1 Broadcast in high quality
Bit 3:
0 Maintain broadcast for 3 minutes after USB audio playback ends
1 Stop broadcasting immediately when USB audio playback ends
Bit 4~5:
0 reserved
1 lowest latency
2 lower latency
3 default
Bit 6:
0 Broadcast 1 quality
1 Broadcast both standard and high-quality
Bit 7:
0 Keep 0 dB gain for USB audio input during broadcast
1 Adjust broadcast volume when USB volume changes
BM=xx
"""
HEADER = "BM"
def __init__(self, isSend, mode = None):
self.mode = mode
if mode != None:
modStr = "%02X" % mode
super().__init__(isSend, FlooMsgBm.HEADER, bytes(modStr, 'ascii'))
else:
super().__init__(isSend, FlooMsgBm.HEADER)
@classmethod
def create_valid_msg(cls, payload: bytes):
msgLen = len(payload)
if msgLen != 5:
return None
return cls(False, int(payload[3:5].decode('ascii'), 16))