Parameter now specifies the working directory for the launcher

This commit is contained in:
eukos 2016-01-08 14:11:03 +01:00
parent a364003465
commit c2ef1fed75

View file

@ -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();