forked from microsoft/WinObjC
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathExtendedAudioFile.h
More file actions
92 lines (87 loc) · 5.26 KB
/
ExtendedAudioFile.h
File metadata and controls
92 lines (87 loc) · 5.26 KB
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
//******************************************************************************
//
// Copyright (c) 2016 Microsoft Corporation. All rights reserved.
//
// This code is licensed under the MIT License (MIT).
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
//
//******************************************************************************
#pragma once
#import <AudioToolbox/AudioToolboxExport.h>
#import <CoreAudio/CoreAudioTypes.h>
#import <AudioToolbox/AudioConverter.h>
#import <CoreFoundation/CFURL.h>
#import <AudioToolbox/AudioFile.h>
enum {
kExtAudioFileProperty_FileDataFormat = 'ffmt',
kExtAudioFileProperty_FileChannelLayout = 'fclo',
kExtAudioFileProperty_ClientDataFormat = 'cfmt',
kExtAudioFileProperty_ClientChannelLayout = 'cclo',
kExtAudioFileProperty_CodecManufacturer = 'cman',
// read-only properties
kExtAudioFileProperty_AudioConverter = 'acnv',
kExtAudioFileProperty_AudioFile = 'afil',
kExtAudioFileProperty_FileMaxPacketSize = 'fmps',
kExtAudioFileProperty_ClientMaxPacketSize = 'cmps',
kExtAudioFileProperty_FileLengthFrames = '#frm',
// read/write properties
kExtAudioFileProperty_ConverterConfig = 'accf',
kExtAudioFileProperty_IOBufferSizeBytes = 'iobs',
kExtAudioFileProperty_IOBuffer = 'iobf',
kExtAudioFileProperty_PacketTable = 'xpti'
};
enum {
kExtAudioFileError_CodecUnavailableInputConsumed = -66559,
kExtAudioFileError_CodecUnavailableInputNotConsumed = -66560,
kExtAudioFileError_InvalidProperty = -66561,
kExtAudioFileError_InvalidPropertySize = -66562,
kExtAudioFileError_NonPCMClientFormat = -66563,
kExtAudioFileError_InvalidChannelMap = -66564,
kExtAudioFileError_InvalidOperationOrder = -66565,
kExtAudioFileError_InvalidDataFormat = -66566,
kExtAudioFileError_MaxPacketSizeUnknown = -66567,
kExtAudioFileError_InvalidSeek = -66568,
kExtAudioFileError_AsyncWriteTooLarge = -66569,
kExtAudioFileError_AsyncWriteBufferOverflow = -66570
};
typedef struct OpaqueExtAudioFile* ExtAudioFileRef;
typedef UInt32 ExtAudioFilePropertyID;
AUDIOTOOLBOX_EXPORT OSStatus ExtAudioFileCreateWithURL(CFURLRef inURL,
AudioFileTypeID inFileType,
const AudioStreamBasicDescription* inStreamDesc,
const AudioChannelLayout* inChannelLayout,
UInt32 inFlags,
ExtAudioFileRef _Nullable* outExtAudioFile) STUB_METHOD;
AUDIOTOOLBOX_EXPORT OSStatus ExtAudioFileDispose(ExtAudioFileRef inExtAudioFile);
AUDIOTOOLBOX_EXPORT OSStatus ExtAudioFileOpenURL(CFURLRef inURL, ExtAudioFileRef _Nullable* outExtAudioFile);
AUDIOTOOLBOX_EXPORT OSStatus ExtAudioFileWrapAudioFileID(AudioFileID inFileID,
Boolean inForWriting,
ExtAudioFileRef _Nullable* outExtAudioFile);
AUDIOTOOLBOX_EXPORT OSStatus ExtAudioFileGetProperty(ExtAudioFileRef inExtAudioFile,
ExtAudioFilePropertyID inPropertyID,
UInt32* ioPropertyDataSize,
void* outPropertyData);
AUDIOTOOLBOX_EXPORT OSStatus ExtAudioFileGetPropertyInfo(ExtAudioFileRef inExtAudioFile,
ExtAudioFilePropertyID inPropertyID,
UInt32* outSize,
Boolean* outWritable) STUB_METHOD;
AUDIOTOOLBOX_EXPORT OSStatus ExtAudioFileSetProperty(ExtAudioFileRef inExtAudioFile,
ExtAudioFilePropertyID inPropertyID,
UInt32 inPropertyDataSize,
const void* inPropertyData);
AUDIOTOOLBOX_EXPORT OSStatus ExtAudioFileRead(ExtAudioFileRef inExtAudioFile, UInt32* ioNumberFrames, AudioBufferList* ioData);
AUDIOTOOLBOX_EXPORT OSStatus ExtAudioFileSeek(ExtAudioFileRef inExtAudioFile, SInt64 inFrameOffset) STUB_METHOD;
AUDIOTOOLBOX_EXPORT OSStatus ExtAudioFileTell(ExtAudioFileRef inExtAudioFile, SInt64* outFrameOffset) STUB_METHOD;
AUDIOTOOLBOX_EXPORT OSStatus ExtAudioFileWrite(ExtAudioFileRef inExtAudioFile,
UInt32 inNumberFrames,
const AudioBufferList* ioData) STUB_METHOD;
AUDIOTOOLBOX_EXPORT OSStatus ExtAudioFileWriteAsync(ExtAudioFileRef inExtAudioFile,
UInt32 inNumberFrames,
const AudioBufferList* ioData) STUB_METHOD;