00001
00002
00003
00004
00005
00006
00007
00008
00009 #include "engine_base.h"
00010
00011 void NGT_Engine::initialize(SDL_Surface *&surf){
00012 int _tmp_vmode = 0;
00013
00014
00015
00016 version = "0.1.1";
00017
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
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
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
00047 joystick=SDL_JoystickOpen(0);
00048
00049 break;
00050 }
00051
00052
00053
00054
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
00076 _tmp_vmode = SDL_ANYFORMAT | SDL_HWSURFACE | SDL_DOUBLEBUF;
00077
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
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
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 }