diff options
| author | TrickyLeifa <date.epoch@gmail.com> | 2024-05-15 00:00:17 +0200 |
|---|---|---|
| committer | TrickyLeifa <date.epoch@gmail.com> | 2024-05-15 00:04:16 +0200 |
| commit | c9f52b7223685d2e7fca925594171f94dd8c6e3b (patch) | |
| tree | 740bb32a40da98a4d52836432f59a16b31333900 /src/aosfxplayer.h | |
| parent | 951766666621fa77e257e6b5616fe4ab1eb2a52f (diff) | |
Ported to CMake, ...
* Ported the project to CMake
* Android and Mac support dropped for the time
being.
* Tests, BASS and Discord-RPC are now options
* Restructured and reformated the project.
* Merged `include` and `src`
* Renamed `resource` to `data`
* Renamed various files
* External libraries headers are no longer included in `src`
* Replaced header guards with #pragma once
* Multiple refactors (keywords, headers)
* Added Qt6 compatibility
* Removed various unused functions and headers
* Reworked AOPacket
* When content is passed to AOPacket, it should be ensured that the content is already decoded.
* Encoding/decoding are now static methods.
* Fixed various memory leaks
* Removed animation code for AOImage
* AOImage is always using static images
* Simplified ChatLogPiece
Diffstat (limited to 'src/aosfxplayer.h')
| -rw-r--r-- | src/aosfxplayer.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/aosfxplayer.h b/src/aosfxplayer.h new file mode 100644 index 00000000..6a71a71c --- /dev/null +++ b/src/aosfxplayer.h @@ -0,0 +1,38 @@ +#pragma once + +#include "bass.h" +#include "bassopus.h" + +#include "aoapplication.h" + +#include <QDebug> +#include <QWidget> + +class AOSfxPlayer +{ +public: + static constexpr int CHANNEL_COUNT = 5; + + AOSfxPlayer(AOApplication *p_ao_app); + + int get_volume(); + + void clear(); + void loop_clear(); + void play(QString p_sfx, QString p_char = QString(), QString shout = QString()); + void stop(int channel = -1); + void set_volume(qreal p_volume); + void set_looping(bool toggle, int channel = -1); + void set_muted(bool toggle); + +private: + AOApplication *ao_app; + + qreal m_volume = 0.0; + bool m_looping = true; + bool m_muted = false; + int m_channel = 0; + HSTREAM m_stream_list[CHANNEL_COUNT]{}; + + void set_volume_internal(qreal p_volume); +}; |
