-
Notifications
You must be signed in to change notification settings - Fork 76
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ASCS Source Implementation #372
Conversation
zxzxwu
commented
Dec 13, 2023
•
edited
Loading
edited
- Implement ASE state transition for source
- Make ASE emit state changed events
- Replace pdu event with sink which is more reasonable and have a better type annotation
- Implement a LEA app
- Improve CIS handling in device and host
SCO has the same issue. I think one solution could be - again, using microphone input from a web frontend. |
You could read the input from an LC3 encoded audio file, like for the A2DP source example. |
60a3996
to
76ccc80
Compare
a982e15
to
8edb990
Compare
Consider the difficulty of audio prcessing and state synchronization between Python and Web Frontend, I think it's better to host codec in Python instead of JS. The liblc3.wasm file is built from liblc3 source. With wasmtime, it could be executed on all platforms (with CPython only?). Not sure whether there is a better way to pack liblc3? |
Not sure how to solve this...
|
0115f92
to
47fb7f8
Compare
When do you get this error? |
It looks like an issue on my local machine. I tried again with GH workflow and then get
After some investigation, the root cause of this seems to be async lock? |
07286dd
to
7a5f059
Compare
2fe8e17
to
ee2776e
Compare
Since we started working on Broadcast, we may merge this PR first to avoid conflict. |
Yes. I wasn't sure if you were ready with this one yet or not. I'll do a quick re-review today. |
Yes, I think it's ready. |
bumble/profiles/bap.py
Outdated
self._state = new_state | ||
self.emit('state_change', new_state) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I recommend not sending the state in the event. The normal pattern is that if you notify of a change for a value that's already part of an object's properties, you don't need to repeat the value that changed, because the listener can access it from the object itself. For example, in device.py
, when the encryption of the connection changes, we emit connection.emit('connection_encryption_change')
. The listener can then look at connection.encryption
to see what the new value is.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds reasonable. It is really a pain point to use eventemitter - Despite it benefits Bumble a lot, the missing of type hint is something unstable.