Parameter now specifies the working directory for the launcher
This commit is contained in:
parent
a364003465
commit
c2ef1fed75
1 changed files with 33 additions and 30 deletions
|
@ -4,7 +4,7 @@
|
|||
|
||||
#include <dirent.h>
|
||||
#include <stdio.h>
|
||||
#include <pwd.h> // pwd for home dir
|
||||
#include <pwd.h>
|
||||
|
||||
typedef unsigned char byte;
|
||||
|
||||
|
@ -111,7 +111,7 @@ void launcher_list_changed(GtkWidget *widget, gpointer label)
|
|||
}
|
||||
}
|
||||
|
||||
void launcher_cachefolders(const char *name, GtkWidget *list)
|
||||
void launcher_cachefolders(GtkWidget *list)
|
||||
{
|
||||
DIR *d;
|
||||
FILE *f;
|
||||
|
@ -119,29 +119,30 @@ void launcher_cachefolders(const char *name, GtkWidget *list)
|
|||
char fname[32];
|
||||
char cFile[80];
|
||||
|
||||
d = opendir(name);
|
||||
d = opendir(".");
|
||||
|
||||
if (d)
|
||||
{
|
||||
while ((dir = readdir(d)) != NULL)
|
||||
{
|
||||
if (dir->d_type == DT_DIR && !(strcmp(dir->d_name, ".") == 0 || strcmp(dir->d_name, "..") == 0))
|
||||
{
|
||||
sprintf(cFile, "%s/%s/info", name, dir->d_name);
|
||||
while ((dir = readdir(d)) != NULL)
|
||||
{
|
||||
if (dir->d_type == DT_DIR && !(strcmp(dir->d_name, ".") == 0 || strcmp(dir->d_name, "..") == 0))
|
||||
{
|
||||
sprintf(cFile, "./%s/info", dir->d_name);
|
||||
|
||||
if(access(cFile, R_OK) != -1 )
|
||||
{
|
||||
f = fopen(cFile, "r");
|
||||
char cTemp[32];
|
||||
fscanf(f, "%35[^\n]", cTemp);
|
||||
fclose(f);
|
||||
printf(" Found %s (%s)\n", cTemp, dir->d_name);
|
||||
sprintf(fname, "%s", dir->d_name);
|
||||
launcher_add_to_list(list, cTemp, fname);
|
||||
iGameCnt++;
|
||||
if(access(cFile, R_OK) != -1 )
|
||||
{
|
||||
f = fopen(cFile, "r");
|
||||
char cTemp[32];
|
||||
fscanf(f, "%35[^\n]", cTemp);
|
||||
fclose(f);
|
||||
printf(" Found %s (%s)\n", cTemp, dir->d_name);
|
||||
sprintf(fname, "%s", dir->d_name);
|
||||
launcher_add_to_list(list, cTemp, fname);
|
||||
iGameCnt++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
closedir(d);
|
||||
}
|
||||
closedir(d);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -150,9 +151,9 @@ void launcher_start()
|
|||
char cmd[128];
|
||||
|
||||
if(strlen(cmd_args) > 0)
|
||||
sprintf(cmd, "./ngunix.x11 -data id1 -game %s -winsize %d %d -mem %d\n", cmd_args, engine_vid_width, engine_vid_height, engine_memory);
|
||||
sprintf(cmd, "./ngunix.x11 -data id1 -game %s -winsize %d %d -mem %d\n", cmd_args, engine_vid_width, engine_vid_height, engine_memory);
|
||||
else
|
||||
sprintf(cmd, "./ngunix.x11 -data id1 -winsize %d %d -mem %d\n", engine_vid_width, engine_vid_height, engine_memory);
|
||||
sprintf(cmd, "./ngunix.x11 -data id1 -winsize %d %d -mem %d\n", engine_vid_width, engine_vid_height, engine_memory);
|
||||
|
||||
printf(cmd);
|
||||
system(cmd);
|
||||
|
@ -161,7 +162,8 @@ void launcher_start()
|
|||
gboolean resize_list(GtkWidget *window, GdkEvent *event, GtkWidget *widget)
|
||||
{
|
||||
gint width, height;
|
||||
gtk_window_get_size(window, &width, &height);
|
||||
iGameCnt = 1;
|
||||
gtk_window_get_size(GTK_WINDOW(window), &width, &height);
|
||||
gtk_widget_set_size_request(widget, 440, height - (118+41));
|
||||
}
|
||||
|
||||
|
@ -169,8 +171,6 @@ int main(int argc, char *argv[])
|
|||
{
|
||||
GtkWidget *window;
|
||||
GtkWidget *ltable1;
|
||||
GtkWidget *ltable2;
|
||||
GtkWidget *ltable3;
|
||||
|
||||
GtkWidget *btnplay;
|
||||
GtkWidget *btnsetting;
|
||||
|
@ -185,8 +185,13 @@ int main(int argc, char *argv[])
|
|||
GtkWidget *listgames;
|
||||
GtkTreeSelection *selection;
|
||||
|
||||
gtk_init(&argc, &argv);
|
||||
if(argv[1])
|
||||
{
|
||||
chdir(argv[1]);
|
||||
printf("[LAUNCHER] Using Directory %s\n", argv[1]);
|
||||
}
|
||||
|
||||
gtk_init(&argc, &argv);
|
||||
launcher_settings_load();
|
||||
|
||||
GdkGeometry hints;
|
||||
|
@ -199,7 +204,6 @@ int main(int argc, char *argv[])
|
|||
gtk_window_set_title(GTK_WINDOW(window), "NGUNIX Launcher");
|
||||
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
|
||||
gtk_container_set_border_width(GTK_CONTAINER(window), 2);
|
||||
//gtk_window_set_resizable(GTK_WINDOW(window), FALSE);
|
||||
gtk_window_set_geometry_hints(GTK_WINDOW(window), window, &hints, (GdkWindowHints)(GDK_HINT_MIN_SIZE | GDK_HINT_MAX_SIZE));
|
||||
gtk_widget_realize(window);
|
||||
|
||||
|
@ -243,9 +247,8 @@ int main(int argc, char *argv[])
|
|||
gtk_signal_connect (GTK_OBJECT (btnquit), "clicked", GTK_SIGNAL_FUNC (gtk_main_quit),NULL);
|
||||
g_signal_connect(G_OBJECT(window), "configure-event", G_CALLBACK(resize_list), (gpointer)listwindow);
|
||||
|
||||
iGameCnt = 1;
|
||||
printf("[LAUNCHER] Scanning directories....\n");
|
||||
launcher_cachefolders(".", listgames);
|
||||
launcher_cachefolders(listgames);
|
||||
printf(".......... %d folder(s) found\n", iGameCnt);
|
||||
|
||||
gtk_main();
|
||||
|
|
Loading…
Reference in a new issue