CfgUSBLoader/source/sort.h

110 lines
3.2 KiB
C
Raw Permalink Normal View History

#ifndef _SORT_H_
#define _SORT_H_
#ifdef __cplusplus
extern "C"
{
#endif
#include "disc.h"
struct Sorts
{
char cfg_val[20];
char name[100];
int (*sortAsc) (const void *, const void *);
int (*sortDsc) (const void *, const void *);
};
#define featureCnt 4
#define accessoryCnt 23
#define genreCnt 76
#define sortCnt 10
#define gameTypeCnt 15
#define searchFieldCnt 12
#define searchCompareTypeCnt 6
#define FILTER_ALL -1
#define FILTER_ONLINE 0
#define FILTER_UNPLAYED 1
#define FILTER_GENRE 2
#define FILTER_FEATURES 3
#define FILTER_CONTROLLER 4
#define FILTER_GAMECUBE 5
#define FILTER_WII 6
#define FILTER_CHANNEL 7
#define FILTER_DUPLICATE_ID3 8
#define FILTER_GAME_TYPE 9
#define FILTER_SEARCH 10
#define GAME_TYPE_Wii 0
#define GAME_TYPE_GameCube 1
#define GAME_TYPE_All_Channels 2
#define GAME_TYPE_Wiiware 3
#define GAME_TYPE_VC_NES 4
#define GAME_TYPE_VC_SNES 5
#define GAME_TYPE_VC_N64 6
#define GAME_TYPE_VC_SMS 7
#define GAME_TYPE_VC_MD 8
#define GAME_TYPE_VC_PCE 9
#define GAME_TYPE_VC_NeoGeo 10
#define GAME_TYPE_VC_Arcade 11
#define GAME_TYPE_VC_C64 12
#define GAME_TYPE_Wii_Channel 13
#define GAME_TYPE_FWD_Emu 14
extern s32 filter_type;
extern s32 filter_index;
extern char search_str[100];
extern int cur_search_field;
extern int cur_search_compare_type;
extern s32 sort_index;
extern bool sort_desc;
extern struct Sorts sortTypes[sortCnt];
extern char *genreTypes[genreCnt][2];
extern char *accessoryTypes[accessoryCnt][2];
extern char *featureTypes[featureCnt][2];
extern char *gameTypes[gameTypeCnt][2];
extern char *searchFields[searchFieldCnt];
extern char *searchCompareTypes[searchCompareTypeCnt];
int (*default_sort_function) (const void *a, const void *b);
int filter_features(struct discHdr *list, int cnt, char *feature, bool requiredOnly);
int filter_online(struct discHdr *list, int cnt, char *ignore, bool notused);
int filter_play_count(struct discHdr *list, int cnt, char *ignore, bool notused);
int filter_controller(struct discHdr *list, int cnt, char *controller, bool requiredOnly);
int filter_genre(struct discHdr *list, int cnt, char *genre, bool notused);
int filter_gamecube(struct discHdr *list, int cnt, char *ignore, bool notused);
int filter_wii(struct discHdr *list, int cnt, char *ignore, bool notused);
int filter_channel(struct discHdr *list, int cnt, char *ignore, bool notused);
int filter_duplicate_id3(struct discHdr *list, int cnt, char *ignore, bool notused);
int filter_game_type(struct discHdr *list, int cnt, char *typeWanted, bool notused);
int filter_game_search(struct discHdr *list, int cnt, char *strWanted, bool notused);
int filter_games(int (*filter) (struct discHdr *, int, char *, bool), char * name, bool num);
int filter_games_set(int type, int index);
void showAllGames(void);
void sortList(int (*sortFunc) (const void *, const void *));
void __set_default_sort(void);
void reset_sort_default();
void sortList_default();
void sortList_set(int index, bool desc);
int Menu_Filter(void);
int Menu_Filter2(void);
int Menu_Filter3(void);
int Menu_Filter4(void);
int Menu_Sort(void);
int get_accesory_id(char *accessory);
const char* get_accesory_name(int i);
int get_feature_id(char *feature);
#ifdef __cplusplus
}
#endif
#endif