aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab+samsung@kernel.org>2018-09-04 18:26:35 (GMT)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>2018-09-04 20:05:41 (GMT)
commit657069d8da19cd1f35103bc233dd8e6a44224ceb (patch)
tree7d4a686b4ce825aa745043a49a3106f103eb8c10
parent778a02eb5e31039bb0c23d3eabbab5963f45c90c (diff)
Unify coding style
The coding style of Camorama is a mess. It doesn't consistently follow the same style. Unify it by applying a coding style close to the Linux Kernel. There is an exception, however: here, we'll use indent with 4, and won't use tabs. Rationale for using the Kernel style: 1) The checkpatch.pl script there can do lots of cleanups; 2) There used to be a lindent line (with I still have here), with do several other style cleanups. So, most of the changes can happen on a more automatic way. Still, care should be taken with static constants, as Kernel initializes them with zeros, while userspace don't. Accidentally, I'm more familiar with this style, with makes easier for me to contribute :-D No functional changes. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
-rw-r--r--src/callbacks.c698
-rw-r--r--src/callbacks.h123
-rw-r--r--src/camorama-filter-chain.c108
-rw-r--r--src/camorama-filter-chain.h29
-rw-r--r--src/camorama-filter-laplace.c154
-rw-r--r--src/camorama-filter-mirror.c64
-rw-r--r--src/camorama-filter-reichardt.c397
-rw-r--r--src/camorama-globals.h3
-rw-r--r--src/camorama-stock-items.c71
-rw-r--r--src/camorama-stock-items.h3
-rw-r--r--src/camorama-window.c673
-rw-r--r--src/camorama-window.h2
-rw-r--r--src/fileio.c341
-rw-r--r--src/fileio.h10
-rw-r--r--src/filter.c430
-rw-r--r--src/filter.h62
-rw-r--r--src/font_6x11.h6656
-rw-r--r--src/glib-helpers.h5
-rw-r--r--src/main.c215
-rw-r--r--src/support.c21
-rw-r--r--src/support.h4
-rw-r--r--src/v4l.c1087
-rw-r--r--src/v4l.h121
23 files changed, 5682 insertions, 5595 deletions
diff --git a/src/callbacks.c b/src/callbacks.c
index 38f0457..f855870 100644
--- a/src/callbacks.c
+++ b/src/callbacks.c
@@ -7,6 +7,17 @@
#include <pthread.h>
#include <libv4l2.h>
+#define GPL_LICENSE \
+ "GPL version 2.\n\n" \
+ "This program is free software; you can redistribute it and/or modify it" \
+ " under the terms of the GNU General Public License as published by the " \
+ "Free Software Foundation version 2 of the License.\n\n" \
+ "This program is distributed in the hope that it will be useful, but " \
+ "WITHOUT ANY WARRANTY; without even the implied warranty of " \
+ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU " \
+ "General Public License for more details."
+
+
extern GtkWidget *main_window, *prefswindow;
//extern state func_state;
//extern gint effect_mask;
@@ -15,220 +26,214 @@ extern int frames2;
extern int seconds;
extern GtkWidget *dentry, *entry2, *string_entry;
extern GtkWidget *host_entry, *protocol, *rdir_entry, *filename_entry;
-extern const gchar * const protos[];
+extern const gchar *const protos[];
/*
* pref callbacks
*/
-void ts_func (GtkWidget * rb, cam_t *cam)
+void ts_func(GtkWidget *rb, cam_t *cam)
{
- cam->timestamp = gtk_toggle_button_get_active ((GtkToggleButton *) rb);
- gconf_client_set_bool (cam->gc, KEY4, cam->timestamp, NULL);
+ cam->timestamp = gtk_toggle_button_get_active((GtkToggleButton *) rb);
+ gconf_client_set_bool(cam->gc, KEY4, cam->timestamp, NULL);
}
-void customstring_func (GtkWidget * rb, cam_t *cam)
+void customstring_func(GtkWidget *rb, cam_t *cam)
{
- cam->usestring = gtk_toggle_button_get_active ((GtkToggleButton *) rb);
- gconf_client_set_bool (cam->gc, KEY18, cam->usestring, NULL);
- gtk_widget_set_sensitive (GTK_WIDGET(gtk_builder_get_object
- (cam->xml, "string_entry")), cam->usestring);
+ cam->usestring = gtk_toggle_button_get_active((GtkToggleButton *) rb);
+ gconf_client_set_bool(cam->gc, KEY18, cam->usestring, NULL);
+ gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(cam->xml, "string_entry")),
+ cam->usestring);
}
-void drawdate_func (GtkWidget * rb, cam_t *cam)
+void drawdate_func(GtkWidget *rb, cam_t *cam)
{
- cam->usedate = gtk_toggle_button_get_active ((GtkToggleButton *) rb);
- gconf_client_set_bool (cam->gc, KEY19, cam->usedate, NULL);
+ cam->usedate = gtk_toggle_button_get_active((GtkToggleButton *) rb);
+ gconf_client_set_bool(cam->gc, KEY19, cam->usedate, NULL);
}
-void append_func (GtkWidget * rb, cam_t *cam)
+void append_func(GtkWidget *rb, cam_t *cam)
{
- cam->timefn = gtk_toggle_button_get_active ((GtkToggleButton *) rb);
- gconf_client_set_bool (cam->gc, KEY14, cam->timefn, NULL);
+ cam->timefn = gtk_toggle_button_get_active((GtkToggleButton *) rb);
+ gconf_client_set_bool(cam->gc, KEY14, cam->timefn, NULL);
}
-void rappend_func (GtkWidget * rb, cam_t *cam)
+void rappend_func(GtkWidget *rb, cam_t *cam)
{
- cam->rtimefn = gtk_toggle_button_get_active ((GtkToggleButton *) rb);
- gconf_client_set_bool (cam->gc, KEY15, cam->rtimefn, NULL);
+ cam->rtimefn = gtk_toggle_button_get_active((GtkToggleButton *) rb);
+ gconf_client_set_bool(cam->gc, KEY15, cam->rtimefn, NULL);
}
-void jpg_func (GtkWidget * rb, cam_t *cam)
+void jpg_func(GtkWidget *rb, cam_t *cam)
{
cam->savetype = JPEG;
- gconf_client_set_int (cam->gc, KEY3, cam->savetype, NULL);
+ gconf_client_set_int(cam->gc, KEY3, cam->savetype, NULL);
}
-void png_func (GtkWidget * rb, cam_t *cam)
+void png_func(GtkWidget *rb, cam_t *cam)
{
cam->savetype = PNG;
- gconf_client_set_int (cam->gc, KEY3, cam->savetype, NULL);
+ gconf_client_set_int(cam->gc, KEY3, cam->savetype, NULL);
}
-void ppm_func (GtkWidget * rb, cam_t *cam)
+void ppm_func(GtkWidget *rb, cam_t *cam)
{
cam->savetype = PPM;
- gconf_client_set_int (cam->gc, KEY3, cam->savetype, NULL);
+ gconf_client_set_int(cam->gc, KEY3, cam->savetype, NULL);
}
-void set_sensitive (cam_t *cam)
+void set_sensitive(cam_t *cam)
{
- gtk_widget_set_sensitive (GTK_WIDGET(gtk_builder_get_object(cam->xml, "table4")),
- cam->cap);
-
- gtk_widget_set_sensitive (GTK_WIDGET(gtk_builder_get_object
- (cam->xml, "appendbutton")), cam->cap);
- gtk_widget_set_sensitive (GTK_WIDGET(gtk_builder_get_object(cam->xml, "tsbutton")),
- cam->cap);
- gtk_widget_set_sensitive (GTK_WIDGET(gtk_builder_get_object(cam->xml, "jpgb")),
- cam->cap);
- gtk_widget_set_sensitive (GTK_WIDGET(gtk_builder_get_object(cam->xml, "pngb")),
- cam->cap);
- gtk_widget_set_sensitive (GTK_WIDGET(gtk_builder_get_object(cam->xml, "table5")),
- cam->rcap);
- gtk_widget_set_sensitive (GTK_WIDGET(gtk_builder_get_object(cam->xml, "timecb")),
- cam->rcap);
- gtk_widget_set_sensitive (GTK_WIDGET(gtk_builder_get_object
- (cam->xml, "tsbutton2")), cam->rcap);
- gtk_widget_set_sensitive (GTK_WIDGET(gtk_builder_get_object(cam->xml, "fjpgb")),
- cam->rcap);
- gtk_widget_set_sensitive (GTK_WIDGET(gtk_builder_get_object(cam->xml, "fpngb")),
- cam->rcap);
- gtk_widget_set_sensitive (GTK_WIDGET(gtk_builder_get_object(cam->xml, "hbox20")),
- cam->acap);
-
+ gtk_widget_set_sensitive(GTK_WIDGET
+ (gtk_builder_get_object(cam->xml, "table4")),
+ cam->cap);
+ gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(cam->xml, "appendbutton")),
+ cam->cap);
+ gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object
+ (cam->xml, "tsbutton")), cam->cap);
+ gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(cam->xml, "jpgb")),
+ cam->cap);
+ gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(cam->xml, "pngb")),
+ cam->cap);
+ gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(cam->xml, "table5")),
+ cam->rcap);
+ gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(cam->xml, "timecb")),
+ cam->rcap);
+ gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(cam->xml, "tsbutton2")),
+ cam->rcap);
+ gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(cam->xml, "fjpgb")),
+ cam->rcap);
+ gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(cam->xml, "fpngb")),
+ cam->rcap);
+ gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(cam->xml, "hbox20")),
+ cam->acap);
}
-void cap_func (GtkWidget * rb, cam_t *cam)
+void cap_func(GtkWidget *rb, cam_t *cam)
{
- cam->cap = gtk_toggle_button_get_active ((GtkToggleButton *) rb);
-
- gconf_client_set_bool (cam->gc, KEY12, cam->cap, NULL);
- update_tooltip (cam);
- set_sensitive (cam);
+ cam->cap = gtk_toggle_button_get_active((GtkToggleButton *) rb);
+ gconf_client_set_bool(cam->gc, KEY12, cam->cap, NULL);
+ update_tooltip(cam);
+ set_sensitive(cam);
}
-void rcap_func (GtkWidget * rb, cam_t *cam)
+void rcap_func(GtkWidget *rb, cam_t *cam)
{
- cam->rcap = gtk_toggle_button_get_active ((GtkToggleButton *) rb);
- gconf_client_set_bool (cam->gc, KEY13, cam->rcap, NULL);
- update_tooltip (cam);
- set_sensitive (cam);
+ cam->rcap = gtk_toggle_button_get_active((GtkToggleButton *) rb);
+
+ gconf_client_set_bool(cam->gc, KEY13, cam->rcap, NULL);
+ update_tooltip(cam);
+ set_sensitive(cam);
}
-void acap_func (GtkWidget * rb, cam_t *cam)
+void acap_func(GtkWidget *rb, cam_t *cam)
{
- cam->acap = gtk_toggle_button_get_active ((GtkToggleButton *) rb);
+ cam->acap = gtk_toggle_button_get_active((GtkToggleButton *) rb);
- gconf_client_set_bool (cam->gc, KEY20, cam->acap, NULL);
+ gconf_client_set_bool(cam->gc, KEY20, cam->acap, NULL);
if (cam->acap == TRUE) {
- cam->timeout_id =
- g_timeout_add (cam->timeout_interval,
- (GSourceFunc) timeout_capture_func, cam);
+ cam->timeout_id = g_timeout_add(cam->timeout_interval,
+ (GSourceFunc) timeout_capture_func, cam);
if (cam->debug == TRUE) {
- printf ("add autocap - %d - timeout_interval = %d\n",
- cam->timeout_id, cam->timeout_interval);
+ printf("add autocap - %d - timeout_interval = %d\n",
+ cam->timeout_id, cam->timeout_interval);
}
} else {
if (cam->debug == TRUE) {
- printf ("remove autocap - %d - timeout_interval = %d\n",
- cam->timeout_id, cam->timeout_interval);
+ printf("remove autocap - %d - timeout_interval = %d\n",
+ cam->timeout_id, cam->timeout_interval);
}
- g_source_remove (cam->timeout_id);
+ g_source_remove(cam->timeout_id);
}
- update_tooltip (cam);
- set_sensitive (cam);
+ update_tooltip(cam);
+ set_sensitive(cam);
}
-void interval_change (GtkWidget * sb, cam_t *cam)
+void interval_change(GtkWidget *sb, cam_t *cam)
{
- cam->timeout_interval =
- gtk_spin_button_get_value ((GtkSpinButton *) sb) * 60000;
- gconf_client_set_int (cam->gc, KEY21, cam->timeout_interval, NULL);
+ cam->timeout_interval = gtk_spin_button_get_value((GtkSpinButton *) sb) * 60000;
+ gconf_client_set_int(cam->gc, KEY21, cam->timeout_interval, NULL);
if (cam->acap == TRUE) {
if (cam->debug == TRUE) {
- printf
- ("interval_change; old timeout_id = %d old interval = %d\n",
- cam->timeout_id, cam->timeout_interval);
+ printf("interval_change; old timeout_id = %d old interval = %d\n",
+ cam->timeout_id, cam->timeout_interval);
}
- g_source_remove (cam->timeout_id);
- cam->timeout_id =
- g_timeout_add (cam->timeout_interval,
- (GSourceFunc) timeout_capture_func, cam);
+ g_source_remove(cam->timeout_id);
+ cam->timeout_id = g_timeout_add(cam->timeout_interval,
+ (GSourceFunc) timeout_capture_func, cam);
if (cam->debug == TRUE) {
- printf ("new timeout_id = %d, new interval = %d\n",
- cam->timeout_id, cam->timeout_interval);
+ printf("new timeout_id = %d, new interval = %d\n",
+ cam->timeout_id, cam->timeout_interval);
}
}
- update_tooltip (cam);
+ update_tooltip(cam);
}
-void rjpg_func (GtkWidget * rb, cam_t *cam)
+void rjpg_func(GtkWidget *rb, cam_t *cam)
{
cam->rsavetype = JPEG;
- gconf_client_set_int (cam->gc, KEY10, cam->rsavetype, NULL);
+ gconf_client_set_int(cam->gc, KEY10, cam->rsavetype, NULL);
}
-void rpng_func (GtkWidget * rb, cam_t *cam)
+void rpng_func(GtkWidget *rb, cam_t *cam)
{
cam->rsavetype = PNG;
- gconf_client_set_int (cam->gc, KEY10, cam->rsavetype, NULL);
+ gconf_client_set_int(cam->gc, KEY10, cam->rsavetype, NULL);
}
-void rppm_func (GtkWidget * rb, cam_t *cam)
+void rppm_func(GtkWidget *rb, cam_t *cam)
{
cam->rsavetype = PPM;
- gconf_client_set_int (cam->gc, KEY10, cam->rsavetype, NULL);
+ gconf_client_set_int(cam->gc, KEY10, cam->rsavetype, NULL);
}
-void rts_func (GtkWidget * rb, cam_t *cam)
+void rts_func(GtkWidget *rb, cam_t *cam)
{
- cam->rtimestamp = gtk_toggle_button_get_active ((GtkToggleButton *) rb);
- gconf_client_set_bool (cam->gc, KEY11, cam->rtimestamp, NULL);
+ cam->rtimestamp = gtk_toggle_button_get_active((GtkToggleButton *) rb);
+ gconf_client_set_bool(cam->gc, KEY11, cam->rtimestamp, NULL);
}
-void
-gconf_notify_func (GConfClient * client, guint cnxn_id, GConfEntry * entry,
- char **str)
+void gconf_notify_func(GConfClient *client, guint cnxn_id, GConfEntry *entry,
+ char **str)
{
GConfValue *value;
- value = gconf_entry_get_value (entry);
- *str = g_strdup (gconf_value_get_string (value));
+ value = gconf_entry_get_value(entry);
+ *str = g_strdup(gconf_value_get_string(value));
}
-void
-gconf_notify_func_bool (GConfClient * client, guint cnxn_id,
- GConfEntry * entry, gboolean *val)
+void gconf_notify_func_bool(GConfClient *client, guint cnxn_id,
+ GConfEntry *entry, gboolean *val)
{
GConfValue *value;
- value = gconf_entry_get_value (entry);
- *val = gconf_value_get_bool (value);
+
+ value = gconf_entry_get_value(entry);
+ *val = gconf_value_get_bool(value);
}
-void
-gconf_notify_func_int (GConfClient * client, guint cnxn_id,
- GConfEntry * entry, int *val)
+void gconf_notify_func_int(GConfClient *client, guint cnxn_id,
+ GConfEntry *entry, int *val)
{
GConfValue *value;
- value = gconf_entry_get_value (entry);
- *val = gconf_value_get_int (value);
+
+ value = gconf_entry_get_value(entry);
+ *val = gconf_value_get_int(value);
}
-int delete_event (GtkWidget * widget, gpointer data)
+int delete_event(GtkWidget *widget, gpointer data)
{
- gtk_main_quit ();
+ gtk_main_quit();
return FALSE;
}
@@ -237,15 +242,15 @@ static int apply_remote_pref(cam_t *cam)
int index;
gchar *host, *rdir, *proto, *rfile, *uri;
- if (!strlen (gtk_entry_get_text ((GtkEntry *) host_entry)))
+ if (!strlen(gtk_entry_get_text((GtkEntry *) host_entry)))
return 0;
index = gtk_combo_box_get_active(GTK_COMBO_BOX(protocol));
- host = g_strdup (gtk_entry_get_text ((GtkEntry *) host_entry));
- rdir = g_strdup (gtk_entry_get_text ((GtkEntry *) rdir_entry));
- proto = g_strdup (protos[index]);
- rfile = g_strdup (gtk_entry_get_text ((GtkEntry *) filename_entry));
+ host = g_strdup(gtk_entry_get_text((GtkEntry *) host_entry));
+ rdir = g_strdup(gtk_entry_get_text((GtkEntry *) rdir_entry));
+ proto = g_strdup(protos[index]);
+ rfile = g_strdup(gtk_entry_get_text((GtkEntry *) filename_entry));
if (!host || !proto || !rdir || !rfile) {
if (host)
@@ -301,68 +306,65 @@ static int apply_remote_pref(cam_t *cam)
/*
* apply preferences
*/
-void prefs_func (GtkWidget * okbutton, cam_t *cam)
+void prefs_func(GtkWidget *okbutton, cam_t *cam)
{
if (gtk_file_chooser_get_current_folder((GtkFileChooser *) dentry)) {
- cam->pixdir = g_strdup (gtk_file_chooser_get_current_folder((GtkFileChooser *) dentry));
- gconf_client_set_string (cam->gc, KEY1, cam->pixdir, NULL);
+ cam->pixdir = g_strdup(gtk_file_chooser_get_current_folder((GtkFileChooser *) dentry));
+ gconf_client_set_string(cam->gc, KEY1, cam->pixdir, NULL);
} else {
- if (cam->debug == TRUE) {
- fprintf (stderr, "null directory\ndirectory unchanged.");
- }
+ if (cam->debug == TRUE)
+ fprintf(stderr, "null directory\ndirectory unchanged.");
}
- if (!apply_remote_pref(cam) && cam->debug == TRUE) {
- fprintf (stderr, "remote directory params wrong\ndirectory unchanged.");
- }
+ if (!apply_remote_pref(cam) && cam->debug == TRUE)
+ fprintf(stderr,
+ "remote directory params wrong\ndirectory unchanged.");
/*
- * this is stupid, even if the string is empty, it will not return NULL
+ * this is stupid, even if the string is empty, it will not return NULL
*/
- if (strlen (gtk_entry_get_text ((GtkEntry *) entry2)) > 0) {
- cam->capturefile =
- g_strdup (gtk_entry_get_text ((GtkEntry *) entry2));
- gconf_client_set_string (cam->gc, KEY2, cam->capturefile, NULL);
+ if (strlen(gtk_entry_get_text((GtkEntry *) entry2)) > 0) {
+ cam->capturefile = g_strdup(gtk_entry_get_text((GtkEntry *) entry2));
+ gconf_client_set_string(cam->gc, KEY2, cam->capturefile, NULL);
}
- if (strlen (gtk_entry_get_text ((GtkEntry *) string_entry)) > 0) {
- cam->ts_string =
- g_strdup (gtk_entry_get_text ((GtkEntry *) string_entry));
- gconf_client_set_string (cam->gc, KEY16, cam->ts_string, NULL);
+ if (strlen(gtk_entry_get_text((GtkEntry *) string_entry)) > 0) {
+ cam->ts_string = g_strdup(gtk_entry_get_text((GtkEntry *) string_entry));
+ gconf_client_set_string(cam->gc, KEY16, cam->ts_string, NULL);
}
if (cam->debug == TRUE) {
- fprintf (stderr, "dir now = %s\nfile now = %s\n", cam->pixdir,
- cam->capturefile);
+ fprintf(stderr, "dir now = %s\nfile now = %s\n", cam->pixdir,
+ cam->capturefile);
}
- gtk_widget_hide (prefswindow);
+ gtk_widget_hide(prefswindow);
}
-void on_quit_activate (GtkMenuItem * menuitem, gpointer user_data)
+void on_quit_activate(GtkMenuItem *menuitem, gpointer user_data)
{
- gtk_main_quit ();
+ gtk_main_quit();
}
-void on_preferences1_activate (GtkMenuItem * menuitem, gpointer user_data)
+void on_preferences1_activate(GtkMenuItem *menuitem, gpointer user_data)
{
- gtk_widget_show (prefswindow);
+ gtk_widget_show(prefswindow);
}
-void on_change_size_activate (GtkWidget * widget, cam_t *cam)
+void on_change_size_activate(GtkWidget *widget, cam_t *cam)
{
- gchar const *name;
- gchar *title;
+ gchar const *name;
+ gchar *title;
unsigned int width = 0, height = 0;
- name = gtk_widget_get_name (widget);
+ name = gtk_widget_get_name(widget);
- if (strcmp (name, "small") == 0) {
+ if (strcmp(name, "small") == 0) {
width = cam->min_width;
height = cam->min_height;
- } else if (strcmp (name, "medium") == 0) {
+ } else if (strcmp(name, "medium") == 0) {
width = cam->max_width / 2;
height = cam->max_height / 2;
- } else if (strcmp (name, "large") == 0) {
+ } else if (strcmp(name, "large") == 0) {
width = cam->max_width;
height = cam->max_height;
} else {
@@ -378,120 +380,115 @@ void on_change_size_activate (GtkWidget * widget, cam_t *cam)
cam->width = width;
cam->height = height;
- printf("name = %s\n",name);
+ printf("name = %s\n", name);
if (cam->read == FALSE)
- stop_streaming(cam);
- set_win_info (cam);
+ stop_streaming(cam);
+ set_win_info(cam);
if (cam->read == FALSE)
- start_streaming(cam);
+ start_streaming(cam);
- gtk_widget_set_size_request (GTK_WIDGET(gtk_builder_get_object(cam->xml, "da")),
- cam->width, cam->height);
+ gtk_widget_set_size_request(GTK_WIDGET(gtk_builder_get_object(cam->xml, "da")),
+ cam->width, cam->height);
- gtk_window_resize (GTK_WINDOW
- (GTK_WIDGET(gtk_builder_get_object(cam->xml, "main_window"))), 320,
- 240);
+ gtk_window_resize(GTK_WINDOW(GTK_WIDGET(gtk_builder_get_object(cam->xml, "main_window"))),
+ 320, 240);
- title = g_strdup_printf ("Camorama - %s - %dx%d", cam->name,
- cam->width, cam->height);
- gtk_window_set_title (GTK_WINDOW
- (GTK_WIDGET(gtk_builder_get_object(cam->xml, "main_window"))),
- title);
- g_free (title);
+ title = g_strdup_printf("Camorama - %s - %dx%d",
+ cam->name, cam->width, cam->height);
+ gtk_window_set_title(GTK_WINDOW(GTK_WIDGET(gtk_builder_get_object(cam->xml, "main_window"))),
+ title);
+ g_free(title);
}
-void on_show_adjustments_activate (GtkToggleButton * button, cam_t *cam)
+void on_show_adjustments_activate(GtkToggleButton *button, cam_t *cam)
{
if (gtk_widget_get_visible(GTK_WIDGET(gtk_builder_get_object(cam->xml, "adjustments_table")))) {
- gtk_widget_hide (GTK_WIDGET(gtk_builder_get_object(cam->xml, "adjustments_table")));
- gtk_window_resize (GTK_WINDOW
- (GTK_WIDGET(gtk_builder_get_object
- (cam->xml, "main_window"))), 320, 240);
+ gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(cam->xml, "adjustments_table")));
+ gtk_window_resize(GTK_WINDOW(GTK_WIDGET(gtk_builder_get_object(cam->xml, "main_window"))),
+ 320, 240);
cam->show_adjustments = FALSE;
} else {
- gtk_widget_show (GTK_WIDGET(gtk_builder_get_object(cam->xml, "adjustments_table")));
+ gtk_widget_show(GTK_WIDGET(gtk_builder_get_object(cam->xml, "adjustments_table")));
cam->show_adjustments = TRUE;
}
- gconf_client_set_bool (cam->gc, KEY22, cam->show_adjustments, NULL);
+ gconf_client_set_bool(cam->gc, KEY22, cam->show_adjustments, NULL);
}
-void
-on_show_effects_activate(GtkMenuItem* menuitem, cam_t *cam) {
- GtkWidget* effects = GTK_WIDGET(gtk_builder_get_object(cam->xml, "scrolledwindow_effects"));
- cam->show_effects = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menuitem));
-
- if(!cam->show_effects) {
- gtk_widget_hide(effects);
- gtk_window_resize(GTK_WINDOW(GTK_WIDGET(gtk_builder_get_object(cam->xml, "main_window"))), 320, 240);
- } else {
- gtk_widget_show(effects);
- }
+void on_show_effects_activate(GtkMenuItem *menuitem, cam_t *cam)
+{
+ GtkWidget *effects = GTK_WIDGET(gtk_builder_get_object(cam->xml,
+ "scrolledwindow_effects"));
+ cam->show_effects = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menuitem));
+
+ if (!cam->show_effects) {
+ gtk_widget_hide(effects);
+ gtk_window_resize(GTK_WINDOW(GTK_WIDGET(gtk_builder_get_object(cam->xml, "main_window"))),
+ 320, 240);
+ } else {
+ gtk_widget_show(effects);
+ }
- gconf_client_set_bool(cam->gc, KEY23, cam->show_effects, NULL);
+ gconf_client_set_bool(cam->gc, KEY23, cam->show_effects, NULL);
}
-void on_about_activate (GtkMenuItem * menuitem, cam_t *cam)
+void on_about_activate(GtkMenuItem *menuitem, cam_t *cam)
{
static GtkWidget *about = NULL;
+
const gchar *authors[] = {
- "Greg Jones <greg@fixedgear.org>",
+ "Greg Jones <greg@fixedgear.org>",
"Jens Knutson <tempest@magusbooks.com>",
- NULL
+ NULL
};
const gchar *documenters[] = { NULL };
- GdkPixbuf *logo = gdk_pixbuf_new_from_file (PACKAGE_DATA_DIR
- "/pixmaps/camorama.png", NULL);
- char *translators = _("translator_credits");
+ const gchar *comments = _("View, alter and save images from a webcam");
+ const gchar *translators = _("translator_credits");
+ GdkPixbuf *logo = gdk_pixbuf_new_from_file(PACKAGE_DATA_DIR
+ "/pixmaps/camorama.png",
+ NULL);
- if (!strcmp (translators, "translator_credits"))
+ if (!strcmp(translators, "translator_credits"))
translators = NULL;
if (about != NULL) {
- gtk_window_present (GTK_WINDOW (about));
+ gtk_window_present(GTK_WINDOW(about));
return;
}
- about = g_object_new (GTK_TYPE_ABOUT_DIALOG,
- "name", "Camorama",
- "version", PACKAGE_VERSION,
- "copyright", "Copyright \xc2\xa9 2002 Greg Jones",
- "comments", _("View, alter and save images from a webcam"),
- "authors", authors,
- "documenters", documenters,
- "translator-credits", translators,
- "logo", logo,
- "license", "GPL version 2.\n\n"
- "This program is free software; you can redistribute it and/or modify "
- "it under the terms of the GNU General Public License as published by "
- "the Free Software Foundation version 2 of the License.\n\n"
- "This program is distributed in the hope that it will be useful, "
- "but WITHOUT ANY WARRANTY; without even the implied warranty of "
- "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the "
- "GNU General Public License for more details.",
- "wrap-license", TRUE,
- NULL);
- gtk_window_set_transient_for (GTK_WINDOW (about),
- GTK_WINDOW (GTK_WIDGET(gtk_builder_get_object
- (cam->xml, "main_window"))));
-
- g_object_add_weak_pointer (G_OBJECT (about), (void **) &(about));
- g_object_unref (logo);
- g_signal_connect (about, "response",
- G_CALLBACK (gtk_widget_destroy),
- NULL);
- gtk_widget_show (about);
-}
-
-static void
-apply_filters(cam_t *cam) {
- /* v4l has reverse rgb order from what camora expect so call the color
- filter to fix things up before running the user selected filters */
- camorama_filter_color_filter(NULL, cam->pic_buf, cam->width, cam->height, cam->bpp / 8);
- camorama_filter_chain_apply(cam->filter_chain, cam->pic_buf, cam->width, cam->height, cam->bpp / 8);
-}
-
-#define MULT(d,c,a,t) G_STMT_START { t = c * a + 0x7f; d = ((t >> 8) + t) >> 8; } G_STMT_END
+ about = g_object_new(GTK_TYPE_ABOUT_DIALOG,
+ "name", "Camorama",
+ "version", PACKAGE_VERSION,
+ "copyright", "Copyright \xc2\xa9 2002 Greg Jones",
+ "comments", comments,
+ "authors", authors,
+ "documenters", documenters,
+ "translator-credits", translators,
+ "logo", logo,
+ "license", GPL_LICENSE,
+ "wrap-license", TRUE,
+ NULL);
+ gtk_window_set_transient_for(GTK_WINDOW(about),
+ GTK_WINDOW(GTK_WIDGET(gtk_builder_get_object(cam->xml, "main_window"))));
+
+ g_object_add_weak_pointer(G_OBJECT(about), (void **)&(about));
+ g_object_unref(logo);
+ g_signal_connect(about, "response",
+ G_CALLBACK(gtk_widget_destroy), NULL);
+ gtk_widget_show(about);
+}
+
+static void apply_filters(cam_t *cam)
+{
+ /* v4l has reverse rgb order from what camora expect so call the color
+ filter to fix things up before running the user selected filters */
+ camorama_filter_color_filter(NULL, cam->pic_buf, cam->width,
+ cam->height, cam->bpp / 8);
+ camorama_filter_chain_apply(cam->filter_chain, cam->pic_buf,
+ cam->width, cam->height, cam->bpp / 8);
+}
+
+#define MULT(d, c, a, t) G_STMT_START { t = c * a + 0x7f; d = ((t >> 8) + t) >> 8; } G_STMT_END
/*
* As GTK+2 doesn't have gdk_cairo_surface_create_from_pixbuf, we
@@ -500,72 +497,71 @@ apply_filters(cam_t *cam) {
* With a small backport.
*/
static cairo_surface_t *create_from_pixbuf(const GdkPixbuf *pixbuf,
- GdkWindow *for_window)
+ GdkWindow *for_window)
{
- gint width = gdk_pixbuf_get_width (pixbuf);
- gint height = gdk_pixbuf_get_height (pixbuf);
- guchar *gdk_pixels = gdk_pixbuf_get_pixels (pixbuf);
- int gdk_rowstride = gdk_pixbuf_get_rowstride (pixbuf);
- int n_channels = gdk_pixbuf_get_n_channels (pixbuf);
+ gint width = gdk_pixbuf_get_width(pixbuf);
+ gint height = gdk_pixbuf_get_height(pixbuf);
+ guchar *gdk_pixels = gdk_pixbuf_get_pixels(pixbuf);
+ int gdk_rowstride = gdk_pixbuf_get_rowstride(pixbuf);
+ int n_channels = gdk_pixbuf_get_n_channels(pixbuf);
int cairo_stride;
guchar *cairo_pixels;
cairo_surface_t *surface;
int j;
surface = cairo_image_surface_create(CAIRO_FORMAT_RGB24,
- width, height);
- cairo_stride = cairo_image_surface_get_stride (surface);
- cairo_pixels = cairo_image_surface_get_data (surface);
+ width, height);
+ cairo_stride = cairo_image_surface_get_stride(surface);
+ cairo_pixels = cairo_image_surface_get_data(surface);
- for (j = height; j; j--) {
- guchar *p = gdk_pixels;
- guchar *q = cairo_pixels;
+ for (j = height; j; j--) {
+ guchar *p = gdk_pixels;
+ guchar *q = cairo_pixels;
- if (n_channels == 3) {
- guchar *end = p + 3 * width;
+ if (n_channels == 3) {
+ guchar *end = p + 3 * width;
- while (p < end) {
+ while (p < end) {
#if G_BYTE_ORDER == G_LITTLE_ENDIAN
- q[0] = p[2];
- q[1] = p[1];
- q[2] = p[0];
+ q[0] = p[2];
+ q[1] = p[1];
+ q[2] = p[0];
#else
- q[1] = p[0];
- q[2] = p[1];
- q[3] = p[2];
+ q[1] = p[0];
+ q[2] = p[1];
+ q[3] = p[2];
#endif
- p += 3;
- q += 4;
- }
- } else {
- guchar *end = p + 4 * width;
- guint t1,t2,t3;
-
- while (p < end) {
+ p += 3;
+ q += 4;
+ }
+ } else {
+ guchar *end = p + 4 * width;
+ guint t1, t2, t3;
+
+ while (p < end) {
#if G_BYTE_ORDER == G_LITTLE_ENDIAN
- MULT(q[0], p[2], p[3], t1);
- MULT(q[1], p[1], p[3], t2);
- MULT(q[2], p[0], p[3], t3);
- q[3] = p[3];
+ MULT(q[0], p[2], p[3], t1);
+ MULT(q[1], p[1], p[3], t2);
+ MULT(q[2], p[0], p[3], t3);
+ q[3] = p[3];
#else
- q[0] = p[3];
- MULT(q[1], p[0], p[3], t1);
- MULT(q[2], p[1], p[3], t2);
- MULT(q[3], p[2], p[3], t3);
+ q[0] = p[3];
+ MULT(q[1], p[0], p[3], t1);
+ MULT(q[2], p[1], p[3], t2);
+ MULT(q[3], p[2], p[3], t3);
#endif
- p += 4;
- q += 4;
+ p += 4;
+ q += 4;
}
-
#undef MULT
}
- gdk_pixels += gdk_rowstride;
- cairo_pixels += cairo_stride;
+ gdk_pixels += gdk_rowstride;
+ cairo_pixels += cairo_stride;
}
- cairo_surface_mark_dirty (surface);
+ cairo_surface_mark_dirty(surface);
return surface;
}
@@ -577,6 +573,7 @@ static void show_buffer(cam_t *cam)
cairo_surface_t *surface;
cairo_t *cr;
unsigned char *pic_buf = cam->pic_buf;
+
const GdkRectangle rect = {
.x = 0, .y = 0,
.width = cam->width, .height = cam->height
@@ -586,7 +583,8 @@ static void show_buffer(cam_t *cam)
* refer the frame
*/
if (cam->pixformat == V4L2_PIX_FMT_YUV420) {
- yuv420p_to_rgb (cam->pic_buf, cam->tmp, cam->width, cam->height, cam->bpp / 8);
+ yuv420p_to_rgb(cam->pic_buf, cam->tmp, cam->width, cam->height,
+ cam->bpp / 8);
pic_buf = cam->tmp;
}
@@ -596,8 +594,7 @@ static void show_buffer(cam_t *cam)
pb = gdk_pixbuf_new_from_data(pic_buf, GDK_COLORSPACE_RGB, FALSE, 8,
cam->width, cam->height,
- (cam->width * cam->bpp / 8), NULL,
- NULL);
+ (cam->width * cam->bpp / 8), NULL, NULL);
widget = GTK_WIDGET(gtk_builder_get_object(cam->xml, "da"));
window = gtk_widget_get_window(widget);
@@ -616,150 +613,147 @@ static void show_buffer(cam_t *cam)
}
/*
- * get image from cam - does all the work ;)
- */
-gint
-read_timeout_func(cam_t *cam) {
- v4l2_read (cam->dev, cam->pic_buf,
- (cam->width * cam->height * cam->bpp / 8));
+* get image from cam - does all the work ;)
+*/
+gint read_timeout_func(cam_t *cam)
+{
+ v4l2_read(cam->dev, cam->pic_buf,
+ (cam->width * cam->height * cam->bpp / 8));
show_buffer(cam);
return TRUE;
}
-gint timeout_func (cam_t *cam)
+gint timeout_func(cam_t *cam)
{
- capture_buffers(cam, cam->pic_buf, cam->width * cam->height * cam->bytesperline);
+ capture_buffers(cam, cam->pic_buf,
+ cam->width * cam->height * cam->bytesperline);
show_buffer(cam);
return TRUE;
}
-gint fps (GtkWidget * sb)
+gint fps(GtkWidget *sb)
{
gchar *stat;
- guint cont = gtk_statusbar_get_context_id (GTK_STATUSBAR(sb), "context");
+ guint cont = gtk_statusbar_get_context_id(GTK_STATUSBAR(sb), "context");
seconds++;
- stat = g_strdup_printf (_("%.2f fps - current %.2f fps - average"),
- frames / 2., frames2 / (seconds * 2.));
+ stat = g_strdup_printf(_("%.2f fps - current %.2f fps - average"),
+ frames / 2., frames2 / (seconds * 2.));
frames = 0;
- gtk_statusbar_push (GTK_STATUSBAR(sb), cont, stat);
- g_free (stat);
+ gtk_statusbar_push(GTK_STATUSBAR(sb), cont, stat);
+ g_free(stat);
return 1;
}
-void on_status_show (GtkWidget * sb, cam_t *cam)
+void on_status_show(GtkWidget *sb, cam_t *cam)
{
cam->status = sb;
}
-void capture_func (GtkWidget * widget, cam_t *cam)
+void capture_func(GtkWidget *widget, cam_t *cam)
{
- if (cam->debug == TRUE) {
- printf
- ("capture_func\nx = %d, y = %d, depth = %d, realloc size = %d\n",
- cam->width, cam->height, cam->bpp, (cam->width * cam->height * cam->bpp / 8));
- }
+ if (cam->debug == TRUE)
+ printf("capture_func\nx = %d, y = %d, depth = %d, realloc size = %d\n",
+ cam->width, cam->height, cam->bpp,
+ (cam->width * cam->height * cam->bpp / 8));
- memcpy (cam->tmp, cam->pic_buf, cam->width * cam->height * cam->bpp / 8);
+ memcpy(cam->tmp, cam->pic_buf,
+ cam->width * cam->height * cam->bpp / 8);
- if (cam->rcap == TRUE) {
- remote_save (cam);
- }
- if (cam->cap == TRUE) {
- local_save (cam);
- }
+ if (cam->rcap == TRUE)
+ remote_save(cam);
+ if (cam->cap == TRUE)
+ local_save(cam);
}
-gint timeout_capture_func (cam_t *cam)
+gint timeout_capture_func(cam_t *cam)
{
- /* GdkRectangle rect;
- * rect->x = 0; rect->y = 0;
- * rect->width = cam->width; rect->height = cam->height; */
-
/* need to return true, or the timeout will be destroyed - don't forget! :) */
if (cam->hidden == TRUE) {
- /* call timeout_func to get a new picture. stupid, but it works.
- * also need to add this to capture_func
- * maybe add a "window_state_event" handler to do the same when window is iconified */
-
- pt2Function (cam);
- pt2Function (cam);
- pt2Function (cam);
- pt2Function (cam);
+ /*
+ * call timeout_func to get a new picture. stupid, but it works.
+ * also need to add this to capture_func
+ * maybe add a "window_state_event" handler to do the same when
+ * window is iconified
+ */
+ pt2Function(cam);
+ pt2Function(cam);
+ pt2Function(cam);
+ pt2Function(cam);
}
- memcpy (cam->tmp, cam->pic_buf, cam->width * cam->height * cam->bpp / 8);
+ memcpy(cam->tmp, cam->pic_buf,
+ cam->width * cam->height * cam->bpp / 8);
+
+ if (cam->cap == TRUE)
+ local_save(cam);
+
+ if (cam->rcap == TRUE)
+ remote_save(cam);
- if (cam->cap == TRUE) {
- local_save (cam);
- }
- if (cam->rcap == TRUE) {
- remote_save (cam);
- }
return 1;
}
-void contrast_change (GtkHScale * sc1, cam_t *cam)
+void contrast_change(GtkHScale *sc1, cam_t *cam)
{
- cam->contrast = 256 * (int) gtk_range_get_value ((GtkRange *) sc1);
+ cam->contrast = 256 * (int)gtk_range_get_value((GtkRange *) sc1);
v4l2_set_control(cam->dev, V4L2_CID_CONTRAST, cam->contrast);
}
-void brightness_change (GtkHScale * sc1, cam_t *cam)
+void brightness_change(GtkHScale *sc1, cam_t *cam)
{
- cam->brightness = 256 * (int) gtk_range_get_value ((GtkRange *) sc1);
+ cam->brightness = 256 * (int)gtk_range_get_value((GtkRange *) sc1);
v4l2_set_control(cam->dev, V4L2_CID_BRIGHTNESS, cam->brightness);
}
-void colour_change (GtkHScale * sc1, cam_t *cam)
+void colour_change(GtkHScale *sc1, cam_t *cam)
{
- cam->colour = 256 * (int) gtk_range_get_value ((GtkRange *) sc1);
+ cam->colour = 256 * (int)gtk_range_get_value((GtkRange *) sc1);
v4l2_set_control(cam->dev, V4L2_CID_SATURATION, cam->colour);
}
-void hue_change (GtkHScale * sc1, cam_t *cam)
+void hue_change(GtkHScale *sc1, cam_t *cam)
{
- cam->hue = 256 * (int) gtk_range_get_value ((GtkRange *) sc1);
+ cam->hue = 256 * (int)gtk_range_get_value((GtkRange *) sc1);
v4l2_set_control(cam->dev, V4L2_CID_HUE, cam->hue);
}
-void wb_change (GtkHScale * sc1, cam_t *cam)
+void wb_change(GtkHScale *sc1, cam_t *cam)
{
- cam->whiteness = 256 * (int) gtk_range_get_value ((GtkRange *) sc1);
+ cam->whiteness = 256 * (int)gtk_range_get_value((GtkRange *) sc1);
v4l2_set_control(cam->dev, V4L2_CID_WHITENESS, cam->whiteness);
}
-void update_tooltip (cam_t *cam)
+void update_tooltip(cam_t *cam)
{
gchar *tooltip_text;
- if (cam->debug == TRUE) {
- printf ("update_tooltip called\n");
- }
+ if (cam->debug == TRUE)
+ printf("update_tooltip called\n");
+
if (cam->acap == TRUE) {
- tooltip_text =
- g_strdup_printf
- (_("Local Capture: %d\nRemote Capture: %d\nCapture Interval: %d"),
- cam->cap, cam->rcap, cam->timeout_interval / 60000);
- if (cam->debug == TRUE) {
- printf ("tip - acap on\n");
- }
+ tooltip_text = g_strdup_printf(_("Local Capture: %d\n"
+ "Remote Capture: %d\n"
+ "Capture Interval: %d"),
+ cam->cap, cam->rcap,
+ cam->timeout_interval / 60000);
+ if (cam->debug == TRUE)
+ printf("tip - acap on\n");
} else {
- if (cam->debug == TRUE) {
- printf ("tip - acap off\n");
- }
- tooltip_text = g_strdup_printf (_("Automatic Capture Disabled"));
+ if (cam->debug == TRUE)
+ printf("tip - acap off\n");
+ tooltip_text = g_strdup_printf(_("Automatic Capture Disabled"));
}
gtk_status_icon_set_tooltip_text(cam->tray_icon, tooltip_text);
- g_free (tooltip_text);
+ g_free(tooltip_text);
}
diff --git a/src/callbacks.h b/src/callbacks.h
index 83efcc8..c0c2e1b 100644
--- a/src/callbacks.h
+++ b/src/callbacks.h
@@ -7,67 +7,68 @@
G_BEGIN_DECLS
-void on_change_size_activate (GtkWidget * widget, cam_t *cam);
-void on_quit_activate (GtkMenuItem * menuitem, gpointer user_data);
-void gconf_notify_func (GConfClient * client, guint cnxn_id,
- GConfEntry * entry, char **);
-void gconf_notify_func_bool (GConfClient * client, guint cnxn_id,
- GConfEntry * entry, gboolean *val);
-void gconf_notify_func_int (GConfClient * client, guint cnxn_id,
- GConfEntry * entry, int *val);
-int delete_event (GtkWidget *, gpointer data);
-void cap_func (GtkWidget *, cam_t *);
-void rcap_func (GtkWidget *, cam_t *);
-void acap_func (GtkWidget *, cam_t *);
-void set_sensitive (cam_t *);
-void tt_enable_func (GtkWidget *, cam_t *);
-void interval_change (GtkWidget *, cam_t *);
-void ts_func (GtkWidget *, cam_t *);
-void customstring_func (GtkWidget *, cam_t *);
-void drawdate_func (GtkWidget *, cam_t *);
-void append_func (GtkWidget *, cam_t *);
-void rappend_func (GtkWidget *, cam_t *);
-void jpg_func (GtkWidget *, cam_t *);
-void png_func (GtkWidget *, cam_t *);
-void ppm_func (GtkWidget *, cam_t *);
-void rts_func (GtkWidget *, cam_t *);
-void rjpg_func (GtkWidget *, cam_t *);
-void rpng_func (GtkWidget *, cam_t *);
-gint (*pt2Function) (cam_t *);
-void rppm_func (GtkWidget *, cam_t *);
-void on_preferences1_activate (GtkMenuItem * menuitem, gpointer user_data);
-void on_about_activate (GtkMenuItem * menuitem, cam_t *cam);
-void on_show_adjustments_activate (GtkToggleButton * button, cam_t *);
-void on_show_effects_activate (GtkMenuItem * menuitem, cam_t *);
-void prefs_func (GtkWidget *, cam_t *);
-void capture_func2 (GtkWidget *, cam_t *);
-void capture_func (GtkWidget *, cam_t *);
-gint timeout_capture_func (cam_t *);
-gint fps (GtkWidget *);
-gint timeout_func (cam_t *);
-gint read_timeout_func (cam_t *);
-void edge_func1 (GtkToggleButton *, gpointer);
-void sobel_func (GtkToggleButton *, gpointer);
-void fix_colour_func (GtkToggleButton *, char *);
-void threshold_func1 (GtkToggleButton *, gpointer);
-void threshold_ch_func (GtkToggleButton *, gpointer);
-void edge_func3 (GtkToggleButton *, gpointer);
-void mirror_func (GtkToggleButton *, gpointer);
-void reichardt_func (GtkToggleButton *, gpointer);
-void colour_func (GtkToggleButton *, gpointer);
-void smooth_func (GtkToggleButton *, gpointer);
-void negative_func (GtkToggleButton *, gpointer);
-void on_scale1_drag_data_received (GtkHScale *, cam_t *);
-void on_status_show (GtkWidget *, cam_t *);
-void contrast_change (GtkHScale *, cam_t *);
-void brightness_change (GtkHScale *, cam_t *);
-void colour_change (GtkHScale *, cam_t *);
-void hue_change (GtkHScale *, cam_t *);
-void wb_change (GtkHScale *, cam_t *);
-gboolean on_drawingarea_expose_event (GtkWidget *, GdkEventExpose *, cam_t *);
-void update_tooltip (cam_t *cam);
+void on_change_size_activate(GtkWidget * widget, cam_t *cam);
+void on_quit_activate(GtkMenuItem *menuitem, gpointer user_data);
+void gconf_notify_func(GConfClient *client, guint cnxn_id,
+ GConfEntry *entry, char **);
+void gconf_notify_func_bool(GConfClient *client, guint cnxn_id,
+ GConfEntry *entry, gboolean *val);
+void gconf_notify_func_int(GConfClient *client, guint cnxn_id,
+ GConfEntry *entry, int *val);
+int delete_event(GtkWidget *, gpointer data);
+void cap_func(GtkWidget *, cam_t *);
+void rcap_func(GtkWidget *, cam_t *);
+void acap_func(GtkWidget *, cam_t *);
+void set_sensitive(cam_t *);
+void tt_enable_func(GtkWidget *, cam_t *);
+void interval_change(GtkWidget *, cam_t *);
+void ts_func(GtkWidget *, cam_t *);
+void customstring_func(GtkWidget *, cam_t *);
+void drawdate_func(GtkWidget *, cam_t *);
+void append_func(GtkWidget *, cam_t *);
+void rappend_func(GtkWidget *, cam_t *);
+void jpg_func(GtkWidget *, cam_t *);
+void png_func(GtkWidget *, cam_t *);
+void ppm_func(GtkWidget *, cam_t *);
+void rts_func(GtkWidget *, cam_t *);
+void rjpg_func(GtkWidget *, cam_t *);
+void rpng_func(GtkWidget *, cam_t *);
-G_END_DECLS
+gint(*pt2Function) (cam_t *);
+void rppm_func(GtkWidget *, cam_t *);
+void on_preferences1_activate(GtkMenuItem *menuitem, gpointer user_data);
+void on_about_activate(GtkMenuItem *menuitem, cam_t *cam);
+void on_show_adjustments_activate(GtkToggleButton *button, cam_t *);
+void on_show_effects_activate(GtkMenuItem *menuitem, cam_t *);
+void prefs_func(GtkWidget *, cam_t *);
+void capture_func2(GtkWidget *, cam_t *);
+void capture_func(GtkWidget *, cam_t *);
+gint timeout_capture_func(cam_t *);
+gint fps(GtkWidget *);
+gint timeout_func(cam_t *);
+gint read_timeout_func(cam_t *);
+void edge_func1(GtkToggleButton *, gpointer);
+void sobel_func(GtkToggleButton *, gpointer);
+void fix_colour_func(GtkToggleButton *, char *);
+void threshold_func1(GtkToggleButton *, gpointer);
+void threshold_ch_func(GtkToggleButton *, gpointer);
+void edge_func3(GtkToggleButton *, gpointer);
+void mirror_func(GtkToggleButton *, gpointer);
+void reichardt_func(GtkToggleButton *, gpointer);
+void colour_func(GtkToggleButton *, gpointer);
+void smooth_func(GtkToggleButton *, gpointer);
+void negative_func(GtkToggleButton *, gpointer);
+void on_scale1_drag_data_received(GtkHScale *, cam_t *);
+void on_status_show(GtkWidget *, cam_t *);
+void contrast_change(GtkHScale *, cam_t *);
+void brightness_change(GtkHScale *, cam_t *);
+void colour_change(GtkHScale *, cam_t *);
+void hue_change(GtkHScale *, cam_t *);
+void wb_change(GtkHScale *, cam_t *);
+gboolean on_drawingarea_expose_event(GtkWidget *, GdkEventExpose *,
+ cam_t *);
+void update_tooltip(cam_t *cam);
-#endif /* !CAMORAMA_CALLBACKS_H */
+G_END_DECLS
+#endif /* !CAMORAMA_CALLBACKS_H */
diff --git a/src/camorama-filter-chain.c b/src/camorama-filter-chain.c
index f54726a..92c6f03 100644
--- a/src/camorama-filter-chain.c
+++ b/src/camorama-filter-chain.c
@@ -27,64 +27,78 @@
#include "filter.h"
struct CamoramaImage {
- guchar* buf;
- gint width;
- gint height;
- gint depth;
+ guchar *buf;
+ gint width;
+ gint height;
+ gint depth;
};
-CamoramaFilterChain*
-camorama_filter_chain_new(void) {
- return g_object_new(CAMORAMA_TYPE_FILTER_CHAIN, NULL);
+CamoramaFilterChain *camorama_filter_chain_new(void)
+{
+ return g_object_new(CAMORAMA_TYPE_FILTER_CHAIN, NULL);
}
-void
-camorama_filter_chain_append(CamoramaFilterChain* self, GType filter_type) {
- GtkTreeIter iter;
- GtkListStore* store;
- CamoramaFilter* filter;
- g_return_if_fail(g_type_is_a(filter_type, CAMORAMA_TYPE_FILTER));
-
- store = GTK_LIST_STORE(self);
- gtk_list_store_append(store, &iter);
- filter = g_object_new(filter_type, NULL);
- gtk_list_store_set(store, &iter,
- CAMORAMA_FILTER_CHAIN_COL_FILTER, filter,
- CAMORAMA_FILTER_CHAIN_COL_NAME, camorama_filter_get_name(filter),
- -1);
- g_object_unref(filter);
+void camorama_filter_chain_append(CamoramaFilterChain *self,
+ GType filter_type)
+{
+ GtkTreeIter iter;
+ GtkListStore *store;
+ CamoramaFilter *filter;
+
+ g_return_if_fail(g_type_is_a(filter_type, CAMORAMA_TYPE_FILTER));
+
+ store = GTK_LIST_STORE(self);
+ gtk_list_store_append(store, &iter);
+ filter = g_object_new(filter_type, NULL);
+ gtk_list_store_set(store, &iter,
+ CAMORAMA_FILTER_CHAIN_COL_FILTER, filter,
+ CAMORAMA_FILTER_CHAIN_COL_NAME,
+ camorama_filter_get_name(filter), -1);
+ g_object_unref(filter);
}
-static gboolean
-camorama_filter_chain_apply_filter(GtkTreeModel* model, GtkTreePath* path, GtkTreeIter* iter, gpointer user_data) {
- struct CamoramaImage* img = user_data;
- CamoramaFilter* filter = NULL;
- gtk_tree_model_get(model, iter,
- CAMORAMA_FILTER_CHAIN_COL_FILTER, &filter,
- -1);
- camorama_filter_apply(filter, img->buf, img->width, img->height, img->depth);
+static gboolean camorama_filter_chain_apply_filter(GtkTreeModel *model,
+ GtkTreePath *path,
+ GtkTreeIter *iter,
+ gpointer user_data)
+{
+ struct CamoramaImage *img = user_data;
+ CamoramaFilter *filter = NULL;
- return FALSE;
+ gtk_tree_model_get(model, iter,
+ CAMORAMA_FILTER_CHAIN_COL_FILTER, &filter, -1);
+ camorama_filter_apply(filter, img->buf, img->width, img->height,
+ img->depth);
+
+ return FALSE;
}
-void
-camorama_filter_chain_apply(CamoramaFilterChain* self, guchar* image, gint width, gint height, gint depth) {
- struct CamoramaImage img = {image, width, height, depth};
-
- gtk_tree_model_foreach(GTK_TREE_MODEL(self), camorama_filter_chain_apply_filter, &img);
+void camorama_filter_chain_apply(CamoramaFilterChain *self,
+ guchar *image, gint width, gint height,
+ gint depth)
+{
+ struct CamoramaImage img = { image, width, height, depth };
+
+ gtk_tree_model_foreach(GTK_TREE_MODEL(self),
+ camorama_filter_chain_apply_filter, &img);
}
/* GType stuff */
-G_DEFINE_TYPE(CamoramaFilterChain, camorama_filter_chain, GTK_TYPE_LIST_STORE);
-
-static void
-camorama_filter_chain_init(CamoramaFilterChain* self) {
- GType column_types[CAMORAMA_FILTER_CHAIN_N_COLUMNS];
- column_types[CAMORAMA_FILTER_CHAIN_COL_NAME] = G_TYPE_STRING;
- column_types[CAMORAMA_FILTER_CHAIN_COL_FILTER] = G_TYPE_OBJECT;
- gtk_list_store_set_column_types(GTK_LIST_STORE(self), CAMORAMA_FILTER_CHAIN_N_COLUMNS, column_types);
-}
+G_DEFINE_TYPE(CamoramaFilterChain, camorama_filter_chain,
+ GTK_TYPE_LIST_STORE);
+
+static void camorama_filter_chain_init(CamoramaFilterChain *self)
+{
+ GType column_types[CAMORAMA_FILTER_CHAIN_N_COLUMNS];
-static void
-camorama_filter_chain_class_init(CamoramaFilterChainClass* self) {}
+ column_types[CAMORAMA_FILTER_CHAIN_COL_NAME] = G_TYPE_STRING;
+ column_types[CAMORAMA_FILTER_CHAIN_COL_FILTER] = G_TYPE_OBJECT;
+ gtk_list_store_set_column_types(GTK_LIST_STORE(self),
+ CAMORAMA_FILTER_CHAIN_N_COLUMNS,
+ column_types);
+}
+static void camorama_filter_chain_class_init(CamoramaFilterChainClass *
+ self)
+{
+}
diff --git a/src/camorama-filter-chain.h b/src/camorama-filter-chain.h
index 4e7519e..ba5b40c 100644
--- a/src/camorama-filter-chain.h
+++ b/src/camorama-filter-chain.h
@@ -26,36 +26,33 @@
G_BEGIN_DECLS
-typedef struct _CamoramaFilterChain CamoramaFilterChain;
+typedef struct _CamoramaFilterChain CamoramaFilterChain;
typedef struct _CamoramaFilterChainClass CamoramaFilterChainClass;
#define CAMORAMA_TYPE_FILTER_CHAIN (camorama_filter_chain_get_type())
GType camorama_filter_chain_get_type(void);
-CamoramaFilterChain* camorama_filter_chain_new (void);
-void camorama_filter_chain_append(CamoramaFilterChain* self,
- GType filter_type);
-void camorama_filter_chain_apply (CamoramaFilterChain* self,
- guchar* image,
- gint width,
- gint height,
- gint depth);
+CamoramaFilterChain *camorama_filter_chain_new(void);
+void camorama_filter_chain_append(CamoramaFilterChain *self,
+ GType filter_type);
+void camorama_filter_chain_apply(CamoramaFilterChain *self,
+ guchar *image,
+ gint width, gint height, gint depth);
struct _CamoramaFilterChain {
- GtkListStore base_instance;
+ GtkListStore base_instance;
};
struct _CamoramaFilterChainClass {
- GtkListStoreClass base_class;
+ GtkListStoreClass base_class;
};
enum {
- CAMORAMA_FILTER_CHAIN_COL_NAME,
- CAMORAMA_FILTER_CHAIN_COL_FILTER,
- CAMORAMA_FILTER_CHAIN_N_COLUMNS
+ CAMORAMA_FILTER_CHAIN_COL_NAME,
+ CAMORAMA_FILTER_CHAIN_COL_FILTER,
+ CAMORAMA_FILTER_CHAIN_N_COLUMNS
};
G_END_DECLS
-
-#endif /* !CAMORAMA_FILTER_CHAIN_H */
+#endif /* !CAMORAMA_FILTER_CHAIN_H */
diff --git a/src/camorama-filter-laplace.c b/src/camorama-filter-laplace.c
index 8703595..04c47a3 100644
--- a/src/camorama-filter-laplace.c
+++ b/src/camorama-filter-laplace.c
@@ -32,98 +32,104 @@
#include <glib/gi18n.h>
/* GType stuff for CamoramaFilterLaplace */
-typedef struct _CamoramaFilter CamoramaFilterLaplace;
+typedef struct _CamoramaFilter CamoramaFilterLaplace;
typedef struct _CamoramaFilterClass CamoramaFilterLaplaceClass;
-G_DEFINE_TYPE(CamoramaFilterLaplace, camorama_filter_laplace, CAMORAMA_TYPE_FILTER);
+G_DEFINE_TYPE(CamoramaFilterLaplace, camorama_filter_laplace,
+ CAMORAMA_TYPE_FILTER);
-static void
-camorama_filter_laplace_init(CamoramaFilterLaplace* self) {}
+static void camorama_filter_laplace_init(CamoramaFilterLaplace *self)
+{
+}
-static void
-camorama_filter_laplace_filter(void *filter, guchar *image, int width, int height, int depth) {
+static void camorama_filter_laplace_filter(void *filter, guchar *image,
+ int width, int height,
+ int depth)
+{
int x, y;
unsigned char *image2;
-
- image2 = (unsigned char *) malloc (sizeof (unsigned char) * width * height * depth);
- memcpy (image2, image, width * height * depth);
+
+ image2 = malloc(sizeof(unsigned char) * width * height * depth);
+ memcpy(image2, image, width * height * depth);
y = 0;
// FIXME: the fist pixel
- for(x = 1; x < width - 1; x++) {
- int offsets[6] = {
- y * width * depth + x * depth - depth,
- y * width * depth + x * depth,
- y * width * depth + x * depth + depth,
- (y + 1) * width * depth + x * depth - depth,
- (y + 1) * width * depth + x * depth,
- (y + 1) * width * depth + x * depth + depth,
- };
- int chan, max = 0;
- for(chan = 0; chan < depth; chan++) {
- int new_val = image[offsets[1] + chan] * 6 -
- image2[offsets[0] + chan] -
- image2[offsets[2] + chan] -
- image2[offsets[3] + chan] -
- image2[offsets[4] + chan] -
- image2[offsets[5] + chan];
- if(new_val < 0) {
- new_val = 0;
- }
- max = MAX(max, new_val);
- }
- for(chan = 0; chan < depth; chan++) {
- image[offsets[1] + chan] = max;
- }
+ for (x = 1; x < width - 1; x++) {
+ int offsets[6] = {
+ y * width * depth + x * depth - depth,
+ y * width * depth + x * depth,
+ y * width * depth + x * depth + depth,
+ (y + 1) * width * depth + x * depth - depth,
+ (y + 1) * width * depth + x * depth,
+ (y + 1) * width * depth + x * depth + depth,
+ };
+ int chan, max = 0;
+
+ for (chan = 0; chan < depth; chan++) {
+ int new_val = image[offsets[1] + chan] * 6 -
+ image2[offsets[0] + chan] -
+ image2[offsets[2] + chan] -
+ image2[offsets[3] + chan] -
+ image2[offsets[4] + chan] -
+ image2[offsets[5] + chan];
+
+ if (new_val < 0)
+ new_val = 0;
+ max = MAX(max, new_val);
+ }
+
+ for (chan = 0; chan < depth; chan++)
+ image[offsets[1] + chan] = max;
}
// FIXME: the last pixel
// inner pixels with 8 neighbours
- for(y = 1; y < height - 1; y++) {
- // FIXME: the first column
- for(x = 1; x < width - 1; x++) {
- int offsets[9] = {
- (y - 1) * width * depth + x * depth - depth,
- (y - 1) * width * depth + x * depth,
- (y - 1) * width * depth + x * depth + depth,
- y * width * depth + x * depth - depth,
- y * width * depth + x * depth,
- y * width * depth + x * depth + depth,
- (y + 1) * width * depth + x * depth - depth,
- (y + 1) * width * depth + x * depth,
- (y + 1) * width * depth + x * depth + depth,
- };
- int chan, max = 0;
- for(chan = 0; chan < depth; chan++) {
- int new_val = image[offsets[4] + chan] * 8 -
- image2[offsets[0] + chan] -
- image2[offsets[1] + chan] -
- image2[offsets[2] + chan] -
- image2[offsets[3] + chan] -
- image2[offsets[5] + chan] -
- image2[offsets[6] + chan] -
- image2[offsets[7] + chan] -
- image2[offsets[8] + chan];
-
- if(new_val < 0) {
- new_val = 0;
- }
- max = MAX(max, new_val);
- }
- for(chan = 0; chan < depth; chan++) {
- image[offsets[4] + chan] = max;
- }
- }
- // FIXME: the last column
+ for (y = 1; y < height - 1; y++) {
+ // FIXME: the first column
+ for (x = 1; x < width - 1; x++) {
+ int offsets[9] = {
+ (y - 1) * width * depth + x * depth - depth,
+ (y - 1) * width * depth + x * depth,
+ (y - 1) * width * depth + x * depth + depth,
+ y * width * depth + x * depth - depth,
+ y * width * depth + x * depth,
+ y * width * depth + x * depth + depth,
+ (y + 1) * width * depth + x * depth - depth,
+ (y + 1) * width * depth + x * depth,
+ (y + 1) * width * depth + x * depth + depth,
+ };
+ int chan, max = 0;
+
+ for (chan = 0; chan < depth; chan++) {
+ int new_val = image[offsets[4] + chan] * 8 -
+ image2[offsets[0] + chan] -
+ image2[offsets[1] + chan] -
+ image2[offsets[2] + chan] -
+ image2[offsets[3] + chan] -
+ image2[offsets[5] + chan] -
+ image2[offsets[6] + chan] -
+ image2[offsets[7] + chan] -
+ image2[offsets[8] + chan];
+
+ if (new_val < 0)
+ new_val = 0;
+ max = MAX(max, new_val);
+ }
+ for (chan = 0; chan < depth; chan++) {
+ image[offsets[4] + chan] = max;
+ }
+ }
+ // FIXME: the last column
}
// FIXME: the last line
- free (image2);
+ free(image2);
}
static void
-camorama_filter_laplace_class_init(CamoramaFilterLaplaceClass* self_class) {
- self_class->filter = camorama_filter_laplace_filter;
- self_class->name = _("Laplace (4 Neighbours)");
+camorama_filter_laplace_class_init(CamoramaFilterLaplaceClass *self_class)
+{
+ self_class->filter = camorama_filter_laplace_filter;
+ self_class->name = _("Laplace (4 Neighbours)");
}
diff --git a/src/camorama-filter-mirror.c b/src/camorama-filter-mirror.c
index ea65269..a7dc6cc 100644
--- a/src/camorama-filter-mirror.c
+++ b/src/camorama-filter-mirror.c
@@ -30,41 +30,47 @@
#include <glib/gi18n.h>
/* GType stuff for CamoramaFilterMirror */
-typedef struct _CamoramaFilter CamoramaFilterMirror;
+typedef struct _CamoramaFilter CamoramaFilterMirror;
typedef struct _CamoramaFilterClass CamoramaFilterMirrorClass;
-G_DEFINE_TYPE(CamoramaFilterMirror, camorama_filter_mirror, CAMORAMA_TYPE_FILTER);
+G_DEFINE_TYPE(CamoramaFilterMirror, camorama_filter_mirror,
+ CAMORAMA_TYPE_FILTER);
-static void
-camorama_filter_mirror_init(CamoramaFilterMirror* self) {}
+static void camorama_filter_mirror_init(CamoramaFilterMirror *self)
+{
+}
-static void
-camorama_filter_mirror_filter(void * filter, guchar *image, gint width, gint height, gint depth) {
- gint x, z, row_length, image_length, new_row, next_row, half_row, index1, index2;
- guchar temp;
+static void camorama_filter_mirror_filter(void *filter, guchar *image,
+ gint width, gint height,
+ gint depth)
+{
+ gint x, z, row_length, image_length, new_row, next_row, half_row;
+ gint index1, index2;
+ guchar temp;
- row_length = width * depth;
- image_length = row_length * height;
- half_row = ((width+1)/2)*depth;
- for(new_row = 0; new_row < image_length; new_row = next_row) { // 0, 320*depth, 640*depth, 960*depth, ...
- next_row = new_row + row_length;
- for (x = 0; x < half_row; x+=depth) { // 0, 3, 6, ..., 160*depth
- index1 = new_row + x; // 0, 3, 6, ..., 160*depth
- index2 = next_row - x - depth;// 320, 319, 318, ..., 161*depth
- for (z = 0; z < depth; z++) { // 0, ..., depth
- temp = image[index1 + z];
- image[index1 + z] = image[index2 + z];
- image[index2 + z] = temp;
- }
- }
- }
+ row_length = width * depth;
+ image_length = row_length * height;
+ half_row = ((width + 1) / 2) * depth;
+
+ // 0, 320*depth, 640*depth, 960*depth, ...
+ for (new_row = 0; new_row < image_length; new_row = next_row) {
+ next_row = new_row + row_length;
+ for (x = 0; x < half_row; x += depth) { // 0, 3, 6, ..., 160*depth
+ index1 = new_row + x; // 0, 3, 6, ..., 160*depth
+ index2 = next_row - x - depth; // 320, 319, 318, ..., 161*depth
+ for (z = 0; z < depth; z++) { // 0, ..., depth
+ temp = image[index1 + z];
+ image[index1 + z] = image[index2 + z];
+ image[index2 + z] = temp;
+ }
+ }
+ }
}
static void
-camorama_filter_mirror_class_init(CamoramaFilterMirrorClass* self_class) {
- self_class->filter = camorama_filter_mirror_filter;
- // TRANSLATORS: This is a noun
- self_class->name = _("Mirror");
+camorama_filter_mirror_class_init(CamoramaFilterMirrorClass *self_class)
+{
+ self_class->filter = camorama_filter_mirror_filter;
+ // TRANSLATORS: This is a noun
+ self_class->name = _("Mirror");
}
-
-
diff --git a/src/camorama-filter-reichardt.c b/src/camorama-filter-reichardt.c
index 9e2149b..4c2ab19 100644
--- a/src/camorama-filter-reichardt.c
+++ b/src/camorama-filter-reichardt.c
@@ -30,14 +30,15 @@
http://adrianbowyer.com
https://reprapltd.com
- For an introduction to how this works in biological vision (fly's eyes and yours) see:
+ For an introduction to how this works in biological vision
+ (fly's eyes and yours) see:
https://en.wikipedia.org/wiki/Motion_sensing_in_vision#The_Reichardt-Hassenstein_model
*/
-#include <math.h> // We just need one square root
+#include <math.h> // We just need one square root
#include "filter.h"
#ifdef HAVE_CONFIG_H
@@ -50,13 +51,15 @@
#include <stdlib.h>
/* GType stuff for CamoramaFilterReichardt */
-typedef struct _CamoramaFilter CamoramaFilterReichardt;
+typedef struct _CamoramaFilter CamoramaFilterReichardt;
typedef struct _CamoramaFilterClass CamoramaFilterReichardtClass;
-G_DEFINE_TYPE(CamoramaFilterReichardt, camorama_filter_reichardt, CAMORAMA_TYPE_FILTER);
+G_DEFINE_TYPE(CamoramaFilterReichardt, camorama_filter_reichardt,
+ CAMORAMA_TYPE_FILTER);
-static void
-camorama_filter_reichardt_init(CamoramaFilterReichardt* self) {}
+static void camorama_filter_reichardt_init(CamoramaFilterReichardt *self)
+{
+}
static int count = 0;
@@ -78,223 +81,195 @@ static int highPassTC = 5;
// Set to 1 to print debugging info on standard output
-char debug = 0;
+char debug = 0;
-//---------------------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
-
-// When we start, or when the image size changes, we need to malloc some space to put the
-// frame to frame calculations in.
+// When we start, or when the image size changes, we need to malloc
+// some space to put the frame to frame calculations in.
static void MaybeNewMemory(gint width, gint height, gint depth)
{
- long needed, i, memory;
-
- if(width == oldWidth && height == oldHeight && depth == oldDepth)
- return;
-
- if(lastSignal)
- free(lastSignal);
- if(lastHigh)
- free(lastHigh);
- if(lastHighThenLow)
- free(lastHighThenLow);
- if(output)
- free(output);
-
- if(debug)
- printf("\n\nwidth: %d, height: %d, depth: %d\n\n", width, height, depth);
-
- needed = 5 + (width+1)*(height+1);
- memory = needed*sizeof(long);
- lastSignal = (long *)malloc(memory);
- if (!lastSignal)
- {
- printf("ERROR: Cannot malloc image memory for lastSignal\n");
- return;
- }
- lastHigh = (long *)malloc(memory);
- if (!lastHigh)
- {
- printf("ERROR: Cannot malloc image memory for lastHigh\n");
- return;
- }
- lastHighThenLow = (long *)malloc(memory);
- if (!lastHighThenLow)
- {
- printf("ERROR: Cannot malloc image memory for lastHighThenLow\n");
- return;
- }
- output = (long *)malloc(memory);
- if (!output)
- {
- printf("ERROR: Cannot malloc image memory for output\n");
- return;
- }
- for(i=0; i < needed; i++)
- {
- lastSignal[i] = 127;
- lastHigh[i] = 127;
- lastHighThenLow[i] = 127;
- }
-
- oldWidth = width;
- oldHeight = height;
- oldDepth = depth;
+ long needed, i, memory;
+
+ if (width == oldWidth && height == oldHeight && depth == oldDepth)
+ return;
+
+ if (lastSignal)
+ free(lastSignal);
+ if (lastHigh)
+ free(lastHigh);
+ if (lastHighThenLow)
+ free(lastHighThenLow);
+ if (output)
+ free(output);
+
+ if (debug)
+ printf("\n\nwidth: %d, height: %d, depth: %d\n\n",
+ width, height, depth);
+
+ needed = 5 + (width + 1) * (height + 1);
+ memory = needed * sizeof(long);
+ lastSignal = (long *)malloc(memory);
+ if (!lastSignal) {
+ printf("ERROR: Cannot malloc image memory for lastSignal\n");
+ return;
+ }
+ lastHigh = (long *)malloc(memory);
+ if (!lastHigh) {
+ printf("ERROR: Cannot malloc image memory for lastHigh\n");
+ return;
+ }
+ lastHighThenLow = (long *)malloc(memory);
+ if (!lastHighThenLow) {
+ printf("ERROR: Cannot malloc image memory for lastHighThenLow\n");
+ return;
+ }
+ output = (long *)malloc(memory);
+ if (!output) {
+ printf("ERROR: Cannot malloc image memory for output\n");
+ return;
+ }
+ for (i = 0; i < needed; i++) {
+ lastSignal[i] = 127;
+ lastHigh[i] = 127;
+ lastHighThenLow[i] = 127;
+ }
+
+ oldWidth = width;
+ oldHeight = height;
+ oldDepth = depth;
}
-
-//--------------------------------------------------------------------------------------------------------------
+//----------------------------------------------------------------------------
// This is the function that implements the filter
-
-static void
-camorama_filter_reichardt_filter(void *filter, guchar *image, gint width, gint height, gint depth)
+static void camorama_filter_reichardt_filter(void *filter, guchar *image,
+ gint width, gint height,
+ gint depth)
{
- gint x, y, z, row_length, row, column, thisPixel, thisXY, thatXY;
-
- long signal, thisHigh, thisHighThenLow, thatHigh, thatHighThenLow, thatSignal, newValue, max, min, scale, mean, var;
-
- MaybeNewMemory(width, height, depth);
-
- max = LONG_MIN;
- min = LONG_MAX;
- thatSignal = 0;
- mean = 0;
- var = 0;
-
- // Run through each pixel doing the filter calculation with the one
- // immediately to its left. Note that this means that the extreme
- // left (x=0) column of pixels is not filtered.
-
- row_length = width * depth;
- for(y = 0; y < height; y++)
- {
- row = y*row_length;
- for (x = 1; x < width; x++)
- {
- column = x*depth;
- thisPixel = row + column;
- thisXY = y*width+x;
- thatXY = thisXY - 1;
-
- // Go from colour to grey
-
- signal = 0;
- for (z = 0; z < depth; z++)
- {
- signal += image[thisPixel + z];
- }
- signal = signal/depth;
-
- // Apply Reichardt
-
- thisHigh = (highPassTC*(lastHigh[thisXY] + signal - lastSignal[thisXY]))/(highPassTC + 1);
- thisHighThenLow = (thisHigh + lastHighThenLow[thisXY]*lowPassTC)/(lowPassTC + 1);
- thatHigh = (highPassTC*(lastHigh[thatXY] + thatSignal - lastSignal[thatXY]))/(highPassTC + 1);
- thatHighThenLow = (thatHigh + lastHighThenLow[thatXY]*lowPassTC)/(lowPassTC + 1);
-
- newValue = thisHighThenLow*thatHigh - thatHighThenLow*thisHigh;
- output[thisXY] = newValue;
-
- if(newValue > max)
- max = newValue;
- if(newValue < min)
- min = newValue;
-
- mean += newValue;
- var += newValue*newValue;
-
- // Remember for next time
-
- thatSignal = signal;
- lastHigh[thisXY] = thisHigh;
- lastHighThenLow[thisXY] = thisHighThenLow;
- lastSignal[thisXY] = signal;
- }
- }
-
- mean = mean/(height*width);
- var = var/(height*width) - mean*mean;
- var = (long)(sqrt((double)var));
-
- // If debugging, print stats every 50 frames
-
- count++;
- if(debug && !(count%50))
- {
- printf("\nmax: %ld, min: %ld mean: %ld, sd: %ld\n", max, min, mean, var);
- }
-
-
- // If anything's going on (var > 10, say) let's see it
- // This scales the filtered output to the range 0-255
- // The range scaled is four standard deviations (i.e. mean +/- 2 SD).
- // Anything outside that range is clipped to 0 or 255.
-
- if(var > 10)
- {
-
- /*
-
- NB - if you are just concerned to detect movement (wildlife camera trap, burglar alarm etc)
- put the call to start recording (or phone the police) in at this point.
-
-
- */
- scale = 4*var;
-
- for(y = 0; y < height; y++)
- {
- row = y*row_length;
- for (z = 0; z < depth; z++)
- {
- image[row + z] = 0;
- }
- for (x = 1; x < width; x++)
- {
- column = x*depth;
- thisPixel = row + column;
- thisXY = y*width+x;
- signal = output[thisXY];
- signal = ((2*var + signal - mean)*255)/scale;
- if(signal < 0)
- signal = 0;
- if(signal > 255)
- signal = 255;
- for (z = 0; z < depth; z++)
- {
- image[thisPixel + z] = (guchar)signal;
- }
- }
- }
- } else
-
-// Nothing to see here, move on.
-
- {
- for(y = 0; y < height; y++)
- {
- row = y*row_length;
- for (x = 0; x < width; x++)
- {
- column = x*depth;
- thisPixel = row + column;
- for (z = 0; z < depth; z++)
- {
- image[thisPixel + z] = 127;
- }
- }
- }
- }
+ gint x, y, z, row_length, row, column, thisPixel, thisXY, thatXY;
+
+ long signal, thisHigh, thisHighThenLow, thatHigh, thatHighThenLow;
+ long thatSignal, newValue, max, min, scale, mean, var;
+
+ MaybeNewMemory(width, height, depth);
+
+ max = LONG_MIN;
+ min = LONG_MAX;
+ thatSignal = 0;
+ mean = 0;
+ var = 0;
+
+ // Run through each pixel doing the filter calculation with the one
+ // immediately to its left. Note that this means that the extreme
+ // left (x=0) column of pixels is not filtered.
+
+ row_length = width * depth;
+ for (y = 0; y < height; y++) {
+ row = y * row_length;
+ for (x = 1; x < width; x++) {
+ column = x * depth;
+ thisPixel = row + column;
+ thisXY = y * width + x;
+ thatXY = thisXY - 1;
+
+ // Go from colour to grey
+
+ signal = 0;
+ for (z = 0; z < depth; z++)
+ signal += image[thisPixel + z];
+ signal = signal / depth;
+
+ // Apply Reichardt
+
+ thisHigh = (highPassTC * (lastHigh[thisXY] + signal - lastSignal[thisXY])) / (highPassTC + 1);
+ thisHighThenLow = (thisHigh + lastHighThenLow[thisXY] * lowPassTC) / (lowPassTC + 1);
+ thatHigh = (highPassTC * (lastHigh[thatXY] + thatSignal - lastSignal[thatXY])) / (highPassTC + 1);
+ thatHighThenLow = (thatHigh + lastHighThenLow[thatXY] * lowPassTC) / (lowPassTC + 1);
+
+ newValue = thisHighThenLow * thatHigh - thatHighThenLow * thisHigh;
+ output[thisXY] = newValue;
+
+ if (newValue > max)
+ max = newValue;
+ if (newValue < min)
+ min = newValue;
+
+ mean += newValue;
+ var += newValue * newValue;
+
+ // Remember for next time
+
+ thatSignal = signal;
+ lastHigh[thisXY] = thisHigh;
+ lastHighThenLow[thisXY] = thisHighThenLow;
+ lastSignal[thisXY] = signal;
+ }
+ }
+
+ mean = mean / (height * width);
+ var = var / (height * width) - mean * mean;
+ var = (long)(sqrt((double)var));
+
+ // If debugging, print stats every 50 frames
+
+ count++;
+ if (debug && !(count % 50))
+ printf("\nmax: %ld, min: %ld mean: %ld, sd: %ld\n", max, min, mean,
+ var);
+
+ // If anything's going on (var > 10, say) let's see it
+ // This scales the filtered output to the range 0-255
+ // The range scaled is four standard deviations (i.e. mean +/- 2 SD).
+ // Anything outside that range is clipped to 0 or 255.
+
+ if (var > 10) {
+ /*
+ * NB - if you are just concerned to detect movement
+ * (wildlife camera trap, burglar alarm etc) put the call to start
+ * recording (or phone the police) in at this point.
+ */
+ scale = 4 * var;
+
+ for (y = 0; y < height; y++) {
+ row = y * row_length;
+ for (z = 0; z < depth; z++)
+ image[row + z] = 0;
+ for (x = 1; x < width; x++) {
+ column = x * depth;
+ thisPixel = row + column;
+ thisXY = y * width + x;
+ signal = output[thisXY];
+ signal = ((2 * var + signal - mean) * 255) / scale;
+ if (signal < 0)
+ signal = 0;
+ if (signal > 255)
+ signal = 255;
+ for (z = 0; z < depth; z++)
+ image[thisPixel + z] = (guchar) signal;
+ }
+ }
+ } else {
+ for (y = 0; y < height; y++) {
+ row = y * row_length;
+ for (x = 0; x < width; x++) {
+ column = x * depth;
+ thisPixel = row + column;
+ for (z = 0; z < depth; z++) {
+ image[thisPixel + z] = 127;
+ }
+ }
+ }
+ }
}
static void
-camorama_filter_reichardt_class_init(CamoramaFilterReichardtClass* self_class) {
- self_class->filter = camorama_filter_reichardt_filter;
- // TRANSLATORS: This is a noun
- self_class->name = _("Reichardt");
+camorama_filter_reichardt_class_init(CamoramaFilterReichardtClass *
+ self_class)
+{
+ self_class->filter = camorama_filter_reichardt_filter;
+ // TRANSLATORS: This is a noun
+ self_class->name = _("Reichardt");
}
-
-
diff --git a/src/camorama-globals.h b/src/camorama-globals.h
index 71d8b71..280f424 100644
--- a/src/camorama-globals.h
+++ b/src/camorama-globals.h
@@ -35,5 +35,4 @@ GtkWidget *dentry, *entry2, *string_entry, *format_selection;
GtkWidget *host_entry, *protocol, *rdir_entry, *filename_entry;
G_END_DECLS
-
-#endif /* !CAMORAMA_GLOBALS_H */
+#endif /* !CAMORAMA_GLOBALS_H */
diff --git a/src/camorama-stock-items.c b/src/camorama-stock-items.c
index 64b507c..f9ea37b 100644
--- a/src/camorama-stock-items.c
+++ b/src/camorama-stock-items.c
@@ -10,49 +10,58 @@
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdiscarded-qualifiers"
static GtkStockItem camorama_items[] = {
- {CAMORAMA_STOCK_WEBCAM, N_("Webcam"), 0, 0, "camorama"}
+ {CAMORAMA_STOCK_WEBCAM, N_("Webcam"), 0, 0, "camorama"}
};
+
#pragma GCC diagnostic pop
-static void
-add_default_image(const gchar* stock_id, gint size, const gchar *pixfilename)
+static void add_default_image(const gchar * stock_id, gint size,
+ const gchar * pixfilename)
{
- GdkPixbuf* buf = gdk_pixbuf_new_from_file(pixfilename, NULL);
- g_return_if_fail(buf);
+ GdkPixbuf *buf = gdk_pixbuf_new_from_file(pixfilename, NULL);
+
+ g_return_if_fail(buf);
- gtk_icon_theme_add_builtin_icon(stock_id, size, buf);
- g_object_unref(buf);
+ gtk_icon_theme_add_builtin_icon(stock_id, size, buf);
+ g_object_unref(buf);
}
-void
-camorama_stock_init(void) {
- GtkIconFactory* factory = gtk_icon_factory_new();
- GtkIconSet * set = gtk_icon_set_new ();
- GtkIconSource * source = gtk_icon_source_new();
+void camorama_stock_init(void)
+{
+ GtkIconFactory *factory = gtk_icon_factory_new();
+ GtkIconSet *set = gtk_icon_set_new();
+ GtkIconSource *source = gtk_icon_source_new();
- gtk_stock_add_static(camorama_items, G_N_ELEMENTS(camorama_items));
+ gtk_stock_add_static(camorama_items, G_N_ELEMENTS(camorama_items));
- gtk_icon_source_set_size_wildcarded(source, TRUE);
- gtk_icon_source_set_direction_wildcarded(source, TRUE);
- gtk_icon_source_set_state_wildcarded(source, TRUE);
+ gtk_icon_source_set_size_wildcarded(source, TRUE);
+ gtk_icon_source_set_direction_wildcarded(source, TRUE);
+ gtk_icon_source_set_state_wildcarded(source, TRUE);
- gtk_icon_source_set_icon_name(source, CAMORAMA_STOCK_WEBCAM);
- gtk_icon_set_add_source(set, source);
+ gtk_icon_source_set_icon_name(source, CAMORAMA_STOCK_WEBCAM);
+ gtk_icon_set_add_source(set, source);
- gtk_icon_factory_add(factory, CAMORAMA_STOCK_WEBCAM, set);
+ gtk_icon_factory_add(factory, CAMORAMA_STOCK_WEBCAM, set);
- add_default_image(CAMORAMA_STOCK_WEBCAM, 16, PACKAGE_DATA_DIR "/icons/hicolor/16x16/devices/camorama.png");
- add_default_image(CAMORAMA_STOCK_WEBCAM, 24, PACKAGE_DATA_DIR "/icons/hicolor/24x24/devices/camorama.png");
- add_default_image(CAMORAMA_STOCK_WEBCAM, 32, PACKAGE_DATA_DIR "/icons/hicolor/32x32/devices/camorama.png");
- add_default_image(CAMORAMA_STOCK_WEBCAM, 48, PACKAGE_DATA_DIR "/icons/hicolor/48x48/devices/camorama.png");
- add_default_image(CAMORAMA_STOCK_WEBCAM, 64, PACKAGE_DATA_DIR "/icons/hicolor/64x64/devices/camorama.png");
- add_default_image(CAMORAMA_STOCK_WEBCAM, 128, PACKAGE_DATA_DIR "/icons/hicolor/128x128/devices/camorama.png");
- add_default_image(CAMORAMA_STOCK_WEBCAM, 256, PACKAGE_DATA_DIR "/icons/hicolor/256x256/devices/camorama.png");
- add_default_image(CAMORAMA_STOCK_WEBCAM, 512, PACKAGE_DATA_DIR "/icons/hicolor/512x512/devices/camorama.png");
+ add_default_image(CAMORAMA_STOCK_WEBCAM, 16, PACKAGE_DATA_DIR
+ "/icons/hicolor/16x16/devices/camorama.png");
+ add_default_image(CAMORAMA_STOCK_WEBCAM, 24, PACKAGE_DATA_DIR
+ "/icons/hicolor/24x24/devices/camorama.png");
+ add_default_image(CAMORAMA_STOCK_WEBCAM, 32, PACKAGE_DATA_DIR
+ "/icons/hicolor/32x32/devices/camorama.png");
+ add_default_image(CAMORAMA_STOCK_WEBCAM, 48, PACKAGE_DATA_DIR
+ "/icons/hicolor/48x48/devices/camorama.png");
+ add_default_image(CAMORAMA_STOCK_WEBCAM, 64, PACKAGE_DATA_DIR
+ "/icons/hicolor/64x64/devices/camorama.png");
+ add_default_image(CAMORAMA_STOCK_WEBCAM, 128, PACKAGE_DATA_DIR
+ "/icons/hicolor/128x128/devices/camorama.png");
+ add_default_image(CAMORAMA_STOCK_WEBCAM, 256, PACKAGE_DATA_DIR
+ "/icons/hicolor/256x256/devices/camorama.png");
+ add_default_image(CAMORAMA_STOCK_WEBCAM, 512, PACKAGE_DATA_DIR
+ "/icons/hicolor/512x512/devices/camorama.png");
- gtk_icon_factory_add_default(factory);
+ gtk_icon_factory_add_default(factory);
- gtk_icon_set_unref(set);
- gtk_icon_source_free(source);
+ gtk_icon_set_unref(set);
+ gtk_icon_source_free(source);
}
-
diff --git a/src/camorama-stock-items.h b/src/camorama-stock-items.h
index bdccce5..1fa1ba5 100644
--- a/src/camorama-stock-items.h
+++ b/src/camorama-stock-items.h
@@ -10,5 +10,4 @@ void camorama_stock_init(void);
#define CAMORAMA_STOCK_WEBCAM "camorama-webcam"
G_END_DECLS
-
-#endif /* !CAMORAMA_STOCK_ITEMS_H */
+#endif /* !CAMORAMA_STOCK_ITEMS_H */
diff --git a/src/camorama-window.c b/src/camorama-window.c
index f174512..c5c0857 100644
--- a/src/camorama-window.c
+++ b/src/camorama-window.c
@@ -40,229 +40,240 @@
static GQuark menu_item_filter_type = 0;
/* Supported URI protocol schemas */
-const gchar * const protos[] = { "ftp", "sftp", "smb" };
-
-
-static void
-add_filter_clicked(GtkMenuItem* menuitem, CamoramaFilterChain* chain) {
- GType filter_type = GPOINTER_TO_SIZE(g_object_get_qdata(G_OBJECT(menuitem), menu_item_filter_type));
- camorama_filter_chain_append(chain, filter_type);
+const gchar *const protos[] = { "ftp", "sftp", "smb" };
+
+static void add_filter_clicked(GtkMenuItem *menuitem,
+ CamoramaFilterChain *chain)
+{
+ GType filter_type = GPOINTER_TO_SIZE(g_object_get_qdata(G_OBJECT(menuitem),
+ menu_item_filter_type));
+ camorama_filter_chain_append(chain, filter_type);
}
struct weak_target {
- GtkTreeModel* model;
- GList * list;
+ GtkTreeModel *model;
+ GList *list;
};
-static void
-reference_path(GtkTreePath* path, struct weak_target* target) {
- target->list = g_list_prepend(target->list, gtk_tree_row_reference_new(target->model, path));
+static void reference_path(GtkTreePath *path, struct weak_target *target)
+{
+ target->list = g_list_prepend(target->list,
+ gtk_tree_row_reference_new(target->model,
+ path));
}
-static void
-delete_filter(GtkTreeRowReference* ref, GtkTreeModel* model) {
- GtkTreeIter iter;
- GtkTreePath* path = gtk_tree_row_reference_get_path(ref);
- gtk_tree_model_get_iter(model, &iter, path);
- gtk_list_store_remove(GTK_LIST_STORE(model), &iter);
+static void delete_filter(GtkTreeRowReference *ref, GtkTreeModel *model)
+{
+ GtkTreeIter iter;
+ GtkTreePath *path = gtk_tree_row_reference_get_path(ref);
+
+ gtk_tree_model_get_iter(model, &iter, path);
+ gtk_list_store_remove(GTK_LIST_STORE(model), &iter);
}
-static void
-delete_filter_clicked(GtkTreeSelection* sel, GtkMenuItem* menuitem) {
- GtkTreeModel* model;
- GList* paths = gtk_tree_selection_get_selected_rows(sel, &model);
- struct weak_target target = {model, NULL};
- g_list_foreach(paths, G_FUNC(reference_path), &target);
- g_list_foreach(target.list, G_FUNC(delete_filter), model);
- g_list_free_full(target.list, (GDestroyNotify)gtk_tree_row_reference_free);
- g_list_free_full(paths, (GDestroyNotify)gtk_tree_path_free);
+static void delete_filter_clicked(GtkTreeSelection *sel,
+ GtkMenuItem *menuitem)
+{
+ GtkTreeModel *model;
+ GList *paths = gtk_tree_selection_get_selected_rows(sel, &model);
+ struct weak_target target = { model, NULL };
+
+ g_list_foreach(paths, G_FUNC(reference_path), &target);
+ g_list_foreach(target.list, G_FUNC(delete_filter), model);
+ g_list_free_full(target.list,
+ (GDestroyNotify) gtk_tree_row_reference_free);
+ g_list_free_full(paths, (GDestroyNotify) gtk_tree_path_free);
}
-static void
-menu_position_func(GtkMenu* menu, gint* x, gint* y, gboolean *push_in, gpointer user_data) {
- if(user_data) {
- GdkEventButton* ev = (GdkEventButton*)user_data;
- *x = ev->x;
- *y = ev->y;
- } else {
- // find the selected row and open the popup there
- }
+static void menu_position_func(GtkMenu *menu, gint *x, gint *y,
+ gboolean *push_in, gpointer user_data)
+{
+ if (user_data) {
+ GdkEventButton *ev = (GdkEventButton *) user_data;
+
+ *x = ev->x;
+ *y = ev->y;
+ } else {
+ // find the selected row and open the popup there
+ }
}
-static void
-show_popup(cam_t *cam, GtkTreeView* treeview, GdkEventButton* ev) {
- GtkMenu* menu = GTK_MENU(gtk_menu_new());
- GtkWidget* item;
- GtkWidget* add_filters = gtk_menu_new();
- GType* filters;
- guint n_filters, i;
- GtkTreeModel* model = gtk_tree_view_get_model(treeview);
- GtkTreeSelection* sel = gtk_tree_view_get_selection(treeview);
-
- gtk_tree_selection_set_mode(sel, GTK_SELECTION_MULTIPLE);
-
- item = gtk_menu_item_new_with_mnemonic("_Delete");
- g_signal_connect_swapped(item, "activate",
- G_CALLBACK(delete_filter_clicked), sel);
- gtk_container_add(GTK_CONTAINER(menu), item);
- gtk_container_add(GTK_CONTAINER(menu), gtk_separator_menu_item_new());
-
- if(!gtk_tree_selection_count_selected_rows(sel)) {
- gtk_widget_set_sensitive(item, FALSE);
- }
-
- item = gtk_menu_item_new_with_mnemonic(_("_Add Filter"));
- gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), add_filters);
- gtk_container_add(GTK_CONTAINER(menu), item);
-
- filters = g_type_children(CAMORAMA_TYPE_FILTER, &n_filters);
- for(i = 0; i < n_filters; i++) {
- CamoramaFilterClass* filter_class = g_type_class_ref(filters[i]);
- gchar const* filter_name = filter_class->name;
-
- if(!filter_name) {
- filter_name = g_type_name(filters[i]);
- }
-
- item = gtk_menu_item_new_with_label(filter_name);
- g_object_set_qdata(G_OBJECT(item), menu_item_filter_type, GSIZE_TO_POINTER(filters[i]));
- g_signal_connect(item, "activate",
- G_CALLBACK(add_filter_clicked), model);
- gtk_container_add(GTK_CONTAINER(add_filters), item);
- g_type_class_unref(filter_class);
- }
- g_free(filters);
-
- gtk_widget_show_all(GTK_WIDGET(menu));
- gtk_menu_popup(menu,
- NULL, NULL,
- menu_position_func, ev,
- ev ? ev->button : 0,
- ev ? ev->time : gtk_get_current_event_time());
+static void show_popup(cam_t *cam, GtkTreeView *treeview,
+ GdkEventButton *ev)
+{
+ GtkMenu *menu = GTK_MENU(gtk_menu_new());
+ GtkWidget *item;
+ GtkWidget *add_filters = gtk_menu_new();
+ GType *filters;
+ guint n_filters, i;
+ GtkTreeModel *model = gtk_tree_view_get_model(treeview);
+ GtkTreeSelection *sel = gtk_tree_view_get_selection(treeview);
+
+ gtk_tree_selection_set_mode(sel, GTK_SELECTION_MULTIPLE);
+
+ item = gtk_menu_item_new_with_mnemonic("_Delete");
+ g_signal_connect_swapped(item, "activate",
+ G_CALLBACK(delete_filter_clicked), sel);
+ gtk_container_add(GTK_CONTAINER(menu), item);
+ gtk_container_add(GTK_CONTAINER(menu), gtk_separator_menu_item_new());
+
+ if (!gtk_tree_selection_count_selected_rows(sel))
+ gtk_widget_set_sensitive(item, FALSE);
+
+ item = gtk_menu_item_new_with_mnemonic(_("_Add Filter"));
+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), add_filters);
+ gtk_container_add(GTK_CONTAINER(menu), item);
+
+ filters = g_type_children(CAMORAMA_TYPE_FILTER, &n_filters);
+ for (i = 0; i < n_filters; i++) {
+ CamoramaFilterClass *filter_class = g_type_class_ref(filters[i]);
+ gchar const *filter_name = filter_class->name;
+
+ if (!filter_name)
+ filter_name = g_type_name(filters[i]);
+
+ item = gtk_menu_item_new_with_label(filter_name);
+ g_object_set_qdata(G_OBJECT(item), menu_item_filter_type,
+ GSIZE_TO_POINTER(filters[i]));
+ g_signal_connect(item, "activate", G_CALLBACK(add_filter_clicked),
+ model);
+ gtk_container_add(GTK_CONTAINER(add_filters), item);
+ g_type_class_unref(filter_class);
+ }
+ g_free(filters);
+
+ gtk_widget_show_all(GTK_WIDGET(menu));
+ gtk_menu_popup(menu,
+ NULL, NULL,
+ menu_position_func, ev,
+ ev ? ev->button : 0,
+ ev ? ev->time : gtk_get_current_event_time());
}
-static void
-treeview_popup_menu_cb(cam_t *cam, GtkTreeView* treeview) {
- show_popup(cam, treeview, NULL);
+static void treeview_popup_menu_cb(cam_t *cam, GtkTreeView *treeview)
+{
+ show_popup(cam, treeview, NULL);
}
-static gboolean
-treeview_clicked_cb(cam_t *cam, GdkEventButton* ev, GtkTreeView* treeview) {
- gboolean retval = GTK_WIDGET_GET_CLASS(treeview)->button_press_event(GTK_WIDGET(treeview), ev);
+static gboolean treeview_clicked_cb(cam_t *cam, GdkEventButton *ev,
+ GtkTreeView *treeview)
+{
+ gboolean retval = GTK_WIDGET_GET_CLASS(treeview)->button_press_event(GTK_WIDGET(treeview), ev);
- if(ev->button == 3) {
- show_popup(cam, treeview, NULL);
- retval = TRUE;
- }
+ if (ev->button == 3) {
+ show_popup(cam, treeview, NULL);
+ retval = TRUE;
+ }
- return retval;
+ return retval;
}
-static void
-tray_clicked_callback (GtkStatusIcon* status, guint button, guint activate_time, cam_t *cam){
- // FIXME: change to switch
- if (button == 1) {
- if (gtk_widget_get_visible
- (GTK_WIDGET(gtk_builder_get_object(cam->xml, "main_window")))) {
- cam->hidden = TRUE;
- g_source_remove (cam->idle_id);
- gtk_widget_hide (GTK_WIDGET(gtk_builder_get_object
- (cam->xml, "main_window")));
- } else {
- cam->idle_id =
- g_idle_add ((GSourceFunc) pt2Function, (gpointer) cam);
- gtk_widget_show (GTK_WIDGET(gtk_builder_get_object
- (cam->xml, "main_window")));
- cam->hidden = FALSE;
- }
- } else if (button == 3) {
-
- //gw = MyApp->GetMainWindow ();
-
- //gnomemeeting_component_view (NULL, (gpointer) gw->ldap_window);
-
+static void tray_clicked_callback(GtkStatusIcon *status, guint button,
+ guint activate_time, cam_t *cam)
+{
+ // FIXME: change to switch
+ if (button == 1) {
+ if (gtk_widget_get_visible(GTK_WIDGET(gtk_builder_get_object(cam->xml, "main_window")))) {
+ cam->hidden = TRUE;
+ g_source_remove(cam->idle_id);
+ gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object
+ (cam->xml, "main_window")));
+ } else {
+ cam->idle_id = g_idle_add((GSourceFunc) pt2Function,
+ (gpointer) cam);
+ gtk_widget_show(GTK_WIDGET(gtk_builder_get_object
+ (cam->xml, "main_window")));
+ cam->hidden = FALSE;
}
+ } else if (button == 3) {
+ //gw = MyApp->GetMainWindow ();
+ //gnomemeeting_component_view (NULL, (gpointer) gw->ldap_window);
+ }
}
-void
-load_interface(cam_t *cam) {
+void load_interface(cam_t *cam)
+{
unsigned int i;
gchar *title;
GdkPixbuf *logo = NULL;
- GtkCellRenderer* cell;
+ GtkCellRenderer *cell;
GtkWidget *small_res, *new_res;
GtkWidget *window = GTK_WIDGET(gtk_builder_get_object(cam->xml,
"main_window"));
- GtkTreeView* treeview;
+ GtkTreeView *treeview;
menu_item_filter_type = g_quark_from_static_string("camorama-menu-item-filter-type");
/* set up the tree view */
- treeview = GTK_TREE_VIEW(gtk_builder_get_object(cam->xml, "treeview_effects"));
+ treeview = GTK_TREE_VIEW(gtk_builder_get_object(cam->xml,
+ "treeview_effects"));
cell = gtk_cell_renderer_text_new();
g_object_set(cell, "ellipsize", PANGO_ELLIPSIZE_END, NULL);
- gtk_cell_renderer_text_set_fixed_height_from_font(GTK_CELL_RENDERER_TEXT(cell), 1);
- gtk_tree_view_insert_column_with_attributes(treeview, -1,
- _("Effects"), cell,
- "text", CAMORAMA_FILTER_CHAIN_COL_NAME,
- NULL);
+ gtk_cell_renderer_text_set_fixed_height_from_font
+ (GTK_CELL_RENDERER_TEXT(cell), 1);
+ gtk_tree_view_insert_column_with_attributes(treeview, -1, _("Effects"),
+ cell, "text",
+ CAMORAMA_FILTER_CHAIN_COL_NAME,
+ NULL);
cam->filter_chain = camorama_filter_chain_new();
gtk_tree_view_set_model(treeview, GTK_TREE_MODEL(cam->filter_chain));
g_object_unref(cam->filter_chain);
g_signal_connect_swapped(treeview, "button-press-event",
- G_CALLBACK(treeview_clicked_cb), cam);
+ G_CALLBACK(treeview_clicked_cb), cam);
g_signal_connect_swapped(treeview, "popup-menu",
- G_CALLBACK(treeview_popup_menu_cb), cam);
+ G_CALLBACK(treeview_popup_menu_cb), cam);
- logo = gtk_icon_theme_load_icon(gtk_icon_theme_get_for_screen(gtk_widget_get_screen(window)), CAMORAMA_STOCK_WEBCAM, 24, 0, NULL);
+ logo = gtk_icon_theme_load_icon(gtk_icon_theme_get_for_screen(gtk_widget_get_screen(window)),
+ CAMORAMA_STOCK_WEBCAM, 24, 0, NULL);
gtk_window_set_default_icon(logo);
- logo = gtk_icon_theme_load_icon(gtk_icon_theme_get_for_screen(gtk_widget_get_screen(window)), "camorama", 48, 0, NULL);
+ logo = gtk_icon_theme_load_icon(gtk_icon_theme_get_for_screen(gtk_widget_get_screen(window)),
+ "camorama", 48, 0, NULL);
if (cam->show_adjustments == FALSE) {
- gtk_widget_hide (GTK_WIDGET(gtk_builder_get_object
- (cam->xml, "adjustments_table")));
+ gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(cam->xml,
+ "adjustments_table")));
- gtk_window_resize (GTK_WINDOW(window), 320, 240);
+ gtk_window_resize(GTK_WINDOW(window), 320, 240);
}
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtk_builder_get_object(cam->xml, "showadjustment_item")), cam->show_adjustments);
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtk_builder_get_object(cam->xml, "showadjustment_item")),
+ cam->show_adjustments);
if (cam->show_effects == FALSE) {
- gtk_widget_hide (GTK_WIDGET(gtk_builder_get_object(cam->xml, "scrolledwindow_effects")));
- gtk_window_resize (GTK_WINDOW(window), 320, 240);
+ gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(cam->xml, "scrolledwindow_effects")));
+ gtk_window_resize(GTK_WINDOW(window), 320, 240);
}
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtk_builder_get_object(cam->xml, "show_effects")), cam->show_effects);
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtk_builder_get_object(cam->xml, "show_effects")),
+ cam->show_effects);
- cam->tray_icon = gtk_status_icon_new_from_stock (CAMORAMA_STOCK_WEBCAM);
- update_tooltip (cam);
+ cam->tray_icon = gtk_status_icon_new_from_stock(CAMORAMA_STOCK_WEBCAM);
+ update_tooltip(cam);
/* add the status to the plug */
- g_object_set_data (G_OBJECT (cam->tray_icon), "available",
- GINT_TO_POINTER (1));
- g_object_set_data (G_OBJECT (cam->tray_icon), "embedded",
- GINT_TO_POINTER (0));
+ g_object_set_data(G_OBJECT(cam->tray_icon), "available",
+ GINT_TO_POINTER(1));
+ g_object_set_data(G_OBJECT(cam->tray_icon), "embedded",
+ GINT_TO_POINTER(0));
- g_signal_connect (cam->tray_icon, "popup-menu",
- G_CALLBACK (tray_clicked_callback), cam);
+ g_signal_connect(cam->tray_icon, "popup-menu",
+ G_CALLBACK(tray_clicked_callback), cam);
- /* connect the signals in the interface
+ /* connect the signals in the interface
* glade_xml_signal_autoconnect(xml);
* this won't work, can't pass data to callbacks. have to do it individually :(*/
- title = g_strdup_printf ("Camorama - %s - %dx%d", cam->name,
- cam->width, cam->height);
- gtk_window_set_title (GTK_WINDOW(window), title);
- g_free (title);
+ title = g_strdup_printf("Camorama - %s - %dx%d", cam->name,
+ cam->width, cam->height);
+ gtk_window_set_title(GTK_WINDOW(window), title);
+ g_free(title);
- gtk_window_set_icon (GTK_WINDOW(window), logo);
- gtk_window_set_icon (GTK_WINDOW
- (GTK_WIDGET(gtk_builder_get_object(cam->xml, "prefswindow"))),
- logo);
-
- g_signal_connect (gtk_builder_get_object(cam->xml, "show_effects"), "activate",
- G_CALLBACK (on_show_effects_activate), cam);
- gtk_toggle_button_set_active ((GtkToggleButton *)
- GTK_WIDGET(gtk_builder_get_object (cam->xml, "togglebutton1")),
- cam->show_adjustments);
- g_signal_connect (gtk_builder_get_object(cam->xml, "togglebutton1"), "toggled",
- G_CALLBACK (on_show_adjustments_activate), cam);
+ gtk_window_set_icon(GTK_WINDOW(window), logo);
+ gtk_window_set_icon(GTK_WINDOW(GTK_WIDGET(gtk_builder_get_object(cam->xml, "prefswindow"))), logo);
+ g_signal_connect(gtk_builder_get_object(cam->xml, "show_effects"),
+ "activate", G_CALLBACK(on_show_effects_activate),
+ cam);
+ gtk_toggle_button_set_active((GtkToggleButton *)GTK_WIDGET(gtk_builder_get_object(cam->xml, "togglebutton1")),
+ cam->show_adjustments);
+ g_signal_connect(gtk_builder_get_object(cam->xml, "togglebutton1"),
+ "toggled", G_CALLBACK(on_show_adjustments_activate),
+ cam);
/*
* Dynamically generate the resolutions based on what the camera
@@ -282,196 +293,222 @@ load_interface(cam_t *cam) {
sprintf(name, "%dx%d", cam->res[i].x, cam->res[i].y);
new_res = gtk_radio_menu_item_new_with_label_from_widget(GTK_RADIO_MENU_ITEM(small_res), name);
- gtk_container_add(GTK_CONTAINER(GTK_WIDGET(gtk_builder_get_object(cam->xml, "menuitem4_menu"))), new_res);
- gtk_widget_show (new_res);
+ gtk_container_add(GTK_CONTAINER(GTK_WIDGET(gtk_builder_get_object(cam->xml, "menuitem4_menu"))),
+ new_res);
+ gtk_widget_show(new_res);
g_signal_connect(new_res, "activate",
- G_CALLBACK (on_change_size_activate), cam);
+ G_CALLBACK(on_change_size_activate), cam);
gtk_widget_set_name(new_res, name);
if (cam->width == cam->res[i].x && cam->height == cam->res[i].y)
- gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (new_res), TRUE);
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(new_res),
+ TRUE);
else
- gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (new_res), FALSE);
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(new_res),
+ FALSE);
}
/* We won't actually use the small res */
- gtk_widget_hide (small_res);
+ gtk_widget_hide(small_res);
} else {
- g_signal_connect (gtk_builder_get_object(cam->xml, "small"), "activate",
- G_CALLBACK (on_change_size_activate), cam);
-
- new_res = gtk_radio_menu_item_new_with_label_from_widget(GTK_RADIO_MENU_ITEM(small_res), "Medium");
- gtk_container_add(GTK_CONTAINER(GTK_WIDGET(gtk_builder_get_object(cam->xml, "menuitem4_menu"))), new_res);
- gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (new_res), FALSE);
- gtk_widget_show (new_res);
- g_signal_connect(new_res, "activate", G_CALLBACK (on_change_size_activate), cam);
+ g_signal_connect(gtk_builder_get_object(cam->xml, "small"),
+ "activate", G_CALLBACK(on_change_size_activate),
+ cam);
+
+ new_res = gtk_radio_menu_item_new_with_label_from_widget(GTK_RADIO_MENU_ITEM(small_res),
+ "Medium");
+ gtk_container_add(GTK_CONTAINER(GTK_WIDGET(gtk_builder_get_object(cam->xml, "menuitem4_menu"))),
+ new_res);
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(new_res),
+ FALSE);
+ gtk_widget_show(new_res);
+ g_signal_connect(new_res, "activate",
+ G_CALLBACK(on_change_size_activate), cam);
gtk_widget_set_name(new_res, "medium");
- new_res = gtk_radio_menu_item_new_with_label_from_widget(GTK_RADIO_MENU_ITEM(small_res), "Large");
- gtk_container_add(GTK_CONTAINER(GTK_WIDGET(gtk_builder_get_object(cam->xml, "menuitem4_menu"))), new_res);
- gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (new_res), FALSE);
- gtk_widget_show (new_res);
- g_signal_connect(new_res, "activate", G_CALLBACK (on_change_size_activate), cam);
+ new_res = gtk_radio_menu_item_new_with_label_from_widget(GTK_RADIO_MENU_ITEM(small_res),
+ "Large");
+ gtk_container_add(GTK_CONTAINER(GTK_WIDGET(gtk_builder_get_object(cam->xml, "menuitem4_menu"))),
+ new_res);
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(new_res),
+ FALSE);
+ gtk_widget_show(new_res);
+ g_signal_connect(new_res, "activate",
+ G_CALLBACK(on_change_size_activate), cam);
gtk_widget_set_name(new_res, "large");
}
//g_signal_connect(cam->xml, "capture_func", G_CALLBACK(on_change_size_activate), cam);
- g_signal_connect (gtk_builder_get_object(cam->xml, "button1"), "clicked",
- G_CALLBACK (capture_func), cam);
- g_signal_connect (window, "delete-event",
- G_CALLBACK (delete_event), NULL);
+ g_signal_connect(gtk_builder_get_object(cam->xml, "button1"),
+ "clicked", G_CALLBACK(capture_func), cam);
+ g_signal_connect(window, "delete-event", G_CALLBACK(delete_event),
+ NULL);
/* sliders */
if (cam->contrast < 0) {
- gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(cam->xml, "contrast_icon")));
- gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(cam->xml, "contrast_label")));
- gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(cam->xml, "contrast_slider")));
+ gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(cam->xml,
+ "contrast_icon")));
+ gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(cam->xml,
+ "contrast_label")));
+ gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(cam->xml,
+ "contrast_slider")));
} else {
- g_signal_connect (gtk_builder_get_object(cam->xml, "contrast_slider"),
- "value-changed", G_CALLBACK (contrast_change), cam);
- gtk_range_set_value ((GtkRange *)
- GTK_WIDGET(gtk_builder_get_object(cam->xml, "contrast_slider")),
- (int) (cam->contrast / 256));
+ g_signal_connect(gtk_builder_get_object(cam->xml, "contrast_slider"),
+ "value-changed", G_CALLBACK(contrast_change), cam);
+ gtk_range_set_value((GtkRange *)GTK_WIDGET(gtk_builder_get_object(cam->xml, "contrast_slider")),
+ (int)(cam->contrast / 256));
}
if (cam->brightness < 0) {
- gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(cam->xml, "brightness_icon")));
- gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(cam->xml, "brightness_label")));
- gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(cam->xml, "brightness_slider")));
+ gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(cam->xml,
+ "brightness_icon")));
+ gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(cam->xml,
+ "brightness_label")));
+ gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(cam->xml,
+ "brightness_slider")));
} else {
- g_signal_connect (gtk_builder_get_object(cam->xml, "brightness_slider"),
- "value-changed", G_CALLBACK (brightness_change), cam);
- gtk_range_set_value ((GtkRange *)
- GTK_WIDGET(gtk_builder_get_object(cam->xml, "brightness_slider")),
- (int) (cam->brightness / 256));
+ g_signal_connect(gtk_builder_get_object(cam->xml, "brightness_slider"),
+ "value-changed", G_CALLBACK(brightness_change), cam);
+ gtk_range_set_value((GtkRange *)GTK_WIDGET(gtk_builder_get_object(cam->xml, "brightness_slider")),
+ (int)(cam->brightness / 256));
}
if (cam->colour < 1) {
- gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(cam->xml, "color_icon")));
- gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(cam->xml, "color_label")));
- gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(cam->xml, "color_slider")));
+ gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(cam->xml,
+ "color_icon")));
+ gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(cam->xml,
+ "color_label")));
+ gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(cam->xml,
+ "color_slider")));
} else {
- g_signal_connect (gtk_builder_get_object(cam->xml, "color_slider"),
- "value-changed", G_CALLBACK (colour_change), cam);
- gtk_range_set_value ((GtkRange *)
- GTK_WIDGET(gtk_builder_get_object(cam->xml, "color_slider")),
- (int) (cam->colour / 256));
+ g_signal_connect(gtk_builder_get_object(cam->xml, "color_slider"),
+ "value-changed", G_CALLBACK(colour_change), cam);
+ gtk_range_set_value((GtkRange *)GTK_WIDGET(gtk_builder_get_object(cam->xml, "color_slider")),
+ (int)(cam->colour / 256));
}
if (cam->hue < 0) {
- gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(cam->xml, "hue_icon")));
- gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(cam->xml, "hue_label")));
- gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(cam->xml, "hue_slider")));
+ gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(cam->xml,
+ "hue_icon")));
+ gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(cam->xml,
+ "hue_label")));
+ gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(cam->xml,
+ "hue_slider")));
} else {
- g_signal_connect (gtk_builder_get_object(cam->xml, "hue_slider"),
- "value-changed", G_CALLBACK (hue_change), cam);
- gtk_range_set_value ((GtkRange *)
- GTK_WIDGET(gtk_builder_get_object(cam->xml, "hue_slider")),
- (int) (cam->hue / 256));
+ g_signal_connect(gtk_builder_get_object(cam->xml, "hue_slider"),
+ "value-changed", G_CALLBACK(hue_change), cam);
+ gtk_range_set_value((GtkRange *)GTK_WIDGET(gtk_builder_get_object(cam->xml, "hue_slider")),
+ (int)(cam->hue / 256));
}
if (cam->whiteness < 0) {
- gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(cam->xml, "balance_icon")));
- gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(cam->xml, "balance_label")));
- gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(cam->xml, "balance_slider")));
+ gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(cam->xml,
+ "balance_icon")));
+ gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(cam->xml,
+ "balance_label")));
+ gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(cam->xml,
+ "balance_slider")));
} else {
- g_signal_connect (gtk_builder_get_object(cam->xml, "balance_slider"),
- "value-changed", G_CALLBACK (wb_change), cam);
- gtk_range_set_value ((GtkRange *)
- GTK_WIDGET(gtk_builder_get_object(cam->xml, "balance_slider")),
- (int) (cam->whiteness / 256));
+ g_signal_connect(gtk_builder_get_object(cam->xml, "balance_slider"),
+ "value-changed", G_CALLBACK(wb_change), cam);
+ gtk_range_set_value((GtkRange *)GTK_WIDGET(gtk_builder_get_object(cam->xml, "balance_slider")),
+ (int)(cam->whiteness / 256));
}
/* buttons */
- g_signal_connect (gtk_builder_get_object(cam->xml, "quit"), "activate",
- G_CALLBACK (on_quit_activate), cam);
- g_signal_connect (gtk_builder_get_object(cam->xml, "imagemenuitem3"),
- "activate", G_CALLBACK (on_preferences1_activate), cam);
- g_signal_connect (gtk_builder_get_object(cam->xml, "imagemenuitem4"),
- "activate", G_CALLBACK (on_about_activate), cam);
+ g_signal_connect(gtk_builder_get_object(cam->xml, "quit"), "activate",
+ G_CALLBACK(on_quit_activate), cam);
+ g_signal_connect(gtk_builder_get_object(cam->xml, "imagemenuitem3"),
+ "activate", G_CALLBACK(on_preferences1_activate),
+ cam);
+ g_signal_connect(gtk_builder_get_object(cam->xml, "imagemenuitem4"),
+ "activate", G_CALLBACK(on_about_activate), cam);
/* prefs */
- g_signal_connect (gtk_builder_get_object(cam->xml, "okbutton1"), "clicked",
- G_CALLBACK (prefs_func), cam);
+ g_signal_connect(gtk_builder_get_object(cam->xml, "okbutton1"),
+ "clicked", G_CALLBACK(prefs_func), cam);
/* general */
- g_signal_connect (gtk_builder_get_object(cam->xml, "captured_cb"), "toggled",
- G_CALLBACK (cap_func), cam);
+ g_signal_connect(gtk_builder_get_object(cam->xml, "captured_cb"),
+ "toggled", G_CALLBACK(cap_func), cam);
- gtk_toggle_button_set_active ((GtkToggleButton *)
- gtk_builder_get_object (cam->xml,
+ gtk_toggle_button_set_active((GtkToggleButton *)
+ gtk_builder_get_object(cam->xml,
"captured_cb"),
- cam->cap);
+ cam->cap);
- g_signal_connect (gtk_builder_get_object(cam->xml, "rcapture"), "toggled",
- G_CALLBACK (rcap_func), cam);
- gtk_toggle_button_set_active ((GtkToggleButton *)
- gtk_builder_get_object (cam->xml,
+ g_signal_connect(gtk_builder_get_object(cam->xml, "rcapture"),
+ "toggled", G_CALLBACK(rcap_func), cam);
+ gtk_toggle_button_set_active((GtkToggleButton *)
+ gtk_builder_get_object(cam->xml,
"rcapture"),
- cam->rcap);
+ cam->rcap);
- g_signal_connect (gtk_builder_get_object(cam->xml, "acapture"), "toggled",
- G_CALLBACK (acap_func), cam);
- gtk_toggle_button_set_active ((GtkToggleButton *)
- gtk_builder_get_object (cam->xml,
+ g_signal_connect(gtk_builder_get_object(cam->xml, "acapture"),
+ "toggled", G_CALLBACK(acap_func), cam);
+ gtk_toggle_button_set_active((GtkToggleButton *)
+ gtk_builder_get_object(cam->xml,
"acapture"),
- cam->acap);
+ cam->acap);
- g_signal_connect (gtk_builder_get_object(cam->xml, "interval_entry"),
- "value-changed", G_CALLBACK (interval_change), cam);
+ g_signal_connect(gtk_builder_get_object(cam->xml, "interval_entry"),
+ "value-changed", G_CALLBACK(interval_change), cam);
- gtk_spin_button_set_value ((GtkSpinButton *)
- gtk_builder_get_object (cam->xml,
+ gtk_spin_button_set_value((GtkSpinButton *)
+ gtk_builder_get_object(cam->xml,
"interval_entry"),
- (cam->timeout_interval / 60000));
+ (cam->timeout_interval / 60000));
/* local */
dentry = GTK_WIDGET(gtk_builder_get_object(cam->xml, "dentry"));
entry2 = GTK_WIDGET(gtk_builder_get_object(cam->xml, "entry2"));
- gtk_file_chooser_set_current_folder((GtkFileChooser *) dentry, cam->pixdir);
+ gtk_file_chooser_set_current_folder((GtkFileChooser *) dentry,
+ cam->pixdir);
- gtk_entry_set_text (GTK_ENTRY (entry2), cam->capturefile);
+ gtk_entry_set_text(GTK_ENTRY(entry2), cam->capturefile);
- g_signal_connect (gtk_builder_get_object(cam->xml, "appendbutton"),
- "toggled", G_CALLBACK (append_func), cam);
- gtk_toggle_button_set_active ((GtkToggleButton *)
- gtk_builder_get_object (cam->xml,
+ g_signal_connect(gtk_builder_get_object(cam->xml, "appendbutton"),
+ "toggled", G_CALLBACK(append_func), cam);
+ gtk_toggle_button_set_active((GtkToggleButton *)
+ gtk_builder_get_object(cam->xml,
"appendbutton"),
- cam->timefn);
+ cam->timefn);
- g_signal_connect (gtk_builder_get_object(cam->xml, "jpgb"),
- "toggled", G_CALLBACK (jpg_func), cam);
+ g_signal_connect(gtk_builder_get_object(cam->xml, "jpgb"),
+ "toggled", G_CALLBACK(jpg_func), cam);
if (cam->savetype == JPEG) {
- gtk_toggle_button_set_active ((GtkToggleButton *)
- gtk_builder_get_object (cam->xml,
+ gtk_toggle_button_set_active((GtkToggleButton *)
+ gtk_builder_get_object(cam->xml,
"jpgb"), TRUE);
}
- g_signal_connect (gtk_builder_get_object(cam->xml, "pngb"),
- "toggled", G_CALLBACK (png_func), cam);
+ g_signal_connect(gtk_builder_get_object(cam->xml, "pngb"),
+ "toggled", G_CALLBACK(png_func), cam);
if (cam->savetype == PNG) {
- gtk_toggle_button_set_active ((GtkToggleButton *)
- gtk_builder_get_object (cam->xml,
+ gtk_toggle_button_set_active((GtkToggleButton *)
+ gtk_builder_get_object(cam->xml,
"pngb"), TRUE);
}
- g_signal_connect (gtk_builder_get_object(cam->xml, "tsbutton"),
- "toggled", G_CALLBACK (ts_func), cam);
- gtk_toggle_button_set_active ((GtkToggleButton *)
- gtk_builder_get_object (cam->xml,
+ g_signal_connect(gtk_builder_get_object(cam->xml, "tsbutton"),
+ "toggled", G_CALLBACK(ts_func), cam);
+ gtk_toggle_button_set_active((GtkToggleButton *)
+ gtk_builder_get_object(cam->xml,
"tsbutton"),
- cam->timestamp);
+ cam->timestamp);
/* remote */
host_entry = GTK_WIDGET(gtk_builder_get_object(cam->xml, "host_entry"));
protocol = GTK_WIDGET(gtk_builder_get_object(cam->xml, "remote_protocol"));
rdir_entry = GTK_WIDGET(gtk_builder_get_object(cam->xml, "rdir_entry"));
- filename_entry = GTK_WIDGET(gtk_builder_get_object(cam->xml, "filename_entry"));
+ filename_entry = GTK_WIDGET(gtk_builder_get_object(cam->xml,
+ "filename_entry"));
- gtk_entry_set_text (GTK_ENTRY (host_entry), cam->host);
- gtk_entry_set_text (GTK_ENTRY (rdir_entry), cam->rdir);
- gtk_entry_set_text (GTK_ENTRY (filename_entry), cam->rcapturefile);
+ gtk_entry_set_text(GTK_ENTRY(host_entry), cam->host);
+ gtk_entry_set_text(GTK_ENTRY(rdir_entry), cam->rdir);
+ gtk_entry_set_text(GTK_ENTRY(filename_entry), cam->rcapturefile);
if (!cam->proto)
cam->proto = g_strdup(protos[0]);
- for (i = 0; i < G_N_ELEMENTS (protos); i++) {
- gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(protocol), protos[i]);
+ for (i = 0; i < G_N_ELEMENTS(protos); i++) {
+ gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(protocol),
+ protos[i]);
if (!strcmp(cam->proto, protos[i]))
gtk_combo_box_set_active(GTK_COMBO_BOX(protocol), i);
}
@@ -483,60 +520,50 @@ load_interface(cam_t *cam) {
cam->uri = NULL;
}
- g_signal_connect (gtk_builder_get_object(cam->xml, "timecb"),
- "toggled", G_CALLBACK (rappend_func), cam);
- gtk_toggle_button_set_active ((GtkToggleButton *)
- gtk_builder_get_object (cam->xml,
- "timecb"),
- cam->rtimefn);
+ g_signal_connect(gtk_builder_get_object(cam->xml, "timecb"),
+ "toggled", G_CALLBACK(rappend_func), cam);
+ gtk_toggle_button_set_active((GtkToggleButton *)gtk_builder_get_object(cam->xml, "timecb"),
+ cam->rtimefn);
- g_signal_connect (gtk_builder_get_object(cam->xml, "fjpgb"),
- "toggled", G_CALLBACK (rjpg_func), cam);
+ g_signal_connect(gtk_builder_get_object(cam->xml, "fjpgb"),
+ "toggled", G_CALLBACK(rjpg_func), cam);
if (cam->rsavetype == JPEG) {
- gtk_toggle_button_set_active ((GtkToggleButton *)
- gtk_builder_get_object (cam->xml,
- "fjpgb"), TRUE);
+ gtk_toggle_button_set_active((GtkToggleButton *)gtk_builder_get_object(cam->xml, "fjpgb"),
+ TRUE);
}
- g_signal_connect (gtk_builder_get_object(cam->xml, "fpngb"),
- "toggled", G_CALLBACK (rpng_func), cam);
+ g_signal_connect(gtk_builder_get_object(cam->xml, "fpngb"),
+ "toggled", G_CALLBACK(rpng_func), cam);
if (cam->rsavetype == PNG) {
- gtk_toggle_button_set_active ((GtkToggleButton *)
- gtk_builder_get_object (cam->xml,
- "fpngb"), TRUE);
+ gtk_toggle_button_set_active((GtkToggleButton *)gtk_builder_get_object(cam->xml, "fpngb"),
+ TRUE);
}
- g_signal_connect (gtk_builder_get_object(cam->xml, "tsbutton2"),
- "toggled", G_CALLBACK (rts_func), cam);
- gtk_toggle_button_set_active ((GtkToggleButton *)
- gtk_builder_get_object (cam->xml,
- "tsbutton2"),
- cam->rtimestamp);
+ g_signal_connect(gtk_builder_get_object(cam->xml, "tsbutton2"),
+ "toggled", G_CALLBACK(rts_func), cam);
+ gtk_toggle_button_set_active((GtkToggleButton *)gtk_builder_get_object(cam->xml, "tsbutton2"),
+ cam->rtimestamp);
/* timestamp */
- g_signal_connect (gtk_builder_get_object(cam->xml, "cscb"),
- "toggled", G_CALLBACK (customstring_func), cam);
- gtk_toggle_button_set_active ((GtkToggleButton *)
- GTK_WIDGET(gtk_builder_get_object(cam->xml, "cscb")),
- cam->usestring);
+ g_signal_connect(gtk_builder_get_object(cam->xml, "cscb"),
+ "toggled", G_CALLBACK(customstring_func), cam);
+ gtk_toggle_button_set_active((GtkToggleButton *)GTK_WIDGET(gtk_builder_get_object(cam->xml, "cscb")),
+ cam->usestring);
string_entry = GTK_WIDGET(gtk_builder_get_object(cam->xml, "string_entry"));
- gtk_entry_set_text (GTK_ENTRY (string_entry), cam->ts_string);
+ gtk_entry_set_text(GTK_ENTRY(string_entry), cam->ts_string);
- g_signal_connect (gtk_builder_get_object(cam->xml, "tscb"),
- "toggled", G_CALLBACK (drawdate_func), cam);
- gtk_toggle_button_set_active ((GtkToggleButton *)
- GTK_WIDGET(gtk_builder_get_object(cam->xml, "tscb")),
- cam->usedate);
+ g_signal_connect(gtk_builder_get_object(cam->xml, "tscb"),
+ "toggled", G_CALLBACK(drawdate_func), cam);
+ gtk_toggle_button_set_active((GtkToggleButton *)GTK_WIDGET(gtk_builder_get_object(cam->xml, "tscb")),
+ cam->usedate);
cam->status = GTK_WIDGET(gtk_builder_get_object(cam->xml, "status"));
- set_sensitive (cam);
- gtk_widget_set_sensitive (GTK_WIDGET(gtk_builder_get_object
- (cam->xml, "string_entry")), cam->usestring);
+ set_sensitive(cam);
+ gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(cam->xml, "string_entry")),
+ cam->usestring);
- gtk_widget_set_size_request (GTK_WIDGET(gtk_builder_get_object(cam->xml, "da")),
- cam->width, cam->height);
+ gtk_widget_set_size_request(GTK_WIDGET(gtk_builder_get_object(cam->xml, "da")),
+ cam->width, cam->height);
prefswindow = GTK_WIDGET(gtk_builder_get_object(cam->xml, "prefswindow"));
}
-
-
diff --git a/src/camorama-window.h b/src/camorama-window.h
index e66c87e..2727246 100644
--- a/src/camorama-window.h
+++ b/src/camorama-window.h
@@ -33,4 +33,4 @@ void load_interface(cam_t *cam);
G_END_DECLS
-#endif /* !CAMORAMA_WINDOW_H */
+#endif /* !CAMORAMA_WINDOW_H */
diff --git a/src/fileio.c b/src/fileio.c
index 28c7add..7eb0518 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -9,15 +9,15 @@
#include <time.h>
#include <stdio.h>
-# define CHAR_HEIGHT 11
-# define CHAR_WIDTH 6
-# define CHAR_START 4
-# include "font_6x11.h"
+#define CHAR_HEIGHT 11
+#define CHAR_WIDTH 6
+#define CHAR_START 4
+#include "font_6x11.h"
/* add timestamp/text to image - "borrowed" from gspy */
int
-add_rgb_text (guchar *image, int width, int height, char *cstring, char *format,
- gboolean str, gboolean date)
+add_rgb_text(guchar *image, int width, int height, char *cstring,
+ char *format, gboolean str, gboolean date)
{
time_t t;
struct tm *tm;
@@ -28,24 +28,23 @@ add_rgb_text (guchar *image, int width, int height, char *cstring, char *format,
gchar *image_label;
if (str == TRUE && date == TRUE) {
- image_label = g_strdup_printf ("%s - %s", cstring, format);
-
+ image_label = g_strdup_printf("%s - %s", cstring, format);
} else if (str == TRUE && date == FALSE) {
- image_label = g_strdup_printf ("%s", cstring);
+ image_label = g_strdup_printf("%s", cstring);
} else if (str == FALSE && date == TRUE) {
- image_label = g_strdup_printf ("%s", format);
+ image_label = g_strdup_printf("%s", format);
} else if (str == FALSE && date == FALSE) {
return 0;
} else {
image_label = g_strdup("");
}
- time (&t);
- tm = localtime (&t);
+ time(&t);
+ tm = localtime(&t);
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wformat-nonliteral"
- len = strftime (line, sizeof(line) - 1, image_label, tm);
+ len = strftime(line, sizeof(line) - 1, image_label, tm);
#pragma GCC diagnostic pop
for (y = 0; y < CHAR_HEIGHT; y++) {
@@ -58,25 +57,23 @@ add_rgb_text (guchar *image, int width, int height, char *cstring, char *format,
f = fontdata[line[x] * CHAR_HEIGHT + y];
/* loop for each column of font data */
- for (i = CHAR_WIDTH - 1; i >= 0; i--) {
+ for (i = CHAR_WIDTH - 1; i >= 0; i--) {
/* write a black background under text
* comment out the following block to get white letters on picture background */
/* ptr[0] = 0;
* ptr[1] = 0;
* ptr[2] = 0; */
if (f & (CHAR_START << i)) {
-
/* white text */
-
total = ptr[0] + ptr[1] + ptr[2];
if (total / 3 < 128) {
- ptr[0] = 255;
- ptr[1] = 255;
- ptr[2] = 255;
+ ptr[0] = 255;
+ ptr[1] = 255;
+ ptr[2] = 255;
} else {
- ptr[0] = 0;
- ptr[1] = 0;
- ptr[2] = 0;
+ ptr[0] = 0;
+ ptr[1] = 0;
+ ptr[2] = 0;
}
}
ptr += 3;
@@ -86,7 +83,7 @@ add_rgb_text (guchar *image, int width, int height, char *cstring, char *format,
return 1;
}
-void remote_save (cam_t *cam)
+void remote_save(cam_t *cam)
{
GThread *remote_thread;
char *filename, *error_message;
@@ -96,58 +93,55 @@ void remote_save (cam_t *cam)
switch (cam->rsavetype) {
case JPEG:
- ext = g_strdup ((gchar *) "jpeg");
+ ext = g_strdup((gchar *) "jpeg");
break;
case PNG:
- ext = g_strdup ((gchar *) "png");
+ ext = g_strdup((gchar *) "png");
break;
default:
- ext = g_strdup ((gchar *) "jpeg");
+ ext = g_strdup((gchar *) "jpeg");
}
if (cam->rtimestamp == TRUE) {
- add_rgb_text (cam->tmp, cam->width, cam->height, cam->ts_string,
- cam->date_format, cam->usestring, cam->usedate);
+ add_rgb_text(cam->tmp, cam->width, cam->height, cam->ts_string,
+ cam->date_format, cam->usestring, cam->usedate);
}
- if (chdir ("/tmp") != 0) {
- error_dialog (_("Could save temporary image file in /tmp."));
- g_free (ext);
+ if (chdir("/tmp") != 0) {
+ error_dialog(_("Could save temporary image file in /tmp."));
+ g_free(ext);
}
- filename = g_strdup_printf ("camorama.%s", ext);
- pb = gdk_pixbuf_new_from_data (cam->tmp, GDK_COLORSPACE_RGB, FALSE, 8,
- cam->width, cam->height,
- cam->width * cam->bpp / 8, NULL,
- NULL);
-
+ filename = g_strdup_printf("camorama.%s", ext);
+ pb = gdk_pixbuf_new_from_data(cam->tmp, GDK_COLORSPACE_RGB, FALSE, 8,
+ cam->width, cam->height,
+ cam->width * cam->bpp / 8, NULL, NULL);
+
if (pb == NULL) {
- error_message =
- g_strdup_printf (_("Unable to create image '%s'."), filename);
- error_dialog (error_message);
- g_free (error_message);
+ error_message = g_strdup_printf(_("Unable to create image '%s'."),
+ filename);
+ error_dialog(error_message);
+ g_free(error_message);
}
- pbs = gdk_pixbuf_save (pb, filename, ext, NULL, NULL);
+ pbs = gdk_pixbuf_save(pb, filename, ext, NULL, NULL);
if (pbs == FALSE) {
- error_message =
- g_strdup_printf (_("Could not save image '%s/%s'."),
- cam->pixdir, filename);
- error_dialog (error_message);
- g_free (filename);
+ error_message = g_strdup_printf(_("Could not save image '%s/%s'."),
+ cam->pixdir, filename);
+ error_dialog(error_message);
+ g_free(filename);
}
- g_free (filename);
+ g_free(filename);
- remote_thread = g_thread_new ("remote", &save_thread, cam);
+ remote_thread = g_thread_new("remote", &save_thread, cam);
if (!remote_thread) {
- error_message =
- g_strdup_printf (_("Could not create a thread to save image '%s/%s'."),
- cam->pixdir, filename);
- error_dialog (error_message);
+ error_message = g_strdup_printf(_("Could not create a thread to save image '%s/%s'."),
+ cam->pixdir, filename);
+ error_dialog(error_message);
}
- g_free (ext);
+ g_free(ext);
}
struct mount_params {
@@ -156,16 +150,16 @@ struct mount_params {
gchar *uri;
};
-static void mount_cb (GObject * obj, GAsyncResult * res, gpointer user_data)
+static void mount_cb(GObject *obj, GAsyncResult *res, gpointer user_data)
{
cam_t *cam = user_data;
gboolean ret;
GError *err = NULL;
- ret = g_file_mount_enclosing_volume_finish (G_FILE (obj), res, &err);
+ ret = g_file_mount_enclosing_volume_finish(G_FILE(obj), res, &err);
/* Ignore G_IO_ERROR_ALREADY_MOUNTED */
- if (g_error_matches (err, G_IO_ERROR, G_IO_ERROR_ALREADY_MOUNTED))
+ if (g_error_matches(err, G_IO_ERROR, G_IO_ERROR_ALREADY_MOUNTED))
ret = 1;
if (ret) {
@@ -175,16 +169,17 @@ static void mount_cb (GObject * obj, GAsyncResult * res, gpointer user_data)
gconf_client_set_string(cam->gc, KEY8, cam->rdir, NULL);
gconf_client_set_string(cam->gc, KEY9, cam->rcapturefile, NULL);
} else {
- gchar *error_message = g_strdup_printf (_("An error occurred mounting %s:%s."),
- cam->uri, err->message);
- error_dialog (error_message);
- g_free (error_message);
+ gchar *error_message = g_strdup_printf(_("An error occurred mounting %s:%s."),
+ cam->uri, err->message);
+
+ error_dialog(error_message);
+ g_free(error_message);
}
}
gchar *volume_uri(gchar *host, gchar *proto, gchar *rdir)
{
- return g_strdup_printf ("%s://%s/%s", proto, host, rdir);
+ return g_strdup_printf("%s://%s/%s", proto, host, rdir);
}
void umount_volume(cam_t *cam)
@@ -210,19 +205,20 @@ void mount_volume(cam_t *cam)
cam->rdir_mop = NULL;
if (!cam->rdir_mop) {
- gchar *error_message = g_strdup_printf (_("An error occurred accessing %s."),
- cam->uri);
- error_dialog (error_message);
- g_free (error_message);
+ gchar *error_message = g_strdup_printf(_("An error occurred accessing %s."),
+ cam->uri);
+
+ error_dialog(error_message);
+ g_free(error_message);
return;
}
- g_file_mount_enclosing_volume(cam->rdir_file, G_MOUNT_MOUNT_NONE,
+ g_file_mount_enclosing_volume(cam->rdir_file, G_MOUNT_MOUNT_NONE,
cam->rdir_mop, NULL, mount_cb, cam);
}
-gpointer save_thread (gpointer data)
+gpointer save_thread(gpointer data)
{
cam_t *cam = data;
char *output_uri_string, *input_uri_string;
@@ -243,99 +239,94 @@ gpointer save_thread (gpointer data)
switch (cam->rsavetype) {
case JPEG:
- ext = g_strdup ((gchar *) "jpeg");
+ ext = g_strdup((gchar *) "jpeg");
break;
case PNG:
- ext = g_strdup ((gchar *) "png");
+ ext = g_strdup((gchar *) "png");
break;
default:
- ext = g_strdup ((gchar *) "jpeg");
+ ext = g_strdup((gchar *) "jpeg");
}
- input_uri_string = g_strdup_printf ("camorama.%s", ext);
+ input_uri_string = g_strdup_printf("camorama.%s", ext);
- if (chdir ("/tmp") != 0) {
- error_dialog (_("Could save temporary image file in /tmp."));
- g_free (ext);
- g_thread_exit (NULL);
+ if (chdir("/tmp") != 0) {
+ error_dialog(_("Could save temporary image file in /tmp."));
+ g_free(ext);
+ g_thread_exit(NULL);
}
- if (!(fp = fopen (input_uri_string, "rb"))) {
- error_message =
- g_strdup_printf (_
- ("Unable to open temporary image file '%s'.\nCannot upload image."),
- input_uri_string);
- error_dialog (error_message);
- g_free (input_uri_string);
- g_free (error_message);
- g_thread_exit (NULL);
+ if (!(fp = fopen(input_uri_string, "rb"))) {
+ error_message = g_strdup_printf(_("Unable to open temporary image file '%s'.\nCannot upload image."),
+ input_uri_string);
+ error_dialog(error_message);
+ g_free(input_uri_string);
+ g_free(error_message);
+ g_thread_exit(NULL);
//exit (0);
}
- tmp = malloc (sizeof (char) * cam->width * cam->height * cam->bpp * 2 / 8);
- while (!feof (fp)) {
- bytes += fread (tmp, 1, cam->width * cam->height * cam->bpp / 8, fp);
+ tmp = malloc(sizeof(char) * cam->width * cam->height * cam->bpp * 2 / 8);
+ while (!feof(fp)) {
+ bytes += fread(tmp, 1, cam->width * cam->height * cam->bpp / 8, fp);
}
- fclose (fp);
+ fclose(fp);
- time (&t);
- tm = localtime (&t);
- strftime (timenow, sizeof (timenow) - 1, "%s", tm);
+ time(&t);
+ tm = localtime(&t);
+ strftime(timenow, sizeof(timenow) - 1, "%s", tm);
if (cam->rtimefn == TRUE) {
- output_uri_string = g_strdup_printf ("%s/%s-%s.%s", cam->uri,
- cam->capturefile,
- timenow, ext);
+ output_uri_string = g_strdup_printf("%s/%s-%s.%s", cam->uri,
+ cam->capturefile,
+ timenow, ext);
} else {
- output_uri_string = g_strdup_printf ("%s/%s.%s", cam->uri,
- cam->capturefile, ext);
+ output_uri_string = g_strdup_printf("%s/%s.%s", cam->uri,
+ cam->capturefile, ext);
}
- uri_1 = g_file_new_for_uri (output_uri_string);
+ uri_1 = g_file_new_for_uri(output_uri_string);
if (!uri_1) {
- error_message =
- g_strdup_printf (_("An error occurred opening %s."),
- output_uri_string);
- error_dialog (error_message);
- g_free (error_message);
- g_thread_exit (NULL);
+ error_message = g_strdup_printf(_("An error occurred opening %s."),
+ output_uri_string);
+ error_dialog(error_message);
+ g_free(error_message);
+ g_thread_exit(NULL);
}
- fout = g_file_replace (uri_1, NULL, FALSE,
- G_FILE_CREATE_REPLACE_DESTINATION, NULL, &error);
+ fout = g_file_replace(uri_1, NULL, FALSE,
+ G_FILE_CREATE_REPLACE_DESTINATION, NULL, &error);
if (error) {
error_message =
- g_strdup_printf (_("An error occurred opening %s for write: %s."),
- output_uri_string, error->message);
- error_dialog (error_message);
- g_free (error_message);
- g_thread_exit (NULL);
+ g_strdup_printf(_("An error occurred opening %s for write: %s."),
+ output_uri_string, error->message);
+ error_dialog(error_message);
+ g_free(error_message);
+ g_thread_exit(NULL);
}
/* write the data */
g_output_stream_write(G_OUTPUT_STREAM(fout), tmp, bytes, NULL, &error);
if (error) {
- error_message =
- g_strdup_printf (_("An error occurred writing to %s: %s."),
- output_uri_string, error->message);
- error_dialog (error_message);
- g_free (error_message);
+ error_message = g_strdup_printf(_("An error occurred writing to %s: %s."),
+ output_uri_string, error->message);
+ error_dialog(error_message);
+ g_free(error_message);
}
g_output_stream_close(G_OUTPUT_STREAM(fout), NULL, &error);
if (error) {
- error_message =
- g_strdup_printf (_("An error occurred closing %s: %s."),
- output_uri_string, error->message);
- error_dialog (error_message);
- g_free (error_message);
+ error_message = g_strdup_printf(_("An error occurred closing %s: %s."),
+ output_uri_string, error->message);
+ error_dialog(error_message);
+ g_free(error_message);
}
g_object_unref(uri_1);
- free (tmp);
- g_thread_exit (NULL);
+ free(tmp);
+ g_thread_exit(NULL);
return NULL;
}
-int local_save (cam_t *cam)
+int local_save(cam_t *cam)
{
gchar *filename, *ext;
time_t t;
@@ -345,88 +336,78 @@ int local_save (cam_t *cam)
gboolean pbs;
GdkPixbuf *pb;
- /* todo:
- * run gdk-pixbuf-query-loaders to get available image types*/
+ /*
+ * TODO: run gdk-pixbuf-query-loaders to get available image types
+ */
switch (cam->savetype) {
case JPEG:
- ext = g_strdup ((gchar *) "jpeg");
+ ext = g_strdup((gchar *) "jpeg");
break;
case PNG:
- ext = g_strdup ((gchar *) "png");
+ ext = g_strdup((gchar *) "png");
break;
default:
- ext = g_strdup ((gchar *) "jpeg");
+ ext = g_strdup((gchar *) "jpeg");
}
- if (cam->timestamp == TRUE) {
- add_rgb_text (cam->tmp, cam->width, cam->height, cam->ts_string,
- cam->date_format, cam->usestring, cam->usedate);
- }
+ if (cam->timestamp == TRUE)
+ add_rgb_text(cam->tmp, cam->width, cam->height, cam->ts_string,
+ cam->date_format, cam->usestring, cam->usedate);
- time (&t);
- tm = localtime (&t);
- len = strftime (timenow, sizeof (timenow) - 1, "%s", tm);
+ time(&t);
+ tm = localtime(&t);
+ len = strftime(timenow, sizeof(timenow) - 1, "%s", tm);
if (len < 0)
timenow[0] = '\0';
- if (cam->debug == TRUE) {
- fprintf (stderr, "time = %s\n", timenow);
- }
+ if (cam->debug == TRUE)
+ fprintf(stderr, "time = %s\n", timenow);
- if (cam->timefn == TRUE) {
- filename =
- g_strdup_printf ("%s-%s.%s", cam->capturefile, timenow, ext);
- } else {
- filename = g_strdup_printf ("%s.%s", cam->capturefile, ext);
- }
+ if (cam->timefn == TRUE)
+ filename = g_strdup_printf("%s-%s.%s", cam->capturefile, timenow, ext);
+ else
+ filename = g_strdup_printf("%s.%s", cam->capturefile, ext);
- if (cam->debug == TRUE) {
- fprintf (stderr, "filename = %s\n", filename);
- }
- mkd = mkdir (cam->pixdir, 0777);
+ if (cam->debug == TRUE)
+ fprintf(stderr, "filename = %s\n", filename);
- if (cam->debug == TRUE) {
- perror ("create dir: ");
- }
+ mkd = mkdir(cam->pixdir, 0777);
+
+ if (cam->debug == TRUE)
+ perror("create dir: ");
if (mkd != 0 && errno != EEXIST) {
- error_message =
- g_strdup_printf (_
- ("Could not create directory '%s'."),
- cam->pixdir);
- error_dialog (error_message);
- g_free (filename);
- g_free (error_message);
+ error_message = g_strdup_printf(_("Could not create directory '%s'."),
+ cam->pixdir);
+ error_dialog(error_message);
+ g_free(filename);
+ g_free(error_message);
return -1;
}
- if (chdir (cam->pixdir) != 0) {
- error_message =
- g_strdup_printf (_
- ("Could not change to directory '%s'."),
- cam->pixdir);
- error_dialog (error_message);
- g_free (filename);
- g_free (error_message);
+ if (chdir(cam->pixdir) != 0) {
+ error_message = g_strdup_printf(_("Could not change to directory '%s'."),
+ cam->pixdir);
+ error_dialog(error_message);
+ g_free(filename);
+ g_free(error_message);
return -1;
}
- pb = gdk_pixbuf_new_from_data (cam->tmp, GDK_COLORSPACE_RGB, FALSE, 8,
- cam->width, cam->height,
- (cam->width * cam->bpp / 8), NULL,
- NULL);
- pbs = gdk_pixbuf_save (pb, filename, ext, NULL, NULL);
- if (pbs == FALSE) {
- error_message =
- g_strdup_printf (_("Could not save image '%s/%s'."),
- cam->pixdir, filename);
- error_dialog (error_message);
- g_free (filename);
- g_free (error_message);
+ pb = gdk_pixbuf_new_from_data(cam->tmp, GDK_COLORSPACE_RGB, FALSE, 8,
+ cam->width, cam->height,
+ (cam->width * cam->bpp / 8), NULL, NULL);
+ pbs = gdk_pixbuf_save(pb, filename, ext, NULL, NULL);
+ if (pbs == FALSE) {
+ error_message = g_strdup_printf(_("Could not save image '%s/%s'."),
+ cam->pixdir, filename);
+ error_dialog(error_message);
+ g_free(filename);
+ g_free(error_message);
return -1;
}
- g_free (filename);
+ g_free(filename);
return 0;
}
diff --git a/src/fileio.h b/src/fileio.h
index 61305ea..49f7742 100644
--- a/src/fileio.h
+++ b/src/fileio.h
@@ -1,9 +1,9 @@
#include "v4l.h"
-int add_rgb_text (guchar *, int, int, char *, char *, gboolean, gboolean);
-void remote_save (cam_t *);
-gpointer save_thread (gpointer data);
-int local_save (cam_t *);
+int add_rgb_text(guchar *, int, int, char *, char *, gboolean, gboolean);
+void remote_save(cam_t *);
+gpointer save_thread(gpointer data);
+int local_save(cam_t *);
gchar *volume_uri(gchar *host, gchar *proto, gchar *rdir);
void umount_volume(cam_t *);
-void mount_volume (cam_t *);
+void mount_volume(cam_t *);
diff --git a/src/filter.c b/src/filter.c
index b866604..9baab5d 100644
--- a/src/filter.c
+++ b/src/filter.c
@@ -6,43 +6,53 @@
#include <glib/gi18n.h>
-gchar const*
-camorama_filter_get_name(CamoramaFilter* self) {
- gchar const* name = CAMORAMA_FILTER_GET_CLASS(self)->name;
- g_return_val_if_fail(name, G_OBJECT_TYPE_NAME(self));
- return _(name);
+gchar const *camorama_filter_get_name(CamoramaFilter * self)
+{
+ gchar const *name = CAMORAMA_FILTER_GET_CLASS(self)->name;
+
+ g_return_val_if_fail(name, G_OBJECT_TYPE_NAME(self));
+ return _(name);
}
void
-camorama_filter_apply(CamoramaFilter* self, guchar* image, gint width, gint height, gint depth) {
- g_return_if_fail(CAMORAMA_FILTER_GET_CLASS(self)->filter);
+camorama_filter_apply(CamoramaFilter *self, guchar *image, gint width,
+ gint height, gint depth)
+{
+ g_return_if_fail(CAMORAMA_FILTER_GET_CLASS(self)->filter);
- CAMORAMA_FILTER_GET_CLASS(self)->filter(self, image, width, height, depth);
+ CAMORAMA_FILTER_GET_CLASS(self)->filter(self, image, width, height,
+ depth);
}
/* GType stuff ifor CamoramaFilter */
G_DEFINE_ABSTRACT_TYPE(CamoramaFilter, camorama_filter, G_TYPE_OBJECT);
-static void
-camorama_filter_init(CamoramaFilter* self) {}
+static void camorama_filter_init(CamoramaFilter *self)
+{
+}
-static void
-camorama_filter_class_init(CamoramaFilterClass* self_class) {}
+static void camorama_filter_class_init(CamoramaFilterClass *self_class)
+{
+}
#include "v4l.h"
-static inline void move_420_block (int yTL, int yTR, int yBL, int yBR, int u,
- int v, int rowPixels, unsigned char *rgb,
- int bits);
+static inline void move_420_block(int yTL, int yTR, int yBL, int yBR,
+ int u, int v, int rowPixels,
+ unsigned char *rgb, int bits);
-/*these two functions are borrowed from the ov511 driver, with the author,
- *Mark McClelland's kind encoragement*/
+/*
+ * these two functions are borrowed from the ov511 driver, with the author,
+ * Mark McClelland's kind encoragement
+ */
/* LIMIT: convert a 16.16 fixed-point value to a byte, with clipping. */
-#define LIMIT(x) ((x)>0xffffff?0xff: ((x)<=0xffff?0:((x)>>16)))
+#define LIMIT(x) ((x) > 0xffffff?0xff : ((x) <= 0xffff?0:((x)>>16)))
void
-yuv420p_to_rgb (unsigned char *image, unsigned char *temp, int x, int y, int z) {
+yuv420p_to_rgb(unsigned char *image, unsigned char *temp, int x, int y,
+ int z)
+{
const int numpix = x * y;
const int bytes = z; /* (z*8) >> 3; */
int i, j, y00, y01, y10, y11, u, v;
@@ -50,8 +60,9 @@ yuv420p_to_rgb (unsigned char *image, unsigned char *temp, int x, int y, int z)
unsigned char *pU = pY + numpix;
unsigned char *pV = pU + numpix / 4;
unsigned char *image2 = temp;
- if(FALSE) // FIXME: make TRUE to add debugging in here
- g_print("%s\n", "yuv420p->rgb");
+
+ if (FALSE) // FIXME: make TRUE to add debugging in here
+ g_print("%s\n", "yuv420p->rgb");
for (j = 0; j <= y - 2; j += 2) {
for (i = 0; i <= x - 2; i += 2) {
y00 = *pY;
@@ -61,19 +72,19 @@ yuv420p_to_rgb (unsigned char *image, unsigned char *temp, int x, int y, int z)
u = (*pU++) - 128;
v = (*pV++) - 128;
- move_420_block (y00, y01, y10, y11, u, v, x, image2, z * 8);
+ move_420_block(y00, y01, y10, y11, u, v, x, image2, z * 8);
- pY += 2;
- image2 += 2 * bytes;
- }
- pY += x;
- image2 += x * bytes;
+ pY += 2;
+ image2 += 2 * bytes;
}
+ pY += x;
+ image2 += x * bytes;
+ }
}
static inline void
-move_420_block (int yTL, int yTR, int yBL, int yBR, int u, int v,
- int rowPixels, unsigned char *rgb, int bits)
+move_420_block(int yTL, int yTR, int yBL, int yBR, int u, int v,
+ int rowPixels, unsigned char *rgb, int bits)
{
const int rvScale = 91881;
const int guScale = -22553;
@@ -98,119 +109,135 @@ move_420_block (int yTL, int yTR, int yBL, int yBR, int u, int v,
if (bits == 24) {
/* Write out top two pixels */
- rgb[0] = LIMIT (b + yTL);
- rgb[1] = LIMIT (g + yTL);
- rgb[2] = LIMIT (r + yTL);
+ rgb[0] = LIMIT(b + yTL);
+ rgb[1] = LIMIT(g + yTL);
+ rgb[2] = LIMIT(r + yTL);
- rgb[3] = LIMIT (b + yTR);
- rgb[4] = LIMIT (g + yTR);
- rgb[5] = LIMIT (r + yTR);
+ rgb[3] = LIMIT(b + yTR);
+ rgb[4] = LIMIT(g + yTR);
+ rgb[5] = LIMIT(r + yTR);
/* Skip down to next line to write out bottom two pixels */
rgb += 3 * rowPixels;
- rgb[0] = LIMIT (b + yBL);
- rgb[1] = LIMIT (g + yBL);
- rgb[2] = LIMIT (r + yBL);
+ rgb[0] = LIMIT(b + yBL);
+ rgb[1] = LIMIT(g + yBL);
+ rgb[2] = LIMIT(r + yBL);
- rgb[3] = LIMIT (b + yBR);
- rgb[4] = LIMIT (g + yBR);
- rgb[5] = LIMIT (r + yBR);
+ rgb[3] = LIMIT(b + yBR);
+ rgb[4] = LIMIT(g + yBR);
+ rgb[5] = LIMIT(r + yBR);
} else if (bits == 16) {
/* Write out top two pixels */
- rgb[0] = ((LIMIT (b + yTL) >> 3) & 0x1F)
- | ((LIMIT (g + yTL) << 3) & 0xE0);
- rgb[1] = ((LIMIT (g + yTL) >> 5) & 0x07)
- | (LIMIT (r + yTL) & 0xF8);
+ rgb[0] = ((LIMIT(b + yTL) >> 3) & 0x1F)
+ | ((LIMIT(g + yTL) << 3) & 0xE0);
+ rgb[1] = ((LIMIT(g + yTL) >> 5) & 0x07)
+ | (LIMIT(r + yTL) & 0xF8);
- rgb[2] = ((LIMIT (b + yTR) >> 3) & 0x1F)
- | ((LIMIT (g + yTR) << 3) & 0xE0);
- rgb[3] = ((LIMIT (g + yTR) >> 5) & 0x07)
- | (LIMIT (r + yTR) & 0xF8);
+ rgb[2] = ((LIMIT(b + yTR) >> 3) & 0x1F)
+ | ((LIMIT(g + yTR) << 3) & 0xE0);
+ rgb[3] = ((LIMIT(g + yTR) >> 5) & 0x07)
+ | (LIMIT(r + yTR) & 0xF8);
/* Skip down to next line to write out bottom two pixels */
rgb += 2 * rowPixels;
- rgb[0] = ((LIMIT (b + yBL) >> 3) & 0x1F)
- | ((LIMIT (g + yBL) << 3) & 0xE0);
- rgb[1] = ((LIMIT (g + yBL) >> 5) & 0x07)
- | (LIMIT (r + yBL) & 0xF8);
+ rgb[0] = ((LIMIT(b + yBL) >> 3) & 0x1F)
+ | ((LIMIT(g + yBL) << 3) & 0xE0);
+ rgb[1] = ((LIMIT(g + yBL) >> 5) & 0x07)
+ | (LIMIT(r + yBL) & 0xF8);
- rgb[2] = ((LIMIT (b + yBR) >> 3) & 0x1F)
- | ((LIMIT (g + yBR) << 3) & 0xE0);
- rgb[3] = ((LIMIT (g + yBR) >> 5) & 0x07)
- | (LIMIT (r + yBR) & 0xF8);
+ rgb[2] = ((LIMIT(b + yBR) >> 3) & 0x1F)
+ | ((LIMIT(g + yBR) << 3) & 0xE0);
+ rgb[3] = ((LIMIT(g + yBR) >> 5) & 0x07)
+ | (LIMIT(r + yBR) & 0xF8);
}
}
/* GType stuff for CamoramaFilterColor */
-typedef struct _CamoramaFilter CamoramaFilterColor;
+typedef struct _CamoramaFilter CamoramaFilterColor;
typedef struct _CamoramaFilterClass CamoramaFilterColorClass;
-G_DEFINE_TYPE(CamoramaFilterColor, camorama_filter_color, CAMORAMA_TYPE_FILTER);
+G_DEFINE_TYPE(CamoramaFilterColor, camorama_filter_color,
+ CAMORAMA_TYPE_FILTER);
-static void
-camorama_filter_color_init(CamoramaFilterColor* self) {}
+static void camorama_filter_color_init(CamoramaFilterColor *self)
+{
+}
void
-camorama_filter_color_filter(void *__filter, guchar *image, int x, int y, int depth) {
- int i;
- char tmp;
- i = x * y;
- while (i--) {
- tmp = image[0];
- image[0] = image[2];
- image[2] = tmp;
- image += 3;
- }
+camorama_filter_color_filter(void *__filter, guchar *image, int x, int y,
+ int depth)
+{
+ int i;
+ char tmp;
+
+ i = x * y;
+ while (i--) {
+ tmp = image[0];
+ image[0] = image[2];
+ image[2] = tmp;
+ image += 3;
+ }
}
static void
-camorama_filter_color_class_init(CamoramaFilterColorClass* self_class) {
- self_class->filter = camorama_filter_color_filter;
- self_class->name = _("Color Correction");
+camorama_filter_color_class_init(CamoramaFilterColorClass *self_class)
+{
+ self_class->filter = camorama_filter_color_filter;
+ self_class->name = _("Color Correction");
}
/* GType stuff for CamoramaFilterInvert */
-typedef struct _CamoramaFilter CamoramaFilterInvert;
+typedef struct _CamoramaFilter CamoramaFilterInvert;
typedef struct _CamoramaFilterClass CamoramaFilterInvertClass;
-G_DEFINE_TYPE(CamoramaFilterInvert, camorama_filter_invert, CAMORAMA_TYPE_FILTER);
+G_DEFINE_TYPE(CamoramaFilterInvert, camorama_filter_invert,
+ CAMORAMA_TYPE_FILTER);
-static void
-camorama_filter_invert_init(CamoramaFilterInvert* self) {}
+static void camorama_filter_invert_init(CamoramaFilterInvert *self)
+{
+}
static void
-camorama_filter_invert_filter(void * filter, guchar *image, int x, int y, int depth) {
- int i;
- for (i = 0; i < x * y * depth; i++) {
- image[i] = 255 - image[i];
- }
+camorama_filter_invert_filter(void *filter, guchar *image, int x, int y,
+ int depth)
+{
+ int i;
+
+ for (i = 0; i < x * y * depth; i++) {
+ image[i] = 255 - image[i];
+ }
}
static void
-camorama_filter_invert_class_init(CamoramaFilterClass* self_class) {
- self_class->filter = camorama_filter_invert_filter;
- self_class->name = _("Invert");
+camorama_filter_invert_class_init(CamoramaFilterClass *self_class)
+{
+ self_class->filter = camorama_filter_invert_filter;
+ self_class->name = _("Invert");
}
/* GType stuff for CamoramaFilterThreshold */
typedef struct _CamoramaFilterThreshold {
- CamoramaFilter base_instance;
- gint threshold;
+ CamoramaFilter base_instance;
+ gint threshold;
} CamoramaFilterThreshold;
typedef struct _CamoramaFilterClass CamoramaFilterThresholdClass;
-G_DEFINE_TYPE(CamoramaFilterThreshold, camorama_filter_threshold, CAMORAMA_TYPE_FILTER);
+G_DEFINE_TYPE(CamoramaFilterThreshold, camorama_filter_threshold,
+ CAMORAMA_TYPE_FILTER);
-static void
-camorama_filter_threshold_init(CamoramaFilterThreshold* self) {
- self->threshold = 127;
+static void camorama_filter_threshold_init(CamoramaFilterThreshold *self)
+{
+ self->threshold = 127;
}
static void
-camorama_filter_threshold_filter(void * filter, guchar *image, int x, int y, int depth) {
- CamoramaFilterThreshold* self = filter;
+camorama_filter_threshold_filter(void *filter, guchar *image, int x,
+ int y, int depth)
+{
+ CamoramaFilterThreshold *self = filter;
int i;
+
for (i = 0; i < x * y; i++) {
if ((image[0] + image[1] + image[2]) > (self->threshold * 3)) {
image[0] = 255;
@@ -226,26 +253,35 @@ camorama_filter_threshold_filter(void * filter, guchar *image, int x, int y, int
}
static void
-camorama_filter_threshold_class_init(CamoramaFilterThresholdClass* self_class) {
- self_class->filter = camorama_filter_threshold_filter;
- self_class->name = _("Threshold (Overall)");
+camorama_filter_threshold_class_init(CamoramaFilterThresholdClass *
+ self_class)
+{
+ self_class->filter = camorama_filter_threshold_filter;
+ self_class->name = _("Threshold (Overall)");
}
/* GType stuff for CamoramaFilterThresholdChannel */
typedef struct _CamoramaFilterThreshold CamoramaFilterThresholdChannel;
-typedef struct _CamoramaFilterClass CamoramaFilterThresholdChannelClass;
+typedef struct _CamoramaFilterClass CamoramaFilterThresholdChannelClass;
-G_DEFINE_TYPE(CamoramaFilterThresholdChannel, camorama_filter_threshold_channel, CAMORAMA_TYPE_FILTER);
+G_DEFINE_TYPE(CamoramaFilterThresholdChannel,
+ camorama_filter_threshold_channel, CAMORAMA_TYPE_FILTER);
static void
-camorama_filter_threshold_channel_init(CamoramaFilterThresholdChannel* self) {
- self->threshold = 127;
+camorama_filter_threshold_channel_init(CamoramaFilterThresholdChannel *
+ self)
+{
+ self->threshold = 127;
}
static void
-camorama_filter_threshold_channel_filter(void *filter, unsigned char *image, int x, int y, int depth) {
- CamoramaFilterThresholdChannel* self = filter;
+camorama_filter_threshold_channel_filter(void *filter,
+ unsigned char *image, int x,
+ int y, int depth)
+{
+ CamoramaFilterThresholdChannel *self = filter;
int i;
+
for (i = 0; i < x * y; i++) {
if (image[0] > self->threshold) {
image[0] = 255;
@@ -267,28 +303,35 @@ camorama_filter_threshold_channel_filter(void *filter, unsigned char *image, int
}
static void
-camorama_filter_threshold_channel_class_init(CamoramaFilterThresholdChannelClass* self_class) {
- self_class->filter = camorama_filter_threshold_channel_filter;
- self_class->name = _("Threshold (Per Channel)");
+camorama_filter_threshold_channel_class_init
+(CamoramaFilterThresholdChannelClass *self_class)
+{
+ self_class->filter = camorama_filter_threshold_channel_filter;
+ self_class->name = _("Threshold (Per Channel)");
}
/* GType stuff for CamoramaFilterWacky */
-typedef struct _CamoramaFilter CamoramaFilterWacky;
+typedef struct _CamoramaFilter CamoramaFilterWacky;
typedef struct _CamoramaFilterClass CamoramaFilterWackyClass;
-G_DEFINE_TYPE(CamoramaFilterWacky, camorama_filter_wacky, CAMORAMA_TYPE_FILTER);
+G_DEFINE_TYPE(CamoramaFilterWacky, camorama_filter_wacky,
+ CAMORAMA_TYPE_FILTER);
-static void
-camorama_filter_wacky_init(CamoramaFilterWacky* self) {}
+static void camorama_filter_wacky_init(CamoramaFilterWacky *self)
+{
+}
static void
-camorama_filter_wacky_filter(void *filter, unsigned char *image, int x, int y, int depth) {
+camorama_filter_wacky_filter(void *filter, unsigned char *image, int x,
+ int y, int depth)
+{
int i;
int neighbours;
int total;
unsigned char *image2;
- image2 = (unsigned char *) malloc (sizeof (unsigned char) * x * y * depth);
- memcpy (image2, image, x * y * depth);
+
+ image2 = malloc(sizeof(unsigned char) * x * y * depth);
+ memcpy(image2, image, x * y * depth);
for (i = 0; i < x * y; i++) {
total = 0;
@@ -335,34 +378,39 @@ camorama_filter_wacky_filter(void *filter, unsigned char *image, int x, int y, i
image[2] = image[0];
image += depth;
}
- free (image2);
+ free(image2);
}
static void
-camorama_filter_wacky_class_init(CamoramaFilterWackyClass* self_class) {
- self_class->filter = camorama_filter_wacky_filter;
- self_class->name = _("Wacky");
+camorama_filter_wacky_class_init(CamoramaFilterWackyClass *self_class)
+{
+ self_class->filter = camorama_filter_wacky_filter;
+ self_class->name = _("Wacky");
}
/* GType stuff for CamoramaFilterSmotth */
-typedef struct _CamoramaFilter CamoramaFilterSmooth;
+typedef struct _CamoramaFilter CamoramaFilterSmooth;
typedef struct _CamoramaFilterClass CamoramaFilterSmoothClass;
-G_DEFINE_TYPE(CamoramaFilterSmooth, camorama_filter_smooth, CAMORAMA_TYPE_FILTER);
+G_DEFINE_TYPE(CamoramaFilterSmooth, camorama_filter_smooth,
+ CAMORAMA_TYPE_FILTER);
-static void
-camorama_filter_smooth_init(CamoramaFilterSmooth* self) {}
+static void camorama_filter_smooth_init(CamoramaFilterSmooth *self)
+{
+}
static void
-camorama_filter_smooth_filter(void * filter, guchar *image, int x, int y, int depth) {
+camorama_filter_smooth_filter(void *filter, guchar *image, int x, int y,
+ int depth)
+{
int i;
int neighbours;
int total0, total1, total2;
unsigned char *image2, *image3;
int tr = 0, br = 0;
- image2 = (unsigned char *) malloc (sizeof (unsigned char) * x * y * depth);
- memcpy (image2, image, x * y * depth);
+ image2 = malloc(sizeof(unsigned char) * x * y * depth);
+ memcpy(image2, image, x * y * depth);
image3 = image2;
for (i = 0; i < x * y; i++) {
@@ -388,9 +436,9 @@ camorama_filter_smooth_filter(void * filter, guchar *image, int x, int y, int de
total1 = total1 + image2[7];
total2 = total2 + image2[8];
neighbours = neighbours + depth;
- if (tr > 1) {
+ if (tr > 1) {
tr = 0;
- }
+ }
image2 += (x + 1) * depth;
}
if (i > x * (y - 1)) {
@@ -429,39 +477,44 @@ camorama_filter_smooth_filter(void * filter, guchar *image, int x, int y, int de
image2 += 3;
neighbours++;
- image[0] = (int) (total0 / neighbours);
- image[1] = (int) (total1 / neighbours);
- image[2] = (int) (total2 / neighbours);
+ image[0] = (int)(total0 / neighbours);
+ image[1] = (int)(total1 / neighbours);
+ image[2] = (int)(total2 / neighbours);
image += 3;
image2 += 3;
}
- free (image3);
+ free(image3);
}
static void
-camorama_filter_smooth_class_init(CamoramaFilterSmoothClass* self_class) {
- self_class->filter = camorama_filter_smooth_filter;
- self_class->name = _("Smooth");
+camorama_filter_smooth_class_init(CamoramaFilterSmoothClass *self_class)
+{
+ self_class->filter = camorama_filter_smooth_filter;
+ self_class->name = _("Smooth");
}
/* GType for CamoramaFilterMono */
-typedef struct _CamoramaFilter CamoramaFilterMono;
+typedef struct _CamoramaFilter CamoramaFilterMono;
typedef struct _CamoramaFilterClass CamoramaFilterMonoClass;
-G_DEFINE_TYPE(CamoramaFilterMono, camorama_filter_mono, CAMORAMA_TYPE_FILTER);
+G_DEFINE_TYPE(CamoramaFilterMono, camorama_filter_mono,
+ CAMORAMA_TYPE_FILTER);
-static void
-camorama_filter_mono_init(CamoramaFilterMono* self) {}
+static void camorama_filter_mono_init(CamoramaFilterMono *self)
+{
+}
static void
-camorama_filter_mono_filter(void *filter, unsigned char *image, int x, int y, int depth) {
+camorama_filter_mono_filter(void *filter, unsigned char *image, int x,
+ int y, int depth)
+{
int i;
int total, avg;
for (i = 0; i < x * y; i++) {
total = image[0] + image[1] + image[2];
- avg = (int) (total / 3);
+ avg = (int)(total / 3);
image[0] = avg;
image[1] = avg;
@@ -471,27 +524,34 @@ camorama_filter_mono_filter(void *filter, unsigned char *image, int x, int y, in
}
static void
-camorama_filter_mono_class_init(CamoramaFilterMonoClass* self_class) {
- self_class->filter = camorama_filter_mono_filter;
- self_class->name = _("Monochrome");
+camorama_filter_mono_class_init(CamoramaFilterMonoClass *self_class)
+{
+ self_class->filter = camorama_filter_mono_filter;
+ self_class->name = _("Monochrome");
}
/* GType for CamoramaFilterMonoWeight */
-typedef struct _CamoramaFilter CamoramaFilterMonoWeight;
+typedef struct _CamoramaFilter CamoramaFilterMonoWeight;
typedef struct _CamoramaFilterClass CamoramaFilterMonoWeightClass;
-G_DEFINE_TYPE(CamoramaFilterMonoWeight, camorama_filter_mono_weight, CAMORAMA_TYPE_FILTER);
+G_DEFINE_TYPE(CamoramaFilterMonoWeight, camorama_filter_mono_weight,
+ CAMORAMA_TYPE_FILTER);
static void
-camorama_filter_mono_weight_init(CamoramaFilterMonoWeight* self) {}
+camorama_filter_mono_weight_init(CamoramaFilterMonoWeight *self)
+{
+}
static void
-camorama_filter_mono_weight_filter(void *filter, unsigned char *image, int x, int y, int depth) {
+camorama_filter_mono_weight_filter(void *filter, unsigned char *image,
+ int x, int y, int depth)
+{
int i;
int avg;
+
for (i = 0; i < x * y; i++) {
- avg = (int) ((image[0] * 0.2125) + (image[1] * 0.7154) +
- (image[2] * 0.0721));
+ avg = (int)((image[0] * 0.2125) + (image[1] * 0.7154) +
+ (image[2] * 0.0721));
image[0] = avg;
image[1] = avg;
@@ -501,29 +561,35 @@ camorama_filter_mono_weight_filter(void *filter, unsigned char *image, int x, in
}
static void
-camorama_filter_mono_weight_class_init(CamoramaFilterMonoWeightClass* self_class) {
- self_class->filter = camorama_filter_mono_weight_filter;
- self_class->name = _("Monochrome (Weight)");
+camorama_filter_mono_weight_class_init(CamoramaFilterMonoWeightClass *
+ self_class)
+{
+ self_class->filter = camorama_filter_mono_weight_filter;
+ self_class->name = _("Monochrome (Weight)");
}
/* GType stuff for CamoramaFilterSobel */
-typedef struct _CamoramaFilter CamoramaFilterSobel;
+typedef struct _CamoramaFilter CamoramaFilterSobel;
typedef struct _CamoramaFilterClass CamoramaFilterSobelClass;
-G_DEFINE_TYPE(CamoramaFilterSobel, camorama_filter_sobel, CAMORAMA_TYPE_FILTER);
+G_DEFINE_TYPE(CamoramaFilterSobel, camorama_filter_sobel,
+ CAMORAMA_TYPE_FILTER);
-static void
-camorama_filter_sobel_init(CamoramaFilterSobel* self) {}
+static void camorama_filter_sobel_init(CamoramaFilterSobel *self)
+{
+}
/* fix this at some point, very slow */
static void
-camorama_filter_sobel_filter(void *filter, unsigned char *image, int x, int y, int depth) {
+camorama_filter_sobel_filter(void *filter, unsigned char *image, int x,
+ int y, int depth)
+{
int i, j, grad[3];
int deltaX[3], deltaY[3];
int width = x * 3;
guchar *image2;
- image2 = (guchar *) malloc (sizeof (guchar) * (x * y * 3));
+ image2 = (guchar *) malloc(sizeof(guchar) * (x * y * 3));
for (i = width; i < (y - 1) * width; i++) {
for (j = 0; j <= 2; j++) {
@@ -538,40 +604,40 @@ camorama_filter_sobel_filter(void *filter, unsigned char *image, int x, int y, i
image[i - width + 1] - image[i + width -
1] -
2 * image[i + width] - image[i + width + 1];
- grad[j] = (abs (deltaX[j]) + abs (deltaY[j]));
+ grad[j] = (abs(deltaX[j]) + abs(deltaY[j]));
grad[j] = grad[j] / 5.66; /* <<<<<------------------------ new line */
- if (grad[j] > 255) {
+ if (grad[j] > 255) {
grad[j] = 255;
- }
- image2[i + j] = (unsigned char) grad[j];
+ }
+ image2[i + j] = (unsigned char)grad[j];
}
}
- memcpy (image, image2, (x * y * 3));
- free (image2);
+ memcpy(image, image2, (x * y * 3));
+ free(image2);
}
static void
-camorama_filter_sobel_class_init(CamoramaFilterSobelClass* self_class) {
- self_class->filter = camorama_filter_sobel_filter;
- // TRANSLATORS: http://en.wikipedia.org/wiki/Sobel
- self_class->name = _("Sobel");
+camorama_filter_sobel_class_init(CamoramaFilterSobelClass *self_class)
+{
+ self_class->filter = camorama_filter_sobel_filter;
+ // TRANSLATORS: http://en.wikipedia.org/wiki/Sobel
+ self_class->name = _("Sobel");
}
/* general filter initialization */
-void
-camorama_filters_init(void) {
- camorama_filter_color_get_type();
- camorama_filter_invert_get_type();
- camorama_filter_threshold_get_type();
- camorama_filter_threshold_channel_get_type();
- camorama_filter_mirror_get_type();
- camorama_filter_reichardt_get_type();
- camorama_filter_wacky_get_type();
- camorama_filter_smooth_get_type();
- camorama_filter_laplace_get_type();
- camorama_filter_mono_get_type();
- camorama_filter_mono_weight_get_type();
- camorama_filter_sobel_get_type();
+void camorama_filters_init(void)
+{
+ camorama_filter_color_get_type();
+ camorama_filter_invert_get_type();
+ camorama_filter_threshold_get_type();
+ camorama_filter_threshold_channel_get_type();
+ camorama_filter_mirror_get_type();
+ camorama_filter_reichardt_get_type();
+ camorama_filter_wacky_get_type();
+ camorama_filter_smooth_get_type();
+ camorama_filter_laplace_get_type();
+ camorama_filter_mono_get_type();
+ camorama_filter_mono_weight_get_type();
+ camorama_filter_sobel_get_type();
}
-
diff --git a/src/filter.h b/src/filter.h
index d06d44d..1a37f67 100644
--- a/src/filter.h
+++ b/src/filter.h
@@ -1,8 +1,8 @@
/* this file is part of camorama, a gnome webcam viewer
*
* AUTHORS
- * Greg Jones <greg@fixedgear.org>
- * Bastien Nocera <hadess@hadess.net>
+ * Greg Jones <greg@fixedgear.org>
+ * Bastien Nocera <hadess@hadess.net>
* Sven Herzberg <herzi@gnome-de.org>
*
* Copyright (C) 2003 Greg Jones
@@ -32,18 +32,25 @@
G_BEGIN_DECLS
-typedef struct _CamoramaFilter CamoramaFilter;
+typedef struct _CamoramaFilter CamoramaFilter;
typedef struct _CamoramaFilterClass CamoramaFilterClass;
#define CAMORAMA_TYPE_FILTER (camorama_filter_get_type())
-#define CAMORAMA_FILTER(i) (G_TYPE_CHECK_INSTANCE_CAST((i), CAMORAMA_TYPE_FILTER, CamoramaFilter))
-#define CAMORAMA_FILTER_CLASS(c) (G_TYPE_CHECK_CLASS_CAST((c), CAMORAMA_TYPE_FILTER, CamoramaFilterClass))
-#define CAMORAMA_IS_FILTER(i) (G_TYPE_CHECK_INSTANCE_TYPE((i), CAMORAMA_TYPE_FILTER))
-#define CAMORAMA_IS_FILTER_CLASS(c) (G_TYPE_CHECK_CLASS_TYPE((c), CAMORAMA_TYPE_FILTER))
-#define CAMORAMA_FILTER_GET_CLASS(i) (G_TYPE_INSTANCE_GET_CLASS((i), CAMORAMA_TYPE_FILTER, CamoramaFilterClass))
-
-GType camorama_filter_get_type (void);
-GType camorama_filter_mirror_get_type (void);
+#define CAMORAMA_FILTER(i) (G_TYPE_CHECK_INSTANCE_CAST((i), \
+ CAMORAMA_TYPE_FILTER, CamoramaFilter))
+#define CAMORAMA_FILTER_CLASS(c) (G_TYPE_CHECK_CLASS_CAST((c), \
+ CAMORAMA_TYPE_FILTER, \
+ CamoramaFilterClass))
+#define CAMORAMA_IS_FILTER(i) (G_TYPE_CHECK_INSTANCE_TYPE((i), \
+ CAMORAMA_TYPE_FILTER))
+#define CAMORAMA_IS_FILTER_CLASS(c) (G_TYPE_CHECK_CLASS_TYPE((c), \
+ CAMORAMA_TYPE_FILTER))
+#define CAMORAMA_FILTER_GET_CLASS(i) (G_TYPE_INSTANCE_GET_CLASS((i), \
+ CAMORAMA_TYPE_FILTER, \
+ CamoramaFilterClass))
+
+GType camorama_filter_get_type(void);
+GType camorama_filter_mirror_get_type(void);
GType camorama_filter_laplace_get_type(void);
GType camorama_filter_reichardt_get_type(void);
GType camorama_filter_color_get_type(void);
@@ -56,36 +63,29 @@ GType camorama_filter_mono_weight_get_type(void);
GType camorama_filter_sobel_get_type(void);
GType camorama_filter_smooth_get_type(void);
-void
-camorama_filter_color_filter(void *__filter, guchar *image, int x, int y, int depth);
+void camorama_filter_color_filter(void *__filter, guchar *image, int x, int y,
+ int depth);
-void camorama_filters_init (void);
-gchar const* camorama_filter_get_name(CamoramaFilter* self);
-void camorama_filter_apply (CamoramaFilter* self,
- guchar* image,
- gint width,
- gint height,
- gint depth);
+void camorama_filters_init(void);
+gchar const *camorama_filter_get_name(CamoramaFilter * self);
+void camorama_filter_apply(CamoramaFilter *self, guchar *image,
+ gint width, gint height, gint depth);
struct _CamoramaFilter {
- GObject base_instance;
+ GObject base_instance;
};
struct _CamoramaFilterClass {
- GObjectClass base_class;
+ GObjectClass base_class;
- gchar const* name;
+ gchar const *name;
- void (*filter) (void * self,
- guchar * image,
- gint width,
- gint height,
- gint depth);
+ void (*filter)(void *self,
+ guchar *image, gint width, gint height, gint depth);
};
-void yuv420p_to_rgb (guchar *image, guchar *temp, gint x, gint y, gint z);
+void yuv420p_to_rgb(guchar *image, guchar *temp, gint x, gint y, gint z);
G_END_DECLS
-#endif /* !CAMORAMA_FILTER_H */
-
+#endif /* !CAMORAMA_FILTER_H */
diff --git a/src/font_6x11.h b/src/font_6x11.h
index a88c8a7..89e814a 100644
--- a/src/font_6x11.h
+++ b/src/font_6x11.h
@@ -5,3333 +5,3331 @@
/**********************************************/
static unsigned char fontdata[] = {
-
- /* 0 0x00 '^A' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 1 0x01 '^B' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 2 0x02 '^C' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 3 0x03 '^D' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 4 0x04 '^E' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 5 0x05 '^F' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 6 0x06 '^G' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 7 0x07 '^H' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 8 0x08 '^I' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 9 0x09 '^J' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 10 0x0a '^K' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 11 0x0b '^L' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 12 0x0c '^M' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 13 0x0d '^N' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 14 0x0e '^O' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 15 0x0f '^P' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 16 0x10 '^Q' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 17 0x11 '^R' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x28, /* 00 0 000 */
- 0x54, /* 0 0 0 00 */
- 0x38, /* 00 000 */
- 0x54, /* 0 0 0 00 */
- 0x28, /* 00 0 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 18 0x12 '^S' */
- 0x04, /* 00000 00 */
- 0x04, /* 00000 00 */
- 0x08, /* 0000 000 */
- 0x08, /* 0000 000 */
- 0x50, /* 0 0 0000 */
- 0x50, /* 0 0 0000 */
- 0x20, /* 00 00000 */
- 0x20, /* 00 00000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 19 0x13 '^T' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x10, /* 000 0000 */
- 0x38, /* 00 000 */
- 0x7c, /* 0 00 */
- 0x38, /* 00 000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 20 0x14 '^U' */
- 0x18, /* 000 000 */
- 0x10, /* 000 0000 */
- 0x28, /* 00 0 000 */
- 0x7c, /* 0 00 */
- 0x78, /* 0 000 */
- 0x78, /* 0 000 */
- 0x7c, /* 0 00 */
- 0x28, /* 00 0 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 21 0x15 '^V' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 22 0x16 '^W' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 23 0x17 '^X' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 24 0x18 '^Y' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 25 0x19 '^Z' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 26 0x1a '^[' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 27 0x1b '^\' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 28 0x1c '^]' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 29 0x1d '^^' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 30 0x1e '^_' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 31 0x1f '^`' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 32 0x20 ' ' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 33 0x21 '!' */
- 0x00, /* 00000000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 34 0x22 '"' */
- 0x28, /* 00 0 000 */
- 0x28, /* 00 0 000 */
- 0x28, /* 00 0 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 35 0x23 '#' */
- 0x00, /* 00000000 */
- 0x28, /* 00 0 000 */
- 0x7c, /* 0 00 */
- 0x28, /* 00 0 000 */
- 0x7c, /* 0 00 */
- 0x28, /* 00 0 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 36 0x24 '$' */
- 0x10, /* 000 0000 */
- 0x38, /* 00 000 */
- 0x54, /* 0 0 0 00 */
- 0x50, /* 0 0 0000 */
- 0x38, /* 00 000 */
- 0x14, /* 000 0 00 */
- 0x54, /* 0 0 0 00 */
- 0x38, /* 00 000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 37 0x25 '%' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x54, /* 0 0 0 00 */
- 0x58, /* 0 0 000 */
- 0x28, /* 00 0 000 */
- 0x34, /* 00 0 00 */
- 0x54, /* 0 0 0 00 */
- 0x48, /* 0 00 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 38 0x26 '&' */
- 0x00, /* 00000000 */
- 0x30, /* 00 0000 */
- 0x48, /* 0 00 000 */
- 0x50, /* 0 0 0000 */
- 0x20, /* 00 00000 */
- 0x54, /* 0 0 0 00 */
- 0x48, /* 0 00 000 */
- 0x34, /* 00 0 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 39 0x27 ''' */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 40 0x28 '(' */
- 0x04, /* 00000 00 */
- 0x08, /* 0000 000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x08, /* 0000 000 */
- 0x04, /* 00000 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 41 0x29 ')' */
- 0x20, /* 00 00000 */
- 0x10, /* 000 0000 */
- 0x08, /* 0000 000 */
- 0x08, /* 0000 000 */
- 0x08, /* 0000 000 */
- 0x08, /* 0000 000 */
- 0x08, /* 0000 000 */
- 0x10, /* 000 0000 */
- 0x20, /* 00 00000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 42 0x2a '*' */
- 0x00, /* 00000000 */
- 0x10, /* 000 0000 */
- 0x54, /* 0 0 0 00 */
- 0x38, /* 00 000 */
- 0x54, /* 0 0 0 00 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 43 0x2b '+' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x7c, /* 0 00 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 44 0x2c ',' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x30, /* 00 0000 */
- 0x30, /* 00 0000 */
- 0x10, /* 000 0000 */
- 0x20, /* 00 00000 */
- 0x00, /* 00000000 */
-
- /* 45 0x2d '-' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7c, /* 0 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 46 0x2e '.' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x18, /* 000 000 */
- 0x18, /* 000 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 47 0x2f '/' */
- 0x04, /* 00000 00 */
- 0x04, /* 00000 00 */
- 0x08, /* 0000 000 */
- 0x08, /* 0000 000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x20, /* 00 00000 */
- 0x20, /* 00 00000 */
- 0x40, /* 0 000000 */
- 0x40, /* 0 000000 */
- 0x00, /* 00000000 */
-
- /* 48 0x30 '0' */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x44, /* 0 000 00 */
- 0x4c, /* 0 00 00 */
- 0x54, /* 0 0 0 00 */
- 0x64, /* 0 00 00 */
- 0x44, /* 0 000 00 */
- 0x38, /* 00 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 49 0x31 '1' */
- 0x00, /* 00000000 */
- 0x08, /* 0000 000 */
- 0x18, /* 000 000 */
- 0x08, /* 0000 000 */
- 0x08, /* 0000 000 */
- 0x08, /* 0000 000 */
- 0x08, /* 0000 000 */
- 0x1c, /* 000 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 50 0x32 '2' */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x44, /* 0 000 00 */
- 0x04, /* 00000 00 */
- 0x08, /* 0000 000 */
- 0x10, /* 000 0000 */
- 0x20, /* 00 00000 */
- 0x7c, /* 0 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 51 0x33 '3' */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x44, /* 0 000 00 */
- 0x04, /* 00000 00 */
- 0x18, /* 000 000 */
- 0x04, /* 00000 00 */
- 0x44, /* 0 000 00 */
- 0x38, /* 00 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 52 0x34 '4' */
- 0x00, /* 00000000 */
- 0x08, /* 0000 000 */
- 0x18, /* 000 000 */
- 0x28, /* 00 0 000 */
- 0x48, /* 0 00 000 */
- 0x7c, /* 0 00 */
- 0x08, /* 0000 000 */
- 0x1c, /* 000 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 53 0x35 '5' */
- 0x00, /* 00000000 */
- 0x7c, /* 0 00 */
- 0x40, /* 0 000000 */
- 0x78, /* 0 000 */
- 0x04, /* 00000 00 */
- 0x04, /* 00000 00 */
- 0x44, /* 0 000 00 */
- 0x38, /* 00 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 54 0x36 '6' */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x40, /* 0 000000 */
- 0x78, /* 0 000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x38, /* 00 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 55 0x37 '7' */
- 0x00, /* 00000000 */
- 0x7c, /* 0 00 */
- 0x04, /* 00000 00 */
- 0x04, /* 00000 00 */
- 0x08, /* 0000 000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 56 0x38 '8' */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x38, /* 00 000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x38, /* 00 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 57 0x39 '9' */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x3c, /* 00 00 */
- 0x04, /* 00000 00 */
- 0x38, /* 00 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 58 0x3a ':' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x18, /* 000 000 */
- 0x18, /* 000 000 */
- 0x00, /* 00000000 */
- 0x18, /* 000 000 */
- 0x18, /* 000 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 59 0x3b ';' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x30, /* 00 0000 */
- 0x30, /* 00 0000 */
- 0x00, /* 00000000 */
- 0x30, /* 00 0000 */
- 0x30, /* 00 0000 */
- 0x10, /* 000 0000 */
- 0x20, /* 00 00000 */
- 0x00, /* 00000000 */
-
- /* 60 0x3c '<' */
- 0x00, /* 00000000 */
- 0x04, /* 00000 00 */
- 0x08, /* 0000 000 */
- 0x10, /* 000 0000 */
- 0x20, /* 00 00000 */
- 0x10, /* 000 0000 */
- 0x08, /* 0000 000 */
- 0x04, /* 00000 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 61 0x3d '=' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7c, /* 0 00 */
- 0x00, /* 00000000 */
- 0x7c, /* 0 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 62 0x3e '>' */
- 0x00, /* 00000000 */
- 0x20, /* 00 00000 */
- 0x10, /* 000 0000 */
- 0x08, /* 0000 000 */
- 0x04, /* 00000 00 */
- 0x08, /* 0000 000 */
- 0x10, /* 000 0000 */
- 0x20, /* 00 00000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 63 0x3f '?' */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x44, /* 0 000 00 */
- 0x04, /* 00000 00 */
- 0x08, /* 0000 000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 64 0x40 '@' */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x44, /* 0 000 00 */
- 0x74, /* 0 0 00 */
- 0x54, /* 0 0 0 00 */
- 0x78, /* 0 000 */
- 0x40, /* 0 000000 */
- 0x38, /* 00 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 65 0x41 'A' */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x7c, /* 0 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 66 0x42 'B' */
- 0x00, /* 00000000 */
- 0x78, /* 0 000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x78, /* 0 000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x78, /* 0 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 67 0x43 'C' */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x44, /* 0 000 00 */
- 0x40, /* 0 000000 */
- 0x40, /* 0 000000 */
- 0x40, /* 0 000000 */
- 0x44, /* 0 000 00 */
- 0x38, /* 00 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 68 0x44 'D' */
- 0x00, /* 00000000 */
- 0x78, /* 0 000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x78, /* 0 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 69 0x45 'E' */
- 0x00, /* 00000000 */
- 0x7c, /* 0 00 */
- 0x40, /* 0 000000 */
- 0x40, /* 0 000000 */
- 0x78, /* 0 000 */
- 0x40, /* 0 000000 */
- 0x40, /* 0 000000 */
- 0x7c, /* 0 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 70 0x46 'F' */
- 0x00, /* 00000000 */
- 0x7c, /* 0 00 */
- 0x40, /* 0 000000 */
- 0x40, /* 0 000000 */
- 0x78, /* 0 000 */
- 0x40, /* 0 000000 */
- 0x40, /* 0 000000 */
- 0x40, /* 0 000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 71 0x47 'G' */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x44, /* 0 000 00 */
- 0x40, /* 0 000000 */
- 0x4c, /* 0 00 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x38, /* 00 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 72 0x48 'H' */
- 0x00, /* 00000000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x7c, /* 0 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 73 0x49 'I' */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x38, /* 00 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 74 0x4a 'J' */
- 0x00, /* 00000000 */
- 0x04, /* 00000 00 */
- 0x04, /* 00000 00 */
- 0x04, /* 00000 00 */
- 0x04, /* 00000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x38, /* 00 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 75 0x4b 'K' */
- 0x00, /* 00000000 */
- 0x44, /* 0 000 00 */
- 0x48, /* 0 00 000 */
- 0x50, /* 0 0 0000 */
- 0x60, /* 0 00000 */
- 0x50, /* 0 0 0000 */
- 0x48, /* 0 00 000 */
- 0x44, /* 0 000 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 76 0x4c 'L' */
- 0x00, /* 00000000 */
- 0x40, /* 0 000000 */
- 0x40, /* 0 000000 */
- 0x40, /* 0 000000 */
- 0x40, /* 0 000000 */
- 0x40, /* 0 000000 */
- 0x40, /* 0 000000 */
- 0x7c, /* 0 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 77 0x4d 'M' */
- 0x00, /* 00000000 */
- 0x44, /* 0 000 00 */
- 0x6c, /* 0 0 00 */
- 0x54, /* 0 0 0 00 */
- 0x54, /* 0 0 0 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 78 0x4e 'N' */
- 0x00, /* 00000000 */
- 0x44, /* 0 000 00 */
- 0x64, /* 0 00 00 */
- 0x54, /* 0 0 0 00 */
- 0x4c, /* 0 00 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 79 0x4f 'O' */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x38, /* 00 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 80 0x50 'P' */
- 0x00, /* 00000000 */
- 0x78, /* 0 000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x78, /* 0 000 */
- 0x40, /* 0 000000 */
- 0x40, /* 0 000000 */
- 0x40, /* 0 000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 81 0x51 'Q' */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x54, /* 0 0 0 00 */
- 0x38, /* 00 000 */
- 0x04, /* 00000 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 82 0x52 'R' */
- 0x00, /* 00000000 */
- 0x78, /* 0 000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x78, /* 0 000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 83 0x53 'S' */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x44, /* 0 000 00 */
- 0x40, /* 0 000000 */
- 0x38, /* 00 000 */
- 0x04, /* 00000 00 */
- 0x44, /* 0 000 00 */
- 0x38, /* 00 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 84 0x54 'T' */
- 0x00, /* 00000000 */
- 0x7c, /* 0 00 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 85 0x55 'U' */
- 0x00, /* 00000000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x38, /* 00 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 86 0x56 'V' */
- 0x00, /* 00000000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x28, /* 00 0 000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 87 0x57 'W' */
- 0x00, /* 00000000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x54, /* 0 0 0 00 */
- 0x54, /* 0 0 0 00 */
- 0x6c, /* 0 0 00 */
- 0x44, /* 0 000 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 88 0x58 'X' */
- 0x00, /* 00000000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x28, /* 00 0 000 */
- 0x10, /* 000 0000 */
- 0x28, /* 00 0 000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 89 0x59 'Y' */
- 0x00, /* 00000000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x28, /* 00 0 000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 90 0x5a 'Z' */
- 0x00, /* 00000000 */
- 0x7c, /* 0 00 */
- 0x04, /* 00000 00 */
- 0x08, /* 0000 000 */
- 0x10, /* 000 0000 */
- 0x20, /* 00 00000 */
- 0x40, /* 0 000000 */
- 0x7c, /* 0 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 91 0x5b '[' */
- 0x0c, /* 0000 00 */
- 0x08, /* 0000 000 */
- 0x08, /* 0000 000 */
- 0x08, /* 0000 000 */
- 0x08, /* 0000 000 */
- 0x08, /* 0000 000 */
- 0x08, /* 0000 000 */
- 0x08, /* 0000 000 */
- 0x0c, /* 0000 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 92 0x5c '\' */
- 0x20, /* 00 00000 */
- 0x20, /* 00 00000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x08, /* 0000 000 */
- 0x08, /* 0000 000 */
- 0x04, /* 00000 00 */
- 0x04, /* 00000 00 */
- 0x02, /* 000000 0 */
- 0x02, /* 000000 0 */
- 0x00, /* 00000000 */
-
- /* 93 0x5d ']' */
- 0x30, /* 00 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x30, /* 00 0000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 94 0x5e '^' */
- 0x00, /* 00000000 */
- 0x10, /* 000 0000 */
- 0x28, /* 00 0 000 */
- 0x44, /* 0 000 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 95 0x5f '_' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7e, /* 0 0 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 96 0x60 '`' */
- 0x20, /* 00 00000 */
- 0x10, /* 000 0000 */
- 0x08, /* 0000 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 97 0x61 'a' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x4c, /* 0 00 00 */
- 0x34, /* 00 0 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 98 0x62 'b' */
- 0x00, /* 00000000 */
- 0x40, /* 0 000000 */
- 0x40, /* 0 000000 */
- 0x78, /* 0 000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x78, /* 0 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 99 0x63 'c' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x44, /* 0 000 00 */
- 0x40, /* 0 000000 */
- 0x44, /* 0 000 00 */
- 0x38, /* 00 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 100 0x64 'd' */
- 0x00, /* 00000000 */
- 0x04, /* 00000 00 */
- 0x04, /* 00000 00 */
- 0x3c, /* 00 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 101 0x65 'e' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x44, /* 0 000 00 */
- 0x7c, /* 0 00 */
- 0x40, /* 0 000000 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 102 0x66 'f' */
- 0x00, /* 00000000 */
- 0x0c, /* 0000 00 */
- 0x10, /* 000 0000 */
- 0x38, /* 00 000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 103 0x67 'g' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x3c, /* 00 00 */
- 0x04, /* 00000 00 */
- 0x38, /* 00 000 */
- 0x00, /* 00000000 */
-
- /* 104 0x68 'h' */
- 0x00, /* 00000000 */
- 0x40, /* 0 000000 */
- 0x40, /* 0 000000 */
- 0x78, /* 0 000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 105 0x69 'i' */
- 0x00, /* 00000000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x30, /* 00 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x38, /* 00 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 106 0x6a 'j' */
- 0x00, /* 00000000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x30, /* 00 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x60, /* 0 00000 */
- 0x00, /* 00000000 */
-
- /* 107 0x6b 'k' */
- 0x00, /* 00000000 */
- 0x40, /* 0 000000 */
- 0x40, /* 0 000000 */
- 0x48, /* 0 00 000 */
- 0x50, /* 0 0 0000 */
- 0x70, /* 0 0000 */
- 0x48, /* 0 00 000 */
- 0x44, /* 0 000 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 108 0x6c 'l' */
- 0x00, /* 00000000 */
- 0x30, /* 00 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x38, /* 00 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 109 0x6d 'm' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x78, /* 0 000 */
- 0x54, /* 0 0 0 00 */
- 0x54, /* 0 0 0 00 */
- 0x54, /* 0 0 0 00 */
- 0x54, /* 0 0 0 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 110 0x6e 'n' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x58, /* 0 0 000 */
- 0x64, /* 0 00 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 111 0x6f 'o' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x38, /* 00 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 112 0x70 'p' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x78, /* 0 000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x78, /* 0 000 */
- 0x40, /* 0 000000 */
- 0x40, /* 0 000000 */
- 0x00, /* 00000000 */
-
- /* 113 0x71 'q' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x3c, /* 00 00 */
- 0x04, /* 00000 00 */
- 0x04, /* 00000 00 */
- 0x00, /* 00000000 */
-
- /* 114 0x72 'r' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x58, /* 0 0 000 */
- 0x64, /* 0 00 00 */
- 0x40, /* 0 000000 */
- 0x40, /* 0 000000 */
- 0x40, /* 0 000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 115 0x73 's' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x40, /* 0 000000 */
- 0x38, /* 00 000 */
- 0x04, /* 00000 00 */
- 0x78, /* 0 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 116 0x74 't' */
- 0x00, /* 00000000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x38, /* 00 000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x0c, /* 0000 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 117 0x75 'u' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x4c, /* 0 00 00 */
- 0x34, /* 00 0 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 118 0x76 'v' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x28, /* 00 0 000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 119 0x77 'w' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x54, /* 0 0 0 00 */
- 0x54, /* 0 0 0 00 */
- 0x54, /* 0 0 0 00 */
- 0x54, /* 0 0 0 00 */
- 0x28, /* 00 0 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 120 0x78 'x' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x44, /* 0 000 00 */
- 0x28, /* 00 0 000 */
- 0x10, /* 000 0000 */
- 0x28, /* 00 0 000 */
- 0x44, /* 0 000 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 121 0x79 'y' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x3c, /* 00 00 */
- 0x04, /* 00000 00 */
- 0x38, /* 00 000 */
- 0x00, /* 00000000 */
-
- /* 122 0x7a 'z' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7c, /* 0 00 */
- 0x08, /* 0000 000 */
- 0x10, /* 000 0000 */
- 0x20, /* 00 00000 */
- 0x7c, /* 0 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 123 0x7b '{' */
- 0x08, /* 0000 000 */
- 0x08, /* 0000 000 */
- 0x08, /* 0000 000 */
- 0x08, /* 0000 000 */
- 0x10, /* 000 0000 */
- 0x08, /* 0000 000 */
- 0x08, /* 0000 000 */
- 0x08, /* 0000 000 */
- 0x08, /* 0000 000 */
- 0x04, /* 00000 00 */
- 0x00, /* 00000000 */
-
- /* 124 0x7c '|' */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 125 0x7d '}' */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x08, /* 0000 000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x20, /* 00 00000 */
- 0x00, /* 00000000 */
-
- /* 126 0x7e '~' */
- 0x00, /* 00000000 */
- 0x34, /* 00 0 00 */
- 0x58, /* 0 0 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 127 0x7f '^?' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 128 0x80 '\200' */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x7c, /* 0 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 129 0x81 '\201' */
- 0x28, /* 00 0 000 */
- 0x38, /* 00 000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x7c, /* 0 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 130 0x82 '\202' */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x44, /* 0 000 00 */
- 0x40, /* 0 000000 */
- 0x40, /* 0 000000 */
- 0x40, /* 0 000000 */
- 0x44, /* 0 000 00 */
- 0x38, /* 00 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 131 0x83 '\203' */
- 0x10, /* 000 0000 */
- 0x7c, /* 0 00 */
- 0x40, /* 0 000000 */
- 0x40, /* 0 000000 */
- 0x78, /* 0 000 */
- 0x40, /* 0 000000 */
- 0x40, /* 0 000000 */
- 0x7c, /* 0 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 132 0x84 '\204' */
- 0x58, /* 0 0 000 */
- 0x44, /* 0 000 00 */
- 0x64, /* 0 00 00 */
- 0x54, /* 0 0 0 00 */
- 0x4c, /* 0 00 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 133 0x85 '\205' */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x38, /* 00 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 134 0x86 '\206' */
- 0x00, /* 00000000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x38, /* 00 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 135 0x87 '\207' */
- 0x08, /* 0000 000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x4c, /* 0 00 00 */
- 0x34, /* 00 0 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 136 0x88 '\210' */
- 0x10, /* 000 0000 */
- 0x08, /* 0000 000 */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x4c, /* 0 00 00 */
- 0x34, /* 00 0 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 137 0x89 '\211' */
- 0x10, /* 000 0000 */
- 0x28, /* 00 0 000 */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x4c, /* 0 00 00 */
- 0x34, /* 00 0 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 138 0x8a '\212' */
- 0x00, /* 00000000 */
- 0x28, /* 00 0 000 */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x4c, /* 0 00 00 */
- 0x34, /* 00 0 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 139 0x8b '\213' */
- 0x34, /* 00 0 00 */
- 0x58, /* 0 0 000 */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x4c, /* 0 00 00 */
- 0x34, /* 00 0 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 140 0x8c '\214' */
- 0x18, /* 000 000 */
- 0x24, /* 00 00 00 */
- 0x18, /* 000 000 */
- 0x3c, /* 00 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x4c, /* 0 00 00 */
- 0x34, /* 00 0 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 141 0x8d '\215' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x44, /* 0 000 00 */
- 0x40, /* 0 000000 */
- 0x40, /* 0 000000 */
- 0x3c, /* 00 00 */
- 0x10, /* 000 0000 */
- 0x20, /* 00 00000 */
- 0x00, /* 00000000 */
-
- /* 142 0x8e '\216' */
- 0x08, /* 0000 000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x44, /* 0 000 00 */
- 0x7c, /* 0 00 */
- 0x40, /* 0 000000 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 143 0x8f '\217' */
- 0x20, /* 00 00000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x44, /* 0 000 00 */
- 0x7c, /* 0 00 */
- 0x40, /* 0 000000 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 144 0x90 '\220' */
- 0x10, /* 000 0000 */
- 0x28, /* 00 0 000 */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x44, /* 0 000 00 */
- 0x7c, /* 0 00 */
- 0x40, /* 0 000000 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 145 0x91 '\221' */
- 0x00, /* 00000000 */
- 0x28, /* 00 0 000 */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x44, /* 0 000 00 */
- 0x7c, /* 0 00 */
- 0x40, /* 0 000000 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 146 0x92 '\222' */
- 0x08, /* 0000 000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 147 0x93 '\223' */
- 0x20, /* 00 00000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 148 0x94 '\224' */
- 0x10, /* 000 0000 */
- 0x28, /* 00 0 000 */
- 0x00, /* 00000000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 149 0x95 '\225' */
- 0x00, /* 00000000 */
- 0x28, /* 00 0 000 */
- 0x00, /* 00000000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 150 0x96 '\226' */
- 0x34, /* 00 0 00 */
- 0x58, /* 0 0 000 */
- 0x00, /* 00000000 */
- 0x58, /* 0 0 000 */
- 0x64, /* 0 00 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 151 0x97 '\227' */
- 0x08, /* 0000 000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x38, /* 00 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 152 0x98 '\230' */
- 0x20, /* 00 00000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x38, /* 00 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 153 0x99 '\231' */
- 0x10, /* 000 0000 */
- 0x28, /* 00 0 000 */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x38, /* 00 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 154 0x9a '\232' */
- 0x00, /* 00000000 */
- 0x28, /* 00 0 000 */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x38, /* 00 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 155 0x9b '\233' */
- 0x34, /* 00 0 00 */
- 0x58, /* 0 0 000 */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x38, /* 00 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 156 0x9c '\234' */
- 0x08, /* 0000 000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x4c, /* 0 00 00 */
- 0x34, /* 00 0 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 157 0x9d '\235' */
- 0x20, /* 00 00000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x4c, /* 0 00 00 */
- 0x34, /* 00 0 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 158 0x9e '\236' */
- 0x10, /* 000 0000 */
- 0x28, /* 00 0 000 */
- 0x00, /* 00000000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x4c, /* 0 00 00 */
- 0x34, /* 00 0 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 159 0x9f '\237' */
- 0x00, /* 00000000 */
- 0x28, /* 00 0 000 */
- 0x00, /* 00000000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x4c, /* 0 00 00 */
- 0x34, /* 00 0 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 160 0xa0 '\240' */
- 0x00, /* 00000000 */
- 0x10, /* 000 0000 */
- 0x38, /* 00 000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 161 0xa1 '\241' */
- 0x18, /* 000 000 */
- 0x24, /* 00 00 00 */
- 0x24, /* 00 00 00 */
- 0x18, /* 000 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 162 0xa2 '\242' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x10, /* 000 0000 */
- 0x38, /* 00 000 */
- 0x54, /* 0 0 0 00 */
- 0x50, /* 0 0 0000 */
- 0x54, /* 0 0 0 00 */
- 0x38, /* 00 000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 163 0xa3 '\243' */
- 0x30, /* 00 0000 */
- 0x48, /* 0 00 000 */
- 0x40, /* 0 000000 */
- 0x70, /* 0 0000 */
- 0x40, /* 0 000000 */
- 0x40, /* 0 000000 */
- 0x44, /* 0 000 00 */
- 0x78, /* 0 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 164 0xa4 '\244' */
- 0x44, /* 0 000 00 */
- 0x24, /* 00 00 00 */
- 0x50, /* 0 0 0000 */
- 0x48, /* 0 00 000 */
- 0x24, /* 00 00 00 */
- 0x14, /* 000 0 00 */
- 0x48, /* 0 00 000 */
- 0x44, /* 0 000 00 */
- 0x38, /* 00 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 165 0xa5 '\245' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x7c, /* 0 00 */
- 0x7c, /* 0 00 */
- 0x7c, /* 0 00 */
- 0x38, /* 00 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 166 0xa6 '\246' */
- 0x3c, /* 00 00 */
- 0x54, /* 0 0 0 00 */
- 0x54, /* 0 0 0 00 */
- 0x54, /* 0 0 0 00 */
- 0x3c, /* 00 00 */
- 0x14, /* 000 0 00 */
- 0x14, /* 000 0 00 */
- 0x14, /* 000 0 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 167 0xa7 '\247' */
- 0x18, /* 000 000 */
- 0x24, /* 00 00 00 */
- 0x44, /* 0 000 00 */
- 0x48, /* 0 00 000 */
- 0x48, /* 0 00 000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x58, /* 0 0 000 */
- 0x40, /* 0 000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 168 0xa8 '\250' */
- 0x00, /* 00000000 */
- 0x70, /* 0 0000 */
- 0x08, /* 0000 000 */
- 0x64, /* 0 00 00 */
- 0x54, /* 0 0 0 00 */
- 0x64, /* 0 00 00 */
- 0x58, /* 0 0 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 169 0xa9 '\251' */
- 0x00, /* 00000000 */
- 0x70, /* 0 0000 */
- 0x08, /* 0000 000 */
- 0x34, /* 00 0 00 */
- 0x44, /* 0 000 00 */
- 0x34, /* 00 0 00 */
- 0x08, /* 0000 000 */
- 0x70, /* 0 0000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 170 0xaa '\252' */
- 0x00, /* 00000000 */
- 0x7a, /* 0 0 0 */
- 0x2e, /* 00 0 0 */
- 0x2e, /* 00 0 0 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 171 0xab '\253' */
- 0x00, /* 00000000 */
- 0x08, /* 0000 000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 172 0xac '\254' */
- 0x00, /* 00000000 */
- 0x28, /* 00 0 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 173 0xad '\255' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x08, /* 0000 000 */
- 0x7c, /* 0 00 */
- 0x10, /* 000 0000 */
- 0x7c, /* 0 00 */
- 0x20, /* 00 00000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 174 0xae '\256' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x50, /* 0 0 0000 */
- 0x50, /* 0 0 0000 */
- 0x78, /* 0 000 */
- 0x50, /* 0 0 0000 */
- 0x50, /* 0 0 0000 */
- 0x5c, /* 0 0 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 175 0xaf '\257' */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x44, /* 0 000 00 */
- 0x4c, /* 0 00 00 */
- 0x54, /* 0 0 0 00 */
- 0x64, /* 0 00 00 */
- 0x44, /* 0 000 00 */
- 0x38, /* 00 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 176 0xb0 '\260' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x6c, /* 0 0 00 */
- 0x54, /* 0 0 0 00 */
- 0x6c, /* 0 0 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 177 0xb1 '\261' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x7c, /* 0 00 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x7c, /* 0 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 178 0xb2 '\262' */
- 0x00, /* 00000000 */
- 0x08, /* 0000 000 */
- 0x10, /* 000 0000 */
- 0x20, /* 00 00000 */
- 0x10, /* 000 0000 */
- 0x08, /* 0000 000 */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 179 0xb3 '\263' */
- 0x00, /* 00000000 */
- 0x10, /* 000 0000 */
- 0x08, /* 0000 000 */
- 0x04, /* 00000 00 */
- 0x08, /* 0000 000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x1c, /* 000 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 180 0xb4 '\264' */
- 0x00, /* 00000000 */
- 0x44, /* 0 000 00 */
- 0x28, /* 00 0 000 */
- 0x7c, /* 0 00 */
- 0x10, /* 000 0000 */
- 0x7c, /* 0 00 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 181 0xb5 '\265' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x48, /* 0 00 000 */
- 0x48, /* 0 00 000 */
- 0x48, /* 0 00 000 */
- 0x48, /* 0 00 000 */
- 0x74, /* 0 0 00 */
- 0x40, /* 0 000000 */
- 0x40, /* 0 000000 */
- 0x00, /* 00000000 */
-
- /* 182 0xb6 '\266' */
- 0x00, /* 00000000 */
- 0x10, /* 000 0000 */
- 0x08, /* 0000 000 */
- 0x0c, /* 0000 00 */
- 0x14, /* 000 0 00 */
- 0x24, /* 00 00 00 */
- 0x24, /* 00 00 00 */
- 0x18, /* 000 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 183 0xb7 '\267' */
- 0x00, /* 00000000 */
- 0x7c, /* 0 00 */
- 0x24, /* 00 00 00 */
- 0x10, /* 000 0000 */
- 0x08, /* 0000 000 */
- 0x10, /* 000 0000 */
- 0x24, /* 00 00 00 */
- 0x7c, /* 0 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 184 0xb8 '\270' */
- 0x00, /* 00000000 */
- 0x7c, /* 0 00 */
- 0x28, /* 00 0 000 */
- 0x28, /* 00 0 000 */
- 0x28, /* 00 0 000 */
- 0x28, /* 00 0 000 */
- 0x28, /* 00 0 000 */
- 0x28, /* 00 0 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 185 0xb9 '\271' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7c, /* 0 00 */
- 0x28, /* 00 0 000 */
- 0x28, /* 00 0 000 */
- 0x28, /* 00 0 000 */
- 0x28, /* 00 0 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 186 0xba '\272' */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x60, /* 0 00000 */
- 0x00, /* 00000000 */
-
- /* 187 0xbb '\273' */
- 0x00, /* 00000000 */
- 0x1c, /* 000 00 */
- 0x24, /* 00 00 00 */
- 0x24, /* 00 00 00 */
- 0x1c, /* 000 00 */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 188 0xbc '\274' */
- 0x00, /* 00000000 */
- 0x18, /* 000 000 */
- 0x24, /* 00 00 00 */
- 0x24, /* 00 00 00 */
- 0x18, /* 000 000 */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 189 0xbd '\275' */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x28, /* 00 0 000 */
- 0x6c, /* 0 0 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 190 0xbe '\276' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x54, /* 0 0 0 00 */
- 0x5c, /* 0 0 00 */
- 0x50, /* 0 0 0000 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 191 0xbf '\277' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x4c, /* 0 00 00 */
- 0x54, /* 0 0 0 00 */
- 0x64, /* 0 00 00 */
- 0x38, /* 00 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 192 0xc0 '\300' */
- 0x00, /* 00000000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x10, /* 000 0000 */
- 0x20, /* 00 00000 */
- 0x40, /* 0 000000 */
- 0x44, /* 0 000 00 */
- 0x38, /* 00 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 193 0xc1 '\301' */
- 0x00, /* 00000000 */
- 0x08, /* 0000 000 */
- 0x00, /* 00000000 */
- 0x08, /* 0000 000 */
- 0x08, /* 0000 000 */
- 0x08, /* 0000 000 */
- 0x08, /* 0000 000 */
- 0x08, /* 0000 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 194 0xc2 '\302' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7c, /* 0 00 */
- 0x04, /* 00000 00 */
- 0x04, /* 00000 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 195 0xc3 '\303' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x0c, /* 0000 00 */
- 0x08, /* 0000 000 */
- 0x10, /* 000 0000 */
- 0x50, /* 0 0 0000 */
- 0x20, /* 00 00000 */
- 0x20, /* 00 00000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 196 0xc4 '\304' */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x38, /* 00 000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x60, /* 0 00000 */
- 0x00, /* 00000000 */
-
- /* 197 0xc5 '\305' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x04, /* 00000 00 */
- 0x38, /* 00 000 */
- 0x44, /* 0 000 00 */
- 0x38, /* 00 000 */
- 0x40, /* 0 000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 198 0xc6 '\306' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x10, /* 000 0000 */
- 0x10, /* 000 0000 */
- 0x28, /* 00 0 000 */
- 0x28, /* 00 0 000 */
- 0x44, /* 0 000 00 */
- 0x7c, /* 0 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 199 0xc7 '\307' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x24, /* 00 00 00 */
- 0x48, /* 0 00 000 */
- 0x48, /* 0 00 000 */
- 0x24, /* 00 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 200 0xc8 '\310' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x48, /* 0 00 000 */
- 0x24, /* 00 00 00 */
- 0x24, /* 00 00 00 */
- 0x48, /* 0 00 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 201 0xc9 '\311' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x54, /* 0 0 0 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 202 0xca '\312' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 203 0xcb '\313' */
- 0x10, /* 000 0000 */
- 0x38, /* 00 000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x7c, /* 0 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 204 0xcc '\314' */
- 0x58, /* 0 0 000 */
- 0x38, /* 00 000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x7c, /* 0 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 205 0xcd '\315' */
- 0x58, /* 0 0 000 */
- 0x38, /* 00 000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x38, /* 00 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 206 0xce '\316' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x50, /* 0 0 0000 */
- 0x50, /* 0 0 0000 */
- 0x58, /* 0 0 000 */
- 0x50, /* 0 0 0000 */
- 0x50, /* 0 0 0000 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 207 0xcf '\317' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x28, /* 00 0 000 */
- 0x54, /* 0 0 0 00 */
- 0x5c, /* 0 0 00 */
- 0x50, /* 0 0 0000 */
- 0x2c, /* 00 0 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 208 0xd0 '\320' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x38, /* 00 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 209 0xd1 '\321' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7e, /* 0 0 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 210 0xd2 '\322' */
- 0x00, /* 00000000 */
- 0x14, /* 000 0 00 */
- 0x28, /* 00 0 000 */
- 0x28, /* 00 0 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 211 0xd3 '\323' */
- 0x00, /* 00000000 */
- 0x14, /* 000 0 00 */
- 0x14, /* 000 0 00 */
- 0x28, /* 00 0 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 212 0xd4 '\324' */
- 0x00, /* 00000000 */
- 0x08, /* 0000 000 */
- 0x10, /* 000 0000 */
- 0x18, /* 000 000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 213 0xd5 '\325' */
- 0x00, /* 00000000 */
- 0x18, /* 000 000 */
- 0x08, /* 0000 000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 214 0xd6 '\326' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x7c, /* 0 00 */
- 0x00, /* 00000000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 215 0xd7 '\327' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x10, /* 000 0000 */
- 0x28, /* 00 0 000 */
- 0x44, /* 0 000 00 */
- 0x28, /* 00 0 000 */
- 0x10, /* 000 0000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 216 0xd8 '\330' */
- 0x00, /* 00000000 */
- 0x28, /* 00 0 000 */
- 0x00, /* 00000000 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x44, /* 0 000 00 */
- 0x3c, /* 00 00 */
- 0x04, /* 00000 00 */
- 0x38, /* 00 000 */
- 0x00, /* 00000000 */
-
- /* 217 0xd9 '\331' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7e, /* 0 0 */
- 0x00, /* 00000000 */
- 0x7e, /* 0 0 */
- 0x00, /* 00000000 */
- 0x7e, /* 0 0 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 218 0xda '\332' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 219 0xdb '\333' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 220 0xdc '\334' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 221 0xdd '\335' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 222 0xde '\336' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 223 0xdf '\337' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 224 0xe0 '\340' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 225 0xe1 '\341' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 226 0xe2 '\342' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 227 0xe3 '\343' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 228 0xe4 '\344' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 229 0xe5 '\345' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 230 0xe6 '\346' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 231 0xe7 '\347' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 232 0xe8 '\350' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 233 0xe9 '\351' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 234 0xea '\352' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 235 0xeb '\353' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 236 0xec '\354' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 237 0xed '\355' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 238 0xee '\356' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 239 0xef '\357' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 240 0xf0 '\360' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 241 0xf1 '\361' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 242 0xf2 '\362' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 243 0xf3 '\363' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 244 0xf4 '\364' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 245 0xf5 '\365' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 246 0xf6 '\366' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 247 0xf7 '\367' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 248 0xf8 '\370' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 249 0xf9 '\371' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 250 0xfa '\372' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 251 0xfb '\373' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 252 0xfc '\374' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 253 0xfd '\375' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 254 0xfe '\376' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 255 0xff '\377' */
- 0x00, /* 00000000 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x3c, /* 00 00 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
+ /* 0 0x00 '^A' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 1 0x01 '^B' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 2 0x02 '^C' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 3 0x03 '^D' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 4 0x04 '^E' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 5 0x05 '^F' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 6 0x06 '^G' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 7 0x07 '^H' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 8 0x08 '^I' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 9 0x09 '^J' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 10 0x0a '^K' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 11 0x0b '^L' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 12 0x0c '^M' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 13 0x0d '^N' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 14 0x0e '^O' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 15 0x0f '^P' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 16 0x10 '^Q' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 17 0x11 '^R' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x28, /* 00 0 000 */
+ 0x54, /* 0 0 0 00 */
+ 0x38, /* 00 000 */
+ 0x54, /* 0 0 0 00 */
+ 0x28, /* 00 0 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 18 0x12 '^S' */
+ 0x04, /* 00000 00 */
+ 0x04, /* 00000 00 */
+ 0x08, /* 0000 000 */
+ 0x08, /* 0000 000 */
+ 0x50, /* 0 0 0000 */
+ 0x50, /* 0 0 0000 */
+ 0x20, /* 00 00000 */
+ 0x20, /* 00 00000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 19 0x13 '^T' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x10, /* 000 0000 */
+ 0x38, /* 00 000 */
+ 0x7c, /* 0 00 */
+ 0x38, /* 00 000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 20 0x14 '^U' */
+ 0x18, /* 000 000 */
+ 0x10, /* 000 0000 */
+ 0x28, /* 00 0 000 */
+ 0x7c, /* 0 00 */
+ 0x78, /* 0 000 */
+ 0x78, /* 0 000 */
+ 0x7c, /* 0 00 */
+ 0x28, /* 00 0 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 21 0x15 '^V' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 22 0x16 '^W' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 23 0x17 '^X' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 24 0x18 '^Y' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 25 0x19 '^Z' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 26 0x1a '^[' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 27 0x1b '^\' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 28 0x1c '^]' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 29 0x1d '^^' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 30 0x1e '^_' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 31 0x1f '^`' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 32 0x20 ' ' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 33 0x21 '!' */
+ 0x00, /* 00000000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 34 0x22 '"' */
+ 0x28, /* 00 0 000 */
+ 0x28, /* 00 0 000 */
+ 0x28, /* 00 0 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 35 0x23 '#' */
+ 0x00, /* 00000000 */
+ 0x28, /* 00 0 000 */
+ 0x7c, /* 0 00 */
+ 0x28, /* 00 0 000 */
+ 0x7c, /* 0 00 */
+ 0x28, /* 00 0 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 36 0x24 '$' */
+ 0x10, /* 000 0000 */
+ 0x38, /* 00 000 */
+ 0x54, /* 0 0 0 00 */
+ 0x50, /* 0 0 0000 */
+ 0x38, /* 00 000 */
+ 0x14, /* 000 0 00 */
+ 0x54, /* 0 0 0 00 */
+ 0x38, /* 00 000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 37 0x25 '%' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x54, /* 0 0 0 00 */
+ 0x58, /* 0 0 000 */
+ 0x28, /* 00 0 000 */
+ 0x34, /* 00 0 00 */
+ 0x54, /* 0 0 0 00 */
+ 0x48, /* 0 00 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 38 0x26 '&' */
+ 0x00, /* 00000000 */
+ 0x30, /* 00 0000 */
+ 0x48, /* 0 00 000 */
+ 0x50, /* 0 0 0000 */
+ 0x20, /* 00 00000 */
+ 0x54, /* 0 0 0 00 */
+ 0x48, /* 0 00 000 */
+ 0x34, /* 00 0 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 39 0x27 ''' */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 40 0x28 '(' */
+ 0x04, /* 00000 00 */
+ 0x08, /* 0000 000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x08, /* 0000 000 */
+ 0x04, /* 00000 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 41 0x29 ')' */
+ 0x20, /* 00 00000 */
+ 0x10, /* 000 0000 */
+ 0x08, /* 0000 000 */
+ 0x08, /* 0000 000 */
+ 0x08, /* 0000 000 */
+ 0x08, /* 0000 000 */
+ 0x08, /* 0000 000 */
+ 0x10, /* 000 0000 */
+ 0x20, /* 00 00000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 42 0x2a '*' */
+ 0x00, /* 00000000 */
+ 0x10, /* 000 0000 */
+ 0x54, /* 0 0 0 00 */
+ 0x38, /* 00 000 */
+ 0x54, /* 0 0 0 00 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 43 0x2b '+' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x7c, /* 0 00 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 44 0x2c ',' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x30, /* 00 0000 */
+ 0x30, /* 00 0000 */
+ 0x10, /* 000 0000 */
+ 0x20, /* 00 00000 */
+ 0x00, /* 00000000 */
+
+ /* 45 0x2d '-' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 0 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 46 0x2e '.' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 000 000 */
+ 0x18, /* 000 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 47 0x2f '/' */
+ 0x04, /* 00000 00 */
+ 0x04, /* 00000 00 */
+ 0x08, /* 0000 000 */
+ 0x08, /* 0000 000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x20, /* 00 00000 */
+ 0x20, /* 00 00000 */
+ 0x40, /* 0 000000 */
+ 0x40, /* 0 000000 */
+ 0x00, /* 00000000 */
+
+ /* 48 0x30 '0' */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x4c, /* 0 00 00 */
+ 0x54, /* 0 0 0 00 */
+ 0x64, /* 0 00 00 */
+ 0x44, /* 0 000 00 */
+ 0x38, /* 00 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 49 0x31 '1' */
+ 0x00, /* 00000000 */
+ 0x08, /* 0000 000 */
+ 0x18, /* 000 000 */
+ 0x08, /* 0000 000 */
+ 0x08, /* 0000 000 */
+ 0x08, /* 0000 000 */
+ 0x08, /* 0000 000 */
+ 0x1c, /* 000 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 50 0x32 '2' */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x04, /* 00000 00 */
+ 0x08, /* 0000 000 */
+ 0x10, /* 000 0000 */
+ 0x20, /* 00 00000 */
+ 0x7c, /* 0 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 51 0x33 '3' */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x04, /* 00000 00 */
+ 0x18, /* 000 000 */
+ 0x04, /* 00000 00 */
+ 0x44, /* 0 000 00 */
+ 0x38, /* 00 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 52 0x34 '4' */
+ 0x00, /* 00000000 */
+ 0x08, /* 0000 000 */
+ 0x18, /* 000 000 */
+ 0x28, /* 00 0 000 */
+ 0x48, /* 0 00 000 */
+ 0x7c, /* 0 00 */
+ 0x08, /* 0000 000 */
+ 0x1c, /* 000 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 53 0x35 '5' */
+ 0x00, /* 00000000 */
+ 0x7c, /* 0 00 */
+ 0x40, /* 0 000000 */
+ 0x78, /* 0 000 */
+ 0x04, /* 00000 00 */
+ 0x04, /* 00000 00 */
+ 0x44, /* 0 000 00 */
+ 0x38, /* 00 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 54 0x36 '6' */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x40, /* 0 000000 */
+ 0x78, /* 0 000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x38, /* 00 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 55 0x37 '7' */
+ 0x00, /* 00000000 */
+ 0x7c, /* 0 00 */
+ 0x04, /* 00000 00 */
+ 0x04, /* 00000 00 */
+ 0x08, /* 0000 000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 56 0x38 '8' */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x38, /* 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x38, /* 00 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 57 0x39 '9' */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x3c, /* 00 00 */
+ 0x04, /* 00000 00 */
+ 0x38, /* 00 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 58 0x3a ':' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 000 000 */
+ 0x18, /* 000 000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 000 000 */
+ 0x18, /* 000 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 59 0x3b ';' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x30, /* 00 0000 */
+ 0x30, /* 00 0000 */
+ 0x00, /* 00000000 */
+ 0x30, /* 00 0000 */
+ 0x30, /* 00 0000 */
+ 0x10, /* 000 0000 */
+ 0x20, /* 00 00000 */
+ 0x00, /* 00000000 */
+
+ /* 60 0x3c '<' */
+ 0x00, /* 00000000 */
+ 0x04, /* 00000 00 */
+ 0x08, /* 0000 000 */
+ 0x10, /* 000 0000 */
+ 0x20, /* 00 00000 */
+ 0x10, /* 000 0000 */
+ 0x08, /* 0000 000 */
+ 0x04, /* 00000 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 61 0x3d '=' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 0 00 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 0 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 62 0x3e '>' */
+ 0x00, /* 00000000 */
+ 0x20, /* 00 00000 */
+ 0x10, /* 000 0000 */
+ 0x08, /* 0000 000 */
+ 0x04, /* 00000 00 */
+ 0x08, /* 0000 000 */
+ 0x10, /* 000 0000 */
+ 0x20, /* 00 00000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 63 0x3f '?' */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x04, /* 00000 00 */
+ 0x08, /* 0000 000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 64 0x40 '@' */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x74, /* 0 0 00 */
+ 0x54, /* 0 0 0 00 */
+ 0x78, /* 0 000 */
+ 0x40, /* 0 000000 */
+ 0x38, /* 00 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 65 0x41 'A' */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x7c, /* 0 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 66 0x42 'B' */
+ 0x00, /* 00000000 */
+ 0x78, /* 0 000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x78, /* 0 000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x78, /* 0 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 67 0x43 'C' */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x40, /* 0 000000 */
+ 0x40, /* 0 000000 */
+ 0x40, /* 0 000000 */
+ 0x44, /* 0 000 00 */
+ 0x38, /* 00 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 68 0x44 'D' */
+ 0x00, /* 00000000 */
+ 0x78, /* 0 000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x78, /* 0 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 69 0x45 'E' */
+ 0x00, /* 00000000 */
+ 0x7c, /* 0 00 */
+ 0x40, /* 0 000000 */
+ 0x40, /* 0 000000 */
+ 0x78, /* 0 000 */
+ 0x40, /* 0 000000 */
+ 0x40, /* 0 000000 */
+ 0x7c, /* 0 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 70 0x46 'F' */
+ 0x00, /* 00000000 */
+ 0x7c, /* 0 00 */
+ 0x40, /* 0 000000 */
+ 0x40, /* 0 000000 */
+ 0x78, /* 0 000 */
+ 0x40, /* 0 000000 */
+ 0x40, /* 0 000000 */
+ 0x40, /* 0 000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 71 0x47 'G' */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x40, /* 0 000000 */
+ 0x4c, /* 0 00 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x38, /* 00 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 72 0x48 'H' */
+ 0x00, /* 00000000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x7c, /* 0 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 73 0x49 'I' */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x38, /* 00 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 74 0x4a 'J' */
+ 0x00, /* 00000000 */
+ 0x04, /* 00000 00 */
+ 0x04, /* 00000 00 */
+ 0x04, /* 00000 00 */
+ 0x04, /* 00000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x38, /* 00 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 75 0x4b 'K' */
+ 0x00, /* 00000000 */
+ 0x44, /* 0 000 00 */
+ 0x48, /* 0 00 000 */
+ 0x50, /* 0 0 0000 */
+ 0x60, /* 0 00000 */
+ 0x50, /* 0 0 0000 */
+ 0x48, /* 0 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 76 0x4c 'L' */
+ 0x00, /* 00000000 */
+ 0x40, /* 0 000000 */
+ 0x40, /* 0 000000 */
+ 0x40, /* 0 000000 */
+ 0x40, /* 0 000000 */
+ 0x40, /* 0 000000 */
+ 0x40, /* 0 000000 */
+ 0x7c, /* 0 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 77 0x4d 'M' */
+ 0x00, /* 00000000 */
+ 0x44, /* 0 000 00 */
+ 0x6c, /* 0 0 00 */
+ 0x54, /* 0 0 0 00 */
+ 0x54, /* 0 0 0 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 78 0x4e 'N' */
+ 0x00, /* 00000000 */
+ 0x44, /* 0 000 00 */
+ 0x64, /* 0 00 00 */
+ 0x54, /* 0 0 0 00 */
+ 0x4c, /* 0 00 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 79 0x4f 'O' */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x38, /* 00 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 80 0x50 'P' */
+ 0x00, /* 00000000 */
+ 0x78, /* 0 000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x78, /* 0 000 */
+ 0x40, /* 0 000000 */
+ 0x40, /* 0 000000 */
+ 0x40, /* 0 000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 81 0x51 'Q' */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x54, /* 0 0 0 00 */
+ 0x38, /* 00 000 */
+ 0x04, /* 00000 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 82 0x52 'R' */
+ 0x00, /* 00000000 */
+ 0x78, /* 0 000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x78, /* 0 000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 83 0x53 'S' */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x40, /* 0 000000 */
+ 0x38, /* 00 000 */
+ 0x04, /* 00000 00 */
+ 0x44, /* 0 000 00 */
+ 0x38, /* 00 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 84 0x54 'T' */
+ 0x00, /* 00000000 */
+ 0x7c, /* 0 00 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 85 0x55 'U' */
+ 0x00, /* 00000000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x38, /* 00 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 86 0x56 'V' */
+ 0x00, /* 00000000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x28, /* 00 0 000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 87 0x57 'W' */
+ 0x00, /* 00000000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x54, /* 0 0 0 00 */
+ 0x54, /* 0 0 0 00 */
+ 0x6c, /* 0 0 00 */
+ 0x44, /* 0 000 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 88 0x58 'X' */
+ 0x00, /* 00000000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x28, /* 00 0 000 */
+ 0x10, /* 000 0000 */
+ 0x28, /* 00 0 000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 89 0x59 'Y' */
+ 0x00, /* 00000000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x28, /* 00 0 000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 90 0x5a 'Z' */
+ 0x00, /* 00000000 */
+ 0x7c, /* 0 00 */
+ 0x04, /* 00000 00 */
+ 0x08, /* 0000 000 */
+ 0x10, /* 000 0000 */
+ 0x20, /* 00 00000 */
+ 0x40, /* 0 000000 */
+ 0x7c, /* 0 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 91 0x5b '[' */
+ 0x0c, /* 0000 00 */
+ 0x08, /* 0000 000 */
+ 0x08, /* 0000 000 */
+ 0x08, /* 0000 000 */
+ 0x08, /* 0000 000 */
+ 0x08, /* 0000 000 */
+ 0x08, /* 0000 000 */
+ 0x08, /* 0000 000 */
+ 0x0c, /* 0000 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 92 0x5c '\' */
+ 0x20, /* 00 00000 */
+ 0x20, /* 00 00000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x08, /* 0000 000 */
+ 0x08, /* 0000 000 */
+ 0x04, /* 00000 00 */
+ 0x04, /* 00000 00 */
+ 0x02, /* 000000 0 */
+ 0x02, /* 000000 0 */
+ 0x00, /* 00000000 */
+
+ /* 93 0x5d ']' */
+ 0x30, /* 00 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x30, /* 00 0000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 94 0x5e '^' */
+ 0x00, /* 00000000 */
+ 0x10, /* 000 0000 */
+ 0x28, /* 00 0 000 */
+ 0x44, /* 0 000 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 95 0x5f '_' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7e, /* 0 0 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 96 0x60 '`' */
+ 0x20, /* 00 00000 */
+ 0x10, /* 000 0000 */
+ 0x08, /* 0000 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 97 0x61 'a' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x4c, /* 0 00 00 */
+ 0x34, /* 00 0 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 98 0x62 'b' */
+ 0x00, /* 00000000 */
+ 0x40, /* 0 000000 */
+ 0x40, /* 0 000000 */
+ 0x78, /* 0 000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x78, /* 0 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 99 0x63 'c' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x40, /* 0 000000 */
+ 0x44, /* 0 000 00 */
+ 0x38, /* 00 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 100 0x64 'd' */
+ 0x00, /* 00000000 */
+ 0x04, /* 00000 00 */
+ 0x04, /* 00000 00 */
+ 0x3c, /* 00 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 101 0x65 'e' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x7c, /* 0 00 */
+ 0x40, /* 0 000000 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 102 0x66 'f' */
+ 0x00, /* 00000000 */
+ 0x0c, /* 0000 00 */
+ 0x10, /* 000 0000 */
+ 0x38, /* 00 000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 103 0x67 'g' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x3c, /* 00 00 */
+ 0x04, /* 00000 00 */
+ 0x38, /* 00 000 */
+ 0x00, /* 00000000 */
+
+ /* 104 0x68 'h' */
+ 0x00, /* 00000000 */
+ 0x40, /* 0 000000 */
+ 0x40, /* 0 000000 */
+ 0x78, /* 0 000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 105 0x69 'i' */
+ 0x00, /* 00000000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x30, /* 00 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x38, /* 00 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 106 0x6a 'j' */
+ 0x00, /* 00000000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x30, /* 00 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x60, /* 0 00000 */
+ 0x00, /* 00000000 */
+
+ /* 107 0x6b 'k' */
+ 0x00, /* 00000000 */
+ 0x40, /* 0 000000 */
+ 0x40, /* 0 000000 */
+ 0x48, /* 0 00 000 */
+ 0x50, /* 0 0 0000 */
+ 0x70, /* 0 0000 */
+ 0x48, /* 0 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 108 0x6c 'l' */
+ 0x00, /* 00000000 */
+ 0x30, /* 00 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x38, /* 00 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 109 0x6d 'm' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x78, /* 0 000 */
+ 0x54, /* 0 0 0 00 */
+ 0x54, /* 0 0 0 00 */
+ 0x54, /* 0 0 0 00 */
+ 0x54, /* 0 0 0 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 110 0x6e 'n' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x58, /* 0 0 000 */
+ 0x64, /* 0 00 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 111 0x6f 'o' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x38, /* 00 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 112 0x70 'p' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x78, /* 0 000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x78, /* 0 000 */
+ 0x40, /* 0 000000 */
+ 0x40, /* 0 000000 */
+ 0x00, /* 00000000 */
+
+ /* 113 0x71 'q' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x3c, /* 00 00 */
+ 0x04, /* 00000 00 */
+ 0x04, /* 00000 00 */
+ 0x00, /* 00000000 */
+
+ /* 114 0x72 'r' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x58, /* 0 0 000 */
+ 0x64, /* 0 00 00 */
+ 0x40, /* 0 000000 */
+ 0x40, /* 0 000000 */
+ 0x40, /* 0 000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 115 0x73 's' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x40, /* 0 000000 */
+ 0x38, /* 00 000 */
+ 0x04, /* 00000 00 */
+ 0x78, /* 0 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 116 0x74 't' */
+ 0x00, /* 00000000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x38, /* 00 000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x0c, /* 0000 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 117 0x75 'u' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x4c, /* 0 00 00 */
+ 0x34, /* 00 0 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 118 0x76 'v' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x28, /* 00 0 000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 119 0x77 'w' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x54, /* 0 0 0 00 */
+ 0x54, /* 0 0 0 00 */
+ 0x54, /* 0 0 0 00 */
+ 0x54, /* 0 0 0 00 */
+ 0x28, /* 00 0 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 120 0x78 'x' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x44, /* 0 000 00 */
+ 0x28, /* 00 0 000 */
+ 0x10, /* 000 0000 */
+ 0x28, /* 00 0 000 */
+ 0x44, /* 0 000 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 121 0x79 'y' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x3c, /* 00 00 */
+ 0x04, /* 00000 00 */
+ 0x38, /* 00 000 */
+ 0x00, /* 00000000 */
+
+ /* 122 0x7a 'z' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 0 00 */
+ 0x08, /* 0000 000 */
+ 0x10, /* 000 0000 */
+ 0x20, /* 00 00000 */
+ 0x7c, /* 0 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 123 0x7b '{' */
+ 0x08, /* 0000 000 */
+ 0x08, /* 0000 000 */
+ 0x08, /* 0000 000 */
+ 0x08, /* 0000 000 */
+ 0x10, /* 000 0000 */
+ 0x08, /* 0000 000 */
+ 0x08, /* 0000 000 */
+ 0x08, /* 0000 000 */
+ 0x08, /* 0000 000 */
+ 0x04, /* 00000 00 */
+ 0x00, /* 00000000 */
+
+ /* 124 0x7c '|' */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 125 0x7d '}' */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x08, /* 0000 000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x20, /* 00 00000 */
+ 0x00, /* 00000000 */
+
+ /* 126 0x7e '~' */
+ 0x00, /* 00000000 */
+ 0x34, /* 00 0 00 */
+ 0x58, /* 0 0 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 127 0x7f '^?' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 128 0x80 '\200' */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x7c, /* 0 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 129 0x81 '\201' */
+ 0x28, /* 00 0 000 */
+ 0x38, /* 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x7c, /* 0 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 130 0x82 '\202' */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x40, /* 0 000000 */
+ 0x40, /* 0 000000 */
+ 0x40, /* 0 000000 */
+ 0x44, /* 0 000 00 */
+ 0x38, /* 00 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 131 0x83 '\203' */
+ 0x10, /* 000 0000 */
+ 0x7c, /* 0 00 */
+ 0x40, /* 0 000000 */
+ 0x40, /* 0 000000 */
+ 0x78, /* 0 000 */
+ 0x40, /* 0 000000 */
+ 0x40, /* 0 000000 */
+ 0x7c, /* 0 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 132 0x84 '\204' */
+ 0x58, /* 0 0 000 */
+ 0x44, /* 0 000 00 */
+ 0x64, /* 0 00 00 */
+ 0x54, /* 0 0 0 00 */
+ 0x4c, /* 0 00 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 133 0x85 '\205' */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x38, /* 00 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 134 0x86 '\206' */
+ 0x00, /* 00000000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x38, /* 00 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 135 0x87 '\207' */
+ 0x08, /* 0000 000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x4c, /* 0 00 00 */
+ 0x34, /* 00 0 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 136 0x88 '\210' */
+ 0x10, /* 000 0000 */
+ 0x08, /* 0000 000 */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x4c, /* 0 00 00 */
+ 0x34, /* 00 0 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 137 0x89 '\211' */
+ 0x10, /* 000 0000 */
+ 0x28, /* 00 0 000 */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x4c, /* 0 00 00 */
+ 0x34, /* 00 0 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 138 0x8a '\212' */
+ 0x00, /* 00000000 */
+ 0x28, /* 00 0 000 */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x4c, /* 0 00 00 */
+ 0x34, /* 00 0 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 139 0x8b '\213' */
+ 0x34, /* 00 0 00 */
+ 0x58, /* 0 0 000 */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x4c, /* 0 00 00 */
+ 0x34, /* 00 0 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 140 0x8c '\214' */
+ 0x18, /* 000 000 */
+ 0x24, /* 00 00 00 */
+ 0x18, /* 000 000 */
+ 0x3c, /* 00 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x4c, /* 0 00 00 */
+ 0x34, /* 00 0 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 141 0x8d '\215' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x40, /* 0 000000 */
+ 0x40, /* 0 000000 */
+ 0x3c, /* 00 00 */
+ 0x10, /* 000 0000 */
+ 0x20, /* 00 00000 */
+ 0x00, /* 00000000 */
+
+ /* 142 0x8e '\216' */
+ 0x08, /* 0000 000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x7c, /* 0 00 */
+ 0x40, /* 0 000000 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 143 0x8f '\217' */
+ 0x20, /* 00 00000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x7c, /* 0 00 */
+ 0x40, /* 0 000000 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 144 0x90 '\220' */
+ 0x10, /* 000 0000 */
+ 0x28, /* 00 0 000 */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x7c, /* 0 00 */
+ 0x40, /* 0 000000 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 145 0x91 '\221' */
+ 0x00, /* 00000000 */
+ 0x28, /* 00 0 000 */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x7c, /* 0 00 */
+ 0x40, /* 0 000000 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 146 0x92 '\222' */
+ 0x08, /* 0000 000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 147 0x93 '\223' */
+ 0x20, /* 00 00000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 148 0x94 '\224' */
+ 0x10, /* 000 0000 */
+ 0x28, /* 00 0 000 */
+ 0x00, /* 00000000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 149 0x95 '\225' */
+ 0x00, /* 00000000 */
+ 0x28, /* 00 0 000 */
+ 0x00, /* 00000000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 150 0x96 '\226' */
+ 0x34, /* 00 0 00 */
+ 0x58, /* 0 0 000 */
+ 0x00, /* 00000000 */
+ 0x58, /* 0 0 000 */
+ 0x64, /* 0 00 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 151 0x97 '\227' */
+ 0x08, /* 0000 000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x38, /* 00 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 152 0x98 '\230' */
+ 0x20, /* 00 00000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x38, /* 00 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 153 0x99 '\231' */
+ 0x10, /* 000 0000 */
+ 0x28, /* 00 0 000 */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x38, /* 00 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 154 0x9a '\232' */
+ 0x00, /* 00000000 */
+ 0x28, /* 00 0 000 */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x38, /* 00 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 155 0x9b '\233' */
+ 0x34, /* 00 0 00 */
+ 0x58, /* 0 0 000 */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x38, /* 00 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 156 0x9c '\234' */
+ 0x08, /* 0000 000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x4c, /* 0 00 00 */
+ 0x34, /* 00 0 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 157 0x9d '\235' */
+ 0x20, /* 00 00000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x4c, /* 0 00 00 */
+ 0x34, /* 00 0 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 158 0x9e '\236' */
+ 0x10, /* 000 0000 */
+ 0x28, /* 00 0 000 */
+ 0x00, /* 00000000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x4c, /* 0 00 00 */
+ 0x34, /* 00 0 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 159 0x9f '\237' */
+ 0x00, /* 00000000 */
+ 0x28, /* 00 0 000 */
+ 0x00, /* 00000000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x4c, /* 0 00 00 */
+ 0x34, /* 00 0 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 160 0xa0 '\240' */
+ 0x00, /* 00000000 */
+ 0x10, /* 000 0000 */
+ 0x38, /* 00 000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 161 0xa1 '\241' */
+ 0x18, /* 000 000 */
+ 0x24, /* 00 00 00 */
+ 0x24, /* 00 00 00 */
+ 0x18, /* 000 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 162 0xa2 '\242' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x10, /* 000 0000 */
+ 0x38, /* 00 000 */
+ 0x54, /* 0 0 0 00 */
+ 0x50, /* 0 0 0000 */
+ 0x54, /* 0 0 0 00 */
+ 0x38, /* 00 000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 163 0xa3 '\243' */
+ 0x30, /* 00 0000 */
+ 0x48, /* 0 00 000 */
+ 0x40, /* 0 000000 */
+ 0x70, /* 0 0000 */
+ 0x40, /* 0 000000 */
+ 0x40, /* 0 000000 */
+ 0x44, /* 0 000 00 */
+ 0x78, /* 0 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 164 0xa4 '\244' */
+ 0x44, /* 0 000 00 */
+ 0x24, /* 00 00 00 */
+ 0x50, /* 0 0 0000 */
+ 0x48, /* 0 00 000 */
+ 0x24, /* 00 00 00 */
+ 0x14, /* 000 0 00 */
+ 0x48, /* 0 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x38, /* 00 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 165 0xa5 '\245' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x7c, /* 0 00 */
+ 0x7c, /* 0 00 */
+ 0x7c, /* 0 00 */
+ 0x38, /* 00 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 166 0xa6 '\246' */
+ 0x3c, /* 00 00 */
+ 0x54, /* 0 0 0 00 */
+ 0x54, /* 0 0 0 00 */
+ 0x54, /* 0 0 0 00 */
+ 0x3c, /* 00 00 */
+ 0x14, /* 000 0 00 */
+ 0x14, /* 000 0 00 */
+ 0x14, /* 000 0 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 167 0xa7 '\247' */
+ 0x18, /* 000 000 */
+ 0x24, /* 00 00 00 */
+ 0x44, /* 0 000 00 */
+ 0x48, /* 0 00 000 */
+ 0x48, /* 0 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x58, /* 0 0 000 */
+ 0x40, /* 0 000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 168 0xa8 '\250' */
+ 0x00, /* 00000000 */
+ 0x70, /* 0 0000 */
+ 0x08, /* 0000 000 */
+ 0x64, /* 0 00 00 */
+ 0x54, /* 0 0 0 00 */
+ 0x64, /* 0 00 00 */
+ 0x58, /* 0 0 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 169 0xa9 '\251' */
+ 0x00, /* 00000000 */
+ 0x70, /* 0 0000 */
+ 0x08, /* 0000 000 */
+ 0x34, /* 00 0 00 */
+ 0x44, /* 0 000 00 */
+ 0x34, /* 00 0 00 */
+ 0x08, /* 0000 000 */
+ 0x70, /* 0 0000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 170 0xaa '\252' */
+ 0x00, /* 00000000 */
+ 0x7a, /* 0 0 0 */
+ 0x2e, /* 00 0 0 */
+ 0x2e, /* 00 0 0 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 171 0xab '\253' */
+ 0x00, /* 00000000 */
+ 0x08, /* 0000 000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 172 0xac '\254' */
+ 0x00, /* 00000000 */
+ 0x28, /* 00 0 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 173 0xad '\255' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x08, /* 0000 000 */
+ 0x7c, /* 0 00 */
+ 0x10, /* 000 0000 */
+ 0x7c, /* 0 00 */
+ 0x20, /* 00 00000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 174 0xae '\256' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x50, /* 0 0 0000 */
+ 0x50, /* 0 0 0000 */
+ 0x78, /* 0 000 */
+ 0x50, /* 0 0 0000 */
+ 0x50, /* 0 0 0000 */
+ 0x5c, /* 0 0 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 175 0xaf '\257' */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x4c, /* 0 00 00 */
+ 0x54, /* 0 0 0 00 */
+ 0x64, /* 0 00 00 */
+ 0x44, /* 0 000 00 */
+ 0x38, /* 00 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 176 0xb0 '\260' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x6c, /* 0 0 00 */
+ 0x54, /* 0 0 0 00 */
+ 0x6c, /* 0 0 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 177 0xb1 '\261' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x7c, /* 0 00 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x7c, /* 0 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 178 0xb2 '\262' */
+ 0x00, /* 00000000 */
+ 0x08, /* 0000 000 */
+ 0x10, /* 000 0000 */
+ 0x20, /* 00 00000 */
+ 0x10, /* 000 0000 */
+ 0x08, /* 0000 000 */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 179 0xb3 '\263' */
+ 0x00, /* 00000000 */
+ 0x10, /* 000 0000 */
+ 0x08, /* 0000 000 */
+ 0x04, /* 00000 00 */
+ 0x08, /* 0000 000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x1c, /* 000 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 180 0xb4 '\264' */
+ 0x00, /* 00000000 */
+ 0x44, /* 0 000 00 */
+ 0x28, /* 00 0 000 */
+ 0x7c, /* 0 00 */
+ 0x10, /* 000 0000 */
+ 0x7c, /* 0 00 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 181 0xb5 '\265' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x48, /* 0 00 000 */
+ 0x48, /* 0 00 000 */
+ 0x48, /* 0 00 000 */
+ 0x48, /* 0 00 000 */
+ 0x74, /* 0 0 00 */
+ 0x40, /* 0 000000 */
+ 0x40, /* 0 000000 */
+ 0x00, /* 00000000 */
+
+ /* 182 0xb6 '\266' */
+ 0x00, /* 00000000 */
+ 0x10, /* 000 0000 */
+ 0x08, /* 0000 000 */
+ 0x0c, /* 0000 00 */
+ 0x14, /* 000 0 00 */
+ 0x24, /* 00 00 00 */
+ 0x24, /* 00 00 00 */
+ 0x18, /* 000 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 183 0xb7 '\267' */
+ 0x00, /* 00000000 */
+ 0x7c, /* 0 00 */
+ 0x24, /* 00 00 00 */
+ 0x10, /* 000 0000 */
+ 0x08, /* 0000 000 */
+ 0x10, /* 000 0000 */
+ 0x24, /* 00 00 00 */
+ 0x7c, /* 0 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 184 0xb8 '\270' */
+ 0x00, /* 00000000 */
+ 0x7c, /* 0 00 */
+ 0x28, /* 00 0 000 */
+ 0x28, /* 00 0 000 */
+ 0x28, /* 00 0 000 */
+ 0x28, /* 00 0 000 */
+ 0x28, /* 00 0 000 */
+ 0x28, /* 00 0 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 185 0xb9 '\271' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 0 00 */
+ 0x28, /* 00 0 000 */
+ 0x28, /* 00 0 000 */
+ 0x28, /* 00 0 000 */
+ 0x28, /* 00 0 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 186 0xba '\272' */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x60, /* 0 00000 */
+ 0x00, /* 00000000 */
+
+ /* 187 0xbb '\273' */
+ 0x00, /* 00000000 */
+ 0x1c, /* 000 00 */
+ 0x24, /* 00 00 00 */
+ 0x24, /* 00 00 00 */
+ 0x1c, /* 000 00 */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 188 0xbc '\274' */
+ 0x00, /* 00000000 */
+ 0x18, /* 000 000 */
+ 0x24, /* 00 00 00 */
+ 0x24, /* 00 00 00 */
+ 0x18, /* 000 000 */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 189 0xbd '\275' */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x28, /* 00 0 000 */
+ 0x6c, /* 0 0 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 190 0xbe '\276' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x54, /* 0 0 0 00 */
+ 0x5c, /* 0 0 00 */
+ 0x50, /* 0 0 0000 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 191 0xbf '\277' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x4c, /* 0 00 00 */
+ 0x54, /* 0 0 0 00 */
+ 0x64, /* 0 00 00 */
+ 0x38, /* 00 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 192 0xc0 '\300' */
+ 0x00, /* 00000000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x10, /* 000 0000 */
+ 0x20, /* 00 00000 */
+ 0x40, /* 0 000000 */
+ 0x44, /* 0 000 00 */
+ 0x38, /* 00 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 193 0xc1 '\301' */
+ 0x00, /* 00000000 */
+ 0x08, /* 0000 000 */
+ 0x00, /* 00000000 */
+ 0x08, /* 0000 000 */
+ 0x08, /* 0000 000 */
+ 0x08, /* 0000 000 */
+ 0x08, /* 0000 000 */
+ 0x08, /* 0000 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 194 0xc2 '\302' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 0 00 */
+ 0x04, /* 00000 00 */
+ 0x04, /* 00000 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 195 0xc3 '\303' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x0c, /* 0000 00 */
+ 0x08, /* 0000 000 */
+ 0x10, /* 000 0000 */
+ 0x50, /* 0 0 0000 */
+ 0x20, /* 00 00000 */
+ 0x20, /* 00 00000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 196 0xc4 '\304' */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x38, /* 00 000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x60, /* 0 00000 */
+ 0x00, /* 00000000 */
+
+ /* 197 0xc5 '\305' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x04, /* 00000 00 */
+ 0x38, /* 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x38, /* 00 000 */
+ 0x40, /* 0 000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 198 0xc6 '\306' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x10, /* 000 0000 */
+ 0x10, /* 000 0000 */
+ 0x28, /* 00 0 000 */
+ 0x28, /* 00 0 000 */
+ 0x44, /* 0 000 00 */
+ 0x7c, /* 0 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 199 0xc7 '\307' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x24, /* 00 00 00 */
+ 0x48, /* 0 00 000 */
+ 0x48, /* 0 00 000 */
+ 0x24, /* 00 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 200 0xc8 '\310' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x48, /* 0 00 000 */
+ 0x24, /* 00 00 00 */
+ 0x24, /* 00 00 00 */
+ 0x48, /* 0 00 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 201 0xc9 '\311' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x54, /* 0 0 0 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 202 0xca '\312' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 203 0xcb '\313' */
+ 0x10, /* 000 0000 */
+ 0x38, /* 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x7c, /* 0 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 204 0xcc '\314' */
+ 0x58, /* 0 0 000 */
+ 0x38, /* 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x7c, /* 0 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 205 0xcd '\315' */
+ 0x58, /* 0 0 000 */
+ 0x38, /* 00 000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x38, /* 00 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 206 0xce '\316' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x50, /* 0 0 0000 */
+ 0x50, /* 0 0 0000 */
+ 0x58, /* 0 0 000 */
+ 0x50, /* 0 0 0000 */
+ 0x50, /* 0 0 0000 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 207 0xcf '\317' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x28, /* 00 0 000 */
+ 0x54, /* 0 0 0 00 */
+ 0x5c, /* 0 0 00 */
+ 0x50, /* 0 0 0000 */
+ 0x2c, /* 00 0 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 208 0xd0 '\320' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x38, /* 00 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 209 0xd1 '\321' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7e, /* 0 0 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 210 0xd2 '\322' */
+ 0x00, /* 00000000 */
+ 0x14, /* 000 0 00 */
+ 0x28, /* 00 0 000 */
+ 0x28, /* 00 0 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 211 0xd3 '\323' */
+ 0x00, /* 00000000 */
+ 0x14, /* 000 0 00 */
+ 0x14, /* 000 0 00 */
+ 0x28, /* 00 0 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 212 0xd4 '\324' */
+ 0x00, /* 00000000 */
+ 0x08, /* 0000 000 */
+ 0x10, /* 000 0000 */
+ 0x18, /* 000 000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 213 0xd5 '\325' */
+ 0x00, /* 00000000 */
+ 0x18, /* 000 000 */
+ 0x08, /* 0000 000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 214 0xd6 '\326' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 0 00 */
+ 0x00, /* 00000000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 215 0xd7 '\327' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x10, /* 000 0000 */
+ 0x28, /* 00 0 000 */
+ 0x44, /* 0 000 00 */
+ 0x28, /* 00 0 000 */
+ 0x10, /* 000 0000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 216 0xd8 '\330' */
+ 0x00, /* 00000000 */
+ 0x28, /* 00 0 000 */
+ 0x00, /* 00000000 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x44, /* 0 000 00 */
+ 0x3c, /* 00 00 */
+ 0x04, /* 00000 00 */
+ 0x38, /* 00 000 */
+ 0x00, /* 00000000 */
+
+ /* 217 0xd9 '\331' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7e, /* 0 0 */
+ 0x00, /* 00000000 */
+ 0x7e, /* 0 0 */
+ 0x00, /* 00000000 */
+ 0x7e, /* 0 0 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 218 0xda '\332' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 219 0xdb '\333' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 220 0xdc '\334' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 221 0xdd '\335' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 222 0xde '\336' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 223 0xdf '\337' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 224 0xe0 '\340' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 225 0xe1 '\341' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 226 0xe2 '\342' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 227 0xe3 '\343' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 228 0xe4 '\344' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 229 0xe5 '\345' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 230 0xe6 '\346' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 231 0xe7 '\347' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 232 0xe8 '\350' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 233 0xe9 '\351' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 234 0xea '\352' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 235 0xeb '\353' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 236 0xec '\354' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 237 0xed '\355' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 238 0xee '\356' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 239 0xef '\357' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 240 0xf0 '\360' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 241 0xf1 '\361' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 242 0xf2 '\362' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 243 0xf3 '\363' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 244 0xf4 '\364' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 245 0xf5 '\365' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 246 0xf6 '\366' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 247 0xf7 '\367' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 248 0xf8 '\370' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 249 0xf9 '\371' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 250 0xfa '\372' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 251 0xfb '\373' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 252 0xfc '\374' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 253 0xfd '\375' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 254 0xfe '\376' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 255 0xff '\377' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x3c, /* 00 00 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
};
diff --git a/src/glib-helpers.h b/src/glib-helpers.h
index bbc3a2d..b3da8b0 100644
--- a/src/glib-helpers.h
+++ b/src/glib-helpers.h
@@ -28,10 +28,9 @@
G_BEGIN_DECLS
-#define G_FUNC(func) ((GFunc)(func))
+#define G_FUNC(func) ((GFunc)(func))
#define G_SOURCE_FUNC(func) ((GSourceFunc)(func))
G_END_DECLS
-#endif /* GLIB_HELPERS_H */
-
+#endif /* GLIB_HELPERS_H */
diff --git a/src/main.c b/src/main.c
index 02216ad..5b0b416 100644
--- a/src/main.c
+++ b/src/main.c
@@ -14,40 +14,40 @@
#include "camorama-stock-items.h"
-static int ver = 0, max = 0, min = 0;
+static int ver = 0, max = 0, min;
static int half = 0, use_read = 0, buggery = 0;
static gchar *poopoo = NULL;
static int x = -1, y = -1;
-
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdiscarded-qualifiers"
static GOptionEntry options[] = {
{"version", 'V', 0, G_OPTION_ARG_NONE, &ver,
- N_("show version and exit"), NULL},
+ N_("show version and exit"), NULL},
{"device", 'd', 0, G_OPTION_ARG_STRING, &poopoo,
- N_("v4l device to use"), NULL},
+ N_("v4l device to use"), NULL},
{"debug", 'D', 0, G_OPTION_ARG_NONE, &buggery,
- N_("enable debugging code"), NULL},
+ N_("enable debugging code"), NULL},
{"width", 'x', 0, G_OPTION_ARG_INT, &x,
- N_("capture width"), NULL},
+ N_("capture width"), NULL},
{"height", 'y', 0, G_OPTION_ARG_INT, &y,
- N_("capture height"), NULL},
+ N_("capture height"), NULL},
{"max", 'M', 0, G_OPTION_ARG_NONE, &max,
- N_("maximum capture size"), NULL},
+ N_("maximum capture size"), NULL},
{"min", 'm', 0, G_OPTION_ARG_NONE, &min,
- N_("minimum capture size"), NULL},
+ N_("minimum capture size"), NULL},
{"half", 'H', 0, G_OPTION_ARG_NONE, &half,
- N_("middle capture size"), NULL},
+ N_("middle capture size"), NULL},
{"read", 'R', 0, G_OPTION_ARG_NONE, &use_read,
- N_("use read() rather than mmap()"), NULL},
- { NULL }
+ N_("use read() rather than mmap()"), NULL},
+ {NULL}
};
+
#pragma GCC diagnostic pop
-int
-main(int argc, char *argv[]) {
+int main(int argc, char *argv[])
+{
cam_t cam_object, *cam;
GConfClient *gc;
GtkWidget *widget;
@@ -66,12 +66,12 @@ main(int argc, char *argv[]) {
cam->res = NULL;
cam->n_res = 0;
- bindtextdomain (PACKAGE_NAME, PACKAGE_LOCALE_DIR);
- bind_textdomain_codeset (PACKAGE_NAME, "UTF-8");
- textdomain (PACKAGE_NAME);
+ bindtextdomain(PACKAGE_NAME, PACKAGE_LOCALE_DIR);
+ bind_textdomain_codeset(PACKAGE_NAME, "UTF-8");
+ textdomain(PACKAGE_NAME);
- if (!gtk_init_with_args(&argc, &argv,_("camorama"), options,
- PACKAGE_NAME, &error) || error) {
+ if (!gtk_init_with_args(&argc, &argv, _("camorama"), options,
+ PACKAGE_NAME, &error) || error) {
g_printerr(_("Invalid argument\nRun '%s --help'\n"), argv[0]);
return 1;
}
@@ -82,58 +82,58 @@ main(int argc, char *argv[]) {
cam->debug = buggery;
- cam->width = x;
- cam->height = y;
+ cam->width = x;
+ cam->height = y;
if (ver) {
- fprintf (stderr, _("\n\nCamorama version %s\n\n"), PACKAGE_VERSION);
- exit (0);
+ fprintf(stderr, _("\n\nCamorama version %s\n\n"), PACKAGE_VERSION);
+ exit(0);
}
- if (max) {
+ if (max)
cam->size = PICMAX;
- }
- if (min) {
+
+ if (min)
cam->size = PICMIN;
- }
- if (half) {
+
+ if (half)
cam->size = PICHALF;
- }
+
if (use_read) {
- printf ("Forcing read mode\n");
+ printf("Forcing read mode\n");
cam->read = TRUE;
}
- gc = gconf_client_get_default ();
+ gc = gconf_client_get_default();
cam->gc = gc;
- gconf_client_add_dir (cam->gc, PATH, GCONF_CLIENT_PRELOAD_NONE, NULL);
- gconf_client_notify_add (cam->gc, KEY1, (void *) gconf_notify_func,
- &cam->pixdir, NULL, NULL);
- gconf_client_notify_add (cam->gc, KEY2, (void *) gconf_notify_func,
- &cam->capturefile, NULL, NULL);
- gconf_client_notify_add (cam->gc, KEY3,
- (void *) gconf_notify_func_int,
- &cam->savetype, NULL, NULL);
- gconf_client_notify_add (cam->gc, KEY4,
- (void *) gconf_notify_func_bool,
- &cam->timestamp, NULL, NULL);
- gconf_client_notify_add (cam->gc, KEY5, (void *) gconf_notify_func,
- &cam->host, NULL, NULL);
- gconf_client_notify_add (cam->gc, KEY6, (void *) gconf_notify_func,
- &cam->proto, NULL, NULL);
- gconf_client_notify_add (cam->gc, KEY8, (void *) gconf_notify_func,
- &cam->rdir, NULL, NULL);
- gconf_client_notify_add (cam->gc, KEY9, (void *) gconf_notify_func,
- &cam->rcapturefile, NULL, NULL);
+ gconf_client_add_dir(cam->gc, PATH, GCONF_CLIENT_PRELOAD_NONE, NULL);
+ gconf_client_notify_add(cam->gc, KEY1, (void *)gconf_notify_func,
+ &cam->pixdir, NULL, NULL);
+ gconf_client_notify_add(cam->gc, KEY2, (void *)gconf_notify_func,
+ &cam->capturefile, NULL, NULL);
+ gconf_client_notify_add(cam->gc, KEY3,
+ (void *)gconf_notify_func_int,
+ &cam->savetype, NULL, NULL);
+ gconf_client_notify_add(cam->gc, KEY4,
+ (void *)gconf_notify_func_bool,
+ &cam->timestamp, NULL, NULL);
+ gconf_client_notify_add(cam->gc, KEY5, (void *)gconf_notify_func,
+ &cam->host, NULL, NULL);
+ gconf_client_notify_add(cam->gc, KEY6, (void *)gconf_notify_func,
+ &cam->proto, NULL, NULL);
+ gconf_client_notify_add(cam->gc, KEY8, (void *)gconf_notify_func,
+ &cam->rdir, NULL, NULL);
+ gconf_client_notify_add(cam->gc, KEY9, (void *)gconf_notify_func,
+ &cam->rcapturefile, NULL, NULL);
if (!poopoo) {
- gchar const* gconf_device = gconf_client_get_string(cam->gc, KEY_DEVICE, NULL);
- if(gconf_device) {
- cam->video_dev = g_strdup(gconf_device);
- } else {
- cam->video_dev = g_strdup ("/dev/video0");
- }
+ gchar const *gconf_device = gconf_client_get_string(cam->gc, KEY_DEVICE,
+ NULL);
+ if (gconf_device)
+ cam->video_dev = g_strdup(gconf_device);
+ else
+ cam->video_dev = g_strdup("/dev/video0");
} else {
- cam->video_dev = g_strdup (poopoo);
+ cam->video_dev = g_strdup(poopoo);
}
#pragma GCC diagnostic push
@@ -141,70 +141,67 @@ main(int argc, char *argv[]) {
cam->date_format = "%Y-%m-%d %H:%M:%S";
#pragma GCC diagnostic pop
- cam->pixdir = g_strdup (gconf_client_get_string (cam->gc, KEY1, NULL));
- cam->capturefile =
- g_strdup (gconf_client_get_string (cam->gc, KEY2, NULL));
- cam->savetype = gconf_client_get_int (cam->gc, KEY3, NULL);
- cam->host = g_strdup (gconf_client_get_string (cam->gc, KEY5, NULL));
- cam->proto = g_strdup (gconf_client_get_string (cam->gc, KEY6, NULL));
- cam->rdir = g_strdup (gconf_client_get_string (cam->gc, KEY8, NULL));
- cam->rcapturefile = g_strdup (gconf_client_get_string (cam->gc, KEY9, NULL));
- cam->rsavetype = gconf_client_get_int (cam->gc, KEY10, NULL);
- cam->ts_string =
- g_strdup (gconf_client_get_string (cam->gc, KEY16, NULL));
- cam->timestamp = gconf_client_get_bool (cam->gc, KEY4, NULL);
- cam->rtimestamp = gconf_client_get_bool (cam->gc, KEY11, NULL);
-
- cam->cap = gconf_client_get_bool (cam->gc, KEY12, NULL);
- cam->rcap = gconf_client_get_bool (cam->gc, KEY13, NULL);
- cam->timefn = gconf_client_get_bool (cam->gc, KEY14, NULL);
- cam->rtimefn = gconf_client_get_bool (cam->gc, KEY15, NULL);
- cam->usestring = gconf_client_get_bool (cam->gc, KEY18, NULL);
- cam->usedate = gconf_client_get_bool (cam->gc, KEY19, NULL);
- cam->acap = gconf_client_get_bool (cam->gc, KEY20, NULL);
- cam->timeout_interval = gconf_client_get_int (cam->gc, KEY21, NULL);
- cam->show_adjustments = gconf_client_get_bool (cam->gc, KEY22, NULL);
- cam->show_effects = gconf_client_get_bool (cam->gc, KEY23, NULL);
+ cam->pixdir = g_strdup(gconf_client_get_string(cam->gc, KEY1, NULL));
+ cam->capturefile = g_strdup(gconf_client_get_string(cam->gc, KEY2, NULL));
+ cam->savetype = gconf_client_get_int(cam->gc, KEY3, NULL);
+ cam->host = g_strdup(gconf_client_get_string(cam->gc, KEY5, NULL));
+ cam->proto = g_strdup(gconf_client_get_string(cam->gc, KEY6, NULL));
+ cam->rdir = g_strdup(gconf_client_get_string(cam->gc, KEY8, NULL));
+ cam->rcapturefile = g_strdup(gconf_client_get_string(cam->gc, KEY9, NULL));
+ cam->rsavetype = gconf_client_get_int(cam->gc, KEY10, NULL);
+ cam->ts_string = g_strdup(gconf_client_get_string(cam->gc, KEY16, NULL));
+ cam->timestamp = gconf_client_get_bool(cam->gc, KEY4, NULL);
+ cam->rtimestamp = gconf_client_get_bool(cam->gc, KEY11, NULL);
+
+ cam->cap = gconf_client_get_bool(cam->gc, KEY12, NULL);
+ cam->rcap = gconf_client_get_bool(cam->gc, KEY13, NULL);
+ cam->timefn = gconf_client_get_bool(cam->gc, KEY14, NULL);
+ cam->rtimefn = gconf_client_get_bool(cam->gc, KEY15, NULL);
+ cam->usestring = gconf_client_get_bool(cam->gc, KEY18, NULL);
+ cam->usedate = gconf_client_get_bool(cam->gc, KEY19, NULL);
+ cam->acap = gconf_client_get_bool(cam->gc, KEY20, NULL);
+ cam->timeout_interval = gconf_client_get_int(cam->gc, KEY21, NULL);
+ cam->show_adjustments = gconf_client_get_bool(cam->gc, KEY22, NULL);
+ cam->show_effects = gconf_client_get_bool(cam->gc, KEY23, NULL);
if (use_read)
- cam->dev = v4l2_open (cam->video_dev, O_RDWR);
+ cam->dev = v4l2_open(cam->video_dev, O_RDWR);
else
- cam->dev = v4l2_open (cam->video_dev, O_RDWR | O_NONBLOCK);
+ cam->dev = v4l2_open(cam->video_dev, O_RDWR | O_NONBLOCK);
- camera_cap (cam);
- get_win_info (cam);
+ camera_cap(cam);
+ get_win_info(cam);
- set_win_info (cam);
- get_win_info (cam);
+ set_win_info(cam);
+ get_win_info(cam);
/* get picture attributes */
- get_pic_info (cam);
+ get_pic_info(cam);
bufsize = cam->max_width * cam->max_height * cam->bpp / 8;
- cam->pic_buf = malloc (bufsize);
- cam->tmp = malloc (bufsize);
+ cam->pic_buf = malloc(bufsize);
+ cam->tmp = malloc(bufsize);
if (!cam->pic_buf || !cam->tmp) {
- printf("Failed to allocate memory for buffers\n");
- exit(0);
+ printf("Failed to allocate memory for buffers\n");
+ exit(0);
}
-
//cam->read = FALSE;
/* initialize cam and create the window */
if (cam->read == FALSE) {
pt2Function = timeout_func;
- start_streaming (cam);
+ start_streaming(cam);
} else {
- printf ("using read()\n");
+ printf("using read()\n");
pt2Function = read_timeout_func;
}
- cam->xml = gtk_builder_new ();
- if (!gtk_builder_add_from_file (cam->xml,
- PACKAGE_DATA_DIR "/camorama/camorama.ui",
- NULL)) {
- error_dialog (_("Couldn't load builder file"));
+ cam->xml = gtk_builder_new();
+ if (!gtk_builder_add_from_file(cam->xml,
+ PACKAGE_DATA_DIR
+ "/camorama/camorama.ui", NULL)) {
+ error_dialog(_("Couldn't load builder file"));
exit(1);
}
@@ -214,24 +211,24 @@ main(int argc, char *argv[]) {
* button = gtk_button_new_with_label ("This is a another\ncool tray icon");
* g_signal_connect (button, "clicked",
* G_CALLBACK (second_button_pressed), tray_icon);
- *
+ *
* gtk_container_add (GTK_CONTAINER (tray_icon), button);
* gtk_widget_show_all (GTK_WIDGET (tray_icon)); */
- load_interface (cam);
+ load_interface(cam);
- widget = GTK_WIDGET (gtk_builder_get_object (cam->xml, "da"));
- gtk_widget_show (widget);
+ widget = GTK_WIDGET(gtk_builder_get_object(cam->xml, "da"));
+ gtk_widget_show(widget);
- cam->idle_id = g_idle_add ((GSourceFunc) pt2Function, (gpointer) cam);
+ cam->idle_id = g_idle_add((GSourceFunc) pt2Function, (gpointer) cam);
- g_timeout_add (2000, (GSourceFunc) fps, cam->status);
+ g_timeout_add(2000, (GSourceFunc) fps, cam->status);
if (cam->debug == TRUE)
- print_cam(cam);
+ print_cam(cam);
- gtk_main ();
+ gtk_main();
if (cam->read == FALSE) {
- stop_streaming(cam);
+ stop_streaming(cam);
}
v4l2_close(cam->dev);
diff --git a/src/support.c b/src/support.c
index 98b081d..cb90cda 100644
--- a/src/support.c
+++ b/src/support.c
@@ -9,29 +9,29 @@
#include <gdk/gdkkeysyms.h>
#include <config.h>
-GtkWidget *xpm_label_box (gchar * xpm_filename)
+GtkWidget *xpm_label_box(gchar *xpm_filename)
{
GtkWidget *box;
GtkWidget *image;
/* Create box for image and label */
- box = gtk_hbox_new (FALSE, 0);
- gtk_container_set_border_width (GTK_CONTAINER (box), 2);
+ box = gtk_hbox_new(FALSE, 0);
+ gtk_container_set_border_width(GTK_CONTAINER(box), 2);
/* Now on to the image stuff */
- image = gtk_image_new_from_file (xpm_filename);
+ image = gtk_image_new_from_file(xpm_filename);
/* Create a label for the button */
/* Pack the image and label into the box */
- gtk_box_pack_start (GTK_BOX (box), image, FALSE, FALSE, 3);
+ gtk_box_pack_start(GTK_BOX(box), image, FALSE, FALSE, 3);
- gtk_widget_show (image);
+ gtk_widget_show(image);
return box;
}
-int error_dialog (char *message)
+int error_dialog(char *message)
{
GtkWidget *dialog;
int test;
@@ -39,10 +39,9 @@ int error_dialog (char *message)
dialog = gtk_message_dialog_new(NULL,
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_ERROR,
- GTK_BUTTONS_CLOSE,
- "%s", message);
+ GTK_BUTTONS_CLOSE, "%s", message);
- test = gtk_dialog_run (GTK_DIALOG (dialog));
- gtk_widget_destroy (dialog);
+ test = gtk_dialog_run(GTK_DIALOG(dialog));
+ gtk_widget_destroy(dialog);
return test;
}
diff --git a/src/support.h b/src/support.h
index 8545271..2b0f400 100644
--- a/src/support.h
+++ b/src/support.h
@@ -1,4 +1,4 @@
#include "v4l.h"
-GtkWidget *xpm_label_box (gchar *);
-int error_dialog (char *);
+GtkWidget * xpm_label_box(gchar *);
+int error_dialog(char *);
diff --git a/src/v4l.c b/src/v4l.c
index 92852c2..930d497 100644
--- a/src/v4l.c
+++ b/src/v4l.c
@@ -8,588 +8,609 @@
extern int frame_number;
-void print_cam(cam_t *cam){
- printf("\nCamera Info\n");
- printf("-----------\n");
- printf("device = %s, x = %d, y = %d\n",cam->video_dev, cam->width,cam->height);
- printf("bits per pixel = %d\n", cam->bpp);
- if(cam->width <= 0 || cam->height <= 0) {
- switch (cam->size) {
- case PICMAX:
- printf("size = PICMAX\n");
- break;
- case PICMIN:
- printf("size = PICMIN\n");
- break;
- case PICHALF:
- default:
- printf("size = PICHALF\n");
- break;
- }
- }
- printf("capture directory = %s, capture file = %s\n",cam->pixdir, cam->capturefile);
- printf("remote host = %s\n",cam->uri);
- if (strcmp(cam->ts_string, "Camorama!"))
- printf("timestamp = %s\n\n",cam->ts_string);
+void print_cam(cam_t *cam)
+{
+ printf("\nCamera Info\n");
+ printf("-----------\n");
+ printf("device = %s, x = %d, y = %d\n", cam->video_dev, cam->width,
+ cam->height);
+ printf("bits per pixel = %d\n", cam->bpp);
+ if (cam->width <= 0 || cam->height <= 0) {
+ switch (cam->size) {
+ case PICMAX:
+ printf("size = PICMAX\n");
+ break;
+ case PICMIN:
+ printf("size = PICMIN\n");
+ break;
+ case PICHALF:
+ default:
+ printf("size = PICHALF\n");
+ break;
+ }
+ }
+ printf("capture directory = %s, capture file = %s\n", cam->pixdir,
+ cam->capturefile);
+ printf("remote host = %s\n", cam->uri);
+ if (strcmp(cam->ts_string, "Camorama!"))
+ printf("timestamp = %s\n\n", cam->ts_string);
}
static void insert_resolution(cam_t *cam, unsigned int x, unsigned int y)
{
- unsigned int i;
+ unsigned int i;
- try_set_win_info(cam, &x, &y);
- for (i = 0; i < cam->n_res; i++) {
- if (cam->res[i].x == x && cam->res[i].y == y)
- return;
- }
+ try_set_win_info(cam, &x, &y);
+ for (i = 0; i < cam->n_res; i++) {
+ if (cam->res[i].x == x && cam->res[i].y == y)
+ return;
+ }
- cam->res = realloc(cam->res, (cam->n_res + 1) * sizeof(struct resolutions));
+ cam->res = realloc(cam->res, (cam->n_res + 1) * sizeof(struct resolutions));
- cam->res[cam->n_res].x = x;
- cam->res[cam->n_res].y = y;
- cam->n_res++;
+ cam->res[cam->n_res].x = x;
+ cam->res[cam->n_res].y = y;
+ cam->n_res++;
}
-static int sort_func(const void *__b,
- const void *__a)
+static int sort_func(const void *__b, const void *__a)
{
- const struct resolutions *a = __a;
- const struct resolutions *b = __b;
- int r;
+ const struct resolutions *a = __a;
+ const struct resolutions *b = __b;
+ int r;
- r = b->x - a->x;
- if (!r)
+ r = b->x - a->x;
+ if (!r)
r = b->y - a->y;
- return r;
+ return r;
}
void get_supported_resolutions(cam_t *cam)
{
- struct v4l2_fmtdesc fmt;
- struct v4l2_frmsizeenum frmsize;
- int i;
- unsigned int x, y;
-
- fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-
- for (fmt.index = 0;
- !v4l2_ioctl(cam->dev, VIDIOC_ENUM_FMT, &fmt);
- fmt.index++) {
- if (cam->pixformat != fmt.pixelformat)
- continue;
-
- frmsize.pixel_format = fmt.pixelformat;
- frmsize.index = 0;
- while (!v4l2_ioctl(cam->dev, VIDIOC_ENUM_FRAMESIZES, &frmsize)) {
+ struct v4l2_fmtdesc fmt;
+ struct v4l2_frmsizeenum frmsize;
+ int i;
+ unsigned int x, y;
+
+ fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+
+ for (fmt.index = 0;
+ !v4l2_ioctl(cam->dev, VIDIOC_ENUM_FMT, &fmt);
+ fmt.index++) {
+ if (cam->pixformat != fmt.pixelformat)
+ continue;
+
+ frmsize.pixel_format = fmt.pixelformat;
+ frmsize.index = 0;
+
+ while (!v4l2_ioctl(cam->dev, VIDIOC_ENUM_FRAMESIZES, &frmsize)) {
if (frmsize.type == V4L2_FRMSIZE_TYPE_DISCRETE) {
- insert_resolution(cam, frmsize.discrete.width,
- frmsize.discrete.height);
+ insert_resolution(cam, frmsize.discrete.width,
+ frmsize.discrete.height);
} else if (frmsize.type == V4L2_FRMSIZE_TYPE_STEPWISE) {
- for (i = 0; i < 4; i++) {
- x = frmsize.stepwise.min_width +
- i * (frmsize.stepwise.max_width - frmsize.stepwise.min_width) / 4;
- y = frmsize.stepwise.min_height +
- i * (frmsize.stepwise.max_height - frmsize.stepwise.min_height) / 4;
- insert_resolution(cam, x, y);
- }
+ for (i = 0; i < 4; i++) {
+ x = frmsize.stepwise.min_width +
+ i * (frmsize.stepwise.max_width -
+ frmsize.stepwise.min_width) / 4;
+ y = frmsize.stepwise.min_height +
+ i * (frmsize.stepwise.max_height -
+ frmsize.stepwise.min_height) / 4;
+ insert_resolution(cam, x, y);
+ }
}
frmsize.index++;
- }
- }
- qsort(cam->res, cam->n_res, sizeof(struct resolutions), sort_func);
+ }
+ }
+ qsort(cam->res, cam->n_res, sizeof(struct resolutions), sort_func);
}
void camera_cap(cam_t *cam)
{
- char *msg;
- int i;
- struct v4l2_capability vid_cap = { 0 };
- struct v4l2_fmtdesc fmtdesc = { .type = V4L2_BUF_TYPE_VIDEO_CAPTURE };
- struct v4l2_format fmt;
-
- /* Query device capabilities */
- if(v4l2_ioctl(cam->dev, VIDIOC_QUERYCAP, &vid_cap) == -1) {
- if(cam->debug == TRUE) {
- fprintf(stderr, "VIDIOC_QUERYCAP -- could not get camera capabilities, exiting.....\n");
- }
- msg = g_strdup_printf(_("Could not connect to video device (%s).\nPlease check connection."), cam->video_dev);
- error_dialog(msg);
- g_free(msg);
- exit(0);
- }
-
- /* Query supported resolutions */
-
- cam->rdir_ok = FALSE;
- cam->min_width = -1;
- cam->min_height = -1;
- cam->max_width = 0;
- cam->max_height = 0;
- for (i = 0; ; i++) {
- fmtdesc.index = i;
-
- if (v4l2_ioctl(cam->dev, VIDIOC_ENUM_FMT, &fmtdesc))
- break;
-
- if (cam->debug == TRUE)
- printf("format index %d: FOURCC: '%c%c%c%c' (%08x)%s\n", i,
- fmtdesc.pixelformat & 0xff,
- (fmtdesc.pixelformat >> 8) & 0xff,
- (fmtdesc.pixelformat >> 16) & 0xff,
- fmtdesc.pixelformat >> 24,
- fmtdesc.pixelformat,
- fmtdesc.flags & V4L2_FMT_FLAG_EMULATED ? " (emulated)" : ""
- );
-
- /* FIXME: add a check for emulated formats */
-
- memset(&fmt, 0, sizeof(fmt));
- fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
- fmt.fmt.pix.pixelformat = fmtdesc.pixelformat;
- fmt.fmt.pix.width = 48;
- fmt.fmt.pix.height = 32;
-
- if (!v4l2_ioctl(cam->dev, VIDIOC_TRY_FMT, &fmt)) {
- if (fmt.fmt.pix.width < cam->min_width)
- cam->min_width = fmt.fmt.pix.width;
- if (fmt.fmt.pix.height < cam->min_height)
- cam->min_height = fmt.fmt.pix.height;
- if (cam->debug == TRUE)
- printf(" MIN: %dx%d\n", fmt.fmt.pix.width, fmt.fmt.pix.height);
- }
-
- memset(&fmt, 0, sizeof(fmt));
- fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
- fmt.fmt.pix.pixelformat = fmtdesc.pixelformat;
- fmt.fmt.pix.width = 100000;
- fmt.fmt.pix.height = 100000;
-
- if (!v4l2_ioctl(cam->dev, VIDIOC_TRY_FMT, &fmt)) {
- if (fmt.fmt.pix.width > cam->max_width)
- cam->max_width = fmt.fmt.pix.width;
- if (fmt.fmt.pix.height > cam->max_height)
- cam->max_height = fmt.fmt.pix.height;
- if(cam->debug == TRUE)
- printf(" MAX: %dx%d\n", fmt.fmt.pix.width, fmt.fmt.pix.height);
- }
- }
-
- /* Adjust camera resolution */
-
- if(cam->width > 0 && cam->height > 0) {
- if(cam->max_width < cam->width) {
- cam->width = cam->max_width;
- }
- if(cam->min_width > cam->width) {
- cam->width = cam->min_width;
- }
- if(cam->max_height < cam->height) {
- cam->height = cam->max_height;
- }
- if(cam->min_height > cam->height) {
- cam->height = cam->min_height;
- }
- } else {
- switch (cam->size) {
- case PICMAX:
- cam->width = cam->max_width;
- cam->height = cam->max_height;
- break;
-
- case PICMIN:
- cam->width = cam->min_width;
- cam->height = cam->min_height;
- break;
-
- case PICHALF:
- cam->width = cam->max_width / 2;
- cam->height = cam->max_height / 2;
- break;
-
- default:
- cam->width = cam->max_width / 2;
- cam->height = cam->max_height / 2;
- break;
- }
- }
-
- if(!(vid_cap.capabilities & V4L2_CAP_VIDEO_CAPTURE)) {
- if(cam->debug == TRUE) {
- fprintf(stderr, "VIDIOC_QUERYCAP -- it is not a capture device, exiting.....\n");
- }
- msg = g_strdup_printf(_("Could not connect to video device (%s).\nPlease check connection."), cam->video_dev);
- error_dialog(msg);
- g_free(msg);
- exit(0);
- }
-
- if(!(vid_cap.capabilities & V4L2_CAP_STREAMING)) {
- cam->read = TRUE;
- }
-
- strncpy(cam->name, (const char *)vid_cap.card, sizeof(cam->name));
- cam->name[sizeof(cam->name) - 1] = '\0';
-
- if(cam->debug == TRUE) {
- printf("\nVIDIOC_QUERYCAP\n");
- printf("device name = %s\n", vid_cap.card);
- printf("device caps = 0x%08x\n", vid_cap.capabilities);
- printf("max width = %d\n", cam->max_width);
- printf("max height = %d\n", cam->max_height);
- printf("min width = %d\n", cam->min_width);
- printf("min height = %d\n", cam->min_height);
- }
+ char *msg;
+ int i;
+ struct v4l2_capability vid_cap = { 0 };
+ struct v4l2_fmtdesc fmtdesc = {.type = V4L2_BUF_TYPE_VIDEO_CAPTURE };
+ struct v4l2_format fmt;
+
+ /* Query device capabilities */
+ if (v4l2_ioctl(cam->dev, VIDIOC_QUERYCAP, &vid_cap) == -1) {
+ if (cam->debug == TRUE) {
+ fprintf(stderr,
+ "VIDIOC_QUERYCAP -- could not get camera capabilities, exiting.....\n");
+ }
+ msg = g_strdup_printf(_("Could not connect to video device (%s).\nPlease check connection."),
+ cam->video_dev);
+ error_dialog(msg);
+ g_free(msg);
+ exit(0);
+ }
+
+ /* Query supported resolutions */
+
+ cam->rdir_ok = FALSE;
+ cam->min_width = -1;
+ cam->min_height = -1;
+ cam->max_width = 0;
+ cam->max_height = 0;
+ for (i = 0;; i++) {
+ fmtdesc.index = i;
+
+ if (v4l2_ioctl(cam->dev, VIDIOC_ENUM_FMT, &fmtdesc))
+ break;
+
+ if (cam->debug == TRUE)
+ printf("format index %d: FOURCC: '%c%c%c%c' (%08x)%s\n", i,
+ fmtdesc.pixelformat & 0xff,
+ (fmtdesc.pixelformat >> 8) & 0xff,
+ (fmtdesc.pixelformat >> 16) & 0xff,
+ fmtdesc.pixelformat >> 24,
+ fmtdesc.pixelformat,
+ fmtdesc.
+ flags & V4L2_FMT_FLAG_EMULATED ? " (emulated)" : "");
+
+ /* FIXME: add a check for emulated formats */
+
+ memset(&fmt, 0, sizeof(fmt));
+ fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+ fmt.fmt.pix.pixelformat = fmtdesc.pixelformat;
+ fmt.fmt.pix.width = 48;
+ fmt.fmt.pix.height = 32;
+
+ if (!v4l2_ioctl(cam->dev, VIDIOC_TRY_FMT, &fmt)) {
+ if (fmt.fmt.pix.width < cam->min_width)
+ cam->min_width = fmt.fmt.pix.width;
+ if (fmt.fmt.pix.height < cam->min_height)
+ cam->min_height = fmt.fmt.pix.height;
+ if (cam->debug == TRUE)
+ printf(" MIN: %dx%d\n", fmt.fmt.pix.width,
+ fmt.fmt.pix.height);
+ }
+
+ memset(&fmt, 0, sizeof(fmt));
+ fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+ fmt.fmt.pix.pixelformat = fmtdesc.pixelformat;
+ fmt.fmt.pix.width = 100000;
+ fmt.fmt.pix.height = 100000;
+
+ if (!v4l2_ioctl(cam->dev, VIDIOC_TRY_FMT, &fmt)) {
+ if (fmt.fmt.pix.width > cam->max_width)
+ cam->max_width = fmt.fmt.pix.width;
+ if (fmt.fmt.pix.height > cam->max_height)
+ cam->max_height = fmt.fmt.pix.height;
+ if (cam->debug == TRUE)
+ printf(" MAX: %dx%d\n", fmt.fmt.pix.width,
+ fmt.fmt.pix.height);
+ }
+ }
+
+ /* Adjust camera resolution */
+
+ if (cam->width > 0 && cam->height > 0) {
+ if (cam->max_width < cam->width)
+ cam->width = cam->max_width;
+ else if (cam->min_width > cam->width)
+ cam->width = cam->min_width;
+
+ if (cam->max_height < cam->height)
+ cam->height = cam->max_height;
+ else if (cam->min_height > cam->height)
+ cam->height = cam->min_height;
+ } else {
+ switch (cam->size) {
+ case PICMAX:
+ cam->width = cam->max_width;
+ cam->height = cam->max_height;
+ break;
+
+ case PICMIN:
+ cam->width = cam->min_width;
+ cam->height = cam->min_height;
+ break;
+
+ case PICHALF:
+ cam->width = cam->max_width / 2;
+ cam->height = cam->max_height / 2;
+ break;
+
+ default:
+ cam->width = cam->max_width / 2;
+ cam->height = cam->max_height / 2;
+ break;
+ }
+ }
+
+ if (!(vid_cap.capabilities & V4L2_CAP_VIDEO_CAPTURE)) {
+ if (cam->debug == TRUE) {
+ fprintf(stderr,
+ "VIDIOC_QUERYCAP -- it is not a capture device, exiting.....\n");
+ }
+ msg = g_strdup_printf(_("Could not connect to video device (%s).\nPlease check connection."),
+ cam->video_dev);
+ error_dialog(msg);
+ g_free(msg);
+ exit(0);
+ }
+
+ if (!(vid_cap.capabilities & V4L2_CAP_STREAMING))
+ cam->read = TRUE;
+
+ strncpy(cam->name, (const char *)vid_cap.card, sizeof(cam->name));
+ cam->name[sizeof(cam->name) - 1] = '\0';
+
+ if (cam->debug == TRUE) {
+ printf("\nVIDIOC_QUERYCAP\n");
+ printf("device name = %s\n", vid_cap.card);
+ printf("device caps = 0x%08x\n", vid_cap.capabilities);
+ printf("max width = %d\n", cam->max_width);
+ printf("max height = %d\n", cam->max_height);
+ printf("min width = %d\n", cam->min_width);
+ printf("min height = %d\n", cam->min_height);
+ }
}
-void get_pic_info(cam_t *cam){
- int i;
-
- if(cam->debug == TRUE)
- printf("\nVideo control settings:\n");
-
- i = v4l2_get_control(cam->dev, V4L2_CID_HUE);
- if (i >= 0) {
- cam->hue = i;
- if(cam->debug == TRUE)
- printf("hue = %d\n", cam->hue);
- } else {
- cam->hue = -1;
- }
- i = v4l2_get_control(cam->dev, V4L2_CID_SATURATION);
- if (i >= 0) {
- cam->colour = i;
- if(cam->debug == TRUE)
- printf("colour = %d\n", cam->colour);
- } else {
- cam->colour = -1;
- }
- i = v4l2_get_control(cam->dev, V4L2_CID_CONTRAST);
- if (i >= 0) {
- cam->contrast = i;
- if(cam->debug == TRUE)
- printf("contrast = %d\n", cam->contrast);
- } else {
- cam->contrast = -1;
- }
- i = v4l2_get_control(cam->dev, V4L2_CID_WHITENESS);
- if (i >= 0) {
- cam->whiteness = i;
- if(cam->debug == TRUE)
- printf("whiteness = %d\n", cam->whiteness);
- } else {
- cam->whiteness = -1;
- }
- i = v4l2_get_control(cam->dev, V4L2_CID_BRIGHTNESS);
- if (i >= 0) {
- cam->brightness = i;
- if(cam->debug == TRUE)
- printf("brightness = %d\n", cam->brightness);
- } else {
- cam->brightness = -1;
- }
+void get_pic_info(cam_t *cam)
+{
+ int i;
+
+ if (cam->debug == TRUE)
+ printf("\nVideo control settings:\n");
+
+ i = v4l2_get_control(cam->dev, V4L2_CID_HUE);
+ if (i >= 0) {
+ cam->hue = i;
+ if (cam->debug == TRUE)
+ printf("hue = %d\n", cam->hue);
+ } else {
+ cam->hue = -1;
+ }
+ i = v4l2_get_control(cam->dev, V4L2_CID_SATURATION);
+ if (i >= 0) {
+ cam->colour = i;
+ if (cam->debug == TRUE)
+ printf("colour = %d\n", cam->colour);
+ } else {
+ cam->colour = -1;
+ }
+ i = v4l2_get_control(cam->dev, V4L2_CID_CONTRAST);
+ if (i >= 0) {
+ cam->contrast = i;
+ if (cam->debug == TRUE)
+ printf("contrast = %d\n", cam->contrast);
+ } else {
+ cam->contrast = -1;
+ }
+ i = v4l2_get_control(cam->dev, V4L2_CID_WHITENESS);
+ if (i >= 0) {
+ cam->whiteness = i;
+ if (cam->debug == TRUE)
+ printf("whiteness = %d\n", cam->whiteness);
+ } else {
+ cam->whiteness = -1;
+ }
+ i = v4l2_get_control(cam->dev, V4L2_CID_BRIGHTNESS);
+ if (i >= 0) {
+ cam->brightness = i;
+ if (cam->debug == TRUE)
+ printf("brightness = %d\n", cam->brightness);
+ } else {
+ cam->brightness = -1;
+ }
}
void get_win_info(cam_t *cam)
{
- gchar *msg;
- struct v4l2_format fmt = { 0 };
-
- fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-
- if (v4l2_ioctl(cam->dev, VIDIOC_G_FMT, &fmt)) {
- msg = g_strdup_printf(_("Could not connect to video device (%s).\nPlease check connection."), cam->video_dev);
- error_dialog(msg);
- if(cam->debug == TRUE) {
- g_message("VIDIOC_G_FMT -- could not get picture info");
- }
- return;
- }
-
- if(cam->debug == TRUE) {
- printf("\nVIDIOC_G_FMT\n");
- printf("format FOURCC: '%c%c%c%c' (%08x)\n",
- fmt.fmt.pix.pixelformat & 0xff,
- (fmt.fmt.pix.pixelformat >> 8) & 0xff,
- (fmt.fmt.pix.pixelformat >> 16) & 0xff,
- fmt.fmt.pix.pixelformat >> 24,
- fmt.fmt.pix.pixelformat);
- printf("x = %d\n", fmt.fmt.pix.width);
- printf("y = %d\n", fmt.fmt.pix.height);
- if (fmt.fmt.pix.bytesperline)
- printf("bytes/line = %d\n", fmt.fmt.pix.bytesperline);
- }
-
- if (!fmt.fmt.pix.bytesperline) {
- if (fmt.fmt.pix.pixelformat == V4L2_PIX_FMT_YUV420)
- fmt.fmt.pix.bytesperline = fmt.fmt.pix.width * 2;
- else
- fmt.fmt.pix.bytesperline = fmt.fmt.pix.width * 3;
- }
-
- if (fmt.fmt.pix.pixelformat == V4L2_PIX_FMT_BGR24 ||
- fmt.fmt.pix.pixelformat == V4L2_PIX_FMT_YUV420) {
-
- cam->pixformat = fmt.fmt.pix.pixelformat;
- cam->bpp = ((fmt.fmt.pix.bytesperline << 3) + (fmt.fmt.pix.width - 1)) / fmt.fmt.pix.width;
- cam->width = fmt.fmt.pix.width;
- cam->height = fmt.fmt.pix.height;
- cam->bytesperline = fmt.fmt.pix.bytesperline;
- }
+ gchar *msg;
+ struct v4l2_format fmt = { 0 };
+
+ fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+
+ if (v4l2_ioctl(cam->dev, VIDIOC_G_FMT, &fmt)) {
+ msg = g_strdup_printf(_("Could not connect to video device (%s).\nPlease check connection."),
+ cam->video_dev);
+ error_dialog(msg);
+ if (cam->debug == TRUE)
+ g_message("VIDIOC_G_FMT -- could not get picture info");
+
+ return;
+ }
+
+ if (cam->debug == TRUE) {
+ printf("\nVIDIOC_G_FMT\n");
+ printf("format FOURCC: '%c%c%c%c' (%08x)\n",
+ fmt.fmt.pix.pixelformat & 0xff,
+ (fmt.fmt.pix.pixelformat >> 8) & 0xff,
+ (fmt.fmt.pix.pixelformat >> 16) & 0xff,
+ fmt.fmt.pix.pixelformat >> 24,
+ fmt.fmt.pix.pixelformat);
+ printf("x = %d\n", fmt.fmt.pix.width);
+ printf("y = %d\n", fmt.fmt.pix.height);
+ if (fmt.fmt.pix.bytesperline)
+ printf("bytes/line = %d\n", fmt.fmt.pix.bytesperline);
+ }
+
+ if (!fmt.fmt.pix.bytesperline) {
+ if (fmt.fmt.pix.pixelformat == V4L2_PIX_FMT_YUV420)
+ fmt.fmt.pix.bytesperline = fmt.fmt.pix.width * 2;
+ else
+ fmt.fmt.pix.bytesperline = fmt.fmt.pix.width * 3;
+ }
+
+ if (fmt.fmt.pix.pixelformat == V4L2_PIX_FMT_BGR24 ||
+ fmt.fmt.pix.pixelformat == V4L2_PIX_FMT_YUV420) {
+
+ cam->pixformat = fmt.fmt.pix.pixelformat;
+ cam->bpp = ((fmt.fmt.pix.bytesperline << 3) + (fmt.fmt.pix.width - 1)) / fmt.fmt.pix.width;
+ cam->width = fmt.fmt.pix.width;
+ cam->height = fmt.fmt.pix.height;
+ cam->bytesperline = fmt.fmt.pix.bytesperline;
+ }
}
void try_set_win_info(cam_t *cam, unsigned int *x, unsigned int *y)
{
- struct v4l2_format fmt;
-
- memset(&fmt, 0, sizeof(fmt));
- fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
- fmt.fmt.pix.pixelformat = cam->pixformat;
- fmt.fmt.pix.width = *x;
- fmt.fmt.pix.height = *y;
- if (!v4l2_ioctl(cam->dev, VIDIOC_TRY_FMT, &fmt)) {
- *x = fmt.fmt.pix.width;
- *y = fmt.fmt.pix.height;
- }
+ struct v4l2_format fmt;
+
+ memset(&fmt, 0, sizeof(fmt));
+ fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+ fmt.fmt.pix.pixelformat = cam->pixformat;
+ fmt.fmt.pix.width = *x;
+ fmt.fmt.pix.height = *y;
+ if (!v4l2_ioctl(cam->dev, VIDIOC_TRY_FMT, &fmt)) {
+ *x = fmt.fmt.pix.width;
+ *y = fmt.fmt.pix.height;
+ }
}
void set_win_info(cam_t *cam)
{
- gchar *msg;
- struct v4l2_format fmt;
-
- memset(&fmt, 0, sizeof(fmt));
- fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-
- /* Get current settings, apply our changes and try the new setting */
- if (v4l2_ioctl(cam->dev, VIDIOC_G_FMT, &fmt)) {
- if(cam->debug) {
- g_message("VIDIOC_G_FMT -- could not get window info, exiting....");
- }
- msg = g_strdup_printf(_("Could not connect to video device (%s).\nPlease check connection."), cam->video_dev);
- error_dialog(msg);
- g_free(msg);
- exit(0);
- }
-
- if (fmt.fmt.pix.pixelformat != V4L2_PIX_FMT_BGR24 &&
- fmt.fmt.pix.pixelformat != V4L2_PIX_FMT_YUV420)
- cam->pixformat = V4L2_PIX_FMT_BGR24;
-
- fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
- fmt.fmt.pix.pixelformat = cam->pixformat;
- fmt.fmt.pix.width = cam->width;
- fmt.fmt.pix.height = cam->height;
- if (v4l2_ioctl(cam->dev, VIDIOC_S_FMT, &fmt)) {
- if(cam->debug) {
- g_message("VIDIOC_S_FMT -- could not set window info, exiting....");
- }
- msg = g_strdup_printf(_("Could not connect to video device (%s).\nPlease check connection."), cam->video_dev);
- error_dialog(msg);
- g_free(msg);
- exit(0);
- }
-
- /* Check if returned format is valid */
- if (fmt.fmt.pix.pixelformat != V4L2_PIX_FMT_BGR24 &&
- fmt.fmt.pix.pixelformat != V4L2_PIX_FMT_YUV420) {
- if(cam->debug) {
- g_message("VIDIOC_S_FMT -- could not set format to %c%c%c%c (was set to %c%c%c%c instead), exiting....",
- cam->pixformat & 0xff,
- (cam->pixformat >> 8) & 0xff,
- (cam->pixformat >> 16) & 0xff,
- cam->pixformat >> 24,
- fmt.fmt.pix.pixelformat & 0xff,
- (fmt.fmt.pix.pixelformat >> 8) & 0xff,
- (fmt.fmt.pix.pixelformat >> 16) & 0xff,
- fmt.fmt.pix.pixelformat >> 24);
- }
- msg = g_strdup_printf(_("Could not connect to video device (%s).\nPlease check connection."), cam->video_dev);
- error_dialog(msg);
- g_free(msg);
- exit(0);
- }
-
- /* Resolution may have changed. Store the retrieved one */
- cam->pixformat = fmt.fmt.pix.pixelformat;
- cam->bytesperline = fmt.fmt.pix.bytesperline;
-
- cam->bpp = ((fmt.fmt.pix.bytesperline << 3) + (fmt.fmt.pix.width - 1)) / fmt.fmt.pix.width;
-
- cam->width = fmt.fmt.pix.width;
- cam->height = fmt.fmt.pix.height;
+ gchar *msg;
+ struct v4l2_format fmt;
+
+ memset(&fmt, 0, sizeof(fmt));
+ fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+
+ /* Get current settings, apply our changes and try the new setting */
+ if (v4l2_ioctl(cam->dev, VIDIOC_G_FMT, &fmt)) {
+ if (cam->debug) {
+ g_message("VIDIOC_G_FMT -- could not get window info, exiting....");
+ }
+ msg = g_strdup_printf(_("Could not connect to video device (%s).\nPlease check connection."),
+ cam->video_dev);
+ error_dialog(msg);
+ g_free(msg);
+ exit(0);
+ }
+
+ if (fmt.fmt.pix.pixelformat != V4L2_PIX_FMT_BGR24 &&
+ fmt.fmt.pix.pixelformat != V4L2_PIX_FMT_YUV420)
+ cam->pixformat = V4L2_PIX_FMT_BGR24;
+
+ fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+ fmt.fmt.pix.pixelformat = cam->pixformat;
+ fmt.fmt.pix.width = cam->width;
+ fmt.fmt.pix.height = cam->height;
+ if (v4l2_ioctl(cam->dev, VIDIOC_S_FMT, &fmt)) {
+ if (cam->debug)
+ g_message("VIDIOC_S_FMT -- could not set window info, exiting....");
+
+ msg = g_strdup_printf(_("Could not connect to video device (%s).\nPlease check connection."),
+ cam->video_dev);
+ error_dialog(msg);
+ g_free(msg);
+ exit(0);
+ }
+
+ /* Check if returned format is valid */
+ if (fmt.fmt.pix.pixelformat != V4L2_PIX_FMT_BGR24 &&
+ fmt.fmt.pix.pixelformat != V4L2_PIX_FMT_YUV420) {
+ if (cam->debug) {
+ g_message("VIDIOC_S_FMT -- could not set format to %c%c%c%c (was set to %c%c%c%c instead), exiting....",
+ cam->pixformat & 0xff,
+ (cam->pixformat >> 8) & 0xff,
+ (cam->pixformat >> 16) & 0xff,
+ cam->pixformat >> 24,
+ fmt.fmt.pix.pixelformat & 0xff,
+ (fmt.fmt.pix.pixelformat >> 8) & 0xff,
+ (fmt.fmt.pix.pixelformat >> 16) & 0xff,
+ fmt.fmt.pix.pixelformat >> 24);
+ }
+ msg = g_strdup_printf(_("Could not connect to video device (%s).\nPlease check connection."),
+ cam->video_dev);
+ error_dialog(msg);
+ g_free(msg);
+ exit(0);
+ }
+
+ /* Resolution may have changed. Store the retrieved one */
+ cam->pixformat = fmt.fmt.pix.pixelformat;
+ cam->bytesperline = fmt.fmt.pix.bytesperline;
+
+ cam->bpp = ((fmt.fmt.pix.bytesperline << 3) + (fmt.fmt.pix.width - 1)) / fmt.fmt.pix.width;
+
+ cam->width = fmt.fmt.pix.width;
+ cam->height = fmt.fmt.pix.height;
}
void start_streaming(cam_t *cam)
{
- char *msg;
- unsigned int i;
- enum v4l2_buf_type type;
- struct v4l2_buffer buf;
-
- memset(&cam->req, 0, sizeof(cam->req));
- cam->req.count = 2;
- cam->req.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
- cam->req.memory = V4L2_MEMORY_MMAP;
- if (v4l2_ioctl(cam->dev, VIDIOC_REQBUFS, &cam->req)) {
- msg = g_strdup_printf(_("VIDIOC_REQBUFS -- could not request buffers (%s), exiting...."), cam->video_dev);
- error_dialog(msg);
- g_free(msg);
- exit(0);
- }
-
- cam->buffers = calloc(cam->req.count, sizeof(*cam->buffers));
- for (cam->n_buffers = 0; cam->n_buffers < cam->req.count; ++cam->n_buffers) {
- memset(&buf, 0, sizeof(buf));
-
- buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
- buf.memory = V4L2_MEMORY_MMAP;
- buf.index = cam->n_buffers;
-
- if (v4l2_ioctl(cam->dev, VIDIOC_QUERYBUF, &buf)) {
- msg = g_strdup_printf(_("VIDIOC_QUERYBUF -- could not query buffers (%s), exiting...."), cam->video_dev);
- error_dialog(msg);
- g_free(msg);
- exit(0);
- }
-
- cam->buffers[cam->n_buffers].length = buf.length;
- cam->buffers[cam->n_buffers].start = v4l2_mmap(NULL, buf.length,
- PROT_READ | PROT_WRITE,
- MAP_SHARED,
- cam->dev, buf.m.offset);
-
- if (MAP_FAILED == cam->buffers[cam->n_buffers].start) {
- msg = g_strdup_printf(_("failed to memory map buffers (%s), exiting...."), cam->video_dev);
- error_dialog(msg);
- g_free(msg);
- exit(0);
- }
- }
-
- for (i = 0; i < cam->n_buffers; ++i) {
- memset(&buf, 0, sizeof(buf));
- buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
- buf.memory = V4L2_MEMORY_MMAP;
- buf.index = i;
- if (v4l2_ioctl(cam->dev, VIDIOC_QBUF, &buf)) {
- msg = g_strdup_printf(_("VIDIOC_QBUF -- could not enqueue buffers (%s), exiting...."), cam->video_dev);
- error_dialog(msg);
- g_free(msg);
- exit(0);
- }
- }
- type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-
- if (v4l2_ioctl(cam->dev, VIDIOC_STREAMON, &type)) {
- msg = g_strdup_printf(_("failed to start streaming (%s), exiting...."), cam->video_dev);
- error_dialog(msg);
- g_free(msg);
- exit(0);
- }
+ char *msg;
+ unsigned int i;
+ enum v4l2_buf_type type;
+ struct v4l2_buffer buf;
+
+ memset(&cam->req, 0, sizeof(cam->req));
+ cam->req.count = 2;
+ cam->req.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+ cam->req.memory = V4L2_MEMORY_MMAP;
+ if (v4l2_ioctl(cam->dev, VIDIOC_REQBUFS, &cam->req)) {
+ msg = g_strdup_printf(_("VIDIOC_REQBUFS -- could not request buffers (%s), exiting...."),
+ cam->video_dev);
+ error_dialog(msg);
+ g_free(msg);
+ exit(0);
+ }
+
+ cam->buffers = calloc(cam->req.count, sizeof(*cam->buffers));
+ for (cam->n_buffers = 0;
+ cam->n_buffers < cam->req.count;
+ ++cam->n_buffers) {
+ memset(&buf, 0, sizeof(buf));
+
+ buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+ buf.memory = V4L2_MEMORY_MMAP;
+ buf.index = cam->n_buffers;
+
+ if (v4l2_ioctl(cam->dev, VIDIOC_QUERYBUF, &buf)) {
+ msg = g_strdup_printf(_("VIDIOC_QUERYBUF -- could not query buffers (%s), exiting...."),
+ cam->video_dev);
+ error_dialog(msg);
+ g_free(msg);
+ exit(0);
+ }
+
+ cam->buffers[cam->n_buffers].length = buf.length;
+ cam->buffers[cam->n_buffers].start = v4l2_mmap(NULL, buf.length,
+ PROT_READ | PROT_WRITE,
+ MAP_SHARED,
+ cam->dev,
+ buf.m.offset);
+
+ if (cam->buffers[cam->n_buffers].start == MAP_FAILED) {
+ msg = g_strdup_printf(_("failed to memory map buffers (%s), exiting...."),
+ cam->video_dev);
+ error_dialog(msg);
+ g_free(msg);
+ exit(0);
+ }
+ }
+
+ for (i = 0; i < cam->n_buffers; ++i) {
+ memset(&buf, 0, sizeof(buf));
+ buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+ buf.memory = V4L2_MEMORY_MMAP;
+ buf.index = i;
+ if (v4l2_ioctl(cam->dev, VIDIOC_QBUF, &buf)) {
+ msg = g_strdup_printf(_("VIDIOC_QBUF -- could not enqueue buffers (%s), exiting...."),
+ cam->video_dev);
+ error_dialog(msg);
+ g_free(msg);
+ exit(0);
+ }
+ }
+ type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+
+ if (v4l2_ioctl(cam->dev, VIDIOC_STREAMON, &type)) {
+ msg = g_strdup_printf(_("failed to start streaming (%s), exiting...."),
+ cam->video_dev);
+ error_dialog(msg);
+ g_free(msg);
+ exit(0);
+ }
}
void capture_buffers(cam_t *cam, unsigned char *outbuf, unsigned int len)
{
- char *msg;
- unsigned char *inbuf;
- int r;
- unsigned int y;
- fd_set fds;
- struct v4l2_buffer buf;
- struct timeval tv;
-
- do {
- FD_ZERO(&fds);
- FD_SET(cam->dev, &fds);
-
- /* Timeout. */
- tv.tv_sec = 2;
- tv.tv_usec = 0;
-
- r = select(cam->dev + 1, &fds, NULL, NULL, &tv);
- } while ((r == -1 && (errno == EINTR)));
-
- if (r == -1) {
- msg = g_strdup_printf(_("Timeout while waiting for frames (%s)"), cam->video_dev);
- error_dialog(msg);
- g_free(msg);
- exit(0);
- }
-
- memset(&buf, 0, sizeof(buf));
- buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
- buf.memory = V4L2_MEMORY_MMAP;
- v4l2_ioctl(cam->dev, VIDIOC_DQBUF, &buf);
-
- if (len > buf.bytesused)
- len = buf.bytesused;
-
- inbuf = cam->buffers[buf.index].start;
- for (y = 0; y < cam->height; y++) {
- memcpy(outbuf, inbuf, cam->width * cam->bpp / 8);
- outbuf += cam->width * cam->bpp / 8;
- inbuf += cam->bytesperline;
- }
-
- v4l2_ioctl(cam->dev, VIDIOC_QBUF, &buf);
+ char *msg;
+ unsigned char *inbuf;
+ int r;
+ unsigned int y;
+ fd_set fds;
+ struct v4l2_buffer buf;
+ struct timeval tv;
+
+ do {
+ FD_ZERO(&fds);
+ FD_SET(cam->dev, &fds);
+
+ /* Timeout. */
+ tv.tv_sec = 2;
+ tv.tv_usec = 0;
+
+ r = select(cam->dev + 1, &fds, NULL, NULL, &tv);
+ } while ((r == -1 && (errno == EINTR)));
+
+ if (r == -1) {
+ msg = g_strdup_printf(_("Timeout while waiting for frames (%s)"),
+ cam->video_dev);
+ error_dialog(msg);
+ g_free(msg);
+ exit(0);
+ }
+
+ memset(&buf, 0, sizeof(buf));
+ buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+ buf.memory = V4L2_MEMORY_MMAP;
+ v4l2_ioctl(cam->dev, VIDIOC_DQBUF, &buf);
+
+ if (len > buf.bytesused)
+ len = buf.bytesused;
+
+ inbuf = cam->buffers[buf.index].start;
+ for (y = 0; y < cam->height; y++) {
+ memcpy(outbuf, inbuf, cam->width * cam->bpp / 8);
+ outbuf += cam->width * cam->bpp / 8;
+ inbuf += cam->bytesperline;
+ }
+
+ v4l2_ioctl(cam->dev, VIDIOC_QBUF, &buf);
}
-
void stop_streaming(cam_t *cam)
{
- char *msg;
- unsigned int i;
- int r;
- enum v4l2_buf_type type;
- fd_set fds, fderrs;
- struct v4l2_buffer buf;
- struct timeval tv;
-
- /* Dequeue all pending buffers */
- for (i = 0; i < cam->n_buffers; ++i) {
- FD_ZERO(&fds);
- FD_SET(cam->dev, &fds);
- FD_ZERO(&fderrs);
- FD_SET(cam->dev, &fderrs);
-
- /* Timeout. */
- tv.tv_sec = 2;
- tv.tv_usec = 0;
-
- r = select(cam->dev + 1, &fds, NULL, &fderrs, &tv);
- if (r == -1 && errno == EINTR)
- continue;
-
- if (r != -1) {
- memset(&buf, 0, sizeof(buf));
- buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
- buf.memory = V4L2_MEMORY_MMAP;
- if (v4l2_ioctl(cam->dev, VIDIOC_DQBUF, &buf))
- break;
- }
- };
-
- /* Streams off */
- type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
- if (v4l2_ioctl(cam->dev, VIDIOC_STREAMOFF, &type)) {
- msg = g_strdup_printf(_("failed to stop streaming (%s), exiting...."), cam->video_dev);
- error_dialog(msg);
- g_free(msg);
- exit(0);
- }
-
- /* Unmap buffers */
- for (i = 0; i < cam->n_buffers; ++i)
- v4l2_munmap(cam->buffers[i].start, cam->buffers[i].length);
-
- /* Free existing buffers */
- memset(&cam->req, 0, sizeof(cam->req));
- cam->req.count = 0;
- cam->req.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
- cam->req.memory = V4L2_MEMORY_MMAP;
- v4l2_ioctl(cam->dev, VIDIOC_REQBUFS, &cam->req);
-
- free(cam->buffers);
- cam->buffers = NULL;
+ char *msg;
+ unsigned int i;
+ int r;
+ enum v4l2_buf_type type;
+ fd_set fds, fderrs;
+ struct v4l2_buffer buf;
+ struct timeval tv;
+
+ /* Dequeue all pending buffers */
+ for (i = 0; i < cam->n_buffers; ++i) {
+ FD_ZERO(&fds);
+ FD_SET(cam->dev, &fds);
+ FD_ZERO(&fderrs);
+ FD_SET(cam->dev, &fderrs);
+
+ /* Timeout. */
+ tv.tv_sec = 2;
+ tv.tv_usec = 0;
+
+ r = select(cam->dev + 1, &fds, NULL, &fderrs, &tv);
+ if (r == -1 && errno == EINTR)
+ continue;
+
+ if (r != -1) {
+ memset(&buf, 0, sizeof(buf));
+ buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+ buf.memory = V4L2_MEMORY_MMAP;
+ if (v4l2_ioctl(cam->dev, VIDIOC_DQBUF, &buf))
+ break;
+ }
+ };
+
+ /* Streams off */
+ type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+ if (v4l2_ioctl(cam->dev, VIDIOC_STREAMOFF, &type)) {
+ msg = g_strdup_printf(_("failed to stop streaming (%s), exiting...."),
+ cam->video_dev);
+ error_dialog(msg);
+ g_free(msg);
+ exit(0);
+ }
+
+ /* Unmap buffers */
+ for (i = 0; i < cam->n_buffers; ++i)
+ v4l2_munmap(cam->buffers[i].start, cam->buffers[i].length);
+
+ /* Free existing buffers */
+ memset(&cam->req, 0, sizeof(cam->req));
+ cam->req.count = 0;
+ cam->req.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+ cam->req.memory = V4L2_MEMORY_MMAP;
+ v4l2_ioctl(cam->dev, VIDIOC_REQBUFS, &cam->req);
+
+ free(cam->buffers);
+ cam->buffers = NULL;
}
diff --git a/src/v4l.h b/src/v4l.h
index 8e951f4..d991a63 100644
--- a/src/v4l.h
+++ b/src/v4l.h
@@ -27,20 +27,20 @@
#include "camorama-filter-chain.h"
typedef enum {
- PICMAX = 0,
- PICMIN = 1,
- PICHALF = 2
+ PICMAX = 0,
+ PICMIN = 1,
+ PICHALF = 2
} CamoImageSize;
enum {
- JPEG = 0,
- PNG = 1,
- PPM = 2
+ JPEG = 0,
+ PNG = 1,
+ PPM = 2
};
struct buffer_start_len {
- void *start;
- size_t length;
+ void *start;
+ size_t length;
};
struct resolutions {
@@ -48,64 +48,63 @@ struct resolutions {
};
typedef struct camera {
- int dev;
- unsigned int width, height;
- int bpp;
- CamoImageSize size;
- char name[32];
- int contrast, brightness, whiteness, colour, hue, bytesperline;
- unsigned int pixformat;
- int frame_number;
-
- unsigned int min_width, min_height, max_width, max_height;
-
- unsigned int n_res;
- struct resolutions *res;
-
- char *video_dev;
- unsigned char *image;
- gchar *capturefile, *rcapturefile;
- gchar *pixdir, *host, *proto, *rdir, *uri;
- int savetype, rsavetype;
- gchar *ts_string;
- gchar *date_format;
- gboolean debug, read, hidden;
- gboolean cap, rcap, acap, show_adjustments, show_effects;
- gboolean timestamp, rtimestamp, usedate, usestring;
- gboolean rtimefn, timefn;
- GtkWidget *da, *tray_tooltip, *status;
- unsigned char *pic_buf, *tmp;
- guint timeout_id, idle_id;
- guint32 timeout_interval;
- GConfClient *gc;
- GtkBuilder *xml;
- GtkStatusIcon *tray_icon;
-
- CamoramaFilterChain* filter_chain;
-
- gboolean rdir_ok;
- GFile *rdir_file;
- GMountOperation *rdir_mop;
-
- /* Buffer handling - should be used only inside v4l.c */
- struct v4l2_requestbuffers req;
- unsigned int n_buffers;
- struct {
- void *start;
- size_t length;
- } *buffers;
+ int dev;
+ unsigned int width, height;
+ int bpp;
+ CamoImageSize size;
+ char name[32];
+ int contrast, brightness, whiteness, colour, hue, bytesperline;
+ unsigned int pixformat;
+ int frame_number;
+
+ unsigned int min_width, min_height, max_width, max_height;
+
+ unsigned int n_res;
+ struct resolutions *res;
+
+ char *video_dev;
+ unsigned char *image;
+ gchar *capturefile, *rcapturefile;
+ gchar *pixdir, *host, *proto, *rdir, *uri;
+ int savetype, rsavetype;
+ gchar *ts_string;
+ gchar *date_format;
+ gboolean debug, read, hidden;
+ gboolean cap, rcap, acap, show_adjustments, show_effects;
+ gboolean timestamp, rtimestamp, usedate, usestring;
+ gboolean rtimefn, timefn;
+ GtkWidget *da, *tray_tooltip, *status;
+ unsigned char *pic_buf, *tmp;
+ guint timeout_id, idle_id;
+ guint32 timeout_interval;
+ GConfClient *gc;
+ GtkBuilder *xml;
+ GtkStatusIcon *tray_icon;
+
+ CamoramaFilterChain *filter_chain;
+
+ gboolean rdir_ok;
+ GFile *rdir_file;
+ GMountOperation *rdir_mop;
+
+ /* Buffer handling - should be used only inside v4l.c */
+ struct v4l2_requestbuffers req;
+ unsigned int n_buffers;
+ struct {
+ void *start;
+ size_t length;
+ } *buffers;
} cam_t;
-void camera_cap (cam_t *);
-void print_cam (cam_t *);
+void camera_cap(cam_t *);
+void print_cam(cam_t *);
void try_set_win_info(cam_t *cam, unsigned int *x, unsigned int *y);
-void set_win_info (cam_t *cam);
-void get_pic_info (cam_t *);
-void get_win_info (cam_t *);
+void set_win_info(cam_t *cam);
+void get_pic_info(cam_t *);
+void get_win_info(cam_t *);
void get_supported_resolutions(cam_t *cam);
void start_streaming(cam_t *cam);
void capture_buffers(cam_t *cam, unsigned char *outbuf, unsigned int len);
void stop_streaming(cam_t *cam);
-#endif /* !CAMORAMA_V4L_H */
-
+#endif /* !CAMORAMA_V4L_H */

Privacy Policy