PA_GBFS.h

Go to the documentation of this file.
00001 #ifndef _PA_GBFS
00002 #define _PA_GBFS
00003 
00004 #ifdef __cplusplus
00005 extern "C" {
00006 #endif
00007 
00013 #include "PA_Text.h"
00014 #include "gbfs.h"
00015 
00016 
00017 
00018 
00019 typedef struct{
00020        void *File; // Position du fichier...
00021        char Name[30]; // Nom du fichier, sans extension
00022        char Ext[6]; // Extension du fichier !
00023        u32 Length; // Longueur
00024 } PA_GBFS_infos;
00025 extern PA_GBFS_infos PA_GBFSfile[200]; 
00026 extern s16 PA_GBFS_nfiles;
00027 extern GBFS_FILE const* PA_GBFS_FILE;
00028 
00039 extern inline u32 PA_InitGBFS(void){
00040 s16 dot = 0;
00041 s16 i = 0;
00042 
00043        WAIT_CR &= ~0x80;
00044  
00045        PA_GBFS_FILE = find_first_gbfs_file((void*)0x08000000);
00046        PA_GBFS_nfiles = 0;
00047        PA_GBFSfile[PA_GBFS_nfiles].File = (void*)gbfs_get_nth_obj(PA_GBFS_FILE, PA_GBFS_nfiles, (char*)PA_GBFSfile[PA_GBFS_nfiles].Name, &PA_GBFSfile[PA_GBFS_nfiles].Length);
00048 
00049 while(PA_GBFSfile[PA_GBFS_nfiles].File != NULL){
00050 
00051        // On cherche la fin du nom
00052        while(PA_GBFSfile[PA_GBFS_nfiles].Name[i]) i++;
00053        // On en déduit le dernier point, pour avoir l'extension
00054        while(PA_GBFSfile[PA_GBFS_nfiles].Name[i] != '.') i--; // On cherche l'extension
00055        dot = i+1;
00056        
00057        for (i = 0; PA_GBFSfile[PA_GBFS_nfiles].Name[i+dot] ; i++){
00058               PA_GBFSfile[PA_GBFS_nfiles].Ext[i] = PA_GBFSfile[PA_GBFS_nfiles].Name[i+dot];
00059               if (('A' <= PA_GBFSfile[PA_GBFS_nfiles].Ext[i])&&(PA_GBFSfile[PA_GBFS_nfiles].Ext[i] <= 'Z')) PA_GBFSfile[PA_GBFS_nfiles].Ext[i] += 'a' - 'A'; // On passe en minuscule
00060               PA_GBFSfile[PA_GBFS_nfiles].Ext[i+1] = 0;
00061               PA_GBFSfile[PA_GBFS_nfiles].Name[i+dot-1] = 0;
00062               if (PA_GBFSfile[PA_GBFS_nfiles].Name[i+dot-2] == '.') PA_GBFSfile[PA_GBFS_nfiles].Name[i+dot-2] = 0;
00063        }
00064        PA_GBFSfile[PA_GBFS_nfiles].Name[dot] = 0;
00065        PA_GBFSfile[PA_GBFS_nfiles].Ext[dot] = 0;
00066        
00067        ++PA_GBFS_nfiles; // On ajoute un objet...
00068        PA_GBFSfile[PA_GBFS_nfiles].File = (void*)gbfs_get_nth_obj(PA_GBFS_FILE, PA_GBFS_nfiles, (char*)PA_GBFSfile[PA_GBFS_nfiles].Name, &PA_GBFSfile[PA_GBFS_nfiles].Length);
00069 }
00070 
00071 return PA_GBFS_nfiles;
00072 }
00073 
00074 
00075 
00090 extern inline s32 PA_GetGBFSFile(s16 start, char *name, char *extension){
00091 s16 i;
00092 
00093 for (i = start; i < PA_GBFS_nfiles; i++){
00094        if (PA_CompareText(PA_GBFSfile[i].Name, name)&& PA_CompareText(PA_GBFSfile[i].Ext, extension)) 
00095               return i;
00096 }
00097 
00098 return -1;
00099 }
00100 
00101 
00113 s16 PA_GBFSSearchExt(s16 *array, char *extension);
00114 
00115  // end of GBFS
00117 
00118 
00119 #ifdef __cplusplus
00120 }
00121 #endif
00122 
00123 #endif
00124 
00125 

Generated on Thu Feb 9 15:37:40 2006 for PAlib by  doxygen 1.3.9.1