Add progress

This commit is contained in:
Joey Yakimowich-Payne 2026-01-27 18:34:17 -07:00
commit 7f6df30c9e

View file

@ -1191,34 +1191,34 @@ private:
## 11. Implementation Milestone Plan
### Milestone 1: Core PipeWire Integration
### Milestone 1: Core PipeWire Integration
**Estimated Time:** 2-3 weeks
- [ ] Initialize Qt6 project with CMake
- [ ] Integrate libpipewire with `pw_thread_loop`
- [ ] Implement node/port discovery via registry callbacks
- [ ] Implement link creation/destruction
- [x] Initialize Qt6 project with CMake
- [x] Integrate libpipewire with `pw_thread_loop`
- [x] Implement node/port discovery via registry callbacks
- [x] Implement link creation/destruction
- [ ] Create lock-free communication primitives (atomics, ring buffers)
- [ ] **Acceptance Criteria:** CLI test app that lists nodes and creates a link programmatically
- [x] **Acceptance Criteria:** CLI test app that lists nodes and creates a link programmatically
### Milestone 2: QtNodes Integration
### Milestone 2: QtNodes Integration
**Estimated Time:** 2-3 weeks
- [ ] Integrate QtNodes library (submodule or CMake package)
- [ ] Create `AudioNodeDataModel` for PipeWire nodes
- [ ] Map PipeWire ports to QtNodes handles
- [x] Integrate QtNodes library (submodule or CMake package)
- [x] Create `AudioNodeDataModel` for PipeWire nodes
- [x] Map PipeWire ports to QtNodes handles
- [ ] Implement connection validation
- [ ] Create custom node widgets with embedded controls
- [ ] **Acceptance Criteria:** Visual graph editor displays PipeWire nodes and allows dragging connections
- [x] **Acceptance Criteria:** Visual graph editor displays PipeWire nodes and allows dragging connections
### Milestone 3: Real-Time Meters & Performance
### Milestone 3: Real-Time Meters & Performance
**Estimated Time:** 1-2 weeks
- [ ] Implement `AudioLevelMeter` with optimized QGraphicsView
- [ ] Create 30Hz update timer with manual viewport control
- [ ] Integrate PipeWire audio callbacks for meter data
- [ ] Implement lock-free meter data transfer (atomics)
- [x] Implement `AudioLevelMeter` with optimized QGraphicsView
- [x] Create 30Hz update timer with manual viewport control
- [x] Integrate PipeWire audio callbacks for meter data
- [x] Implement lock-free meter data transfer (atomics)
- [ ] Profile and optimize rendering performance
- [ ] **Acceptance Criteria:** Smooth 30Hz meters with no GUI lag, validated with profiler
### Milestone 4: Virtual Devices & State Management
### Milestone 4: Virtual Devices & State Management
**Estimated Time:** 2 weeks
- [ ] Implement virtual sink/source creation via PipeWire adapters
- [ ] Create `PresetManager` with JSON serialization
@ -1227,7 +1227,7 @@ private:
- [ ] Implement auto-reconnect for device hotplug
- [ ] **Acceptance Criteria:** Create virtual device, save preset, restore on restart
### Milestone 5: Mixer View & Volume Control
### Milestone 5: Mixer View & Volume Control
**Estimated Time:** 1-2 weeks
- [ ] Design traditional mixer UI with faders
- [ ] Implement volume slider with PipeWire parameter sync
@ -1236,7 +1236,7 @@ private:
- [ ] Implement undo/redo for volume changes
- [ ] **Acceptance Criteria:** Mixer panel controls node volumes, changes persist in presets
### Milestone 6: Undo/Redo & Polish
### Milestone 6: Undo/Redo & Polish
**Estimated Time:** 1-2 weeks
- [ ] Integrate QUndoStack for all graph operations
- [ ] Implement command classes for link, volume, node operations
@ -1245,7 +1245,7 @@ private:
- [ ] Add copy/paste/duplicate functionality
- [ ] **Acceptance Criteria:** Full undo/redo history, keyboard shortcuts work
### Milestone 7: Error Handling & Edge Cases
### Milestone 7: Error Handling & Edge Cases
**Estimated Time:** 1-2 weeks
- [ ] Implement device unplug/replug detection
- [ ] Handle PipeWire service restart with auto-reconnect
@ -1254,7 +1254,7 @@ private:
- [ ] Add error logging with structured JSON output
- [ ] **Acceptance Criteria:** App survives device unplug and PipeWire restart without crashing
### Milestone 8: Final Polish & Release
### Milestone 8: Final Polish & Release
**Estimated Time:** 1-2 weeks
- [ ] Create application icon and desktop file
- [ ] Implement dark/light theme support