|
|
#ifndef WAVEAREA_H #define WAVEAREA_H class WaveArea; #include "Panel.h" #include "Pane.h" /** * Paneau destiné à l'affichage des fichier sons au format .sf. * * @short Paneau d'affichage fichier SF * @author Ph.Chose * @version 10/99 */ class WaveArea : public Panel { private: /** * Nom du fichier SF à afficher */ char* sfFileName; /** * Nom du fichier temporaire contenant les données sonores obtenu par fromsf */ char* fileName; /** * Fréquence d'échantillonage du son affiché */ float samplingFrequency; /** * Taille du fichier en nombre d'échantillons 16bits */ long int fileLength; /** * Amplitude maximale afficher: utilisé pour normaliser l'affichage */ float maxAmplitude; /** * Pointeur sur la PanedWindow mère (cf @ref Pane) */ Pane* parent; /** * Sauvegarde de la position X du dernier clic souris (cf @ref WaveArea::switchLimit) */ Position controlX; /** * Sauvegarde de la position Y du dernier clic souris (cf @ref WaveArea::switchLimit) */ Position controlY; public: /** * Constructeur. Initialise les membres. * @param parent pointeur sur la Pane mère * @param app contexte d'application */ WaveArea(Pane* parent, XtAppContext app); /** * Destructeur. Libère la mémoire. */ ~WaveArea(); /** * Met à jour l'affichage en appelant @ref Panel::updateDisplay */ void updateDisplay(); /** * Initialise l'affichage en détectant la durée du fichier et convertit le dit fichier au format interne * @param newfname nom du fichier SF à afficher. */ void initDisplay(char* newfname); /** * Joue le son affiché dans le paneau en appelant playsf */ void playSound(); private: /** * Eteint ou allume un marqueur vertical à l'instant donné en paramètre: sert pou repére temporellement * l'instant d'une FFT * @param time instant où doit apparaître le marqueur */ void switchMarker(float time); /** * Affiche ou efface les bornes de la fenêtre d'analyse correspondant à la position du click de souris * @param x coordonnée X de la souris * @param y coordonnée Y de la souris */ void switchLimit(Position x, Position y); /** * Affiche les données audio dans la fenêtre. Utilise des XSegments. */ void redraw(); /** * Trace les axes et les échelles */ void axisScaleDisplay(); /** * Recherche l'amplitude maximale dans le fichier pour normaliser l'affichage */ void setMaxAmplitude(char* newfname); /** * Fonction Shift+click gauche : inactivée * @param x position X de la souris * @param y position Y de la souris */ void shiftClick(Position x, Position y); /** * Fonction click milieu : zoom total arrière * @param x position X de la souris * @param y position Y de la souris */ void clickSecond(Position x, Position y); /** * Fonction click droit : annule le dernier zoom * @param x position X de la souris * @param y position Y de la souris */ void clickThird(Position x, Position y); /** * Fonction selection box : zoome sur la partie sélectionnée * @param x1 position X du premier coin * @param y1 position Y du premier coin * @param x2 position X du second coin * @param y2 position Y du second coin */ void selectBox(Position x1, Position x2, Position y1, Position y2); /** * Fonction Control+click gauche : affiche les aides au réglage des paramètres * @param x position X de la souris * @param y position Y de la souris */ void controlClick(Position x, Position y); /** * Efface les aides au réglage des paramètres * (cf @ref WaveArea::controlClick) * @param x position X de la souris * @param y position Y de la souris */ void controlUnClick(Position x, Position y); }; #endif
Generated by: chose@josquin on Wed Nov 10 20:57:01 199. |