FireBirdLib - Topfield TMS PVR TAP Programming Library
OSDMenuItemSortValueColumn.c
Go to the documentation of this file.
1#include <string.h>
2#include "FBLib_TMSOSDMenu.h"
3
4void OSDMenuItemSortValueColumn(bool Ascending, bool CaseSensitive)
5{
7
8 int i, j, NrItems;
9 tItem TempItem;
10 char *p1, *p2;
11 bool Swap;
12
13 NrItems = Menu[CurrentMenuLevel].NrItems;
14
15 for(i = 0; i < NrItems - 1; i++)
16 {
17 for(j = i + 1; j < NrItems; j++)
18 {
20 while(*p1 && (*p1 < ' '))
21 p1++;
22
24 while(*p2 && (*p2 < ' '))
25 p2++;
26
27 switch((Ascending ? 1 : 0) + (CaseSensitive ? 2 : 0))
28 {
29 case 0: Swap = (strcasecmp(p1, p2) < 0); break;
30 case 1: Swap = (strcasecmp(p1, p2) > 0); break;
31 case 2: Swap = (strcmp(p1, p2) < 0); break;
32 case 3: Swap = (strcmp(p1, p2) > 0); break;
33 default:
34 Swap = FALSE;
35 break;
36 }
37
38 if(Swap)
39 {
40 memcpy(&TempItem, &Menu[CurrentMenuLevel].Item[i], sizeof(tItem));
41 memcpy(&Menu[CurrentMenuLevel].Item[i], &Menu[CurrentMenuLevel].Item[j], sizeof(tItem));
42 memcpy(&Menu[CurrentMenuLevel].Item[j], &TempItem, sizeof(tItem));
43 }
44 }
45 }
46
47 ListDirty = TRUE;
48
49 TRACEEXIT();
50}
tMenu Menu[NRMENULEVELS]
Definition: OSDMenuInit.c:6
dword CurrentMenuLevel
Definition: OSDMenuInit.c:7
bool ListDirty
void OSDMenuItemSortValueColumn(bool Ascending, bool CaseSensitive)
#define TRACEEXIT()
Definition: libFireBird.h:1244
#define TRACEENTER()
Definition: libFireBird.h:1243
char Value[ITEMVALUESIZE]
tItem * Item