****/
#include <math.h>
+#include <hildon/hildon-banner.h>
#include "callbacks.h"
#include "appdata.h"
#include "util.h"
-// this is just here for debugging
-static void print_location(LocationGPSDevice* device) {
- g_print("Latitude: %.2f\n"
- "Longitude: %.2f\n"
- "Altitude: %.2f\n"
- "Speed: %.2d\n",
- device->fix->latitude,
- device->fix->longitude,
- device->fix->altitude,
- device->fix->speed);
-}
-
void location_changed(LocationGPSDevice* device, gpointer data) {
- //print_location(device);
g_assert(data);
g_assert(device);
stop_gps(appdata);
g_signal_emit_by_name(appdata->window, "delete_event");
}
- else {
- randomize(appdata);
- }
return TRUE;
}
gboolean bottom_event_box_button_press(GtkWidget* widget, GdkEventButton* event, gpointer data) {
gdouble x = event->x;
g_print("Bottom event box pressed at: %f\n", x);
- AppData* appdata = (AppData*) data;
-
- randomize(data);
return TRUE;
}
****/
#include <gtk/gtk.h>
+#include <glib/gprintf.h>
#include "ui.h"
#include "callbacks.h"
gtk_widget_modify_bg(GTK_WIDGET(widget), GTK_STATE_NORMAL, &black);
}
-void load_images(AppData *appdata) {
+void load_graphix(AppData *appdata) {
g_assert(appdata);
g_print("Loading images\n");
guint i = 0;
while(i < 10) {
char* path = g_malloc(30);
g_sprintf(path, IMAGE_PATH, i);
- appdata->image_array[i] = gtk_image_new_from_file(path);
+ appdata->graphix[i] = gtk_image_new_from_file(path);
g_print(path);
g_print("\n");
g_free(path);
void load_initial_pixbufs(AppData* appdata) {
g_assert(appdata);
- GdkPixbuf* zero = gtk_image_get_pixbuf(GTK_IMAGE(appdata->image_array[0]));
+ GdkPixbuf* zero = gtk_image_get_pixbuf(GTK_IMAGE(appdata->graphix[0]));
- appdata->digit_array[0] = GTK_WIDGET(gtk_image_new_from_pixbuf(zero));
- appdata->digit_array[1] = GTK_WIDGET(gtk_image_new_from_pixbuf(zero));
- appdata->digit_array[2] = GTK_WIDGET(gtk_image_new_from_pixbuf(zero));
+ appdata->big_digits[0] = GTK_WIDGET(gtk_image_new_from_pixbuf(zero));
+ appdata->big_digits[1] = GTK_WIDGET(gtk_image_new_from_pixbuf(zero));
+ appdata->big_digits[2] = GTK_WIDGET(gtk_image_new_from_pixbuf(zero));
}
void set_nth_digit(AppData* appdata, guint n, guint value) {
g_assert(value < 10);
g_assert(n < 3);
- GtkWidget* image = appdata->digit_array[n];
- GdkPixbuf* buf = gtk_image_get_pixbuf(GTK_IMAGE(appdata->image_array[value]));
+ GtkWidget* image = appdata->big_digits[n];
+ GdkPixbuf* buf = gtk_image_get_pixbuf(GTK_IMAGE(appdata->graphix[value]));
gtk_image_set_from_pixbuf(GTK_IMAGE(image), buf);
}
void repaint_all_digits(AppData* appdata) {
g_assert(appdata);
- gtk_widget_queue_draw(GTK_WIDGET(appdata->digit_array[0]));
- gtk_widget_queue_draw(GTK_WIDGET(appdata->digit_array[1]));
- gtk_widget_queue_draw(GTK_WIDGET(appdata->digit_array[2]));
+ gtk_widget_queue_draw(GTK_WIDGET(appdata->big_digits[0]));
+ gtk_widget_queue_draw(GTK_WIDGET(appdata->big_digits[1]));
+ gtk_widget_queue_draw(GTK_WIDGET(appdata->big_digits[2]));
}
-// used only in testing...
-void randomize(AppData* appdata) {
+void create_ui(AppData* appdata) {
g_assert(appdata);
- gint32 n = g_random_int_range(0, 3);
- GtkWidget* image = appdata->digit_array[n];
-
- gint32 m = g_random_int_range(0, 10);
- GdkPixbuf* buf = gtk_image_get_pixbuf(GTK_IMAGE(appdata->image_array[m]));
- g_print("Setting number %d to %d.. ", n+1, m);
+ appdata->unit = 1; // by default use km/h display
- gtk_image_set_from_pixbuf(GTK_IMAGE(image), buf);
- gtk_widget_queue_draw(appdata->digit_array[n]);
-}
-
-void create_ui(AppData* appdata) {
- g_assert(appdata);
GtkWidget *hbox;
GtkWidget *vbox;
appdata->window);
// add three digits to the hbox
- gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(appdata->digit_array[0]), FALSE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(appdata->digit_array[1]), FALSE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(appdata->digit_array[2]), FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(appdata->big_digits[0]), FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(appdata->big_digits[1]), FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(appdata->big_digits[2]), FALSE, FALSE, 0);
gtk_box_pack_start_defaults(GTK_BOX(vbox), top_e); // add event box on top
gtk_box_pack_start_defaults(GTK_BOX(vbox), hbox); // numbers to the middle
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
-****/
+ ****/
#include <math.h>
#include <location/location-gps-device.h>
#include <location/location-gpsd-control.h>
#include <gconf/gconf-client.h>
+#include <glib/gprintf.h>
#include "util.h"
#include "appdata.h"
#include "callbacks.h"
#include "ui.h"
-
-gdouble unit_array[] = {3.6};
+/* This is used when converting to other units
+ * number represents a multiplier which is used
+ * when converting the base unit to other units.
+ * Base unit is m/s thus the first multiplier is
+ * one. Units are in following order:
+ *
+ * m/s, km/h, mph
+ */
+gdouble conversion[] = { 1, 3.6, 2.237 };
#define GCONF_KEY "/apps/Maemo/speedometer/disclaimer"
g_assert(appdata);
g_assert(!isnan(speed));
+ /* speed is in m/s so let's convert
+ * it to the unit that we are using
+ */
+ speed *= conversion[appdata->unit];
+
// convert float to a 6 digits (including dot) wide string with leading zeros
gchar* charspeed = g_malloc(10); // alloc
g_sprintf(charspeed, "%0*.2f", 6, speed);
}
-static show_dialog() {
+static void show_dialog() {
GtkWidget *dialog = gtk_message_dialog_new(
NULL,
GTK_DIALOG_MODAL,
"which means (among other things) that you don't have to pay "
"a dime for it. "
"If you think, however, that this software is worth it, you "
- "can always drop me a postcard. (or a speeding ticket :)\n\n"
+ "can always drop me a postcard.\n\n"
"Wellu Mäkinen\n"
"PO BOX\n"
"33580 Tampere\n"
g_object_unref(client);
}
+void load_settings() {
+
+}