/usr/include/MLV/MLV_audio.h is in libmlv3-dev 3.1.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 | /*
* This file is part of the MLV Library.
*
* Copyright (C) 2010,2011,2012 Adrien Boussicault, Marc Zipstein
*
*
* This Library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This Library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this Library. If not, see <http://www.gnu.org/licenses/>.
*/
/** \~french
* \file MLV_audio.h
*
* \author Adrien Boussicault
* \author Marc Zipstein
*
* \brief Ce fichier définit les prototypes des fonctions permettant de faire
* jouer de la musique et des échantillons sonores à l'aide de la bibliothèque
* MLV.
*/
#ifndef __MLV__MLV_AUDIO_H__
#define __MLV__MLV_AUDIO_H__
#ifndef MEMORY_DEBUG
#include <SDL/SDL.h>
#else
#include "memory_debug.h"
#endif
#ifdef __cplusplus
extern "C" {
#endif
/** \~french
* \brief Ce type code un morceau de musique.
*/
typedef struct _MLV_Music MLV_Music;
/** \~french
* \brief Ce type code un échantillon sonore.
*/
typedef struct _MLV_Sound MLV_Sound;
/** \~french
* \brief Cette fonction initialise la bibliothèque MLV pour pouvoir jouer de la
* musique et des sons.
*
* \return Renvoie 0 si l'infrastructure audio a été correctement initialisé,
* renvoie -1 sinon.
*/
int MLV_init_audio();
/** \~french
* \brief Ferme proprement les différents périphériques audios.
*/
void MLV_free_audio();
/** \~french
* \brief Change la taille du buffer audio. La taille doit être une puissance
* de 2.
*
* Le porgramme rempli périodiquement un buffer audio à faire jouer par la
* carte son. Plus la taille du buffer audio est grande, plus le programme
* à le temps de remplir le buffer avant qu'il se vide. Plus le buffer est
* grand, plus le programme met du temps à le remplir.
*
* Ainsi, si il y a un temps de latence entre une action et l'execution sonore
* du son correspondant, c'est que vous devez réduire la taille du buffer audio.
*
* Si le son est coupé et crépite, c'est que le buffer est trop petit et que le
* processeur est trop lent pour remplir le buffer avant qu'il se vide.
* Vous devez donc agrandir la taille du buffer.
*
* MLV_change_buffer_size vous permet d'ajuster la taille de ce buffer.
* par default la taille du buffer est mis à 1024.
*
* Si vous utilisez le programme uniquement pour jouer de la musique, nous vous
* vous conseillons de configurer la taille du buffer à 4096.
*
* \param buffer_size Taille du buffer audio ( une puissance de 2 )
*
* \return Renvoie 0 si l'infrastructure audio a été correctement initialisé,
* renvoie -1 sinon.
*/
int MLV_change_audio_buffer_size( int buffer_size );
/** \~french
* \brief Change le nombre d'écahantillons sonores qui peuvent être joués en
* même temps.
*
* \param n Le nombre d'échantillons sonores.
*/
void MLV_change_number_of_parallel_sounds( unsigned int n );
/** \~french
* \brief Charge un ficher contenant de la musique en mémoire.
*
* Cette fonction prends en paramètre le chemin d'accès du
* fichier contenant la musique et renvoie un pointeur vers l'espace mémoire où
* a été chargé la musique.
*
* Les formats de fichier acceptés sont les suivants .ogg, .mp3, .wav, etc ...
*
* \param file_music Chemin d'accès vers un fichier contenant de la musique
* codée en format .wav.
* \return Un pointeur vers la musique chargée en mémoire, ou NULL si la
* bibliothèque n'a pas réussi à charger la musique en mémoire.
*/
MLV_Music* MLV_load_music( const char* file_music );
/** \~french
* \brief Ferme un morceau de musique chargé en mémoire.
*
* \param music Le morceau de musique à fermer
*/
void MLV_free_music( MLV_Music* music );
/** \~french
* \brief Joue un morceau de musique qui est chargée en mémoire.
*
* \param music Le morceau de musique à jouer.
* \param volume Le volume sonore.
* \param loop Le nombre de fois que le morceau doit être joué. Si loop est
* strictement négatif, le morceau sera joué indéfiniment.
*/
void MLV_play_music( const MLV_Music* music, float volume, int loop );
/** \~french
* \brief Arrête toutes les musiques.
*/
void MLV_stop_music();
/** \~french
* \brief Charge un ficher contenant un échantillon sonore en mémoire.
*
* Cette fonction prends en paramètre le chemin d'accès du
* fichier contenant l'échantillon sonore et renvoie un pointeur vers l'espace
* mémoire où a été chargé l'échantillon sonore.
*
* Les formats de fichier acceptés sont les suivants : WAVE, AIFF, RIFF, OGG, and
* VOC.
*
* \param file_sound Chemin d'accès vers un fichier contenant un échantillon
* sonore.
* \return Null si le fichier n'a pas pu être chargé en mémoire. Un pointeur vers
* l'échantllon sonore sinon.
*/
MLV_Sound* MLV_load_sound( const char* file_sound );
/** \~french
* \brief Ferme un échantillon sonore chargé en mémoire.
*
* \param sound L'échantillon sonore à fermer
*/
void MLV_free_sound( MLV_Sound* sound );
/** \~french
* \brief Joue un échantillon sonore chargé en mémoire.
*
* \param sound L'échantillon sonore à jouer.
* \param volume Le volume sonore.
*/
void MLV_play_sound( const MLV_Sound* sound, float volume );
/** \~french
* \brief Arrête tous les échantillons sonores.
*/
void MLV_stop_all_sounds();
#ifdef __cplusplus
}
#endif
#endif
|