neoGFX
Cross-platform C++ app/game engine
Loading...
Searching...
No Matches
i_audio_waveform.hpp
Go to the documentation of this file.
1
// i_audio_waveform.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
>
21
#include <
neogfx/audio/audio_primitives.hpp
>
22
#include <
neogfx/audio/i_audio_bitstream.hpp
>
23
#include <
neogfx/audio/i_audio_oscillator.hpp
>
24
25
#pragma once
26
27
namespace
neogfx
28
{
29
class
i_audio_waveform
:
public
i_audio_bitstream
30
{
31
public
:
32
typedef
i_audio_waveform
abstract_type
;
33
public
:
34
virtual
~i_audio_waveform
() =
default
;
35
public
:
36
virtual
i_audio_oscillator
&
create_oscillator
(
float
aFrequency,
float
aAmplitude = 1.0f,
oscillator_function
aFunction =
oscillator_function::Sine
) = 0;
37
virtual
i_audio_oscillator
&
create_oscillator
(
float
aFrequency,
float
aAmplitude, std::function<
float
(
float
)>
const
& aFunction) = 0;
38
virtual
i_audio_oscillator
&
add_oscillator
(
i_audio_oscillator
& aOscillator) = 0;
39
virtual
i_audio_oscillator
&
add_oscillator
(
i_ref_ptr<i_audio_oscillator>
const
& aOscillator) = 0;
40
virtual
void
remove_oscillator
(
i_audio_oscillator
const
& aOscillator) = 0;
41
};
42
}
audio_primitives.hpp
neogfx::i_audio_bitstream
Definition
i_audio_bitstream.hpp:28
neogfx::i_audio_oscillator
Definition
i_audio_oscillator.hpp:37
neogfx::i_audio_waveform
Definition
i_audio_waveform.hpp:30
neogfx::i_audio_waveform::add_oscillator
virtual i_audio_oscillator & add_oscillator(i_audio_oscillator &aOscillator)=0
neogfx::i_audio_waveform::create_oscillator
virtual i_audio_oscillator & create_oscillator(float aFrequency, float aAmplitude=1.0f, oscillator_function aFunction=oscillator_function::Sine)=0
neogfx::i_audio_waveform::~i_audio_waveform
virtual ~i_audio_waveform()=default
neogfx::i_audio_waveform::abstract_type
i_audio_waveform abstract_type
Definition
i_audio_waveform.hpp:32
neogfx::i_audio_waveform::create_oscillator
virtual i_audio_oscillator & create_oscillator(float aFrequency, float aAmplitude, std::function< float(float)> const &aFunction)=0
Note: not plugin-safe.
neogfx::i_audio_waveform::remove_oscillator
virtual void remove_oscillator(i_audio_oscillator const &aOscillator)=0
neogfx::i_audio_waveform::add_oscillator
virtual i_audio_oscillator & add_oscillator(i_ref_ptr< i_audio_oscillator > const &aOscillator)=0
neolib::i_ref_ptr
Definition
i_reference_counted.hpp:78
i_audio_bitstream.hpp
i_audio_oscillator.hpp
neogfx
Definition
action.hpp:28
neogfx::oscillator_function
oscillator_function
Definition
i_audio_oscillator.hpp:28
neogfx::oscillator_function::Sine
@ Sine
neogfx.hpp
include
neogfx
audio
i_audio_waveform.hpp
Generated by
1.9.8