Tout d'abord bonjour à tous !
Je vais vous expliquer par le biais de ce tutoriel comment installer FMOD sous Xcode 3 (Mac OS X).
Ce tutoriel complète celui de M@teo21 sur le Langage C, c'est pourquoi je ne présenterai que l'installation de FMOD 3
Bon bah qu'est ce qu'on attend !
C'est parti
Un détail avant de commencer : Les fichiers MIDI ne sont pas supportés, veillez donc à les convertir dans un autre format afin de pouvoir les utiliser (iTunes les convertit très bien).
Tout d'abord il va falloir télécharger FMOD.
Je vous invite donc à aller sur le site et à télécharger la version 3 de FMOD.
Faites bien attention à ne pas prendre la version 4 en haut de la page mais la version 3 plus bas ...
Une fois celle-ci téléchargée, vous devriez avoir un fichier .zip nommé
fmodapi375mac. Si vous avez un .dmg c'est que vous avez téléchargé la version 4

Si ce n'est déjà fait, décompressez ce fichier
Maintenant que nous avons notre dossier, nous pouvons passer à l'installation

Dans ce dossier, vous avez un sous-dossier très important qui est le dossier ... documentation (ah vous aviez deviné

) veillez à bien mettre celui-là au chaud afin de pouvoir vous en servir plus tard.
Nous allons nous intéresser au dossier
api. Dans ce dossier nous avons 2 dossiers : Un dossier
inc et un autre
lib.
Dans le dossier lib, vous devriez avoir libfmod.a et libfmodx86.a.
- libfmod.a : Concerne uniquement les personnes ayant un mac à processeur PowerPC
- libfmodx86.a : Concerne les personnes ayant un mac à processeur Intel
Mais comment savoir si j'ai un mac à processeur Intel ou un PPC ?
Il suffit tout simplement de cliquer sur la pomme en haut à gauche de l'écran et de cliquer sur "A propos de ce Mac".
Dans la fenêtre qui apparaît il suffit de regarder le processeur.
Et dans le dossier
inc vous trouverez 3 fichiers:
- fmod.h
- fmod_errors.h
- wincompat.h
Ce que je conseille est de créer un dossier FMOD dans
HDD/Developer/ et de créer 2 sous-dossiers, un nommé
lib et un autre nommé
inc.
Ensuite placez les 3 fichiers .h cités ci-dessus et placez les dans notre dossier
HDD/Developer/FMOD/inc/, puis prenez le fichier .a qui correspond à votre machine et placez le dans le dossier
HDD/Developer/FMOD/lib/.
Notez que vous pouvez placer ces fichiers où vous voulez sur votre disque dur.
Tout d'abord ouvrez Xcode, ensuite créez un nouveau projet
SDL Application (ou ouvrez un projet existant).
Sur votre gauche vous avez une liste, cliquez sur la flèche à gauche de votre projet pour ouvrir l'arborescence (si celle-ci n'est pas déjà ouverte), puis cliquez sur la flèche à côté de
Frameworks.
Cliquez droit sur le dossier
Frameworks et cliquez sur
Add > New Group. Nommez le FMOD.
Maintenant cliquez droit sur ce dossier,
Add > Existing Framework... et allez chercher le fichier libfmod.a ou libfmodx86.a selon votre configuration (pour rappel nous les avons mis dans
HDD/Developer/FMOD/lib/). Cliquez sur Add.
Vous devriez avoir ceci :
Voilà vous avez installé FMOD
Mais et les headers, on ne les inclue pas ?
Si attendez j'y viens

Pour inclure les headers cliquez droit sur le dossier
FMOD ensuite
Add > Existing files... et allez chercher les 3 headers dont je vous parlais au début (
HDD/Developer/FMOD/inc).
Pensez à cocher la case Copy items into destination group's folder (if needed) en haut de la fenêtre qui apparaît une fois que vous avez sélectionné les fichiers ! Cela copiera les fichiers dans le dossier de votre projet.
Si vous ne le faites pas ce n'est pas grave, il suffira par la suite d'inclure vos headers avec des chevrons < > et non avec des guillemets " ".
Et voilà FMOD est presque prêt a l'emploi !
Pourquoi presque ?

Contrairement aux Windowsiens qui incluent seul le header fmod, nous Maciens (ça se dit ça ?

) devons inclure les 3 fichiers ... Cherchez pas à comprendre c'est comme ça
Code : C - Inclusions | #include "fmod.h"
#include "fmod_errors.h"
#include "wincompat.h"
|
Mais pourquoi quand je teste mon code ça ne marche pas ?

