0f6f28ac0a0399fe0599fbb4f8fc717277251f7d
[fishladder.git] / vg / vg_debug.h
1 int sfx_debug = 0;
2
3 static void sfx_internal_debug_overlay(void)
4 {
5 if( !sfx_debug ) return;
6
7 // Grab values
8 struct sound_info
9 {
10 float signal;
11 const char *name;
12 u32 cursor, flags;
13
14 u32 buffer_length, clip_start, clip_end;
15 }
16 infos[ SFX_MAX_SYSTEMS ];
17 int num_systems;
18
19 MUTEX_LOCK( sfx_mux_t01 );
20
21 num_systems = sfx_sys_len;
22
23 for( int i = 0; i < sfx_sys_len; i ++ )
24 {
25 sfx_system *sys = sfx_sys + i;
26 struct sound_info *snd = &infos[ i ];
27
28 snd->signal = sys->signal_average;
29 snd->name = sys->name;
30 snd->cursor = sys->cur;
31 snd->flags = sys->flags;
32
33 if( sys->thread_clone )
34 {
35 snd->clip_start = sys->thread_clone->clip_start;
36 snd->clip_end = sys->thread_clone->clip_end;
37 snd->buffer_length = sys->thread_clone->buffer_length;
38 }
39 else
40 {
41 snd->clip_start = 0;
42 snd->clip_end = sys->end;
43 snd->buffer_length = sys->end;
44 }
45 }
46
47 MUTEX_UNLOCK( sfx_mux_t01 );
48
49 // UI part
50 // ========
51
52 // Draw audio stack
53 for( int i = 0; i < num_systems; i ++ )
54 {
55 ui_global_ctx.cursor[2] = 150;
56 ui_global_ctx.cursor[3] = 12;
57
58 u32 alpha = (infos[i].flags & SFX_FLAG_GHOST)? 0x44000000: 0xff000000;
59
60 ui_new_node( &ui_global_ctx );
61 {
62 ui_fill_rect( &ui_global_ctx, ui_global_ctx.cursor, 0x00333333 | alpha );
63
64 ui_px baseline = ui_global_ctx.cursor[0];
65 ui_px width_block_1 = (ui_px)(((float)infos[i].clip_start / (float)infos[i].buffer_length) * 150.0f);
66 ui_px width_block_2 = (ui_px)(((float)(infos[i].buffer_length-infos[i].clip_end) / (float)infos[i].buffer_length) * 150.0f );
67
68 ui_global_ctx.cursor[2] = width_block_1;
69 ui_fill_rect( &ui_global_ctx, ui_global_ctx.cursor, 0x77ffffff );
70
71 ui_global_ctx.cursor[2] = width_block_2;
72 ui_align_right( &ui_global_ctx );
73 ui_fill_rect( &ui_global_ctx, ui_global_ctx.cursor, 0x77ffffff );
74
75 // Cursor
76
77 ui_global_ctx.cursor[2] = 2;
78 ui_global_ctx.cursor[0] = baseline + (ui_px)(((float)infos[i].cursor / (float)infos[i].buffer_length) * 150.0f);
79 ui_fill_rect( &ui_global_ctx, ui_global_ctx.cursor, 0xffffffff );
80
81 ui_global_ctx.cursor[0] = baseline + 2;
82 ui_global_ctx.cursor[1] += 2;
83 ui_text( &ui_global_ctx, infos[i].name, 1, 0 );
84 }
85 ui_end_down( &ui_global_ctx );
86 ui_global_ctx.cursor[1] += 1;
87 }
88 }