Files
L'électron rare 1848368bc2 build: scaffold oscope-sphere project
Context: oscope-sphere is a new openFrameworks app (sibling of
oscope-of) that will render audio analysis on a 3D sphere. This
commit establishes the project tree and reuses the mature capture
and analysis layer from oscope-of.

Approach: Copy four proven source files byte-for-byte from
oscope-of/src/ (no modifications), create the standard oF directory
layout, and add a standalone clang++ test harness that validates two
design assumptions without requiring openFrameworks installed.

Changes:
- Create oscope-sphere/{src,tests,bin/data/shaders} directories
- Copy FFT.h/cpp, AudioAnalyzer.h/cpp, ScopeData.h,
  HantekDevice.h/cpp from oscope-of/src (unmodified)
- Add addons.make and .gitignore for oF build system
- Add tests/check.h: lightweight CHECK/REPORT macros
- Add tests/test_analysis.cpp: two tests (FFT peak at bin 64,
  per-channel isolation via dual-analyzer trick)

Impact: Test harness compiles with plain clang++ -std=c++17 and
passes 5/5 checks, confirming FFT correctness and AudioAnalyzer
channel isolation before any oF integration work begins.
2026-05-18 15:58:14 +02:00

21 lines
954 B
C++

#pragma once
#include <cstdio>
inline int g_checks = 0;
inline int g_fails = 0;
#define CHECK(cond) \
do { \
++g_checks; \
if (!(cond)) { \
++g_fails; \
std::printf("FAIL %s:%d %s\n", __FILE__, __LINE__, #cond); \
} \
} while (0)
#define REPORT() \
do { \
std::printf("%d/%d checks passed\n", g_checks - g_fails, g_checks);\
return g_fails ? 1 : 0; \
} while (0)