Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Linux] FMOD

Installation impossible

    11 octobre 2006 à 19:27:33

    Bonjour,

    Alors je risque de passer pour un flemmard mais:

    Je veux faire un lecteur audio et vidéo, et pour l'instant je me charge de l'audio.
    Je vais utiliser fmod.
    Hors deja sur le site officiel , je me paume...je telecharge le fichier nommé : fmodapi40435linux

    Je l'ai installé avec le makefile ci joint.

    Voila jai testé ce code (merci de ne pas critiquer ce code car il est en construction):


    #include <wx/wxprec.h>
    #ifndef WX_PRECOMP
       #include <wx/wx.h>
    #endif

    #include <wx/sizer.h>
    #include <wx/textdlg.h>
    #include <wx/slider.h>
    #include <wx/colour.h>

    #include <fmod/fmod.h>

    #include "main.h"

    class data
    {
      public:
            wxString cheminMedia;
       

    };

    data data;



    FSOUND_STREAM *zic = NULL;

    FSOUND_Init(44100, 32, 0);

    //****************************************************************************************

    class moonsong : public wxApp
    {
      public:
        virtual bool OnInit();
    };

    IMPLEMENT_APP(moonsong);

    //****************************************************************************************

    bool moonsong::OnInit()
    {
        fenp *fenpf = new fenp("Rikku media player version 1.0", wxPoint(-1,-1), wxSize(500,250));

        fenpf->Show(true);
        return true;

    }

    //*****************************************************************************************

    fenp::fenp(const wxString& title, const wxPoint& pos, const wxSize& size,
                            long style) : wxFrame(NULL, -1, title, pos, size, style)
    {
       SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE));

    //--------------------------------------------------------------------------------------------------------------

       bOpen = new wxButton(this,ID_PLAY,"Ouvrir", wxPoint(-1,-1),wxSize(60,30));
       bPlay = new wxButton(this,-1,"Play", wxPoint(-1,-1),wxSize(60,30));
       bStop = new wxButton(this,-1,"Stop", wxPoint(-1,-1),wxSize(60,30));
       bPause = new wxButton(this,-1,"Pause", wxPoint(-1,-1),wxSize(60,30));

       slbarre_lecture = new wxSlider(this,-1,0,0,8,wxPoint(-1,-1),wxDefaultSize,wxSL_HORIZONTAL);
           
       

     

    //--------------------------------------------------------------------------------------------------------------
       boxSlider = new wxBoxSizer(wxHORIZONTAL);
         boxSlider->Add(slbarre_lecture,1,wxALL|wxALIGN_CENTER_HORIZONTAL,5);

       boxControle = new wxBoxSizer(wxHORIZONTAL);
         boxControle->Add(bOpen,1,wxALL|wxALIGN_CENTER_HORIZONTAL,5);
         boxControle->Add(bPlay,1,wxALL|wxALIGN_CENTER_HORIZONTAL,5);
         boxControle->Add(bPause,1,wxALL|wxALIGN_CENTER_HORIZONTAL,5);
         boxControle->Add(bStop,1,wxALL|wxALIGN_CENTER_HORIZONTAL,5);

       boxP = new wxBoxSizer(wxVERTICAL);
         boxP->Add(boxSlider,0,wxEXPAND,0);
         boxP->Add(boxControle,0,wxEXPAND,0);

       SetSizerAndFit(boxP);

    //--------------------------------------------------------------------------------------------------------------

    }

    //**********************************************************

    void fenp::OnPlay(wxCommandEvent& WXUNUSED(event))
    {
       zic = FSOUND_Stream_Open(cheminMedia, 0, 0, 0);
           
       FSOUND_Stream_Play(FSOUND_FREE, zic);
    }

    //***********************************************************

    void fenp::OnPause(wxCommandEvent& WXUNUSED(event))
    {

    }

    //*************************************************************

    void fenp::OnStop(wxCommandEvent& WXUNUSED(event))
    {
       FSOUND_Stream_Close(zic);
       FSOUND_Close();
    }

    //************************************************************

    void fenp::OnOpenFile(wxCommandEvent& WXUNUSED(event))
    {
       data.cheminMedia = wxFileSelector("Ouvrir un média" ,"" ,"" ,"",
              "*.wav",wxOPEN);
           
       
    }

    //**************************************************************

    void fenp::OnDisplayList(wxCommandEvent& WXUNUSED(event))
    {

    }

    //**************************************************************

    void fenp::OnOpenList(wxCommandEvent& WXUNUSED(event))
    {

    }


    Voila et j'obtient ceci:

    main.cpp:29: erreur: expected constructor, destructor, or type conversion before ‘(’ token


    Voila hors la ligne 29 est l'innitialisation de fmod.

    Info sup : Quand je met #include <FMOD/fmod.h> cela ne fonctionne pas.

    Voila merci a tous ceux qui m'aideront.

    Sur ce bonne prog.

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      14 octobre 2006 à 17:36:23

      data data;

      déja là ya un problème...
      Un nom de variable ne peut etre le même qu'un nom de classe !

      FSOUND_Init(44100, 32, 0);

      Là aussi il y a un problème, tu essayes d'initialiser FMOD (donc par un appel de fonction, donc d'exécution de code) en dehors de toute autre fonction, ce qui n'a bien entendu pas de sens !

      Il faut revoir plusieurs points dans ton code, relire le cours peut aider...
      • Partager sur Facebook
      • Partager sur Twitter
        14 octobre 2006 à 17:45:45

        data data; c'est tout a fait normal qu'il soit la. C'est pour l'utilisation des classes en C++.

        Mon codes est entrain d'etre restructuré, car comme il lira aussi les vidéos, je decomposerai mon code si utilisation de fmod ou video.

        Sinon ne t'inquiete pas a la fin il n'y aura aucune variable ou commande en global.

        A la base mon probleme est fmod, et le code etait juste indicatif...

        Merci
        • Partager sur Facebook
        • Partager sur Twitter
          14 octobre 2006 à 17:56:27

          peut être mais sans fonction main çà risque pas de marché.
          • Partager sur Facebook
          • Partager sur Twitter
            14 octobre 2006 à 18:29:31

            bool moonsong::OnInit() fais office de fonction main() dans un programme utilisant wxWidgets.
            • Partager sur Facebook
            • Partager sur Twitter
              14 octobre 2006 à 18:31:40

              Citation : Uims

              bool moonsong::OnInit() fais office de fonction main() dans un programme utilisant wxWidgets.


              alors comment çà se fait que FSOUND_Init(44100, 32, 0); ne soit pas dedans ?
              • Partager sur Facebook
              • Partager sur Twitter
                17 octobre 2006 à 19:08:10

                Erf il y est mais des problemes de linkages.

                /tmp/ccfkQIzj.o: dans la fonction &#65533; fenp::OnStop(wxCommandEvent&) &#65533;:
                main.cpp:(.text+0x4f1): r&#65533;f&#65533;rence ind&#65533;finie vers &#65533; FSOUND_Stream_Close &#65533;
                main.cpp:(.text+0x4f6): r&#65533;f&#65533;rence ind&#65533;finie vers &#65533; FSOUND_Close &#65533;
                /tmp/ccfkQIzj.o: dans la fonction &#65533; fenp::OnPlay(wxCommandEvent&) &#65533;:
                main.cpp:(.text+0x52a): r&#65533;f&#65533;rence ind&#65533;finie vers &#65533; FSOUND_Stream_Open &#65533;
                main.cpp:(.text+0x544): r&#65533;f&#65533;rence ind&#65533;finie vers &#65533; FSOUND_Stream_Play &#65533;
                /tmp/ccfkQIzj.o: dans la fonction &#65533; moonsong::OnInit() &#65533;:
                main.cpp:(.text+0x363c): r&#65533;f&#65533;rence ind&#65533;finie vers &#65533; FSOUND_Init &#65533;
                collect2: ld a retourné 1 code d'état d'exécution

                Merci
                • Partager sur Facebook
                • Partager sur Twitter
                  19 octobre 2006 à 18:30:26

                  Up.

                  J'ai refait tout le code mais sa n'y change rien.

                  Ya donc personne qui peut m'aider?
                  • Partager sur Facebook
                  • Partager sur Twitter

                  [Linux] FMOD

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown