OpenGothic
Open source reimplementation of Gothic I and II
Loading...
Searching...
No Matches
dlscollection.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
riff.h
"
4
#include "
structs.h
"
5
#include "
soundfont.h
"
6
#include "
wave.h
"
7
8
#include <vector>
9
10
namespace
Dx8
{
11
12
class
DlsCollection
final {
13
public
:
14
DlsCollection
(
Riff
&input);
15
16
struct
RgnRange
final {
17
uint16_t
usLow
=0;
18
uint16_t
usHigh
=0;
19
};
20
21
struct
RegionHeader
final {
22
RgnRange
RangeKey
;
23
RgnRange
RangeVelocity
;
24
uint16_t
fusOptions
=0;
25
uint16_t
usKeyGroup
=0;
26
};
27
28
struct
WaveLink
final {
29
uint16_t
fusOptions
=0;
30
uint16_t
usPhaseGroup
=0;
31
uint32_t
ulChannel
=0;
32
uint32_t
ulTableIndex
=0;
33
};
34
35
struct
WaveSample
final {
36
uint32_t
cbSize
=0;
37
uint16_t
usUnityNote
=0;
38
int16_t
sFineTune
=0;
39
int32_t
lAttenuation
=0;
40
uint32_t
fulOptions
=0;
41
uint32_t
cSampleLoops
=0;
42
};
43
44
struct
WaveSampleLoop
final {
45
uint32_t
cbSize
=0;
46
uint32_t
ulLoopType
=0;
47
uint32_t
ulLoopStart
=0;
48
uint32_t
ulLoopLength
=0;
49
};
50
51
class
Region
final {
52
public
:
53
Region
(
Riff
& c);
54
55
RegionHeader
head
;
56
WaveLink
wlink
;
57
WaveSample
waveSample
;
58
std::vector<WaveSampleLoop>
loop
;
59
60
private
:
61
void
implRead(
Riff
&input);
62
};
63
64
struct
ConnectionBlock
final {
65
uint16_t
usSource
=0;
66
uint16_t
usControl
=0;
67
uint16_t
usDestination
=0;
68
uint16_t
usTransform
=0;
69
int32_t
lScale
=0;
70
};
71
72
73
class
Articulator
final {
74
public
:
75
Articulator
(
Riff
& c);
76
std::vector<ConnectionBlock>
connectionBlocks
;
77
};
78
79
struct
MidiLocale
final {
80
uint32_t
ulBank
=0;
81
uint32_t
ulInstrument
=0;
82
};
83
84
struct
InstrumentHeader
final {
85
uint32_t
cRegions
=0;
86
MidiLocale
Locale
;
87
};
88
89
class
Instrument
final {
90
public
:
91
Instrument
(
Riff
& c);
92
93
Info
info
;
94
InstrumentHeader
header
;
95
std::vector<Region>
regions
;
96
std::vector<Articulator>
articulators
;
97
98
private
:
99
void
implRead(
Riff
&input);
100
};
101
102
uint64_t
version
=0;
103
GUID
dlid
;
104
std::vector<Instrument>
instrument
;
105
106
void
dbgDump
()
const
;
107
SoundFont
toSoundfont
(uint32_t dwPatch)
const
;
108
void
save
(std::ostream& fout)
const
;
109
110
const
Wave
*
findWave
(uint8_t note)
const
;
111
112
private
:
113
void
implRead(
Riff
&input);
114
115
std::vector<Wave> wave;
116
mutable
std::shared_ptr<SoundFont::Data> shData;
//FIXME: mutable
117
};
118
119
}
Dx8::DlsCollection::Articulator
Definition
dlscollection.h:73
Dx8::DlsCollection::Articulator::connectionBlocks
std::vector< ConnectionBlock > connectionBlocks
Definition
dlscollection.h:76
Dx8::DlsCollection::Instrument
Definition
dlscollection.h:89
Dx8::DlsCollection::Instrument::header
InstrumentHeader header
Definition
dlscollection.h:94
Dx8::DlsCollection::Instrument::regions
std::vector< Region > regions
Definition
dlscollection.h:95
Dx8::DlsCollection::Instrument::articulators
std::vector< Articulator > articulators
Definition
dlscollection.h:96
Dx8::DlsCollection::Instrument::info
Info info
Definition
dlscollection.h:93
Dx8::DlsCollection::Region
Definition
dlscollection.h:51
Dx8::DlsCollection::Region::waveSample
WaveSample waveSample
Definition
dlscollection.h:57
Dx8::DlsCollection::Region::wlink
WaveLink wlink
Definition
dlscollection.h:56
Dx8::DlsCollection::Region::head
RegionHeader head
Definition
dlscollection.h:55
Dx8::DlsCollection::Region::loop
std::vector< WaveSampleLoop > loop
Definition
dlscollection.h:58
Dx8::DlsCollection
Definition
dlscollection.h:12
Dx8::DlsCollection::instrument
std::vector< Instrument > instrument
Definition
dlscollection.h:104
Dx8::DlsCollection::version
uint64_t version
Definition
dlscollection.h:102
Dx8::DlsCollection::dbgDump
void dbgDump() const
Definition
dlscollection.cpp:125
Dx8::DlsCollection::save
void save(std::ostream &fout) const
Dx8::DlsCollection::dlid
GUID dlid
Definition
dlscollection.h:103
Dx8::DlsCollection::findWave
const Wave * findWave(uint8_t note) const
Definition
dlscollection.cpp:139
Dx8::DlsCollection::toSoundfont
SoundFont toSoundfont(uint32_t dwPatch) const
Definition
dlscollection.cpp:121
Dx8::Info
Definition
info.h:7
Dx8::Riff
Definition
riff.h:12
Dx8::SoundFont
Definition
soundfont.h:11
Dx8::Wave
Definition
wave.h:14
Dx8
Definition
band.h:10
riff.h
soundfont.h
Dx8::DlsCollection::ConnectionBlock
Definition
dlscollection.h:64
Dx8::DlsCollection::ConnectionBlock::usTransform
uint16_t usTransform
Definition
dlscollection.h:68
Dx8::DlsCollection::ConnectionBlock::usControl
uint16_t usControl
Definition
dlscollection.h:66
Dx8::DlsCollection::ConnectionBlock::usDestination
uint16_t usDestination
Definition
dlscollection.h:67
Dx8::DlsCollection::ConnectionBlock::lScale
int32_t lScale
Definition
dlscollection.h:69
Dx8::DlsCollection::ConnectionBlock::usSource
uint16_t usSource
Definition
dlscollection.h:65
Dx8::DlsCollection::InstrumentHeader
Definition
dlscollection.h:84
Dx8::DlsCollection::InstrumentHeader::cRegions
uint32_t cRegions
Definition
dlscollection.h:85
Dx8::DlsCollection::InstrumentHeader::Locale
MidiLocale Locale
Definition
dlscollection.h:86
Dx8::DlsCollection::MidiLocale
Definition
dlscollection.h:79
Dx8::DlsCollection::MidiLocale::ulInstrument
uint32_t ulInstrument
Definition
dlscollection.h:81
Dx8::DlsCollection::MidiLocale::ulBank
uint32_t ulBank
Definition
dlscollection.h:80
Dx8::DlsCollection::RegionHeader
Definition
dlscollection.h:21
Dx8::DlsCollection::RegionHeader::RangeVelocity
RgnRange RangeVelocity
Definition
dlscollection.h:23
Dx8::DlsCollection::RegionHeader::RangeKey
RgnRange RangeKey
Definition
dlscollection.h:22
Dx8::DlsCollection::RegionHeader::fusOptions
uint16_t fusOptions
Definition
dlscollection.h:24
Dx8::DlsCollection::RegionHeader::usKeyGroup
uint16_t usKeyGroup
Definition
dlscollection.h:25
Dx8::DlsCollection::RgnRange
Definition
dlscollection.h:16
Dx8::DlsCollection::RgnRange::usHigh
uint16_t usHigh
Definition
dlscollection.h:18
Dx8::DlsCollection::RgnRange::usLow
uint16_t usLow
Definition
dlscollection.h:17
Dx8::DlsCollection::WaveLink
Definition
dlscollection.h:28
Dx8::DlsCollection::WaveLink::ulChannel
uint32_t ulChannel
Definition
dlscollection.h:31
Dx8::DlsCollection::WaveLink::fusOptions
uint16_t fusOptions
Definition
dlscollection.h:29
Dx8::DlsCollection::WaveLink::ulTableIndex
uint32_t ulTableIndex
Definition
dlscollection.h:32
Dx8::DlsCollection::WaveLink::usPhaseGroup
uint16_t usPhaseGroup
Definition
dlscollection.h:30
Dx8::DlsCollection::WaveSampleLoop
Definition
dlscollection.h:44
Dx8::DlsCollection::WaveSampleLoop::ulLoopStart
uint32_t ulLoopStart
Definition
dlscollection.h:47
Dx8::DlsCollection::WaveSampleLoop::cbSize
uint32_t cbSize
Definition
dlscollection.h:45
Dx8::DlsCollection::WaveSampleLoop::ulLoopLength
uint32_t ulLoopLength
Definition
dlscollection.h:48
Dx8::DlsCollection::WaveSampleLoop::ulLoopType
uint32_t ulLoopType
Definition
dlscollection.h:46
Dx8::DlsCollection::WaveSample
Definition
dlscollection.h:35
Dx8::DlsCollection::WaveSample::cSampleLoops
uint32_t cSampleLoops
Definition
dlscollection.h:41
Dx8::DlsCollection::WaveSample::sFineTune
int16_t sFineTune
Definition
dlscollection.h:38
Dx8::DlsCollection::WaveSample::usUnityNote
uint16_t usUnityNote
Definition
dlscollection.h:37
Dx8::DlsCollection::WaveSample::fulOptions
uint32_t fulOptions
Definition
dlscollection.h:40
Dx8::DlsCollection::WaveSample::cbSize
uint32_t cbSize
Definition
dlscollection.h:36
Dx8::DlsCollection::WaveSample::lAttenuation
int32_t lAttenuation
Definition
dlscollection.h:39
Dx8::GUID
Definition
structs.h:8
structs.h
wave.h
game
dmusic
dlscollection.h
Generated by
1.9.8