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
27namespace juce
28{
29
30//==============================================================================
38class JUCE_API WavAudioFormat : public AudioFormat
39{
40public:
41 //==============================================================================
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,
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
201 double sampleRateToUse,
202 unsigned int numberOfChannels,
203 int bitsPerSample,
204 const StringPairArray& metadataValues,
205 int qualityOptionIndex) override;
206
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
224private:
225 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (WavAudioFormat)
226};
227
228} // namespace juce
static const char *const riffInfoCopyright
static const char *const acidRootSet
static const char *const riffInfoDirectory
static const char *const bwavCodingHistory
static const char *const bwavTimeReference
static const char *const acidDiskBased
static const char *const acidOneShot
static const char *const riffInfoOrganisation
static const char *const riffInfoFirstLanguage
static const char *const riffInfoEncodedBy
static const char *const riffInfoCommissioned
static const char *const riffInfoMusicBy
static const char *const riffInfoSharpness
static const char *const riffInfoStatistics
static const char *const riffInfoNinthLanguage
static const char *const riffInfoDefaultAudioStream
static const char *const riffInfoGenre
static const char *const riffInfoMoreInfoBannerImage
static const char *const riffInfoVegasVersionMajor
static const char *const riffInfoLocation
static const char *const riffInfoRate
static const char *const riffInfoCostumeDesigner
static const char *const riffInfoVersion
static const char *const riffInfoLightness
static const char *const riffInfoProductionStudio
static const char *const riffInfoProducedBy
static const char *const riffInfoEighthLanguage
static const char *const riffInfoCropped
static const char *const riffInfoRating
static const char *const riffInfoURL
static const char *const ISRC
static const char *const riffInfoMoreInfoBannerURL
static const char *const riffInfoStartTimecode
static const char *const bwavOriginatorRef
static const char *const riffInfoTitle
static const char *const riffInfoArtist
static const char *const riffInfoSixthLanguage
static const char *const riffInfoSecondaryGenre
static const char *const riffInfoFifthLanguage
static const char *const riffInfoDotsPerInch
static const char *const riffInfoDistributedBy
static const char *const riffInfoStarring_ISTR
static const char *const riffInfoProductName
static const char *const riffInfoKeywords
static const char *const riffInfoRippedBy
static const char *const riffInfoLanguage
static const char *const riffInfoDateTimeOriginal
static const char *const acidizerFlag
static const char *const riffInfoBaseURL
static const char *const riffInfoProductionDesigner
static const char *const acidDenominator
static const char *const riffInfoVegasVersionMinor
static const char *const riffInfoLength
static const char *const riffInfoTechnician
static const char *const riffInfoSoftware
static const char *const riffInfoStarring_STAR
static const char *const riffInfoDateCreated
static const char *const riffInfoSeventhLanguage
static const char *const acidBeats
static const char *const riffInfoLogoIconURL
static const char *const tracktionLoopInfo
static const char *const acidNumerator
static const char *const bwavOriginationDate
static const char *const riffInfoComments
static const char *const riffInfoNumberOfParts
static const char *const bwavDescription
static const char *const riffInfoSoundSchemeTitle
static const char *const riffInfoWatermarkURL
static const char *const riffInfoTrackNo
static const char *const riffInfoMedium
static const char *const acidStretch
static const char *const riffInfoThirdLanguage
static const char *const bwavOriginationTime
static const char *const riffInfoArchivalLocation
static const char *const riffInfoMoreInfoText
static const char *const riffInfoCinematographer
static const char *const riffInfoFourthLanguage
static const char *const riffInfoSubject
static const char *const riffInfoRated
static const char *const riffInfoDimension
static const char *const riffInfoEditedBy
static const char *const riffInfoYear
static const char *const riffInfoComment2
static const char *const riffInfoTrackNumber
static const char *const riffInfoEngineer
static const char *const riffInfoWrittenBy
static const char *const riffInfoTimeCode
static const char *const riffInfoSourceFrom
static const char *const riffInfoSource
static const char *const riffInfoLogoURL
static const char *const riffInfoCountry
static const char *const riffInfoSecondLanguage
static const char *const riffInfoComment
static const char *const riffInfoTapeName
static const char *const riffInfoEndTimecode
static const char *const riffInfoPart
static const char *const bwavOriginator
static const char *const acidTempo
static const char *const acidRootNote
static const char *const riffInfoMoreInfoURL