Main Page | Namespace List | Class List | File List | Class Members | File Members

engine_base.cpp

Go to the documentation of this file.
00001 /***************************************************************************
00002  *   NGT (Neopontec Gaming Toolkit                                         *
00003  *   Distributed under the terms of the GNU LGPL License                   *
00004  *   Copyright (C) 2005 by Hector Blanco de Frutos                         *
00005  *   hectorblanco@neopontec.com                                            *
00006  *   Refer to the LICENSE file to read the full license agreement          *
00007  ***************************************************************************/
00008 
00009 #include "engine_base.h"
00010 
00011 void NGT_Engine::initialize(SDL_Surface *&surf){
00012         int _tmp_vmode = 0;
00013         
00014         //-------------------------------------------------------------------
00015         // Set the engine version
00016         version = "0.1.1";
00017         // Show version information
00018         printf("\nUsing 'Neopontec Gaming Toolit' - %s\n", version.c_str());
00019         printf("Copyright (c) Hector Blanco de Frutos. 2005-2006\n");
00020         printf("Licensed under the terms of the LGPL license\n\n");
00021         //------------------------------------------------------------------
00022         
00023         // Initialize SDL
00024         switch(machine_target){
00025                 case NGT_MACHINE_GENERIC:
00026                     printf("*NGT_Engine.initialize: Starting SDL\n");
00027                     if (SDL_Init (SDL_INIT_AUDIO | SDL_INIT_VIDEO) < 0)
00028                     {   
00029                         printf("*NGT_Engine.initialize: ERROR starting SDL: %s.\n" , SDL_GetError());
00030                         exit (1);
00031                     }
00032                     // Enable joystick
00033                     if (input_joy_enabled == 1){
00034                         printf("*NGT_Engine.initialize: Open joystick.\n");
00035                         joystick=SDL_JoystickOpen(0);
00036                     }
00037                     
00038                         break;
00039                 case NGT_MACHINE_GP2X:
00040                         printf("*NGT_Engine.initialize: Starting SDL in NGT_MACHINE_GP2X system\n");    
00041                         if (SDL_Init (SDL_INIT_AUDIO | SDL_INIT_VIDEO | SDL_INIT_JOYSTICK) < 0)
00042                     {   
00043                         printf("*NGT_Engine.initialize: ERROR starting SDL: %s.\n" , SDL_GetError());
00044                         exit (1);
00045                     }
00046                     // Open joystick
00047                     joystick=SDL_JoystickOpen(0);
00048                     
00049                         break;
00050         }
00051 
00052     
00053     
00054     // Initialize SDL_Mixer
00055     
00056     switch(machine_target){
00057                 case NGT_MACHINE_GENERIC:
00058                         printf("*NGT_Engine.initialize: Starting SDL_mixer\n");
00059                     if(Mix_OpenAudio(audio_frequency, audio_mode, 2, audio_buffer) < 0)
00060                         {
00061                                 printf("*NGT_Engine.initialize: Warning: Couldn't set audio mode - Reason: %s\n", SDL_GetError());
00062                         }
00063                         break;
00064                 case NGT_MACHINE_GP2X:
00065                         printf("*NGT_Engine.initialize: Starting GP2X SDL_mixer\n");
00066                         if(Mix_OpenAudio(audio_frequency, audio_mode, 2, 128) < 0)
00067                         {
00068                                 printf("*NGT_Engine.initialize: WARNING: Couldn't set GP2X audio mode - Reason: %s\n", SDL_GetError());
00069                         }
00070                         break;
00071     }
00072     
00073     switch(machine_target){
00074                 case NGT_MACHINE_GENERIC:
00075                         //Initialize main game surface
00076                         _tmp_vmode = SDL_ANYFORMAT | SDL_HWSURFACE | SDL_DOUBLEBUF;
00077                         // If fullscreen is enabled.
00078                         if ( video_fullscreen == 1 ){
00079                                 _tmp_vmode = _tmp_vmode | SDL_FULLSCREEN;
00080                         }
00081                         printf("*NGT_Engine.initialize: Creating main SDL surface\n");
00082                     surf = SDL_SetVideoMode (video_res_w, video_res_h, 0, _tmp_vmode);
00083                     if (surf == NULL)
00084                     {
00085                         printf("*NGT_Engine.initialize: ERROR while creating main SDL Surface. \n");
00086                     }
00087                     break;
00088                 case NGT_MACHINE_GP2X:
00089                         //Initialize main game surface
00090                         printf("*NGT_Engine.initialize: Creating main GP2X SDL surface\n");
00091                         _tmp_vmode = SDL_HWSURFACE | SDL_FULLSCREEN;
00092                     surf = SDL_SetVideoMode (320, 240, video_bpp, _tmp_vmode);
00093                     if (surf == NULL)
00094                     {
00095                         printf("*NGT_Engine.initialize: ERROR while creating main GP2X SDL Surface. \n");
00096                     }
00097                         break;
00098     }
00099     
00100     printf("*NGT_Engine.initialize: Starting SDL_ttf\n");
00101     if( TTF_Init() == -1 ) {
00102         printf("*NGT_Engine.initialize: ERROR starting SDL_ttf - Reason: %s\n", TTF_GetError());
00103         exit(2);
00104         }
00105 }
00106 
00107 void NGT_Engine::finalize(){ 
00108     switch(machine_target){
00109                 case NGT_MACHINE_GENERIC:
00110                         printf("*NGT_Engine.finalize: NGT_MACHINE_GENERIC: Finalyzing the toolkit\n");
00111                         SDL_Quit();
00112                         break;
00113                 case NGT_MACHINE_GP2X:
00114                         printf("*NGT_Engine.finalize: NGT_MACHINE_GP2X: Finalyzing the toolkit\n");
00115                                 // GP2X: Exit to the console menu
00116                                 printf("*NGT_Engine.finalize: NGT_MACHINE_GP2X: Exit to console menu\n");
00117                                 SDL_Quit();
00118                                 chdir("/usr/gp2x");
00119                                 execl("/usr/gp2x/gp2xmenu", "/usr/gp2x/gp2xmenu", NULL);
00120                         break;
00121     }           
00122 
00123 }

Generated on Sat Feb 4 10:15:16 2006 for Neopntec Gaming Toolkit - API reference by  doxygen 1.4.4