Differences between revisions 4 and 5
Revision 4 as of 2009-01-06 23:11:19
Size: 5224
Comment: en cours
Revision 5 as of 2009-01-07 21:50:31
Size: 3841
Comment:
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
~+[http://fr.wikipedia.org/wiki/FMOD FMOD]+~ est une libraire commerciale non distribuée par Debian. Elle permet de géréer les sons et la musique dans le développement d'un projet C/C++. ~+[http://fr.wikipedia.org/wiki/FMOD FMOD]+~ est une libraire commerciale non distribuée par Debian. Elle permet de gérer les sons et la musique dans le développement d'un projet C/C++.
Line 7: Line 7:
 Ici nous traitons de la manière de l'installer sur notre système préféré. Cet article traite de la manière d'installer FMOD sur un système Debian.
Line 10: Line 10:
 [[TableOfContents(2)]]  [[TableOfContents(3)]]
Line 12: Line 12:
== FMOD version 3 ==
=== Récupération de la librairie de développement ===
= FMOD version 3.75 =
== Récupération de la librairie de développement ==
Line 15: Line 15:
 * Aller dans la section Download et télécharger la version '''FMOD 3 Programmers API''' pour Linux
''
Vous devriez télécharger un fichier nommé '''fmodapi375linux.tar.gz''' (ou similaire)''
 * Décompresser cette archives dans votre répertoire personnel ''~/''
 * Aller dans la section '''Download''' et télécharger la version '''FMOD 3 Programmers API''' pour Linux. Vous devriez télécharger une archive nommée fmodapi375linux.tar.gz.
 * Décompresser cette archive dans votre répertoire personnel '''~/'''
Line 19: Line 18:
=== Installation de la Librairie dans le système === == Installation de la Librairie dans le système Debian ==
Line 21: Line 20:
Dans l'archive vous trouverez de nombreux fichiers. Seuls les fichiers suivants seront utilisés sous Debian:
Line 25: Line 25:
'''inc/*.h :''' Les fichiers d'entête permettant à votre compilateur de connaitre les ''prototype des fonctions de FMOD.''
Line 27: Line 26:
=== La librairie ===
En principe, vos librairies maintenues par les dépôts Debian sont installés dans {{{/usr/lib}}}. Nous sommes dans un cas particulier car nous installons une librairie non maintenue. L'installation s'effectue dans {{{/usr/local/lib}}}.
'''inc/*.h :''' Les fichiers d'entête permettant à votre compilateur de connaitre les prototypes des fonctions de FMOD.

=== La librairie libfmod-3.75.so
===
En principe, les librairies maintenues par les dépôts Debian sont installées dans {{{/usr/lib}}}. Nous sommes dans un cas particulier car nous installons une librairie '''non maintenue'''. L'installation s'effectue dans {{{/usr/local/lib}}}.
Line 34: Line 36:
me problématique. Les entêtes sont à installer dans {{{/usr/local/include}}} au lien de {{{/usr/include}}}. Idem, les entêtes sont à installer dans {{{/usr/local/include}}} au lieu de {{{/usr/include}}} utilisé normalement.
Line 43: Line 45:
En ligne de commande, ajouter la librairie FMOD: En ligne de commande, ajouter les options suivantes:
Line 45: Line 47:
gcc [OPTIONS] /usr/local/lib/libfmod-3.75.so -o [EXE]
}}}
Exemple:
{{{
gcc -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/local/include -L/usr/lib -lSDL -lSDL_image -L/usr/local/lib -lfmod-3.75 libtest.c -o libtest
}}}
=== KDevelop ===
 * Ouvrir votre projet C++
 * Aller dans {{{Projet > Options du projet > Options de "configure" > C++ > Drapeaux du compilateur (CXXFLAGS)
 * Ajouter l'argument suivant aux arguments déjà présent:
{{{
/usr/local/lib/libfmod-3.75.so
-I/usr/local/include -L/usr/local/lib -lfmod-3.75
Line 59: Line 50:
== Test ==
''A rédiger ...''
=== KDevelop ===
 * Ouvrir votre projet C/C++
 * Aller dans {{{Projet > Options du projet > Options de "configure"}}}
 * Ajouter au "Drapeaux du préprocesseur C / C++ (CPPFLAGS)" l'option: {{{-I/usr/local/include}}}
 * Ajouter au "Drapeaux de l'éditeur de liens (LDFLAGS)" l'option: {{{-L/usr/local/lib -lfmod-3.75}}}
Line 62: Line 56:
== Valider le bon fonctionnement ==

Pour vérifier la bonne installation:

 * Créer un répertoire ~/testfmod

 * Enregistrer le fichier ~/testfmod/testfmod.c suivant: attachment:testfmod.c

 * A partir de l'archive, copier le fichier ~/fmodapi375linux/fmodapi375linux/media/chimes.wav vers ~/testfmod/test.wav

Lancer les commandes suivantes:
Line 63: Line 68:
#include <stdlib.h>
#include <stdio.h>
#include <SDL/SDL.h>
#include <SDL/SDL_image.h>
#include <fmod.h>
cd ~/testfmod
gcc -I/usr/local/include -L/usr/local/lib -lfmod-3.75 testfmod.c -o testfmod
./testfmod
}}}
Line 69: Line 73:
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;
  int test1 = 0;
  FSOUND_SetOutput(FSOUND_OUTPUT_ALSA);
Vous devriez entendre le fichier test.wav
Line 79: Line 75:
  /* Initialisation de FMOD */
  test1 = FSOUND_Init(44100, 32, 0);
  if (test1)
  {
    fprintf(stderr, "FSOUND initialisé\n");
  }
  else
  {
    fprintf(stderr, "FSOUND par en sucette?\n");
  }

  /* 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;
}}}
= Dépannage =
 * http://www.siteduzero.com/forum-83-356196-3310992-impossible-de-trouver-le-fichier-son.html#r3310992
== Dépannage ==
=== FSOUND_Init ne s'initialise pas ===
 Sous Debian, il est nécessaire de définir {{{FSOUND_SetOutput ( FSOUND_OUTPUT_ALSA );}}}
 Voir http://www.siteduzero.com/forum-83-356196-3310992-impossible-de-trouver-le-fichier-son.html#r3310992
Line 151: Line 83:
 * http://www.pathname.com/fhs/pub/fhs-2.3.html#USRLOCALLOCALHIERARCHY - Pourquoi le choix de /usr/local/  * http://www.pathname.com/fhs/pub/fhs-2.3.html#USRLOCALLOCALHIERARCHY - Pourquoi installer les librairies non maintenues dans /usr/local/

[:fr/DebianWiki/EditorGuide#traduction:Traduction(s)] : aucune

(!) [:/Discussion:Discussion]


[http://fr.wikipedia.org/wiki/FMOD FMOD] est une libraire commerciale non distribuée par Debian. Elle permet de gérer les sons et la musique dans le développement d'un projet C/C++.

Cet article traite de la manière d'installer FMOD sur un système Debian.

  • ?TableOfContents(3)

FMOD version 3.75

Récupération de la librairie de développement

  • Aller sur le site officel http://www.fmod.org

  • Aller dans la section Download et télécharger la version FMOD 3 Programmers API pour Linux. Vous devriez télécharger une archive nommée fmodapi375linux.tar.gz.

  • Décompresser cette archive dans votre répertoire personnel ~/

Installation de la Librairie dans le système Debian

Ce qu'il faut installer

Dans l'archive vous trouverez de nombreux fichiers. Seuls les fichiers suivants seront utilisés sous Debian:

  • ~/fmodapi375linux/fmodapi375linux/api/libfmod-3.75.so
  • ~/fmodapi375linux/fmodapi375linux/api/inc/*.h

libfmod-3.75.so : C'est la librairie en tant que telle.

inc/*.h : Les fichiers d'entête permettant à votre compilateur de connaitre les prototypes des fonctions de FMOD.

La librairie libfmod-3.75.so

En principe, les librairies maintenues par les dépôts Debian sont installées dans /usr/lib. Nous sommes dans un cas particulier car nous installons une librairie non maintenue. L'installation s'effectue dans /usr/local/lib.

sudo cp ~/fmodapi375linux/api/libfmod-3.75.so /usr/local/lib/

Les entêtes

Idem, les entêtes sont à installer dans /usr/local/include au lieu de /usr/include utilisé normalement.

sudo cp ~/fmodapi375linux/api/include/*.h /usr/local/include/

Compilation

gcc

En ligne de commande, ajouter les options suivantes:

-I/usr/local/include -L/usr/local/lib -lfmod-3.75

KDevelop

  • Ouvrir votre projet C/C++
  • Aller dans Projet > Options du projet > Options de "configure"

  • Ajouter au "Drapeaux du préprocesseur C / C++ (CPPFLAGS)" l'option: -I/usr/local/include

  • Ajouter au "Drapeaux de l'éditeur de liens (LDFLAGS)" l'option: -L/usr/local/lib -lfmod-3.75

Valider le bon fonctionnement

Pour vérifier la bonne installation:

  • Créer un répertoire ~/testfmod
  • Enregistrer le fichier ~/testfmod/testfmod.c suivant: attachment:testfmod.c
  • A partir de l'archive, copier le fichier ~/fmodapi375linux/fmodapi375linux/media/chimes.wav vers ~/testfmod/test.wav

Lancer les commandes suivantes:

cd ~/testfmod
gcc -I/usr/local/include -L/usr/local/lib -lfmod-3.75 testfmod.c -o testfmod
./testfmod

Vous devriez entendre le fichier test.wav

Dépannage

FSOUND_Init ne s'initialise pas

Liens externes