OpenShot Audio Library | OpenShotAudio
0.3.2
Loading...
Searching...
No Matches
juce_WavAudioFormat.h
1
/*
2
==============================================================================
3
4
This file is part of the JUCE library.
5
Copyright (c) 2017 - ROLI Ltd.
6
7
JUCE is an open source library subject to commercial or open-source
8
licensing.
9
10
By using JUCE, you agree to the terms of both the JUCE 5 End-User License
11
Agreement and JUCE 5 Privacy Policy (both updated and effective as of the
12
27th April 2017).
13
14
End User License Agreement: www.juce.com/juce-5-licence
15
Privacy Policy: www.juce.com/juce-5-privacy-policy
16
17
Or: You may also use this code under the terms of the GPL v3 (see
18
www.gnu.org/licenses).
19
20
JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
21
EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
22
DISCLAIMED.
23
24
==============================================================================
25
*/
26
27
namespace
juce
28
{
29
30
//==============================================================================
38
class
JUCE_API
WavAudioFormat
:
public
AudioFormat
39
{
40
public
:
41
//==============================================================================
43
WavAudioFormat
();
44
46
~WavAudioFormat
()
override
;
47
48
//==============================================================================
49
// BWAV chunk properties:
50
51
static
const
char
*
const
bwavDescription
;
52
static
const
char
*
const
bwavOriginator
;
53
static
const
char
*
const
bwavOriginatorRef
;
54
static
const
char
*
const
bwavOriginationDate
;
55
static
const
char
*
const
bwavOriginationTime
;
56
static
const
char
*
const
bwavCodingHistory
;
66
static
const
char
*
const
bwavTimeReference
;
67
73
static
StringPairArray
createBWAVMetadata (
const
String
& description,
74
const
String
& originator,
75
const
String
& originatorRef,
76
Time
dateAndTime
,
77
int64
timeReferenceSamples
,
78
const
String
& codingHistory);
79
80
//==============================================================================
81
// 'acid' chunk properties:
82
83
static
const
char
*
const
acidOneShot
;
84
static
const
char
*
const
acidRootSet
;
85
static
const
char
*
const
acidStretch
;
86
static
const
char
*
const
acidDiskBased
;
87
static
const
char
*
const
acidizerFlag
;
88
static
const
char
*
const
acidRootNote
;
89
static
const
char
*
const
acidBeats
;
90
static
const
char
*
const
acidDenominator
;
91
static
const
char
*
const
acidNumerator
;
92
static
const
char
*
const
acidTempo
;
94
//==============================================================================
95
// INFO chunk properties:
96
97
static
const
char
*
const
riffInfoArchivalLocation
;
98
static
const
char
*
const
riffInfoArtist
;
99
static
const
char
*
const
riffInfoBaseURL
;
100
static
const
char
*
const
riffInfoCinematographer
;
101
static
const
char
*
const
riffInfoComment
;
102
static
const
char
*
const
riffInfoComment2
;
103
static
const
char
*
const
riffInfoComments
;
104
static
const
char
*
const
riffInfoCommissioned
;
105
static
const
char
*
const
riffInfoCopyright
;
106
static
const
char
*
const
riffInfoCostumeDesigner
;
107
static
const
char
*
const
riffInfoCountry
;
108
static
const
char
*
const
riffInfoCropped
;
109
static
const
char
*
const
riffInfoDateCreated
;
110
static
const
char
*
const
riffInfoDateTimeOriginal
;
111
static
const
char
*
const
riffInfoDefaultAudioStream
;
112
static
const
char
*
const
riffInfoDimension
;
113
static
const
char
*
const
riffInfoDirectory
;
114
static
const
char
*
const
riffInfoDistributedBy
;
115
static
const
char
*
const
riffInfoDotsPerInch
;
116
static
const
char
*
const
riffInfoEditedBy
;
117
static
const
char
*
const
riffInfoEighthLanguage
;
118
static
const
char
*
const
riffInfoEncodedBy
;
119
static
const
char
*
const
riffInfoEndTimecode
;
120
static
const
char
*
const
riffInfoEngineer
;
121
static
const
char
*
const
riffInfoFifthLanguage
;
122
static
const
char
*
const
riffInfoFirstLanguage
;
123
static
const
char
*
const
riffInfoFourthLanguage
;
124
static
const
char
*
const
riffInfoGenre
;
125
static
const
char
*
const
riffInfoKeywords
;
126
static
const
char
*
const
riffInfoLanguage
;
127
static
const
char
*
const
riffInfoLength
;
128
static
const
char
*
const
riffInfoLightness
;
129
static
const
char
*
const
riffInfoLocation
;
130
static
const
char
*
const
riffInfoLogoIconURL
;
131
static
const
char
*
const
riffInfoLogoURL
;
132
static
const
char
*
const
riffInfoMedium
;
133
static
const
char
*
const
riffInfoMoreInfoBannerImage
;
134
static
const
char
*
const
riffInfoMoreInfoBannerURL
;
135
static
const
char
*
const
riffInfoMoreInfoText
;
136
static
const
char
*
const
riffInfoMoreInfoURL
;
137
static
const
char
*
const
riffInfoMusicBy
;
138
static
const
char
*
const
riffInfoNinthLanguage
;
139
static
const
char
*
const
riffInfoNumberOfParts
;
140
static
const
char
*
const
riffInfoOrganisation
;
141
static
const
char
*
const
riffInfoPart
;
142
static
const
char
*
const
riffInfoProducedBy
;
143
static
const
char
*
const
riffInfoProductName
;
144
static
const
char
*
const
riffInfoProductionDesigner
;
145
static
const
char
*
const
riffInfoProductionStudio
;
146
static
const
char
*
const
riffInfoRate
;
147
static
const
char
*
const
riffInfoRated
;
148
static
const
char
*
const
riffInfoRating
;
149
static
const
char
*
const
riffInfoRippedBy
;
150
static
const
char
*
const
riffInfoSecondaryGenre
;
151
static
const
char
*
const
riffInfoSecondLanguage
;
152
static
const
char
*
const
riffInfoSeventhLanguage
;
153
static
const
char
*
const
riffInfoSharpness
;
154
static
const
char
*
const
riffInfoSixthLanguage
;
155
static
const
char
*
const
riffInfoSoftware
;
156
static
const
char
*
const
riffInfoSoundSchemeTitle
;
157
static
const
char
*
const
riffInfoSource
;
158
static
const
char
*
const
riffInfoSourceFrom
;
159
static
const
char
*
const
riffInfoStarring_ISTR
;
160
static
const
char
*
const
riffInfoStarring_STAR
;
161
static
const
char
*
const
riffInfoStartTimecode
;
162
static
const
char
*
const
riffInfoStatistics
;
163
static
const
char
*
const
riffInfoSubject
;
164
static
const
char
*
const
riffInfoTapeName
;
165
static
const
char
*
const
riffInfoTechnician
;
166
static
const
char
*
const
riffInfoThirdLanguage
;
167
static
const
char
*
const
riffInfoTimeCode
;
168
static
const
char
*
const
riffInfoTitle
;
169
static
const
char
*
const
riffInfoTrackNo
;
170
static
const
char
*
const
riffInfoTrackNumber
;
171
static
const
char
*
const
riffInfoURL
;
172
static
const
char
*
const
riffInfoVegasVersionMajor
;
173
static
const
char
*
const
riffInfoVegasVersionMinor
;
174
static
const
char
*
const
riffInfoVersion
;
175
static
const
char
*
const
riffInfoWatermarkURL
;
176
static
const
char
*
const
riffInfoWrittenBy
;
177
static
const
char
*
const
riffInfoYear
;
179
//==============================================================================
181
static
const
char
*
const
ISRC
;
182
184
static
const
char
*
const
tracktionLoopInfo
;
185
186
//==============================================================================
187
Array<int>
getPossibleSampleRates()
override
;
188
Array<int>
getPossibleBitDepths()
override
;
189
bool
canDoStereo()
override
;
190
bool
canDoMono()
override
;
191
bool
isChannelLayoutSupported (
const
AudioChannelSet
&
channelSet
)
override
;
192
193
//==============================================================================
194
AudioFormatReader
* createReaderFor (
InputStream
* sourceStream,
195
bool
deleteStreamIfOpeningFails
)
override
;
196
197
MemoryMappedAudioFormatReader
* createMemoryMappedReader (
const
File
&)
override
;
198
MemoryMappedAudioFormatReader
* createMemoryMappedReader (
FileInputStream
*)
override
;
199
200
AudioFormatWriter
* createWriterFor (
OutputStream
*
streamToWriteTo
,
201
double
sampleRateToUse
,
202
unsigned
int
numberOfChannels,
203
int
bitsPerSample,
204
const
StringPairArray
& metadataValues,
205
int
qualityOptionIndex
)
override
;
206
207
AudioFormatWriter
* createWriterFor (
OutputStream
*
streamToWriteTo
,
208
double
sampleRateToUse
,
209
const
AudioChannelSet
& channelLayout,
210
int
bitsPerSample,
211
const
StringPairArray
& metadataValues,
212
int
qualityOptionIndex
)
override
;
213
using
AudioFormat::createWriterFor;
214
215
//==============================================================================
221
bool
replaceMetadataInFile (
const
File
&
wavFile
,
const
StringPairArray
&
newMetadata
);
222
223
224
private
:
225
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (
WavAudioFormat
)
226
};
227
228
}
// namespace juce
juce::Array
Definition
juce_Array.h:56
juce::AudioChannelSet
Definition
juce_AudioChannelSet.h:47
juce::AudioFormatReader
Definition
juce_AudioFormatReader.h:45
juce::AudioFormatWriter
Definition
juce_AudioFormatWriter.h:45
juce::AudioFormat
Definition
juce_AudioFormat.h:40
juce::FileInputStream
Definition
juce_FileInputStream.h:35
juce::File
Definition
juce_File.h:41
juce::InputStream
Definition
juce_InputStream.h:37
juce::MemoryMappedAudioFormatReader
Definition
juce_MemoryMappedAudioFormatReader.h:48
juce::OutputStream
Definition
juce_OutputStream.h:38
juce::StringPairArray
Definition
juce_StringPairArray.h:35
juce::String
Definition
juce_String.h:39
juce::Time
Definition
juce_Time.h:37
juce::WavAudioFormat
Definition
juce_WavAudioFormat.h:39
juce::WavAudioFormat::riffInfoCopyright
static const char *const riffInfoCopyright
Definition
juce_WavAudioFormat.h:105
juce::WavAudioFormat::acidRootSet
static const char *const acidRootSet
Definition
juce_WavAudioFormat.h:84
juce::WavAudioFormat::riffInfoDirectory
static const char *const riffInfoDirectory
Definition
juce_WavAudioFormat.h:113
juce::WavAudioFormat::bwavCodingHistory
static const char *const bwavCodingHistory
Definition
juce_WavAudioFormat.h:56
juce::WavAudioFormat::bwavTimeReference
static const char *const bwavTimeReference
Definition
juce_WavAudioFormat.h:66
juce::WavAudioFormat::acidDiskBased
static const char *const acidDiskBased
Definition
juce_WavAudioFormat.h:86
juce::WavAudioFormat::acidOneShot
static const char *const acidOneShot
Definition
juce_WavAudioFormat.h:83
juce::WavAudioFormat::riffInfoOrganisation
static const char *const riffInfoOrganisation
Definition
juce_WavAudioFormat.h:140
juce::WavAudioFormat::riffInfoFirstLanguage
static const char *const riffInfoFirstLanguage
Definition
juce_WavAudioFormat.h:122
juce::WavAudioFormat::riffInfoEncodedBy
static const char *const riffInfoEncodedBy
Definition
juce_WavAudioFormat.h:118
juce::WavAudioFormat::riffInfoCommissioned
static const char *const riffInfoCommissioned
Definition
juce_WavAudioFormat.h:104
juce::WavAudioFormat::riffInfoMusicBy
static const char *const riffInfoMusicBy
Definition
juce_WavAudioFormat.h:137
juce::WavAudioFormat::riffInfoSharpness
static const char *const riffInfoSharpness
Definition
juce_WavAudioFormat.h:153
juce::WavAudioFormat::riffInfoStatistics
static const char *const riffInfoStatistics
Definition
juce_WavAudioFormat.h:162
juce::WavAudioFormat::riffInfoNinthLanguage
static const char *const riffInfoNinthLanguage
Definition
juce_WavAudioFormat.h:138
juce::WavAudioFormat::riffInfoDefaultAudioStream
static const char *const riffInfoDefaultAudioStream
Definition
juce_WavAudioFormat.h:111
juce::WavAudioFormat::riffInfoGenre
static const char *const riffInfoGenre
Definition
juce_WavAudioFormat.h:124
juce::WavAudioFormat::riffInfoMoreInfoBannerImage
static const char *const riffInfoMoreInfoBannerImage
Definition
juce_WavAudioFormat.h:133
juce::WavAudioFormat::riffInfoVegasVersionMajor
static const char *const riffInfoVegasVersionMajor
Definition
juce_WavAudioFormat.h:172
juce::WavAudioFormat::riffInfoLocation
static const char *const riffInfoLocation
Definition
juce_WavAudioFormat.h:129
juce::WavAudioFormat::riffInfoRate
static const char *const riffInfoRate
Definition
juce_WavAudioFormat.h:146
juce::WavAudioFormat::riffInfoCostumeDesigner
static const char *const riffInfoCostumeDesigner
Definition
juce_WavAudioFormat.h:106
juce::WavAudioFormat::riffInfoVersion
static const char *const riffInfoVersion
Definition
juce_WavAudioFormat.h:174
juce::WavAudioFormat::riffInfoLightness
static const char *const riffInfoLightness
Definition
juce_WavAudioFormat.h:128
juce::WavAudioFormat::riffInfoProductionStudio
static const char *const riffInfoProductionStudio
Definition
juce_WavAudioFormat.h:145
juce::WavAudioFormat::riffInfoProducedBy
static const char *const riffInfoProducedBy
Definition
juce_WavAudioFormat.h:142
juce::WavAudioFormat::riffInfoEighthLanguage
static const char *const riffInfoEighthLanguage
Definition
juce_WavAudioFormat.h:117
juce::WavAudioFormat::riffInfoCropped
static const char *const riffInfoCropped
Definition
juce_WavAudioFormat.h:108
juce::WavAudioFormat::riffInfoRating
static const char *const riffInfoRating
Definition
juce_WavAudioFormat.h:148
juce::WavAudioFormat::riffInfoURL
static const char *const riffInfoURL
Definition
juce_WavAudioFormat.h:171
juce::WavAudioFormat::ISRC
static const char *const ISRC
Definition
juce_WavAudioFormat.h:181
juce::WavAudioFormat::riffInfoMoreInfoBannerURL
static const char *const riffInfoMoreInfoBannerURL
Definition
juce_WavAudioFormat.h:134
juce::WavAudioFormat::riffInfoStartTimecode
static const char *const riffInfoStartTimecode
Definition
juce_WavAudioFormat.h:161
juce::WavAudioFormat::bwavOriginatorRef
static const char *const bwavOriginatorRef
Definition
juce_WavAudioFormat.h:53
juce::WavAudioFormat::riffInfoTitle
static const char *const riffInfoTitle
Definition
juce_WavAudioFormat.h:168
juce::WavAudioFormat::riffInfoArtist
static const char *const riffInfoArtist
Definition
juce_WavAudioFormat.h:98
juce::WavAudioFormat::riffInfoSixthLanguage
static const char *const riffInfoSixthLanguage
Definition
juce_WavAudioFormat.h:154
juce::WavAudioFormat::riffInfoSecondaryGenre
static const char *const riffInfoSecondaryGenre
Definition
juce_WavAudioFormat.h:150
juce::WavAudioFormat::riffInfoFifthLanguage
static const char *const riffInfoFifthLanguage
Definition
juce_WavAudioFormat.h:121
juce::WavAudioFormat::riffInfoDotsPerInch
static const char *const riffInfoDotsPerInch
Definition
juce_WavAudioFormat.h:115
juce::WavAudioFormat::riffInfoDistributedBy
static const char *const riffInfoDistributedBy
Definition
juce_WavAudioFormat.h:114
juce::WavAudioFormat::riffInfoStarring_ISTR
static const char *const riffInfoStarring_ISTR
Definition
juce_WavAudioFormat.h:159
juce::WavAudioFormat::riffInfoProductName
static const char *const riffInfoProductName
Definition
juce_WavAudioFormat.h:143
juce::WavAudioFormat::riffInfoKeywords
static const char *const riffInfoKeywords
Definition
juce_WavAudioFormat.h:125
juce::WavAudioFormat::riffInfoRippedBy
static const char *const riffInfoRippedBy
Definition
juce_WavAudioFormat.h:149
juce::WavAudioFormat::riffInfoLanguage
static const char *const riffInfoLanguage
Definition
juce_WavAudioFormat.h:126
juce::WavAudioFormat::riffInfoDateTimeOriginal
static const char *const riffInfoDateTimeOriginal
Definition
juce_WavAudioFormat.h:110
juce::WavAudioFormat::acidizerFlag
static const char *const acidizerFlag
Definition
juce_WavAudioFormat.h:87
juce::WavAudioFormat::riffInfoBaseURL
static const char *const riffInfoBaseURL
Definition
juce_WavAudioFormat.h:99
juce::WavAudioFormat::riffInfoProductionDesigner
static const char *const riffInfoProductionDesigner
Definition
juce_WavAudioFormat.h:144
juce::WavAudioFormat::acidDenominator
static const char *const acidDenominator
Definition
juce_WavAudioFormat.h:90
juce::WavAudioFormat::riffInfoVegasVersionMinor
static const char *const riffInfoVegasVersionMinor
Definition
juce_WavAudioFormat.h:173
juce::WavAudioFormat::riffInfoLength
static const char *const riffInfoLength
Definition
juce_WavAudioFormat.h:127
juce::WavAudioFormat::riffInfoTechnician
static const char *const riffInfoTechnician
Definition
juce_WavAudioFormat.h:165
juce::WavAudioFormat::riffInfoSoftware
static const char *const riffInfoSoftware
Definition
juce_WavAudioFormat.h:155
juce::WavAudioFormat::riffInfoStarring_STAR
static const char *const riffInfoStarring_STAR
Definition
juce_WavAudioFormat.h:160
juce::WavAudioFormat::riffInfoDateCreated
static const char *const riffInfoDateCreated
Definition
juce_WavAudioFormat.h:109
juce::WavAudioFormat::riffInfoSeventhLanguage
static const char *const riffInfoSeventhLanguage
Definition
juce_WavAudioFormat.h:152
juce::WavAudioFormat::acidBeats
static const char *const acidBeats
Definition
juce_WavAudioFormat.h:89
juce::WavAudioFormat::riffInfoLogoIconURL
static const char *const riffInfoLogoIconURL
Definition
juce_WavAudioFormat.h:130
juce::WavAudioFormat::tracktionLoopInfo
static const char *const tracktionLoopInfo
Definition
juce_WavAudioFormat.h:184
juce::WavAudioFormat::acidNumerator
static const char *const acidNumerator
Definition
juce_WavAudioFormat.h:91
juce::WavAudioFormat::bwavOriginationDate
static const char *const bwavOriginationDate
Definition
juce_WavAudioFormat.h:54
juce::WavAudioFormat::riffInfoComments
static const char *const riffInfoComments
Definition
juce_WavAudioFormat.h:103
juce::WavAudioFormat::riffInfoNumberOfParts
static const char *const riffInfoNumberOfParts
Definition
juce_WavAudioFormat.h:139
juce::WavAudioFormat::bwavDescription
static const char *const bwavDescription
Definition
juce_WavAudioFormat.h:51
juce::WavAudioFormat::riffInfoSoundSchemeTitle
static const char *const riffInfoSoundSchemeTitle
Definition
juce_WavAudioFormat.h:156
juce::WavAudioFormat::riffInfoWatermarkURL
static const char *const riffInfoWatermarkURL
Definition
juce_WavAudioFormat.h:175
juce::WavAudioFormat::riffInfoTrackNo
static const char *const riffInfoTrackNo
Definition
juce_WavAudioFormat.h:169
juce::WavAudioFormat::riffInfoMedium
static const char *const riffInfoMedium
Definition
juce_WavAudioFormat.h:132
juce::WavAudioFormat::acidStretch
static const char *const acidStretch
Definition
juce_WavAudioFormat.h:85
juce::WavAudioFormat::riffInfoThirdLanguage
static const char *const riffInfoThirdLanguage
Definition
juce_WavAudioFormat.h:166
juce::WavAudioFormat::bwavOriginationTime
static const char *const bwavOriginationTime
Definition
juce_WavAudioFormat.h:55
juce::WavAudioFormat::riffInfoArchivalLocation
static const char *const riffInfoArchivalLocation
Definition
juce_WavAudioFormat.h:97
juce::WavAudioFormat::riffInfoMoreInfoText
static const char *const riffInfoMoreInfoText
Definition
juce_WavAudioFormat.h:135
juce::WavAudioFormat::riffInfoCinematographer
static const char *const riffInfoCinematographer
Definition
juce_WavAudioFormat.h:100
juce::WavAudioFormat::riffInfoFourthLanguage
static const char *const riffInfoFourthLanguage
Definition
juce_WavAudioFormat.h:123
juce::WavAudioFormat::riffInfoSubject
static const char *const riffInfoSubject
Definition
juce_WavAudioFormat.h:163
juce::WavAudioFormat::riffInfoRated
static const char *const riffInfoRated
Definition
juce_WavAudioFormat.h:147
juce::WavAudioFormat::riffInfoDimension
static const char *const riffInfoDimension
Definition
juce_WavAudioFormat.h:112
juce::WavAudioFormat::riffInfoEditedBy
static const char *const riffInfoEditedBy
Definition
juce_WavAudioFormat.h:116
juce::WavAudioFormat::riffInfoYear
static const char *const riffInfoYear
Definition
juce_WavAudioFormat.h:177
juce::WavAudioFormat::riffInfoComment2
static const char *const riffInfoComment2
Definition
juce_WavAudioFormat.h:102
juce::WavAudioFormat::riffInfoTrackNumber
static const char *const riffInfoTrackNumber
Definition
juce_WavAudioFormat.h:170
juce::WavAudioFormat::riffInfoEngineer
static const char *const riffInfoEngineer
Definition
juce_WavAudioFormat.h:120
juce::WavAudioFormat::riffInfoWrittenBy
static const char *const riffInfoWrittenBy
Definition
juce_WavAudioFormat.h:176
juce::WavAudioFormat::riffInfoTimeCode
static const char *const riffInfoTimeCode
Definition
juce_WavAudioFormat.h:167
juce::WavAudioFormat::riffInfoSourceFrom
static const char *const riffInfoSourceFrom
Definition
juce_WavAudioFormat.h:158
juce::WavAudioFormat::riffInfoSource
static const char *const riffInfoSource
Definition
juce_WavAudioFormat.h:157
juce::WavAudioFormat::riffInfoLogoURL
static const char *const riffInfoLogoURL
Definition
juce_WavAudioFormat.h:131
juce::WavAudioFormat::riffInfoCountry
static const char *const riffInfoCountry
Definition
juce_WavAudioFormat.h:107
juce::WavAudioFormat::riffInfoSecondLanguage
static const char *const riffInfoSecondLanguage
Definition
juce_WavAudioFormat.h:151
juce::WavAudioFormat::riffInfoComment
static const char *const riffInfoComment
Definition
juce_WavAudioFormat.h:101
juce::WavAudioFormat::riffInfoTapeName
static const char *const riffInfoTapeName
Definition
juce_WavAudioFormat.h:164
juce::WavAudioFormat::riffInfoEndTimecode
static const char *const riffInfoEndTimecode
Definition
juce_WavAudioFormat.h:119
juce::WavAudioFormat::riffInfoPart
static const char *const riffInfoPart
Definition
juce_WavAudioFormat.h:141
juce::WavAudioFormat::bwavOriginator
static const char *const bwavOriginator
Definition
juce_WavAudioFormat.h:52
juce::WavAudioFormat::acidTempo
static const char *const acidTempo
Definition
juce_WavAudioFormat.h:92
juce::WavAudioFormat::acidRootNote
static const char *const acidRootNote
Definition
juce_WavAudioFormat.h:88
juce::WavAudioFormat::riffInfoMoreInfoURL
static const char *const riffInfoMoreInfoURL
Definition
juce_WavAudioFormat.h:136
JuceLibraryCode
modules
juce_audio_formats
codecs
juce_WavAudioFormat.h
Generated by
1.9.8