arduino-audio-tools
Loading...
Searching...
No Matches
src
AudioTools
CoreAudio
AudioMetaData
AbstractMetaData.h
Go to the documentation of this file.
1
#pragma once
2
3
#include <stdint.h>
4
5
namespace
audio_tools
{
6
8
enum
ID3TypeSelection
{
SELECT_ID3V1
=0b001,
SELECT_ID3V2
=0b010,
SELECT_ID3
=0b011,
SELECT_ICY
=0b100,
SELECT_ANY
=0b111 };
9
11
enum
MetaDataType
{
Title
,
Artist
,
Album
,
Genre
,
Name
,
Description
,
Corrupted
};
12
13
// Description for meta info
14
static
const
char
*
MetaDataTypeStr
[] = {
"Title"
,
"Artist"
,
"Album"
,
"Genre"
,
"Name"
,
"Description"
,
"Corrupted"
};
15
17
static
const
char
*
toStr
(
MetaDataType
t
){
18
return
MetaDataTypeStr
[
t
];
19
}
20
22
static
size_t
strnlength
(
const
char
*
s
,
size_t
n) {
23
size_t
i;
24
for
(i = 0; i < n &&
s
[i] !=
'\0'
; i++)
25
continue
;
26
return
i;
27
}
28
29
34
class
AbstractMetaData
{
35
public
:
36
virtual
~AbstractMetaData
() =
default
;
37
38
// defines the callback which provides the metadata information
39
virtual
void
setCallback
(
void
(*
fn
)(
MetaDataType
info,
const
char
* str,
int
len)) = 0 ;
40
// starts the processing
41
virtual
bool
begin
() = 0;
42
// ends the processing
43
virtual
void
end
() = 0;
44
// provide audio data which contains the metadata to be extracted
45
virtual
size_t
write
(
const
uint8_t
*data,
size_t
len) = 0;
46
// select Icecast/Shoutcast Metadata
47
virtual
void
setIcyMetaInt
(
int
value){}
48
49
};
50
51
52
53
}
audio_tools::AbstractMetaData
Common Metadata methods.
Definition
AbstractMetaData.h:34
audio_tools::AbstractMetaData::setIcyMetaInt
virtual void setIcyMetaInt(int value)
Definition
AbstractMetaData.h:47
audio_tools::AbstractMetaData::write
virtual size_t write(const uint8_t *data, size_t len)=0
audio_tools::AbstractMetaData::~AbstractMetaData
virtual ~AbstractMetaData()=default
audio_tools::AbstractMetaData::end
virtual void end()=0
audio_tools::AbstractMetaData::begin
virtual bool begin()=0
audio_tools::AbstractMetaData::setCallback
virtual void setCallback(void(*fn)(MetaDataType info, const char *str, int len))=0
audio_tools::ID3TypeSelection
ID3TypeSelection
Enum to filter by type of metadata.
Definition
AbstractMetaData.h:8
audio_tools::toStr
static const char * toStr(MetaDataType t)
Converts the MetaDataType to a string.
Definition
AbstractMetaData.h:17
audio_tools::MetaDataType
MetaDataType
Type of meta info.
Definition
AbstractMetaData.h:11
audio_tools::SELECT_ICY
@ SELECT_ICY
Definition
AbstractMetaData.h:8
audio_tools::SELECT_ID3
@ SELECT_ID3
Definition
AbstractMetaData.h:8
audio_tools::SELECT_ID3V1
@ SELECT_ID3V1
Definition
AbstractMetaData.h:8
audio_tools::SELECT_ANY
@ SELECT_ANY
Definition
AbstractMetaData.h:8
audio_tools::SELECT_ID3V2
@ SELECT_ID3V2
Definition
AbstractMetaData.h:8
audio_tools::Album
@ Album
Definition
AbstractMetaData.h:11
audio_tools::Genre
@ Genre
Definition
AbstractMetaData.h:11
audio_tools::Description
@ Description
Definition
AbstractMetaData.h:11
audio_tools::Name
@ Name
Definition
AbstractMetaData.h:11
audio_tools::Title
@ Title
Definition
AbstractMetaData.h:11
audio_tools::Corrupted
@ Corrupted
Definition
AbstractMetaData.h:11
audio_tools::Artist
@ Artist
Definition
AbstractMetaData.h:11
audio_tools
Generic Implementation of sound input and output for desktop environments using portaudio.
Definition
AudioCodecsBase.h:10
audio_tools::strnlength
static size_t strnlength(const char *s, size_t n)
unfortunatly strnlen or strnlen_s is not available in all implementations
Definition
AbstractMetaData.h:22
audio_tools::writeData
size_t writeData(Print *p_out, T *data, int samples, int maxSamples=512)
Definition
AudioTypes.h:512
audio_tools::MetaDataTypeStr
static const char * MetaDataTypeStr[]
Definition
AbstractMetaData.h:14
Generated by
1.9.8