summaryrefslogtreecommitdiff
path: root/rcm-client-hardware-list.c
diff options
context:
space:
mode:
authorDavid Härdeman <david@hardeman.nu>2015-08-17 20:54:45 +0200
committerDavid Härdeman <david@hardeman.nu>2015-08-17 20:54:45 +0200
commitf3f7d5445e6f64a7c946f6e0144452952f0809e8 (patch)
treef8c44ce38bd28624eacd06de0d88e25452386fd6 /rcm-client-hardware-list.c
parentc420b38a5a4bac32b1086e0359e5f5646880d9f4 (diff)
Revamp advanced UI
Diffstat (limited to 'rcm-client-hardware-list.c')
-rw-r--r--rcm-client-hardware-list.c90
1 files changed, 2 insertions, 88 deletions
diff --git a/rcm-client-hardware-list.c b/rcm-client-hardware-list.c
index 2c47ee5..ea1a0d9 100644
--- a/rcm-client-hardware-list.c
+++ b/rcm-client-hardware-list.c
@@ -10,6 +10,7 @@
#include "rcm-client-main.h"
#include "rcm-client-hardware-list.h"
#include "rcm-client-receive.h"
+#include "rcm-client-advanced.h"
static GList *hw_list = NULL;
@@ -85,99 +86,12 @@ hardware_properties_cb(GtkButton *button, gpointer user_data)
gtk_widget_hide(dialog);
}
-static GVariant *
-encode_nec(uint32_t scancode_raw)
-{
- GVariantBuilder *builder;
- GVariant *r;
- unsigned i;
- uint32_t scancode;
-
- scancode = ((((scancode_raw >> 24) & 0xff) << 0) |
- (((scancode_raw >> 16) & 0xff) << 8) |
- (((scancode_raw >> 8) & 0xff) << 16) |
- (((scancode_raw >> 0) & 0xff) << 24));
-
- builder = g_variant_builder_new(G_VARIANT_TYPE_ARRAY);
- g_variant_builder_add(builder, "u", 9000);
- g_variant_builder_add(builder, "u", 4500);
-
- for (i = 0; i < 32; i++) {
- g_variant_builder_add(builder, "u", 560);
- if (scancode & 0x1)
- g_variant_builder_add(builder, "u", 3 * 560);
- else
- g_variant_builder_add(builder, "u", 1 * 560);
- scancode >>= 1;
- }
-
- g_variant_builder_add(builder, "u", 560);
-
- r = g_variant_builder_end(builder);
- g_variant_builder_unref(builder);
- return r;
-}
-
-static void
-advanced_transmit_cb(GtkButton *button, gpointer user_data)
-{
- RCDevice *object = user_data;
- GtkComboBoxText *protocolw;
- GtkEntry *scancodew;
- gchar *protocol;
- const gchar *scancode;
- uint64_t sc;
- GError *error = NULL;
- gboolean r;
-
- protocolw = GTK_COMBO_BOX_TEXT(gtk_builder_get_object(global->builder, "advanced_main_transmit_protocol"));
- scancodew = GTK_ENTRY(gtk_builder_get_object(global->builder, "advanced_main_transmit_scancode"));
-
- protocol = gtk_combo_box_text_get_active_text(protocolw);
- scancode = gtk_entry_get_text(scancodew);
- printf("Asked to transmit: protocol %s scancode %s\n", protocol, scancode);
- g_free(protocol);
-
- if (!strcmp(protocol, "NEC")) {
- printf("Invalid protocol: %s\n", protocol);
- return;
- }
-
- r = strtoull_strict(scancode, &sc);
- if (r < 0 || sc > UINT32_MAX) {
- printf("Invalid scancode: %s\n", scancode);
- return;
- }
-
- if (!rcdevice_call_transmit_sync(object, encode_nec(sc), NULL, &error)) {
- printf("rcdevice_call_transmit_sync failed: %s\n",
- error ? error->message : "no error reported");
- g_error_free(error);
- }
-}
-
static void
advanced_cb(GtkButton *button, gpointer user_data)
{
RCDevice *object = user_data;
- GtkWidget *dialog;
- GtkWidget *title;
- GtkWidget *transmit;
- gchar *titlestr;
-
- dialog = GTK_WIDGET(gtk_builder_get_object(global->builder, "advanced"));
-
- title = GTK_WIDGET(gtk_builder_get_object(global->builder, "advanced_main_title_label"));
- titlestr = g_markup_printf_escaped("<b><big>Advanced Actions</big></b>\nFor device %s",
- rcdevice_get_sys_name(object));
- gtk_label_set_markup(GTK_LABEL(title), titlestr);
- g_free(titlestr);
-
- transmit = GTK_WIDGET(gtk_builder_get_object(global->builder, "advanced_main_transmit_button"));
- g_signal_connect(transmit, "clicked", G_CALLBACK(advanced_transmit_cb), object);
- g_signal_connect_swapped(dialog, "delete-event", G_CALLBACK(gtk_widget_hide_on_delete), dialog);
- gtk_widget_show(dialog);
+ advanced_init_ui(object);
}
static void