Freeciv21
Develop your civilization from humble roots to a global empire
audio.h
Go to the documentation of this file.
1 /*__ ___ ***************************************
2 / \ / \ Copyright (c) 1996-2023 Freeciv21 and Freeciv
3 \_ \ / __/ contributors. This file is part of Freeciv21.
4  _\ \ / /__ Freeciv21 is free software: you can redistribute it
5  \___ \____/ __/ and/or modify it under the terms of the GNU General
6  \_ _/ Public License as published by the Free Software
7  | @ @ \_ Foundation, either version 3 of the License,
8  | or (at your option) any later version.
9  _/ /\ You should have received a copy of the GNU
10  /o) (o/\ \_ General Public License along with Freeciv21.
11  \_____/ / If not, see https://www.gnu.org/licenses/.
12  \____/ ********************************************************/
13 #pragma once
14 
15 #include <QVector>
16 
17 typedef void (*audio_finished_callback)();
18 
19 class QString;
20 struct audio_plugin {
21  QString name;
22  QString descr;
23  bool (*init)();
24  void (*shutdown)();
25  void (*stop)();
26  void (*wait)();
27  double (*get_volume)();
28  void (*set_volume)(double volume);
29  bool (*play)(const QString &tag, const QString &path, bool repeat,
31 };
32 
34 
35 struct option;
36 const QVector<QString> *get_soundplugin_list(const struct option *poption);
37 const QVector<QString> *get_soundset_list(const struct option *poption);
38 const QVector<QString> *get_musicset_list(const struct option *poption);
39 
40 void audio_init();
41 void audio_real_init(const QString &soundspec_name,
42  const QString &musicset_name,
43  const QString &preferred_plugin_name);
44 void audio_add_plugin(struct audio_plugin *p);
45 void audio_shutdown();
46 void audio_stop();
47 void audio_stop_usage();
48 void audio_restart(const QString &soundset_name,
49  const QString &musicset_name);
50 
51 void audio_play_sound(const QString &tag, const QString &alt_tag);
52 void audio_play_music(const QString &tag, const QString &alt_tag,
53  enum music_usage usage);
54 void audio_play_track(const QString &tag, const QString &alt_tag);
55 
56 double audio_get_volume();
57 void audio_set_volume(double volume);
58 
59 bool audio_select_plugin(const QString &name);
60 const QString audio_get_all_plugin_names();
void audio_init()
Initialize base audio system.
Definition: audio.cpp:173
void audio_play_sound(const QString &tag, const QString &alt_tag)
Play an audio sample as suggested by sound tags.
Definition: audio.cpp:494
void audio_play_track(const QString &tag, const QString &alt_tag)
Play single track as suggested by sound tags.
Definition: audio.cpp:555
void audio_real_init(const QString &soundspec_name, const QString &musicset_name, const QString &preferred_plugin_name)
Initialize audio system and autoselect a plugin.
Definition: audio.cpp:253
void audio_play_music(const QString &tag, const QString &alt_tag, enum music_usage usage)
Loop music as suggested by sound tags.
Definition: audio.cpp:544
void(* audio_finished_callback)()
Definition: audio.h:17
const QVector< QString > * get_musicset_list(const struct option *poption)
Returns a static string vector of musicsets available on the system.
Definition: audio.cpp:96
music_usage
Definition: audio.h:33
@ MU_INGAME
Definition: audio.h:33
@ MU_MENU
Definition: audio.h:33
void audio_stop_usage()
Stop looping sound.
Definition: audio.cpp:577
void audio_set_volume(double volume)
Set sound volume to use.
Definition: audio.cpp:591
void audio_stop()
Stop sound.
Definition: audio.cpp:572
void audio_restart(const QString &soundset_name, const QString &musicset_name)
Switch soundset.
Definition: audio.cpp:343
void audio_add_plugin(struct audio_plugin *p)
Add a plugin.
Definition: audio.cpp:108
const QVector< QString > * get_soundset_list(const struct option *poption)
Returns a static string vector of soundsets available on the system.
Definition: audio.cpp:84
const QVector< QString > * get_soundplugin_list(const struct option *poption)
Returns a static string vector of all sound plugins available on the system.
Definition: audio.cpp:70
double audio_get_volume()
Get sound volume currently in use.
Definition: audio.cpp:586
const QString audio_get_all_plugin_names()
Returns a string which list all available plugins.
Definition: audio.cpp:630
bool audio_select_plugin(const QString &name)
Choose plugin.
Definition: audio.cpp:126
void audio_shutdown()
Call this at end of program only.
Definition: audio.cpp:599
const char * name
Definition: inputfile.cpp:118
bool(* play)(const QString &tag, const QString &path, bool repeat, audio_finished_callback cb)
Definition: audio.h:29
void(* wait)()
Definition: audio.h:26
void(* stop)()
Definition: audio.h:25
void(* set_volume)(double volume)
Definition: audio.h:28
QString descr
Definition: audio.h:22
void(* shutdown)()
Definition: audio.h:24
QString name
Definition: audio.h:21
double(* get_volume)()
Definition: audio.h:27
bool(* init)()
Definition: audio.h:23
The base class for options.
Definition: options.cpp:209