Vous êtes sur la page 1sur 6

////////////////////////////////////////////////////////////////////////

// ARCHIVO : ClsDirectMedia.h
// AUTOR : Ruben A. Calabuig.
// VERSI�N : 1.0 Estable.
// FECHA : 21/08/2008.
// LICENCIA : GPL (General Public License).
//......................................................................
// IDE : Code::Blocks.
// COMPILADOR: GNU GCC Compiler (Mingway).
//......................................................................
// DESCRIPCION:
// Este archivo incluye la definicion de la clase
// "ClsDirectMedia" perteneciente al sistema "DMCS++"
// (Direct Media Class System) para C++.
//
// ClsDirectMedia contiene los elementos necesarios para la
// administracion de diferentes sistemas direct media.
//
// SISTEMAS DIRECT MEDIA:
// <100> VIDEO.
// <200> AUDIO.
// <300> TIMERS.
// <400> CD-ROM.
// <500> JOYSTICK.
//
// NOTAS:
// 1) Esta clase utiliza las librerias SDL
// (Simple DirectMedia Layer) de Sam Lantinga.
//
// Las SDL se distribuyen con licencia LGPL y
// tienen la ventaja de ser multiplataforma.
//
// 2) Los subsistemas AUDIO, CD-ROM y JOYSTICK no han
// sido implementados en esta version.
//
////////////////////////////////////////////////////////////////////////
#ifndef _CLSDIRECTMEDIA_H
#define _CLSDIRECTMEDIA_H

//**********************************************************************
// DEFINICION DE LA CLASE
//======================================================================
class ClsDirectMedia
{
//-----------
// ATRIBUTOS
//-----------
protected:
int error; // Codigos de error devueltos por los metodos miembros.

//---------
// METODOS
//---------
public:
//-----------
// DE ACCION
//-----------
//----------------------------------------------------
// 001 GENERALES PARA TODOS LOS SUBSISTEMAS DIRECTMEDIA
//----------------------------------------------------
// Inicializa todos los subsistemas.
int iniciarTodo();

// Cierra todos los subsistemas.


void cerrarTodo();

// Habilita la consola de mensajes.


void activarConsola();

//-------------------------
// 100 SUBSISTEMA DE VIDEO
//-------------------------
// Inicializa el susbsistema de video.
int iniciarVideo();

// Cierra el subsistema de video.


void cerrarVideo();

//-------------------------
// 200 SUBSISTEMA DE AUDIO
//-------------------------
// Inicialia el subsistema de Audio.
int iniciarAudio();

// Cierra el subsistema de Audio.


void cerrarAudio();

//-------------------------
// 300 SUBSISTEMA DE TIMER
//-------------------------
// Inicialia el subsistema de Timer.
int iniciarTimer();

// Cierra el subsistema de Timer.


void cerrarTimer();

//--------------------------
// 400 SUBSISTEMA DE CD-ROM
//--------------------------
// Inicialia el subsistema de CD-ROM.
int iniciarCDROM();

// Cierra el subsistema de CD-ROM.


void cerrarCDROM();

//----------------------------
// 500 SUBSISTEMA DE JOYSTICK
//----------------------------
// Inicialia el subsistema de JOYSTICK.
int iniciarJOYSTICK();

// Cierra el subsistema de JOYSTICK.


void cerrarJOYSTICK();
};
//**********************************************************************
// DEFINICION DE LOS METODOS
//======================================================================
// <001> METODOS GENERALES PARA TODOS LOS SUBSISTEMAS DIRECTMEDIA
//======================================================================
// METODO : int iniciarTodo()
// ACCION : Inicializa todos los subsistemas.
// PARAMETROS: NADA.
// DEVUELVE : int -> el codigo de error relacionado con los mensajes de
// error declarados en la libreria.
//----------------------------------------------------------------------
int ClsDirectMedia::iniciarTodo()
{
error=SDL_Init(SDL_INIT_EVERYTHING);
if(error<0) return 1;
return 0;
}

//======================================================================
// METODO : void cerrarTodo()
// ACCION : Cierra todos los subsistemas de DirectMedia.
// PARAMETROS: NADA.
// DEVUELVE : NADA.
//----------------------------------------------------------------------
void ClsDirectMedia::cerrarTodo()
{
SDL_Quit();
}

//======================================================================
// METODO : void activarConsola()
// ACCION : Activa la consola de mensajes para las salidas de error.
// PARAMETROS: NADA.
// DEVUELVE : NADA
//----------------------------------------------------------------------
void ClsDirectMedia::activarConsola()
{
freopen("CON","w",stdout);
freopen("CON","w",stderr);
}

