aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Ui/qsui/inlines.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/Ui/qsui/inlines.h')
-rw-r--r--src/plugins/Ui/qsui/inlines.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/plugins/Ui/qsui/inlines.h b/src/plugins/Ui/qsui/inlines.h
new file mode 100644
index 000000000..39b81bd57
--- /dev/null
+++ b/src/plugins/Ui/qsui/inlines.h
@@ -0,0 +1,57 @@
+// Copyright (c) 2000-2001 Brad Hughes <bhughes@trolltech.com>
+//
+// Use, modification and distribution is allowed without limitation,
+// warranty, or liability of any kind.
+//
+
+#ifndef INLINES_H
+#define INLINES_H
+
+#include "fft.h"
+
+// *fast* convenience functions
+static inline void calc_freq(short* dest, short *src)
+{
+ static fft_state *state = NULL;
+ float tmp_out[257];
+ int i;
+
+ if (!state)
+ state = fft_init();
+
+ fft_perform(src, tmp_out, state);
+
+ for (i = 0; i < 256; i++)
+ dest[i] = ((int) sqrt(tmp_out[i + 1])) >> 8;
+}
+
+static inline void stereo16_from_multichannel(register short *l,
+ register short *r,
+ register short *s,
+ long cnt, int chan)
+{
+ while (cnt > 0)
+ {
+ l[0] = s[0];
+ r[0] = s[1];
+ s += chan;
+ l++;
+ r++;
+ cnt--;
+ }
+}
+
+static inline void mono16_from_multichannel(register short *l,
+ register short *s,
+ long cnt, int chan)
+{
+ while (cnt > 0)
+ {
+ l[0] = s[0];
+ s += chan;
+ l++;
+ cnt--;
+ }
+}
+
+#endif // INLINES_H