feat: add waveform scope view with resizable divider

- Create primitives.h/c for waveform visualization (time/amplitude display)
- Scope view draws signal as per-pixel min/max envelope (Audacity-style)
- Add draggable divider between spectrogram and scope (30%-80% range)
- Fix selection bounds to use correct spectrogram area (not full viewport)
- Scope syncs with spectrogram zoom/pan for aligned time axis
This commit is contained in:
2026-05-24 23:35:17 -07:00
parent cc58965acc
commit 0e72bf4172
4 changed files with 324 additions and 6 deletions
+6
View File
@@ -121,9 +121,11 @@ OBJECTS :=
GENERATED += $(OBJDIR)/spectrogram.o
GENERATED += $(OBJDIR)/platform_linux.o
GENERATED += $(OBJDIR)/utils.o
GENERATED += $(OBJDIR)/primitives.o
OBJECTS += $(OBJDIR)/spectrogram.o
OBJECTS += $(OBJDIR)/platform_linux.o
OBJECTS += $(OBJDIR)/utils.o
OBJECTS += $(OBJDIR)/primitives.o
# Rules
# #############################################
@@ -199,6 +201,10 @@ $(OBJDIR)/utils.o: src/utils.c
@echo "$(notdir $<)"
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF "$(@:%.o=%.d)" -c "$<"
$(OBJDIR)/primitives.o: src/primitives.c
@echo "$(notdir $<)"
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF "$(@:%.o=%.d)" -c "$<"
-include $(OBJECTS:%.o=%.d)
ifneq (,$(PCH))
-include $(PCH_PLACEHOLDER).d