//======================================================================
// <100> METODOS DEL SUBSISTEMA DE VIDEO
//======================================================================
// METODO : int iniciarVideo()
// ACCION : Inicializa el subsistema de video.
// PARAMETROS: NADA.
// DEVUELVE : int -> el codigo de error relacionado con los mensajes de
// error declarados en la libreria.
//----------------------------------------------------------------------
int ClsDirectMedia::iniciarVideo()
{
error=SDL_InitSubSystem(SDL_INIT_VIDEO);
if(error<0) return 100;
return 0;
}

//======================================================================
// METODO : void cerrarVideo()
// ACCION : Cierra el subsistema de video.
// PARAMETROS: NADA.
// DEVUELVE : NADA.
//----------------------------------------------------------------------
void ClsDirectMedia::cerrarVideo()
{
SDL_QuitSubSystem(SDL_INIT_VIDEO);
}

//======================================================================
// <200> METODOS DEL SUBSISTEMA DE AUDIO
//======================================================================
// METODO : int iniciarAudio()
// ACCION : Inicializa el subsistema de audio.
// PARAMETROS: NADA.
// DEVUELVE : int -> el codigo de error relacionado con los mensajes de
// error declarados en la libreria.
//----------------------------------------------------------------------
int ClsDirectMedia::iniciarAudio()
{
error=SDL_InitSubSystem(SDL_INIT_AUDIO);
if(error<0) return 200;
return 0;
}

//======================================================================
// METODO : void cerrarAudio()
// ACCION : Cierra el subsistema de audio.
// PARAMETROS: NADA.
// DEVUELVE : NADA.
//----------------------------------------------------------------------
void ClsDirectMedia::cerrarAudio()
{
SDL_QuitSubSystem(SDL_INIT_AUDIO);
}

//======================================================================
// <300> METODOS DEL SUBSISTEMA DE TIMERS
//======================================================================
// METODO : int iniciarTimer()
// ACCION : Inicializa el subsistema de timer.
// PARAMETROS: NADA.
// DEVUELVE : int -> el codigo de error relacionado con los mensajes de
// error declarados en la libreria.
//----------------------------------------------------------------------
int ClsDirectMedia::iniciarTimer()
{
error=SDL_InitSubSystem(SDL_INIT_TIMER);
if(error<0) return 300;
return 0;
}

//======================================================================
// METODO : void cerrarTimer()
// ACCION : Cierra el subsistema de timer.
// PARAMETROS: NADA.
// DEVUELVE : NADA.
//----------------------------------------------------------------------
void ClsDirectMedia::cerrarTimer()
{
SDL_QuitSubSystem(SDL_INIT_TIMER);
}

//======================================================================
// <400> METODOS DEL SUBSISTEMA DE CD-ROM
//======================================================================
// METODO : int iniciarCDROM()
// ACCION : Inicializa el subsistema de CD-ROM.
// PARAMETROS: NADA.
// DEVUELVE : int -> el codigo de error relacionado con los mensajes de
// error declarados en la libreria.
//----------------------------------------------------------------------
int ClsDirectMedia::iniciarCDROM()
{
error=SDL_InitSubSystem(SDL_INIT_CDROM);
if(error<0) return 400;
return 0;
}

//======================================================================
// METODO : void cerrarCDROM()
// ACCION : Cierra el subsistema de CD-ROM.
// PARAMETROS: NADA.
// DEVUELVE : NADA.
//----------------------------------------------------------------------
void ClsDirectMedia::cerrarCDROM()
{
SDL_QuitSubSystem(SDL_INIT_CDROM);
}

//======================================================================
// <500> METODOS DEL SUBSISTEMA DE JOYSTICK
//======================================================================
// METODO : int iniciarJOYSTICK()
// ACCION : Inicializa el subsistema de JOYSTICK.
// PARAMETROS: NADA.
// DEVUELVE : int -> el codigo de error relacionado con los mensajes de
// error declarados en la libreria.
//----------------------------------------------------------------------
int ClsDirectMedia::iniciarJOYSTICK()
{
error=SDL_InitSubSystem(SDL_INIT_JOYSTICK);
if(error<0) return 500;
return 0;
}

//======================================================================
// METODO : void cerrarJOYSTICK()
// ACCION : Cierra el subsistema de JOYSTICK.
// PARAMETROS: NADA.
// DEVUELVE : NADA.
//----------------------------------------------------------------------
void ClsDirectMedia::cerrarJOYSTICK()
{
SDL_QuitSubSystem(SDL_INIT_JOYSTICK);
}

//*********************************************************************
#endif // _CLSDIRECTMEDIA_H
///// FIN DE ARCHIVO //////////////////////////////////////////////////

Vous aimerez peut-être aussi