capo-lite v2.0.1
Simple audio playback library
 
Loading...
Searching...
No Matches
engine.hpp
Go to the documentation of this file.
1#pragma once
2#include <capo/source.hpp>
3#include <capo/version.hpp>
4#include <memory>
5
6namespace capo {
11class IEngine : public Polymorphic {
12 public:
15 [[nodiscard]] virtual auto create_source() -> std::unique_ptr<ISource> = 0;
16
18 [[nodiscard]] virtual auto get_position() const -> Vec3f = 0;
20 virtual void set_position(Vec3f const& position) = 0;
21
23 [[nodiscard]] virtual auto get_direction() const -> Vec3f = 0;
25 virtual void set_direction(Vec3f const& direction) = 0;
26
28 [[nodiscard]] virtual auto get_world_up() const -> Vec3f = 0;
30 virtual void set_world_up(Vec3f const& direction) = 0;
31};
32
35[[nodiscard]] auto create_engine() -> std::unique_ptr<IEngine>;
36} // namespace capo
Audio Engine. API to create Audio Sources. Represents 3D spatialized listener. Uses default audio dev...
Definition engine.hpp:11
virtual auto get_position() const -> Vec3f=0
Obtain the listener's 3D position.
virtual auto get_direction() const -> Vec3f=0
Obtain the listener's direction as a unit vector.
virtual void set_direction(Vec3f const &direction)=0
Set the listener's direction as a unit vector.
virtual auto get_world_up() const -> Vec3f=0
Obtain the world up as a unit vector.
virtual auto create_source() -> std::unique_ptr< ISource >=0
Create an Audio Source.
virtual void set_world_up(Vec3f const &direction)=0
Set the world up as a unit vector.
virtual void set_position(Vec3f const &position)=0
Set the listener's 3D position.
Base class for polymorphic types.
Definition polymorphic.hpp:5
Definition buffer.hpp:7
auto create_engine() -> std::unique_ptr< IEngine >
Create an Engine instance.
3D spatial vector.
Definition vec3.hpp:5