EHS
Loading...
Searching...
No Matches
AudioCodec.h
Go to the documentation of this file.
1#pragma once
2
3#include "ehs/EHS.h"
4#include "ehs/Str.h"
5#include "ehs/io/File.h"
6
7namespace ehs
8{
9 class Audio;
10
11 class EHS_LIB_IO AudioCodec
12 {
13 private:
14 Str_8 id;
15 UInt_64 hashExt;
16 Str_8 ext;
17 Endianness endianness;
18 bool (*encodeCb)(const AudioCodec* const, Serializer<UInt_64>&, const Audio*);
19 bool (*decodeCb)(const AudioCodec* const, Serializer<UInt_64>&, Audio*);
20
21 public:
22 AudioCodec();
23
24 AudioCodec(Str_8 id, Str_8 ext, const Endianness end,
25 bool (*encodeCb)(const AudioCodec* const, Serializer<UInt_64>&, const Audio*),
26 bool (*decodeCb)(const AudioCodec* const, Serializer<UInt_64>&, Audio*));
27
28 AudioCodec(AudioCodec&& codec) noexcept;
29
30 AudioCodec(const AudioCodec& codec);
31
32 AudioCodec& operator=(AudioCodec&& codec) noexcept;
33
34 AudioCodec& operator=(const AudioCodec& codec);
35
36 Str_8 GetId() const;
37
38 UInt_64 GetHashExt() const;
39
40 Str_8 GetExt() const;
41
43
44 bool Encode(Serializer<UInt_64>& out, const Audio* in) const;
45
46 bool Decode(Serializer<UInt_64>& in, Audio* out) const;
47 };
48}
bool Encode(Serializer< UInt_64 > &out, const Audio *in) const
Definition AudioCodec.cpp:88
bool Decode(Serializer< UInt_64 > &in, Audio *out) const
Definition AudioCodec.cpp:99
UInt_64 GetHashExt() const
Definition AudioCodec.cpp:73
Str_8 GetExt() const
Definition AudioCodec.cpp:78
AudioCodec()
Definition AudioCodec.cpp:5
Str_8 GetId() const
Definition AudioCodec.cpp:68
Endianness GetEndianness() const
Definition AudioCodec.cpp:83
AudioCodec & operator=(AudioCodec &&codec) noexcept
Definition AudioCodec.cpp:33
Definition Audio.h:15
Definition Serializer.h:25
Definition Anchor.h:6
Endianness
Definition CPU.h:21
Str< Char_8, UInt_64 > Str_8
Definition Str.h:1902