mirror of
https://github.com/clementine-player/Clementine
synced 2024-12-16 19:31:02 +01:00
66 lines
1022 B
C++
66 lines
1022 B
C++
|
/*
|
||
|
* MilkdropWaveform.hpp
|
||
|
*
|
||
|
* Created on: Jun 25, 2008
|
||
|
* Author: pete
|
||
|
*/
|
||
|
|
||
|
#ifndef MILKDROPWAVEFORM_HPP_
|
||
|
#define MILKDROPWAVEFORM_HPP_
|
||
|
|
||
|
#include "Renderable.hpp"
|
||
|
|
||
|
enum MilkdropWaveformMode
|
||
|
{
|
||
|
Circle=0, RadialBlob, Blob2, Blob3, DerivativeLine, Blob5, Line, DoubleLine
|
||
|
};
|
||
|
|
||
|
|
||
|
class MilkdropWaveform : public RenderItem
|
||
|
{
|
||
|
public:
|
||
|
|
||
|
|
||
|
float x;
|
||
|
float y;
|
||
|
|
||
|
float r;
|
||
|
float g;
|
||
|
float b;
|
||
|
float a;
|
||
|
|
||
|
float mystery;
|
||
|
|
||
|
MilkdropWaveformMode mode;
|
||
|
|
||
|
bool additive;
|
||
|
bool dots;
|
||
|
bool thick;
|
||
|
bool modulateAlphaByVolume;
|
||
|
bool maximizeColors;
|
||
|
float scale;
|
||
|
float smoothing;
|
||
|
|
||
|
MilkdropWaveform();
|
||
|
void Draw(RenderContext &context);
|
||
|
|
||
|
float modOpacityStart;
|
||
|
float modOpacityEnd;
|
||
|
|
||
|
private:
|
||
|
float temp_a;
|
||
|
float rot;
|
||
|
float aspectScale;
|
||
|
int samples;
|
||
|
bool two_waves;
|
||
|
bool loop;
|
||
|
float wavearray[2048][2];
|
||
|
float wavearray2[2048][2];
|
||
|
|
||
|
void MaximizeColors(RenderContext &context);
|
||
|
void ModulateOpacityByVolume(RenderContext &context);
|
||
|
void WaveformMath(RenderContext &context);
|
||
|
|
||
|
};
|
||
|
#endif /* MILKDROPWAVEFORM_HPP_ */
|