#include #include #include #include #include #include #include #include #include "slimproto.h" #include "io.h" #include "visualize.h" #define HISTORY_WIDTH 128 void visualize (struct audio_chunk *chunk) { int i, j, chan; int numsamples; float sample, rms[2]; unsigned short graphic[280]; static unsigned short history[HISTORY_WIDTH]; signed short *buf; unsigned short n, m; signed short sample_signed16; if (!chunk) { fprintf(stderr, "visualize: !chunk\n"); return; } if (!chunk->length) { fprintf(stderr, "visualize: !chunk->length\n"); return; } // calculate RMS power of each channel numsamples = chunk->length / 2 / 2; buf = (signed short *)(chunk->buf); for (chan=0; chan<2; chan++) { rms[chan]=0; for (i=0; i= i) /// graphic[i] |= htons(0x8000); // // if (rms[1] * 280 >= i) // graphic[i] |= htons(0x0001); } for (i=HISTORY_WIDTH-1; i>0; i--) history[i] = history[i-1]; n = 16 * (rms[0] + rms[1]) / 2; m=1; while (n) { m = (m << 1) | 1; n --; } history[0] = htons(m); for (i=0; i