Re: [Rhythmbox-devel] rb applet
- From: Colin Walters <walters verbum org>
- To: rhythmbox-devel gnome org
- Subject: Re: [Rhythmbox-devel] rb applet
- Date: Wed, 10 Sep 2003 22:10:24 -0400
On Wed, 2003-09-10 at 20:07, William Jon McCann wrote:
> Hi,
>
> I have made an attempt at creating a panel applet for rhythmbox. It
> seems to work fairly well considering this is a first try.
Cool! Thanks for working on this. I haven't been able to actually get
it to run, mainly because I can't figure out how to run applets built in
a different prefix than my main GNOME installation.
> * There doesn't seem to be an easy way to determine if RB is paused.
> From the IDL:
> long getPlayingTime (); /* returns -1 if not playing */
>
> But when a song is paused the playing time just stays the same, and is
> positive.
>
> This makes it hard to update the play/pause button state.
Right...I think what you really want is for the applet buttons to match
the rb buttons exactly. So that would probably mean hooking a signal
into rb-shell-player.c:rb_shell_player_sync_buttons. You could have it
pass a structure back like
struct RBPlayButtonState
{
gboolean prev_enabled;
enum {
RB_PLAY_BUTTON_STATE_PLAY;
RB_PLAY_BUTTON_STATE_PAUSED;
RB_PLAY_BUTTON_STATE_STOP;
} state;
gboolean next_enabled;
}
Or maybe alternatively you could pass this as three parameters instead
of using a structure. Anyways after doing that, then add a handler for
this signal in rb-shell.c, which will then emit it via Bonobo. Or
something like that.
> * When the applet is added to the panel, RB will restart after it is exited.
Hm, I think you might be able to ask bonobo-activation whether rb is
running before calling a method on it.
> Please let me know what you think. This is my first applet so be kind ;).
In general it looks fairly good. The only issues I really have are that
it doesn't compile with -Wall -Werror, and the code is fairly
procedural, but in rb we use a highly GObject-oriented style. You don't
have to do this right away, but using GObject makes things a lot more
understandable, even if it is a little bit of a pain to make new
objects.
Oh and also...it would be nice if you could add an arch-tag: thing to
the source files. You can see elsewhere in rb how I chose them; the
main idea is that they should be descriptive and unique. I can do it if
you would prefer that though.
So anyways, I'd definitely be happy if you committed this to CVS, after
fixing the -Wall -Werror issue.
Thanks again!
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]