Add MicroslopSam TTS, Flextalk voice profiles, effects, and engine controls
This commit is contained in:
+15
-3
@@ -87,13 +87,19 @@ The renderer normalizes client events and pushes them to subscribers.
|
||||
| `VOICE_STATE_UPDATE` | User, channel, guild, session, mute, deaf, self-mute, self-deaf |
|
||||
| `VOICE_SPEAKING` | User, speaking flag, channel |
|
||||
|
||||
Discord's dispatcher only sends reliable speaking-start events. The daemon polls the core's
|
||||
`voice.speaking` action (which reads `ChannelRTCStore.getSpeakingParticipants`) once a second and
|
||||
synthesizes the missing start/stop events, feeding dispatcher hints into the same set. Discord
|
||||
sends `speaking` as a bitfield number, so the core treats `0` as false and a missing flag as a
|
||||
start pulse. A user who mutes or leaves also emits a state update that ends the speaking state in
|
||||
the UI.
|
||||
|
||||
## Validation rules
|
||||
|
||||
The core validates all input. The daemon cannot bypass these rules.
|
||||
|
||||
- A channel ID and a user ID must match the snowflake format. The format is 17 to 20 digits.
|
||||
- `content` must be a string. The content must not be empty after a trim.
|
||||
- `content` must not contain control characters.
|
||||
- `content` must be a string. The content must not be empty after a trim.- `content` must not contain control characters.
|
||||
- `content` must not be longer than 2000 characters.
|
||||
- The target channel must exist. The channel type must accept text. The allowed types are
|
||||
`GUILD_TEXT`, `DM`, `GROUP_DM`, `GUILD_ANNOUNCEMENT`, `ANNOUNCEMENT_THREAD`, `PUBLIC_THREAD`,
|
||||
@@ -145,7 +151,13 @@ The core rate limit is a safety net. It does not replace the daemon pacing.
|
||||
| `DM_UNAVAILABLE` | The client cannot create a DM channel. |
|
||||
| `NOT_SUPPORTED` | The client does not offer the internal action. |
|
||||
| `RATE_LIMITED` | The core rate limit rejected the action. |
|
||||
| `INTERNAL` | An unexpected error occurred. The details go to the local log only. |
|
||||
| `INTERNAL` | An unexpected error occurred. The error message is included (for example a lazy module lookup before the renderer finished loading). |
|
||||
|
||||
A renderer command that is sent while the window is destroyed or crashed is rejected at once with
|
||||
`CORE_UNAVAILABLE`, and a command that gets no answer times out after 15 seconds. The bridge socket
|
||||
survives a renderer restart; the daemon retries background work such as device auto-connect. While
|
||||
the renderer is gone, the bridge logs one warning instead of one stack per command, then stays
|
||||
quiet until a command succeeds again.
|
||||
|
||||
## Hooks into upstream files
|
||||
|
||||
|
||||
Reference in New Issue
Block a user