Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
PUAE
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
PocketInsanity
PUAE
Commits
01b63a62
Commit
01b63a62
authored
May 30, 2011
by
CeRiAl
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
GUI-SDL: Added support for 4 drives, disks & roms in subdirectories, general cleanup
parent
7732d3fa
Changes
11
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
894 additions
and
324 deletions
+894
-324
Makefile.am
src/gui-sdl/Makefile.am
+1
-1
inputmode.c
src/gui-sdl/inputmode.c
+10
-11
inputmode.h
src/gui-sdl/inputmode.h
+2
-2
menu.c
src/gui-sdl/menu.c
+282
-194
menu_disks.c
src/gui-sdl/menu_disks.c
+293
-0
menu_prefs.c
src/gui-sdl/menu_prefs.c
+20
-18
menu_roms.c
src/gui-sdl/menu_roms.c
+188
-0
menu_tweak.c
src/gui-sdl/menu_tweak.c
+78
-72
vkbd.h
src/gui-sdl/vkbd.h
+11
-11
volumecontrol.c
src/gui-sdl/volumecontrol.c
+7
-13
volumecontrol.h
src/gui-sdl/volumecontrol.h
+2
-2
No files found.
src/gui-sdl/Makefile.am
View file @
01b63a62
...
...
@@ -5,7 +5,7 @@ AM_CFLAGS += @SDL_CFLAGS@
noinst_LIBRARIES
=
libguidep.a
libguidep_a_SOURCES
=
inputmode.c menu.c menu_
load
.c menu_prefs.c menu_tweak.c vkbd.cpp volumecontrol.c
libguidep_a_SOURCES
=
inputmode.c menu.c menu_
roms.c menu_disks
.c menu_prefs.c menu_tweak.c vkbd.cpp volumecontrol.c
noinst_HEADERS
=
inputmode.h menu.h vkbd.h volumecontrol.h
src/gui-sdl/inputmode.c
View file @
01b63a62
#include <SDL.h>
#include "inputmode.h"
extern
char
launchDir
[
256
];
extern
SDL_Surface
*
prSDLScreen
;
extern
char
launchDir
[
MAX_PATH
];
extern
SDL_Surface
*
prSDLScreen
;
static
SDL_Surface
*
ksur
;
static
SDL_Surface
*
inputMode
[
3
];
int
show_inputmode
=
0
;
int
inputmode_init
(
void
)
{
int
inputmode_init
(
void
)
{
int
i
;
char
tmpchar
[
256
];
char
tmpchar
[
MAX_PATH
];
SDL_Surface
*
tmp
;
sprintf
(
tmpchar
,
"%s/images/joystick.bmp"
,
launchDir
);
tmp
=
SDL_LoadBMP
(
tmpchar
);
if
(
tmp
)
{
...
...
@@ -33,14 +32,14 @@ int inputmode_init(void) {
}
void
inputmode_redraw
(
void
)
{
void
inputmode_redraw
(
void
)
{
SDL_Rect
r
;
SDL_Surface
*
surface
;
r
.
x
=
80
;
r
.
y
=
60
;
r
.
w
=
160
;
r
.
h
=
120
;
r
.
x
=
80
;
r
.
y
=
60
;
r
.
w
=
160
;
r
.
h
=
120
;
if
(
inputMode
[
0
]
&&
inputMode
[
1
])
{
// if (gp2xMouseEmuOn) {
...
...
@@ -50,6 +49,6 @@ void inputmode_redraw(void) {
surface
=
inputMode
[
0
];
}
SDL_BlitSurface
(
surface
,
NULL
,
prSDLScreen
,
&
r
);
SDL_BlitSurface
(
surface
,
NULL
,
prSDLScreen
,
&
r
);
}
}
src/gui-sdl/inputmode.h
View file @
01b63a62
int
inputmode_init
(
void
);
void
inputmode_redraw
(
void
);
int
inputmode_init
(
void
);
void
inputmode_redraw
(
void
);
extern
int
show_inputmode
;
src/gui-sdl/menu.c
View file @
01b63a62
This diff is collapsed.
Click to expand it.
src/gui-sdl/menu_disks.c
0 → 100644
View file @
01b63a62
#include "sysconfig.h"
#include "sysdeps.h"
#include "options.h"
#include "SDL.h"
#include "SDL_image.h"
#include "SDL_ttf.h"
#include <dirent.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#ifdef TOUCHUI
#include <SDL_TouchUI.h>
#endif
extern
void
write_text
(
int
x
,
int
y
,
char
*
txt
);
extern
void
blit_image
(
SDL_Surface
*
img
,
int
x
,
int
y
);
extern
int
pushdir
(
char
*
directory
);
extern
char
*
popdir
(
void
);
extern
int
getdirstackcount
(
void
);
extern
void
freedirstack
(
void
);
extern
int
getdirectory
(
char
**
filez
,
char
*
directory
,
bool
hide_parent
);
extern
SDL_Surface
*
display
;
extern
SDL_Surface
*
tmpSDLScreen
;
extern
SDL_Surface
*
pMenu_Surface
;
extern
SDL_Color
text_color
;
#define MAX_FILES 1024
extern
char
msg
[];
extern
char
msg_status
[];
char
disksSubDir
[
MAX_PATH
];
int
diskz
(
void
);
void
changeDisk
(
int
drive
);
int
diskz
(
void
)
{
SDL_Event
event
;
pMenu_Surface
=
SDL_LoadBMP
(
"images/menu_load.bmp"
);
int
drivesloopdone
=
0
;
int
menuSelection
=
0
;
int
currLine
;
int
kright
=
0
;
int
kb
=
0
;
char
*
drives
[]
=
{
"df0:"
,
"df1:"
,
"df2:"
,
"df3:"
};
char
*
tmp
;
tmp
=
(
char
*
)
malloc
(
MAX_PATH
);
if
(
display
==
NULL
)
{
gui_init
();
}
sprintf
(
msg
,
"%s"
,
"Select Disk Drive"
);
sprintf
(
msg_status
,
"%s"
,
"[RIGHT] to eject disk"
);
while
(
!
drivesloopdone
)
{
while
(
SDL_PollEvent
(
&
event
))
{
#ifdef TOUCHUI
SDL_TUI_HandleEvent
(
&
event
);
#endif
if
(
event
.
type
==
SDL_QUIT
)
{
drivesloopdone
=
1
;
}
#if GP2X
if
(
event
.
type
==
SDL_JOYBUTTONDOWN
)
{
switch
(
event
.
jbutton
.
button
)
{
case
GP2X_BUTTON_UP
:
menuSelection
--
;
break
;
case
GP2X_BUTTON_DOWN
:
menuSelection
++
;
break
;
case
GP2X_BUTTON_RIGHT
:
kright
=
1
;
break
;
case
GP2X_BUTTON_SELECT
:
drivesloopdone
=
1
;
break
;
case
GP2X_BUTTON_B
:
kb
=
1
;
break
;
}
}
#endif
if
(
event
.
type
==
SDL_KEYDOWN
)
{
switch
(
event
.
key
.
keysym
.
sym
)
{
case
SDLK_ESCAPE
:
drivesloopdone
=
1
;
break
;
case
SDLK_UP
:
menuSelection
--
;
break
;
case
SDLK_DOWN
:
menuSelection
++
;
break
;
case
SDLK_RIGHT
:
kright
=
1
;
break
;
case
SDLK_RETURN
:
kb
=
1
;
break
;
default:
break
;
}
}
}
if
(
kright
==
1
)
{
// eject diskimage
disk_eject
(
menuSelection
);
kright
=
0
;
}
if
(
kb
==
1
)
{
// select disk image
changeDisk
(
menuSelection
);
kb
=
0
;
}
if
(
menuSelection
<
0
)
{
menuSelection
=
3
;
}
if
(
menuSelection
>
3
)
{
menuSelection
=
0
;
}
// background
SDL_BlitSurface
(
pMenu_Surface
,
NULL
,
tmpSDLScreen
,
NULL
);
// texts
for
(
currLine
=
0
;
currLine
<
4
;
currLine
++
)
{
if
(
menuSelection
==
currLine
)
{
text_color
.
r
=
255
;
text_color
.
g
=
100
;
text_color
.
b
=
100
;
}
write_text
(
10
,
(
currLine
*
10
)
+
25
,
drives
[
currLine
]
);
sprintf
(
tmp
,
"%s"
,
changed_prefs
.
floppyslots
[
currLine
].
df
);
write_text
(
50
,
(
currLine
*
10
)
+
25
,
tmp
);
if
(
menuSelection
==
currLine
)
{
text_color
.
r
=
0
;
text_color
.
g
=
0
;
text_color
.
b
=
0
;
}
}
write_text
(
25
,
5
,
msg
);
write_text
(
15
,
230
,
msg_status
);
SDL_BlitSurface
(
tmpSDLScreen
,
NULL
,
display
,
NULL
);
#ifdef TOUCHUI
SDL_TUI_UpdateAll
();
#endif
redraw_frame
();
}
//while done
freedirstack
();
strcpy
(
disksSubDir
,
"disks"
);
pMenu_Surface
=
SDL_LoadBMP
(
"images/menu.bmp"
);
return
0
;
}
void
changeDisk
(
int
drive
)
{
char
launchDir
[
MAX_PATH
];
SDL_Event
event
;
int
getdir
=
1
;
bool
hide_parent
=
false
;
pMenu_Surface
=
SDL_LoadBMP
(
"images/menu_load.bmp"
);
int
loadloopdone
=
0
;
int
num_of_files
=
0
;
int
menuSelection
=
0
;
int
currLine
;
int
bas
=
0
;
int
kb
=
0
;
char
**
filez
=
(
char
**
)
malloc
(
MAX_FILES
*
sizeof
(
char
*
));
if
(
display
==
NULL
)
{
gui_init
();
}
sprintf
(
msg
,
"%s"
,
"Select Disk Image"
);
sprintf
(
msg_status
,
"%s"
,
" "
);
getcwd
(
launchDir
,
MAX_PATH
);
int
paging
=
18
;
if
(
strcmp
(
disksSubDir
,
"
\0
"
)
==
0
)
{
strcpy
(
disksSubDir
,
"disks"
);
}
if
(
strcasecmp
(
disksSubDir
,
"disks"
)
==
0
)
{
hide_parent
=
true
;
}
num_of_files
=
getdirectory
(
filez
,
disksSubDir
,
hide_parent
);
if
(
num_of_files
<
18
)
{
paging
=
num_of_files
;
}
while
(
!
loadloopdone
)
{
while
(
SDL_PollEvent
(
&
event
))
{
#ifdef TOUCHUI
SDL_TUI_HandleEvent
(
&
event
);
#endif
if
(
event
.
type
==
SDL_QUIT
)
{
loadloopdone
=
1
;
}
#if GP2X
if
(
event
.
type
==
SDL_JOYBUTTONDOWN
)
{
switch
(
event
.
jbutton
.
button
)
{
case
GP2X_BUTTON_UP
:
menuSelection
-=
1
;
break
;
case
GP2X_BUTTON_DOWN
:
menuSelection
+=
1
;
break
;
case
GP2X_BUTTON_B
:
kb
=
1
;
break
;
case
GP2X_BUTTON_SELECT
:
loadloopdone
=
1
;
break
;
}
}
#endif
if
(
event
.
type
==
SDL_KEYDOWN
)
{
switch
(
event
.
key
.
keysym
.
sym
)
{
case
SDLK_ESCAPE
:
loadloopdone
=
1
;
break
;
case
SDLK_UP
:
menuSelection
-=
1
;
break
;
case
SDLK_DOWN
:
menuSelection
+=
1
;
break
;
case
SDLK_RETURN
:
kb
=
1
;
break
;
default:
break
;
}
}
}
if
(
kb
==
1
)
{
// Check if a directory was selected
struct
stat
sstat
;
char
*
tmp
=
(
char
*
)
calloc
(
1
,
MAX_PATH
);
strcpy
(
tmp
,
disksSubDir
);
strcat
(
tmp
,
"/"
);
strcat
(
tmp
,
filez
[
menuSelection
]);
if
(
stat
(
tmp
,
&
sstat
)
!=
-
1
)
{
if
(
sstat
.
st_mode
&
S_IFDIR
)
{
// Select subdirectory
if
(
strcasecmp
(
filez
[
menuSelection
],
".."
)
==
0
)
{
// Back to parent
char
*
tmp2
=
NULL
;
tmp2
=
popdir
();
if
(
tmp2
)
{
menuSelection
=
0
;
paging
=
18
;
strcpy
(
disksSubDir
,
tmp2
);
int
i
;
hide_parent
=
false
;
if
(
getdirstackcount
()
==
0
)
{
hide_parent
=
true
;
}
for
(
i
=
0
;
i
<
num_of_files
;
i
++
)
{
free
(
filez
[
i
]);
}
num_of_files
=
getdirectory
(
filez
,
disksSubDir
,
hide_parent
);
if
(
num_of_files
<
18
)
{
paging
=
num_of_files
;
}
}
free
(
tmp2
);
}
else
{
// go into subdirectory
pushdir
(
disksSubDir
);
menuSelection
=
0
;
paging
=
18
;
strcpy
(
disksSubDir
,
tmp
);
int
i
;
for
(
i
=
0
;
i
<
num_of_files
;
i
++
)
{
free
(
filez
[
i
]);
}
num_of_files
=
getdirectory
(
filez
,
disksSubDir
,
false
);
if
(
num_of_files
<
18
)
{
paging
=
num_of_files
;
}
}
}
else
{
// Select diskimage
write_log
(
"Old Disk Image: %s
\n
"
,
changed_prefs
.
floppyslots
[
drive
].
df
);
strncpy
(
changed_prefs
.
floppyslots
[
drive
].
df
,
tmp
,
255
);
write_log
(
"Selected Disk Image: %s
\n
"
,
changed_prefs
.
floppyslots
[
drive
].
df
);
loadloopdone
=
1
;
}
}
free
(
tmp
);
kb
=
0
;
}
if
(
menuSelection
<
0
)
{
menuSelection
=
0
;
}
if
(
menuSelection
>=
num_of_files
)
{
menuSelection
=
num_of_files
-
1
;
}
if
(
menuSelection
>
(
bas
+
paging
-
1
))
{
bas
+=
1
;
}
if
(
menuSelection
<
bas
)
{
bas
-=
1
;
}
if
((
bas
+
paging
)
>
num_of_files
)
{
bas
=
(
num_of_files
-
paging
);
}
// background
SDL_BlitSurface
(
pMenu_Surface
,
NULL
,
tmpSDLScreen
,
NULL
);
// texts
int
lineOffset
=
0
;
for
(
currLine
=
bas
;
currLine
<
(
bas
+
paging
);
currLine
++
)
{
if
(
menuSelection
==
currLine
)
{
text_color
.
r
=
255
;
text_color
.
g
=
100
;
text_color
.
b
=
100
;
}
write_text
(
10
,
(
lineOffset
*
10
)
+
25
,
filez
[
currLine
]);
if
(
menuSelection
==
currLine
)
{
text_color
.
r
=
0
;
text_color
.
g
=
0
;
text_color
.
b
=
0
;
}
lineOffset
++
;
}
write_text
(
25
,
5
,
msg
);
write_text
(
15
,
238
,
msg_status
);
SDL_BlitSurface
(
tmpSDLScreen
,
NULL
,
display
,
NULL
);
#ifdef TOUCHUI
SDL_TUI_UpdateAll
();
#endif
redraw_frame
();
}
//while done
free
(
filez
);
pMenu_Surface
=
SDL_LoadBMP
(
"images/menu_load.bmp"
);
return
;
}
src/gui-sdl/menu_prefs.c
View file @
01b63a62
...
...
@@ -18,12 +18,15 @@ extern SDL_Color text_color;
extern
char
msg
[
50
];
extern
char
msg_status
[
50
];
int
prefz
(
int
parametre
)
{
int
prefz
(
void
)
{
SDL_Event
event
;
if
(
display
==
NULL
)
{
gui_init
();
}
sprintf
(
msg
,
"%s"
,
" "
);
sprintf
(
msg_status
,
"%s"
,
" "
);
pMenu_Surface
=
SDL_LoadBMP
(
"images/menu_tweak.bmp"
);
int
prefsloopdone
=
0
;
...
...
@@ -55,15 +58,13 @@ int prefz (int parametre) {
char
*
p_floppy
[]
=
{
"0"
,
"100"
,
"200"
,
"300"
};
//3
int
defaults
[]
=
{
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
};
// defaults[0] = changed_prefs.cpu_level;
defaults
[
0
]
=
changed_prefs
.
cpu_model
;
if
(
changed_prefs
.
address_space_24
!=
0
)
{
// if (changed_prefs.cpu_level == 2) { defaults[0] = 4; }
// if (changed_prefs.cpu_level == 3) { defaults[0] = 5; }
if
(
changed_prefs
.
cpu_model
==
2
)
{
defaults
[
0
]
=
4
;
}
if
(
changed_prefs
.
cpu_model
==
3
)
{
defaults
[
0
]
=
5
;
}
}
defaults
[
1
]
=
changed_prefs
.
m68k_speed
;
//defaults[1] = changed_prefs.m68k_speed;
defaults
[
1
]
=
0
;
defaults
[
2
]
=
changed_prefs
.
chipset_mask
;
defaults
[
3
]
=
changed_prefs
.
chipmem_size
;
defaults
[
4
]
=
changed_prefs
.
fastmem_size
;
...
...
@@ -83,26 +84,26 @@ int prefz (int parametre) {
if
(
event
.
type
==
SDL_QUIT
)
{
prefsloopdone
=
1
;
}
#if GP2X
if
(
event
.
type
==
SDL_JOYBUTTONDOWN
)
{
switch
(
event
.
jbutton
.
button
)
{
#if 0
switch
(
event
.
jbutton
.
button
)
{
case
GP2X_BUTTON_UP
:
menuSelection
--
;
break
;
case
GP2X_BUTTON_DOWN
:
menuSelection
++
;
break
;
case
GP2X_BUTTON_LEFT
:
kleft
=
1
;
break
;
case
GP2X_BUTTON_RIGHT
:
kright
=
1
;
break
;
case
GP2X_BUTTON_SELECT
:
prefsloopdone
=
1
;
break
;
case
GP2X_BUTTON_B
:
prefsloopdone
=
1
;
break
;
#endif
}
}
if
(
event
.
type
==
SDL_KEYDOWN
)
{
switch
(
event
.
key
.
keysym
.
sym
)
{
#endif
if
(
event
.
type
==
SDL_KEYDOWN
)
{
switch
(
event
.
key
.
keysym
.
sym
)
{
case
SDLK_ESCAPE
:
prefsloopdone
=
1
;
break
;
case
SDLK_UP
:
menuSelection
--
;
break
;
case
SDLK_DOWN
:
menuSelection
++
;
break
;
case
SDLK_LEFT
:
kleft
=
1
;
break
;
case
SDLK_RIGHT
:
kright
=
1
;
break
;
case
SDLK_
b
:
prefsloopdone
=
1
;
break
;
case
SDLK_
RETURN
:
prefsloopdone
=
1
;
break
;
default:
break
;
}
}
...
...
@@ -158,17 +159,18 @@ int prefz (int parametre) {
if
(
menuSelection
<
0
)
{
menuSelection
=
8
;
}
if
(
menuSelection
>
8
)
{
menuSelection
=
0
;
}
// background
// background
SDL_BlitSurface
(
pMenu_Surface
,
NULL
,
tmpSDLScreen
,
NULL
);
// texts
// texts
int
sira
=
0
;
int
skipper
=
0
;
for
(
q
=
0
;
q
<
9
;
q
++
)
{
for
(
q
=
0
;
q
<
8
;
q
++
)
{
if
(
menuSelection
==
q
)
{
text_color
.
r
=
150
;
text_color
.
g
=
50
;
text_color
.
b
=
50
;
}
write_text
(
10
,
skipper
+
25
+
(
sira
*
10
),
prefs
[
q
]);
//
write_text
(
10
,
skipper
+
25
+
(
sira
*
10
),
prefs
[
q
]);
//
if
(
q
==
0
)
{
write_text
(
130
,
skipper
+
25
+
(
sira
*
10
),
p_cpu
[
defaults
[
q
]]);
}
if
(
q
==
1
)
{
...
...
@@ -194,10 +196,10 @@ int prefz (int parametre) {
sira
++
;
}
write_text
(
25
,
6
,
msg
);
//
write_text
(
25
,
240
,
msg_status
);
//
write_text
(
25
,
5
,
msg
);
//
write_text
(
25
,
230
,
msg_status
);
//
SDL_BlitSurface
(
tmpSDLScreen
,
NULL
,
display
,
NULL
);
SDL_BlitSurface
(
tmpSDLScreen
,
NULL
,
display
,
NULL
);
#ifdef TOUCHUI
SDL_TUI_UpdateAll
();
#endif
...
...
src/gui-sdl/menu_
load
.c
→
src/gui-sdl/menu_
roms
.c
View file @
01b63a62
#include "sysconfig.h"
#include "sysdeps.h"
#include "options.h"
#include "SDL.h"
#include "SDL_image.h"
#include "SDL_ttf.h"
...
...
@@ -16,62 +16,48 @@
extern
void
write_text
(
int
x
,
int
y
,
char
*
txt
);
extern
void
blit_image
(
SDL_Surface
*
img
,
int
x
,
int
y
);
extern
int
pushdir
(
char
*
directory
);
extern
char
*
popdir
(
void
);
extern
int
getdirstackcount
(
void
);
extern
void
freedirstack
(
void
);
extern
int
getdirectory
(
char
**
filez
,
char
*
directory
,
bool
hide_parent
);
extern
SDL_Surface
*
display
;
extern
SDL_Surface
*
tmpSDLScreen
;
extern
SDL_Surface
*
pMenu_Surface
;
extern
SDL_Color
text_color
;
#define MAX_FILES 1024
extern
char
yol
[];
extern
char
msg
[];
extern
char
msg_status
[];
int
dirz
(
int
parametre
)
{
char
launchDir
[
256
];
int
romz
(
void
)
{
char
subDir
[
MAX_PATH
];
char
launchDir
[
MAX_PATH
];
SDL_Event
event
;
int
getdir
=
1
;
pMenu_Surface
=
SDL_LoadBMP
(
"images/menu_load.bmp"
);
int
loadloopdone
=
0
;
int
num_of_files
=
0
;
int
menuSelection
=
0
;
int
q
;
int
currLine
;
int
bas
=
0
;
int
ka
=
0
;
int
kb
=
0
;
char
**
filez
=
(
char
**
)
malloc
(
MAX_FILES
*
sizeof
(
char
*
));
char
**
filez
=
(
char
**
)
malloc
(
MAX_FILES
*
sizeof
(
char
*
));
if
(
display
==
NULL
)
{
gui_init
();
}
sprintf
(
msg
,
"%s"
,
"Select Kickstart ROM"
);
sprintf
(
msg_status
,
"%s"
,
" "
);
getcwd
(
launchDir
,
MAX_PATH
);
int
i
;
int
paging
=
18
;
DIR
*
d
=
opendir
(
yol
);
struct
dirent
*
ep
;
getcwd
(
launchDir
,
256
);
if
(
d
!=
NULL
)
{
for
(
i
=
0
;
i
<
MAX_FILES
;
i
++
)
{
ep
=
readdir
(
d
);
if
(
ep
==
NULL
)
{
break
;
}
else
{
struct
stat
sstat
;
char
*
tmp
=
(
char
*
)
calloc
(
1
,
256
);
strcpy
(
tmp
,
launchDir
);
strcat
(
tmp
,
"/"
);
strcat
(
tmp
,
ep
->
d_name
);
filez
[
i
]
=
(
char
*
)
malloc
(
64
);
strncpy
(
filez
[
i
],
ep
->
d_name
,
64
);
num_of_files
++
;
free
(
tmp
);
}
}
closedir
(
d
);
}
if
(
num_of_files
<
18
)
{
strcpy
(
subDir
,
"roms"
);
num_of_files
=
getdirectory
(
filez
,
subDir
,
true
);
if
(
num_of_files
<
18
)
{
paging
=
num_of_files
;
}
...
...
@@ -83,75 +69,82 @@ int dirz (int parametre) {
if
(
event
.
type
==
SDL_QUIT
)
{
loadloopdone
=
1
;
}
#if GP2X
if
(
event
.
type
==
SDL_JOYBUTTONDOWN
)
{
switch
(
event
.
jbutton
.
button
)
{
#if 0
switch
(
event
.
jbutton
.
button
)
{
case
GP2X_BUTTON_UP
:
menuSelection
-=
1
;
break
;
case
GP2X_BUTTON_DOWN
:
menuSelection
+=
1
;
break
;
case GP2X_BUTTON_A: ka = 1; break;
case
GP2X_BUTTON_B
:
kb
=
1
;
break
;
case
GP2X_BUTTON_SELECT
:
loadloopdone
=
1
;
break
;
#endif
}
}
if
(
event
.
type
==
SDL_KEYDOWN
)
{
switch
(
event
.
key
.
keysym
.
sym
)
{
case
SDLK_ESCAPE
:
loadloopdone
=
1
;
break
;
case
SDLK_UP
:
menuSelection
-
=
1
;
break
;
case
SDLK_DOWN
:
menuSelection
+
=
1
;
break
;
case
SDLK_
a
:
ka
=
1
;
break
;
case
SDLK_
b
:
kb
=
1
;
break
;
#endif
if
(
event
.
type
==
SDL_KEYDOWN
)
{
switch
(
event
.
key
.
keysym
.
sym
)
{
case
SDLK_ESCAPE
:
loadloopdone
=
1
;
break
;
case
SDLK_UP
:
menuSelection
-
=
1
;
break
;
case
SDLK_
DOWN
:
menuSelection
+
=
1
;
break
;
case
SDLK_
RETURN
:
kb
=
1
;
break
;
default:
break
;
}
}
}
if
(
parametre
==
0
)
{
if
(
ka
==
1
)
{
//df1
// Select Disk Image
char
*
tmp
=
(
char
*
)
calloc
(
1
,
256
);
//strcpy(tmp,launchDir);
strcat
(
tmp
,
"disks/"
);
strcat
(
tmp
,
filez
[
menuSelection
]);
//strcpy(changed_prefs.floppyslots[1].df,tmp);
write_log
(
"Old Disk Image: %s
\n
"
,
changed_prefs
.
floppyslots
[
1
].
df
);
strncpy
(
changed_prefs
.
floppyslots
[
1
].
df
,
tmp
,
255
);
write_log
(
"Selected Disk Image: %s
\n
"
,
changed_prefs
.
floppyslots
[
1
].
df
);
free
(
tmp
);
loadloopdone
=
1
;
ka
=
0
;
}
if
(
kb
==
1
)
{
//df0;
// Select Disk Image
char
*
tmp
=
(
char
*
)
calloc
(
1
,
256
);
//strcpy(tmp,launchDir);
strcat
(
tmp
,
"disks/"
);
strcat
(
tmp
,
filez
[
menuSelection
]);
//strcpy(changed_prefs.floppyslots[0].df,tmp);
write_log
(
"Old Disk Image: %s
\n
"
,
changed_prefs
.
floppyslots
[
0
].
df
);
strncpy
(
changed_prefs
.
floppyslots
[
0
].
df
,
tmp
,
255
);
write_log
(
"Selected Disk Image: %s
\n
"
,
changed_prefs
.
floppyslots
[
0
].
df
);
free
(
tmp
);
loadloopdone
=
1
;
kb
=
0
;
}
}
else
{
if
(
kb
==
1
)
{
// Select KickStart ROM
char
*
tmp
=
(
char
*
)
calloc
(
1
,
256
);
//strcpy(tmp,launchDir);
strcat
(
tmp
,
"roms/"
);
strcat
(
tmp
,
filez
[
menuSelection
]);
//strcpy(changed_prefs.romfile,tmp);
write_log
(
"Old KickStart ROM: %s
\n
"
,
changed_prefs
.
romfile
);
strncpy
(
changed_prefs
.
romfile
,
tmp
,
255
);
write_log
(
"Selected KickStart ROM: %s
\n
"
,
changed_prefs
.
romfile
);
free
(
tmp
);
loadloopdone
=
1
;
if
(
kb
==
1
)
{
// Check if a directory was selected
struct
stat
sstat
;
char
*
tmp
=
(
char
*
)
calloc
(
1
,
MAX_PATH
);
strcpy
(
tmp
,
subDir
);
strcat
(
tmp
,
"/"
);
strcat
(
tmp
,
filez
[
menuSelection
]);
if
(
stat
(
tmp
,
&
sstat
)
!=
-
1
)
{
if
(
sstat
.
st_mode
&
S_IFDIR
)
{
// Select subdirectory
if
(
strcasecmp
(
filez
[
menuSelection
],
".."
)
==
0
)
{
// Back to parent
char
*
tmp2
=
NULL
;
tmp2
=
popdir
();
if
(
tmp2
)
{
menuSelection
=
0
;
paging
=
18
;
strcpy
(
subDir
,
tmp2
);
int
i
;
bool
hide_parent
=
false
;
if
(
getdirstackcount
()
==
0
)
{
hide_parent
=
true
;
}
for
(
i
=
0
;
i
<
num_of_files
;
i
++
)
{
free
(
filez
[
i
]);
}
num_of_files
=
getdirectory
(
filez
,
subDir
,
hide_parent
);
if
(
num_of_files
<
18
)
{
paging
=
num_of_files
;
}
}
free
(
tmp2
);
}
else
{
// go into subdirectory
pushdir
(
subDir
);
menuSelection
=
0
;
paging
=
18
;
strcpy
(
subDir
,
tmp
);
int
i
;
for
(
i
=
0
;
i
<
num_of_files
;
i
++
)
{
free
(
filez
[
i
]);
}
num_of_files
=
getdirectory
(
filez
,
subDir
,
false
);
if
(
num_of_files
<
18
)
{
paging
=
num_of_files
;
}
}
}
else
{
// Select kickstart rom
write_log
(
"Old KickStart ROM: %s
\n
"
,
changed_prefs
.
romfile
);
strncpy
(
changed_prefs
.
romfile
,
tmp
,
255
);
write_log
(
"Selected KickStart ROM: %s
\n
"
,
changed_prefs
.
romfile
);
loadloopdone
=
1
;
}
}
ka
=
0
;
free
(
tmp
)
;
kb
=
0
;
}
...
...
@@ -161,24 +154,24 @@ int dirz (int parametre) {
if
(
menuSelection
<
bas
)
{
bas
-=
1
;
}
if
((
bas
+
paging
)
>
num_of_files
)
{
bas
=
(
num_of_files
-
paging
);
}
// background
SDL_BlitSurface
(
pMenu_Surface
,
NULL
,
tmpSDLScreen
,
NULL
);
// background
SDL_BlitSurface
(
pMenu_Surface
,
NULL
,
tmpSDLScreen
,
NULL
);
// texts
int
sira
=
0
;
for
(
q
=
bas
;
q
<
(
bas
+
paging
);
q
++
)
{
if
(
menuSelection
==
q
)
{
// texts
int
lineOffset
=
0
;
for
(
currLine
=
bas
;
currLine
<
(
bas
+
paging
);
currLine
++
)
{
if
(
menuSelection
==
currLine
)
{
text_color
.
r
=
255
;
text_color
.
g
=
100
;
text_color
.
b
=
100
;
}
write_text
(
10
,
25
+
(
sira
*
10
),
filez
[
q
]);
//
if
(
menuSelection
==
q
)
{
write_text
(
10
,
(
lineOffset
*
10
)
+
25
,
filez
[
currLine
]);
if
(
menuSelection
==
currLine
)
{
text_color
.
r
=
0
;
text_color
.
g
=
0
;
text_color
.
b
=
0
;
}
sira
++
;
lineOffset
++
;
}
write_text
(
25
,
3
,
msg
);
write_text
(
15
,
228
,
msg_status
);
write_text
(
25
,
5
,
msg
);
write_text
(
15
,
238
,
msg_status
);
SDL_BlitSurface
(
tmpSDLScreen
,
NULL
,
display
,
NULL
);
#ifdef TOUCHUI
...
...
@@ -188,6 +181,7 @@ int dirz (int parametre) {
}
//while done
free
(
filez
);
freedirstack
();
pMenu_Surface
=
SDL_LoadBMP
(
"images/menu.bmp"
);
return
0
;
...
...
src/gui-sdl/menu_tweak.c
View file @
01b63a62
#include "sysconfig.h"
#include "sysdeps.h"
#include "options.h"
#include "SDL.h"
...
...
@@ -10,8 +9,8 @@
#include <SDL_TouchUI.h>
#endif
extern
void
write_text
(
int
x
,
int
y
,
char
*
txt
);
extern
void
blit_image
(
SDL_Surface
*
img
,
int
x
,
int
y
);
extern
void
write_text
(
int
x
,
int
y
,
char
*
txt
);
extern
void
blit_image
(
SDL_Surface
*
img
,
int
x
,
int
y
);
extern
SDL_Surface
*
display
;
extern
SDL_Surface
*
tmpSDLScreen
;
extern
SDL_Surface
*
pMenu_Surface
;
...
...
@@ -19,10 +18,11 @@ extern SDL_Color text_color;
extern
char
msg
[
50
];
extern
char
msg_status
[
50
];
int
tweakz
(
int
parametre
)
{
int
tweakz
(
void
)
{
#ifdef GP2X
SDL_Event
event
;
pMenu_Surface
=
SDL_LoadBMP
(
"images/menu_tweak.bmp"
);
pMenu_Surface
=
SDL_LoadBMP
(
"images/menu_tweak.bmp"
);
int
tweakloopdone
=
0
;
int
kup
=
0
;
int
kdown
=
0
;
...
...
@@ -30,26 +30,42 @@ int tweakz (int parametre) {
int
kright
=
0
;
int
kb
=
0
;
int
menuSelection
=
0
;
int
q
;
char
*
tweaks
[]
=
{
"CPU Mhz"
,
"tRC"
,
"tRAS"
,
"tWR"
,
"tMRD"
,
"tRFC"
,
"tRP"
,
"tRCD"
,
"PLL"
,
"Timing"
,
"Default (200mhz)"
,
"Default (266mhz)"
,
"Evil Dragon (266mhz)"
};
int
defaults
[]
=
{
200
,
8
,
16
,
3
,
8
,
8
,
8
,
8
,
1
,
1
};
int
def_slow_tweak
[]
=
{
200
,
8
,
16
,
3
,
8
,
8
,
8
,
8
,
1
,
1
};
int
def_fast_tweak
[]
=
{
266
,
8
,
16
,
3
,
8
,
8
,
8
,
8
,
1
,
1
};
int
evil_tweak
[]
=
{
266
,
6
,
4
,
1
,
1
,
1
,
2
,
2
,
1
,
1
};
int
currLine
;
char
*
tweaks
[]
=
{
"CPU Mhz"
,
"tRC"
,
"tRAS"
,
"tWR"
,
"tMRD"
,
"tRFC"
,
"tRP"
,
"tRCD"
,
"PLL"
,
"Timing"
,
"Default (200mhz)"
,
"Default (266mhz)"
,
"Evil Dragon (266mhz)"
};
int
defaults
[]
=
{
200
,
8
,
16
,
3
,
8
,
8
,
8
,
8
,
1
,
1
};
int
def_slow_tweak
[]
=
{
200
,
8
,
16
,
3
,
8
,
8
,
8
,
8
,
1
,
1
};
int
def_fast_tweak
[]
=
{
266
,
8
,
16
,
3
,
8
,
8
,
8
,
8
,
1
,
1
};
int
evil_tweak
[]
=
{
266
,
6
,
4
,
1
,
1
,
1
,
2
,
2
,
1
,
1
};
char
*
tmp
;
tmp
=
(
char
*
)
malloc
(
5
);
tmp
=
(
char
*
)
malloc
(
5
);
if
(
display
==
NULL
)
{
gui_init
();
}
sprintf
(
msg
,
"%s"
,
"Tweaks"
);
sprintf
(
msg_status
,
"%s"
,
"L/R = -/+ B: Apply"
);
#ifdef GP2X
unsigned
sysfreq
=
0
;
unsigned
sysfreq
=
0
;
int
cpufreq
;
sysfreq
=
get_freq_920_CLK
();
sysfreq
*
=
get_920_Div
()
+
1
;
cpufreq
=
sysfreq
/
1000000
;
sysfreq
*
=
get_920_Div
()
+
1
;
cpufreq
=
sysfreq
/
1000000
;
defaults
[
0
]
=
cpufreq
;
defaults
[
1
]
=
get_tRC
();
...
...
@@ -59,66 +75,58 @@ int tweakz (int parametre) {
defaults
[
5
]
=
get_tRFC
();
defaults
[
6
]
=
get_tRP
();
defaults
[
7
]
=
get_tRCD
();
#endif
while
(
!
tweakloopdone
)
{
while
(
SDL_PollEvent
(
&
event
))
{
#ifdef TOUCHUI
SDL_TUI_HandleEvent
(
&
event
);
#endif
if
(
event
.
type
==
SDL_QUIT
)
{
tweakloopdone
=
1
;
}
if
(
event
.
type
==
SDL_JOYBUTTONDOWN
)
{
switch
(
event
.
jbutton
.
button
)
{
#if 0
switch
(
event
.
jbutton
.
button
)
{
case
GP2X_BUTTON_UP
:
menuSelection
--
;
break
;
case
GP2X_BUTTON_DOWN
:
menuSelection
++
;
break
;
case
GP2X_BUTTON_LEFT
:
kleft
=
1
;
break
;
case
GP2X_BUTTON_RIGHT
:
kright
=
1
;
break
;
case
GP2X_BUTTON_SELECT
:
tweakloopdone
=
1
;
break
;
case GP2X_BUTTON_B: kb =1; break;
#endif
case
GP2X_BUTTON_B
:
kb
=
1
;
break
;
}
}
if
(
event
.
type
==
SDL_KEYDOWN
)
{
switch
(
event
.
key
.
keysym
.
sym
)
{
case
SDLK_ESCAPE
:
tweakloopdone
=
1
;
break
;
case
SDLK_UP
:
menuSelection
--
;
break
;
case
SDLK_DOWN
:
menuSelection
++
;
break
;
case
SDLK_LEFT
:
kleft
=
1
;
break
;
case
SDLK_RIGHT
:
kright
=
1
;
break
;
case
SDLK_
b
:
kb
=
1
;
break
;
if
(
event
.
type
==
SDL_KEYDOWN
)
{
switch
(
event
.
key
.
keysym
.
sym
)
{
case
SDLK_ESCAPE
:
tweakloopdone
=
1
;
break
;
case
SDLK_UP
:
menuSelection
--
;
break
;
case
SDLK_DOWN
:
menuSelection
++
;
break
;
case
SDLK_LEFT
:
kleft
=
1
;
break
;
case
SDLK_RIGHT
:
kright
=
1
;
break
;
case
SDLK_
RETURN
:
kb
=
1
;
break
;
default:
break
;
}
}
}
if
(
kb
==
1
)
{
if
(
menuSelection
==
10
)
{
for
(
q
=
0
;
q
<
10
;
q
++
)
{
defaults
[
q
]
=
def_slow_tweak
[
q
];
}
for
(
currLine
=
0
;
currLine
<
10
;
currLine
++
)
{
defaults
[
currLine
]
=
def_slow_tweak
[
currLine
];
}
}
if
(
menuSelection
==
11
)
{
for
(
q
=
0
;
q
<
10
;
q
++
)
{
defaults
[
q
]
=
def_fast_tweak
[
q
];
}
for
(
currLine
=
0
;
currLine
<
10
;
currLine
++
)
{
defaults
[
currLine
]
=
def_fast_tweak
[
currLine
];
}
}
if
(
menuSelection
==
12
)
{
for
(
q
=
0
;
q
<
10
;
q
++
)
{
defaults
[
q
]
=
evil_tweak
[
q
];
}
for
(
currLine
=
0
;
currLine
<
10
;
currLine
++
)
{
defaults
[
currLine
]
=
evil_tweak
[
currLine
];
}
}
if
(
menuSelection
<
10
)
{
#if 0
//apply
//printf("FLCK: %d",0);
set_CAS(0);
printf("FLCK: %d",
defaults[0]);
set_FCLK(defaults[0]);
printf("tRC : %d",
defaults[1]); set_tRC(defaults[1]-
1);
printf("tRAS: %d",
defaults[2]); set_tRAS(defaults[2]-
1);
printf("tWR : %d",
defaults[3]); set_tWR(defaults[3]-
1);
printf("tMRD: %d",
defaults[4]); set_tMRD(defaults[4]-
1);
printf("tRFC: %d",
defaults[5]); set_tRFC(defaults[5]-
1);
printf("tRP : %d",
defaults[6]); set_tRP(defaults[6]-
1);
printf("tRCD: %d",
defaults[7]); set_tRCD(defaults[7]-
1);
//printf("FLCK: %d",0);
set_CAS(0);
printf
(
"FLCK: %d"
,
defaults
[
0
]);
set_FCLK
(
defaults
[
0
]);
printf
(
"tRC : %d"
,
defaults
[
1
]);
set_tRC
(
defaults
[
1
]
-
1
);
printf
(
"tRAS: %d"
,
defaults
[
2
]);
set_tRAS
(
defaults
[
2
]
-
1
);
printf
(
"tWR : %d"
,
defaults
[
3
]);
set_tWR
(
defaults
[
3
]
-
1
);
printf
(
"tMRD: %d"
,
defaults
[
4
]);
set_tMRD
(
defaults
[
4
]
-
1
);
printf
(
"tRFC: %d"
,
defaults
[
5
]);
set_tRFC
(
defaults
[
5
]
-
1
);
printf
(
"tRP : %d"
,
defaults
[
6
]);
set_tRP
(
defaults
[
6
]
-
1
);
printf
(
"tRCD: %d"
,
defaults
[
7
]);
set_tRCD
(
defaults
[
7
]
-
1
);
if
(
defaults
[
8
]
==
0
)
{
printf("FLCD: %d",
defaults[9]); set_add_FLCDCLK(defaults[9]-
1);
printf
(
"FLCD: %d"
,
defaults
[
9
]);
set_add_FLCDCLK
(
defaults
[
9
]
-
1
);
}
else
{
printf("ULCD: %d",
defaults[9]); set_add_ULCDCLK(defaults[9]-
1);
printf
(
"ULCD: %d"
,
defaults
[
9
]);
set_add_ULCDCLK
(
defaults
[
9
]
-
1
);
}
#endif
tweakloopdone
=
1
;
}
kb
=
0
;
...
...
@@ -156,46 +164,44 @@ int tweakz (int parametre) {
if
(
menuSelection
<
0
)
{
menuSelection
=
12
;
}
if
(
menuSelection
>
12
)
{
menuSelection
=
0
;
}
// background
SDL_BlitSurface
(
pMenu_Surface
,
NULL
,
tmpSDLScreen
,
NULL
);
// background
SDL_BlitSurface
(
pMenu_Surface
,
NULL
,
tmpSDLScreen
,
NULL
);
// texts
int
sira
=
0
;
// texts
int
lineOffset
=
0
;
int
skipper
=
0
;
for
(
q
=
0
;
q
<
13
;
q
++
)
{
if
(
q
==
10
)
{
skipper
=
30
;
}
if
(
menuSelection
==
q
)
{
for
(
currLine
=
0
;
currLine
<
13
;
currLine
++
)
{
if
(
currLine
==
10
)
{
skipper
=
30
;
}
if
(
menuSelection
==
currLine
)
{
text_color
.
r
=
255
;
text_color
.
g
=
100
;
text_color
.
b
=
100
;
}
write_text
(
10
,
skipper
+
25
+
(
sira
*
10
),
tweaks
[
q
]);
//
if
(
q
<
10
)
{
if
(
q
==
8
)
{
write_text
(
10
,
skipper
+
25
+
(
lineOffset
*
10
),
tweaks
[
currLine
]);
if
(
currLine
<
10
)
{
if
(
currLine
==
8
)
{
if
(
defaults
[
8
]
==
0
)
{
sprintf
(
tmp
,
"%s"
,
"FPLL"
);
sprintf
(
tmp
,
"%s"
,
"FPLL"
);
}
else
{
sprintf
(
tmp
,
"%s"
,
"UPLL"
);
sprintf
(
tmp
,
"%s"
,
"UPLL"
);
}
}
else
{
sprintf
(
tmp
,
"%d"
,
defaults
[
q
]);
sprintf
(
tmp
,
"%d"
,
defaults
[
currLine
]);
}
write_text
(
100
,
skipper
+
25
+
(
sira
*
10
),
tmp
);
write_text
(
100
,
skipper
+
25
+
(
lineOffset
*
10
),
tmp
);
}
if
(
menuSelection
==
q
)
{
if
(
menuSelection
==
currLine
)
{
text_color
.
r
=
0
;
text_color
.
g
=
0
;
text_color
.
b
=
0
;
}
sira
++
;
lineOffset
++
;
}
write_text
(
25
,
3
,
msg
);
write_text
(
15
,
228
,
msg_status
);
write_text
(
25
,
5
,
msg
);
write_text
(
15
,
238
,
msg_status
);
SDL_BlitSurface
(
tmpSDLScreen
,
NULL
,
display
,
NULL
);
#ifdef TOUCHUI
SDL_TUI_UpdateAll
();
#endif
SDL_BlitSurface
(
tmpSDLScreen
,
NULL
,
display
,
NULL
);
redraw_frame
();
}
//while done
pMenu_Surface
=
SDL_LoadBMP
(
"images/menu.bmp"
);
pMenu_Surface
=
SDL_LoadBMP
(
"images/menu.bmp"
);
#endif
return
0
;
}
src/gui-sdl/vkbd.h
View file @
01b63a62
...
...
@@ -3,18 +3,18 @@
#define VKBD_X 20
#define VKBD_Y 200
#define VKBD_LEFT
1
#define VKBD_RIGHT
2
#define VKBD_UP
4
#define VKBD_DOWN
8
#define VKBD_BUTTON
16
#define VKBD_BUTTON2
32
#define VKBD_LEFT
1
#define VKBD_RIGHT
2
#define VKBD_UP
4
#define VKBD_DOWN
8
#define VKBD_BUTTON
16
#define VKBD_BUTTON2
32
int
vkbd_init
(
void
);
void
vkbd_quit
(
void
);
void
vkbd_redraw
(
void
);
SDLKey
vkbd_process
(
void
);
void
vkbd_init_button2
(
void
);
int
vkbd_init
(
void
);
void
vkbd_quit
(
void
);
void
vkbd_redraw
(
void
);
SDLKey
vkbd_process
(
void
);
void
vkbd_init_button2
(
void
);
extern
int
vkbd_mode
;
extern
int
vkbd_move
;
...
...
src/gui-sdl/volumecontrol.c
View file @
01b63a62
#include <SDL.h>
#include "volumecontrol.h"
extern
SDL_Surface
*
prSDLScreen
;
static
SDL_Surface
*
ksur
;
//
int show_volumecontrol = 0;
int
show_volumecontrol
=
0
;
int
volumecontrol_init
(
void
)
{
int
volumecontrol_init
(
void
)
{
// don't know if we'll ever need anything here.
return
0
;
}
void
volumecontrol_redraw
(
void
)
{
/*
void
volumecontrol_redraw
(
void
)
{
SDL_Rect
r
;
SDL_Surface
*
surface
;
int
i
;
Uint32 green = SDL_MapRGB(prSDLScreen->format, 250,
250,
0);
Uint32
green
=
SDL_MapRGB
(
prSDLScreen
->
format
,
250
,
250
,
0
);
r
.
x
=
110
;
r
.
y
=
prSDLScreen
->
h
-
30
;
r.w = soundVolume;
//r.w = soundVolume;
r
.
w
=
50
;
r
.
h
=
15
;
// draw the blocks now
SDL_FillRect
(
prSDLScreen
,
&
r
,
green
);
SDL_BlitSurface(surface,NULL,prSDLScreen,&r);
*/
SDL_BlitSurface
(
surface
,
NULL
,
prSDLScreen
,
&
r
);
}
src/gui-sdl/volumecontrol.h
View file @
01b63a62
int
volumecontrol_init
(
void
);
void
volumecontrol_redraw
(
void
);
int
volumecontrol_init
(
void
);
void
volumecontrol_redraw
(
void
);
extern
int
show_volumecontrol
;
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment