From: Maksym Veremeyenko Date: Thu, 30 Oct 2014 13:10:59 +0000 (+0200) Subject: embed icons into binary X-Git-Url: http://research.m1stereo.tv/gitweb?a=commitdiff_plain;h=9106d710e39b7901e6ecd2f9583faf8cd61ee569;p=omnplay embed icons into binary --- diff --git a/src/Makefile.am b/src/Makefile.am index 9f3edd4..f852e55 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -20,3 +20,39 @@ omnplay_SOURCES = \ omnplay.cpp omnplay.h omnplay_LDADD = @GTHREAD_LIBS@ @GTK_LIBS@ @OM_LIBS@ @CURL_LIBS@ -lpthread + +pixmap2_internal = \ + Axialis_Team_item_add_16x116_png ../pixmaps/Axialis_Team_item_add_16x116.png \ + Axialis_Team_item_add_from_library_16x16_png ../pixmaps/Axialis_Team_item_add_from_library_16x16.png \ + Axialis_Team_item_block_16x116_png ../pixmaps/Axialis_Team_item_block_16x116.png \ + Axialis_Team_item_delete_16x116_png ../pixmaps/Axialis_Team_item_delete_16x116.png \ + Axialis_Team_item_edit_16x116_png ../pixmaps/Axialis_Team_item_edit_16x116.png \ + Axialis_Team_item_loop_16x116_png ../pixmaps/Axialis_Team_item_loop_16x116.png \ + Axialis_Team_item_move_down_16x116_png ../pixmaps/Axialis_Team_item_move_down_16x116.png \ + Axialis_Team_item_move_up_16x116_png ../pixmaps/Axialis_Team_item_move_up_16x116.png \ + Axialis_Team_library_refresh_16x16_png ../pixmaps/Axialis_Team_library_refresh_16x16.png \ + Axialis_Team_player_cue_32x32_png ../pixmaps/Axialis_Team_player_cue_32x32.png \ + Axialis_Team_player_pause_32x32_png ../pixmaps/Axialis_Team_player_pause_32x32.png \ + Axialis_Team_player_play_64x32_png ../pixmaps/Axialis_Team_player_play_64x32.png \ + Axialis_Team_player_stop_32x32_png ../pixmaps/Axialis_Team_player_stop_32x32.png \ + Axialis_Team_playlist_open_16x16_png ../pixmaps/Axialis_Team_playlist_open_16x16.png \ + Axialis_Team_playlist_relink_16x16_png ../pixmaps/Axialis_Team_playlist_relink_16x16.png \ + Axialis_Team_playlist_save_16x16_png ../pixmaps/Axialis_Team_playlist_save_16x16.png \ + Axialis_Team_search_in_library_16x16_png ../pixmaps/Axialis_Team_search_in_library_16x16.png \ + Axialis_Team_search_next_16x16_png ../pixmaps/Axialis_Team_search_next_16x16.png \ + block_type_block_end_16x16_png ../pixmaps/block_type_block_end_16x16.png \ + block_type_block_loop_16x16_png ../pixmaps/block_type_block_loop_16x16.png \ + block_type_block_middle_16x16_png ../pixmaps/block_type_block_middle_16x16.png \ + block_type_block_single_16x16_png ../pixmaps/block_type_block_single_16x16.png \ + block_type_block_start_16x16_png ../pixmaps/block_type_block_start_16x16.png \ + block_type_loop_end_16x16_png ../pixmaps/block_type_loop_end_16x16.png \ + block_type_loop_middle_16x16_png ../pixmaps/block_type_loop_middle_16x16.png \ + block_type_loop_start_16x16_png ../pixmaps/block_type_loop_start_16x16.png + +CLEANFILES = \ + pixmap2-internal.h + +support.c: pixmap2-internal.h + +pixmap2-internal.h: + gdk-pixbuf-csource --raw --build-list $(pixmap2_internal) > pixmap2-internal.h diff --git a/src/omnplay.cpp b/src/omnplay.cpp index 718ff74..6189862 100644 --- a/src/omnplay.cpp +++ b/src/omnplay.cpp @@ -37,6 +37,10 @@ #include "opts.h" #include "timecode.h" +#if defined(_WIN32) +#include +#endif + #include "omplrclnt.h" int omnplay_get_content(omnplay_instance_t* app, playlist_item_t *items, int limit, diff --git a/src/support.c b/src/support.c index 00aff29..59df077 100644 --- a/src/support.c +++ b/src/support.c @@ -16,6 +16,51 @@ #include "support.h" +#include "pixmap2-internal.h" + +static const void* pixmap2_map[] = +{ + "Axialis_Team_item_add_16x116.png", Axialis_Team_item_add_16x116_png, + "Axialis_Team_item_add_from_library_16x16.png", Axialis_Team_item_add_from_library_16x16_png, + "Axialis_Team_item_block_16x116.png", Axialis_Team_item_block_16x116_png, + "Axialis_Team_item_delete_16x116.png", Axialis_Team_item_delete_16x116_png, + "Axialis_Team_item_edit_16x116.png", Axialis_Team_item_edit_16x116_png, + "Axialis_Team_item_loop_16x116.png", Axialis_Team_item_loop_16x116_png, + "Axialis_Team_item_move_down_16x116.png", Axialis_Team_item_move_down_16x116_png, + "Axialis_Team_item_move_up_16x116.png", Axialis_Team_item_move_up_16x116_png, + "Axialis_Team_library_refresh_16x16.png", Axialis_Team_library_refresh_16x16_png, + "Axialis_Team_player_cue_32x32.png", Axialis_Team_player_cue_32x32_png, + "Axialis_Team_player_pause_32x32.png", Axialis_Team_player_pause_32x32_png, + "Axialis_Team_player_play_64x32.png", Axialis_Team_player_play_64x32_png, + "Axialis_Team_player_stop_32x32.png", Axialis_Team_player_stop_32x32_png, + "Axialis_Team_playlist_open_16x16.png", Axialis_Team_playlist_open_16x16_png, + "Axialis_Team_playlist_relink_16x16.png", Axialis_Team_playlist_relink_16x16_png, + "Axialis_Team_playlist_save_16x16.png", Axialis_Team_playlist_save_16x16_png, + "Axialis_Team_search_in_library_16x16.png", Axialis_Team_search_in_library_16x16_png, + "Axialis_Team_search_next_16x16.png", Axialis_Team_search_next_16x16_png, + "block_type_block_end_16x16.png", block_type_block_end_16x16_png, + "block_type_block_loop_16x16.png", block_type_block_loop_16x16_png, + "block_type_block_middle_16x16.png", block_type_block_middle_16x16_png, + "block_type_block_single_16x16.png", block_type_block_single_16x16_png, + "block_type_block_start_16x16.png", block_type_block_start_16x16_png, + "block_type_loop_end_16x16.png", block_type_loop_end_16x16_png, + "block_type_loop_middle_16x16.png", block_type_loop_middle_16x16_png, + "block_type_loop_start_16x16.png", block_type_loop_start_16x16_png, + NULL, NULL +}; + +GdkPixbuf* create_pixbuf2(const gchar *filename) +{ + int i; + + for(i = 0; pixmap2_map[i]; i += 2) + if(!strcmp((char*)pixmap2_map[i], filename)) + return gdk_pixbuf_new_from_inline(-1, pixmap2_map[i + 1], FALSE, NULL); + + return create_pixbuf(filename); +} + + GtkWidget* lookup_widget (GtkWidget *widget, const gchar *widget_name) diff --git a/src/support.h b/src/support.h index d0935b5..bcd7388 100644 --- a/src/support.h +++ b/src/support.h @@ -64,6 +64,7 @@ GtkWidget* create_pixmap (GtkWidget *widget, /* This is used to create the pixbufs used in the interface. */ GdkPixbuf* create_pixbuf (const gchar *filename); +GdkPixbuf* create_pixbuf2 (const gchar *filename); /* This is used to set ATK action descriptions. */ void glade_set_atk_action_description (AtkAction *action, diff --git a/src/ui.c b/src/ui.c index ef4311f..24b7258 100644 --- a/src/ui.c +++ b/src/ui.c @@ -592,21 +592,21 @@ GtkWidget* ui_omnplay (omnplay_instance_t* app) FALSE, FALSE, 0); app->playlist.block_icons[OMNPLAY_PLAYLIST_ITEM_BLOCK_BEGIN] = - create_pixbuf("block_type_block_start_16x16.png"); + create_pixbuf2("block_type_block_start_16x16.png"); app->playlist.block_icons[OMNPLAY_PLAYLIST_ITEM_BLOCK_BODY] = - create_pixbuf("block_type_block_middle_16x16.png"); + create_pixbuf2("block_type_block_middle_16x16.png"); app->playlist.block_icons[OMNPLAY_PLAYLIST_ITEM_BLOCK_END] = - create_pixbuf("block_type_block_end_16x16.png"); + create_pixbuf2("block_type_block_end_16x16.png"); app->playlist.block_icons[OMNPLAY_PLAYLIST_ITEM_BLOCK_SINGLE] = - create_pixbuf("block_type_block_single_16x16.png"); + create_pixbuf2("block_type_block_single_16x16.png"); app->playlist.block_icons[OMNPLAY_PLAYLIST_ITEM_LOOP_BEGIN] = - create_pixbuf("block_type_loop_start_16x16.png"); + create_pixbuf2("block_type_loop_start_16x16.png"); app->playlist.block_icons[OMNPLAY_PLAYLIST_ITEM_LOOP_BODY] = - create_pixbuf("block_type_loop_middle_16x16.png"); + create_pixbuf2("block_type_loop_middle_16x16.png"); app->playlist.block_icons[OMNPLAY_PLAYLIST_ITEM_LOOP_END] = - create_pixbuf("block_type_loop_end_16x16.png"); + create_pixbuf2("block_type_loop_end_16x16.png"); app->playlist.block_icons[OMNPLAY_PLAYLIST_ITEM_LOOP_SINGLE] = - create_pixbuf("block_type_block_loop_16x16.png"); + create_pixbuf2("block_type_block_loop_16x16.png"); return wnd; } diff --git a/src/ui_buttons.c b/src/ui_buttons.c index e3022cf..1ba433a 100644 --- a/src/ui_buttons.c +++ b/src/ui_buttons.c @@ -232,7 +232,7 @@ GtkWidget* ui_create_button(GtkWidget* top, omnplay_instance_t* app, control_but if(info->stock) image = gtk_image_new_from_stock(info->stock, GTK_ICON_SIZE_MENU); else if(info->filename) - image = gtk_image_new_from_pixbuf(create_pixbuf(info->filename)); + image = gtk_image_new_from_pixbuf(create_pixbuf2(info->filename)); if(image) { gtk_widget_show(image);