La particularité de FMOD est qu'il a besoin du Framework Carbon pour pouvoir fonctionner. N'oubliez pas de l'inclure sinon Xcode vous dira gentillement qu'il ne peut pas compiler ! On oublie souvent de l'inclure au début mais quand on se fait avoir 2 ou 3 fois croyez-moi qu'on y pense
Pour l'inclure on utilise la même méthode que ci-dessus, à savoir cliquez droit sur le dossier
Linked Frameworks (vous pouvez aussi l'inclure dans le dossier FMOD cela n'a pas d'importance, l'important est qu'il soit présent) ensuite
Add > Existing Frameworks..., allez dans le dossier
HDD/System/Library/Frameworks/ (ou
HDD/Système/Bibliothèque/Frameworks/) et choisissez
Carbon.framework. Cliquez sur Add.
Note : Dans la version 3.2 il suffit de chercher
Carbon.framework dans la liste déroulante
Au final vous devriez avoir quelque chose qui ressemble à ça :
Et voila FMOD est prêt a l'emploi
Maintenant que FMOD est bien installé, nous allons vérifier que tout fonctionne bien

Je vais juste vous faire compiler un code pour vérifier que l'installation s'est bien déroulée. Les détails sur l'utilisation de FMOD sont expliqués dans le tuto de M@teo21, donc si ça compile sans problème passez par la suite au tuto de M@teo, sinon revoyez l'installation pour voir si vous avez bien fait toutes les étapes comme il faut
Pour commencer,
téléchargez ce son et nommez-le
pan.wav
Et téléchargez cette image :

et nommez-la
viseur.png
Placez-les dans le dossier
Nom_de_votre_projet/build/debug/
Puis, dans le main.c copiez/collez ce code (c'est le code de M@teo21, j'ai juste changé les headers

) :
Code : C 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 | #include <stdlib.h>
#include <stdio.h>
#include "SDL.h"
#include "SDL_image.h"
#include "fmod.h"
#include "fmod_errors.h"
#include "wincompat.h"
int main(int argc, char *argv[])
{
SDL_Surface *ecran = NULL, *viseur = NULL;
SDL_Event event;
SDL_Rect position;
int continuer = 1;
FSOUND_SAMPLE *tir = NULL;
/* Initialisation de FMOD */
FSOUND_Init(44100, 32, 0);
/* Chargement du son et vérification du chargement */
tir = FSOUND_Sample_Load(FSOUND_FREE, "pan.wav", 0, 0, 0);
if (tir == NULL)
{
fprintf(stderr, "Impossible de lire pan.wav\n");
exit(EXIT_FAILURE);
}
/* Initialisation de la SDL */
SDL_Init(SDL_INIT_VIDEO);
SDL_ShowCursor(SDL_DISABLE);
ecran = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE | SDL_DOUBLEBUF);
SDL_WM_SetCaption("Gestion du son avec FMOD", NULL);
viseur = IMG_Load("viseur.png");
while (continuer)
{
SDL_WaitEvent(&event);
switch(event.type)
{
case SDL_QUIT:
continuer = 0;
break;
case SDL_MOUSEBUTTONDOWN:
/* Lorqu'on clique, on joue le son */
FSOUND_PlaySound(FSOUND_FREE, tir);
break;
case SDL_MOUSEMOTION:
/* Lorsqu'on déplace la souris, on place le centre du viseur à la position de la souris
... D'où notamment le "viseur->w / 2" pour réussir à faire cela */
position.x = event.motion.x - (viseur->w / 2);
position.y = event.motion.y - (viseur->h / 2);
break;
}
SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 0, 0, 0));
SDL_BlitSurface(viseur, NULL, ecran, &position);
SDL_Flip(ecran);
}
/* On ferme la SDL */
SDL_FreeSurface(viseur);
SDL_Quit();
/* On libère le son et on ferme FMOD */
FSOUND_Sample_Free(tir);
FSOUND_Close();
return EXIT_SUCCESS;
}
|
Si tout s'est déroulé correctement vous devriez avoir une fenêtre noire, et à la place de la souris l'image téléchargée ci-dessus.
Et si jamais vous appuyez sur un bouton vous devriez entendre le son téléchargé ci-dessus.