From c653d72cf4365f06226aee3cb8fca4ef936df9e8 Mon Sep 17 00:00:00 2001 From: Nicole Faerber Date: Sun, 7 Feb 2021 17:32:13 +0100 Subject: [PATCH] add desktop file and icon and have that installed, menu as popover, deb package cleanup --- Makefile | 4 +- NOTES.txt | 14 +++ README.md | 29 ++++--- cam-thread.c | 145 ++----------------------------- debian/control | 2 +- debian/postinst | 6 +- debian/postrm | 5 +- flirgtk.c | 226 ++++++++++++++++++++++++------------------------ flirgtk.desktop | 12 +++ flirgtk.png | Bin 0 -> 72424 bytes 10 files changed, 173 insertions(+), 270 deletions(-) create mode 100644 flirgtk.desktop create mode 100644 flirgtk.png diff --git a/Makefile b/Makefile index f7ed855..b13ef9d 100644 --- a/Makefile +++ b/Makefile @@ -14,6 +14,8 @@ $(PRG): $(OBJ) cam-thread.h planck.h install: install -D $(PRG) $(DESTDIR)$(prefix)/bin/$(PRG) + install -D flirgtk.desktop $(DESTDIR)$(prefix)/share/applications/flirgtk.desktop + install -D flirgtk.png $(DESTDIR)$(prefix)/share/icons/hicolor/256x256/apps/flirgtk.png install -D 77-flirone-lusb.rules $(DESTDIR)/lib/udev/rules.d/77-flirone-lusb.rules clean: @@ -26,4 +28,4 @@ clean: rm -f debian/flirgtk.substvars deb: - dpkg-buildpackage -rfakeroot -b -uc -us -ui -i -i + dpkg-buildpackage -rfakeroot -b -uc -us -ui -i diff --git a/NOTES.txt b/NOTES.txt index e0f6eaa..9767f88 100644 --- a/NOTES.txt +++ b/NOTES.txt @@ -1,3 +1,17 @@ + +[Desktop Entry] +Type=Application +Name=Example +Icon=exampleapp +StartupNotify=true +Exec=@bindir@/exampleapp + + +Scaling 0.5 +xoffst -71 +yoffset -40 + + cairo_surface_t *cairo_get_target (cairo_t *cr); int stride; diff --git a/README.md b/README.md index d47a9b9..bb3da38 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,34 @@ # FLIR-GTK GTK+ application for FLIR ONE USB thermal camera based on flir-v4l: - Copyright (C) 2015-2016 Thomas - https://github.com/fnoop/flirone-v4l2 +> Copyright (C) 2015-2016 Thomas + +[https://github.com/fnoop/flirone-v4l2](https://github.com/fnoop/flirone-v4l2) -== depdendencies == +## depdendencies +``` GTK+-3.0 Cairo libusb-1.0 libjpeg libcjson - +``` This should install everything under Debian and derivatives: apt install libgtk-3-dev libjpeg-dev libusb-1.0-0-dev libcjson-dev -== building == -Makefile relies on pkg-config, if setup correctly simply running 'make' -should build the application. +## building +If you check out the code from git you first need to clone submodule cairo-jpeg: + git submodule init + git submodule update -== libusb & udev == -cp 77-flirone-lusb.rules /lib/udev/rules.d/ -udevadm control --reload-rules +Makefile relies on pkg-config, if setup correctly simply running 'make' +should build the application which can be run from the source directory, +'make deb' builds a Debian package (to the parent directory) + +## libusb & udev +For access rights of the application to the USB device: + + cp 77-flirone-lusb.rules /lib/udev/rules.d/ + udevadm control --reload-rules diff --git a/cam-thread.c b/cam-thread.c index 150d242..f05ae37 100644 --- a/cam-thread.c +++ b/cam-thread.c @@ -44,7 +44,7 @@ extern unsigned char *color_palette; #include #include "cam-thread.h" -#include "plank.h" +#include "planck.h" // -----------------START-ORG-CODE------------------------------------------ @@ -252,8 +252,6 @@ void vframe(char ep[],char EP_error[], int r, int actual_length, unsigned char b uint32_t JpgSize = buf85[16] + (buf85[17] << 8) + (buf85[18] << 16) + (buf85[19] << 24); uint32_t StatusSize = buf85[20] + (buf85[21] << 8) + (buf85[22] << 16) + (buf85[23] << 24); - //printf("FrameSize= %d (+28=%d), ThermalSize %d, JPG %d, StatusSize %d, Pointer %d\n",FrameSize,FrameSize+28, ThermalSize, JpgSize,StatusSize,buf85pointer); - if ( (FrameSize+28) > (buf85pointer) ) { // wait for next chunk return; @@ -267,22 +265,6 @@ void vframe(char ep[],char EP_error[], int r, int actual_length, unsigned char b // get a full frame, first print the status t1=t2; gettimeofday(&t2, NULL); - // fps as moving average over last 20 frames - // fps_t = (19*fps_t+10000000/(((t2.tv_sec * 1000000) + t2.tv_usec) - ((t1.tv_sec * 1000000) + t1.tv_usec)))/20; - - //filecount++; - // printf("#%08i %lld/10 fps:",filecount,fps_t); -#if 0 - for (i = 0; i < StatusSize; i++) { - v=28+ThermalSize+JpgSize+i; - if (buf85[v]>31) { - printf("%c", buf85[v]); - } else { - printf("<%02x>", buf85[v]); - } - } - printf("\n"); -#endif buf85pointer=0; unsigned short pix[160*120]; // original Flir 16 Bit RAW @@ -336,46 +318,12 @@ void vframe(char ep[],char EP_error[], int r, int actual_length, unsigned char b } } - //char st1[100]; - //char st2[100]; - //struct tm *loctime; - // Convert it to local time and Print it out in a nice format. - //loctime = localtime (&now1); - //strftime (st1, 60, "%H:%M:%S", loctime); - // calc medium of 2x2 center pixels int med = (pix[59 * 160 + 79]+pix[59 * 160 + 80]+pix[60 * 160 + 79]+pix[60 * 160 + 80])/4; t_min = raw2temperature(min); t_max = raw2temperature(max); t_center = raw2temperature(med); - // sprintf(st2," %.1f/%.1f/%.1f'C", raw2temperature(min), raw2temperature(med), raw2temperature(max)); - //strcat(st1, st2); - - //#define MAXC 26 // max chars in line 160/6=26,6 - //strncpy(st2, st1, MAXC); - // write zero to string !! - //st2[MAXC-1] = '\0'; - //fprintf(stderr,"%s\r",st2); - // font_write(fb_proc, 1, 120, st2); - - // show crosshairs, remove if required - // font_write(fb_proc, 80-2, 60-3, "+"); - - //maxx -= 4; - //maxy -= 4; - - //if (maxx < 0) - // maxx = 0; - //if (maxy < 0) - // maxy = 0; - //if (maxx > 150) - // maxx = 150; - //if (maxy > 110) - // maxy = 110; - - // font_write(fb_proc, 160-6, maxy, "<"); - // font_write(fb_proc, maxx, 120-8, "|"); if (ir_buffer == NULL) { ir_buffer = (unsigned char *)malloc(640*480*4); @@ -383,93 +331,19 @@ void vframe(char ep[],char EP_error[], int r, int actual_length, unsigned char b } for (y = 0; y < 120; ++y) { for (x = 0; x < 160; ++x) { - // unsigned int *p1, *pc; // fb_proc is the gray scale frame buffer v=fb_proc[y * 160 + x] ; // unsigned char!! -#if 0 - // fb_proc2 is an 24bit RGB buffer - fb_proc2[3*y * 160 + x*3] = colormap[3 * v]; // unsigned char!! - fb_proc2[(3*y * 160 + x*3)+1] = colormap[3 * v + 1]; // unsigned char!! - fb_proc2[(3*y * 160 + x*3)+2] = colormap[3 * v + 2]; // unsigned char!! -#else - //fbdata[4*y * 640 + x*4] = colormap[3 * v + 2]; // B - //fbdata[(4*y * 640 + x*4)+1] = colormap[3 * v + 1]; // G - //fbdata[(4*y * 640 + x*4)+2] = colormap[3 * v]; // R - //fbdata[(4*y * 640 + x*4)+3] = 0x00; // empty - -// fprintf(stderr, "%d %d %d %d\n",x ,y, (4*y * 160 + x*4), v); - ir_buffer[4*y * 160 + x*4] = - color_palette[3 * v + 2]; // B - ir_buffer[(4*y * 160 + x*4)+1] = - color_palette[3 * v + 1]; // G - ir_buffer[(4*y * 160 + x*4)+2] = - color_palette[3 * v]; // R -// ir_buffer[(4*y * 160 + x*4)+3] = -// 0x00; // A, empty -#if 0 - // assemble one 32 bit pixel - fbdata[16*y * 640 + x*16] = color_palette[3 * v + 2]; // B - fbdata[(16*y * 640 + x*16)+1] = color_palette[3 * v + 1]; // G - fbdata[(16*y * 640 + x*16)+2] = color_palette[3 * v]; // R - // fbdata[(16*y * 640 + x*16)+3] = 0x00; // empty - - // copy whole 32bit words hor/vert - p1 = (unsigned int *)&fbdata[16*y * 640 + x*16]; - // quadruple horizontally - pc = (unsigned int *)&fbdata[(16*y * 640 + x*16)+4]; - *pc = *p1; - pc = (unsigned int *)&fbdata[(16*y * 640 + x*16)+8]; - *pc = *p1; - pc = (unsigned int *)&fbdata[(16*y * 640 + x*16)+12]; - *pc = *p1; - - // quadruple vertically+1 - pc = (unsigned int *)&fbdata[(4*((y*4)+1) * 640 + x*16)]; - *pc = *p1; - pc = (unsigned int *)&fbdata[(4*((y*4)+1) * 640 + x*16)+4]; - *pc = *p1; - pc = (unsigned int *)&fbdata[(4*((y*4)+1) * 640 + x*16)+8]; - *pc = *p1; - pc = (unsigned int *)&fbdata[(4*((y*4)+1) * 640 + x*16)+12]; - *pc = *p1; - - pc = (unsigned int *)&fbdata[(4*((y*4)+2) * 640 + x*16)]; - *pc = *p1; - pc = (unsigned int *)&fbdata[(4*((y*4)+2) * 640 + x*16)+4]; - *pc = *p1; - pc = (unsigned int *)&fbdata[(4*((y*4)+2) * 640 + x*16)+8]; - *pc = *p1; - pc = (unsigned int *)&fbdata[(4*((y*4)+2) * 640 + x*16)+12]; - *pc = *p1; - - pc = (unsigned int *)&fbdata[(4*((y*4)+3) * 640 + x*16)]; - *pc = *p1; - pc = (unsigned int *)&fbdata[(4*((y*4)+3) * 640 + x*16)+4]; - *pc = *p1; - pc = (unsigned int *)&fbdata[(4*((y*4)+3) * 640 + x*16)+8]; - *pc = *p1; - pc = (unsigned int *)&fbdata[(4*((y*4)+3) * 640 + x*16)+12]; - *pc = *p1; -#endif -#endif + ir_buffer[4*y * 160 + x*4] = + color_palette[3 * v + 2]; // B + ir_buffer[(4*y * 160 + x*4)+1] = + color_palette[3 * v + 1]; // G + ir_buffer[(4*y * 160 + x*4)+2] = + color_palette[3 * v]; // R +// ir_buffer[(4*y * 160 + x*4)+3] = +// 0x00; // A, empty } } - // write video to v4l2loopback(s) - // write(fdwr0, fb_proc, framesize0); // gray scale Thermal Image - //write(fdwr1, &buf85[28+ThermalSize], JpgSize); // jpg Visual Image -#if 0 - fprintf(stderr, "jpgsize %d\n", JpgSize); - { - char fname[64]; - int fdf; - - snprintf(fname, 64, "frame-%04d.jpg", fcnt++); - fdf=open(fname, O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR); - write (fdf, &buf85[28+ThermalSize], JpgSize); - close(fdf); - } -#endif if (jpeg_size == 0 && JpgSize > 0) { jpeg_size=JpgSize; jpeg_buffer=(unsigned char *)malloc(jpeg_size); @@ -486,7 +360,6 @@ void vframe(char ep[],char EP_error[], int r, int actual_length, unsigned char b update_fb(); } } - // free memory free(fb_proc); // thermal RAW free(fb_proc2); // visible jpg diff --git a/debian/control b/debian/control index 9e62768..26c0735 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,7 @@ Source: flirgtk Maintainer: Nicole Faerber Section: misc Priority: optional -Standards-Version: 3.9.2 +Standards-Version: 4.2.1 Build-Depends: libgtk-3-dev, libjpeg-dev, diff --git a/debian/postinst b/debian/postinst index d0c4cde..5ae8b4d 100644 --- a/debian/postinst +++ b/debian/postinst @@ -1,4 +1,2 @@ -# reload udev rules -pkg_postinst_${PN}-udevreload () { - udevadm control --reload-rules -} +#!/bin/sh +udevadm control --reload-rules diff --git a/debian/postrm b/debian/postrm index fdd14be..05e2f7e 100644 --- a/debian/postrm +++ b/debian/postrm @@ -1,4 +1,3 @@ +#!/bin/sh # reload udev rules -pkg_postrm_${PN}-udevreload () { - udevadm control --reload-rules -} +udevadm control --reload-rules diff --git a/flirgtk.c b/flirgtk.c index cd6f830..351a019 100644 --- a/flirgtk.c +++ b/flirgtk.c @@ -44,7 +44,7 @@ // UI variables static GtkWidget *window = NULL; static GtkWidget *image_darea = NULL; -// static GtkApplication *gapp; +static GtkApplication *gapp; static GtkWidget *play_button, *stop_button; // we paint everything in here and then into the drawing area widget static cairo_surface_t *psurface; @@ -83,7 +83,7 @@ unsigned char *jpeg_buffer=NULL; unsigned int jpeg_size=0; -static gboolean +gboolean configure_event (GtkWidget *widget, GdkEventConfigure *event, gpointer data) @@ -91,16 +91,6 @@ configure_event (GtkWidget *widget, //GtkAllocation allocation; // g_printerr("configure event %d x %d\n", allocation.width, allocation.height); -// if (surface) -// cairo_surface_destroy (surface); - -// gtk_widget_get_allocation (widget, &allocation); -// surface = cairo_image_surface_create (CAIRO_FORMAT_RGB24, -// 640, -// 500); -// fbdata = cairo_image_surface_get_data(surface); - // memset(fbdata, 0x00, 640*500*4); -// draw_palette(); /* We've handled the configure event, no need for further processing. */ return TRUE; @@ -223,6 +213,7 @@ cairo_t *cr; cairo_restore(cr); cairo_surface_destroy (ir_surface); } + if (jpeg_size != 0 && jpeg_buffer != NULL) { if (take_vis_shot) { take_vis_shot=FALSE; @@ -246,44 +237,44 @@ cairo_t *cr; // then draw decoration on top // the color palette with min/max temperatures - if (show_palette) { - palette_surface=draw_palette(); - cairo_save(cr); - cairo_rectangle(cr,0,481,640,500); - cairo_clip(cr); - cairo_set_source_surface (cr, palette_surface, 0, 481); - cairo_paint (cr); - cairo_restore(cr); - } + if (show_palette) { + palette_surface=draw_palette(); + cairo_save(cr); + cairo_rectangle(cr,0,481,640,500); + cairo_clip(cr); + cairo_set_source_surface (cr, palette_surface, 0, 481); + cairo_paint (cr); + cairo_restore(cr); + } - if (show_crosshair) { - // crosshair in the center - cairo_set_line_width (cr, 3); - cairo_set_source_rgb (cr, 0, 0, 0); - cairo_move_to(cr, 320, 200); - cairo_line_to(cr, 320, 280); - cairo_stroke (cr); - cairo_move_to(cr, 280, 240); - cairo_line_to(cr, 360, 240); - cairo_stroke (cr); - cairo_set_line_width (cr, 1); - cairo_set_source_rgb (cr, 1.0, 1.0, 1.0); - cairo_move_to(cr, 320, 200); - cairo_line_to(cr, 320, 280); - cairo_stroke (cr); - cairo_move_to(cr, 280, 240); - cairo_line_to(cr, 360, 240); - cairo_stroke (cr); + if (show_crosshair) { + // crosshair in the center + cairo_set_line_width (cr, 3); + cairo_set_source_rgb (cr, 0, 0, 0); + cairo_move_to(cr, 320, 200); + cairo_line_to(cr, 320, 280); + cairo_stroke (cr); + cairo_move_to(cr, 280, 240); + cairo_line_to(cr, 360, 240); + cairo_stroke (cr); + cairo_set_line_width (cr, 1); + cairo_set_source_rgb (cr, 1.0, 1.0, 1.0); + cairo_move_to(cr, 320, 200); + cairo_line_to(cr, 320, 280); + cairo_stroke (cr); + cairo_move_to(cr, 280, 240); + cairo_line_to(cr, 360, 240); + cairo_stroke (cr); - // print center temperature near crosshair - snprintf(tdisp, 16, "%.1f°C", t_center); - cairo_set_source_rgb (cr, 1.0, 1.0, 1.0); - cairo_select_font_face (cr, "Sans", - CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL); - cairo_set_font_size (cr, 24); - cairo_move_to (cr, 330, 220); - cairo_show_text (cr, tdisp); - } + // print center temperature near crosshair + snprintf(tdisp, 16, "%.1f°C", t_center); + cairo_set_source_rgb (cr, 1.0, 1.0, 1.0); + cairo_select_font_face (cr, "Sans", + CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL); + cairo_set_font_size (cr, 24); + cairo_move_to (cr, 330, 220); + cairo_show_text (cr, tdisp); + } // print battery % top right if (show_battery) { @@ -387,8 +378,10 @@ static void close_window (void) { // clean up and quit - window = NULL; - gtk_main_quit(); + //window = NULL; + // gtk_main_quit(); + // g_application_quit(gapp); + gtk_application_remove_window(gapp, GTK_WINDOW(window)); } void @@ -427,7 +420,9 @@ tempreflected_changed (GtkSpinButton *spin_button, gpointer user_data) } void -ir_settings_activate(GtkMenuItem *menuitem, gpointer user_data) +ir_settings_activate(GSimpleAction *simple, + GVariant *parameter, + gpointer user_data) { GtkWidget *dialog, *hb, *c, *vb, *w; GtkDialogFlags flags = GTK_DIALOG_USE_HEADER_BAR /*| GTK_DIALOG_MODAL*/ | GTK_DIALOG_DESTROY_WITH_PARENT; @@ -516,7 +511,9 @@ show_crosshair_toggled (GtkToggleButton *togglebutton, gpointer user_data) } void -ui_settings_activate(GtkMenuItem *menuitem, gpointer user_data) +ui_settings_activate (GSimpleAction *simple, + GVariant *parameter, + gpointer user_data) { GtkWidget *dialog, *hb, *c, *vb, *w; GtkDialogFlags flags = GTK_DIALOG_USE_HEADER_BAR /*| GTK_DIALOG_MODAL*/ | GTK_DIALOG_DESTROY_WITH_PARENT; @@ -584,7 +581,10 @@ vis_y_offset_changed (GtkSpinButton *spin_button, gpointer user_data) } void -vis_settings_activate(GtkMenuItem *menuitem, gpointer user_data) +vis_settings_activate +(GSimpleAction *simple, + GVariant *parameter, + gpointer user_data) { GtkWidget *dialog, *hb, *c, *vb, *w; GtkDialogFlags flags = GTK_DIALOG_USE_HEADER_BAR /*| GTK_DIALOG_MODAL*/ | GTK_DIALOG_DESTROY_WITH_PARENT; @@ -652,55 +652,62 @@ GtkDialogFlags flags = GTK_DIALOG_USE_HEADER_BAR /*| GTK_DIALOG_MODAL*/ | GTK_DI gtk_widget_destroy(dialog); } -GtkWidget * -create_main_window (void) + +void +quit_activate +(GSimpleAction *simple, + GVariant *parameter, + gpointer user_data) +{ + close_window (); +} + +void +create_main_window (GtkWidget *appwindow) { //GtkWidget *gappw; GtkWidget *box; GtkWidget *hbox; GtkWidget *w, *i; -GtkWidget *m, *mi; - -// GtkWidget *da; +//GtkWidget *m, *mi; +GMenu *menu; +GActionGroup *group; +const GActionEntry entries[] = { + { "uisettings", ui_settings_activate }, + { "irsettings", ir_settings_activate }, + { "vissettings", vis_settings_activate }, + { "quit", quit_activate }, + }; // init default color palette color_palette = palette_Rainbow; // gappw=gtk_application_window_new(gapp); - window = gtk_window_new (GTK_WINDOW_TOPLEVEL); +// window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + window = appwindow; gtk_window_set_title (GTK_WINDOW (window), "FLIR One"); w=gtk_header_bar_new(); gtk_header_bar_set_show_close_button (GTK_HEADER_BAR(w), TRUE); gtk_header_bar_set_decoration_layout (GTK_HEADER_BAR(w), ":menu,close"); -// i = gtk_button_new_from_icon_name("open-menu-symbolic", GTK_ICON_SIZE_BUTTON); i=gtk_menu_button_new(); - m=gtk_menu_new(); - mi=gtk_menu_item_new_with_label("UI Settings"); - gtk_menu_shell_append(GTK_MENU_SHELL(m), mi); - g_signal_connect (mi, "activate", - G_CALLBACK (ui_settings_activate), NULL); - mi=gtk_menu_item_new_with_label("IR Settings"); - gtk_menu_shell_append(GTK_MENU_SHELL(m), mi); - g_signal_connect (mi, "activate", - G_CALLBACK (ir_settings_activate), NULL); - mi=gtk_menu_item_new_with_label("Vis Settings"); - gtk_menu_shell_append(GTK_MENU_SHELL(m), mi); - g_signal_connect (mi, "activate", - G_CALLBACK (vis_settings_activate), NULL); - mi=gtk_separator_menu_item_new (); - gtk_menu_shell_append(GTK_MENU_SHELL(m), mi); - mi=gtk_menu_item_new_with_label("Quit"); - gtk_menu_shell_append(GTK_MENU_SHELL(m), mi); - g_signal_connect (mi, "activate", - G_CALLBACK (gtk_main_quit), NULL); + group = (GActionGroup*)g_simple_action_group_new (); + g_action_map_add_action_entries (G_ACTION_MAP (group), entries, G_N_ELEMENTS (entries), NULL); + menu=g_menu_new(); + g_menu_append(menu, "UI Settings", "menu.uisettings"); + g_menu_append(menu, "IR Settings", "menu.irsettings"); + g_menu_append(menu, "Vis Settings", "menu.vissettings"); + g_menu_append(menu, "Quit", "menu.quit"); + + gtk_widget_insert_action_group(i, "menu", group); + gtk_menu_button_set_menu_model(GTK_MENU_BUTTON(i), G_MENU_MODEL(menu)); + gtk_menu_button_set_use_popover(GTK_MENU_BUTTON(i), TRUE); - gtk_menu_button_set_popup (GTK_MENU_BUTTON(i), m); - gtk_widget_show_all(m); + gtk_menu_button_set_direction(GTK_MENU_BUTTON(i), GTK_ARROW_NONE); + + gtk_header_bar_pack_end(GTK_HEADER_BAR(w),i); gtk_window_set_titlebar(GTK_WINDOW (window), w); -// g_signal_connect (w, "clicked", -// G_CALLBACK (menu_clicked), NULL); g_signal_connect (window, "destroy", G_CALLBACK (close_window), NULL); @@ -714,8 +721,6 @@ GtkWidget *m, *mi; // 48 GTK_ICON_SIZE_DIALOG // 32 GTK_ICON_SIZE_DND // media-playback-start - // w = gtk_button_new_with_label("Start"); - // w = gtk_button_new_from_icon_name("media-playback-start", GTK_ICON_SIZE_DND); play_button = gtk_toggle_button_new(); i = gtk_image_new_from_icon_name("media-playback-start", GTK_ICON_SIZE_DND); gtk_button_set_image(GTK_BUTTON(play_button),i); @@ -724,9 +729,6 @@ GtkWidget *m, *mi; g_signal_connect (play_button, "clicked", G_CALLBACK (start_clicked), NULL); - // media-playback-stop - // w = gtk_button_new_with_label("Stop"); - //w = gtk_button_new_from_icon_name("media-playback-stop", GTK_ICON_SIZE_DND); stop_button = gtk_toggle_button_new(); i = gtk_image_new_from_icon_name("media-playback-stop", GTK_ICON_SIZE_DND); gtk_button_set_image(GTK_BUTTON(stop_button),i); @@ -736,25 +738,6 @@ GtkWidget *m, *mi; g_signal_connect (stop_button, "clicked", G_CALLBACK (stop_clicked), NULL); - // drop down for color palettes -#if 0 - w = gtk_combo_box_text_new(); - gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT(w), NULL, "7"); - gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT(w), NULL, "15"); - gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT(w), NULL, "17"); - gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT(w), NULL, "85"); - gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT(w), NULL, "92"); - gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT(w), NULL, "Grayscale"); - gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT(w), NULL, "Grey"); - gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT(w), NULL, "Iron 2"); - gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT(w), NULL, "Iron Black"); - gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT(w), NULL, "Rainbow"); - gtk_combo_box_set_active (GTK_COMBO_BOX(w), 9); - gtk_container_add (GTK_CONTAINER (hbox), w); - g_signal_connect (w, "changed", - G_CALLBACK (palette_changed), NULL); -#endif - w = gtk_toggle_button_new_with_label("IR"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(w), TRUE); gtk_container_add (GTK_CONTAINER (hbox), w); @@ -767,8 +750,6 @@ GtkWidget *m, *mi; g_signal_connect (w, "clicked", G_CALLBACK (viscam_clicked), NULL); - // w = gtk_scale_new_with_range (GTK_ORIENTATION_VERTICAL, 0.0, 1.0, .01); - psurface = cairo_image_surface_create (CAIRO_FORMAT_RGB24, 640, 500); image_darea = gtk_drawing_area_new (); @@ -789,18 +770,33 @@ GtkWidget *m, *mi; gtk_widget_show_all(window); - return window; + // return window; +} + + +void +flirgtk_app_activate (GApplication *application, gpointer user_data) +{ +GtkWidget *widget; + + widget = gtk_application_window_new (GTK_APPLICATION (application)); + create_main_window(widget); + gtk_window_present (GTK_WINDOW(widget)); } int -main(int argc, char **argv) +main (int argc, char **argv) { -// gapp=gtk_application_new("org.gnome.flirgtk", G_APPLICATION_FLAGS_NONE); - gtk_init(&argc, &argv); + gapp=gtk_application_new("org.gnome.flirgtk", G_APPLICATION_FLAGS_NONE); + // gtk_init(&argc, &argv); - create_main_window(); + //create_main_window(); + g_signal_connect(gapp, "activate", G_CALLBACK (flirgtk_app_activate), NULL); - gtk_main(); + g_application_run (G_APPLICATION (gapp), argc, argv); + g_object_unref (gapp); + +// gtk_main(); return 0; } diff --git a/flirgtk.desktop b/flirgtk.desktop new file mode 100644 index 0000000..5d42d22 --- /dev/null +++ b/flirgtk.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Type=Application +Name=FlirGTK +GenericName=FlirGTK +Comment=Live view and picture taking with FLIR ONE USB IR camera +Comment[de]=Live view and picture taking with FLIR ONE USB IR camera +Icon=flirgtk +StartupNotify=true +Terminal=false +Exec=flirgtk +Categories=GTK;GNOME;Utility; +Keywords=flir; diff --git a/flirgtk.png b/flirgtk.png new file mode 100644 index 0000000000000000000000000000000000000000..f4f954525fb89fe5284565bd3f0abde927a9e533 GIT binary patch literal 72424 zcmV)eK&HQmP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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 Svvbt|0000