Introduce AAC‑Native UI Backbone (StateMachine, Events, Controller, Intent)#3088
Closed
trancer1994 wants to merge 68 commits intoBearWare:masterfrom
Closed
Introduce AAC‑Native UI Backbone (StateMachine, Events, Controller, Intent)#3088trancer1994 wants to merge 68 commits intoBearWare:masterfrom
trancer1994 wants to merge 68 commits intoBearWare:masterfrom
Conversation
….cpp to Client/qtTeamTalk/src/aac/aac_module.cpp
….h to Client/qtTeamTalk/src/aac/aac_module.h
…amTalk/src/aac/ui/aac_ui.cpp
…aac/aac_module.cpp
…lk/aac/state_machine.cpp
…/aac/state_machine.h
…build This commit introduces the first stage of the AAC‑native UI module. It adds the following new components: • aac/state_machine.* – core AAC UI state machine • aac/events.h – event definitions for AAC transitions • aac/ui/aac_ui.* – minimal AAC UI surface • aac/aac_module.* – module entry point and integration layer The new files are added to QTTEAMTALK_SOURCES without modifying any existing build logic, deployment rules, or platform‑specific sections. No behavioural changes are introduced; this commit only provides the structural foundation for future AAC‑native UI work.
…qtTeamTalk/aac/state/ui_state_adapter.cpp
…TeamTalk/aac/state/ui_state_adapter.h
Sorry, I don't know what I was thinking when I pushed that last commit. This is actually the real AAC UI events dispatcher header. The other commit was actually the UI events header for the foundation of the whole UI architecture.
Contributor
Author
|
As the developer of this other thing, I would say #3082, because #3079 is distinct from everything else. But it's really up to you.
From: Sihu Hwang ***@***.***>
Sent: 11 January 2026 08:12
To: BearWare/TeamTalk5 ***@***.***>
Cc: trancer1994 ***@***.***>; Author ***@***.***>
Subject: Re: [BearWare/TeamTalk5] Introduce AAC‑Native UI Backbone (StateMachine, Events, Controller, Intent) (PR #3088)
[https://avatars.githubusercontent.com/u/129564966?s=20&v=4]hwangsihu left a comment (BearWare/TeamTalk5#3088)<#3088 (comment)>
Can we close #3079<#3079> and #3082<#3082>?
There are many PRs containing the same code.
If you don't agree, I think #3079<#3079> should at least be closed.
—
Reply to this email directly, view it on GitHub<#3088 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AMV3XJRW2KJTNLHWYQYI4D34GIAYRAVCNFSM6AAAAACRJRAEHOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTOMZUGIYTQNBWG4>.
You are receiving this because you authored the thread.Message ID: ***@***.***>
|
Author
|
Just to clarify my comment, and ultimately the structure here: these PRs share code because they’re part of a staged sequence for the replacement UI work. They’re not duplicates as such, but they're stacked because they build on each other, so the diffs overlap until the full chain lands.
I’m keeping them separate because splitting or rewriting the shared parts right now would risk breaking the progress I’ve made. I thought you may not have wanted to be hit with thousands of lines of code all at once, which is why I have decided to split everything into manageable sizes. Once the full thing is reviewed, I can reorganise or squash as needed.
With that context, I’d prefer to keep #3079 open, since it represents a distinct step in the sequence.
…________________________________
From: Sihu Hwang ***@***.***>
Sent: 11 January 2026 08:12
To: BearWare/TeamTalk5 ***@***.***>
Cc: trancer1994 ***@***.***>; Author ***@***.***>
Subject: Re: [BearWare/TeamTalk5] Introduce AAC‑Native UI Backbone (StateMachine, Events, Controller, Intent) (PR #3088)
[https://avatars.githubusercontent.com/u/129564966?s=20&v=4]hwangsihu left a comment (BearWare/TeamTalk5#3088)<#3088 (comment)>
Can we close #3079<#3079> and #3082<#3082>?
There are many PRs containing the same code.
If you don't agree, I think #3079<#3079> should at least be closed.
—
Reply to this email directly, view it on GitHub<#3088 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AMV3XJRW2KJTNLHWYQYI4D34GIAYRAVCNFSM6AAAAACRJRAEHOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTOMZUGIYTQNBWG4>.
You are receiving this because you authored the thread.Message ID: ***@***.***>
|
Contributor
|
Superceeded by #3111 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR introduces the AAC‑native UI backbone for QtTeamTalk.
It establishes the architectural foundation for a complete replacement of the existing Qt UI, built around explicit state, predictable transitions, and an event‑driven interaction model.
This PR does not modify any existing UI screens.
Instead, it adds a new, isolated subsystem under QTTeamTalk/aac/ that future PRs will build upon.
Overview
This PR adds the core architectural layers required for the AAC‑native UI:
A standalone, UI‑centric state engine that models:
•
connection lifecycle
•
audio/transmit/mute state
•
backend‑driven transitions
•
UI‑driven transitions
It exposes a clean observer surface for UI components and will serve as the single source of truth for the new UI.
A lightweight event surface used by AAC UI components to express user actions:
•
connect
•
disconnect
•
toggle transmit
•
toggle mute
Includes a small event dispatcher for decoupled UI → controller communication.
A bridge that subscribes to UI events and forwards them into the state machine.
This keeps UI components simple and declarative.
A typed intent layer for UI components that prefer a more structured interface than raw events.
Directory Structure
All new code is isolated under:
QTTeamTalk/aac/
├── core/ ← State machine (UI state engine)
├── ui/
│ ├── events/ ← UI event surface + dispatcher
│ ├── controller/ ← Event → StateMachine bridge
│ └── intent/ ← Optional typed intent API
This keeps the AAC‑native UI fully separate from the existing Qt UI and prepares the project for a gradual, maintainable transition.
Purpose
This PR lays the groundwork for:
•
a fully AAC‑native, accessibility‑first UI
•
predictable and testable UI state transitions
•
a clean separation between UI, state, and backend
•
future screens and widgets built on top of this architecture
•
a complete replacement of the current Qt UI in later PRs
Upcoming PRs will introduce:
•
backend adapter (AAC::Backend)
•
AAC UI shell window
•
connection screen
•
channel list
•
transmit/mute controls
•
settings UI
Notes
•
No existing QtTeamTalk UI code is modified.
•
No backend logic is changed.
•
This PR is intentionally self‑contained and non‑disruptive.
•
All new code is namespaced under AAC to avoid collisions and clarify ownership.