added copyright line to top of source files next to license information
[cyclone68000.git] / PicoDrive / Config.cpp
1 \r
2 // This file is part of the PicoDrive Megadrive Emulator\r
3 \r
4 // Copyright (c) 2011 FinalDave (emudave (at) gmail.com)\r
5 \r
6 // This code is licensed under the GNU General Public License version 2.0 and the MAME License.\r
7 // You can choose the license that has the most advantages for you.\r
8 \r
9 // SVN repository can be found at http://code.google.com/p/cyclone68000/\r
10 \r
11 #include "stdafx.h"\r
12 \r
13 static char *ConfigName="\\PicoConfig.txt";\r
14 struct Config Config;\r
15 \r
16 int ConfigInit()\r
17 {\r
18   memset(&Config,0,sizeof(Config));\r
19 \r
20   Config.key[0]=VK_UP;\r
21   Config.key[1]=VK_DOWN;\r
22   Config.key[2]=VK_LEFT;\r
23   Config.key[3]=VK_RIGHT;\r
24   Config.key[4]=GXKey.vkC; // A\r
25   Config.key[5]=GXKey.vkA; // B\r
26   Config.key[6]=GXKey.vkB; // C\r
27   Config.key[7]=GXKey.vkStart;\r
28 \r
29   return 0;\r
30 }\r
31 \r
32 int ConfigSave()\r
33 {\r
34   FILE *f=NULL;\r
35   int i=0,max=0;\r
36 \r
37   // Open config file:\r
38   f=fopen(ConfigName,"wt"); if (f==NULL) return 1;\r
39 \r
40   fprintf(f,"// PicoDrive Config File\n\n");\r
41 \r
42   fprintf(f,"// Keys: Up Down Left Right\n");\r
43   fprintf(f,"// A B C Start\n\n");\r
44 \r
45   max=sizeof(Config.key)/sizeof(Config.key[0]);\r
46   for (i=0;i<max;i++)\r
47   {\r
48     fprintf(f,"key,%d,0x%.2x\n",i,Config.key[i]);\r
49   }\r
50 \r
51   fclose(f);\r
52 \r
53   return 0;\r
54 }\r
55 \r
56 int ConfigLoad()\r
57 {\r
58   FILE *f=NULL;\r
59   char line[256];\r
60   int i=0;\r
61 \r
62   memset(line,0,sizeof(line));\r
63 \r
64   // Open config file:\r
65   f=fopen(ConfigName,"rt"); if (f==NULL) return 1;\r
66 \r
67   // Read through each line of the config file\r
68   for (;;)\r
69   {\r
70     char *tok[3]={"","",""};\r
71     if (fgets(line,sizeof(line)-1,f)==NULL) break;\r
72 \r
73     // Split line into tokens:\r
74     for (i=0;i<3;i++)\r
75     {\r
76       tok[i]=strtok(i<1?line:NULL, ",\r\n");\r
77       if (tok[i]==NULL) { tok[i]=""; break; }\r
78     }\r
79 \r
80     if (_stricmp(tok[0],"key")==0)\r
81     {\r
82       // Key code\r
83       int ta=0,tb=0;\r
84       \r
85       ta=strtol(tok[1],NULL,0);\r
86       tb=strtol(tok[2],NULL,0);\r
87 \r
88       Config.key[ta&7]=tb;\r
89     }\r
90   }\r
91 \r
92   fclose(f);\r
93 \r
94   return 0;\r
95 }\r