[Goodies-commits] r6228 - xfce4-radio-plugin/trunk/panel-plugin
Stefan Ott
cockroach at xfce.org
Sun Nov 30 05:19:40 CET 2008
Author: cockroach
Date: 2008-11-30 04:19:39 +0000 (Sun, 30 Nov 2008)
New Revision: 6228
Modified:
xfce4-radio-plugin/trunk/panel-plugin/radio.c
xfce4-radio-plugin/trunk/panel-plugin/radio.h
Log:
Added fixes for preset input encodings, auto-learning of max signal strength
Modified: xfce4-radio-plugin/trunk/panel-plugin/radio.c
===================================================================
--- xfce4-radio-plugin/trunk/panel-plugin/radio.c 2008-11-30 03:37:04 UTC (rev 6227)
+++ xfce4-radio-plugin/trunk/panel-plugin/radio.c 2008-11-30 04:19:39 UTC (rev 6228)
@@ -56,12 +56,21 @@
} else {
gtk_widget_show (data->signal_bar);
double signal = radio_get_signal (data->fd);
+
+ if (signal > data->max_signal_strength)
+ data->max_signal_strength = signal;
+
gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR
- (data->signal_bar), signal / 2);
+ (data->signal_bar), signal / data->max_signal_strength);
GdkColor color;
- gdk_color_parse (signal > 1 ? COLOR_SIGNAL_HIGH :
- COLOR_SIGNAL_LOW, &color);
+ if (signal == 1)
+ gdk_color_parse (COLOR_SIGNAL_LOW, &color);
+ else if (signal == data->max_signal_strength)
+ gdk_color_parse (COLOR_SIGNAL_HIGH, &color);
+ else
+ gdk_color_parse (COLOR_SIGNAL_MED, &color);
+
gtk_widget_modify_bg (data->signal_bar, GTK_STATE_PRELIGHT,
&color);
if (data->signal_timeout_id == 0) {
@@ -306,15 +315,14 @@
gtk_widget_show (label);
gtk_box_pack_start (GTK_BOX (box), label, FALSE, FALSE, 0);
- GtkWidget* station = gtk_entry_new_with_max_length (
- MAX_PRESET_NAME_LENGTH);
+ GtkWidget* station = gtk_entry_new();
gtk_entry_set_text (GTK_ENTRY (station), preset->name);
gtk_widget_show (station);
gtk_box_pack_start (GTK_BOX (box), station, FALSE, FALSE, 0);
if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK) {
- strncpy (preset->name, gtk_entry_get_text (GTK_ENTRY (station)),
- MAX_PRESET_NAME_LENGTH);
+ g_free (preset->name);
+ preset->name = g_strdup (gtk_entry_get_text (GTK_ENTRY (station)));
pop_preset (preset, data);
append_to_presets (preset, data);
}
@@ -339,16 +347,14 @@
char buf[8];
sprintf (buf, "%5.1f FM", ((float) data->freq) / 100);
- GtkWidget* station = gtk_entry_new_with_max_length (
- MAX_PRESET_NAME_LENGTH);
+ GtkWidget* station = gtk_entry_new();
gtk_entry_set_text (GTK_ENTRY (station), buf);
gtk_widget_show (station);
gtk_box_pack_start (GTK_BOX (box), station, FALSE, FALSE, 0);
if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) {
- const char* name = gtk_entry_get_text (GTK_ENTRY (station));
radio_preset* preset = malloc (sizeof (radio_preset));
- strncpy (preset->name, name, MAX_PRESET_NAME_LENGTH);
+ preset->name = g_strdup(gtk_entry_get_text (GTK_ENTRY (station)));
preset->freq = data->freq;
preset->next = NULL;
if (!append_to_presets (preset, data)) {
@@ -669,6 +675,8 @@
gtk_container_add (GTK_CONTAINER (gui->ebox), gui->box);
+ gui->max_signal_strength = 2;
+
return gui;
}
@@ -1030,8 +1038,8 @@
radio_preset *preset =
malloc (sizeof (radio_preset));
preset->next = NULL;
- strncpy(preset->name, value,
- MAX_PRESET_NAME_LENGTH);
+// g_free (preset->name);
+ preset->name = g_strdup(value);
preset->freq = atoi (*entry);
append_to_presets (preset, data);
}
Modified: xfce4-radio-plugin/trunk/panel-plugin/radio.h
===================================================================
--- xfce4-radio-plugin/trunk/panel-plugin/radio.h 2008-11-30 03:37:04 UTC (rev 6227)
+++ xfce4-radio-plugin/trunk/panel-plugin/radio.h 2008-11-30 04:19:39 UTC (rev 6228)
@@ -19,6 +19,7 @@
*/
#include <gtk/gtk.h>
+#include <glib.h>
#include <fcntl.h>
#include <sys/ioctl.h>
@@ -34,16 +35,15 @@
#define MAX_LABEL_LENGTH 7
#define MAX_DEVICE_NAME_LENGTH 32
#define MAX_COMMAND_LENGTH 512
-#define MAX_PRESET_NAME_LENGTH 15
-#define COLOR_SIGNAL_LOW "#ffff00"
+#define COLOR_SIGNAL_LOW "#ff0000"
+#define COLOR_SIGNAL_MED "#ffff00"
#define COLOR_SIGNAL_HIGH "#00ff00"
#define BORDER 8
#define RADIO_CONFIG_FILE "xfce4/panel/radio.rc"
-
typedef enum {
CHANGE_FREQ,
CHANGE_PRESET
@@ -51,7 +51,7 @@
struct radio_preset_st {
int freq;
- char name [MAX_PRESET_NAME_LENGTH];
+ gchar *name;
struct radio_preset_st* next;
};
@@ -78,6 +78,10 @@
radio_preset* presets;
mouse_scroll_reaction scroll;
+ // this seems to be card specific and we can't seem to get the maximum
+ // possible value for a given card from v4l
+ double max_signal_strength;
+
XfcePanelPlugin *plugin;
} radio_gui;
More information about the Goodies-commits
mailing list