// Programación en C++ para Ingenieros, Ed. Thomson Paraninfo, 2006 // Apéndice B: La Biblioteca CDAudioLib // Fichero AplicacionCDAudio.h // Especificación de la clase AplicacionCDAudio #ifndef _APLICACIONCDAUDIO #define _APLICACIONCDAUDIO #include <windows.h> #include "cdaudio.h" #include <vector> #include "resource.h" class AplicacionCDAudio { // Ventana de diálogo de la aplicación. static HWND hDlg; // Lista de tracks a reproducir. static std::vector<int> vListaTracks; // Posición del track actual en la lista vListaTracks. static int iTrackActual; // Atributos que mantienen el estado del dispositivo. static bool bPausa; static bool bResume; static bool bPlaying; // Atributos que mantienen si las casillas de verificación // Orden Aleatorio y Repetir están activadas o no., static bool bRandom; static bool bRepetir; public: // Constructor de la clase. AplicacionCDAudio(HINSTANCE hinstance); // Método que ejecuta la aplicación. int Ejecutar(void); // Función de atención a los mensajes de la ventana de diálogo hDlg. static BOOL CALLBACK DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam); // Función de atención a las interrupciones del dispositivo. static void intProcedure(int wParam); private: // Método que se ejecuta cuando se pulsa el boton // Play/Pause. Cambia el estado de la aplicación // de play a pause y viceversa. Actualiza los // botones de la ventana de diálogo hDlg. static void botonPlayPausa(void); // Método que se ejecuta cuando se pulsa el botón Siguiente. // Actualiza el track actual al siguiente de la lista de // tracks vListaTracks y si está reproduciendo se incia la // reproducción del nuevo track. static void botonSiguiente(void); // Método que se ejecuta cuando se pulsa el botón Anterior. // Actualiza el track actual al anterior de la lista de // tracks vListaTracks y si está reproduciendo se incia la // reproducción del nuevo track. static void botonAnterior(void); // Método que se ejecuta cuando se pulsa el botón Expulsar. // Abre la puerta del dispositivo, expulsa el CD y actualiza // la lista de reproducción y la ventana de diálogo. static void botonExpulsar(void); // Método que se ejecuta cuando se pulsa el botón Stop. // Si está reproduciendo detiene la reproducción. static void botonStop(void); // Método que se ejecuta cuando se marca o desmarca la casilla // de verificación Orden aleatorio. Actualiza la lista de // reproducción vListaTracks según corresponda. static void controlCheckRandom(void); // Método que se ejecuta cuando se marca o desmarca la casilla // de verificación Repetir. Actualiza el atributo de estado bRepetir // que indica si la casilla está marcada o no. static void controlCheckRepetir(void); // Método que genera la lista de tracks a reproducir en un orden // aleatorio. static void generarListaTracks(void); // Método que genera la lista de tracks a reproducir en el mismo orden // que se encuentran en el CD. static void generarListaAleatoriaTracks(void); // Método que actualiza la lista de reproducción vListaTracks y la // ventana de diálogo hDlg según el contenido del CD y las casillas // de verificación. static void reset(void); }; #endif