summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorpancake <pancake@dazo>2008-12-14 03:05:19 +0100
committerpancake <pancake@dazo>2008-12-14 03:05:19 +0100
commit3a1053b29e5fb8109463259ee9dff3d8f4e4be5b (patch)
tree6814a8b3bb1e4e1c1cb585b48f2a530052e8a5da /src
parentfc3a613276f147c73214f67839e362f08664c7b1 (diff)
download0xFFFF-3a1053b29e5fb8109463259ee9dff3d8f4e4be5b.tar.bz2
* Oops missing up0.4
* Added fixups for make install/deinstall * HAVE_GUI is now enabled by default * New 'stop' button for goxf GUI * Fix lil bug in squeue.c * Initial .desktop icon for freedesktop environments (GNOME)
Diffstat (limited to 'src')
-rw-r--r--src/Makefile2
-rw-r--r--src/flash.c7
-rw-r--r--src/fpid.c12
-rw-r--r--src/gui/gui.gtkaml30
-rw-r--r--src/main.c2
-rw-r--r--src/main.h1
-rw-r--r--src/qmode.c2
7 files changed, 32 insertions, 24 deletions
diff --git a/src/Makefile b/src/Makefile
index e8dbffa..2e8990d 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -5,7 +5,7 @@ OBJ+=squeue/squeue.o
BIN=0xFFFF
#LIBS=`${HAVE_USB} && echo -- '-lusb'`
LIBS=`if [ "${HAVE_USB}" = 1 ]; then echo '-lusb'; fi`
-CFLAGS+=-DVERSION=\"${VERSION}\" -Wall -g -I .
+CFLAGS+=-DVERSION=\"${VERSION}\" -Wall -I .
CFLAGS+=-pedantic -std=c99 -DHAVE_USB=${HAVE_USB}
USBOBJ=../libusb/error.o ../libusb/usb.o ../libusb/descriptors.o
USBOBJ+=../libusb/linux.o ## XXX not portable
diff --git a/src/flash.c b/src/flash.c
index 94c7f29..43c79bb 100644
--- a/src/flash.c
+++ b/src/flash.c
@@ -96,6 +96,13 @@ void flash_image(const char *filename, const char *piece, const char *version)
printf("Piece type: %s\n", piece);
}
+ if (piece != NULL) {
+ if (!strcmp(piece, "fiasco")) {
+ fiasco_flash(filename);
+ return;
+ }
+ }
+
if (version)
vlen = strlen(version)+1;
diff --git a/src/fpid.c b/src/fpid.c
index c2340f8..f36b758 100644
--- a/src/fpid.c
+++ b/src/fpid.c
@@ -48,7 +48,6 @@ const char *fpid_file(const char *filename)
FILE *fd;
char buf[512];
unsigned char *b = (unsigned char *)&buf;
- char *piece = NULL;
long size;
// 2nd : +0x34 = 2NDAPE
@@ -80,10 +79,15 @@ const char *fpid_file(const char *filename)
if (!memcmp(b+0x14, "X-LOADER", 8))
return pieces[PIECE_XLOADER];
else
- if (!memcmp(b+0x0c, "NOLOXldr", 8)) // TODO: this is xloader800, not valid on 770?
+ if (!memcmp(b+0x0c, "NOLOXldr", 8))
return pieces[PIECE_XLOADER];
else
- if (!memcmp(b+0x00, "\x00\x00\xa0\xe1\x00\x00\xa0\xe1", 8))
+ if (!memcmp(b+4,"NOLOXldr",8))
+ // TODO: this is xloader800, not valid on 770?
+ return pieces[PIECE_2ND];
+ else
+ if (!memcmp(b+0x00, "\x00\x00\xa0\xe1\x00\x00\xa0\xe1", 8)
+ || (!memcmp(b, "\x21\x01\x01", 3)))
return pieces[PIECE_KERNEL];
else
// JFFS2 MAGIC
@@ -94,5 +98,5 @@ const char *fpid_file(const char *filename)
return pieces[PIECE_ROOTFS];
}
- return piece;
+ return NULL;
}
diff --git a/src/gui/gui.gtkaml b/src/gui/gui.gtkaml
index 43ba5ca..e5c9e97 100644
--- a/src/gui/gui.gtkaml
+++ b/src/gui/gui.gtkaml
@@ -12,8 +12,8 @@
xmlns:SQueues="SQueues"
xmlns:class="http://gtkaml.org/0.2"
class:name="MainWindow"
- title="0xFFFF GUI"
- delete-event="{OnWindow1DeleteEvent}">
+ title="0xFFFF GUI">
+ <!-- delete-event="{OnWindow1DeleteEvent}" -->
<VBox>
<MenuBar expand="false">
<MenuItem label="_File" with-mnemonic="true">
@@ -32,6 +32,7 @@
<submenu>
<Menu>
<ImageMenuItem stock-id="gtk-connect" activate="{OnConnect}"/>
+ <ImageMenuItem stock-id="gtk-stop" activate="{OnStop}"/>
<ImageMenuItem stock-id="gtk-info" activate="{OnGetInformation}"/>
<ImageMenuItem label="Reset" activate="{OnReset}"/>
</Menu>
@@ -58,6 +59,7 @@
</VBox>
<VBox expand="false" border-width="3" spacing="3">
<Button label="gtk-connect" use-stock="true" expand="false" clicked="{OnConnect}"/>
+ <Button label="gtk-stop" use-stock="true" expand="false" clicked="{OnStop}"/>
<Button label="gtk-info" use-stock="true" expand="false" clicked="{OnGetInformation}"/>
<Label label="" />
<!-- <Button label="Options" use-stock="false" expand="false"/>
@@ -85,11 +87,6 @@
<![CDATA[
-private void OnWindow1DeleteEvent ()
-{
- doCloseApplication ();
-}
-
private void doCloseApplication ()
{
Gtk.main_quit ();
@@ -202,7 +199,6 @@ private void OnFileNewEvent ()
private void OnQuitEvent ()
{
doCloseApplication();
- External.system("sudo pkill 0xFFFF");
// TODO: send message to gracefully kill 0xFFFF
// TODO: handle ^C when flashing
}
@@ -216,19 +212,13 @@ public void list_del()
{
TreeIter iter;
TreeModel model;
- weak string str = "";
TreeSelection sel = tv.get_selection();
if (sel.count_selected_rows() == 1) {
sel.get_selected(out model, out iter);
- //((ListStore)tv.model)).get(ref iter, 2, out str, -1);
-
- //stdout.printf("NAME IS: "+str);
((ListStore)tv.model).remove(iter);
}
-
- //return str;
}
public void add_file(string type, string size, string file)
@@ -304,13 +294,18 @@ private void OnGetInformation()
private void OnConnect()
{
//msg("connect:device");
- External.system("sudo pkill 0xFFFF");
- External.system("sudo ../0xFFFF -Q &");
+ OnStop();
+ External.system("sudo 0xFFFF -Q &");
p->close();
q->close();
p = q = null;
}
+private void OnStop()
+{
+ External.system("sudo pkill 0xFFFF");
+}
+
private bool chk_queues()
{
@@ -348,9 +343,10 @@ static int main (string[] args)
viewer.loadFile (args[1]);
viewer.resize(600,400);
viewer.set_position(WindowPosition.CENTER);
+ viewer.delete_event += (x,y) => { Gtk.main_quit(); };
setup_treeview(viewer.tv);
viewer.show_all ();
- viewer.showMessage("This software is beta and does not guaranties correct functionality", MessageType.WARNING);
+// viewer.showMessage("This software is beta and does not guaranties correct functionality", MessageType.WARNING);
Timeout.add(200, (SourceFunc)(readFunc));
Gtk.main ();
return 0;
diff --git a/src/main.c b/src/main.c
index a75bb57..1c86a1c 100644
--- a/src/main.c
+++ b/src/main.c
@@ -161,7 +161,7 @@ void unpack_fiasco_image(char *file)
openfiasco(file, NULL ,1);
}
-int fiasco_flash(char *file)
+int fiasco_flash(const char *file)
{
char *p;
char version[64];
diff --git a/src/main.h b/src/main.h
index 9196019..b71a9a0 100644
--- a/src/main.h
+++ b/src/main.h
@@ -33,6 +33,7 @@ void eprintf(const char *format, ...);
#if HAVE_USB
#include <usb.h>
+int fiasco_flash(const char *file);
extern struct usb_device *device;
extern struct usb_dev_handle *dev;
int is_valid_device(struct usb_device_descriptor *udd);
diff --git a/src/qmode.c b/src/qmode.c
index 5bfa765..d8c22db 100644
--- a/src/qmode.c
+++ b/src/qmode.c
@@ -43,7 +43,7 @@ void process_message(char *msg)
{
char *str;
char *arg;
- int c;
+ int c=1;
if (msg == NULL)
return;
printf("[x] (%s)\n", msg);