summaryrefslogtreecommitdiff
path: root/src/util/debug.h
blob: c247007aa9e0a3f6ded009de6289f17c3ac5991d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
// This file is part of the 64k demo project.
// It provides conditional debug logging macros for different subsystems.
// These are stripped from final builds but preserved for development/debugging.

#pragma once

#include <cstdio>

// All-or-nothing convenience macro (for pre-commit checks)
// This must be defined BEFORE the individual category checks
#if defined(DEBUG_LOG_ALL)
  #ifndef DEBUG_LOG_AUDIO
    #define DEBUG_LOG_AUDIO
  #endif
  #ifndef DEBUG_LOG_RING_BUFFER
    #define DEBUG_LOG_RING_BUFFER
  #endif
  #ifndef DEBUG_LOG_TRACKER
    #define DEBUG_LOG_TRACKER
  #endif
  #ifndef DEBUG_LOG_SYNTH
    #define DEBUG_LOG_SYNTH
  #endif
  #ifndef DEBUG_LOG_3D
    #define DEBUG_LOG_3D
  #endif
  #ifndef DEBUG_LOG_ASSETS
    #define DEBUG_LOG_ASSETS
  #endif
  #ifndef DEBUG_LOG_GPU
    #define DEBUG_LOG_GPU
  #endif
#endif /* defined(DEBUG_LOG_ALL) */

// Individual debug log category macros
// Define these via CMake or here to enable specific logging

// Audio subsystem debug logs
#if defined(DEBUG_LOG_AUDIO)
  #define DEBUG_AUDIO(...) fprintf(stderr, __VA_ARGS__)
#else
  #define DEBUG_AUDIO(...) ((void)0)
#endif

// Ring buffer debug logs
#if defined(DEBUG_LOG_RING_BUFFER)
  #define DEBUG_RING_BUFFER(...) fprintf(stderr, __VA_ARGS__)
#else
  #define DEBUG_RING_BUFFER(...) ((void)0)
#endif

// Tracker debug logs
#if defined(DEBUG_LOG_TRACKER)
  #define DEBUG_TRACKER(...) fprintf(stderr, __VA_ARGS__)
#else
  #define DEBUG_TRACKER(...) ((void)0)
#endif

// Synth debug logs
#if defined(DEBUG_LOG_SYNTH)
  #define DEBUG_SYNTH(...) fprintf(stderr, __VA_ARGS__)
#else
  #define DEBUG_SYNTH(...) ((void)0)
#endif

// 3D rendering debug logs
#if defined(DEBUG_LOG_3D)
  #define DEBUG_3D(...) fprintf(stderr, __VA_ARGS__)
#else
  #define DEBUG_3D(...) ((void)0)
#endif

// Asset system debug logs
#if defined(DEBUG_LOG_ASSETS)
  #define DEBUG_ASSETS(...) fprintf(stderr, __VA_ARGS__)
#else
  #define DEBUG_ASSETS(...) ((void)0)
#endif

// GPU/WebGPU debug logs
#if defined(DEBUG_LOG_GPU)
  #define DEBUG_GPU(...) fprintf(stderr, __VA_ARGS__)
#else
  #define DEBUG_GPU(...) ((void)0)
#endif