Gui Idea


Rolyataylor2

Still Fresh
Joined
May 6, 2006
Messages
4
ok i am getting a gp2x in a bit and i was looking over the information on it.

Well i think the system needs a gui that is simple expandible and allows for complete customization. I program a little but not much and a majority of the program i do is through game maker http:// gamemaker.nl

This seems possible and may be.

i was thinking of a gui that interacts with files like windows does, runs them in a shell, or at least runs through a very minimalistic loop providing information to the programs through commands sent to it.

Also programs whould run using the firmware updates and not through a bs interpreter put forth by the gui.


Example of a good gui that i use (for XBOX) and think is awsome.
http://www.xboxmediacenter.com/
Maybe some of the gui scripts such as the skinning can be used as a basis for the skining engine in this gui.


plugins will provide programs in dll or gpe format that will run as a second process

the gui will provide variables for the programs when the command is sent, such as.

-getvol provides the volume level
-getscreen provides the screen resolution
ect.

programs like emulators will just take over the entire screen and run the game provided. if the command "minimize" is sent to the game, via a keypress or warning message, the game will pause.

-if it was a battery warning the gui will store the memory to the sd card and begin to shutdown the system, after the system is started again the gui will reestablish the memory from the file on the sdcard.

-if it is the user using a keycombo to pull up the gui's menu, the game will be paused and the screen will be taken over by the gui.
A menu will appear with the settigns put forth by the emulator in the ini file.
Code:
{SYS}
type="full"
{controls}
A=keystroke()
B=keystroke()
Up=keystroke()
Left=keystroke()
Down=keystroke()
Right=keystroke()
Start=keystroke()
Select=keystroke()
{video}
Resolution=resolutionpicker()
Bitdepth=menu("8|16|24|32")
Dithering=menu("off|2x|4x|supereagle")
Refresh_Rate=menu("50|60")
Issues=message("Video Issues.")
{Audio}
Audio=boolen
Stereo=boolen
Reverse_Stereo=boolen
Timing=menu("11000hz|22000hz|32000hz|44000hz")
Sync=boolen
Issues=message("Audio Issues.")
{About}
About=message('message command makes a popup with the first argument as the string to display. #Acts as a return. message acts very similler to a text viewer, but not full screen.')
The settings can be changed and at the end of the menu will be a return button, and a exit button. return unpauses the game sending the configuration info the the emulator using a commandline concept, then it pauses the gui and waits for a spacific command from the program or the game system.

{system} type is the command telling what the program is,
full is a full program with no gui but needs complete control of the system

full_gui is a full program with gui and needs the main gui to quit

background is a process that can run in the background and is used just for system maintenence, or other tasks

media_audio is an audio player that needs the gui to provide the audio commands,
-play -stop = control commands
-id3_name -id3_edit_name = id3 commands
-rand -end_file_command = end_file_command whould be like loop, shuffle, stop, whatever

media_video is just like audio except the program will return video information while playing, so the gui can put the video wharever.

all programs should be written to excpect commands in command line format.

of course all the menus and such are defined by the skin, menu positions and images, fonts, sound effects

the main menu and all menus are defined by an ini file
Code:
{system}
screen=320x240
core=100

{main_menu}
music='file.mp3' -rand
//^^ file.mp3 doesnt exist there for it will start the media player, the file will not work the media player will stay open for a few second to check for commands if the -rand wasnt there the media player would quit to save processing time. also the song only plays if bg music in the settings menu is equal to skin default

item01=menu('nes')
item01name='Nes'
item01text=true
item01x=10
item01y=10

item02=menu('settings')
item02name='Settings'
item02text=true
item02effect=fade
item02x=10
item02y=30

item02=menu('Shutdown')
item02name='Shutdown'
item02text=true
item02effect=fade
item02x=250
item02y=200

{nes}
music='nes.mp3'

item01=folder_disp('root\files\nes\')
item01name='Nes'
item01text=true
item01x=50
item01y=30

item02=folder_set()
item02name='Folder Settings'
item02text=false
item02x=10
item02y=30

item03=menu('main_menu')
item03name='Main Menu'
item03text=true
item03x=10
item03y=10
the processor speed is defined in the skin because the skin designer knows what speed the skin needs to be to run.

ok also the music on the menu is a execute file command.

all the menus for the skin can be defined and custom backgrounds and such can be made for each one using another ini file in a folder named after the item#name string. all the menu items can be easiely drawn in a loop with a counting variable.

hmm what else do i want to rant about.

maybe the key combo that brings up the menu in the programs could be used to bring up media controls to stop play and such for the default media player.

of course there should also be a file browser for executing files without the aid of the gui menu, filebrowser in the skin should be the command to open it.

the reason i bring this all up is because of the development status of the gp2x i wanted to mention this possibility to you all.

(im kinda just ranting, got bored and ideas popped in)

EDIT:

OK how about instead of the skin providing the folders and such, have the user create the file structure, in each folder there is an ini file that defines the type of folder it is, such as music, games, nes, snes, whatever. the skin then just skins the folder based on what type it is. html could be used instead of an ini folder, css or something. then have a menu shortcut setup system, such as pick a folder->pick a style->save to system.ini
 
yeah well...

I cant program it, because of the whole directx thing :p . i was just suggesting someone could using the gp2x.
 
Back
Top