comparison src/audlegacy/dbus.c @ 4870:56af01cd5a5c

Eliminate a double free (bug #30)
author John Lindgren <john.lindgren@tds.net>
date Sat, 25 Apr 2009 21:32:54 -0400
parents 51e2089a73f1
children 43eb8388760d
comparison
equal deleted inserted replaced
4869:f07844bdc43f 4870:56af01cd5a5c
87 GError *error = NULL; 87 GError *error = NULL;
88 DBusGProxy *driver_proxy; 88 DBusGProxy *driver_proxy;
89 guint request_ret; 89 guint request_ret;
90 90
91 g_message("Registering remote D-Bus interfaces"); 91 g_message("Registering remote D-Bus interfaces");
92 92
93 dbus_g_object_type_install_info(audacious_rc_get_type(), 93 dbus_g_object_type_install_info(audacious_rc_get_type(),
94 &dbus_glib_audacious_rc_object_info); 94 &dbus_glib_audacious_rc_object_info);
95 95
96 // Register DBUS path 96 // Register DBUS path
97 dbus_g_connection_register_g_object(dbus_conn, 97 dbus_g_connection_register_g_object(dbus_conn,
98 AUDACIOUS_DBUS_PATH, G_OBJECT(object)); 98 AUDACIOUS_DBUS_PATH, G_OBJECT(object));
99 99
100 // Register the service name, the constants here are defined in 100 // Register the service name, the constants here are defined in
119 } 119 }
120 120
121 void mpris_root_init(MprisRoot *object) { 121 void mpris_root_init(MprisRoot *object) {
122 dbus_g_object_type_install_info(mpris_root_get_type(), 122 dbus_g_object_type_install_info(mpris_root_get_type(),
123 &dbus_glib_mpris_root_object_info); 123 &dbus_glib_mpris_root_object_info);
124 124
125 // Register DBUS path 125 // Register DBUS path
126 dbus_g_connection_register_g_object(dbus_conn, 126 dbus_g_connection_register_g_object(dbus_conn,
127 AUDACIOUS_DBUS_PATH_MPRIS_ROOT, 127 AUDACIOUS_DBUS_PATH_MPRIS_ROOT,
128 G_OBJECT(object)); 128 G_OBJECT(object));
129 } 129 }
130 130
131 void mpris_player_init(MprisPlayer *object) { 131 void mpris_player_init(MprisPlayer *object) {
132 dbus_g_object_type_install_info(mpris_player_get_type(), 132 dbus_g_object_type_install_info(mpris_player_get_type(),
133 &dbus_glib_mpris_player_object_info); 133 &dbus_glib_mpris_player_object_info);
134 134
135 // Register DBUS path 135 // Register DBUS path
136 dbus_g_connection_register_g_object(dbus_conn, 136 dbus_g_connection_register_g_object(dbus_conn,
137 AUDACIOUS_DBUS_PATH_MPRIS_PLAYER, 137 AUDACIOUS_DBUS_PATH_MPRIS_PLAYER,
138 G_OBJECT(object)); 138 G_OBJECT(object));
139 139
153 } 153 }
154 154
155 void mpris_tracklist_init(MprisTrackList *object) { 155 void mpris_tracklist_init(MprisTrackList *object) {
156 dbus_g_object_type_install_info(mpris_tracklist_get_type(), 156 dbus_g_object_type_install_info(mpris_tracklist_get_type(),
157 &dbus_glib_mpris_tracklist_object_info); 157 &dbus_glib_mpris_tracklist_object_info);
158 158
159 // Register DBUS path 159 // Register DBUS path
160 dbus_g_connection_register_g_object(dbus_conn, 160 dbus_g_connection_register_g_object(dbus_conn,
161 AUDACIOUS_DBUS_PATH_MPRIS_TRACKLIST, 161 AUDACIOUS_DBUS_PATH_MPRIS_TRACKLIST,
162 G_OBJECT(object)); 162 G_OBJECT(object));
163 } 163 }
242 tuple_insert_to_hash(md, tuple, "quality"); 242 tuple_insert_to_hash(md, tuple, "quality");
243 243
244 value = tuple_value_to_gvalue(tuple, "track-number"); 244 value = tuple_value_to_gvalue(tuple, "track-number");
245 if (value != NULL) 245 if (value != NULL)
246 { 246 {
247 g_hash_table_insert(md, "tracknumber", value); 247 g_hash_table_insert(md, "tracknumber", value);
248 } 248 }
249 249
250 return md; 250 return md;
251 } 251 }
252 252
560 gint i; 560 gint i;
561 for (i = 0; i < FIELD_LAST; i++) { 561 for (i = 0; i < FIELD_LAST; i++) {
562 res[i] = g_strdup(tuple_fields[i].name); 562 res[i] = g_strdup(tuple_fields[i].name);
563 } 563 }
564 *fields = res; 564 *fields = res;
565 565
566 return TRUE; 566 return TRUE;
567 } 567 }
568 568
569 569
570 // Playback Information/Manipulation 570 // Playback Information/Manipulation
910 gboolean audacious_rc_playlist_enqueue_to_temp(RemoteObject *obj, gchar *url, GError **error) { 910 gboolean audacious_rc_playlist_enqueue_to_temp(RemoteObject *obj, gchar *url, GError **error) {
911 Playlist *new_pl = playlist_new(); 911 Playlist *new_pl = playlist_new();
912 gchar *pl_name = NULL; 912 gchar *pl_name = NULL;
913 913
914 pl_name = (gchar*)playlist_get_current_name(new_pl); 914 pl_name = (gchar*)playlist_get_current_name(new_pl);
915 if(!pl_name) 915 playlist_set_current_name (new_pl, pl_name ? pl_name : "New Playlist");
916 pl_name = g_strdup("New Playlist");
917 playlist_set_current_name(new_pl, pl_name);
918 g_free(pl_name);
919 916
920 playlist_add_playlist(new_pl); 917 playlist_add_playlist(new_pl);
921 918
922 // DISABLE_MANAGER_UPDATE(); 919 // DISABLE_MANAGER_UPDATE();
923 playlist_select_playlist(new_pl); 920 playlist_select_playlist(new_pl);
926 playlist_add_url(new_pl, url); 923 playlist_add_url(new_pl, url);
927 924
928 return TRUE; 925 return TRUE;
929 } 926 }
930 927
931 /* New on Nov 7: Equalizer */ 928 /* New on Nov 7: Equalizer */
932 gboolean audacious_rc_get_eq(RemoteObject *obj, gdouble *preamp, GArray **bands, GError **error) 929 gboolean audacious_rc_get_eq(RemoteObject *obj, gdouble *preamp, GArray **bands, GError **error)
933 { 930 {
934 int i; 931 int i;
935 932
936 *preamp = (gdouble)equalizer_get_preamp(); 933 *preamp = (gdouble)equalizer_get_preamp();
958 955
959 gboolean audacious_rc_set_eq(RemoteObject *obj, gdouble preamp, GArray *bands, GError **error) 956 gboolean audacious_rc_set_eq(RemoteObject *obj, gdouble preamp, GArray *bands, GError **error)
960 { 957 {
961 gdouble element; 958 gdouble element;
962 int i; 959 int i;
963 960
964 equalizer_set_preamp((gfloat)preamp); 961 equalizer_set_preamp((gfloat)preamp);
965 962
966 for (i = 0; i < AUD_EQUALIZER_NBANDS; i++) { 963 for (i = 0; i < AUD_EQUALIZER_NBANDS; i++) {
967 element = g_array_index(bands, gdouble, i); 964 element = g_array_index(bands, gdouble, i);
968 equalizer_set_band(i, (gfloat)element); 965 equalizer_set_band(i, (gfloat)element);