From 7f6df30c9e9218d64f00e5d15d2689e434a6bd8d Mon Sep 17 00:00:00 2001 From: Joey Yakimowich-Payne Date: Tue, 27 Jan 2026 18:34:17 -0700 Subject: [PATCH] Add progress --- PROJECT_PLAN.md | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/PROJECT_PLAN.md b/PROJECT_PLAN.md index f719b11..ea40863 100644 --- a/PROJECT_PLAN.md +++ b/PROJECT_PLAN.md @@ -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