You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.1 KiB
63 lines
1.1 KiB
15 years ago
|
/*
|
||
|
implementation for winskin fft
|
||
|
Copyright (C) 2000 Martin Vogt
|
||
|
|
||
|
This program is free software; you can redistribute it and/or modify
|
||
|
it under the terms of the GNU Library General Public License as published by
|
||
|
the Free Software Foundation.
|
||
|
|
||
|
For more information look at the file COPYRIGHT in this package
|
||
|
|
||
|
*/
|
||
|
|
||
|
|
||
|
#ifndef __WINSKINFFT_IMPL_H
|
||
|
#define __WINSKINFFT_IMPL_H
|
||
|
|
||
|
#include <artsflow.h>
|
||
|
#include <stdsynthmodule.h>
|
||
|
#include "winskinvis.h"
|
||
|
#include "realFFTFilter.h"
|
||
|
#include "visQueue.h"
|
||
|
|
||
|
|
||
|
using namespace std;
|
||
|
using namespace Arts;
|
||
|
|
||
|
namespace Noatun {
|
||
|
|
||
|
class WinSkinFFT_impl : public WinSkinFFT_skel, public StdSynthModule {
|
||
|
|
||
|
public:
|
||
|
|
||
|
WinSkinFFT_impl();
|
||
|
~WinSkinFFT_impl();
|
||
|
|
||
|
void streamInit();
|
||
|
void streamStart();
|
||
|
|
||
|
// in: audio stream inleft, inright;
|
||
|
// out: audio stream outleft, outright;
|
||
|
void calculateBlock(unsigned long samples);
|
||
|
|
||
|
void bandResolution(float res);
|
||
|
float bandResolution();
|
||
|
vector<float> *scope();
|
||
|
|
||
|
private:
|
||
|
RealFFTFilter* realFFTFilter;
|
||
|
int fftBands_short;
|
||
|
int* fftArray;
|
||
|
VISQueue* visQueue;
|
||
|
int bands;
|
||
|
|
||
|
int fragCnt;
|
||
|
int writePos;
|
||
|
int readPos;
|
||
|
};
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
#endif
|