neoGFX
Cross-platform C++ app/game engine
Loading...
Searching...
No Matches
i_audio_instrument_atlas.hpp
Go to the documentation of this file.
1// i_audio_instrument_atlas.hpp
2/*
3 neogfx C++ App/Game Engine
4 Copyright (c) 2021 Leigh Johnston. All Rights Reserved.
5
6 This program is free software: you can redistribute it and / or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>.
18*/
19
20#include <neogfx/neogfx.hpp>
23
24#pragma once
25
26namespace neogfx
27{
28 struct audio_instrument_atlas_file_found : std::runtime_error { audio_instrument_atlas_file_found() : std::runtime_error{ "Audio instrument atlas file not found" } {} };
29 struct audio_instrument_not_found : std::runtime_error { audio_instrument_not_found(neogfx::instrument aInstrument) : std::runtime_error{"Audio instrument '" + to_string(aInstrument) + "' not found"} {} };
30 struct audio_instrument_note_not_found : std::runtime_error { audio_instrument_note_not_found(neogfx::instrument aInstrument, neogfx::note aNote) : std::runtime_error{ "Audio instrument '" + to_string(aInstrument) + "' note '" + to_string(aNote) + "' not found" } {} };
31 struct audio_instrument_sample_decode_failure : std::runtime_error { audio_instrument_sample_decode_failure() : std::runtime_error{ "audio_instrument_sample_decode_failure" } {} };
32
34 {
35 public:
36 virtual ~i_audio_instrument_atlas() = default;
37 public:
38 virtual bool load_instrument(neogfx::instrument aInstrument, audio_sample_rate aSampleRate) = 0;
39 virtual i_audio_bitstream& instrument(neogfx::instrument aInstrument, audio_sample_rate aSampleRate, note aNote) = 0;
40 };
41}
virtual bool load_instrument(neogfx::instrument aInstrument, audio_sample_rate aSampleRate)=0
virtual i_audio_bitstream & instrument(neogfx::instrument aInstrument, audio_sample_rate aSampleRate, note aNote)=0
virtual ~i_audio_instrument_atlas()=default
std::string to_string(note const &aNote)
std::uint64_t audio_sample_rate
audio_instrument_not_found(neogfx::instrument aInstrument)
audio_instrument_note_not_found(neogfx::instrument aInstrument, neogfx::note aNote)