303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 331 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
TTF_STYLE_UNDERLINE : souligné.
Comme c'est une liste de flags, vous pouvez les combiner à l'aide du symbole | comme on a appris à le faire. 
Testons : 
Code : C
/* Chargement de la police */
police = TTF_OpenFont("angelina.ttf"65);
/* Le texte sera écrit en italique et souligné */
TTF_SetFontStyle(police, TTF_STYLE_ITALIC | TTF_STYLE_UNDERLINE);
/* Ecriture du texte en italique et souligné */
texte = TTF_RenderText_Blended(police, "Salut les Zér0s !", couleurNoire);
Résultat, le texte est écrit en italique et souligné : 
Pour restaurer une police à son état normal, il suffit de refaire appel à TTF_SetFontStyle en utilisant cette fois le flag
TTF_STYLE_NORMAL. 
Exercice : le compteur
Cet exercice va cumuler ce que vous avez appris dans ce chapitre et dans le chapitre sur la gestion du temps. 
Votre mission, si vous l'acceptez, consistera à créer un compteur qui s'incrémentera tous les dixièmes de seconde. 
Ce compteur va donc progressivement afficher : 
100 
200 
300 
400 
etc. 
Pdf image text extractor - Select, copy, paste PDF images in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support PDF Image Extraction from a Page, a Region on a Page, and PDF Document
extract pdf pages to jpg; extract images pdf acrobat
Pdf image text extractor - VB.NET PDF Image Extract Library: Select, copy, paste PDF images in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support PDF Image Extraction from a Page, a Region on a Page, and PDF Document
extract jpg pdf; extract image from pdf in
303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 332 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
Au bout d'une seconde je veux voir affiché 1000, au bout d'une seconde et demie je veux voir affiché 1500 etc. 
Astuce pour écrire dans une chaîne 
Pour réaliser cet exercice, vous aurez besoin de savoir comment écrire dans une chaîne de caractères en mémoire. 
En effet, vous devez donner un char* à TTF_RenderText mais vous ce que vous aurez c'est un nombre (un int par exemple). Comment
convertir un nombre en chaîne de caractères ? 
On peut utiliser la fonction sprintf. 
Elle marche de la même manière que fprintf, sauf qu'au lieu d'écrire dans un fichier elle écrit dans une chaîne (le "s" de sprintf signifie
"string", c'est-à-dire "chaîne" en anglais). 
Le premier paramètre que vous lui donnerez sera donc un pointeur sur un tableau de char. 
Veillez à réserver suffisamment d'espace pour le tableau de char si vous ne voulez pas déborder en mémoire !
Exemple : 
Code : C
sprintf(temps, "Temps : %d", compteur);
Ici, temps est un tableau de char (20 caractères), et compteur est un int qui contient le temps. 
Après cette instruction, la chaîne temps contiendra par exemple "Temps : 500" 
Allez au boulot ! 
Correction 
Voici une correction possible de l'exercice : 
Code : C
int main(int argc, char *argv[])
{
SDL_Surface *ecran = NULL, *texte = NULL;
SDL_Rect position;
SDL_Event event;
TTF_Font *police = NULL;
SDL_Color couleurNoire = {000}, couleurBlanche = {255255255};
int continuer = 1;
int tempsActuel = 0, tempsPrecedent = 0, compteur = 0;
char temps[20] = ""; /* Tableau de char suffisamment grand */
SDL_Init(SDL_INIT_VIDEO);
TTF_Init();
ecran = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE | SDL_DOUBLEBUF);
SDL_WM_SetCaption("Gestion du texte avec SDL_ttf", NULL);
/* Chargement de la police */
police = TTF_OpenFont("angelina.ttf"65);
/* Initialisation du temps et du texte */
tempsActuel = SDL_GetTicks();
sprintf(temps, "Temps : %d", compteur);
texte = TTF_RenderText_Shaded(police, temps, couleurNoire, couleurBlanche);
while (continuer)
{
SDL_PollEvent(&event);
switch(event.type)
{
case SDL_QUIT:
continuer = 0;
break;
}
VB.NET TIFF: TIFF Text Extractor SDK; Extract Text Content from
Standalone VB.NET TIFF text extractor SDK that extracts can easily integrate this TIFF text extraction control SDK into VB.NET image application by
some pdf image extract; extract photos from pdf
VB.NET TIFF: TIFF to Text (TXT) Converter SDK; Convert TIFF to
developers to interpret and decode TIFF image file convert all TIFF page into one text file to provide powerful & profession imaging controls, PDF document, tiff
extract images from pdf file; extract image from pdf acrobat
303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 333 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 255, 255));
tempsActuel = SDL_GetTicks();
if (tempsActuel - tempsPrecedent >= 100) /* Si 100ms au moins se sont écoulées */
{
compteur += 100/* On rajoute 100ms au compteur */
sprintf(temps, "Temps : %d", compteur); /* On écrit dans la chaîne "temps" le
nouveau temps */
SDL_FreeSurface(texte)/* On supprime la surface précédente de la mémoire avant
d'en charger une nouvelle (IMPORTANT) */
texte = TTF_RenderText_Shaded(police, temps, couleurNoire, couleurBlanche)/*
On écrit la chaine temps dans la SDL_Surface */
tempsPrecedent = tempsActuel; /* On met à jour le tempsPrecedent */
}
position.x = 180;
position.y = 210;
SDL_BlitSurface(texte, NULL, ecran, &position)/* Blit du texte contenant le temps
*/
SDL_Flip(ecran);
}
TTF_CloseFont(police);
TTF_Quit();
SDL_FreeSurface(texte);
SDL_Quit();
return EXIT_SUCCESS;
}
Voici ce que ça donne au bout de 13,9 secondes très exactement 
VB.NET PowerPoint: Extract & Collect PPT Slide(s) Using VB Sample
demo code using RasterEdge VB.NET PowerPoint extractor library toolkit. provide powerful & profession imaging controls, PDF document, image to pdf files and
extract images from pdf files; extract image from pdf
VB.NET Word: Extract Word Pages, DOCX Page Extraction SDK
this VB.NET Word page extractor add-on can be also used to merge / split Word file, add / delete Word page, sort Word page order or insert image into Word page
extract images pdf; extract image from pdf file
303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 334 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
Télécharger le projet (437 Ko)
Ce n'est pas parfait, on pourrait par exemple utiliser SDL_Delay pour éviter d'utiliser 100% du CPU. 
Pour aller plus loin 
Si vous voulez améliorer ce petit bout de programme, vous pouvez essayer d'en faire un jeu où il faut cliquer le plus de fois possible dans
la fenêtre avec la souris dans un temps imparti. Un compteur s'incrémentera à chaque clic de la souris. 
Un compte à rebours doit s'afficher. Lorsqu'il atteint 0, on récapitule le nombre de clics effectués et on demande si on veut faire une
nouvelle partie. 
Vous pouvez aussi gérer les meilleurs scores en les enregistrant dans un fichier. Ca vous fera travailler à nouveau la gestion des fichiers
en C 
Bon courage ! 
Vous savez maintenant tout ce qu'il faut pour écrire du texte dans une fenêtre SDL 
Mine de rien, vous commencez à en savoir beaucoup sur la SDL. Nous aurons bientôt fini d'en faire le tour. 
Nous devons toutefois apprendre à gérer le son (nos programmes sont muets pour le moment) et faire encore quelques TP pour bien
comprendre comment on s'y prend pour créer des jeux en C. 
Lorsque nous en aurons fini avec la SDL, nous passerons au C++. En effet, nous n'avons fait que du C jusqu'ici, et nous ne connaissons
toujours rien du langage C++ ! Nous y viendrons donc dans quelques chapitres, lorsque la partie III sur la SDL sera terminée.
Jouer du son avec FMOD
Depuis le début de la partie III, nous avons appris à placer des images dans la fenêtre, à faire interagir l'utilisateur par tous les moyens
possibles et imaginables (clavier, souris, joystick...), à écrire du texte, mais il manque clairement un élément : le son ! 
Ce chapitre va combler ce manque. Nous allons découvrir une librairie spécialisée dans le son : FMOD. 
Faites chauffer les enceintes, c'est DJ M@teo qui mixe ce soir 
Installer FMOD
Pourquoi FMOD ?
Vous le savez maintenant : la SDL n'est pas seulement une librairie graphique. Elle permet aussi de gérer le son via un module appelé
SDL_audio. Alors que vient faire une librairie externe qui n'a rien à voir comme FMOD dans ce chapitre ? 
C'est en fait un choix que j'ai fait après de nombreux tests. J'aurais pu vous expliquer comment gérer le son en SDL mais j'ai préféré ne
pas le faire. 
Je m'explique. 
Pourquoi j'ai évité SDL_audio 
La gestion du son en SDL est "bas niveau". Trop à mon goût. Il faut effectuer plusieurs manipulations très précises pour jouer du son.
C'est donc complexe et je ne trouve pas ça amusant. Il y a bien d'autres librairies qui proposent de jouer du son simplement. 
Petit rappel : une librairie "bas niveau" est une librairie proche de l'ordinateur. On doit donc connaître un peu le
fonctionnement interne de l'ordinateur pour s'en servir et il faut généralement plus de temps pour arriver à faire la même
chose qu'avec une librairie "haut niveau". 
N'oubliez pas que tout est relatif : il n'y a pas les librairies bas niveau d'un côté et les librairies haut niveau de l'autre.
Certaines sont juste plus ou moins haut niveau que d'autres. Par exemple FMOD est plus haut niveau que le module SDL_audio
de la SDL.
Autre détail important, la SDL ne permet de jouer que des sons au format WAV. Le format WAV est un format de son non compressé.
Une musique de 3 minutes dans ce format prend plusieurs dizaines de Mo, contrairement à un format compressé comme MP3 ou Ogg qui
occupe beaucoup moins d'espace (2-3 Mo). 
C# Word: How to Extract Text from C# Word in .NET Project
is the complete Visual C# sample code for extracting text from a to provide powerful & profession imaging controls, PDF document, image to pdf files and
extract vector image from pdf; how to extract text from pdf image file
303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 335 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
En fait, si on y réfléchit bien, c'était un peu pareil avec les images. La SDL ne gère que les BMP (images non compressées) à la base. On
a dû installer une librairie supplémentaire (SDL_image) pour pouvoir lire d'autres images comme les JPEG, PNG, GIF, etc. 
Eh bien figurez-vous qu'il y a une librairie équivalente pour le son : SDL_mixer. Elle est capable de lire un grand nombre de formats
audio, parmi lesquels les MP3, les Ogg, les Midi... Et pourtant, j'ai évité de vous parler de cette librairie là encore. Pourquoi ? 
Pourquoi j'ai évité SDL_mixer 
SDL_mixer est une librairie qu'on ajoute en plus de la SDL à la manière de SDL_image. Elle est simple à utiliser et lit beaucoup de
formats audio différents. Toutefois, après mes tests, il s'est avéré que la librairie comportait des bugs gênants en plus d'être
relativement limitée en fonctionnalités. 
C'est donc pour cela que je me suis ensuite penché sur FMOD, une librairie qui n'a certes rien à voir avec la SDL, mais qui a l'avantage
d'être puissante et réputée. 
Télécharger FMOD
Si je vous raconte tout ça, c'est pour vous expliquer que le choix de FMOD n'est pas anodin. C'est tout simplement parce que c'est la
meilleure librairie gratuite que j'ai pu trouver. 
Elle est aussi simple à utiliser que SDL_mixer, avec un avantage non négligeable : elle n'est pas buggée 
FMOD permet en outre de réaliser plusieurs effets intéressants que SDL_mixer ne propose pas, comme des effets sonores 3D. 
Pour télécharger la librairie, il vous faut l'adresse du site de FMOD. La voici : 
http://www.fmod.org
FMOD est une librairie gratuite mais pas sous license LGPL, contrairement à la SDL. Cela signifie que vous pouvez l'utiliser
gratuitement du temps que vous ne réalisez pas de programme payant avec. Si vous voulez faire payer votre programme, il
faudra payer une redevance à l'auteur (je vous laisse consulter les prix sur le site de FMOD).
Rendez-vous sur la page des téléchargements (Downloads) et prenez FMOD 3. 
Attention, il y a plusieurs versions de FMOD, en particulier une plus récente et
appelée FMOD Ex (il s'agit en fait de FMOD 4). Toutefois, FMOD Ex est une librairie
C++, contrairement à FMOD 3 qui est une librairie C. 
FMOD Ex, bien qu'écrite en C++, peut être utilisée en C en faisant quelques légères manipulations. Ce n'est toutefois pas
la librairie que nous utiliserons ici. FMOD 3 est toujours supportée par ses créateurs et suffit amplement à nos besoins.
Téléchargez donc FMOD 3, il s'agit de la section "FMOD 3.75 Programmers API" sur la page Downloads (il peut s'agir d'une version plus
récente si FMOD 3 a évolué). Prenez la version correspondant à votre système d'exploitation : Windows 32 / 64 bits si vous êtes sous
Windows. 
Vous remarquerez au passage que FMOD fonctionne sur un très grand nombre de plateformes, en particulier sur des consoles de jeux
comme la XBOX, la PS2, la PS3, la PSP, la Wii, etc. Cette librairie a été utilisée par plusieurs jeux professionnels parus sur console, ça
devrait vous rassurer quant à sa qualité 
Installer FMOD
Le fichier que vous avez téléchargé est un fichier ZIP (si c'est un exécutable c'est que vous avez pris FMOD Ex et non FMOD 3 !).
L'installation se déroule de la même manière qu'avec les autres librairies qu'on a vues jusqu'ici. 
1.  Vous avez un dossier "Api" avec la DLL de FMOD (fmod.dll) à placer dans le répertoire de votre projet. 
fmod64.dll, que vous trouverez dans le même dossier, est la DLL adaptée aux systèmes d'exploitation 64 bits, pour
ceux qui ont des processeurs 64 bits. 
303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 336 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
Si vous n'êtes pas sûr de la DLL à prendre, utilisez fmod.dll, il y a 99% de chances pour que ce soit la bonne. Si vous 
êtes sous Windows XP par exemple, c'est que vous n'êtes pas sous un OS 64 bits, vous pouvez donc prendre fmod.dll.
2.  Dans le dossier "api/inc", vous trouverez les .h. Placez-les à côté des autres .h dans le dossier de votre IDE. Par exemple "Code
Blocks/mingw32/include/FMOD" (j'ai créé un dossier spécial pour FMOD comme pour SDL).
3.  Dans le dossier "api/lib", récupérez le fichier qui correspond à votre compilateur. 
Si vous utilisez Code Blocks ou Dev-C++, donc le compilateur mingw, copiez "libfmod.a" dans le dossier "lib" de votre IDE. 
Dans le cas de Code Blocks, c'est le dossier "CodeBlocks/mingw32/lib".
Si vous utilisez Visual C++, récupérez le fichier "fmodvc.lib"
4.  Enfin, et c'est peut-être le plus important, dans le dossier "documentation" vous trouverez un fichier d'aide qui correspond à la
documentation de FMOD. Je vous conseille de le placer quelque part sur votre disque dur et d'en faire un raccourci bien visible,
par exemple dans le menu Démarrer. 
En effet, la documentation liste toutes les possibilités de FMOD dans le détail. Dans ce chapitre, on ne pourra voir que les
principales. Si vous voulez allez plus loin, il faudra donc vous plonger dans cette doc 
La doc est aussi accessible en ligne à l'adresse : http://www.fmod.org/docs.
Il reste à configurer notre projet. Là encore, c'est comme les autres fois : vous ouvrez votre projet avec votre IDE favori et vous ajoutez
le fichier .a (ou .lib) à la liste des fichiers que le linker doit récupérer. 
Sous Code Blocks (j'ai l'impression de me répéter 
), menu Project / Build Options, onglet Linker, cliquez sur "Add" et indiquez où se
trouve le fichier .a. Si on vous demande "Keep as a relative path ?", je vous conseille de répondre non, mais dans les deux cas de toute
manière ça devrait marcher. 
Voilà qui est bien 
FMOD est installé, voyons voir rapidement de quoi il est constitué. 
Les différentes sections de FMOD
FMOD 3 est en fait la combinaison de 2 librairies : 
FSOUND : cette partie gère tous les sons de type PCM. Il s'agit tout simplement de sons "réels" enregistrés, cela comprend aussi
bien les formats compressés que non compressés : WAV, MP3, OGG, etc. Ces sons peuvent être des musiques ou des courts son
comme un bruit de pas, un bruit de balle... D'ailleurs, FMOD distingue 2 types de sons : 
Les sons courts (bruit de pas, bruit de balle) destinés à être répétés souvent.
Les sons longs, comme une musique qui dure 3 minutes par exemple (ça peut être la musique de fond de votre jeu).
FMUSIC : cette section gère les musiques au format binaire. Cette fois, il n'y a pas de son enregistré, juste les notes de musique.
Le format binaire le plus connu est probablement le MIDI. Vous savez probablement que les MIDI sont des fichiers audio très petits
: c'est justement parce qu'ils enregistrent seulement les notes de musique (il ne peut donc pas y avoir de "paroles" avec un tel
format de fichier). Cette section peut être très utile pour jouer des vieilles musiques type Gameboy ou SuperNES, comme par
exemple la musique de Super Mario, de Tetris, etc.
Dans ce chapitre, nous verrons les trois types de sons car ils se chargent et se lisent avec des fonctions différentes : 
FSOUND : sons courts
FSOUND : sons longs (musiques)
FMUSIC : musique type MIDI
Initialiser et libérer FMOD
Comme la plupart des librairies écrites en C, il faut charger FMOD (on dit aussi "initialiser") et le libérer quand on n'en a plus besoin. Ca
ne devrait pas beaucoup vous changer de la SDL à ce niveau 
Inclure le header
Avant toute chose, vous avez dû le faire instinctivement maintenant mais ça ne coûte rien de le préciser, il faut inclure le fichier .h de
FMOD. 
Code : C
#include <FMOD/fmod.h> 
303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 337 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
J'ai placé ce fichier dans un sous-dossier "FMOD". Adaptez cette ligne en fonction de la position du fichier si chez vous c'est différent. 
Initialiser FMOD
On initialise FMOD avec la fonction FSOUND_Init. 
Elle prend 3 paramètres : 
La fréquence d'échantillonnage : comptez pas sur moi pour vous faire un cours de physique ici 
En gros, ce paramètre permet d'indiquer la qualité de son que doit gérer FMOD. Plus la fréquence est élevée, meilleur est le son
(mais la puissance demandée est plus grande). Voici quelques exemples de fréquences pour vous aider à faire votre choix : 
Qualité CD : 44 100 Hz
Qualité radio : 22 050 Hz
Qualité téléphonique : 11 025 Hz
Dans tout ce chapitre, nous utiliserons une fréquence de 44 100 Hz. 
Si le son que vous utilisez est de mauvaise qualité à la base, FMOD ne l'améliorera pas. Par contre, si vous avez un
son de fréquence 44 100 Hz et que FMOD utilise une fréquence de 22 050 Hz, sa qualité sera diminuée.
Le nombre maximal de canaux que devra gérer FMOD. En d'autres termes, c'est le nombre maximal de sons qui pourront être
joués en même temps. Tout dépend de la puissance de votre carte son. On conseille généralement une valeur de 32 (ce sera
suffisant pour la plupart des petits jeux). Pour info, FMOD peut théoriquement gérer jusqu'à 1024 canaux différents, mais à ce
niveau ça risque de beaucoup faire travailler votre ordinateur !
Enfin, on peut indiquer des flags. Il n'y a rien de bien intéressant à mettre en général, donc on se contentera d'envoyer 0 (pas de
flags).
Nous pouvons donc initialiser FMOD comme ceci : 
Code : C
FSOUND_Init(4410032, 0);
Ce qui signifie : fréquence de 44 100 Hz (qualité CD au mieux), 32 canaux et pas d'options particulières (flag = 0). 
Libérer FMOD
On arrête FMOD de la manière la plus simple qui soit : 
Code : C
FSOUND_Close();
Est-ce que j'ai vraiment besoin de commenter ce code ? 
Les sons courts
Nous commencerons par étudier les sons courts. 
Un "son court", comme je l'appelle, est un son qui dure généralement quelques secondes (parfois moins d'une seconde) et qui est
généralement destiné à être joué régulièrement. 
Quelques exemples de sons courts : 
Un bruit de balle
Un bruit de pas
Un tic-tac (pour faire stresser le joueur avant la fin d'un compte à rebours 
)
Des applaudissements
etc etc
303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 338 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
Bref, ça correspond à tous les sons qui ne sont pas des musiques. 
Généralement, ces sons sont tellements courts qu'on ne prend pas la peine de les compresser. On les trouve donc le plus souvent au
format WAV non compressé. 
Trouver des sons courts
Avant de commencer, il serait bien de connaître quelques sites qui proposent des banques de sons. En effet, tout le monde ne veut pas
forcément enregistrer les sons chez soi (pour les bruits de balle par exemple, vous avez intérêt à être armé ! 
). 
Ca tombe bien, le net regorge de sons courts, généralement au format WAV. 
Où les trouver ? Ca peut paraître bête, on n'y pense pas forcément (et pourtant on devrait), mais Google est notre ami. Au hasard, je
tape "Free Sounds", ce qui signifie "sons gratuits" en anglais, et boum... des centaines de millions de résultats ! 
Rien qu'avec les sites de la première page, vous devriez trouver votre bonheur. 
Personnellement, j'ai retenu FindSounds.com , un moteur de recherche pour sons. Je ne sais pas si c'est le meilleur, mais en tout cas il
est bien complet. 
Si vous ne savez pas quels mots-clés taper pour votre recherche, rendez-vous sur la page des exemples de recherche
Certes, il faut connaître quelques mots d'anglais (mais si vous voulez programmer de toute façon, comment voulez-vous faire
sans être au moins capable de lire l'anglais ?).
En recherchant "gun", on trouve des tonnes de sons de tir de fusil, en tapant "footsteps" on trouve des bruits de pas, etc etc. 
303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 339 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
Le site FindSounds.com, un moteur de recherche de sons courts (ici, des bruits de porte)
Bonne pioche et bons téléchargements 
Les étapes à suivre pour jouer un son
La première étape consiste à charger en mémoire le son que vous voulez jouer. 
Il est conseillé de charger tous les sons qui seront fréquemment utilisés dans le jeu dès le début du programme. Vous les libérerez à la
fin. En effet, une fois que le son est chargé en mémoire, sa lecture est très rapide. 
Le pointeur 
Première étape : créer un pointeur de type FSOUND_SAMPLE qui représentera notre son. 
Code : C
303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 340 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
FSOUND_SAMPLE *tir = NULL;
Charger le son 
Deuxième étape : charger le son avec la fonction FSOUND_Sample_Load. Elle prend... 5 paramètres : 
Le numéro de la sample pool dans laquelle FMOD doit garder une trace du son. Je m'explique 
La sample pool, que j'ai pas trop essayé de traduire mais on pourrait dire que c'est la "piscine à samples", c'est une sorte de
tableau dans lequel FMOD garde une copie des pointeurs vers chacun des sons courts chargés. Cela lui permet de libérer
automatiquement la mémoire lorsqu'on appelle FSOUND_Close() (la fonction d'arrêt de FMOD) : il suffit à FMOD de lire ce tableau
et de libérer chacun des éléments qui s'y trouvent. Toutefois, plutôt que de faire confiance à FMOD, il est mieux de penser à
appeler nous-mêmes la fonction de libération de mémoire (FSOUND_Sample_Free()) que nous allons découvrir dans quelques
instants. 
Bref, tout ce blabla pour dire que ce paramètre sert au fonctionnement interne de FMOD pour qu'il s'assure de libérer tous les
sons à la fin 
au cas où vous auriez oublié de le faire. 
Pour indiquer un numéro de la sample pool, le mieux est d'envoyer FSOUND_FREE à la fonction. Elle se chargera alors de prendre
le premier emplacement libre de la sample pool qu'elle trouvera. Ne vous posez donc pas trop de questions ce n'est pas bien utile
ici, envoyez juste FSOUND_FREE 
Le nom du fichier son à charger. Il peut être de format WAV, MP3, OGG, etc. Toutefois, il vaut mieux charger des sons courts
(quelques secondes maximum) plutôt que des sons longs. En effet, la fonction chargera et décodera tout le son en mémoire, ce
qui peut prendre de la place si le son est une musique !
Le troisième paramètre ne nous intéresse pas, il permet de préciser les caractéristiques du fichier qu'on veut charger (fréquence
d'échantillonnage, etc.). Or, dans le cas des WAV, MP3, OGG et cie, ces informations sont inscrites dans le fichier. On va donc
envoyer la valeur 0 pour ne rien préciser.
L'offset où doit commencer la lecture. Cela permet de commencer la lecture du son à un moment précis. Mettez 0 pour
commencer du début.
La longueur : si vous précisez un offset, il faudra aussi donner la longueur de son à lire. On mettra là encore 0 car on veut tout
lire.
La fonction renvoie l'adresse mémoire où a été chargé le son. 
Voici un exemple de chargement : 
Code : C
tir = FSOUND_Sample_Load(FSOUND_FREE, "pan.wav"0, 0, 0);
Ici, je charge le son "pan.wav" et je le place dans le premier canal libre. Le pointeur tir fera référence à ce son par la suite. 
Vous remarquerez qu'en règle générale on laisse les 3 derniers paramètres à 0. 
Si vous voulez faire les tests en même temps que moi (et si vous ne voulez pas vous devriez 
), voici le fichier son
pan.wav sur lequel nous allons travailler par la suite.
La fonction renvoie NULL si le fichier n'a pas été chargé. Vous avez tout intérêt à vérifier si le chargement a réussi ou s'il a échoué. 
Jouer le son 
Vous voulez jouer le son ? Pas de problème avec la fonction FSOUND_PlaySound ! 
Il suffit de lui donner un numéro de canal sur lequel jouer ainsi que le pointeur sur le son. Pour le numéro de canal, ne vous prenez pas
la tête et envoyez FSOUND_FREE pour laisser FMOD gérer ça 
Code : C
FSOUND_PlaySound(FSOUND_FREE, tir);
Libérer le son de la mémoire 
Lorsque vous n'avez plus besoin du son, vous devez le libérer de la mémoire. 
Il n'y a rien de plus simple, il suffit d'indiquer le pointeur à libérer avec la fonction FSOUND_Sample_Free 
Documents you may be interested
Documents you may be interested