-
Notifications
You must be signed in to change notification settings - Fork 2
/
audiopattern.h
107 lines (84 loc) · 2.79 KB
/
audiopattern.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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#ifndef CAMX_AUDIOPATTERN
#define CAMX_AUDIOPATTERN 1
#define REPLACEAUDIOFILE_CHECKFORREGION 1
#include "defines.h"
#include "object.h"
#include "audioregion.h"
#include "audioevent.h"
#include "objectpattern.h"
class Edit_Arrange;
class AudioDevice;
class AudioPattern:public Seq_Pattern
{
public:
AudioPattern();
void InitOffSetEdit(int mode);
bool SetOffSetStart(OSTART pos,LONGLONG,bool test);
bool SetOffSetEnd(LONGLONG,bool test);
bool IfOffSetStart();
bool IfOffSetEnd();
LONGLONG GetOffSetStart();
LONGLONG GetOffSetEnd();
Seq_Event *FirstEditEvent(){return &audioevent;}
LONGLONG GetFilePosition();
bool SetStart(OSTART);
bool SetNewLoopStart(OSTART);
void StopAllofPattern();
bool SizeAble();
void InitDefaultVolumeCurve(bool force=false);
bool CanBeLooped(){return true;}
void SetAudioMediaTypeAfterRecording();
// Cross Fades
ARES GetCrossFadeVolume(LONGLONG pos);
void RefreshAfterPaste();
void SelectAudioFile(guiWindow *,char *);
void ReplaceAudioHDFileWith(AudioHDFile *,AudioRegion *,int flag=0);
void SetName(char *); //v
void Load(camxFile *);
void Save(camxFile *);
void Load_Ex(camxFile *,Seq_Song *); //v
void Save_Ex(camxFile *); //v
bool CheckObjectID(int cid)
{
if(cid==OBJ_AUDIOPATTERN || cid==OBJ_PATTERN)return true;
return false;
}
int GetAccessCounter(){return accesscounter;}
Seq_Pattern *CreateLoopPattern(int loop,OSTART pos,int flag); // VF
void CloneFX(Seq_Pattern *); //VF
void Clone(Seq_Song *,Seq_Pattern *,OSTART startdiff,int flag); // VF
Seq_Pattern *CreateClone(OSTART startdiff,int flag); // v
int GetCountOfEvents(){return 1;} // 1 audio sample
bool InitPlayback(InitPlay *,int mode); // v
void Delete(bool full); // v
void MovePatternData(OSTART diff,int flag); // v
Seq_Event *FindEventAtPosition(OSTART position,int filter,int icdtype)
{
if(GetPatternStart()>=position) // PatternStart=AudioEvent Start
return &audioevent;
return 0;
}
// Functions
bool OpenAudioPattern();
void CloseAudioFile(bool full);
int QuantizePattern(QuantizeEffect *);
bool SeekSamplesCurrent(int seeksamples);
OSTART GetPatternStart(){return audioevent.ostart;}
OSTART GetPatternEnd(){return GetTickEnd(GetPatternStart());}
//OSTART GetTickLength();
int FillAudioBuffer(Seq_Song *,/*AudioDevice *,*/AudioHardwareBuffer *,RunningAudioFile * /*,bool seek*/); // from track
int FillAudioBuffer(Seq_Song *,AudioHardwareBuffer *); // realtime
int RefreshLoopPositions();
LONGLONG GetAudioSampleStart();
LONGLONG GetAudioSampleEnd();
LONGLONG GetSamples();
OSTART GetTickEnd(OSTART start);
bool CanBeEdited();
AudioEvent audioevent;
AudioRegion *waitforregion,offsetregion;
char *waitforresamplefile,*waitforresampleendfile;
RunningAudioFile *runningfile;
int accesscounter;
bool waitforresample,internrecorded,punch1,punch2;
};
#endif