for ( int i = 0; i < 512; ++i )
{
spectrumValue = int( 100 * spectrumData[ i ] );
m_DC->SetPen(MonCrayon);
m_DC->DrawRectangle(500, 100, 300, 250);
m_DC->DrawPoint(i, 100*spectrumValue);
}
}
/*/////////////////////////////////////////////////////////////////////////////////////////////////////
*Clik sur spectrum dans le menu
*//////////////////////////////////////////////////////////////////////////////////////////////////////
void Mp3PlayerFrm::MnuSpectrum(wxCommandEvent& event)
{
FSOUND_DSP_SetActive(FSOUND_DSP_GetFFTUnit(), true);
if (!FSOUND_DSP_GetActive(FSOUND_DSP_GetFFTUnit()))
{wxString msg;
msg.Printf( _T("Oups le spectrum n' est pas actif\nLe spectrum ne fonctionne que lorsqu' un stream est ouvert\nOuvrez un fichier"));
wxMessageBox(msg, _T("Infos"), wxOK | wxICON_EXCLAMATION | wxCENTRE, this);return;
}//si le spectrum est actif....
this->SetSize(0, 0, 800, 380);
this->Center();
spectrum01(event);
}
en fait, comme vous aurez pu le remarquer c'est pour afficher un spectrum.
donc , 0 erreurs de compile mais rien qui se dessinne
si vous pourriez m'expliquer comment dessinner ds une fonction void Mp3PlayerFrm::spectrum01 (wxCommandEvent& event) ca serai super cool car la je craque.
cs_satellite34
Messages postés688Date d'inscriptionmercredi 6 avril 2005StatutMembreDernière intervention 2 juin 20061 26 juil. 2005 à 16:03
oki, merci
mais je veux pas faire un paintevent
j'ai réussi ce que je voulais faire mais le truk c'est que g un bugg d'affichage
#include "Mp3PlayerFrm.h"
/*/////////////////////////////////////////////////////////////////////////////////////////////////////
*Clik sur spectrum dans le menu
*//////////////////////////////////////////////////////////////////////////////////////////////////////
void Mp3PlayerFrm::MnuSpectrum(wxCommandEvent& event)
{
FSOUND_DSP_SetActive(FSOUND_DSP_GetFFTUnit(), true); //active le spectrum.....
if (!FSOUND_DSP_GetActive(FSOUND_DSP_GetFFTUnit())) //si le spectre est pas actf...
{wxString msg;
msg.Printf( _T("Oups le spectrum n' est pas actif\nLe spectrum ne fonctionne que lorsqu' un stream est ouvert\nOuvrez un fichier"));
wxMessageBox(msg, _T("Infos"), wxOK | wxICON_EXCLAMATION | wxCENTRE, this);return;
}//si le spectrum est actif....
wxWindowDC dc(spectrWnd); //creer un device context sur spectrWnd...
spectrWnd->Show(true); //rend visible spectrWnd...
DessineSpectre(dc);
}
/*/////////////////////////////////////////////////////////////////////////////////////////////////////
*dessine le spectrum ds le device context
*//////////////////////////////////////////////////////////////////////////////////////////////////////
void Mp3PlayerFrm::DessineSpectre(wxDC& dc)
{
//dessin du spectre.....
const float *spectrumData = FSOUND_DSP_GetSpectrum(); //recupere les 512 cannaux separés...
int spectrumValue;
wxColour MaCouleurVerte(0,255,0);
wxPen MonCrayonVert(MaCouleurVerte,6,wxSOLID);
dc.BeginDrawing();
dc.SetPen(MonCrayonVert);
for ( int i = 0 ; i < 512 ; i++ )
{
spectrumValue = int(512 * (spectrumData[ i ] + spectrumData[ i +1 ] + spectrumData[ i+2 ] + spectrumData[ i+3 ] + spectrumData[ i+4 ] )) / 5;
dc.DrawPoint(i+2, 100-spectrumValue); //dessine le spectre...
}
dc.SetPen(wxNullPen);
dc.SetBrush(wxNullBrush);
dc.EndDrawing();
}