Mercurial > audlegacy
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); |