Alchemy 0.0.9999
Alchemy is a C++ library for multimedia file management.
Loading...
Searching...
No Matches
codec.hxx
1#pragma once
2
3#include <Alchemy/media/alias.hxx>
4#include <Alchemy/media/flags/codec.hxx>
5#include <StormByte/multimedia/codec.hxx>
6
7#include <memory>
8
13namespace Alchemy::Media {
18 class ALCHEMY_PUBLIC Codec: public StormByte::Multimedia::Codec {
19 public:
20 using PointerType = std::shared_ptr<const Codec>;
21
31 Codec(const std::string& name, const std::string& long_name, const Flags::Codec& flags, const Decoders& decoders, const Encoders& encoders);
32
41 Codec(std::string&& name, std::string&& long_name, Flags::Codec&& flags, Decoders&& decoders, Encoders&& encoders);
42
47 Codec(const Codec& other) = default;
48
53 Codec(Codec&& other) noexcept = default;
54
60 Codec& operator=(const Codec& other) = default;
61
67 Codec& operator=(Codec&& other) noexcept = default;
68
72 ~Codec() noexcept override = default;
73
78 const Flags::Codec* Flags() const noexcept override;
79
84 StormByte::Multimedia::Media::Type Type() const noexcept override;
85
90 Media::Decoders& Decoders() noexcept;
91
96 const Media::Decoders& Decoders() const noexcept;
97
102 Media::Encoders& Encoders() noexcept;
103
108 const Media::Encoders& Encoders() const noexcept;
109
110 private:
111 Media::Decoders m_decoders;
112 Media::Encoders m_encoders;
113 };
114}
The codec class.
Definition codec.hxx:18
Codec & operator=(Codec &&other) noexcept=default
Move assignment operator.
~Codec() noexcept override=default
Default destructor.
Codec(const std::string &name, const std::string &long_name, const Flags::Codec &flags, const Decoders &decoders, const Encoders &encoders)
Constructor.
Codec(std::string &&name, std::string &&long_name, Flags::Codec &&flags, Decoders &&decoders, Encoders &&encoders)
Constructor.
Codec(Codec &&other) noexcept=default
Move constructor.
std::shared_ptr< const Codec > PointerType
The pointer type.
Definition codec.hxx:20
Codec(const Codec &other)=default
Copy constructor.
Codec & operator=(const Codec &other)=default
Copy assignment operator.
The flags for the codec.
Definition codec.hxx:19
The namespace for media flags.
All the media related classes and functions.