ps2sdk  1.1
A collection of Open Source libraries used for developing applications on Sony's PlayStation 2® (PS2).
graph_config.c
Go to the documentation of this file.
1 #include <stdio.h>
2 #include <errno.h>
3 #include <string.h>
4 
5 #include <graph.h>
6 #include <graph_config.h>
7 
8 int graph_make_config(int mode, int interlace, int ffmd, int x, int y, int flicker_filter, char *config)
9 {
10 
11  // Save the current mode value.
12  switch (mode)
13  {
14 
15  case GRAPH_MODE_NTSC: sprintf(config, "GRAPH_MODE_NTSC:"); break;
16  case GRAPH_MODE_PAL: sprintf(config, "GRAPH_MODE_PAL:"); break;
17  case GRAPH_MODE_HDTV_480P: sprintf(config, "GRAPH_MODE_HDTV_480P:"); break;
18  case GRAPH_MODE_HDTV_576P: sprintf(config, "GRAPH_MODE_HDTV_576P:"); break;
19  case GRAPH_MODE_HDTV_720P: sprintf(config, "GRAPH_MODE_HDTV_720P:"); break;
20  case GRAPH_MODE_HDTV_1080I: sprintf(config, "GRAPH_MODE_HDTV_1080I:"); break;
21  case GRAPH_MODE_VGA_640_60: sprintf(config, "GRAPH_MODE_VGA_640_60:"); break;
22  case GRAPH_MODE_VGA_640_72: sprintf(config, "GRAPH_MODE_VGA_640_72:"); break;
23  case GRAPH_MODE_VGA_640_75: sprintf(config, "GRAPH_MODE_VGA_640_75:"); break;
24  case GRAPH_MODE_VGA_640_85: sprintf(config, "GRAPH_MODE_VGA_640_85:"); break;
25  case GRAPH_MODE_VGA_800_56: sprintf(config, "GRAPH_MODE_VGA_800_56:"); break;
26  case GRAPH_MODE_VGA_800_60: sprintf(config, "GRAPH_MODE_VGA_800_60:"); break;
27  case GRAPH_MODE_VGA_800_72: sprintf(config, "GRAPH_MODE_VGA_800_72:"); break;
28  case GRAPH_MODE_VGA_800_75: sprintf(config, "GRAPH_MODE_VGA_800_75:"); break;
29  case GRAPH_MODE_VGA_800_85: sprintf(config, "GRAPH_MODE_VGA_800_85:"); break;
30  case GRAPH_MODE_VGA_1024_60: sprintf(config, "GRAPH_MODE_VGA_1024_60:"); break;
31  case GRAPH_MODE_VGA_1024_70: sprintf(config, "GRAPH_MODE_VGA_1024_70:"); break;
32  case GRAPH_MODE_VGA_1024_75: sprintf(config, "GRAPH_MODE_VGA_1024_75:"); break;
33  case GRAPH_MODE_VGA_1024_85: sprintf(config, "GRAPH_MODE_VGA_1024_85:"); break;
34  case GRAPH_MODE_VGA_1280_60: sprintf(config, "GRAPH_MODE_VGA_1280_60:"); break;
35  case GRAPH_MODE_VGA_1280_75: sprintf(config, "GRAPH_MODE_VGA_1280_75:"); break;
36  default: sprintf(config, "GRAPH_MODE_AUTO:"); break;
37 
38  }
39 
40  // Save the current interlacing mode.
41  switch (interlace)
42  {
43 
44  case GRAPH_MODE_NONINTERLACED: sprintf(config, "GRAPH_MODE_NONINTERLACED:"); break;
45  case GRAPH_MODE_INTERLACED: //Fall through
46  default: sprintf(config, "GRAPH_MODE_INTERLACED:"); break;
47 
48  }
49 
50  // Save the current field mode.
51  switch (ffmd)
52  {
53 
54  case GRAPH_MODE_FRAME: sprintf(config, "GRAPH_MODE_FRAME:"); break;
55  case GRAPH_MODE_FIELD: //Fall through
56  default: sprintf(config, "GRAPH_MODE_FIELD:"); break;
57 
58  }
59 
60  // Save status of flicker filter.
61  switch (flicker_filter)
62  {
63 
64  case GRAPH_ENABLE: sprintf(config, "GRAPH_ENABLE:"); break;
65  case GRAPH_DISABLE: //Fall through
66  default: sprintf(config, "GRAPH_DISABLE:"); break;
67 
68  }
69 
70  // Save the current screen offset.
71  sprintf(config, "%d:",x);
72  sprintf(config, "%d:",y);
73 
74  // End function.
75  return 0;
76 
77 }
78 
79 int graph_set_config(char *config)
80 {
81  char *temp0, *temp1;
82  int mode, interlace, ffmd;
83  //int x, y; //Not used
84  int flicker_filter;
85 
86  // Extract the mode config value.
87  temp0 = config; temp1 = strtok(temp0, ":"); temp0 += strlen(temp1) + 1;
88 
89  // Parse the mode config value.
90  if (strcmp(temp1, "GRAPH_MODE_AUTO" ) == 0) { mode = GRAPH_MODE_AUTO; } else
91  if (strcmp(temp1, "GRAPH_MODE_NTSC" ) == 0) { mode = GRAPH_MODE_NTSC; } else
92  if (strcmp(temp1, "GRAPH_MODE_PAL" ) == 0) { mode = GRAPH_MODE_PAL; } else
93  if (strcmp(temp1, "GRAPH_MODE_HDTV_480P" ) == 0) { mode = GRAPH_MODE_HDTV_480P; } else
94  if (strcmp(temp1, "GRAPH_MODE_HDTV_576P" ) == 0) { mode = GRAPH_MODE_HDTV_576P; } else
95  if (strcmp(temp1, "GRAPH_MODE_HDTV_720P" ) == 0) { mode = GRAPH_MODE_HDTV_720P; } else
96  if (strcmp(temp1, "GRAPH_MODE_HDTV_1080I" ) == 0) { mode = GRAPH_MODE_HDTV_1080I; } else
97  if (strcmp(temp1, "GRAPH_MODE_VGA_640_60" ) == 0) { mode = GRAPH_MODE_VGA_640_60; } else
98  if (strcmp(temp1, "GRAPH_MODE_VGA_640_72" ) == 0) { mode = GRAPH_MODE_VGA_640_72; } else
99  if (strcmp(temp1, "GRAPH_MODE_VGA_640_75" ) == 0) { mode = GRAPH_MODE_VGA_640_75; } else
100  if (strcmp(temp1, "GRAPH_MODE_VGA_640_85" ) == 0) { mode = GRAPH_MODE_VGA_640_85; } else
101  if (strcmp(temp1, "GRAPH_MODE_VGA_800_56" ) == 0) { mode = GRAPH_MODE_VGA_800_56; } else
102  if (strcmp(temp1, "GRAPH_MODE_VGA_800_60" ) == 0) { mode = GRAPH_MODE_VGA_800_60; } else
103  if (strcmp(temp1, "GRAPH_MODE_VGA_800_72" ) == 0) { mode = GRAPH_MODE_VGA_800_72; } else
104  if (strcmp(temp1, "GRAPH_MODE_VGA_800_75" ) == 0) { mode = GRAPH_MODE_VGA_800_75; } else
105  if (strcmp(temp1, "GRAPH_MODE_VGA_800_85" ) == 0) { mode = GRAPH_MODE_VGA_800_85; } else
106  if (strcmp(temp1, "GRAPH_MODE_VGA_1024_60" ) == 0) { mode = GRAPH_MODE_VGA_1024_60; } else
107  if (strcmp(temp1, "GRAPH_MODE_VGA_1024_70" ) == 0) { mode = GRAPH_MODE_VGA_1024_70; } else
108  if (strcmp(temp1, "GRAPH_MODE_VGA_1024_75" ) == 0) { mode = GRAPH_MODE_VGA_1024_75; } else
109  if (strcmp(temp1, "GRAPH_MODE_VGA_1024_85" ) == 0) { mode = GRAPH_MODE_VGA_1024_85; } else
110  if (strcmp(temp1, "GRAPH_MODE_VGA_1280_60" ) == 0) { mode = GRAPH_MODE_VGA_1280_60; } else
111  if (strcmp(temp1, "GRAPH_MODE_VGA_1280_75" ) == 0) { mode = GRAPH_MODE_VGA_1280_75; }
112  else
113  {
114 
116 
117  }
118 
119  // Read the interlace config value.
120  temp1 = strtok(temp0, ":"); temp0 += strlen(temp1) + 1;
121 
122  // Parse the interlace config value.
123  if (strcmp(temp1, "GRAPH_MODE_NONINTERLACED" ) == 0) { interlace = GRAPH_MODE_NONINTERLACED; } else
124  if (strcmp(temp1, "GRAPH_MODE_INTERLACED" ) == 0) { interlace = GRAPH_MODE_INTERLACED; }
125  else
126  {
127 
128  interlace = GRAPH_MODE_INTERLACED;
129 
130  }
131 
132  // Read the field mode config value.
133  temp1 = strtok(temp0, ":"); temp0 += strlen(temp1) + 1;
134 
135  // Parse the field mode config value.
136  if (strcmp(temp1, "GRAPH_MODE_FRAME" ) == 0) { ffmd = GRAPH_MODE_FRAME; } else
137  if (strcmp(temp1, "GRAPH_MODE_FIELD" ) == 0) { ffmd = GRAPH_MODE_FIELD; }
138  else
139  {
140 
141  ffmd = GRAPH_MODE_FIELD;
142 
143  }
144 
145  // Read the flicker_filter config value.
146  temp1 = strtok(temp0, ":"); temp0 += strlen(temp1) + 1;
147 
148  // Parse the flicker_filter config value.
149  if (strcmp(temp1, "GRAPH_DISABLE" ) == 0) { flicker_filter = GRAPH_DISABLE; } else
150  if (strcmp(temp1, "GRAPH_ENABLE" ) == 0) { flicker_filter = GRAPH_ENABLE; }
151  else
152  {
153 
154  flicker_filter = GRAPH_ENABLE;
155 
156  }
157 
158  // Disable flicker filter if the mode is noninterlaced.
159  if (interlace == GRAPH_MODE_NONINTERLACED)
160  {
161 
162  flicker_filter = GRAPH_DISABLE;
163 
164  }
165 
166  // Read the x config value.
167  temp1 = strtok(temp0, ":"); temp0 += strlen(temp1) + 1;
168 
169  // Parse the x config value.
170  // x = (int)strtol(temp1,NULL,10); //Not used
171 
172  // Read the y config value.
173  temp1 = strtok(temp0, ":"); temp0 += strlen(temp1) + 1;
174 
175  // Parse the y config value.
176  // y = (int)strtol(temp1,NULL,10); //Not used
177 
178  graph_set_mode(interlace,mode,ffmd,flicker_filter);
179  // End function.
180  return 0;
181 
182 }
183 
184 int graph_load_config(char *filename)
185 {
186 
187  FILE *infile; char config[512];
188 
189  // Open the config file.
190  if ((infile = fopen(filename, "r")) < 0)
191  {
192 
193  return -ENOENT;
194 
195  }
196 
197  // Read the config file contents.
198  if (fread(config, 1, sizeof(config), infile) < 0)
199  {
200 
201  return -EIO;
202 
203  }
204 
205  // Close the config file.
206  if (fclose(infile) < 0)
207  {
208 
209  return -1;
210 
211  }
212 
213  // Set the current mode config information.
214  return graph_set_config(config);
215 
216 }
217 
218 int graph_save_config(char *filename)
219 {
220 
221  FILE *outfile; char config[512];
222 
223  // Get the current mode config information.
224  graph_get_config(config);
225 
226  // Open the config file.
227  if ((outfile = fopen(filename, "w")) < 0)
228  {
229 
230  return -ENOENT;
231 
232  }
233 
234  // Write the config file contents.
235  if (fwrite(config, 1, strlen(config), outfile) < 0)
236  {
237 
238  return -EIO;
239 
240  }
241 
242  // Close the config file.
243  if (fclose(outfile) < 0)
244  {
245 
246  return -1;
247 
248  }
249 
250  // End function.
251  return 0;
252 
253 }
#define ENOENT
Definition: errno.h:22
#define EIO
Definition: errno.h:28
#define GRAPH_MODE_VGA_1024_75
Definition: graph.h:49
#define GRAPH_MODE_NTSC
Definition: graph.h:15
#define GRAPH_MODE_NONINTERLACED
Definition: graph.h:57
#define GRAPH_DISABLE
Definition: graph.h:67
#define GRAPH_MODE_VGA_1280_60
Definition: graph.h:53
#define GRAPH_MODE_AUTO
Definition: graph.h:13
#define GRAPH_MODE_HDTV_576P
Definition: graph.h:21
#define GRAPH_MODE_VGA_800_75
Definition: graph.h:41
#define GRAPH_MODE_VGA_1280_75
Definition: graph.h:55
#define GRAPH_MODE_VGA_800_85
Definition: graph.h:43
#define GRAPH_ENABLE
Definition: graph.h:68
#define GRAPH_MODE_HDTV_1080I
Definition: graph.h:25
#define GRAPH_MODE_VGA_640_72
Definition: graph.h:29
#define GRAPH_MODE_VGA_640_85
Definition: graph.h:33
#define GRAPH_MODE_VGA_640_60
Definition: graph.h:27
#define GRAPH_MODE_VGA_1024_85
Definition: graph.h:51
#define GRAPH_MODE_VGA_1024_60
Definition: graph.h:45
#define GRAPH_MODE_VGA_800_60
Definition: graph.h:37
#define GRAPH_MODE_INTERLACED
Definition: graph.h:58
#define GRAPH_MODE_VGA_640_75
Definition: graph.h:31
#define GRAPH_MODE_PAL
Definition: graph.h:17
#define GRAPH_MODE_VGA_800_56
Definition: graph.h:35
#define GRAPH_MODE_HDTV_720P
Definition: graph.h:23
#define GRAPH_MODE_HDTV_480P
Definition: graph.h:19
#define GRAPH_MODE_VGA_1024_70
Definition: graph.h:47
#define GRAPH_MODE_FRAME
Definition: graph.h:61
#define GRAPH_MODE_VGA_800_72
Definition: graph.h:39
int graph_set_mode(int interlace, int mode, int ffmd, int flicker_filter)
Definition: graph_mode.c:127
#define GRAPH_MODE_FIELD
Definition: graph.h:60
int graph_load_config(char *filename)
Definition: graph_config.c:184
int graph_set_config(char *config)
Definition: graph_config.c:79
int graph_save_config(char *filename)
Definition: graph_config.c:218
int graph_make_config(int mode, int interlace, int ffmd, int x, int y, int flicker_filter, char *config)
Definition: graph_config.c:8
int graph_get_config(char *config)
Definition: graph_mode.c:421
s32 x
Definition: libmouse.c:34
s32 y
Definition: libmouse.c:34
s32 mode
Definition: rpc_client.c:15