From 80e7b6873f7eedb90a191e6d3359f2ddd0f5f61c Mon Sep 17 00:00:00 2001 From: g0orx Date: Tue, 19 Apr 2016 18:47:29 +0100 Subject: [PATCH] source code change so it will compile on X86/X64 linux box --- Makefile | 10 ++++++---- band.c | 26 +++++++++++++------------- gpio.c | 10 +++++++++- gpio.h | 10 +++++++++- main.c | 28 ++++++++++++++++++++++++++-- menu.c | 9 +++++++++ splash.c | 6 ++++-- toolbar.c | 2 ++ toolbar.h | 2 ++ vfo.c | 2 +- 10 files changed, 81 insertions(+), 24 deletions(-) diff --git a/Makefile b/Makefile index 0ece627..4b824fc 100644 --- a/Makefile +++ b/Makefile @@ -6,10 +6,12 @@ OPTIONS=-g -D $(UNAME_N) -O3 GTKINCLUDES=`pkg-config --cflags gtk+-3.0` GTKLIBS=`pkg-config --libs gtk+-3.0` ifeq ($(UNAME_N),raspberrypi) -LIBS=-lwiringPi -lpigpio -lrt -lm -lwdsp -lpthread $(GTKLIBS) -else -LIBS=-lwiringPi -lrt -lm -lwdsp -lpthread $(GTKLIBS) +GPIO_LIBS=-lwiringPi -lpigpio endif +ifeq ($(UNAME_N),odroid) +GPIO_LIBS=-lwiringPi +endif +LIBS=-lrt -lm -lwdsp -lpthread $(GTKLIBS) INCLUDES=$(GTKINCLUDES) COMPILE=$(CC) $(OPTIONS) $(INCLUDES) @@ -104,7 +106,7 @@ prebuild: rm -f version.o $(PROGRAM): $(OBJS) - $(LINK) -o $(PROGRAM) $(OBJS) $(LIBS) + $(LINK) -o $(PROGRAM) $(OBJS) $(GPIO_LIBS) $(LIBS) .c.o: $(COMPILE) -c -o $@ $< diff --git a/band.c b/band.c index 7bc91c4..fc35dd2 100644 --- a/band.c +++ b/band.c @@ -119,19 +119,19 @@ BANDSTACK bandstackGEN={3,1,bandstack_entriesGEN}; BANDSTACK bandstackWWV={5,1,bandstack_entriesWWV}; BAND bands[BANDS] = - {{"160",&bandstack160,0,0,ALEX_RX_ANTENNA_NONE,ALEX_TX_ANTENNA_1,ALEX_ATTENUATION_0dB,30}, - {"80",&bandstack80,0,0,ALEX_RX_ANTENNA_NONE,ALEX_TX_ANTENNA_1,ALEX_ATTENUATION_0dB,30}, - {"60",&bandstack60,0,0,ALEX_RX_ANTENNA_NONE,ALEX_TX_ANTENNA_1,ALEX_ATTENUATION_0dB,30}, - {"40",&bandstack40,0,0,ALEX_RX_ANTENNA_NONE,ALEX_TX_ANTENNA_1,ALEX_ATTENUATION_0dB,30}, - {"30",&bandstack30,0,0,ALEX_RX_ANTENNA_NONE,ALEX_TX_ANTENNA_1,ALEX_ATTENUATION_0dB,30}, - {"20",&bandstack20,0,0,ALEX_RX_ANTENNA_NONE,ALEX_TX_ANTENNA_1,ALEX_ATTENUATION_0dB,30}, - {"18",&bandstack18,0,0,ALEX_RX_ANTENNA_NONE,ALEX_TX_ANTENNA_1,ALEX_ATTENUATION_0dB,30}, - {"15",&bandstack15,0,0,ALEX_RX_ANTENNA_NONE,ALEX_TX_ANTENNA_1,ALEX_ATTENUATION_0dB,30}, - {"12",&bandstack12,0,0,ALEX_RX_ANTENNA_NONE,ALEX_TX_ANTENNA_1,ALEX_ATTENUATION_0dB,30}, - {"10",&bandstack10,0,0,ALEX_RX_ANTENNA_NONE,ALEX_TX_ANTENNA_1,ALEX_ATTENUATION_0dB,30}, - {"50",&bandstack50,0,0,ALEX_RX_ANTENNA_NONE,ALEX_TX_ANTENNA_1,ALEX_ATTENUATION_0dB,30}, - {"GEN",&bandstackGEN,0,0,ALEX_RX_ANTENNA_NONE,ALEX_TX_ANTENNA_1,ALEX_ATTENUATION_0dB,0}, - {"WWV",&bandstackWWV,0,0,ALEX_RX_ANTENNA_NONE,ALEX_TX_ANTENNA_1,ALEX_ATTENUATION_0dB,0}}; + {{"160",&bandstack160,0,0,0,ALEX_RX_ANTENNA_NONE,ALEX_TX_ANTENNA_1,ALEX_ATTENUATION_0dB,30}, + {"80",&bandstack80,0,0,0,ALEX_RX_ANTENNA_NONE,ALEX_TX_ANTENNA_1,ALEX_ATTENUATION_0dB,30}, + {"60",&bandstack60,0,0,0,ALEX_RX_ANTENNA_NONE,ALEX_TX_ANTENNA_1,ALEX_ATTENUATION_0dB,30}, + {"40",&bandstack40,0,0,0,ALEX_RX_ANTENNA_NONE,ALEX_TX_ANTENNA_1,ALEX_ATTENUATION_0dB,30}, + {"30",&bandstack30,0,0,0,ALEX_RX_ANTENNA_NONE,ALEX_TX_ANTENNA_1,ALEX_ATTENUATION_0dB,30}, + {"20",&bandstack20,0,0,0,ALEX_RX_ANTENNA_NONE,ALEX_TX_ANTENNA_1,ALEX_ATTENUATION_0dB,30}, + {"18",&bandstack18,0,0,0,ALEX_RX_ANTENNA_NONE,ALEX_TX_ANTENNA_1,ALEX_ATTENUATION_0dB,30}, + {"15",&bandstack15,0,0,0,ALEX_RX_ANTENNA_NONE,ALEX_TX_ANTENNA_1,ALEX_ATTENUATION_0dB,30}, + {"12",&bandstack12,0,0,0,ALEX_RX_ANTENNA_NONE,ALEX_TX_ANTENNA_1,ALEX_ATTENUATION_0dB,30}, + {"10",&bandstack10,0,0,0,ALEX_RX_ANTENNA_NONE,ALEX_TX_ANTENNA_1,ALEX_ATTENUATION_0dB,30}, + {"50",&bandstack50,0,0,0,ALEX_RX_ANTENNA_NONE,ALEX_TX_ANTENNA_1,ALEX_ATTENUATION_0dB,30}, + {"GEN",&bandstackGEN,0,0,0,ALEX_RX_ANTENNA_NONE,ALEX_TX_ANTENNA_1,ALEX_ATTENUATION_0dB,0}, + {"WWV",&bandstackWWV,0,0,0,ALEX_RX_ANTENNA_NONE,ALEX_TX_ANTENNA_1,ALEX_ATTENUATION_0dB,0}}; #define NUM_BAND_LIMITS 22 diff --git a/gpio.c b/gpio.c index 1a9746c..6ddf738 100644 --- a/gpio.c +++ b/gpio.c @@ -1,3 +1,11 @@ +#ifdef raspberrypi +#define INCLUDE_GPIO +#endif +#ifdef odroid +#define INCLUDE_GPIO +#endif + +#ifdef INCLUDE_GPIO #include #include #include @@ -127,7 +135,6 @@ static volatile int lock_state; static void* rotary_encoder_thread(void *arg); static pthread_t rotary_encoder_thread_id; -int function=0; static int previous_function_button=0; static int af_function=0; static int previous_af_function=0; @@ -1157,3 +1164,4 @@ static void* rotary_encoder_thread(void *arg) { // } } } +#endif diff --git a/gpio.h b/gpio.h index 569b616..6d48ec2 100644 --- a/gpio.h +++ b/gpio.h @@ -17,6 +17,14 @@ * */ +#ifdef raspberrypi +#define INCLUDE_GPIO +#endif +#ifdef odroid +#define INCLUDE_GPIO +#endif + +#ifdef INCLUDE_GPIO extern int ENABLE_VFO_ENCODER; extern int ENABLE_VFO_PULLUP; extern int VFO_ENCODER_A; @@ -52,7 +60,6 @@ extern int MOX_BUTTON; extern int ENABLE_FUNCTION_BUTTON; extern int FUNCTION_BUTTON; -extern int function; void gpio_restore_state(); void gpio_save_state(); int gpio_init(); @@ -69,3 +76,4 @@ int filter_get_state(); int noise_get_state(); int mox_get_state(); +#endif diff --git a/main.c b/main.c index 15c935e..8e8ac59 100644 --- a/main.c +++ b/main.c @@ -47,6 +47,13 @@ #include "wdsp_init.h" #include "version.h" +#ifdef raspberrypi +#define INCLUDE_GPIO +#endif +#ifdef odroid +#define INCLUDE_GPIO +#endif + #define VFO_HEIGHT ((display_height/32)*4) #define VFO_WIDTH ((display_width/32)*16) #define MENU_HEIGHT VFO_HEIGHT @@ -62,6 +69,7 @@ struct utsname unameData; gint display_width; gint display_height; +gint full_screen=1; static gint update_timer_id; @@ -238,6 +246,7 @@ static void toolbar_simulate_buttons_cb(GtkWidget *widget, gpointer data) { toolbar_simulate_buttons=toolbar_simulate_buttons==1?0:1; } +#ifdef INCLUDE_GPIO static void configure_gpio() { gpio_restore_state(); @@ -519,6 +528,7 @@ static void configure_gpio() { gpio_save_state(); } +#endif static void configure_cb(GtkWidget *widget, gpointer data) { DISCOVERED* d; @@ -715,8 +725,10 @@ gint init(void* arg) { discovery_dialog = gtk_dialog_new_with_buttons ("Discovered", GTK_WINDOW(splash_window), flags, +#ifdef INCLUDE_GPIO "Configure GPIO", GTK_RESPONSE_YES, +#endif "Discover", GTK_RESPONSE_REJECT, "Exit", @@ -776,10 +788,12 @@ gint init(void* arg) { _exit(0); } +#ifdef INCLUDE_GPIO gtk_widget_destroy(discovery_dialog); if(result==GTK_RESPONSE_YES) { configure_gpio(); } +#endif } } @@ -815,7 +829,9 @@ gint init(void* arg) { } splash_status("Initializing GPIO ..."); +#ifdef INCLUDE_GPIO gpio_init(); +#endif window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window), "pihpsdr"); @@ -935,7 +951,9 @@ fprintf(stderr,"toolbar_height=%d\n",TOOLBAR_HEIGHT); gtk_widget_show_all (window); - gtk_window_fullscreen(GTK_WINDOW(window)); + if(full_screen) { + gtk_window_fullscreen(GTK_WINDOW(window)); + } GdkWindow *gdk_window = gtk_widget_get_window(window); gdk_window_set_cursor(gdk_window,cursor_arrow); @@ -980,9 +998,15 @@ main (int argc, display_width=gdk_screen_get_width(screen); display_height=gdk_screen_get_height(screen); + if(display_width>800 || display_height>480) { + display_width=800; + display_height=400; + full_screen=0; + } + fprintf(stderr,"display_width=%d display_height=%d\n", display_width, display_height); - splash_show("hpsdr.png", 0, display_width, display_height); + splash_show("hpsdr.png", display_width, display_height, full_screen); g_idle_add(init,(void *)argv[0]); diff --git a/menu.c b/menu.c index ac7ed82..21a3317 100644 --- a/menu.c +++ b/menu.c @@ -17,6 +17,13 @@ * */ +#ifdef raspberrypi +#define INCLUDE_GPIO +#endif +#ifdef odroid +#define INCLUDE_GPIO +#endif + #include #include #include @@ -191,7 +198,9 @@ static gboolean exit_pressed_event_cb (GtkWidget *widget, GdkEventButton *event, gpointer data) { +#ifdef INCLUDE_GPIO gpio_close(); +#endif if(protocol==ORIGINAL_PROTOCOL) { old_protocol_stop(); } else { diff --git a/splash.c b/splash.c index a231547..886c058 100644 --- a/splash.c +++ b/splash.c @@ -46,11 +46,13 @@ static gboolean splash_configure_event_cb (GtkWidget *widget, } -void splash_show(char* image_name,int time,int width,int height) +void splash_show(char* image_name,int width,int height,int full_screen) { GtkWidget *image; splash_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_window_fullscreen(GTK_WINDOW(splash_window)); + if(full_screen) { + gtk_window_fullscreen(GTK_WINDOW(splash_window)); + } gtk_widget_set_size_request(splash_window, width, height); gtk_window_set_decorated(GTK_WINDOW(splash_window), FALSE); gtk_window_set_position(GTK_WINDOW(splash_window),GTK_WIN_POS_CENTER_ALWAYS); diff --git a/toolbar.c b/toolbar.c index c24462b..c967641 100644 --- a/toolbar.c +++ b/toolbar.c @@ -38,6 +38,8 @@ #include "radio.h" #include "property.h" +int function=0; + static int width; static int height; diff --git a/toolbar.h b/toolbar.h index 6b39381..eb758c7 100644 --- a/toolbar.h +++ b/toolbar.h @@ -17,6 +17,8 @@ * */ +extern int function; + int ptt_update(void *data); void lock_cb(GtkWidget *widget, gpointer data); void mox_cb(GtkWidget *widget, gpointer data); diff --git a/vfo.c b/vfo.c index 3386211..c3f2a16 100644 --- a/vfo.c +++ b/vfo.c @@ -37,7 +37,7 @@ #include "radio.h" #include "vfo.h" #include "channel.h" -#include "gpio.h" +#include "toolbar.h" #include "wdsp.h" static GtkWidget *parent_window; -- 2.45.2