Audacity
3.0.3
src
blockfile
SimpleBlockFile.h
Go to the documentation of this file.
1
/**********************************************************************
2
3
Audacity: A Digital Audio Editor
4
5
SimpleBlockFile.h
6
7
Joshua Haberman
8
9
**********************************************************************/
10
11
#ifndef __AUDACITY_SIMPLE_BLOCKFILE__
12
#define __AUDACITY_SIMPLE_BLOCKFILE__
13
14
#include "../BlockFile.h"
15
16
class
DirManager;
17
18
// The AU formats we care about
19
enum
{
20
AU_SAMPLE_FORMAT_16
= 3,
21
AU_SAMPLE_FORMAT_24
= 4,
22
AU_SAMPLE_FORMAT_FLOAT
= 6,
23
};
24
25
typedef
struct
{
26
wxUint32
magic
;
// magic number
27
wxUint32
dataOffset
;
// byte offset to start of audio data
28
wxUint32
dataSize
;
// data length, in bytes (optional)
29
wxUint32
encoding
;
// data encoding enumeration
30
wxUint32
sampleRate
;
// samples per second
31
wxUint32
channels
;
// number of interleaved channels
32
}
auHeader
;
33
34
class
PROFILE_DLL_API
SimpleBlockFile
/* not final */
:
public
BlockFile {
35
public
:
36
37
// Constructor / Destructor
38
40
SimpleBlockFile
(
wxFileNameWrapper
&&baseFileName,
41
samplePtr
sampleData,
size_t
sampleLen,
42
sampleFormat
format
);
44
SimpleBlockFile
(
wxFileNameWrapper
&&existingFile,
size_t
len,
45
float
min
,
float
max,
float
rms);
46
47
virtual
~
SimpleBlockFile
();
48
49
// Reading
50
52
bool
ReadSummary(
ArrayOf<char>
&data)
override
;
54
size_t
ReadData(
samplePtr
data,
sampleFormat
format
,
55
size_t
start,
size_t
len,
bool
mayThrow)
const override
;
56
58
BlockFilePtr Copy(
wxFileNameWrapper
&&newFileName)
override
;
60
void
SaveXML(
XMLWriter
&xmlFile)
override
;
61
62
DiskByteCount GetSpaceUsage()
const override
;
63
void
Recover()
override
;
64
65
static
BlockFilePtr BuildFromXML(DirManager &dm,
const
wxChar **attrs);
66
67
protected
:
68
69
bool
WriteSimpleBlockFile(
samplePtr
sampleData,
size_t
sampleLen,
70
sampleFormat
format
,
void
* summaryData);
71
72
private
:
73
mutable
sampleFormat
mFormat
;
// may be found lazily
74
};
75
76
#endif
XMLWriter
Base class for XMLFileWriter and XMLStringWriter that provides the general functionality for creating...
Definition:
XMLWriter.h:23
AU_SAMPLE_FORMAT_FLOAT
@ AU_SAMPLE_FORMAT_FLOAT
Definition:
SimpleBlockFile.h:22
wxFileNameWrapper
Definition:
wxFileNameWrapper.h:21
PROFILE_DLL_API
#define PROFILE_DLL_API
Definition:
Sequence.h:58
auHeader::dataOffset
wxUint32 dataOffset
Definition:
SimpleBlockFile.h:27
auHeader::dataSize
wxUint32 dataSize
Definition:
SimpleBlockFile.h:28
auHeader::channels
wxUint32 channels
Definition:
SimpleBlockFile.h:31
SimpleBlockFile::mFormat
sampleFormat mFormat
Definition:
SimpleBlockFile.h:73
auHeader::sampleRate
wxUint32 sampleRate
Definition:
SimpleBlockFile.h:30
SimpleBlockFile
A BlockFile that reads and writes uncompressed data using libsndfile.
Definition:
SimpleBlockFile.h:34
format
int format
Definition:
ExportPCM.cpp:56
sampleFormat
sampleFormat
Definition:
SampleFormat.h:29
samplePtr
char * samplePtr
Definition:
SampleFormat.h:49
min
int min(int a, int b)
Definition:
CompareAudioCommand.cpp:106
auHeader::magic
wxUint32 magic
Definition:
SimpleBlockFile.h:26
auHeader
The auHeader is a structure used by SimpleBlockFile for .au file format. There probably is an 'offici...
Definition:
SimpleBlockFile.h:25
AU_SAMPLE_FORMAT_24
@ AU_SAMPLE_FORMAT_24
Definition:
SimpleBlockFile.h:21
ArrayOf< char >
AU_SAMPLE_FORMAT_16
@ AU_SAMPLE_FORMAT_16
Definition:
SimpleBlockFile.h:20
auHeader::encoding
wxUint32 encoding
Definition:
SimpleBlockFile.h:29
Generated by
1.9.0