On Sun, 2005-07-31 at 05:48 -0400, Charles Schmidt wrote:
> Hi all,
>
> The attached patches are those I've developed to get browsing of iTunes
> music shares working in Rhythmbox.
Cool!
> shell/rb-shell.c/h:
> * In rb_shell_construct, there is now a check for the validity of the
> sources returned from the known_sources function array. This is the
> simplest place to insert a function like rb_daap_sources_init() which
> sets up monitoring for daap sources to add to the source list later.
Ah...hm. Maybe we should have a more generic "Plugin" concept, and a
plugin can create sources. Does that make sense to you?
> Since this function won't actually create an RBSource, it returns NULL
> and rb_shell_construct catches that.
> * There is a new function array known_source_shutdowns[] to compliment
> the known_sources function array. Its purpose is to call functions to
> shutdown sources, like rb_daap_sources_shutdown() which stops monitoring
> for daap sources.
I think this would probably go in the plugin API too.
> The array is iterated in rb_shell_finalize().
> * rb_shell_append_source is no longer static, so that other parts of the
> RB code can add sources to the list (for example, a timeout function
> monitoring daap servers).
>
> * rb_shell_append_source now takes a RBSource *parent argument, which is
> NULL in the case of adding a toplevel source. This is so sources can
> have children (playlists within a daap server/ipod).
Makes sense.
> * rb_shell_select_internal now fires off rb_source_deactivate and
> rb_source_activate to the proper sources. This is so a source can know
> when it is activated (daap source told to connect to the server & fetch
> data)
Makes sense too.
> * Sources can now be disconnected. There changes to provide a UI hook
> for disconnecting sources.
Hm...disconnecting is different from removing?
> Changes in daap.diff
I'll take a look at this next; let's try to get the core changes in this
week first.
Looking through the core diff:
> + { "SourceDisconnect", GTK_STOCK_DISCONNECT, N_("_Disconnect"),
> NULL,
> + N_("Disconnect from selected source"),
> + G_CALLBACK (rb_shell_cmd_source_disconnect) },
Can you explain what this is for? Why do you need to disconnect from
shares?
> + rb_source_activate(shell->priv->selected_source);
Don't forget the space before parens :)
> + SourcePath *sp = g_new0(SourcePath,1);
Could probably just stack allocate this; not a big deal though.
Attachment:
signature.asc
Description: This is a digitally signed message part