-
Notifications
You must be signed in to change notification settings - Fork 0
/
MODRipper.h
71 lines (57 loc) · 1.81 KB
/
MODRipper.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
/***********************************************************************
* Copyright 2007-2010 Michael Drueing <[email protected]>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License or (at your option) version 3 or any later version
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
***********************************************************************/
#ifndef MOD_RIPPER_H
#define MOD_RIPPER_H
#include "Ripper.h"
enum ModType
{
MT_MOD = 0,
MT_669 = 1,
MT_S3M = 2,
};
struct ModInfoStruct {
int m_channels;
int m_instruments;
bool m_alt8chn;// for FLT8 -- 2x4 channels instead of 8channels
ModType m_modType;
ModInfoStruct(ModType mType, int channels = -1, int instruments = 31, bool alt8chn = false)
{
m_modType = mType;
m_channels = channels;
m_instruments = instruments;
m_alt8chn = alt8chn;
}
};
class MODRipper : public Ripper
{
private:
static const char *s_name;
static const HeaderStruct s_headers[];
bool IsValidMODSampleHeader(unsigned char *pos, unsigned long *totalSampleSize);
bool IsValid669SampleHeader(unsigned char *pos, unsigned long *totalSampleSize);
public:
MODRipper() : Ripper()
{
}
virtual ~MODRipper()
{
};
IMPLEMENT_DEFAULT_RIPPER_INTERFACE
virtual bool checkLocation(unsigned char *pos, const HeaderStruct *header, FoundStruct *found);
virtual bool checkCompileAssertions();
};
#endif