-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathShoutVST.h
67 lines (49 loc) · 1.96 KB
/
ShoutVST.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#pragma once
#include "common/audioeffectx.h"
#include "shout/shout.h"
#include "ShoutVSTEditor.h"
#include "ShoutVSTEncoderOGG.h"
#include "ShoutVSTEncoderMP3.h"
//-------------------------------------------------------------------------------------------------------
class ShoutVST : public AudioEffectX
{
public:
ShoutVST(audioMasterCallback audioMaster);
~ShoutVST();
// Processes
virtual void process(float **inputs, float **outputs, long sampleFrames);
virtual void ShoutVST::processReplacing(float **inputs, float **outputs, long sampleFrames);
virtual bool getEffectName(char* name);
virtual bool getVendorString(char* text);
virtual bool getProductString(char* text);
virtual void setParameter (long index, float value);
virtual float getParameter (long index);
virtual void getParameterLabel (long index, char *label);
virtual void getParameterDisplay (long index, char *text);
virtual void getParameterName (long index, char *text);
virtual VstPlugCategory getPlugCategory () { return kPlugCategEffect; }
void Log(const char *fmt, ...);
//static void PrintF(const char *fmt, ...);
bool IsConnected();
bool SendDataToICE(unsigned char *, int);
bool CanDoMP3();
int GetQuality(); // returns 0 - 10
void UpdateMetadata( char * sz );
CRITICAL_SECTION critsec;
protected:
bool InitializeICECasting();
void ProcessICECasting(float **inputs, long sampleFrames);
void StopICECasting();
virtual long getChunk( void** data, bool isPreset = false );
virtual long setChunk( void* data, long byteSize, bool isPreset = false );
void AppendSerialize( char ** szString, char * szKey, char * szValue );
void AppendSerialize( char ** szString, char * szKey, int szValue );
bool bCanDoMP3;
ShoutVSTEncoder * encSelected;
ShoutVSTEncoderOGG encOGG;
ShoutVSTEncoderMP3 encMP3;
ShoutVSTEditor * pEditor;
private:
shout_t * pShout;
bool bStreamConnected;
};