From sjoeboo at sjoeboo.com Wed Jun 14 10:50:15 2006 From: sjoeboo at sjoeboo.com (sjoeboo) Date: Wed, 14 Jun 2006 7:50:15 -0700 Subject: [Rhythmbox-devel] totem and goom information... Message-ID: <5135b2d86e5568cedc7e8138809a3b9f@localhost> Good "morning" everyone, So, my (and what should be everyones) favorite music player for gnome, rhythmbox, has been on a steady march of advancement for the past few months, with a whole slew of new features comming about. One thing I though of recently is visualizations, and how ncie it would be to have at least one, possibly as a plugin. I know totem uses GOOM to do this, and was wondering what I might have to do in terms of gstreamer etc to have rhythmbox use it as well. I was looking around on the Totem site for a mailing list etc, but couldn't find anything. Does anyone know where I might find more info for something like this? Thanks, and keep up the great work. -- Matthew Nicholson sjoeboo at sjoeboo.com sjoeboo.com From alexl at users.sourceforge.net Wed Jun 14 15:28:51 2006 From: alexl at users.sourceforge.net (Alex Lancaster) Date: Wed, 14 Jun 2006 12:28:51 -0700 Subject: [Rhythmbox-devel] totem and goom information... In-Reply-To: <5135b2d86e5568cedc7e8138809a3b9f@localhost> (sjoeboo@sjoeboo.com's message of "Wed, 14 Jun 2006 7:50:15 -0700") References: <5135b2d86e5568cedc7e8138809a3b9f@localhost> Message-ID: >>>>> "s" == sjoeboo writes: s> Good "morning" everyone, s> So, my (and what should be everyones) favorite music player for s> gnome, rhythmbox, has been on a steady march of advancement for the s> past few months, with a whole slew of new features comming s> about. One thing I though of recently is visualizations, and how s> ncie it would be to have at least one, possibly as a plugin. I s> know totem uses GOOM to do this, and was wondering what I might s> have to do in terms of gstreamer etc to have rhythmbox use it as s> well. I was looking around on the Totem site for a mailing list s> etc, but couldn't find anything. Does anyone know where I might s> find more info for something like this? It's been an open enhancement request for about 4 years (since 2002!) ;-) http://bugzilla.gnome.org/76519 It was moved to the plugin component recently when plugins were added. It could/should be done via gstreamer's libvisual plugin I believe. Just needs somebody to work on it! Alex From adam_zimmerman at sfu.ca Wed Jun 14 17:40:13 2006 From: adam_zimmerman at sfu.ca (Adam Zimmerman) Date: Wed, 14 Jun 2006 14:40:13 -0700 Subject: [Rhythmbox-devel] Magnatune catalog/purchasing plugin Message-ID: <1150321213.15485.22.camel@midnight> Hi everyone, After reading this[1] entry in the blog of Magnatune's founder, I figured I'd try to write a plugin for rhythmbox that did the same thing as an exercise. So, after a while, I realized that I have basically no idea how rhythmbox works, and the plugins I'm looking at for help (mostly generic-player, since it adds a source) are written in C, which I don't know. So I've got a couple of questions about python plugins/rhythmbox in general. I'd appreciate any help anyone could give me. - How do I add songs to my source? generic-player seems to get its own rhythmdb instance or something, and then call db.add_uri on the song (directory in that case). I tried this in the python console, and succeeded in adding a song to the library, so it seems right, just that I need a separate db (or do I?). - Is there a way to associate other data with an entry (such as the album sku)? add_uri only takes the uri of the file as an argument. - Is there a way to manually set the metadata for a track, so rhythmbox doesn't have to hit every mp3 file on magnatune? And some other questions related to purchasing (I'm going to try to get playback working first, so these are lower priority): - I'm not quite sure how to allow the user to set options (such as email address, credit card info, etc.). Ideally I'd like to give the user the option of entering cc info every time (default) or saving it. - How do I add a context-menu action to an entry ("Buy this album")? - Can I use track-transfer to transfer a bought file from its download location into the library? Or do I have to use gnomevfs.xfer_uri? That's all I can think of at the moment. Thanks in advance for any help! -Adam [1] http://blogs.magnatune.com/buckman/2006/06/embedded_purcha.html -- Adam Zimmerman CREATIVITY - http://mirrors.creativecommons.org/movingimages/Building_on_the_Past.mpg ALWAYS - http://www.musiccreators.ca/ BUILDS - http://www.ubuntu.com/ ON THE PAST - http://www.theopencd.org/ -- "...very few phenomena can pull someone out of Deep Hack Mode, with two noted exceptions: being struck by lightning, or worse, your *computer* being struck by lightning." (By Matt Welsh) -------------- next part -------------- A non-text attachment was scrubbed... Name: magnatune.py Type: text/x-python Size: 2761 bytes Desc: not available Url : http://mail.gnome.org/pipermail/rhythmbox-devel/attachments/20060614/16adf130/attachment.py From jonathan at kaolin.wh9.net Wed Jun 14 23:20:27 2006 From: jonathan at kaolin.wh9.net (Jonathan Matthew) Date: Thu, 15 Jun 2006 13:20:27 +1000 Subject: [Rhythmbox-devel] Bug in system tray In-Reply-To: <448C4A0E.9090706@gmail.com> References: <448C4A0E.9090706@gmail.com> Message-ID: <20060615032027.GA18230@kaolin.wh9.net> On Sun, Jun 11, 2006 at 11:51:26AM -0500, dashnak wyvernspur wrote: > There seems to be a bug in rhythmbox 0.9.4.1 relating to the tray icon. > I remember that in older versions, if you closed rhythmbox, it would > iconify to the system tray. This is no longer the case; if you close it, > it is gone. This is a terrible annoyance, and is very inconvenient too. This is not a bug, it is a deliberate change in behaviour. You can get the behaviour you want by clicking on the system tray icon. From jonathan at kaolin.wh9.net Wed Jun 14 23:30:00 2006 From: jonathan at kaolin.wh9.net (Jonathan Matthew) Date: Thu, 15 Jun 2006 13:30:00 +1000 Subject: [Rhythmbox-devel] totem and goom information... In-Reply-To: <5135b2d86e5568cedc7e8138809a3b9f@localhost> References: <5135b2d86e5568cedc7e8138809a3b9f@localhost> Message-ID: <20060615033000.GB18230@kaolin.wh9.net> On Wed, Jun 14, 2006 at 07:50:15AM -0700, sjoeboo wrote: > > Good "morning" everyone, > > So, my (and what should be everyones) favorite music player for gnome, > rhythmbox, has been on a steady march of advancement for the past few > months, with a whole slew of new features comming about. One thing I > though of recently is visualizations, and how ncie it would be to have > at least one, possibly as a plugin. I know totem uses GOOM to do > this, and was wondering what I might have to do in terms of gstreamer > etc to have rhythmbox use it as well. I was looking around on the > Totem site for a mailing list etc, but couldn't find anything. Does > anyone know where I might find more info for something like this? Totem, when using the gstreamer backend, creates a gstreamer element (goom, one of the libvisual elements, etc.) and sets it as the vis-plugin property on the playbin instance, and sets up a video sink outputting to its display window. I'm working on a plugin that does this. It basically works, but toggling visualization while playing doesn't work very well, and causes some weird UI glitches. I think I'm just getting some GDK bits wrong. When I get it working properly, I'll make patches available (or just check it in..). From jonathan at kaolin.wh9.net Thu Jun 15 00:13:17 2006 From: jonathan at kaolin.wh9.net (Jonathan Matthew) Date: Thu, 15 Jun 2006 14:13:17 +1000 Subject: [Rhythmbox-devel] Magnatune catalog/purchasing plugin In-Reply-To: <1150321213.15485.22.camel@midnight> References: <1150321213.15485.22.camel@midnight> Message-ID: <20060615041317.GC18230@kaolin.wh9.net> On Wed, Jun 14, 2006 at 02:40:13PM -0700, Adam Zimmerman wrote: > Hi everyone, > > After reading this[1] entry in the blog of Magnatune's founder, I > figured I'd try to write a plugin for rhythmbox that did the same thing > as an exercise. So, after a while, I realized that I have basically no > idea how rhythmbox works, and the plugins I'm looking at for help > (mostly generic-player, since it adds a source) are written in C, which > I don't know. I think the DAAP and iPod sources would be better to work from for what you're doing, since they directly create their own rhythmdb entries rather than importing from a filesystem. > So I've got a couple of questions about python plugins/rhythmbox in > general. I'd appreciate any help anyone could give me. > > - How do I add songs to my source? generic-player seems to get its own > rhythmdb instance or something, and then call db.add_uri on the song > (directory in that case). I tried this in the python console, and > succeeded in adding a song to the library, so it seems right, just that > I need a separate db (or do I?). You don't need a separate db - there can only be one instance of the database at the moment. What everything does at the moment is retrieve a reference to the db object from the shell object. It looks like you're already doing this correctly. > > - Is there a way to associate other data with an entry (such as the > album sku)? add_uri only takes the uri of the file as an argument. I don't think we have a way to do that from python. In C, you specify an extra amount of space to allocate with each entry of your given type, then use rhythmdb_entry_get_type_data() to get a pointer to it. > - Is there a way to manually set the metadata for a track, so rhythmbox > doesn't have to hit every mp3 file on magnatune? Basically, look at how the ipod source works (add_ipod_song_to_db() in rb-ipod-source.c). It registers an entry type, then for each entry in the ipod's database, it creates an entry (rhythmdb_entry_new), sets various properties (rhythmdb_entry_set), then commits the changes (rhythmdb_commit). You may have some problems trying to do this in python, though, since I don't think anyone has tried it before. I'll have a look at this and the entry type data thing later on and post more information. I don't think we'll be making any changes until we release 0.9.5, which should be fairly soon. > And some other questions related to purchasing (I'm going to try to get > playback working first, so these are lower priority): > > - I'm not quite sure how to allow the user to set options (such as email > address, credit card info, etc.). Ideally I'd like to give the user the > option of entering cc info every time (default) or saving it. If your plugin provides an implementation of the 'create_configure_dialog' method, rhythmbox will display the resulting dialog when you hit the 'configure' button on the plugin dialog. You can (optionally) store the information in gconf, under /apps/rhythmbox/plugins//. Another option would be to override the 'impl_activate' method on the source object, so the first time the user selects your source, you can pop up a window asking for the information you need. > - How do I add a context-menu action to an entry ("Buy this album")? The entry view for your source will emit a show-popup signal when the user right clicks (or hits the menu key, or whatever). Your source can attach a handler to that and show its popup. I don't know much about doing this in python. > - Can I use track-transfer to transfer a bought file from its download > location into the library? Or do I have to use gnomevfs.xfer_uri? I think either would work, unless you needed to present authentication information or cookies or something, in which case you'd probably need to use gnomevfs. > That's all I can think of at the moment. Thanks in advance for any help! Hopefully I've given you some helpful information here. Good luck! From adam_zimmerman at sfu.ca Thu Jun 15 02:26:06 2006 From: adam_zimmerman at sfu.ca (Adam Zimmerman) Date: Wed, 14 Jun 2006 23:26:06 -0700 Subject: [Rhythmbox-devel] Magnatune catalog/purchasing plugin In-Reply-To: <20060615041317.GC18230@kaolin.wh9.net> References: <1150321213.15485.22.camel@midnight> <20060615041317.GC18230@kaolin.wh9.net> Message-ID: <1150352766.4396.10.camel@midnight> Brilliant, thank you! Looking at the ipod source definitely helped me better understand what I need to do. On Thu, 2006-15-06 at 14:13 +1000, Jonathan Matthew wrote: > On Wed, Jun 14, 2006 at 02:40:13PM -0700, Adam Zimmerman wrote: > > > > - How do I add songs to my source? generic-player seems to get its own > > rhythmdb instance or something, and then call db.add_uri on the song > > (directory in that case). I tried this in the python console, and > > succeeded in adding a song to the library, so it seems right, just that > > I need a separate db (or do I?). > > You don't need a separate db - there can only be one instance of the > database at the moment. What everything does at the moment is retrieve > a reference to the db object from the shell object. It looks like > you're already doing this correctly. > OK, good to know. So does rhythmbox decide what source to show an entry in by its entry-type? > > > > - Is there a way to associate other data with an entry (such as the > > album sku)? add_uri only takes the uri of the file as an argument. > > I don't think we have a way to do that from python. In C, you specify > an extra amount of space to allocate with each entry of your given type, > then use rhythmdb_entry_get_type_data() to get a pointer to it. > This is only useful once I start doing purchasing, so I'll leave it for now. > > - Is there a way to manually set the metadata for a track, so rhythmbox > > doesn't have to hit every mp3 file on magnatune? > > Basically, look at how the ipod source works (add_ipod_song_to_db() in > rb-ipod-source.c). It registers an entry type, then for each entry in > the ipod's database, it creates an entry (rhythmdb_entry_new), sets > various properties (rhythmdb_entry_set), then commits the changes > (rhythmdb_commit). You may have some problems trying to do this in > python, though, since I don't think anyone has tried it before. > > I'll have a look at this and the entry type data thing later on and post > more information. I don't think we'll be making any changes until we > release 0.9.5, which should be fairly soon. > OK, this is the part I still need some help on. From what you're saying, I gather that my source needs to create its own entry type, right? Right now I'm doing this: def activate(self, shell): db = shell.get_property("db") model = db.query_model_new_empty() entry_type = rhythmdb.rhythmdb_entry_register_type("") self.source = gobject.new (MagnatuneSource, shell=shell, name=_("Magnatune"), query_model=model) shell.register_entry_type_for_source(self.source, entry_type) shell.append_source(self.source, None) Do I also need to do something when creating self.source? And then in the endElement method of the xml handler, I have: def endElement(self, name): if name == "Track": print "Adding: %s - %s" % (self._track['artist'], self._track['trackname']) # add the track to the source entry = self._db.entry_new(entry_type, self._track['url']) # how do we get the entry type for the source? self._db.entry_set_uninserted(entry, rhythmdb.PROP_ARTIST, self._track['artist']) self._db.entry_set_uninserted(entry, rhythmdb.PROP_ALBUM, self._track['albumname']) self._db.entry_set_uninserted(entry, rhythmdb.PROP_TITLE, self._track['trackname']) # etc., etc. self._db.commit() self._track = {} elif name == "AllSongs": pass # end of the file else: self._track[name] = self._text The problem is, I'm not sure how to get the entry_type argument for the call to entry_new. I've tried various things, and it keeps saying: TypeError: type should be a RhythmDBEntryType_ Thanks in advance. -- Adam Zimmerman CREATIVITY - http://mirrors.creativecommons.org/movingimages/Building_on_the_Past.mpg ALWAYS - http://www.musiccreators.ca/ BUILDS - http://www.ubuntu.com/ ON THE PAST - http://www.theopencd.org/ -- "People everywhere enjoy believing things that they know are not true. It spares them the ordeal of thinking for themselves and taking responsibility for what they know." [Brook Atkinson, "Once Around the Sun"] From jonathan at kaolin.wh9.net Thu Jun 15 06:41:11 2006 From: jonathan at kaolin.wh9.net (Jonathan Matthew) Date: Thu, 15 Jun 2006 20:41:11 +1000 Subject: [Rhythmbox-devel] Magnatune catalog/purchasing plugin In-Reply-To: <1150352766.4396.10.camel@midnight> References: <1150321213.15485.22.camel@midnight> <20060615041317.GC18230@kaolin.wh9.net> <1150352766.4396.10.camel@midnight> Message-ID: <20060615104111.GA19789@kaolin.wh9.net> On Wed, Jun 14, 2006 at 11:26:06PM -0700, Adam Zimmerman wrote: > Brilliant, thank you! Looking at the ipod source definitely helped me > better understand what I need to do. > > On Thu, 2006-15-06 at 14:13 +1000, Jonathan Matthew wrote: > > On Wed, Jun 14, 2006 at 02:40:13PM -0700, Adam Zimmerman wrote: > > > > > > - How do I add songs to my source? generic-player seems to get its own > > > rhythmdb instance or something, and then call db.add_uri on the song > > > (directory in that case). I tried this in the python console, and > > > succeeded in adding a song to the library, so it seems right, just that > > > I need a separate db (or do I?). > > > > You don't need a separate db - there can only be one instance of the > > database at the moment. What everything does at the moment is retrieve > > a reference to the db object from the shell object. It looks like > > you're already doing this correctly. > > > > OK, good to know. So does rhythmbox decide what source to show an entry > in by its entry-type? Sources display entries using an RBEntryView instance (or rb.EntryView in python). The RBEntryView is a tree view backed by a RhythmDBQueryModel, which is a GtkTreeModel that contains a set of entries matching particular criteria. So, an entry is shown in any source for which it matches the query. > > > - Is there a way to manually set the metadata for a track, so rhythmbox > > > doesn't have to hit every mp3 file on magnatune? > > > > Basically, look at how the ipod source works (add_ipod_song_to_db() in > > rb-ipod-source.c). It registers an entry type, then for each entry in > > the ipod's database, it creates an entry (rhythmdb_entry_new), sets > > various properties (rhythmdb_entry_set), then commits the changes > > (rhythmdb_commit). You may have some problems trying to do this in > > python, though, since I don't think anyone has tried it before. > > > > I'll have a look at this and the entry type data thing later on and post > > more information. I don't think we'll be making any changes until we > > release 0.9.5, which should be fairly soon. > > > > OK, this is the part I still need some help on. From what you're saying, > I gather that my source needs to create its own entry type, right? Right > now I'm doing this: > > def activate(self, shell): > db = shell.get_property("db") > model = db.query_model_new_empty() > entry_type = rhythmdb.rhythmdb_entry_register_type("") It's not actually important (yet?) but it's a good idea to specify a name for your entry type. You also need to keep hold of the entry type, so that should probably be 'self.entry_type = ...'. > self.source = gobject.new (MagnatuneSource, shell=shell, > name=_("Magnatune"), query_model=model) > shell.register_entry_type_for_source(self.source, entry_type) > shell.append_source(self.source, None) > > Do I also need to do something when creating self.source? You should be creating a query model like this: query = db.query_parse(rhythmdb.QUERY_PROP_EQUALS, rhythmdb.PROP_TYPE, self.entry_type) model = db.query_model_new(query) except query_parse doesn't seem to be available in python (codegen says vararg functions are not supported), so .. ignore this part for now. Instead, what you can do is model.add_entry(entry, -1) for each entry after the db.commit() call, which will manually insert each entry at the end of the model. We'll need to make query_parse available in python so you can implement searching or browsing, sooner or later. > And then in the endElement method of the xml handler, I have: > > def endElement(self, name): > if name == "Track": > print "Adding: %s - %s" % (self._track['artist'], > self._track['trackname']) > # add the track to the source > entry = self._db.entry_new(entry_type, self._track['url']) # how do we > get the entry type for the source? > > self._db.entry_set_uninserted(entry, rhythmdb.PROP_ARTIST, > self._track['artist']) > self._db.entry_set_uninserted(entry, rhythmdb.PROP_ALBUM, > self._track['albumname']) > self._db.entry_set_uninserted(entry, rhythmdb.PROP_TITLE, > self._track['trackname']) > # etc., etc. > > self._db.commit() > self._track = {} > elif name == "AllSongs": > pass # end of the file > else: > self._track[name] = self._text > > The problem is, I'm not sure how to get the entry_type argument for the > call to entry_new. I've tried various things, and it keeps saying: > TypeError: type should be a RhythmDBEntryType_ This should just be self.entry_type, I think. Otherwise, it looks like you're on the right track. From peter.grundstrom at gmail.com Thu Jun 15 07:35:08 2006 From: peter.grundstrom at gmail.com (Peter =?ISO-8859-1?Q?Grundstr=F6m?=) Date: Thu, 15 Jun 2006 13:35:08 +0200 Subject: [Rhythmbox-devel] MTP support to rhythmbox Message-ID: <1150371308.6819.1.camel@localhost.localdomain> (it seams like my first attempt to send this to the mailing-list was unsuccessful, hopefully it'll go better this time.) Hello all, I thought I'd share with you the result of my hacking the last days. The attached patch adds support for handling MTP (Microsoft Transfer Protocol) to rhythmbox. I'm not the one who talked about MTP-support a couple of moth ago, that was Steve Fox, but I've talked to him and he hadn't had the time to work on it, but I have :). But since this is my first contribution to rhythmbox, or anything for that part, I probably should introduce myself. My name is Peter Grundstr?m, petgru/pete on irc, I'm 18 years old and I live in Sweden. I've been a user of opensource (linux/gnome/rhythmbox you name it) for quite some time now. The last year or so I've started to develop some useful programming skills. This is my first, but hopefully not my last, "major" contribution to any opensource project. So, back to the thing you probably are more interested in :) The patch adds basic mtp-device handling to rhythmbox. Setup the device, List the songs, Transfer songs and delete songs. It's built in the same way as the ipod support, one mtp-plugin and a mtp-source. It's still not perfect in any way, but it works. What it doesn't do / TODO: * You cant play the songs on the device. (the device never gets mounted, you only access it through the library libmtp.) * you have to run rhythmbox as root, since the libmtp requires root-privileges to access the device through libusb. This should probably be fixed with something like a udev-rule (in libmtp i presume). * the device has to be attached when you start rhythmbox, and the only way to detach it is to close rhythmbox. * I was working with that last thing, but I couldn't get the popup to work, it only says "Couldn't get menu widget for /MTPSourcePopup". Someone who is more experienced with rhythmbox maybe can figure out why. * It is a little delay when you close rythmbox which makes rhythmbox look like it hanged, and the "rhythmbox does not respond" dialog appears. No idea how to fix that. * test it. * find and fix the bugs (I'm subscribed to the mailing-list, so no need to reply extra to me) -------------- next part -------------- A non-text attachment was scrubbed... Name: mtp-device-0.1.patch Type: text/x-patch Size: 56945 bytes Desc: not available Url : http://mail.gnome.org/archives/rhythmbox-devel/attachments/20060615/eb363fce/attachment-0001.bin From adam_zimmerman at sfu.ca Thu Jun 15 12:14:41 2006 From: adam_zimmerman at sfu.ca (Adam Zimmerman) Date: Thu, 15 Jun 2006 09:14:41 -0700 Subject: [Rhythmbox-devel] Magnatune catalog/purchasing plugin In-Reply-To: <20060615104111.GA19789@kaolin.wh9.net> References: <1150321213.15485.22.camel@midnight> <20060615041317.GC18230@kaolin.wh9.net> <1150352766.4396.10.camel@midnight> <20060615104111.GA19789@kaolin.wh9.net> Message-ID: <1150388081.16258.22.camel@midnight> OK, I'm almost there! There are still a couple issues though. On Thu, 2006-15-06 at 20:41 +1000, Jonathan Matthew wrote: > Sources display entries using an RBEntryView instance (or rb.EntryView > in python). The RBEntryView is a tree view backed by a > RhythmDBQueryModel, which is a GtkTreeModel that contains a set of > entries matching particular criteria. So, an entry is shown in any > source for which it matches the query. > I've made all the changes you suggested, and my source now shows up in the list. But when I click on it, I just see a blank grey box. Do I need to create my own EntryView? I can't see where the ipod source does it, but that could just be my weak (i.e., nonexistent) C skillz :P Also, duplicate URIs cause rhythmdb to give a warning. This happens a few times in song_info.xml, but it also happens for every track after the plugin is unloaded and then loaded again. Finally, loading the plugin blocks the UI for about 2 minutes while the tracks are being parsed. I tried (as you can see from the code) putting the call to xml.sax.parse into a Thread object, but when I tried that the method didn't run at all (the source showed up, but the "Adding artist - title" string never got printed). Is there something else I can do so my code doesn't block the UI? Thanks for all the help so far. -- Adam Zimmerman CREATIVITY - http://mirrors.creativecommons.org/movingimages/Building_on_the_Past.mpg ALWAYS - http://www.musiccreators.ca/ BUILDS - http://www.ubuntu.com/ ON THE PAST - http://www.theopencd.org/ -- If I have trouble installing Linux, something is wrong. Very wrong. -- Linus Torvalds -------------- next part -------------- A non-text attachment was scrubbed... Name: magnatune.py Type: text/x-python Size: 5021 bytes Desc: not available Url : http://mail.gnome.org/archives/rhythmbox-devel/attachments/20060615/98d0bd64/attachment.py -------------- next part -------------- [RB Plugin] Loader=python Module=magnatune IAge=1 Name=Magnatune support Description=Adds support to Rhythmbox for playing the Magnatune catalog Authors=Adam Zimmerman Copyright=(C) 2006 Adam Zimmerman Website=http://www.rhythmbox.org From steve at secomputing.co.uk Thu Jun 15 18:24:44 2006 From: steve at secomputing.co.uk (Stephen English) Date: Thu, 15 Jun 2006 23:24:44 +0100 Subject: [Rhythmbox-devel] Magnatune catalog/purchasing plugin In-Reply-To: <1150388081.16258.22.camel@midnight> References: <1150321213.15485.22.camel@midnight> <20060615041317.GC18230@kaolin.wh9.net> <1150352766.4396.10.camel@midnight> <20060615104111.GA19789@kaolin.wh9.net> <1150388081.16258.22.camel@midnight> Message-ID: <94195f780606151524qe1e7ebfr25a2279021c937b0@mail.gmail.com> > Finally, loading the plugin blocks the UI for about 2 minutes while the > tracks are being parsed. I tried (as you can see from the code) putting > the call to xml.sax.parse into a Thread object, but when I tried that > the method didn't run at all (the source showed up, but the "Adding > artist - title" string never got printed). Is there something else I can > do so my code doesn't block the UI? Python threads can only run whilst the python interpreter is running, and as far as I can see, the python interpreter runs in the main rhythmbox thread - so this scuppers running a python thread in the background of the main UI. A shame - I'm no C/GTK expert, how hard would it be to move the python interpreter into another thread? Stephen English -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.gnome.org/archives/rhythmbox-devel/attachments/20060615/4e74ffc8/attachment.htm From jonathan at kaolin.wh9.net Thu Jun 15 19:53:12 2006 From: jonathan at kaolin.wh9.net (Jonathan Matthew) Date: Fri, 16 Jun 2006 09:53:12 +1000 Subject: [Rhythmbox-devel] MTP support to rhythmbox In-Reply-To: <1150371308.6819.1.camel@localhost.localdomain> References: <1150371308.6819.1.camel@localhost.localdomain> Message-ID: <20060615235312.GA21776@kaolin.wh9.net> On Thu, Jun 15, 2006 at 01:35:08PM +0200, Peter Grundstr?m wrote: I haven't looked at the code in detail yet, but I've got a few comments on your TODO list. > What it doesn't do / TODO: > > * You cant play the songs on the device. (the device never gets mounted, > you only access it through the library libmtp.) There are two ways to solve this: write GStreamer source and sink elements, or write a gnome-vfs module. You wouldn't strictly need a GStreamer sink element, but it'd let you use GStreamer to transcode files for the device. I think GStreamer elements would be easier to write. From briefly looking at the libmtp API, I think this would be possible, but it'd be a bit hackish. > * you have to run rhythmbox as root, since the libmtp requires > root-privileges to access the device through libusb. This should > probably be fixed with something like a udev-rule (in libmtp i presume). > > * the device has to be attached when you start rhythmbox, and the only > way to detach it is to close rhythmbox. We should have RBRemovableMediaManager emit a signal when it scans devices, so plugins can perform their own scanning. This would at least make the device show up when you use the 'Scan Removable Media' menu item. Maybe there's a way to get HAL to notify rhythmbox when this sort of device is attached or detached. > * I was working with that last thing, but I couldn't get the popup to > work, it only says "Couldn't get menu widget for /MTPSourcePopup". > Someone who is more experienced with rhythmbox maybe can figure out why. Are you sure it's loading the UI file correctly? The code looks OK. > * It is a little delay when you close rythmbox which makes rhythmbox > look like it hanged, and the "rhythmbox does not respond" dialog > appears. No idea how to fix that. Do you know where this delay is being introduced? Adding some rb_debug output and running 'rhythmbox -D mtp' would help track it down. Thanks for your work on this so far. Hopefully we can get this finished up and integrated into the next release after we get 0.9.5 out. From jonathan at kaolin.wh9.net Thu Jun 15 20:27:55 2006 From: jonathan at kaolin.wh9.net (Jonathan Matthew) Date: Fri, 16 Jun 2006 10:27:55 +1000 Subject: [Rhythmbox-devel] Magnatune catalog/purchasing plugin In-Reply-To: <1150388081.16258.22.camel@midnight> References: <1150321213.15485.22.camel@midnight> <20060615041317.GC18230@kaolin.wh9.net> <1150352766.4396.10.camel@midnight> <20060615104111.GA19789@kaolin.wh9.net> <1150388081.16258.22.camel@midnight> Message-ID: <20060616002755.GA21946@kaolin.wh9.net> On Thu, Jun 15, 2006 at 09:14:41AM -0700, Adam Zimmerman wrote: > OK, I'm almost there! There are still a couple issues though. > > On Thu, 2006-15-06 at 20:41 +1000, Jonathan Matthew wrote: > > Sources display entries using an RBEntryView instance (or rb.EntryView > > in python). The RBEntryView is a tree view backed by a > > RhythmDBQueryModel, which is a GtkTreeModel that contains a set of > > entries matching particular criteria. So, an entry is shown in any > > source for which it matches the query. > > > > I've made all the changes you suggested, and my source now shows up in > the list. But when I click on it, I just see a blank grey box. Do I need > to create my own EntryView? I can't see where the ipod source does it, > but that could just be my weak (i.e., nonexistent) C skillz :P Yes, it seems that you do. The ipod source doesn't create one because its parent class, RBBrowserSource, does it. It looks like you can do this: self.entry_view = rb.EntryView(db, shell_player, "", False, False) which causes a gconf error but otherwise seems to work. I think we'll need to fix the python bindings a bit to get rid of the error. Then you'd add the columns you want to display: self.entry_view.append_column(rb.ENTRY_VIEW_COL_TITLE, False) self.entry_view.append_column(rb.ENTRY_VIEW_COL_ARTIST, False) self.entry_view.append_column(rb.ENTRY_VIEW_COL_ALBUM, False) self.entry_view.append_column(rb.ENTRY_VIEW_COL_GENRE, False) and attach the query model: self.entry_view.set_model(self.model) and add it to the source widget: self.pack_start(self.entry_view) I haven't really tested much of this, but it should work. > Also, duplicate URIs cause rhythmdb to give a warning. This happens a > few times in song_info.xml, but it also happens for every track after > the plugin is unloaded and then loaded again. When your plugin is unloaded, you should delete all db entries of your entry type: self._db.entry_delete_by_type(self.entry_type) or something. > Finally, loading the plugin blocks the UI for about 2 minutes while the > tracks are being parsed. I tried (as you can see from the code) putting > the call to xml.sax.parse into a Thread object, but when I tried that > the method didn't run at all (the source showed up, but the "Adding > artist - title" string never got printed). Is there something else I can > do so my code doesn't block the UI? We don't currently enable python threads. I'm not sure what's involved in enabling them. I'm also not sure what else you could do. Sorry. From doclivingston at gmail.com Fri Jun 16 07:22:06 2006 From: doclivingston at gmail.com (James "Doc" Livingston) Date: Fri, 16 Jun 2006 21:22:06 +1000 Subject: [Rhythmbox-devel] Magnatune catalog/purchasing plugin In-Reply-To: <1150388081.16258.22.camel@midnight> References: <1150321213.15485.22.camel@midnight> <20060615041317.GC18230@kaolin.wh9.net> <1150352766.4396.10.camel@midnight> <20060615104111.GA19789@kaolin.wh9.net> <1150388081.16258.22.camel@midnight> Message-ID: <1150456926.5185.41.camel@localhost.localdomain> On Thu, 2006-06-15 at 09:14 -0700, Adam Zimmerman wrote: > I've made all the changes you suggested, and my source now shows up in > the list. But when I click on it, I just see a blank grey box. Do I need > to create my own EntryView? I can't see where the ipod source does it, > but that could just be my weak (i.e., nonexistent) C skillz :P Does your source class derive directly from rb.Source? If you do that you will need to manually create the entry view, set it up and pack it into the source (which is a gtk.Box). The iPod source doesn't directly derive from that, instead it derives from rb.BrowserSource (well actually it's rb.RemovableMediaSource, but it makes no difference). That takes care of a lot of the standard entry view stuff, and gives you working browsers and search box for free. Basically what you need to do is derive from rb.BrowserSource instead of rb.Source. You don't need to worry about query models (it's handled automatically), just "entry_type=self.entry_type" to gobject.new instead. > Also, duplicate URIs cause rhythmdb to give a warning. This happens a > few times in song_info.xml, but it also happens for every track after > the plugin is unloaded and then loaded again. This is because the entries are still in the database, you need to get rid of them when you plugin is unloaded. The easiest way is to add the following to the plugin's "deactivate" function: db.entry_delete_by_type (self.entry_type) db.commit () Really there should be a function to delete the entry type which does this and cleans up the entry type properly (which currently gets leaked), but that's a post 0.9.5 change. > Finally, loading the plugin blocks the UI for about 2 minutes while the > tracks are being parsed. I tried (as you can see from the code) putting > the call to xml.sax.parse into a Thread object, but when I tried that > the method didn't run at all (the source showed up, but the "Adding > artist - title" string never got printed). Is there something else I can > do so my code doesn't block the UI? Currently we don't activate threading for the embedded python interpreter, which is why it doesn't work. This isn't a solid reason for not activating it, except it's non-trivial to ensure that we correctly take the global python lock when calling things and fixing any re-entrancy issues. If you (or anyone else) actually needs it, we can activate it. By doing a bit of thinking it's usually possible to find a good method that doesn't require threading. In this case it is asynchronous SAX parsing. I'm not sure exactly how to do it in python, but basically you create a parser, load the data in chunks with asynchronous gnome-vfs or urllib, and pass the data to the parser as you get it. So you never do anything that will block for a long time. Cheers, James "Doc" Livingston -- On two occasions I have been asked [by members of Parliament!], `Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question. --Charles Babbage From adam_zimmerman at sfu.ca Fri Jun 16 21:50:11 2006 From: adam_zimmerman at sfu.ca (Adam Zimmerman) Date: Fri, 16 Jun 2006 18:50:11 -0700 Subject: [Rhythmbox-devel] Magnatune catalog/purchasing plugin In-Reply-To: <1150456926.5185.41.camel@localhost.localdomain> References: <1150321213.15485.22.camel@midnight> <20060615041317.GC18230@kaolin.wh9.net> <1150352766.4396.10.camel@midnight> <20060615104111.GA19789@kaolin.wh9.net> <1150388081.16258.22.camel@midnight> <1150456926.5185.41.camel@localhost.localdomain> Message-ID: <1150509012.24700.3.camel@midnight> On Fri, 2006-16-06 at 21:22 +1000, James "Doc" Livingston wrote: > Basically what you need to do is derive from rb.BrowserSource instead of > rb.Source. You don't need to worry about query models (it's handled > automatically), just "entry_type=self.entry_type" to gobject.new > instead. OK, I did that, and now when I run rhythmbox, it says: Traceback (most recent call last): File "/home/adam/.gnome2/rhythmbox/plugins/magnatune.py", line 75, in activate self.source = gobject.new (MagnatuneSource, shell=shell, name=_("Magnatune"), entry_type=self.entry_type) TypeError: could not convert value for property `entry_type' from rhythmdb.EntryType to gpointer I'm pretty sure the lines leading up to that one haven't been changed: def activate(self, shell): self.db = shell.get_property("db") self.entry_type = rhythmdb.rhythmdb_entry_register_type("MagnatuneEntryType") self.source = gobject.new (MagnatuneSource, shell=shell, name=_("Magnatune"), entry_type=self.entry_type) -- Adam Zimmerman CREATIVITY - http://mirrors.creativecommons.org/movingimages/Building_on_the_Past.mpg ALWAYS - http://www.musiccreators.ca/ BUILDS - http://www.ubuntu.com/ ON THE PAST - http://www.theopencd.org/ -- "Humor is a drug which it's the fashion to abuse." -- William Gilbert From rdebeasi at nww.com Fri Jun 16 11:54:11 2006 From: rdebeasi at nww.com (Ryan DeBeasi) Date: Fri, 16 Jun 2006 11:54:11 -0400 Subject: [Rhythmbox-devel] Rhythmbox and the Cooperative Bug Isolation project Message-ID: <02D7D7B3D8DDA84AB54BB60168A4029B01778A5D@bosmxmp00.nww.com> Hi Rhythmbox folks, I'm writing a story for Network World magazine about Ben Liblit's Cooperative Bug Isolation project, and I'd like to get your your input on how it has affected Rhythmbox. As you probably know, Liblit has released a build of Rhythmbox that includes his bug detection software, which sends small amounts of program data to a server along with an indication of whether the program ran successfully or crashed. If you have some time, I'd love to get your input on how helpful it's been and what kinds of bugs it finds. If you'd like to talk about this, you can call me at (508) 490-6453 until 2pm EST today. If that's not convenient, please feel free to shoot me an E-mail. Thanks a lot for your time. I hope all is well. - Ryan DeBeasi -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.gnome.org/archives/rhythmbox-devel/attachments/20060616/8ad5a125/attachment.htm From peter.grundstrom at gmail.com Sat Jun 17 14:59:28 2006 From: peter.grundstrom at gmail.com (Peter =?ISO-8859-1?Q?Grundstr=F6m?=) Date: Sat, 17 Jun 2006 20:59:28 +0200 Subject: [Rhythmbox-devel] MTP support to rhythmbox In-Reply-To: <20060615235312.GA21776@kaolin.wh9.net> References: <1150371308.6819.1.camel@localhost.localdomain> <20060615235312.GA21776@kaolin.wh9.net> Message-ID: <1150570768.5707.5.camel@localhost.localdomain> Hi again, I've now a new version of the patch. It's attached to the following bug. http://bugzilla.gnome.org/show_bug.cgi?id=345006 . The big news is that you now can run it as a ordinary user (see comment in bug) and that it now uses hal to detect devices. On Fri, 2006-06-16 at 09:53 +1000, Jonathan Matthew wrote: > On Thu, Jun 15, 2006 at 01:35:08PM +0200, Peter Grundstr?m wrote: > > I haven't looked at the code in detail yet, but I've got a few comments > on your TODO list. > > > What it doesn't do / TODO: > > > > * You cant play the songs on the device. (the device never gets mounted, > > you only access it through the library libmtp.) > > There are two ways to solve this: write GStreamer source and sink > elements, or write a gnome-vfs module. You wouldn't strictly need a > GStreamer sink element, but it'd let you use GStreamer to transcode > files for the device. I think GStreamer elements would be easier to > write. From briefly looking at the libmtp API, I think this would be > possible, but it'd be a bit hackish. If anyone has any documentation or example code on how to do something like this. It would be very helpful. > > > * you have to run rhythmbox as root, since the libmtp requires > > root-privileges to access the device through libusb. This should > > probably be fixed with something like a udev-rule (in libmtp i presume). > > > > * the device has to be attached when you start rhythmbox, and the only > > way to detach it is to close rhythmbox. > > We should have RBRemovableMediaManager emit a signal when it scans > devices, so plugins can perform their own scanning. This would at least > make the device show up when you use the 'Scan Removable Media' menu > item. Maybe there's a way to get HAL to notify rhythmbox when this sort > of device is attached or detached. > Fixed now. > > * I was working with that last thing, but I couldn't get the popup to > > work, it only says "Couldn't get menu widget for /MTPSourcePopup". > > Someone who is more experienced with rhythmbox maybe can figure out why. > > Are you sure it's loading the UI file correctly? The code looks OK. > > > * It is a little delay when you close rythmbox which makes rhythmbox > > look like it hanged, and the "rhythmbox does not respond" dialog > > appears. No idea how to fix that. > > Do you know where this delay is being introduced? Adding some rb_debug > output and running 'rhythmbox -D mtp' would help track it down. > > Thanks for your work on this so far. Hopefully we can get this finished > up and integrated into the next release after we get 0.9.5 out. > > _______________________________________________ > rhythmbox-devel mailing list > rhythmbox-devel at gnome.org > http://mail.gnome.org/mailman/listinfo/rhythmbox-devel -- Peter Grundstr?m ________________________________________ \ | MAIL: pete at openfestis.org \ | GPG: C11ED3C4 > | WWW: http://www.openfestis.org / ________________________________________/ From doclivingston at gmail.com Sun Jun 18 02:43:53 2006 From: doclivingston at gmail.com (James "Doc" Livingston) Date: Sun, 18 Jun 2006 16:43:53 +1000 Subject: [Rhythmbox-devel] Rhythmbox 0.9.5 Message-ID: <1150613033.6027.23.camel@localhost.localdomain> G'day Everyone, On behalf of the Rhythmbox developers, I'm proud to announce the sixth release of the Rhythmbox 0.9 series, which includes a large number of fixes, improvements and new features. Notable new features include: - Improved plugin support, and several features converted to plugins - An album art viewing and download plugin - A song lyric viewing and download plugin - Ogg Vorbis tag editing [0] - Partial iPod write support [1] - Improved audio player and DAAP support - CD ripping and track transfer enabled by default - Updated documentation and many, many more improvements, bug fixes and new minor features. See below for more details. [0] requires a GStreamer plugin not yet in cvs, see bug 335635 [1] off by default, pass --enable-ipod-writing to enable. * What is Rhythmbox ? ===================== Rhythmbox is an integrated music management application, originally inspired by Apple's iTunes. It is free software, designed to work well under the GNOME Desktop, and based on the powerful GStreamer media framework. * What's changed in 0.9.5 ? =========================== * fix icon themability (Steve Fr?cinaux) * handle iPods that have been repartitioned (Christophe Fergeau: 325034) * allow ipod renaming, ejection, deletion and transfer (Christophe Fergeau) * make iradio handling work much better (Jonathan Matthew: 320336, 324402) * improve out-of-process metadata loader (Jonathan Matthew: 338062) * update documentation (Baptiste Mille-Mathias, ) * pluginise iPod and Generic players (Christophe Fergeau, Jonathan Matthew) * support saving playlists as M3U (Gavin Stewart: 316295) * remember browser visibility when changing sources (Alex Lancaster: 118862) * handle media unmounts better (Jonathan Matthew: 339023) * make entry types be a structure, and add support for extended data, and various method implementations (Christophe Fergeau, James Livingston) * album art view&download plugin (Alex Lancaster, James Livingston, Gareth Murphy, William Jon McCann, Martin Szulecki) * update the FSF's address (Gunnar Steinn Magnusson) * much improved Python bindings (James Livingston, Jonathan Matthew) * fix some translation issues (Nguy?n Th?i Ng?c Duy, James Livingston: 339380, 343081) * improve startup time (James Livingston, Jonathan Matthew) * fix audioscrobbler submission, and allow viewing of info (Jonathan Matthew: 325848) * improve DBus interface (Jonathan Matthew, Tim Moloney) * allow transcoding during track transfer (Alessandro Decina: 322268) * cd burning fixes and improvements (William Jon McCann) * podcast feed parsing and download fixes (James Livingston: 339728) * turn the playback backend into a full GObject interface (James Livingston: 338667) * add more API documentation (Jonathan Mattjew) * add vorbis tag editing (James Livingston: 339878) * fix various threading insanities (Jonathan Matthew) * display "child libraries" with multiple library locations (James Livingston: 100552) * improve drag-and-drop from browsers (Jonathan Matthew: 327540) * support Motorola ROKR phones (Joe Barnett) * make query model limits saner (Janes Livingston) * source cleanup and API improvement (James Livingston, Jonathan Matthew) * improve status feedback for DAAP (Jonathan Matthew: 322020 and 338978) * memory improvement and leak fixed (James Livingston, Jonathan Matthew) * kill Bonobo support, require DBus, support DBus 0.3.0 (Jonathan Matthew: 339720) * add lyric download and view plugin (Jonathan Matthew: 319320) * add "add to playlist" menu (James Livingston: 323364) * allow changing of audio cd metadata (James Livingston) * improve DAAP handling (William Jon McCann: 342643) * update and write new unit tests (James Livingston) * group sources (Jonathan Matthew) * add new "rhythmbox-client" program (Jonathan Matthew: 340863, 155763) * assorted build fixes (Brian Cameron, Paul Drain, Elijah Newren, Hendrik Richter, Ryan P Skadberg, G?tz Waschk, Pawel Worach, FreeBSD GNOME project, others) * HIG and UI improvements (Dennis Cranston, Baptiste Mille-Mathias) * many other bug fixed (Christophe Fergeau, Jaap A. Haitsma, James Livingston, Jonathan Matthew, Mikael Olenfalk, Roozbeh Pournader) Updated Translations -------------------- ca Jordi Mallach cs Miloslav Trmac de Hendrik Richter es Francisco Javier F. Serrador fi Ilkka Tuohela gl Ignacio Casal Quinteiro lt ?ygimantas Beru?ka nb ?ivind Hoel, Kjartan Maraas nl Vincent van Adrighem, Wouter Bolsterlee sv Fredrik Tuomas vi Clytie Siddall zh_CN Funda Wang * Where can I get it ? ====================== Source code: http://ftp.gnome.org/pub/GNOME/sources/rhythmbox/0.9/rhythmbox-0.9.5.tar.gz [MD5 sum: 3cbce0fd5ed948e13dabe7be7b9353e9] http://ftp.gnome.org/pub/GNOME/sources/rhythmbox/0.9/rhythmbox-0.9.5.tar.bz2 [MD5 sum: ff55e1db114321b7bdd6e21df1879367] Home Page: http://www.rhythmbox.org/ James "Doc" Livingston From doclivingston at gmail.com Mon Jun 19 00:33:16 2006 From: doclivingston at gmail.com (James "Doc" Livingston) Date: Mon, 19 Jun 2006 14:33:16 +1000 Subject: [Rhythmbox-devel] Magnatune catalog/purchasing plugin In-Reply-To: <1150509012.24700.3.camel@midnight> References: <1150321213.15485.22.camel@midnight> <20060615041317.GC18230@kaolin.wh9.net> <1150352766.4396.10.camel@midnight> <20060615104111.GA19789@kaolin.wh9.net> <1150388081.16258.22.camel@midnight> <1150456926.5185.41.camel@localhost.localdomain> <1150509012.24700.3.camel@midnight> Message-ID: <1150691596.5187.6.camel@localhost.localdomain> On Fri, 2006-06-16 at 18:50 -0700, Adam Zimmerman wrote: > Traceback (most recent call last): > File "/home/adam/.gnome2/rhythmbox/plugins/magnatune.py", line 75, in > activate self.source = gobject.new (MagnatuneSource, shell=shell, > name=_("Magnatune"), entry_type=self.entry_type) > TypeError: could not convert value for property `entry_type' from > rhythmdb.EntryType to gpointer After some discussion with PyGTK people, I've found out that python can't deal with G_TYPE_POINTER derived types properly, which included anything related gobject properties. I've just converted RhythmDBEntry and RhythmDBEntryType to be boxed types, which allows Python to use them. By changing "rhythmdb.rhythmdb_register_entry_type" to "rhythmdb.register_entry_type" in the last patch you posted, it seems to work now. Cheers, James "Doc" Livingston -- "Every time I look at my speedometer, I get lost!" -- Heisenberg's Automotive Lament From adam_zimmerman at sfu.ca Mon Jun 19 02:44:01 2006 From: adam_zimmerman at sfu.ca (Adam Zimmerman) Date: Sun, 18 Jun 2006 23:44:01 -0700 Subject: [Rhythmbox-devel] Magnatune catalog/purchasing plugin In-Reply-To: <1150691596.5187.6.camel@localhost.localdomain> References: <1150321213.15485.22.camel@midnight> <20060615041317.GC18230@kaolin.wh9.net> <1150352766.4396.10.camel@midnight> <20060615104111.GA19789@kaolin.wh9.net> <1150388081.16258.22.camel@midnight> <1150456926.5185.41.camel@localhost.localdomain> <1150509012.24700.3.camel@midnight> <1150691596.5187.6.camel@localhost.localdomain> Message-ID: <1150699441.7747.20.camel@midnight> On Mon, 2006-19-06 at 14:33 +1000, James "Doc" Livingston wrote: > I've just converted RhythmDBEntry and RhythmDBEntryType to be boxed > types, which allows Python to use them. By changing > "rhythmdb.rhythmdb_register_entry_type" to > "rhythmdb.register_entry_type" in the last patch you posted, it seems to > work now. Alright, now we're getting somewhere! The tracks now show up in the source, and they play :D ! But they have no metadata. The first self._db.entry_set_uninserted call (and presumably the others as well) throws an exception with the message "entry should be a RhythmDBEntry". However, entry is a RhythmDBEntry (checked with "print entry", which gives something to the effect of ), so I'm not sure what's going on there. The other thing that's going weird has to do with the gnomevfs.async code I'm writing, but it's quite possible I'm doing something wrong there. I get the following message a bunch of times: (rhythmbox:7409): libgnomevfs-WARNING **: Unknown job kind 9 (strangely, the UI still seems to block while loading the songs, although the activate method returns beforehand (or at least, the gnomevfs.async.open call returns)) and then rhythmbox segfaults: GLib-ERROR **: gmem.c:135: failed to allocate 524288 bytes aborting... Segmentation fault! Cannot display crash dialogue The only result I found on google for the libgnomevfs error didn't really help much. -- Adam Zimmerman CREATIVITY - http://mirrors.creativecommons.org/movingimages/Building_on_the_Past.mpg ALWAYS - http://www.musiccreators.ca/ BUILDS - http://www.ubuntu.com/ ON THE PAST - http://www.theopencd.org/ -- Most people will listen to your unreasonable demands, if you'll consider their unacceptable offer. -------------- next part -------------- A non-text attachment was scrubbed... Name: magnatune.py Type: text/x-python Size: 10402 bytes Desc: not available Url : http://mail.gnome.org/archives/rhythmbox-devel/attachments/20060618/49cc29a7/attachment.py From pclouds at gmail.com Mon Jun 19 03:23:48 2006 From: pclouds at gmail.com (=?UTF-8?Q?Nguy=E1=BB=85n_Th=C3=A1i_Ng=E1=BB=8Dc_Duy?=) Date: Mon, 19 Jun 2006 14:23:48 +0700 Subject: [Rhythmbox-devel] can't edit tags Message-ID: I can no longer edit tags with rhythmbox. It seems to refuse to modify any file with message "File corrupted during write". In terminal I got: (rhythmbox-metadata:19102): GStreamer-CRITICAL **: gst_pad_activate_pull: assertion `old == GST_ACTIVATE_NONE' failed I'm using gstreamer-0.10.8, gst-plugins-{good,bad,ugly}-0.10.3. Can I use gst-launch-0.10 to modify tags? Is there any simple command line interface to test with? -- Bi C? Lao From doclivingston at gmail.com Mon Jun 19 03:36:29 2006 From: doclivingston at gmail.com (James "Doc" Livingston) Date: Mon, 19 Jun 2006 17:36:29 +1000 Subject: [Rhythmbox-devel] can't edit tags In-Reply-To: References: Message-ID: <1150702589.5187.20.camel@localhost.localdomain> On Mon, 2006-06-19 at 14:23 +0700, Nguy?n Th?i Ng?c Duy wrote: > I can no longer edit tags with rhythmbox. It seems to refuse to modify > any file with message "File corrupted during write". In terminal I > got: > (rhythmbox-metadata:19102): GStreamer-CRITICAL **: > gst_pad_activate_pull: assertion `old == GST_ACTIVATE_NONE' failed > I'm using gstreamer-0.10.8, gst-plugins-{good,bad,ugly}-0.10.3. The best idea would be to run "GST_DEBUG=*:4 GST_DEBUG_NO_COLOR=1 rhythmbox >rb.log 2>&1", bzip the resuling "rb.log" and file a bug with it attached. > Can I use gst-launch-0.10 to modify tags? Is there any simple command > line interface to test with? Not really, gst-launch can't do things like set tags on a GstTagSetter interface. Cheers, James "Doc" Livingston -- "'The Internet' cannot be moved to the recycle bin. Do you wish to delete 'The Internet' now ?" -- Windows explorer From alexl at users.sourceforge.net Mon Jun 19 06:05:01 2006 From: alexl at users.sourceforge.net (Alex Lancaster) Date: Mon, 19 Jun 2006 03:05:01 -0700 Subject: [Rhythmbox-devel] can't edit tags In-Reply-To: <8gk67diht3.fsf@allele2.biol.berkeley.edu> (Alex Lancaster's message of "Mon, 19 Jun 2006 03:03:04 -0700") References: <8gk67diht3.fsf@allele2.biol.berkeley.edu> Message-ID: >>>>> "NTND" == Nguy?n Th?i Ng?c Duy writes: NTND> I can no longer edit tags with rhythmbox. It seems to refuse to NTND> modify any file with message "File corrupted during write". In NTND> terminal I got: (rhythmbox-metadata:19102): GStreamer-CRITICAL NTND> **: gst_pad_activate_pull: assertion `old == GST_ACTIVATE_NONE' NTND> failed I'm using gstreamer-0.10.8, NTND> gst-plugins-{good,bad,ugly}-0.10.3. Can I use gst-launch-0.10 NTND> to modify tags? Is there any simple command line interface to NTND> test with? -- Bi C? Lao Are you using CVS HEAD? There are some particular combinations of rhythmbox and gstreamer in which tagging won't work, see the discussion on: http://bugs.gnome.org/342330 With rhythmbox HEAD and HEAD of gstreamer-plugins-{base,good,ugly} it should work. It may work with rhythmbox HEAD of earlier plugin releases, but I know that 0.9.4.1 and certain version of gst-plugins-ugly won't work. The id3v2mux plugin (now in gst-plugins-base-0.10.8) works much better than the old id3mux plugin from gst-plugins-ugly. Alex From brent at heyes.co.uk Mon Jun 19 05:32:50 2006 From: brent at heyes.co.uk (Brent Heyes) Date: Mon, 19 Jun 2006 10:32:50 +0100 Subject: [Rhythmbox-devel] Rhythmbox Airtunes support Message-ID: <44966F42.6030807@heyes.co.uk> Hello there, Is there any visibility of either a gstreamer airtunes sink or even direct support for streaming to airtunes from Rhythmbox. Many thanks, -Brent From brent at heyes.co.uk Mon Jun 19 06:31:22 2006 From: brent at heyes.co.uk (Brent Heyes) Date: Mon, 19 Jun 2006 11:31:22 +0100 Subject: [Rhythmbox-devel] Rhythmbox Airtunes support Message-ID: <44967CFA.1080603@heyes.co.uk> Hello there, Is there any visibility of either a gstreamer airtunes sink or even direct support for streaming to airtunes from Rhythmbox. Many thanks, -Brent PS: I'm currently using the following method: gstreamer-properties ------------------------------------ Default Output Plugin: alsasink device=airtunes-stream ~/.asoundrc ---------------------- pcm.airtunes-stream { type file slave.pcm default file /tmp/airtunes-stream } ~/bin/airtunes-stream ------------------------------------- #!/bin/sh if [ ! -p /tmp/airtunes-stream ] then mkfifo /tmp/airtunes-stream fi while true do cat /tmp/airtunes-stream | JustePort.exe - 192.168.1.3 -20 sleep 1 done This method is a little buggy and also affects other applications using gstreamer such as totem. From doclivingston at gmail.com Mon Jun 19 06:50:33 2006 From: doclivingston at gmail.com (James "Doc" Livingston) Date: Mon, 19 Jun 2006 20:50:33 +1000 Subject: [Rhythmbox-devel] Magnatune catalog/purchasing plugin In-Reply-To: <1150699441.7747.20.camel@midnight> References: <1150321213.15485.22.camel@midnight> <20060615041317.GC18230@kaolin.wh9.net> <1150352766.4396.10.camel@midnight> <20060615104111.GA19789@kaolin.wh9.net> <1150388081.16258.22.camel@midnight> <1150456926.5185.41.camel@localhost.localdomain> <1150509012.24700.3.camel@midnight> <1150691596.5187.6.camel@localhost.localdomain> <1150699441.7747.20.camel@midnight> Message-ID: <1150714233.5187.30.camel@localhost.localdomain> On Sun, 2006-06-18 at 23:44 -0700, Adam Zimmerman wrote: > Alright, now we're getting somewhere! The tracks now show up in the > source, and they play :D ! But they have no metadata. The first > self._db.entry_set_uninserted call (and presumably the others as well) > throws an exception with the message "entry should be a RhythmDBEntry". > However, entry is a RhythmDBEntry (checked with "print entry", which > gives something to the effect of ), so I'm > not sure what's going on there. I've just fixed in cvs this too. Currently all the Python plugins that people have work on have been fairly simple (from a RB point of view), and don't use most of the API. So you get to be the guinea-pig that finds all these problems for us ;) > The other thing that's going weird has to do with the gnomevfs.async > code I'm writing, but it's quite possible I'm doing something wrong > there. I get the following message a bunch of times: > > (rhythmbox:7409): libgnomevfs-WARNING **: Unknown job kind 9 I also see that, and have no idea why. Cheers, James "Doc" Livingston -- There are only 10 types of people in the world: those who understand binary and those who don't. From doclivingston at gmail.com Mon Jun 19 08:23:05 2006 From: doclivingston at gmail.com (James "Doc" Livingston) Date: Mon, 19 Jun 2006 22:23:05 +1000 Subject: [Rhythmbox-devel] Rhythmbox Airtunes support In-Reply-To: <44967CFA.1080603@heyes.co.uk> References: <44967CFA.1080603@heyes.co.uk> Message-ID: <1150719785.5187.39.camel@localhost.localdomain> On Mon, 2006-06-19 at 11:31 +0100, Brent Heyes wrote: > Is there any visibility of either a gstreamer airtunes sink or even > direct support for streaming to airtunes from Rhythmbox. Sometime in the not-to-distant future Rhythmbox will support plugins inserting things in/modifying the GStreamer pipeline. (We're still sorting out how exactly it will work.) When that arrives, it shouldn't be too difficult to write a plugin that launches JustePort and uses a GStreamer "fdsink" element to send the audio data directly to the program. Cheers, James "Doc" Livingston -- In God we Trust. All others must submit an X.509 certificate. From paul at luon.net Mon Jun 19 08:28:05 2006 From: paul at luon.net (Paul van Tilburg) Date: Mon, 19 Jun 2006 14:28:05 +0200 Subject: [Rhythmbox-devel] Queue ideas Message-ID: <20060619122804.GA16353@power.luon.net> Hello everyone, I tried the Rhythmbox 0.9.5 release, it is nice, good work. :) I had some few ideas for queueing and I'd would like to know what you think of them before filing some wishlist bugs: * Queuing radio channels: Sometimes I feel like.. ok, after these tracks, let's just tune in to some radio. I think this would work well. If the channel stops broadcasting or I press next, normal operation resumes. * Queuing a playback stop: I have not thought about how this can work UI-wise or if it should be possible even. But I sometimes would like to insert a pause or just a stop. I do this now by typing rubbish in the search field so that the playlist/library yields an empty list and RB stops playing. I even see other people doing this :), it can't be the right way. * Queuing a playlist: This is the weirdest of the three suggestions. This is probably because it would involve dragging an item of the left-hand side of Rhythmbox into a the queue which is maybe not so obvious. Besides these issues, I think it is useful if you can queue the playback of some playlist. Now I always have to interrupt a track because I doubleclick on some list to start it. Once a playlist is started, I also can not say what has to happen after the playlist is finished. If playlists can be queued, this can be controlled. Paul -- Student @ Eindhoven | email: paul at luon.net University of Technology, The Netherlands | JID: paul at luon.net >>> Using the Power of Debian GNU/Linux <<< | GnuPG key ID: 0x50064181 From fabio at berta.ch Mon Jun 19 12:38:38 2006 From: fabio at berta.ch (Fabio Berta) Date: Mon, 19 Jun 2006 18:38:38 +0200 Subject: [Rhythmbox-devel] Art Plugin In-Reply-To: References: Message-ID: <1150735119.6206.2.camel@ubuntu> Hi I'm using the new Rhythmbox 0.9.5 and I really like it! Especially the art plugin is great. But one thing bothers me a bit. I often have albums with more than 1 CD, so I name them "album CD1" and "album CD2". For example "Stadium Arcadium CD1". The art plugin is not able to pick up the right cover for CDs named like this. Maybe this could be fixed somehow? Cheers, Fabio From adam_zimmerman at sfu.ca Mon Jun 19 15:01:34 2006 From: adam_zimmerman at sfu.ca (Adam Zimmerman) Date: Mon, 19 Jun 2006 12:01:34 -0700 Subject: [Rhythmbox-devel] Magnatune catalog/purchasing plugin In-Reply-To: <1150714233.5187.30.camel@localhost.localdomain> References: <1150321213.15485.22.camel@midnight> <20060615041317.GC18230@kaolin.wh9.net> <1150352766.4396.10.camel@midnight> <20060615104111.GA19789@kaolin.wh9.net> <1150388081.16258.22.camel@midnight> <1150456926.5185.41.camel@localhost.localdomain> <1150509012.24700.3.camel@midnight> <1150691596.5187.6.camel@localhost.localdomain> <1150699441.7747.20.camel@midnight> <1150714233.5187.30.camel@localhost.localdomain> Message-ID: <1150743695.14078.23.camel@midnight> (happy dance!) Everything (basically) seems to be working now. The tracks have proper metadata, they play fine (although the duration in the xml file doesn't include the extra bit announcing the artist/album at the end of each file, but nothing we can do about that), and nothing crashes :). I noticed that if I look at a track's properties, when I close rhythmbox I see this message (just once, no matter how many files' properties I looked at, but it doesn't happen if I don't look at any): sys:1: GtkWarning: gtk_tree_selection_count_selected_rows: assertion `GTK_IS_TREE_SELECTION (selection)' failed sys:1: Warning: invalid unclassed pointer in cast to `GObject' sys:1: Warning: instance with invalid (NULL) class pointer sys:1: Warning: g_signal_emit_valist: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed It seems to be harmless, so I'm not too worried about it. I think I'll file a bug about the async.open/read issue, unless anyone has an idea as to what's going on with that. I'll also get in touch with John at Magnatune and ask for a partner id and get info on how the purchase API responds. I still need to figure out a way to attach the album's sku string to an entry so that it can be purchased. I've attached a much cleaner-looking :) version of the code, with just the playing bits. It still blocks the ui for about 2 minutes, but other than that it works perfectly as far as I can tell. Thank you everyone for your help and patience so far! -- Adam Zimmerman CREATIVITY - http://mirrors.creativecommons.org/movingimages/Building_on_the_Past.mpg ALWAYS - http://www.musiccreators.ca/ BUILDS - http://www.ubuntu.com/ ON THE PAST - http://www.theopencd.org/ -- "What time is it?" "I don't know, it keeps changing." -------------- next part -------------- A non-text attachment was scrubbed... Name: magnatune.py Type: text/x-python Size: 4639 bytes Desc: not available Url : http://mail.gnome.org/archives/rhythmbox-devel/attachments/20060619/1ba71016/attachment.py From jan.martin at jpl.nasa.gov Mon Jun 19 15:04:15 2006 From: jan.martin at jpl.nasa.gov (Jan Martin) Date: Mon, 19 Jun 2006 12:04:15 -0700 Subject: [Rhythmbox-devel] dbus dependency kills compilation Message-ID: <4496F52F.8010308@jpl.nasa.gov> Hi folks, I have a question about the new dbus requirement - how can I satisfy it without breaking my system, given that the dbus version present on Mandriva 2006.0 is 0.28. The problem is that several crucial components use dbus and I don't know really how to update dbus to a later version without potentially breaking something I really need, like my desktop. Any ideas? By the way, the archive for this list appears to be broken - when I go there, I can only see June, which makes searching this list a little difficult. Maybe it's just me? Dunno. I really like using rhythmbox, and I'd like to try out the new version, so any help would be appreciated. Thanks. -Jan From jjrussell at gmail.com Mon Jun 19 15:33:12 2006 From: jjrussell at gmail.com (John Russell) Date: Mon, 19 Jun 2006 15:33:12 -0400 Subject: [Rhythmbox-devel] uable to determine address of the message bus Message-ID: <46cb18130606191233w68f08b35t5b4a360a592e8971@mail.gmail.com> (rhythmbox:31895): Rhythmbox-WARNING **: couldn't connect to session bus: Unable to determine the address of the message bus I get this message all the time and now that 0.9.5 has rb-client which uses dbus to control rb, I really need to figure it out. I have this in my .xinitrc dbus-launch --exit-with-session gnome-session and when I look for dbus I get ~> ps aux | grep dbus 101 10297 0.0 0.0 3292 952 ? Ss Jun16 0:00 /usr/bin/dbus-daemon --system jorussel 31668 0.0 0.0 2736 672 tty1 S 15:26 0:00 dbus-launch --exit-with-session gnome-session jorussel 31667 0.0 0.0 3296 976 ? Ss 15:26 0:00 dbus-daemon --fork --print-pid 8 --print-address 6 --session So I have both the system and session buses running. So why is it that rb still can't find the message bus? Thanks for the help. John From hadess at hadess.net Mon Jun 19 18:13:56 2006 From: hadess at hadess.net (Bastien Nocera) Date: Mon, 19 Jun 2006 23:13:56 +0100 Subject: [Rhythmbox-devel] Art Plugin In-Reply-To: <1150735119.6206.2.camel@ubuntu> References: <1150735119.6206.2.camel@ubuntu> Message-ID: <1150755237.9668.148.camel@wyatt.hadess.net> On Mon, 2006-06-19 at 18:38 +0200, Fabio Berta wrote: > Hi > > I'm using the new Rhythmbox 0.9.5 and I really like it! Especially the > art plugin is great. But one thing bothers me a bit. I often have albums > with more than 1 CD, so I name them "album CD1" and "album CD2". For > example "Stadium Arcadium CD1". The art plugin is not able to pick up > the right cover for CDs named like this. Maybe this could be fixed > somehow? The obvious way is to use the "Album number" tag, and remove the "CD XXX" bit from the album name. -- Bastien Nocera From jonathan at kaolin.wh9.net Mon Jun 19 20:52:13 2006 From: jonathan at kaolin.wh9.net (Jonathan Matthew) Date: Tue, 20 Jun 2006 10:52:13 +1000 Subject: [Rhythmbox-devel] uable to determine address of the message bus In-Reply-To: <46cb18130606191233w68f08b35t5b4a360a592e8971@mail.gmail.com> References: <46cb18130606191233w68f08b35t5b4a360a592e8971@mail.gmail.com> Message-ID: <20060620005213.GA5785@kaolin.wh9.net> On Mon, Jun 19, 2006 at 03:33:12PM -0400, John Russell wrote: > (rhythmbox:31895): Rhythmbox-WARNING **: couldn't connect to session > bus: Unable to determine the address of the message bus > > I get this message all the time and now that 0.9.5 has rb-client which > uses dbus to control rb, I really need to figure it out. > > I have this in my .xinitrc > > dbus-launch --exit-with-session gnome-session This will work as long as everything you use in your session is a spawned by gnome-session. If not, you might have better luck with something like this (from the dbus-launch man page): eval 'dbus-launch --sh-syntax --exit-with-session' The dbus library uses the DBUS_SESSION_BUS_ADDRESS environment variable to find the session bus. If this is set in whatever process you're launching rhythmbox or rhythmbox-client from, everything should work. From doclivingston at gmail.com Mon Jun 19 20:53:23 2006 From: doclivingston at gmail.com (James "Doc" Livingston) Date: Tue, 20 Jun 2006 10:53:23 +1000 Subject: [Rhythmbox-devel] Art Plugin In-Reply-To: <1150735119.6206.2.camel@ubuntu> References: <1150735119.6206.2.camel@ubuntu> Message-ID: <1150764803.5180.14.camel@localhost.localdomain> On Mon, 2006-06-19 at 18:38 +0200, Fabio Berta wrote: > I'm using the new Rhythmbox 0.9.5 and I really like it! Especially the > art plugin is great. But one thing bothers me a bit. I often have albums > with more than 1 CD, so I name them "album CD1" and "album CD2". For > example "Stadium Arcadium CD1". The art plugin is not able to pick up > the right cover for CDs named like this. Maybe this could be fixed > somehow? We already do this, but only for "(disc N)", "(CD N)" and the like - with the parentheses. We could probably add another regexp string to match them without parentheses if it's at the end of the string. Can anyone think of any likely false matches for "[Cc][Dd] *[1-9]+$" or [Dd]is[ck] *[1-9]+$"? If not, I'll add it to the list. Cheers, James "Doc" Livingston -- | <- You must be smarter than this stick to ride the Internet -- Mike Handler, paraphrased from Bev White From jonathan at kaolin.wh9.net Mon Jun 19 21:13:06 2006 From: jonathan at kaolin.wh9.net (Jonathan Matthew) Date: Tue, 20 Jun 2006 11:13:06 +1000 Subject: [Rhythmbox-devel] dbus dependency kills compilation In-Reply-To: <4496F52F.8010308@jpl.nasa.gov> References: <4496F52F.8010308@jpl.nasa.gov> Message-ID: <20060620011306.GB5785@kaolin.wh9.net> On Mon, Jun 19, 2006 at 12:04:15PM -0700, Jan Martin wrote: > Hi folks, > > I have a question about the new dbus requirement - how can I satisfy it > without breaking my system, given that the dbus version present on > Mandriva 2006.0 is 0.28. The problem is that several crucial components > use dbus and I don't know really how to update dbus to a later version > without potentially breaking something I really need, like my desktop. > > Any ideas? You could try to implement old-dbus support for dbus 0.2x, or compile a newer version of dbus under your home directory and use that for rhythmbox. Adding support for dbus 0.2x shouldn't be too hard, but I'm not sure how much the API changed between 0.2x and 0.3x. The current old-dbus support for dbus 0.31 - 0.35 lives in shell/main.c. I don't see any reason we wouldn't accept a patch to do this, as long as it didn't mess up anything else too much. Running a separate dbus session bus for rhythmbox would be the easiest way to do this, but making sure the bus address environment variable is set correctly when you need it might be tricky. If you used dbus-launch to run a script wrote the bus address to a file in your home directory then launched rhythmbox, then had a wrapper for rhythmbox-client that read this file and set DBUS_SESSION_BUS_ADDRESS, then ran rhythmbox-client, this might work. I haven't tried it. > By the way, the archive for this list appears to be broken - when I go > there, I can only see June, which makes searching this list a little > difficult. Maybe it's just me? Dunno. There's something weird going on with the archives on mail.gnome.org. The archives are all still there, but the archive index page doesn't show them. gmane should still have everything, and google should have it all indexed. From doclivingston at gmail.com Mon Jun 19 21:23:54 2006 From: doclivingston at gmail.com (James "Doc" Livingston) Date: Tue, 20 Jun 2006 11:23:54 +1000 Subject: [Rhythmbox-devel] Magnatune catalog/purchasing plugin In-Reply-To: <1150743695.14078.23.camel@midnight> References: <1150321213.15485.22.camel@midnight> <20060615041317.GC18230@kaolin.wh9.net> <1150352766.4396.10.camel@midnight> <20060615104111.GA19789@kaolin.wh9.net> <1150388081.16258.22.camel@midnight> <1150456926.5185.41.camel@localhost.localdomain> <1150509012.24700.3.camel@midnight> <1150691596.5187.6.camel@localhost.localdomain> <1150699441.7747.20.camel@midnight> <1150714233.5187.30.camel@localhost.localdomain> <1150743695.14078.23.camel@midnight> Message-ID: <1150766634.5180.22.camel@localhost.localdomain> On Mon, 2006-06-19 at 12:01 -0700, Adam Zimmerman wrote: > sys:1: GtkWarning: gtk_tree_selection_count_selected_rows: assertion > `GTK_IS_TREE_SELECTION (selection)' failed > sys:1: Warning: invalid unclassed pointer in cast to `GObject' > sys:1: Warning: instance with invalid (NULL) class pointer > sys:1: Warning: g_signal_emit_valist: assertion `G_TYPE_CHECK_INSTANCE > (instance)' failed That was another "forget to remove idle callback when finalised" bug, it's fixed now. > I'll also get in touch with John at Magnatune and ask for a partner id > and get info on how the purchase API responds. It might be worth asking if there is a compressed version of the .xml file available too, for example a gzipped version is ~270kb instead of 5.8Mb - and that would save a lot of bandwidth. If there is anything he needs to know about Rhythmbox which you don't feel up to answering, feel free to pass my address on. On a related note, we can probably do some other things to reduce the bandwidth. The most obvious would be caching the xml file as ~/.gnome2/rhythmbox/magnatune/song_info.xml (or whatever) and only downloading it every now and then, and in the background. We could probably send the HTTP magic needed to get the "it hasn't changed" response, so we know not to update. > I still need to figure out a way to attach the album's sku string to an > entry so that it can be purchased. Rhythmbox supports attaching extra data, but it's not currently exposed to Python. One method of doing it (which would be fairly simple) would be to give each entry a dictionary, accessable via "entry.data" or something - how does that sound? James "Doc" Livingston -- "The Web brings people together because no matter what kind of a twisted sexual mutant you happen to be, you've got millions of pals out there. Type in 'Find people that have sex with goats that are on fire' and the computer will ask, 'Specify type of goat.'" -- Rich Jeni From doclivingston at gmail.com Mon Jun 19 21:44:19 2006 From: doclivingston at gmail.com (James "Doc" Livingston) Date: Tue, 20 Jun 2006 11:44:19 +1000 Subject: [Rhythmbox-devel] uable to determine address of the message bus In-Reply-To: <46cb18130606191233w68f08b35t5b4a360a592e8971@mail.gmail.com> References: <46cb18130606191233w68f08b35t5b4a360a592e8971@mail.gmail.com> Message-ID: <1150767859.5180.33.camel@localhost.localdomain> On Mon, 2006-06-19 at 15:33 -0400, John Russell wrote: > (rhythmbox:31895): Rhythmbox-WARNING **: couldn't connect to session > bus: Unable to determine the address of the message bus > > I get this message all the time and now that 0.9.5 has rb-client which > uses dbus to control rb, I really need to figure it out. That's the message when "dbus_g_bus_get (DBUS_BUS_SESSION, &error);" returns NULL, and the second half of the message comes directly from DBus. > So I have both the system and session buses running. So why is it > that rb still can't find the message bus? Do any other DBus-using applications report that? (e.g. dbus-viewer). If they won't, and Rhythmbox doesn't, then something very odd is going on. Cheers, James "Doc" Livingston -- Actually, we have scientifically determined that Heisenberg did indeed sleep exactly here. However, we have no idea whatsoever just how fast asleep he was. -- Dave Aronson in asr. From fisxoj at gmail.com Tue Jun 20 00:12:09 2006 From: fisxoj at gmail.com (Matt) Date: Tue, 20 Jun 2006 00:12:09 -0400 Subject: [Rhythmbox-devel] Art Plugin In-Reply-To: <1150735119.6206.2.camel@ubuntu> References: <1150735119.6206.2.camel@ubuntu> Message-ID: <44977599.7060509@gmail.com> Fabio Berta wrote: > Hi > > I'm using the new Rhythmbox 0.9.5 and I really like it! Especially the > art plugin is great. But one thing bothers me a bit. I often have albums > with more than 1 CD, so I name them "album CD1" and "album CD2". For > example "Stadium Arcadium CD1". The art plugin is not able to pick up > the right cover for CDs named like this. Maybe this could be fixed > somehow? > > Cheers, > > Fabio > > _______________________________________________ > rhythmbox-devel mailing list > rhythmbox-devel at gnome.org > http://mail.gnome.org/mailman/listinfo/rhythmbox-devel > > I have the same issue with Fountains of Wayne - Out of State Plates [disc1] Perhaps something could parse out phrases like 'CD' and 'disc' and strip chars like {} [] () ? Also, albums in other languages, which aren't on the amazon.com site (like Von Spatzen Und Tauben, D?chern Und H?nden by Kettcar) don't show up. I don't know what the amazon api is like, but presumably it should be easy enough to query another source like amazon.de? As usual, enjoying the Box -Matt From fisxoj at gmail.com Mon Jun 19 19:20:39 2006 From: fisxoj at gmail.com (Matt) Date: Mon, 19 Jun 2006 19:20:39 -0400 Subject: [Rhythmbox-devel] Audioscrobbler integration In-Reply-To: <1147916089.5540.4.camel@localhost.localdomain> References: <445AA08B.9020006@gmail.com> <1146808133.23256.4.camel@localhost> <445B8CF8.3030501@gmail.com> <1146888105.6117.10.camel@localhost.localdomain> <446933F8.9010006@gmail.com> <1147916089.5540.4.camel@localhost.localdomain> Message-ID: <44973147.8020304@gmail.com> Hello all, At this point, I'm happy to announce the first working version of the new audioscrobbler plugin! Right now, it only supports Neighbour radio, I'm working on making an interface to support more stations. The plugin is built into the same library as the audioscrobbler song submission code, and doesn't turn on/off cleanly, so I just suggest leaving the plugin enabled. It will use the username and password in the plugin config dialog. When using, the first time you click on the station, it won't play, it will log in, give it a second and click again and it should start buffering. I'm attaching the library, because I don't know how to make patches... sorry -Matt N -------------- next part -------------- A non-text attachment was scrubbed... Name: libaudioscrobbler.tar.gz Type: application/x-gzip Size: 347796 bytes Desc: not available Url : http://mail.gnome.org/archives/rhythmbox-devel/attachments/20060619/4217e1bd/attachment-0001.bin From jjrussell at gmail.com Tue Jun 20 09:45:11 2006 From: jjrussell at gmail.com (John Russell) Date: Tue, 20 Jun 2006 09:45:11 -0400 Subject: [Rhythmbox-devel] uable to determine address of the message bus In-Reply-To: <1150767859.5180.33.camel@localhost.localdomain> References: <46cb18130606191233w68f08b35t5b4a360a592e8971@mail.gmail.com> <1150767859.5180.33.camel@localhost.localdomain> Message-ID: <46cb18130606200645v26a76091w98fec72b69db943c@mail.gmail.com> Thanks for both messages. No, apparently no other commands were finding the bus either, rb was just the only one I noticed because the gnome-power-management applet was working and I know that throws and error when the dbus session isn't set up right. However, because I was using dbus-launch gnome-session and the applet is launched by the session that's why it worked. But when I ran rb from a terminal to see the output, it wasn't technically launched by the session. Is that right? Either way, I put the if statement that Jonathan sent out into my startup scripts and all dbus thingies work wonderfully. thanks for the help. John On 6/19/06, James Doc Livingston wrote: > On Mon, 2006-06-19 at 15:33 -0400, John Russell wrote: > > (rhythmbox:31895): Rhythmbox-WARNING **: couldn't connect to session > > bus: Unable to determine the address of the message bus > > > > I get this message all the time and now that 0.9.5 has rb-client which > > uses dbus to control rb, I really need to figure it out. > > That's the message when "dbus_g_bus_get (DBUS_BUS_SESSION, &error);" > returns NULL, and the second half of the message comes directly from > DBus. > > > > So I have both the system and session buses running. So why is it > > that rb still can't find the message bus? > > Do any other DBus-using applications report that? (e.g. dbus-viewer). If > they won't, and Rhythmbox doesn't, then something very odd is going on. > > > Cheers, > > James "Doc" Livingston > -- > Actually, we have scientifically determined that Heisenberg did indeed > sleep exactly here. However, we have no idea whatsoever just how fast > asleep he was. -- Dave Aronson in asr. > > _______________________________________________ > rhythmbox-devel mailing list > rhythmbox-devel at gnome.org > http://mail.gnome.org/mailman/listinfo/rhythmbox-devel > From jjrussell at gmail.com Tue Jun 20 10:34:39 2006 From: jjrussell at gmail.com (John Russell) Date: Tue, 20 Jun 2006 10:34:39 -0400 Subject: [Rhythmbox-devel] rb on pause doesn't seem to release the audio device Message-ID: <46cb18130606200734w36f36216u73313119f680968b@mail.gmail.com> When I play songs on rb, and then I pause them, none of my other sound programs are able to play anything until I exit rb completely. I remember that this used to work a while ago where rb on pause would allow other things to play. Something about letting go of the gstreamer stream. I'm not sure. Is there a way to get that to work again? Its really nice for things like skype and online video where I can pause the music for just a second, run something else, and then play again. On the other side of the coin, if another app has the sound card and I try to play something in rb, I get no error of any kind, it just sits there patiently not doing anything. And then, even after the other app has exited, rb still won't play anything until I have restarted it. I'm not sure what is going on here either but it sounds related to the behavior I mentioned earlier. I searched bugzilla but couldn't find anything related. Thanks. John From fisxoj at gmail.com Tue Jun 20 11:00:24 2006 From: fisxoj at gmail.com (Matt) Date: Tue, 20 Jun 2006 11:00:24 -0400 Subject: [Rhythmbox-devel] Audioscrobbler integration In-Reply-To: <1147916089.5540.4.camel@localhost.localdomain> References: <445AA08B.9020006@gmail.com> <1146808133.23256.4.camel@localhost> <445B8CF8.3030501@gmail.com> <1146888105.6117.10.camel@localhost.localdomain> <446933F8.9010006@gmail.com> <1147916089.5540.4.camel@localhost.localdomain> Message-ID: <44980D88.4050504@gmail.com> I sent another message about my recent accomplishment of getting the source to actually work, but it look like the attachment got scrubbed. Hopefully this one will pass. Please test it out and give me feedback, right now, only neighbor radio is supported. In the Gzip are my two new source files (rb-lastfm-source.[ch]) and the modified rb-audioscrobbler-plugin.c file, as well as a modified make file. I'd especially like comments about how you'd like to see the interface for adding stations worked out. -Matt -------------- next part -------------- A non-text attachment was scrubbed... Name: lastfm.tar.gz Type: application/x-gzip Size: 8646 bytes Desc: not available Url : http://mail.gnome.org/archives/rhythmbox-devel/attachments/20060620/38454dde/attachment.bin From adam_zimmerman at sfu.ca Tue Jun 20 12:03:55 2006 From: adam_zimmerman at sfu.ca (Adam Zimmerman) Date: Tue, 20 Jun 2006 09:03:55 -0700 Subject: [Rhythmbox-devel] Magnatune catalog/purchasing plugin In-Reply-To: <1150766634.5180.22.camel@localhost.localdomain> References: <1150321213.15485.22.camel@midnight> <20060615041317.GC18230@kaolin.wh9.net> <1150352766.4396.10.camel@midnight> <20060615104111.GA19789@kaolin.wh9.net> <1150388081.16258.22.camel@midnight> <1150456926.5185.41.camel@localhost.localdomain> <1150509012.24700.3.camel@midnight> <1150691596.5187.6.camel@localhost.localdomain> <1150699441.7747.20.camel@midnight> <1150714233.5187.30.camel@localhost.localdomain> <1150743695.14078.23.camel@midnight> <1150766634.5180.22.camel@localhost.localdomain> Message-ID: <1150819435.17540.17.camel@midnight> On Tue, 2006-20-06 at 11:23 +1000, James "Doc" Livingston wrote: > It might be worth asking if there is a compressed version of the .xml > file available too, for example a gzipped version is ~270kb instead of > 5.8Mb - and that would save a lot of bandwidth. If there is anything he > needs to know about Rhythmbox which you don't feel up to answering, feel > free to pass my address on. I'll do that, because that would definitely speed things up a bit. I've also reported the async bug, it's at: http://bugzilla.gnome.org/show_bug.cgi?id=345351 > On a related note, we can probably do some other things to reduce the > bandwidth. The most obvious would be caching the xml file as > ~/.gnome2/rhythmbox/magnatune/song_info.xml (or whatever) and only > downloading it every now and then, and in the background. We could > probably send the HTTP magic needed to get the "it hasn't changed" > response, so we know not to update. That's also a good idea anyway, in case someone manages to leave rhythmbox open for a month or something, and doesn't get any new artists. I'll work on that today. How would I get the plugin to do the periodic check? Is there some rhythmbox timing object I register a callback with? Is there a better way to get the path of the rhythmbox directory than hard-coding it? > Rhythmbox supports attaching extra data, but it's not currently exposed > to Python. > > One method of doing it (which would be fairly simple) would be to give > each entry a dictionary, accessable via "entry.data" or something - how > does that sound? That sounds perfect. I assume the entry gets passed to whatever handler I have for the entry view's show-popup signal. -- Adam Zimmerman CREATIVITY - http://mirrors.creativecommons.org/movingimages/Building_on_the_Past.mpg ALWAYS - http://www.musiccreators.ca/ BUILDS - http://www.ubuntu.com/ ON THE PAST - http://www.theopencd.org/ -- "The best that we can do is to be kindly and helpful toward our friends and fellow passengers who are clinging to the same speck of dirt while we are drifting side by side to our common doom." [Clarence Darrow] From alexl at users.sourceforge.net Tue Jun 20 17:30:22 2006 From: alexl at users.sourceforge.net (Alex Lancaster) Date: Tue, 20 Jun 2006 14:30:22 -0700 Subject: [Rhythmbox-devel] Audioscrobbler integration In-Reply-To: <44980D88.4050504@gmail.com> (Matt's message of "Tue, 20 Jun 2006 11:00:24 -0400") References: <445AA08B.9020006@gmail.com> <1146808133.23256.4.camel@localhost> <445B8CF8.3030501@gmail.com> <1146888105.6117.10.camel@localhost.localdomain> <446933F8.9010006@gmail.com> <1147916089.5540.4.camel@localhost.localdomain> <44980D88.4050504@gmail.com> Message-ID: <75sllzh5w1.fsf@allele2.biol.berkeley.edu> >>>>> "M" == Matt writes: M> I sent another message about my recent accomplishment of getting M> the source to actually work, but it look like the attachment got M> scrubbed. Hopefully this one will pass. [...] It would be better to open up a bug on bugzilla: http://bugzilla.gnome.org/ then post a link to the bug here on the mailing list. Saves having to send a large attachment to everybody on the mailing list. The detailed technical discussion of the patch should really be on the bug. Alex From alexl at users.sourceforge.net Tue Jun 20 17:36:19 2006 From: alexl at users.sourceforge.net (Alex Lancaster) Date: Tue, 20 Jun 2006 14:36:19 -0700 Subject: [Rhythmbox-devel] rb on pause doesn't seem to release the audio device In-Reply-To: <46cb18130606200734w36f36216u73313119f680968b@mail.gmail.com> (John Russell's message of "Tue, 20 Jun 2006 10:34:39 -0400") References: <46cb18130606200734w36f36216u73313119f680968b@mail.gmail.com> Message-ID: >>>>> "JR" == John Russell writes: JR> When I play songs on rb, and then I pause them, none of my other JR> sound programs are able to play anything until I exit rb JR> completely. I remember that this used to work a while ago where JR> rb on pause would allow other things to play. Something about JR> letting go of the gstreamer stream. I'm not sure. Is there a way JR> to get that to work again? Its really nice for things like skype JR> and online video where I can pause the music for just a second, JR> run something else, and then play again. JR> On the other side of the coin, if another app has the sound card JR> and I try to play something in rb, I get no error of any kind, it JR> just sits there patiently not doing anything. And then, even JR> after the other app has exited, rb still won't play anything until JR> I have restarted it. I'm not sure what is going on here either JR> but it sounds related to the behavior I mentioned earlier. JR> I searched bugzilla but couldn't find anything related. Are you using ALSA with dmix? http://alsa.opensrc.org/index.php?page=DmixPlugin gstreamer (and hence rhythmbox) will use dmix if it is setup and should allow multiple sources using the sound card. The problem is likely your other apps that are the problem not rhythmbox/gstreamer, some proprietary apps like Skype use the old OSS interface which "hogs/steals" the sound card. Not much that alsa can do about that, see: http://juljas.net/linux/skype/ If it only happens when Skype is running, but not (say) another gstreamer-based app, then it's Skype's fault. ;-) Alex From gawain.lynch at bigpond.com Tue Jun 20 21:34:54 2006 From: gawain.lynch at bigpond.com (Gawain Lynch) Date: Wed, 21 Jun 2006 11:34:54 +1000 Subject: [Rhythmbox-devel] Art Plugin In-Reply-To: <1150764803.5180.14.camel@localhost.localdomain> References: <1150735119.6206.2.camel@ubuntu> <1150764803.5180.14.camel@localhost.localdomain> Message-ID: <1150853695.21424.3.camel@legolas.felicity.net.au> On Tue, 2006-06-20 at 10:53 +1000, James "Doc" Livingston wrote: > Can anyone think of any likely false matches for "[Cc][Dd] *[1-9]+$" or > [Dd]is[ck] *[1-9]+$"? If not, I'll add it to the list. > While we are at it, another one that has bitten me is "volume", eg Triple J Hottest 100 Volume 1, might be "vol", Vol." "Volume" etc... From sjoeboo@sjoeboo.com Thu Jun 1 11:55:37 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id F04483B0D6C for ; Thu, 1 Jun 2006 11:55:36 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 17870-04 for ; Thu, 1 Jun 2006 11:55:35 -0400 (EDT) Received: from server.sjoeboo.com (unknown [64.79.192.114]) by menubar.gnome.org (Postfix) with ESMTP id 4865E3B0DE2 for ; Thu, 1 Jun 2006 11:55:34 -0400 (EDT) Received: from vader (c-24-63-145-122.hsd1.ma.comcast.net [24.63.145.122]) by server.sjoeboo.com (Postfix) with ESMTP id 744F218C4E8E for ; Thu, 1 Jun 2006 08:55:19 -0700 (PDT) From: Matthew Nicholson To: rhythmbox-devel@gnome.org Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-cCO64xX7WyLW3WMYSssM" Organization: sjoeboo.com Date: Thu, 01 Jun 2006 11:54:52 -0400 Message-Id: <1149177292.5684.54.camel@localhost> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.599 tagged_above=-999 required=2 tests=[BAYES_00=-2.599] X-Spam-Score: -2.599 X-Spam-Level: Subject: [Rhythmbox-devel] debian/ubuntu packaging X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: sjoeboo@sjoeboo.com List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jun 2006 15:55:37 -0000 --=-cCO64xX7WyLW3WMYSssM Content-Type: text/plain Content-Transfer-Encoding: quoted-printable forgive me if this isn't the place to ask this. i'm jsut looking for some help. i'm interested in building a debian package (rather, ubuntu 6.06) of rhythmbox cvs. i've been running cvs, and doing almost daily build as of late, and would really like to have packages to show friends etc.=20 however, i really don't have any packaging experiance to speak of. i've been looing around at guide but thus far havn't gotten very far. once again, i basically just want to package from cvs, no special patches or anything (well, maybe use --enable-track-transfers and --enable-tag-writing for ./configure) if anyone has any help to offer/guides to read/tips, it would be great. thanks --=20 Matthew Nicholson sjoeboo.com --=-cCO64xX7WyLW3WMYSssM Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.2 (GNU/Linux) iD8DBQBEfw3Ms9/XCuaG1WkRAhTjAJ0Y5Wk3Xhqt8YAtoZhKvBN+iC7UBgCghplg vhBi5r18irbucH/snLv6ENg= =XwEX -----END PGP SIGNATURE----- --=-cCO64xX7WyLW3WMYSssM-- From seb128@debian.org Thu Jun 1 12:17:21 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 49ABC3B025A for ; Thu, 1 Jun 2006 12:17:21 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 19446-07 for ; Thu, 1 Jun 2006 12:17:18 -0400 (EDT) Received: from smtp6.wanadoo.fr (smtp6.wanadoo.fr [193.252.22.25]) by menubar.gnome.org (Postfix) with ESMTP id 5AD5F3B02DE for ; Thu, 1 Jun 2006 12:17:18 -0400 (EDT) Received: from [192.168.0.2] (ANancy-151-1-56-222.w83-196.abo.wanadoo.fr [83.196.43.222]) by mwinf0612.orange.fr (SMTP Server) with ESMTP id D4A471C00137 for ; Thu, 1 Jun 2006 18:17:15 +0200 (CEST) X-ME-UUID: 20060601161715871.D4A471C00137@mwinf0612.orange.fr Subject: Re: [Rhythmbox-devel] debian/ubuntu packaging From: Sebastien Bacher To: rhythmbox-devel@gnome.org In-Reply-To: <1149177292.5684.54.camel@localhost> References: <1149177292.5684.54.camel@localhost> Content-Type: text/plain; charset=ISO-8859-15 Date: Thu, 01 Jun 2006 18:17:14 +0200 Message-Id: <1149178634.5907.5.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.497 tagged_above=-999 required=2 tests=[AWL=0.102, BAYES_00=-2.599] X-Spam-Score: -2.497 X-Spam-Level: X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jun 2006 16:17:21 -0000 Le jeudi 01 juin 2006 à 11:54 -0400, Matthew Nicholson a écrit : > once again, i basically just want to package from cvs, no special > patches or anything (well, maybe use --enable-track-transfers and > --enable-tag-writing for ./configure) Hi, You can basically do that: - apt-get source rhythmbox - copy rhythmbox-0.9.3.1/debian to a the source you want to package - edit debian/changelog and add an entry for your version (like 0.9.4.1cvsDATE) - edit debian/rules to change the configure options to use - build the package ("debuild" to the source directory by example) Cheers, Sebastien Bacher From lool+gnome@via.ecp.fr Thu Jun 1 12:23:47 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 9B67A3B0DE5 for ; Thu, 1 Jun 2006 12:23:47 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 20061-01 for ; Thu, 1 Jun 2006 12:23:41 -0400 (EDT) Received: from mx0.bpl-group.org (mx0.bpl-group.org [195.115.71.69]) by menubar.gnome.org (Postfix) with ESMTP id 72C6A3B0254 for ; Thu, 1 Jun 2006 12:23:41 -0400 (EDT) Received: from bee.dooz.org (lan-32.int.bpl-group.org [192.168.16.32]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "lminier.people.bpl-group.org", Issuer "BPL Group People Certification Authority" (verified OK)) by mx0.bpl-group.org (Postfix) with ESMTP id 585F6C4F9 for ; Thu, 1 Jun 2006 18:23:39 +0200 (CEST) Received: by bee.dooz.org (Postfix, from userid 1000) id D2D3B4F006A; Thu, 1 Jun 2006 18:23:21 +0200 (CEST) Date: Thu, 1 Jun 2006 18:23:21 +0200 From: =?iso-8859-1?Q?Lo=EFc?= Minier To: rhythmbox-devel@gnome.org Subject: Re: [Rhythmbox-devel] debian/ubuntu packaging Message-ID: <20060601162321.GG9655@bee.dooz.org> Mail-Followup-To: rhythmbox-devel@gnome.org References: <1149177292.5684.54.camel@localhost> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1149177292.5684.54.camel@localhost> X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.464 tagged_above=-999 required=2 tests=[BAYES_00=-2.599, FORGED_RCVD_HELO=0.135] X-Spam-Score: -2.464 X-Spam-Level: X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jun 2006 16:23:47 -0000 Hi, On Thu, Jun 01, 2006, Matthew Nicholson wrote: > i'm interested in building a debian package (rather, ubuntu 6.06) of > rhythmbox cvs. i've been running cvs, and doing almost daily build as of > late, and would really like to have packages to show friends etc. That's nice (way nicer than installing in /usr/local)! Just make sure you use different version numbers than Debian/Ubuntu so that it's clear that these packages are not official. > however, i really don't have any packaging experiance to speak of. i've > been looing around at guide but thus far havn't gotten very far. It's quite well documented, see . > once again, i basically just want to package from cvs, no special > patches or anything (well, maybe use --enable-track-transfers and > --enable-tag-writing for ./configure) Here's a simple guide: - use "cvs export" to create a snapshot - use AUTOMAKE=automake-1/9 ./autogen.sh or similar to bootstrap the snapshot, and rm -rf autom4te.cache - make a tarball of that - apt-get source rhythmbox; copy the debian/ dir you get in the cvs export you did - change debian/changelog with "dch -i" and put your name in the version (Debian part), and the snapshot date (in the upstream version), put a changelog entry - change debian/rules to add configure flags - debuild and rename your tarball to the appropriate name Bye, -- Loïc Minier From sjoeboo@sjoeboo.com Thu Jun 1 14:56:05 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 5B0B93B0236 for ; Thu, 1 Jun 2006 14:56:05 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 29398-08 for ; Thu, 1 Jun 2006 14:56:02 -0400 (EDT) Received: from server.sjoeboo.com (unknown [64.79.192.114]) by menubar.gnome.org (Postfix) with ESMTP id 903E63B011F for ; Thu, 1 Jun 2006 14:56:02 -0400 (EDT) Received: by server.sjoeboo.com (Postfix, from userid 33) id 7D63C18C4E9B; Thu, 1 Jun 2006 11:56:01 -0700 (PDT) To: rhythmbox-devel@gnome.org Subject: Re: [Rhythmbox-devel] debian/ubuntu packaging MIME-Version: 1.0 Date: Thu, 1 Jun 2006 11:56:01 -0700 From: sjoeboo Organization: sjoeboo.com In-Reply-To: <1149178634.5907.5.camel@localhost.localdomain> References: <1149178634.5907.5.camel@localhost.localdomain> Message-ID: X-Sender: sjoeboo@sjoeboo.com User-Agent: RoundCube Webmail/0.1b Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.599 tagged_above=-999 required=2 tests=[BAYES_00=-2.599] X-Spam-Score: -2.599 X-Spam-Level: X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: sjoeboo@sjoeboo.com List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jun 2006 18:56:05 -0000 thank you so much for this. it was a big help. i really only encounter one little bug/problem thus far in terms of packaging. one other question: how would i (or rather, in what file would i) change the package name? i would like to make it rhythmbox-cvs or something similar, so that it does not directly conflict with rhythmbox/ubuntu-desktop. thanks again. matt On Thu, 01 Jun 2006 18:17:14 +0200, Sebastien Bacher wrote: > Le jeudi 01 juin 2006 à 11:54 -0400, Matthew Nicholson a écrit : > >> once again, i basically just want to package from cvs, no special >> patches or anything (well, maybe use --enable-track-transfers and >> --enable-tag-writing for ./configure) > > Hi, > > You can basically do that: > - apt-get source rhythmbox > - copy rhythmbox-0.9.3.1/debian to a the source you want to package > - edit debian/changelog and add an entry for your version (like > 0.9.4.1cvsDATE) > - edit debian/rules to change the configure options to use > - build the package ("debuild" to the source directory by example) > > > Cheers, > > Sebastien Bacher > > _______________________________________________ > rhythmbox-devel mailing list > rhythmbox-devel@gnome.org > http://mail.gnome.org/mailman/listinfo/rhythmbox-devel -- Matthew Nicholson sjoeboo@sjoeboo.com sjoeboo.com From lool+gnome@via.ecp.fr Thu Jun 1 15:07:37 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 3B6453B0EB2 for ; Thu, 1 Jun 2006 15:07:37 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 30607-08 for ; Thu, 1 Jun 2006 15:07:35 -0400 (EDT) Received: from mx0.bpl-group.org (mx0.bpl-group.org [195.115.71.69]) by menubar.gnome.org (Postfix) with ESMTP id B91683B0E9F for ; Thu, 1 Jun 2006 15:07:34 -0400 (EDT) Received: from bee.dooz.org (levallois.dooz.org [81.57.180.178]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "lminier.people.bpl-group.org", Issuer "BPL Group People Certification Authority" (verified OK)) by mx0.bpl-group.org (Postfix) with ESMTP id 8FAE6C4F9 for ; Thu, 1 Jun 2006 21:07:33 +0200 (CEST) Received: by bee.dooz.org (Postfix, from userid 1000) id 384164F006A; Thu, 1 Jun 2006 21:07:12 +0200 (CEST) Date: Thu, 1 Jun 2006 21:07:12 +0200 From: =?iso-8859-1?Q?Lo=EFc?= Minier To: rhythmbox-devel@gnome.org Subject: Re: [Rhythmbox-devel] debian/ubuntu packaging Message-ID: <20060601190712.GJ9655@bee.dooz.org> Mail-Followup-To: rhythmbox-devel@gnome.org References: <1149178634.5907.5.camel@localhost.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.493 tagged_above=-999 required=2 tests=[AWL=0.106, BAYES_00=-2.599] X-Spam-Score: -2.493 X-Spam-Level: X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jun 2006 19:07:37 -0000 On Thu, Jun 01, 2006, sjoeboo wrote: > how would i (or rather, in what file would i) change the package name? > i would like to make it rhythmbox-cvs or something similar, so that it > does not directly conflict with rhythmbox/ubuntu-desktop. That would be debian/control, but in the case of rhythmbox, you want to change debian/control.in instead and run "fakeroot debian/rules clean". The name of the *source* is in debian/changelog. -- Loïc Minier From seb128@debian.org Thu Jun 1 16:03:10 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 32D543B0F3B for ; Thu, 1 Jun 2006 16:03:10 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 03268-05 for ; Thu, 1 Jun 2006 16:03:09 -0400 (EDT) Received: from smtp7.wanadoo.fr (smtp7.wanadoo.fr [193.252.22.24]) by menubar.gnome.org (Postfix) with ESMTP id E92573B0ED4 for ; Thu, 1 Jun 2006 16:03:08 -0400 (EDT) Received: from [192.168.0.2] (ANancy-151-1-56-222.w83-196.abo.wanadoo.fr [83.196.43.222]) by mwinf0706.orange.fr (SMTP Server) with ESMTP id 1B72B1C0008D for ; Thu, 1 Jun 2006 22:03:04 +0200 (CEST) X-ME-UUID: 20060601200305112.1B72B1C0008D@mwinf0706.orange.fr Subject: Re: [Rhythmbox-devel] debian/ubuntu packaging From: Sebastien Bacher To: rhythmbox-devel@gnome.org In-Reply-To: References: <1149178634.5907.5.camel@localhost.localdomain> Content-Type: text/plain; charset=ISO-8859-15 Date: Thu, 01 Jun 2006 22:02:59 +0200 Message-Id: <1149192179.6475.3.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.507 tagged_above=-999 required=2 tests=[AWL=0.092, BAYES_00=-2.599] X-Spam-Score: -2.507 X-Spam-Level: X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jun 2006 20:03:10 -0000 Le jeudi 01 juin 2006 à 11:56 -0700, sjoeboo a écrit : > how would i (or rather, in what file would i) change the package name? > i would like to make it rhythmbox-cvs or something similar, so that it > does not directly conflict with rhythmbox/ubuntu-desktop. I'm not sure if you speak about the source or the binary package. If you rename the binary you will have to Conflicts with the official anyway since they install everything at the same place Cheers, Sebastien Bacher From christophe.dehais@gmail.com Thu Jun 1 17:52:12 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 063DB3B0323 for ; Thu, 1 Jun 2006 17:52:12 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 09027-08 for ; Thu, 1 Jun 2006 17:52:10 -0400 (EDT) Received: from py-out-1112.google.com (py-out-1112.google.com [64.233.166.183]) by menubar.gnome.org (Postfix) with ESMTP id 4F7EE3B01B1 for ; Thu, 1 Jun 2006 17:52:10 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id x31so642056pye for ; Thu, 01 Jun 2006 14:52:09 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:references; b=AL8igCnUYJEXlqGUjZgX6bQxt7IzhqY9iXNAoLqLH4ojBTwLyQCMXvGVrf41mm1zq872XIw/ikMqWeCJwoWo1i5aTCxbjjX4PmM6maQ2Hxiv07+PU/BTJ8RljX34KpTbURdl/CsmzOVmJ2uj0K4mWGcKq+NCSygYU4LEpxcoPY0= Received: by 10.35.77.18 with SMTP id e18mr1535607pyl; Thu, 01 Jun 2006 14:52:09 -0700 (PDT) Received: by 10.35.18.13 with HTTP; Thu, 1 Jun 2006 14:52:09 -0700 (PDT) Message-ID: <4a305d880606011452h52be7424ma24730aeaad63d93@mail.gmail.com> Date: Thu, 1 Jun 2006 23:52:09 +0200 From: "Christophe Dehais" To: rhythmbox-devel@gnome.org Subject: Re: [Rhythmbox-devel] Re: svg icon for rhythmbox In-Reply-To: <1149113816.20283.4.camel@localhost.localdomain> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_10006_25051712.1149198729334" References: <1149113816.20283.4.camel@localhost.localdomain> X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.074 tagged_above=-999 required=2 tests=[AWL=0.151, BAYES_00=-2.599, HTML_30_40=0.374, HTML_MESSAGE=0.001, SPF_PASS=-0.001] X-Spam-Score: -2.074 X-Spam-Level: Cc: elijah@riseup.net X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jun 2006 21:52:12 -0000 ------=_Part_10006_25051712.1149198729334 Content-Type: multipart/alternative; boundary="----=_Part_10007_3111044.1149198729335" ------=_Part_10007_3111044.1149198729335 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Very nice icon. However I noticed some glitches here and there. They are due to vertices that over complexify the curve and so can be deleted. It's merely visible at icon size but SVG in meant to be scaled up nicely, so ... small bonus: removing these vertices make the file smaller by half a kilo. I attach captures showing the glitches. cheers, Christophe. On 6/1/06, Pat Rondon wrote: > > I really dig this icon. My only recommended changes would be ditching > the gray thing at the bottom and maybe a more Tango-like blue border > (see attached). > > - Pat > > > _______________________________________________ > rhythmbox-devel mailing list > rhythmbox-devel@gnome.org > http://mail.gnome.org/mailman/listinfo/rhythmbox-devel > > > > ------=_Part_10007_3111044.1149198729335 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Very nice icon.

However I noticed some glitches here and there. They are due to vertices that over complexify the curve and so can be deleted.
It's merely visible at icon size but SVG in meant to be scaled up nicely, so ... small bonus: removing these vertices make the file smaller by half a kilo.

I attach captures showing the glitches.

cheers,
Christophe.


On 6/1/06, Pat Rondon <pmr@patrondon.org > wrote:
I really dig this icon.  My only recommended changes would be ditching
the gray thing at the bottom and maybe a more Tango-like blue border
(see attached).

  - Pat


_______________________________________________
rhythmbox-devel mailing list
rhythmbox-devel@gnome.org
http://mail.gnome.org/mailman/listinfo/rhythmbox-devel




------=_Part_10007_3111044.1149198729335-- ------=_Part_10006_25051712.1149198729334 Content-Type: image/jpeg; name="zoom1.jpg" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="zoom1.jpg" X-Attachment-Id: f_enxn57sq /9j/4AAQSkZJRgABAQEASABIAAD/4QAWRXhpZgAATU0AKgAAAAgAAAAAAAD/2wBDABALDA4MChAO DQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/ 2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2Nj Y2NjY2NjY2NjY2P/wAARCACXAZADASIAAhEBAxEB/8QAGwABAAIDAQEAAAAAAAAAAAAAAAEFBAYH AgP/xAA/EAEAAQIBBQoMBQUBAQAAAAAAAQIDBAUGETFzEhUhNDVRcZGxshMUFjIzQVNUYZKT4SJC Y3KBQ1KhotGCwf/EABkBAQEAAwEAAAAAAAAAAAAAAAAEAQMFAv/EACMRAQABAgYDAQEBAAAAAAAA AAABAgMREzEyQVEEEkKBIXH/2gAMAwEAAhEDEQA/AOgA17PLEXsNk2zXh7tdqqb0RM0VTEzGiWaY xnBiZwjFsI5bvrlD37E/Vk31yh79ifqy3ZE9tebDqQ5bvrlD37E/Vk32yj79ifqyZE9mbDqQ5bvt lH37E/VlO++Uvf8AE/VkyJ7M2HURy7fjKXv+J+rJvxlL3/E/UkyJ7M2HURy/fnKfv+I+pJvzlP3/ ABH1JMiezNh1Acv35yn7/iPqSb85T9/xH1JMiezNh1Acv35yn7/iPqS9W8uZTt3Ka/Hb1W5nToqr mYnpgyJ7M2HTho1nPTHU+lsWLkfCJpntWGHz1w1WiMRhbtv40TFX/HibVUPUXKW0iswucGS8Voij F0U1T+W5+HtWVMxVETTMTE6ph4mJjV6iYnRIDDIAAAAIUdedmS6K6qKqrummdE/gZimZ0YmYjVei h8r8lf3XvkPK/Jf9175Hr0q6Y9qe18KDyvyXz3vkPK/JfPe+Q9Kuj2p7X4oPK/JfPe+T7nlfkvnv fJ9z0q6Pantfig8sMl/rfJ9zywyX+v8AJ9z0q6Pantfig8sMl/r/ACfdHlhkv9f5PuelXR7U9tgG v+WGS+a/8n3PLDJnNf8Akj/p6VdHvT22AUEZ4ZLnX4aOmj7siznLkm9OiMXFM81dMx/8Y9Kuj2jt bj5WMTYxFO6sXrd2OeiqJ7H1eXoAAAAAAa1nzyVY20d2Wytaz55KsbaO7L3b3Q817ZaMAtSgAAAA AAAAAAAAADJwmUMXgqtOGxFy38Iq4J/jUxg1G0YHPPEW9FONsU3Y/vo/DV1auxsuT8t4DKMRFi/E XJ/p18FX3/hzIidE6YaqrVM6NkXJh11LneTM5sfgNFFdfjFqPy3J4Y6JbfkvODA5T0UUV+CvT/Tu cEz0c7RVbqpbaa4laiEtb2hyfFcavfvq7XWHJ8Vxu9++rtUWOWm7w+QChpAAAAAAAAAAAAeqK67d UVUVVU1RqmmdErfBZz5TwmiJveHoj8t2NP8AnWphiYidWYmY0b5k/O/BYmYoxVNWGrn1zw09a/t3 KLtEV2q6a6J1VUzpiXJGVgco4vJ9zd4W9VRzxriemGmqzHDZFyeXVBq+S88LF7c28fR4GvV4Snhp np9cNmt10XaIrt1U10VRpiqmdMS0VUzTq3RVE6PQDyyNaz55KsbeO7LZWtZ88lWdvHdl7t7oea9s tGAWpUxGmqI52bvfHtJ6mFR59PSum61TFWOLTdqmnDBhb3x7Seo3vj2k9TNG7Ko6ac2vth73x7Se o3uj2k9TNDKo6M2vthb3R7SepG936v8AqzgyqOjNr7V9WT6omNzXE88zGjQ9xk7nu/6s1JlUmbUw N7ua7/q8zk656q6Z6ViGVSzm1KqrBX6fyxPRL41W66POpmnphdkxp1vE2Y4eovTyohb3MJZua6Ii eengYt3J9UcNuqKvhPBLXNqqGyLtMsIeq7ddudFdM0z8XlqbQidE6YAGwZJzqxeCmm3itOIs6uGf xU9E+v8AlvrkTrqa9TEYYN9uZnUcnxfG7376u11hyfF8bvfvq7WbHLF3h8gI1qGl9fF73s6jxe97 OrqWwpyY7TZ09Knxe97OrqPF73s6upbJMmOzOnpUeL3vZ1dR4ve9nV1LcMiOzPnpUeL3vZ1dSPF7 3s6upcBkR2Z89KfwF2P6dfU8zRVT51Mx0wuwyI7M+elELqqzbr86imf4fCvAWqvN00z8HibM8PcX o5VgyrmAu08NGiuPhwSxqqaqZ0VRMTzS1zTMatsVROiAHlkZ2Tcr4zJlenD3Z3Gnht1cNM/wwRiY idWYnB0TJGcmEylubdU+AxE/kqngnon1rlyLU2PIudd/Cbmzjd1fs6oq/PT/ANaK7PNLbTc7b21r Pnkmzt47stla1nzyTZ28d2Wq3uhsr2y0YBaleqPPp6VypqPPp6YXKixynv8AAAoTpAAAAShIAAAA JABFVNNcaKoiY5pYd7J8Tw2Z0TzSzUvNVMVavVNU06KK5brt1bmumYl5Xldum5Tua6YmGBiMBVRp qtfip5vWnrtTH9hTRdidWE665Fql11Df4V2uRyfF8bvbSrtdYcnxfG720q7SxyXeHyI1hGtQ0rsB 0HPEoSAAAACQAAAS8126LkaK6Yqj4vQMsC9k/wBdmr/zLCroqt1bmumYn4rx5uW6LtO5rpiYaarM To203pjVRjMxGAqo01WvxU83rhh6k9VM06qaaoq0AHll15rWfPJNnbx3ZbK1vPnkmzt47sore6FV e2WigLUr1R59PTC5U1v0lPTC5U2OU9/gAb06QAAAEoSAAAACQAEoSAADHxGEov8AD5tfPDozQW/O d5sRE0z/AKv8SZmJgcoxfHL20q7XV3KMXxy/tKu1osct93h8SNYRrUNK7AdBzxKEgAAAAkAAAEgA AAlj4jCUX40+bXzwyBiYiYwlmJmJxhSXrNdmrRXHRPql817XRTcpmmuImJVmKwVVrTVRpqo/zCau 1NP9hVRdir+S6o1vPnkmzt47tTZGt588kWdvHdqcy3uhfXtlooC1K9W/SU9MLlTW/SU9MLlTY0lP f1gAb06QAAAEoSAAAACQAEoSAAA35oLfnP8AO+f1d4f1+DlGM45f2lXa6u5RjOOX9pV2p7HKi7w+ JGsI1qGldgOg54lCQAAAASAAACQAAASAAADf2t588kWdvHdqbI1vPnkizt47tThW90O1XtlooC1K 9W/SU9MLlTW/SU9MLlTY0lPf1gAb06QAAAEoSAAAACQAEoSAAA35oLfnP875/V3h/X4OUYzjl/aV drq7lGM45f2lXamscqLvD4kawjWpaV2A6DniUJAAAABIAAAJAAABIAAAN/a3nzyRZ28d2psjW8+e SLO3ju1OFb3Q7Ve2WigLUr1b9JR0wuVNb9LR0wuVNjSU9/WABvTpAAAAShIAAAAJAAShIAADfmgt +c/zvn9XeH9fg5RjOO39pV2uruUYzjt/aVdqaxypu8PiRrCNaloXYDoOeJQkAAAAEgAAAkAAAEgA AA39refPJFnbx3amyNbz55Hs7eO7U4VvdDtV7ZaKAtSvVr0tH7oXKmtelo/dC5U2NJT39YAG9OkA AABL438RTYmndxOirmerd+3d8yuJnm9bHtGOD16zhi+gDLyAAkABKEgAAN+aC35z/O+f1d4f1+Dl GN47f2lXa6u5RjeO39pV2prHKm7w+JGsI1qWhdgOg54lCQAAAYGIxNyziqopnTTwcE9DzVVFMYy9 U0zVOELAfCxi7d7g07mrml92YmJ/sMTEx/JAGWEgAAAkAAAG/tbz55Hs7eO7UDhW90O1XtlooC1K 9WvS0fuhcgpsaSmv6wAN7QkAAAGFlPVb/lgAju75WWtkMi1jLtvgmd1HNLOw+Kov8EaYq5pB6t11 Y4MXKKcMX3AVJEgAJAAABvwOf53z+rvD+vwcoxvHb+0q7QTWOVN3h8SNYKWhdgOg54kAAAFXjuNV fx2A03trdZ3MdlWMbXb0U1/jp/zAJoqmn+wpmmKv5Kxt3KbtEVUTpiXoF1M4xiiqjCcEgMvIACQA AAf/2Q== ------=_Part_10006_25051712.1149198729334 Content-Type: image/jpeg; name="zoom4.jpg" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="zoom4.jpg" X-Attachment-Id: f_enxn7mjl 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 ------=_Part_10006_25051712.1149198729334 Content-Type: image/jpeg; name="zoom3.jpg" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="zoom3.jpg" X-Attachment-Id: f_enxn7zg5 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 ------=_Part_10006_25051712.1149198729334 Content-Type: image/jpeg; name="zoom2.jpg" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="zoom2.jpg" X-Attachment-Id: f_enxn84gz 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 ------=_Part_10006_25051712.1149198729334-- From christophe.dehais@gmail.com Thu Jun 1 17:54:07 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 7F8E63B01B1 for ; Thu, 1 Jun 2006 17:54:07 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 09333-02 for ; Thu, 1 Jun 2006 17:54:06 -0400 (EDT) Received: from py-out-1112.google.com (py-out-1112.google.com [64.233.166.181]) by menubar.gnome.org (Postfix) with ESMTP id B372A3B02DB for ; Thu, 1 Jun 2006 17:54:05 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id x31so642383pye for ; Thu, 01 Jun 2006 14:54:05 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:references; b=Omv15q3O3Tz2yP9rX/RpoViIEXBh+brJH56ZVSXkIGruiq3j0Ho0i0IUUQmbc9vmofHOZrtJpZNZOWRAI5jgDJCVFYs2Ncs2MGGv3o2n+6D04C8znV0NASEj1Ti7xfuJXEnP0Aj8/HYs3Eb+8axAifG5zKcQdbbJv5Oq+2bP9KA= Received: by 10.35.9.2 with SMTP id m2mr1556676pyi; Thu, 01 Jun 2006 14:54:04 -0700 (PDT) Received: by 10.35.18.13 with HTTP; Thu, 1 Jun 2006 14:54:04 -0700 (PDT) Message-ID: <4a305d880606011454m10293791qc7ee5e579da34744@mail.gmail.com> Date: Thu, 1 Jun 2006 23:54:04 +0200 From: "Christophe Dehais" To: rhythmbox-devel@gnome.org Subject: Re: [Rhythmbox-devel] Re: svg icon for rhythmbox In-Reply-To: <4a305d880606011452h52be7424ma24730aeaad63d93@mail.gmail.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_10042_19415251.1149198844729" References: <1149113816.20283.4.camel@localhost.localdomain> <4a305d880606011452h52be7424ma24730aeaad63d93@mail.gmail.com> X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.205 tagged_above=-999 required=2 tests=[AWL=0.260, BAYES_00=-2.599, HTML_50_60=0.134, HTML_MESSAGE=0.001, SPF_PASS=-0.001] X-Spam-Score: -2.205 X-Spam-Level: Cc: elijah@riseup.net X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jun 2006 21:54:07 -0000 ------=_Part_10042_19415251.1149198844729 Content-Type: multipart/alternative; boundary="----=_Part_10043_28839808.1149198844729" ------=_Part_10043_28839808.1149198844729 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline And here are the corrected icons (inkscape layered version and raw SVG) On 6/1/06, Christophe Dehais wrote: > > Very nice icon. > > However I noticed some glitches here and there. They are due to vertices > that over complexify the curve and so can be deleted. > It's merely visible at icon size but SVG in meant to be scaled up nicely, > so ... small bonus: removing these vertices make the file smaller by half a > kilo. > > I attach captures showing the glitches. > > cheers, > Christophe. > > > On 6/1/06, Pat Rondon wrote: > > > I really dig this icon. My only recommended changes would be ditching > the gray thing at the bottom and maybe a more Tango-like blue border > (see attached). > > - Pat > > > _______________________________________________ > rhythmbox-devel mailing list > rhythmbox-devel@gnome.org > http://mail.gnome.org/mailman/listinfo/rhythmbox-devel > > > > > > ------=_Part_10043_28839808.1149198844729 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline And here are the corrected icons (inkscape layered version and raw SVG)

On 6/1/06, Christophe Dehais <christophe.dehais@gmail.com > wrote:
Very nice icon.

However I noticed some glitches here and there. They are due to vertices that over complexify the curve and so can be deleted.
It's merely visible at icon size but SVG in meant to be scaled up nicely, so ... small bonus: removing these vertices make the file smaller by half a kilo.

I attach captures showing the glitches.

cheers,
Christophe.


On 6/1/06, Pat Rondon <pmr@patrondon.org > wrote:
I really dig this icon.  My only recommended changes would be ditching
the gray thing at the bottom and maybe a more Tango-like blue border
(see attached).

  - Pat


_______________________________________________
rhythmbox-devel mailing list
rhythmbox-devel@gnome.org
http://mail.gnome.org/mailman/listinfo/rhythmbox-devel






------=_Part_10043_28839808.1149198844729-- ------=_Part_10042_19415251.1149198844729 Content-Type: image/svg+xml; name="rhythmbox-like-tango-no-glitch.svg" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="rhythmbox-like-tango-no-glitch.svg" X-Attachment-Id: f_enxnbdpm PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjwh LS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgo8 c3ZnCiAgIHhtbG5zOmE9Imh0dHA6Ly9ucy5hZG9iZS5jb20vQWRvYmVTVkdWaWV3ZXJFeHRlbnNp b25zLzMuMC8iCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHht bG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6eGxpbms9Imh0dHA6Ly93 d3cudzMub3JnLzE5OTkveGxpbmsiCiAgIHZlcnNpb249IjEuMCIKICAgd2lkdGg9IjEyOCIKICAg aGVpZ2h0PSIxMjgiCiAgIHZpZXdCb3g9IjAgMCA3MC4yIDQ4IgogICBpZD0ic3ZnMiIKICAgeG1s OnNwYWNlPSJwcmVzZXJ2ZSI+PGRlZnMKICAgaWQ9ImRlZnM2MiI+PGxpbmVhckdyYWRpZW50CiAg ICAgaWQ9ImxpbmVhckdyYWRpZW50MjY4MiI+PHN0b3AKICAgICAgIHN0eWxlPSJzdG9wLWNvbG9y OiMyODhlZjQ7c3RvcC1vcGFjaXR5OjEiCiAgICAgICBvZmZzZXQ9IjAiCiAgICAgICBpZD0ic3Rv cDI2ODQiIC8+PHN0b3AKICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMyODhlZjQ7c3RvcC1vcGFj aXR5OjAiCiAgICAgICBvZmZzZXQ9IjEiCiAgICAgICBpZD0ic3RvcDI2ODYiIC8+PC9saW5lYXJH cmFkaWVudD48bGluZWFyR3JhZGllbnQKICAgICB4MT0iNDAuMjYxNyIKICAgICB5MT0iMzguNzc0 Mzk5IgogICAgIHgyPSI1Ni42NDk2MDEiCiAgICAgeTI9IjE5LjQ4MTUwMSIKICAgICBpZD0ibGlu ZWFyR3JhZGllbnQyNjY3IgogICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAg IGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMS4yMDEyNCw5LjMxMzUyNmUtMiwtOS4zMTM1MjZl LTIsMS4yMDEyNCwtMy45MDE3NzEsLTYuNjcxODMxKSI+CgkJCTxzdG9wCiAgIHN0eWxlPSJzdG9w LWNvbG9yOiMwODZlZDQ7c3RvcC1vcGFjaXR5OjEiCiAgIG9mZnNldD0iMCIKICAgaWQ9InN0b3Ay NjY5IiAvPgoJCQk8c3RvcAogICBzdHlsZT0ic3RvcC1jb2xvcjojMWE1MDg2O3N0b3Atb3BhY2l0 eToxIgogICBvZmZzZXQ9IjEiCiAgIGlkPSJzdG9wMjY3MSIgLz4KCQk8L2xpbmVhckdyYWRpZW50 PjxsaW5lYXJHcmFkaWVudAogICAgIHgxPSI5LjEzNDgiCiAgICAgeTE9IjMzLjg1NDUiCiAgICAg eDI9IjM1LjM1MjQwMiIKICAgICB5Mj0iMzUuNzQyODAyIgogICAgIGlkPSJsaW5lYXJHcmFkaWVu dDI2NjEiCiAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgZ3JhZGllbnRU cmFuc2Zvcm09Im1hdHJpeCgxLjIwMTI0LDkuMzEzNTI2ZS0yLC05LjMxMzUyNmUtMiwxLjIwMTI0 LC0zLjkwMTc3MSwtNi42NzE4MzEpIj4KCQkJPHN0b3AKICAgc3R5bGU9InN0b3AtY29sb3I6I2I2 ZDhmYztzdG9wLW9wYWNpdHk6MSIKICAgb2Zmc2V0PSIwIgogICBpZD0ic3RvcDI2NjMiIC8+CgkJ CTxzdG9wCiAgIHN0eWxlPSJzdG9wLWNvbG9yOiMyMDgxZTM7c3RvcC1vcGFjaXR5OjEiCiAgIG9m ZnNldD0iMSIKICAgaWQ9InN0b3AyNjY1IiAvPgoJCTwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdy YWRpZW50CiAgICAgeDE9IjcuMTEzOCIKICAgICB5MT0iMjIuNDM1NDk5IgogICAgIHgyPSI1Ny40 MDQzMDEiCiAgICAgeTI9IjIyLjQzNTQ5OSIKICAgICBpZD0ibGluZWFyR3JhZGllbnQyNjU1Igog ICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgIGdyYWRpZW50VHJhbnNmb3Jt PSJtYXRyaXgoMS4yMDEyNCw5LjMxMzUyNmUtMiwtOS4zMTM1MjZlLTIsMS4yMDEyNCwtMy45MDE3 NzEsLTYuNjcxODMxKSI+CgkJCTxzdG9wCiAgIHN0eWxlPSJzdG9wLWNvbG9yOiMzMThlZWQ7c3Rv cC1vcGFjaXR5OjEiCiAgIG9mZnNldD0iMCIKICAgaWQ9InN0b3AyNjU3IiAvPgoJCQk8c3RvcAog ICBzdHlsZT0ic3RvcC1jb2xvcjojNzhiMGU2O3N0b3Atb3BhY2l0eToxIgogICBvZmZzZXQ9IjEi CiAgIGlkPSJzdG9wMjY1OSIgLz4KCQk8L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudAog ICAgIHgxPSI1Ni41MjczMDIiCiAgICAgeTE9IjE1My4yNzkzIgogICAgIHgyPSIxNTUuNzgzMiIK ICAgICB5Mj0iMTUzLjI3OTMiCiAgICAgaWQ9IlhNTElEXzlfIgogICAgIGdyYWRpZW50VW5pdHM9 InVzZXJTcGFjZU9uVXNlIj4KICAgICAgPHN0b3AKICAgc3R5bGU9InN0b3AtY29sb3I6IzAwNjZj YztzdG9wLW9wYWNpdHk6MSIKICAgb2Zmc2V0PSIwIgogICBpZD0ic3RvcDIzMCIgLz4KICAgICAg PHN0b3AKICAgc3R5bGU9InN0b3AtY29sb3I6IzBkNzNkOTtzdG9wLW9wYWNpdHk6MSIKICAgb2Zm c2V0PSIwLjE0MTM5OTk5IgogICBpZD0ic3RvcDIzMSIgLz4KICAgICAgPHN0b3AKICAgc3R5bGU9 InN0b3AtY29sb3I6IzIyODhlZTtzdG9wLW9wYWNpdHk6MSIKICAgb2Zmc2V0PSIwLjQzNzciCiAg IGlkPSJzdG9wMjMyIiAvPgogICAgICA8c3RvcAogICBzdHlsZT0ic3RvcC1jb2xvcjojMmY5NWZi O3N0b3Atb3BhY2l0eToxIgogICBvZmZzZXQ9IjAuNzI3Mjk5OTkiCiAgIGlkPSJzdG9wMjMzIiAv PgogICAgICA8c3RvcAogICBzdHlsZT0ic3RvcC1jb2xvcjojMzM5OWZmO3N0b3Atb3BhY2l0eTox IgogICBvZmZzZXQ9IjEiCiAgIGlkPSJzdG9wMjM0IiAvPgogICAgICA8YTptaWRQb2ludFN0b3AK ICAgb2Zmc2V0PSIwIgogICBzdHlsZT0ic3RvcC1jb2xvcjojMDA2NkNDIgogICBpZD0ibWlkUG9p bnRTdG9wMjM1IiAvPgogICAgICA8YTptaWRQb2ludFN0b3AKICAgb2Zmc2V0PSIwLjUiCiAgIHN0 eWxlPSJzdG9wLWNvbG9yOiMwMDY2Q0MiCiAgIGlkPSJtaWRQb2ludFN0b3AyMzYiIC8+CiAgICAg IDxhOm1pZFBvaW50U3RvcAogICBvZmZzZXQ9IjAuMTQxNCIKICAgc3R5bGU9InN0b3AtY29sb3I6 IzBENzNEOSIKICAgaWQ9Im1pZFBvaW50U3RvcDIzNyIgLz4KICAgICAgPGE6bWlkUG9pbnRTdG9w CiAgIG9mZnNldD0iMC41IgogICBzdHlsZT0ic3RvcC1jb2xvcjojMEQ3M0Q5IgogICBpZD0ibWlk UG9pbnRTdG9wMjM4IiAvPgogICAgICA8YTptaWRQb2ludFN0b3AKICAgb2Zmc2V0PSIwLjQzNzci CiAgIHN0eWxlPSJzdG9wLWNvbG9yOiMyMjg4RUUiCiAgIGlkPSJtaWRQb2ludFN0b3AyMzkiIC8+ CiAgICAgIDxhOm1pZFBvaW50U3RvcAogICBvZmZzZXQ9IjAuNSIKICAgc3R5bGU9InN0b3AtY29s b3I6IzIyODhFRSIKICAgaWQ9Im1pZFBvaW50U3RvcDI0MCIgLz4KICAgICAgPGE6bWlkUG9pbnRT dG9wCiAgIG9mZnNldD0iMC43MjczIgogICBzdHlsZT0ic3RvcC1jb2xvcjojMkY5NUZCIgogICBp ZD0ibWlkUG9pbnRTdG9wMjQxIiAvPgogICAgICA8YTptaWRQb2ludFN0b3AKICAgb2Zmc2V0PSIw LjUiCiAgIHN0eWxlPSJzdG9wLWNvbG9yOiMyRjk1RkIiCiAgIGlkPSJtaWRQb2ludFN0b3AyNDIi IC8+CiAgICAgIDxhOm1pZFBvaW50U3RvcAogICBvZmZzZXQ9IjEiCiAgIHN0eWxlPSJzdG9wLWNv bG9yOiMzMzk5RkYiCiAgIGlkPSJtaWRQb2ludFN0b3AyNDMiIC8+CiAgICA8L2xpbmVhckdyYWRp ZW50PjxsaW5lYXJHcmFkaWVudAogICAgIGlkPSJsaW5lYXJHcmFkaWVudDEwNDU3Ij48c3RvcAog ICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzAwMDAwMDtzdG9wLW9wYWNpdHk6MC43MTQyODU3MyIK ICAgICAgIG9mZnNldD0iMCIKICAgICAgIGlkPSJzdG9wMTA0NTkiIC8+PHN0b3AKICAgICAgIHN0 eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjAiCiAgICAgICBvZmZzZXQ9IjEi CiAgICAgICBpZD0ic3RvcDEwNDYxIiAvPjwvbGluZWFyR3JhZGllbnQ+PHJhZGlhbEdyYWRpZW50 CiAgICAgY3g9IjI0LjczNDcxMSIKICAgICBjeT0iMjEwLjI5MDMxIgogICAgIHI9IjIwLjkyOTM2 OSIKICAgICBmeD0iMjQuNzM0NzExIgogICAgIGZ5PSIyMTAuMjkwMzEiCiAgICAgaWQ9InJhZGlh bEdyYWRpZW50MTUxOSIKICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQxMDQ1NyIKICAg ICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICBncmFkaWVudFRyYW5zZm9ybT0i c2NhbGUoMi4xMTAwNjcsMC40NzM5MTkpIiAvPjxsaW5lYXJHcmFkaWVudAogICAgIHgxPSI0MS4x MTQ5OTQiCiAgICAgeTE9IjI1LjY2MzA2NyIKICAgICB4Mj0iMzguOTUwMzQ0IgogICAgIHkyPSIy Ny40NzA0NjEiCiAgICAgaWQ9ImxpbmVhckdyYWRpZW50MjY4OCIKICAgICB4bGluazpocmVmPSIj bGluZWFyR3JhZGllbnQyNjgyIgogICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgog ICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMS4xNDk4MjMsMCwwLDEuMTQ5ODIzLC01LjYw MDIyNywtNy43ODUyNzYpIiAvPjxsaW5lYXJHcmFkaWVudAogICAgIHgxPSI0MC4yNjE3IgogICAg IHkxPSIzOC43NzQzOTkiCiAgICAgeDI9IjU2LjY0OTYwMSIKICAgICB5Mj0iMTkuNDgxNTAxIgog ICAgIGlkPSJsaW5lYXJHcmFkaWVudDMxNjMiCiAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRp ZW50MjY2NyIKICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICBncmFkaWVu dFRyYW5zZm9ybT0ibWF0cml4KDAuNzE5MTQ4LDUuNTc1NzMzZS0yLC01LjU3NTczM2UtMiwwLjcx OTE0OCw0LjkxNTE5NSwyMS45MDE5NCkiIC8+PGxpbmVhckdyYWRpZW50CiAgICAgeDE9IjkuMTM0 OCIKICAgICB5MT0iMzMuODU0NSIKICAgICB4Mj0iMzUuMzUyNDAyIgogICAgIHkyPSIzNS43NDI4 MDIiCiAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzE2NiIKICAgICB4bGluazpocmVmPSIjbGluZWFy R3JhZGllbnQyNjYxIgogICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgIGdy YWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMC43MTkxNDgsNS41NzU3MzNlLTIsLTUuNTc1NzMzZS0y LDAuNzE5MTQ4LDQuOTE1MTk1LDIxLjkwMTk0KSIgLz48bGluZWFyR3JhZGllbnQKICAgICB4MT0i Ny4xMTM4IgogICAgIHkxPSIyMi40MzU0OTkiCiAgICAgeDI9IjU3LjQwNDMwMSIKICAgICB5Mj0i MjIuNDM1NDk5IgogICAgIGlkPSJsaW5lYXJHcmFkaWVudDMxNjkiCiAgICAgeGxpbms6aHJlZj0i I2xpbmVhckdyYWRpZW50MjY1NSIKICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIK ICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAuNzE5MTQ4LDUuNTc1NzMzZS0yLC01LjU3 NTczM2UtMiwwLjcxOTE0OCw0LjkxNTE5NSw3LjMwMDc0NykiIC8+PGxpbmVhckdyYWRpZW50CiAg ICAgeDE9IjU2LjUyNzMwMiIKICAgICB5MT0iMTUzLjI3OTMiCiAgICAgeDI9IjE1NS43ODMyIgog ICAgIHkyPSIxNTMuMjc5MyIKICAgICBpZD0ibGluZWFyR3JhZGllbnQ0MDQ2IgogICAgIHhsaW5r OmhyZWY9IiNYTUxJRF85XyIKICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAg ICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAuNTU4MjM3LDAsMCwwLjU1ODIzNywtMjEuMzIw OTEsLTYyLjg1NTIyKSIgLz48L2RlZnM+CgkKCQo8ZwogICBzdHlsZT0iZGlzcGxheTppbmxpbmUi CiAgIGlkPSJsYXllcjQiPjxwYXRoCiAgICAgZD0iTSA5Ni4zNTQyNDQgOTkuNjYwNTE1IEEgNDQu MTYyMzYxIDkuOTE4ODE5NCAwIDEgMSAgOC4wMjk1MjE5LDk5LjY2MDUxNSBBIDQ0LjE2MjM2MSA5 LjkxODgxOTQgMCAxIDEgIDk2LjM1NDI0NCA5OS42NjA1MTUgeiIKICAgICB0cmFuc2Zvcm09Im1h dHJpeCgwLjY1MjYyMywtMS4wMTIxMzhlLTIsLTEuMTkwMzc5ZS0yLDAuOTk1NjUyLC01LjUyNzA3 NiwtNDkuMTAxODcpIgogICAgIHN0eWxlPSJvcGFjaXR5OjAuNjA3OTI5NTQ7ZmlsbDp1cmwoI3Jh ZGlhbEdyYWRpZW50MTUxOSk7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRo OjM7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRl cmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxl IgogICAgIGlkPSJwYXRoOTY5NyIgLz48L2c+PGcKICAgc3R5bGU9ImRpc3BsYXk6aW5saW5lIgog ICBpZD0ibGF5ZXIxIj48cGF0aAogICAgIGQ9Ik0gMzkuNjUzMDg1LC04Ljc0MDg0MTcgQyAzOS42 NTMwODUsLTguNzQwODQxNyAzOS42ODYyNzcsMjMuOTc1MTEyIDM5LjY4NjI3NywyOC44NDc0MDUg TCA0Ni45MTEwODcsNDAuMTE3OTA4IEMgNDYuOTExMDg3LDM5LjgxNzY1NSA0Ni45MTEzOTksMzIu NDc1MzQyIDQ2Ljk2OTQ0NSwyMy43OTIyMTEgQyA0Ny4wMjc0OSwxNS4xMDkwODEgNDYuNzk2ODQz LDQuNDUwMDE5NSA0Ni43OTY4NDMsMi4xMzUyODk4IEMgNDcuNDcwODI5LDIuODg1Mjk4NCA1Mi4x MzA3OTEsNS40MDY4MzM2IDU0LjUyNTg0LDUuNzMwODgyOSBDIDU4LjgyOTg1OSw2LjMxMzIxNTIg NjMuMDMwNDEyLDUuMDY3NDYzNyA2Ni4yMDgxNzEsMy42NDQ4ODIyIEwgNjUuMTU3MjU4LDAuNDY1 NjAyOTEgQyA2MS41NDMyMzIsMS41NjAzMDU3IDU4Ljg5NDk1NiwtMC43ODgxOTczOSA1NS44Mjg1 NiwtMy41MDczNjk4IEMgNTMuMjk3NTEzLC01Ljc1MjA0MDggNDkuNDcyNDA3LC04Ljc1MTgwMTQg NDYuNzM2MywtOC43NTM3OTc1IEMgNDYuMDM4NTc3LC04Ljc1NDMwNjUgMzkuNjUzMDg1LC04Ljc0 MTM5OTkgMzkuNjUzMDg1LC04Ljc0MTM5OTkgTCAzOS42NTMwODUsLTguNzQwODQxNyB6ICIKICAg ICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLDIuMDYyNWUtNikiCiAgICAgc3R5bGU9ImZpbGw6IzIw NGE4MDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtkaXNwbGF5OmlubGluZSIKICAgICBpZD0i cGF0aDIyOCIgLz48cGF0aAogICAgIGQ9Ik0gMjMuMjM3Nzk1LDE2LjI2NTk5MSBDIDIyLjM0NTE2 OCwxNi43ODc1MDggOC43NjI5OTM5LDI0LjQxMDYyNSA4Ljc2Mjk5MzksMjQuNDEwNjI1IEwgOC43 NjI5OTM5LDI0LjQxMDYyNSBDIDcuODAyMzc0NCwyNS4wMTY2NiA2Ljg0MTc1NDMsMjUuODYzODUx IDYuODQxNzU0MywyNy4xNzE0NTQgQyA2Ljg0MTc1NDMsMjguNDM4MjU0IDcuMTI5Njg1LDQ2LjE2 MDI4MSA3LjEyOTY4NSw0Ni4xNjAyODEgQyA3LjE5ODMwMDYsNDcuNDM5NjkgOC4wMjE2ODg5LDQ4 LjA0NTcyMyA4LjUwMTk5ODYsNDguMjQ3NzM3IEMgOC41MDE5OTg2LDQ4LjI0NzczNyAyOC4yODcx NDIsNTUuODQ3OTQ4IDI4LjI4NzE0Miw1NS44NDc5NDggQyAyOS41MjIyMjQsNTYuMzE5MzA3IDMw Ljg5NDUzOCw1Ni4wNDk5NTggMzEuNzg2NTQzLDU1LjI0MTkwOSBDIDMxLjc4NjU0Myw1NS4yNDE5 MDkgNDQuNDc3MTY4LDQ1Ljg2Njg4OSA0Ni4wNTYyNTEsNDQuNzAzMjA2IEMgNDYuNTMzOTQsNDQu MzUxMTggNDYuOTkyNTE1LDQzLjg2OTMwMSA0Ni45OTI2MzIsNDIuOTUyNDM1IEMgNDYuOTkyODY1 LDQxLjEzOTYyMiA0Ni45NDg3MjQsMjcuNDQ3NDAzIDQ2Ljk0ODcyNCwyNy40NDc0MDMgQyA0Ni45 NDg3MjQsMjcuMDQzMzc4IDQ3LjAxNzMzOSwyNC4xMTE4NjcgNDYuODExNDksMjMuMzcxMTU3IEMg NDYuNjc0MjYsMjIuODk5Nzk2IDQxLjE4NzE0NywyMy42Njk3MzEgNDEuMTc3MjI1LDIyLjM2Mzkz OCBMIDQxLjE1ODMwNiwxOS44NzQwMTkgQyA0MS4xNTgzMDYsMTkuODc0MDE5IDI3LjYxMDkyNSwx Ni40ODE3MDcgMjYuMTg4MjY5LDE2LjEzMTMxNyBDIDI0LjczNDM3NiwxNS43NzMyMzQgMjQuMTM4 MDIsMTUuNzQwMDM1IDIzLjIzNzc5NSwxNi4yNjU5OTEgeiAiCiAgICAgdHJhbnNmb3JtPSJ0cmFu c2xhdGUoMCwyLjA2MjVlLTYpIgogICAgIHN0eWxlPSJmaWxsOiMyMDRhODA7ZmlsbC1vcGFjaXR5 OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmU7c3Ryb2tlLW1pdGVybGltaXQ6NDtkaXNw bGF5OmlubGluZSIKICAgICBpZD0icGF0aDEwIiAvPjwvZz48ZwogICBzdHlsZT0iZGlzcGxheTpp bmxpbmUiCiAgIGlkPSJsYXllcjIiPjxwYXRoCiAgICAgZD0iTSA3Ljk5MDI5NTEsMjguNTA2Njc1 IEMgNy45MTgxNjM1LDI3Ljg1NzQ5NCA4LjQyMzA4MTcsMjcuNDk2ODM4IDguOTI4MDAwNSwyNy42 NDExIEMgOS4zNjA3ODc2LDI3Ljc4NTM2MyAyOC42MjU4NTgsMzMuOTUwMzgxIDI5LjA1ODU4Niwz NC4xMjQ5IEMgMjkuNDczNjk4LDM0LjI5MjMxNSAyOS45MDY0ODYsMzQuNDg4Mjk1IDI5LjkxNjAw OCwzNS4wODU3NTggQyAyOS45MjUyNzUsMzUuNjY3MjI1IDMwLjAxNzEzMSw1My44MzcxMTMgMjku OTQ0OTk5LDU0LjI2OTkgQyAyOS44NzI4NjksNTQuNzc0ODE4IDI5LjQ4NTM5NSw1NC44Mzg4NSAy OC43NjQwODMsNTQuNjk0NTg2IEMgMjYuNjAwMTQ3LDU0LjE4OTY2OCA4LjkyODAwMDUsNDcuMTky OTQzIDguOTI4MDAwNSw0Ny4xOTI5NDMgQyA4LjM1MDk1MDcsNDYuOTc2NTUgOC4yMDY2ODgxLDQ2 LjYxNTg5MyA4LjIwNjY4ODEsNDUuOTY2NzEyIEwgNy45OTAyOTUxLDI4LjUwNjY3NSB6ICIKICAg ICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLDIuMDYyNWUtNikiCiAgICAgc3R5bGU9ImZpbGw6dXJs KCNsaW5lYXJHcmFkaWVudDMxNjYpO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lO3N0cm9r ZS1taXRlcmxpbWl0OjQiCiAgICAgaWQ9InBhdGgyNCIgLz48cGF0aAogICAgIGQ9Ik0gNDUuNDU1 OTU4LC03LjA1NDk2NiBDIDQ0LjQwMzYxNiwtNy4wNTQ5NjYgNDEuMjI0NDA1LC03LjA2NjEzMDcg NDEuMjI0NDA1LC03LjA2NjEzMDcgTCA0MS4yMjM2MjksMTYuOTkzNTY3IEwgNDUuMTcyNTQ3LDE4 LjUwODkxNiBMIDQ1LjEyMTU3NCwtMC41MTk2ODU0IEMgNDcuNzM0Mzc0LDAuNzk4MTQxMzIgNTEu MDY3NjUyLDMuNjkzNTExNSA1NC43MzY5NDQsNC4yNzAxNzAzIEMgNTguODU1NjE3LDQuOTE3NzI1 MiA2MS42MDQzNDIsMy42OTA0NTg0IDY1LjU0NTQxNSwyLjA2ODMwMTMgQyA1Ny4wNjA5NTMsNC4y MjE1OTIzIDUyLjcyOTc1NiwtNy4wNTQ5NjYgNDUuNDU1OTU4LC03LjA1NDk2NiB6ICIKICAgICB0 cmFuc2Zvcm09InRyYW5zbGF0ZSgwLDIuMDYyNWUtNikiCiAgICAgc3R5bGU9ImZpbGw6dXJsKCNs aW5lYXJHcmFkaWVudDQwNDYpO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIgogICAgIGlkPSJw YXRoMjQ0IiAvPjxwYXRoCiAgICAgZD0iTSAyNC4wMDM0MjMsMTcuMDExNDEgQyAyMy40NDczNjcs MTcuMzE4MTcxIDkuOTM3ODM3NCwyNS4wMTc5NzQgOS4yMTY1MjUsMjUuNDUwNzYgQyA4LjQ5NTIx MzMsMjUuODgzNTQ5IDguMzUwOTUwNywyNi43NDkxMjIgOS4yODg2NTY2LDI3LjAzNzY0OCBDIDEw LjIyNjM2MiwyNy4zOTgzMDQgMjguMjM2MDEzLDMzLjE5ODczNiAyOS4wMjk0NTYsMzMuNDE1MTI5 IEMgMjkuODIyODk5LDMzLjYzMTUyNCAzMC41MTU1MzIsMzMuNTg0OTIgMzEuMTQ0NDEzLDMzLjE2 ODggQyAzMS43Njg5MzcsMzIuNzU1NTYzIDQ0LjI5Mzg4OSwyMy44MzMzMTMgNDQuNzI2Njc2LDIz LjQ3MjY1OCBDIDQ1LjE1OTQ2NiwyMy4xMTIwMDEgNDQuODQ5MzQxLDIyLjIwNDg1NiA0NC4yMDAx NjIsMjIuMDYwNTk0IEMgNDMuNTUwOTgsMjEuODQ0MiAyNi43MzQ5NjUsMTcuMTc1OTUgMjYuMDM2 MDQxLDE2Ljk4MTQ3NCBDIDI0LjkwNDUwNywxNi42NjY2MjUgMjQuNTc5NDQ2LDE2LjY5MzYzNCAy NC4wMDM0MjMsMTcuMDExNDEgeiAiCiAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwyLjA2MjVl LTYpIgogICAgIHN0eWxlPSJmaWxsOnVybCgjbGluZWFyR3JhZGllbnQzMTY5KTtmaWxsLXJ1bGU6 bm9uemVybztzdHJva2U6bm9uZTtzdHJva2UtbWl0ZXJsaW1pdDo0IgogICAgIGlkPSJwYXRoMTci IC8+PHBhdGgKICAgICBkPSJNIDQxLjI1MTMwNiwxMi44NjM5MDcgTCA0NS4xMjc3NTQsMTIuNzQ4 OTk1IEMgNDUuMTYxNzc2LDEzLjQ3NTkwNSA0NS4yNDE2NCwyMS4yNTY4NjQgNDUuMjQxNjQsMjEu OTQ0Nzk3IEMgNDUuMjQxNjQsMjIuOTQ4NDc0IDQ1LjI0NTk4MSwyMy4wOTkyMjQgNDQuMzc2NzQs MjMuNzQ4MTA4IEwgMzkuOTU4MzExLDI2LjgzOTQ1OCBMIDM1LjQyODI3NiwxOS42ODA1OTQgTCA0 MS4xOTc4MzgsMjEuMTM3Njk5IEwgNDEuMjUxMzA2LDEyLjg2MzkwNyB6ICIKICAgICB0cmFuc2Zv cm09InRyYW5zbGF0ZSgwLDIuMDYyNWUtNikiCiAgICAgc3R5bGU9ImZpbGw6dXJsKCNsaW5lYXJH cmFkaWVudDI2ODgpO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25l O3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0 ZXI7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICBpZD0icGF0aDI2ODAiIC8+PHBhdGgKICAgICBkPSJN IDMwLjcxMTYyNSw1NC40MDYwNjMgQyAzMC4zMzgyMTIsNTQuNjg2OTMyIDMwLjE4NTk0OSw1NC4z MzM4MzcgMzAuMTg0MzM3LDUzLjc2NjgzMyBDIDMwLjE4MjcyNSw1My4xOTk4MyAzMC40MDM3NDgs MzUuOTM1MTY1IDMwLjQ3NjA2NiwzNS4xMzE0OTMgQyAzMC41NDgxOTcsMzQuMzI5ODk4IDMxLjAw ODMyNywzMy45ODgyODYgMzEuNDQxMTE0LDMzLjYyNzYzIEMgMzEuODczOTAxLDMzLjI2Njk3NCA0 NC43NjYwMjYsMjQuNjM0MDAyIDQ1LjI3MDk0NSwyNC4yMDEyMTUgQyA0NS43NzU4NjMsMjMuNzY4 NDI4IDQ1Ljk0MTI2MSwyNC43NjcwNzkgNDUuODY5MTI5LDI1LjE5OTg2NyBDIDQ1Ljc5Njk5OCwy NS42MzI2NTQgNDUuODYyMDg5LDQyLjAwNzEwMiA0NS44NjIwODksNDIuNTc3NzEgQyA0NS44NjIw ODksNDMuMzExOTMgNDUuNDQ2Mzg4LDQzLjU4NDY2IDQ1LjAyOTk2MSw0My45NjMyMzEgQyA0NC42 NTI5NDYsNDQuMzA1OTczIDMxLjA4MDczNCw1NC4xMjg0MzEgMzAuNzExNjI1LDU0LjQwNjA2MyB6 ICIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLDIuMDYyNWUtNikiCiAgICAgc3R5bGU9ImZp bGw6dXJsKCNsaW5lYXJHcmFkaWVudDMxNjMpO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25l O3N0cm9rZS1taXRlcmxpbWl0OjQiCiAgICAgaWQ9InBhdGgzMSIgLz48L2c+PGcKICAgc3R5bGU9 ImRpc3BsYXk6aW5saW5lIgogICBpZD0ibGF5ZXI2Ij48cGF0aAogICAgIGQ9Ik0gOS4xMjM2NTQx LDI2Ljk4NjQ4IEMgOC41NzQ1NTksMjYuNzU0MjcyIDguNDkzNDcyOCwyNi4wNjUyMDUgOS4wNTk1 NjgyLDI1LjU1OTcwNCBDIDcuODQ1NDU1LDI2LjM2NTI2NyA3Ljk5MDg4MTQsMjcuMjY3MjQ4IDcu OTkwODgxNCwyOC4yOTg3MDcgQyA3Ljk5MDg4MTQsMjcuOTI0MjIxIDguNDAxNTI4NywyNy40OTc0 MzggOS4xMTMyNDE4LDI3LjcyNzgxOSBDIDExLjQwNTI5OCwyOC40Njk3NTYgMjcuODk4NTM4LDMz LjkyODY2MiAyOC41NDc3MiwzNC4xNDUwNTYgQyAyOS4yNjkwMzMsMzQuMzYxNDQ5IDI5LjM2MjMw MiwzNS4wNjI4NTggMjkuMzYyMzAyLDM1LjcxMjAzOSBMIDI5Ljk1MzEyMSw1NC4yNjE3MjUgQyAy OS45NTMxMjEsNTQuMjYxNzI1IDMwLjA4OTU0OCwzOC41MDczIDMwLjEzNjU0NSwzNS41MTgxMzcg QyAzMC4xNTI5NzMsMzQuNDczMjYgMzAuMzk2Mjk3LDM0LjA0Mzc5MSAzMS4wNTI0MTEsMzMuNTY4 MDA1IEMgMzEuNjU5NDc3LDMzLjEyNzc4NiA0Mi4yOTk2MzQsMjUuMzA1MDgzIDQ0LjYwMDI3MSwy My41Nzg1ODcgQyA0MS4yMDgyNTIsMjUuOTY4NTIxIDMyLjY0MzQ1MSwzMi4xMTY5NjIgMzEuMjg3 MjMsMzMuMDczOCBDIDMwLjI2MzE0MywzMy43OTYzMTIgMjkuMzIzNzQyLDMzLjUyNDk4NyAyOC42 NjEzNDQsMzMuMjk2MTYzIEMgMjcuMjQzNzI4LDMyLjgwNjQ0OCA5LjY3Mjc0OTMsMjcuMjE4Njg3 IDkuMTIzNjU0MSwyNi45ODY0OCB6ICIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLDIuMDYy NWUtNikiCiAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6 bm9uZTtzdHJva2UtbWl0ZXJsaW1pdDo0O2Rpc3BsYXk6aW5saW5lIgogICAgIGlkPSJwYXRoMzUi IC8+PC9nPjwvc3ZnPg== ------=_Part_10042_19415251.1149198844729 Content-Type: image/svg+xml; name="rhythmbox-like-tango-no-glitch-inkscape.svg" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="rhythmbox-like-tango-no-glitch-inkscape.svg" X-Attachment-Id: f_enxnbq0o PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjwh LS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciA5LjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAg LS0+CjxzdmcKICAgeG1sbnM6aT0iJmFtcDtuc19haTsiCiAgIHhtbG5zOmE9Imh0dHA6Ly9ucy5h ZG9iZS5jb20vQWRvYmVTVkdWaWV3ZXJFeHRlbnNpb25zLzMuMC8iCiAgIHhtbG5zOmRjPSJodHRw Oi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgeG1sbnM6Y2M9Imh0dHA6Ly93ZWIucmVz b3VyY2Uub3JnL2NjLyIKICAgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIy LXJkZi1zeW50YXgtbnMjIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3Zn IgogICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zOnhsaW5rPSJo dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL2lu a3NjYXBlLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3Nj YXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0 aD0iMTI4IgogICBoZWlnaHQ9IjEyOCIKICAgdmlld0JveD0iMCAwIDcwLjIgNDgiCiAgIHhtbDpz cGFjZT0icHJlc2VydmUiCiAgIGlkPSJzdmcyIgogICBzb2RpcG9kaTp2ZXJzaW9uPSIwLjMyIgog ICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjQzIgogICBzb2RpcG9kaTpkb2NuYW1lPSJyaHl0aG1ib3gt bGlrZS10YW5nby1uby1nbGl0Y2gtaW5rc2NhcGUuc3ZnIgogICBzb2RpcG9kaTpkb2NiYXNlPSIv aG9tZS90b2YvaW1hZ2VzL3ZhcmlvdXMiCiAgIHZlcnNpb249IjEuMCI+PG1ldGFkYXRhCiAgIGlk PSJtZXRhZGF0YTY0Ij48cmRmOlJERj48Y2M6V29yawogICAgICAgcmRmOmFib3V0PSIiPjxkYzpm b3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PjxkYzp0eXBlCiAgICAgICAgIHJkZjpyZXNv dXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+PC9jYzpXb3Jr PjwvcmRmOlJERj48L21ldGFkYXRhPjxkZWZzCiAgIGlkPSJkZWZzNjIiPjxsaW5lYXJHcmFkaWVu dAogICAgIGlkPSJsaW5lYXJHcmFkaWVudDI2ODIiPjxzdG9wCiAgICAgICBzdHlsZT0ic3RvcC1j b2xvcjojMjg4ZWY0O3N0b3Atb3BhY2l0eToxOyIKICAgICAgIG9mZnNldD0iMCIKICAgICAgIGlk PSJzdG9wMjY4NCIgLz48c3RvcAogICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzI4OGVmNDtzdG9w LW9wYWNpdHk6MDsiCiAgICAgICBvZmZzZXQ9IjEiCiAgICAgICBpZD0ic3RvcDI2ODYiIC8+PC9s aW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQKICAgICBpZD0ibGluZWFyR3JhZGllbnQyNjY3 IgogICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgIHgxPSI0MC4yNjE3Igog ICAgIHkxPSIzOC43NzQzOTkiCiAgICAgeDI9IjU2LjY0OTYwMSIKICAgICB5Mj0iMTkuNDgxNTAx IgogICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMS4yMDEyNCw5LjMxMzUyNmUtMiwtOS4z MTM1MjZlLTIsMS4yMDEyNCwtMy45MDE3NzEsLTYuNjcxODMxKSI+CgkJCTxzdG9wCiAgIG9mZnNl dD0iMCIKICAgc3R5bGU9InN0b3AtY29sb3I6IzA4NmVkNDtzdG9wLW9wYWNpdHk6MSIKICAgaWQ9 InN0b3AyNjY5IiAvPgoJCQk8c3RvcAogICBvZmZzZXQ9IjEiCiAgIHN0eWxlPSJzdG9wLWNvbG9y OiMxYTUwODY7c3RvcC1vcGFjaXR5OjEiCiAgIGlkPSJzdG9wMjY3MSIgLz4KCQk8L2xpbmVhckdy YWRpZW50PjxsaW5lYXJHcmFkaWVudAogICAgIGlkPSJsaW5lYXJHcmFkaWVudDI2NjEiCiAgICAg Z3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgeDE9IjkuMTM0OCIKICAgICB5MT0i MzMuODU0NSIKICAgICB4Mj0iMzUuMzUyNDAyIgogICAgIHkyPSIzNS43NDI4MDIiCiAgICAgZ3Jh ZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxLjIwMTI0LDkuMzEzNTI2ZS0yLC05LjMxMzUyNmUtMiwx LjIwMTI0LC0zLjkwMTc3MSwtNi42NzE4MzEpIj4KCQkJPHN0b3AKICAgb2Zmc2V0PSIwIgogICBz dHlsZT0ic3RvcC1jb2xvcjojYjZkOGZjO3N0b3Atb3BhY2l0eToxIgogICBpZD0ic3RvcDI2NjMi IC8+CgkJCTxzdG9wCiAgIG9mZnNldD0iMSIKICAgc3R5bGU9InN0b3AtY29sb3I6IzIwODFlMztz dG9wLW9wYWNpdHk6MSIKICAgaWQ9InN0b3AyNjY1IiAvPgoJCTwvbGluZWFyR3JhZGllbnQ+PGxp bmVhckdyYWRpZW50CiAgICAgaWQ9ImxpbmVhckdyYWRpZW50MjY1NSIKICAgICBncmFkaWVudFVu aXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICB4MT0iNy4xMTM4IgogICAgIHkxPSIyMi40MzU0OTki CiAgICAgeDI9IjU3LjQwNDMwMSIKICAgICB5Mj0iMjIuNDM1NDk5IgogICAgIGdyYWRpZW50VHJh bnNmb3JtPSJtYXRyaXgoMS4yMDEyNCw5LjMxMzUyNmUtMiwtOS4zMTM1MjZlLTIsMS4yMDEyNCwt My45MDE3NzEsLTYuNjcxODMxKSI+CgkJCTxzdG9wCiAgIG9mZnNldD0iMCIKICAgc3R5bGU9InN0 b3AtY29sb3I6IzMxOGVlZDtzdG9wLW9wYWNpdHk6MSIKICAgaWQ9InN0b3AyNjU3IiAvPgoJCQk8 c3RvcAogICBvZmZzZXQ9IjEiCiAgIHN0eWxlPSJzdG9wLWNvbG9yOiM3OGIwZTY7c3RvcC1vcGFj aXR5OjEiCiAgIGlkPSJzdG9wMjY1OSIgLz4KCQk8L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFk aWVudAogICAgIHkyPSIxNTMuMjc5MyIKICAgICB4Mj0iMTU1Ljc4MzIiCiAgICAgeTE9IjE1My4y NzkzIgogICAgIHgxPSI1Ni41MjczIgogICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNl IgogICAgIGlkPSJYTUxJRF85XyI+CiAgICAgIDxzdG9wCiAgIGlkPSJzdG9wMjMwIgogICBzdHls ZT0ic3RvcC1jb2xvcjojMDA2NkNDIgogICBvZmZzZXQ9IjAiIC8+CiAgICAgIDxzdG9wCiAgIGlk PSJzdG9wMjMxIgogICBzdHlsZT0ic3RvcC1jb2xvcjojMEQ3M0Q5IgogICBvZmZzZXQ9IjAuMTQx NCIgLz4KICAgICAgPHN0b3AKICAgaWQ9InN0b3AyMzIiCiAgIHN0eWxlPSJzdG9wLWNvbG9yOiMy Mjg4RUUiCiAgIG9mZnNldD0iMC40Mzc3IiAvPgogICAgICA8c3RvcAogICBpZD0ic3RvcDIzMyIK ICAgc3R5bGU9InN0b3AtY29sb3I6IzJGOTVGQiIKICAgb2Zmc2V0PSIwLjcyNzMiIC8+CiAgICAg IDxzdG9wCiAgIGlkPSJzdG9wMjM0IgogICBzdHlsZT0ic3RvcC1jb2xvcjojMzM5OUZGIgogICBv ZmZzZXQ9IjEiIC8+CiAgICAgIDxhOm1pZFBvaW50U3RvcAogICBpZD0ibWlkUG9pbnRTdG9wMjM1 IgogICBzdHlsZT0ic3RvcC1jb2xvcjojMDA2NkNDIgogICBvZmZzZXQ9IjAiIC8+CiAgICAgIDxh Om1pZFBvaW50U3RvcAogICBpZD0ibWlkUG9pbnRTdG9wMjM2IgogICBzdHlsZT0ic3RvcC1jb2xv cjojMDA2NkNDIgogICBvZmZzZXQ9IjAuNSIgLz4KICAgICAgPGE6bWlkUG9pbnRTdG9wCiAgIGlk PSJtaWRQb2ludFN0b3AyMzciCiAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwRDczRDkiCiAgIG9mZnNl dD0iMC4xNDE0IiAvPgogICAgICA8YTptaWRQb2ludFN0b3AKICAgaWQ9Im1pZFBvaW50U3RvcDIz OCIKICAgc3R5bGU9InN0b3AtY29sb3I6IzBENzNEOSIKICAgb2Zmc2V0PSIwLjUiIC8+CiAgICAg IDxhOm1pZFBvaW50U3RvcAogICBpZD0ibWlkUG9pbnRTdG9wMjM5IgogICBzdHlsZT0ic3RvcC1j b2xvcjojMjI4OEVFIgogICBvZmZzZXQ9IjAuNDM3NyIgLz4KICAgICAgPGE6bWlkUG9pbnRTdG9w CiAgIGlkPSJtaWRQb2ludFN0b3AyNDAiCiAgIHN0eWxlPSJzdG9wLWNvbG9yOiMyMjg4RUUiCiAg IG9mZnNldD0iMC41IiAvPgogICAgICA8YTptaWRQb2ludFN0b3AKICAgaWQ9Im1pZFBvaW50U3Rv cDI0MSIKICAgc3R5bGU9InN0b3AtY29sb3I6IzJGOTVGQiIKICAgb2Zmc2V0PSIwLjcyNzMiIC8+ CiAgICAgIDxhOm1pZFBvaW50U3RvcAogICBpZD0ibWlkUG9pbnRTdG9wMjQyIgogICBzdHlsZT0i c3RvcC1jb2xvcjojMkY5NUZCIgogICBvZmZzZXQ9IjAuNSIgLz4KICAgICAgPGE6bWlkUG9pbnRT dG9wCiAgIGlkPSJtaWRQb2ludFN0b3AyNDMiCiAgIHN0eWxlPSJzdG9wLWNvbG9yOiMzMzk5RkYi CiAgIG9mZnNldD0iMSIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50CiAg ICAgaWQ9ImxpbmVhckdyYWRpZW50MTA0NTciPjxzdG9wCiAgICAgICBpZD0ic3RvcDEwNDU5Igog ICAgICAgb2Zmc2V0PSIwIgogICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzAwMDAwMDtzdG9wLW9w YWNpdHk6MC43MTQyODU3MzsiIC8+PHN0b3AKICAgICAgIGlkPSJzdG9wMTA0NjEiCiAgICAgICBv ZmZzZXQ9IjEiCiAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMDAwMDAwO3N0b3Atb3BhY2l0eTow OyIgLz48L2xpbmVhckdyYWRpZW50PjxyYWRpYWxHcmFkaWVudAogICAgIGlua3NjYXBlOmNvbGxl Y3Q9ImFsd2F5cyIKICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQxMDQ1NyIKICAgICBp ZD0icmFkaWFsR3JhZGllbnQxNTE5IgogICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNl IgogICAgIGdyYWRpZW50VHJhbnNmb3JtPSJzY2FsZSgyLjExMDA2NywwLjQ3MzkxOSkiCiAgICAg Y3g9IjI0LjczNDcxMSIKICAgICBjeT0iMjEwLjI5MDMxIgogICAgIGZ4PSIyNC43MzQ3MTEiCiAg ICAgZnk9IjIxMC4yOTAzMSIKICAgICByPSIyMC45MjkzNjkiIC8+PGxpbmVhckdyYWRpZW50CiAg ICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFk aWVudDI2ODIiCiAgICAgaWQ9ImxpbmVhckdyYWRpZW50MjY4OCIKICAgICB4MT0iNDEuMTE0OTk0 IgogICAgIHkxPSIyNS42NjMwNjciCiAgICAgeDI9IjM4Ljk1MDM0NCIKICAgICB5Mj0iMjcuNDcw NDYxIgogICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgIGdyYWRpZW50VHJh bnNmb3JtPSJtYXRyaXgoMS4xNDk4MjMsMCwwLDEuMTQ5ODIzLC01LjYwMDIyNywtNy43ODUyNzYp IiAvPjxsaW5lYXJHcmFkaWVudAogICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICB4 bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQyNjY3IgogICAgIGlkPSJsaW5lYXJHcmFkaWVudDMx NjMiCiAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgZ3JhZGllbnRUcmFu c2Zvcm09Im1hdHJpeCgwLjcxOTE0OCw1LjU3NTczM2UtMiwtNS41NzU3MzNlLTIsMC43MTkxNDgs NC45MTUxOTUsMjEuOTAxOTQpIgogICAgIHgxPSI0MC4yNjE3IgogICAgIHkxPSIzOC43NzQzOTki CiAgICAgeDI9IjU2LjY0OTYwMSIKICAgICB5Mj0iMTkuNDgxNTAxIiAvPjxsaW5lYXJHcmFkaWVu dAogICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICB4bGluazpocmVmPSIjbGluZWFy R3JhZGllbnQyNjYxIgogICAgIGlkPSJsaW5lYXJHcmFkaWVudDMxNjYiCiAgICAgZ3JhZGllbnRV bml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjcx OTE0OCw1LjU3NTczM2UtMiwtNS41NzU3MzNlLTIsMC43MTkxNDgsNC45MTUxOTUsMjEuOTAxOTQp IgogICAgIHgxPSI5LjEzNDgiCiAgICAgeTE9IjMzLjg1NDUiCiAgICAgeDI9IjM1LjM1MjQwMiIK ICAgICB5Mj0iMzUuNzQyODAyIiAvPjxsaW5lYXJHcmFkaWVudAogICAgIGlua3NjYXBlOmNvbGxl Y3Q9ImFsd2F5cyIKICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQyNjU1IgogICAgIGlk PSJsaW5lYXJHcmFkaWVudDMxNjkiCiAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2Ui CiAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjcxOTE0OCw1LjU3NTczM2UtMiwtNS41 NzU3MzNlLTIsMC43MTkxNDgsNC45MTUxOTUsNy4zMDA3NDcpIgogICAgIHgxPSI3LjExMzgiCiAg ICAgeTE9IjIyLjQzNTQ5OSIKICAgICB4Mj0iNTcuNDA0MzAxIgogICAgIHkyPSIyMi40MzU0OTki IC8+PGxpbmVhckdyYWRpZW50CiAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgIHhs aW5rOmhyZWY9IiNYTUxJRF85XyIKICAgICBpZD0ibGluZWFyR3JhZGllbnQ0MDQ2IgogICAgIGdy YWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgIHgxPSI1Ni41MjczMDIiCiAgICAgeTE9 IjE1My4yNzkzIgogICAgIHgyPSIxNTUuNzgzMiIKICAgICB5Mj0iMTUzLjI3OTMiCiAgICAgZ3Jh ZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjU1ODIzNywwLDAsMC41NTgyMzcsLTIxLjMyMDkxLC02 Mi44NTUyMikiIC8+PC9kZWZzPjxzb2RpcG9kaTpuYW1lZHZpZXcKICAgaW5rc2NhcGU6d2luZG93 LWhlaWdodD0iMTAwMSIKICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIxNjQ4IgogICBpbmtzY2Fw ZTpwYWdlc2hhZG93PSIyIgogICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICBib3JkZXJv cGFjaXR5PSIxLjAiCiAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICBwYWdlY29sb3I9IiNmZmZm ZmYiCiAgIGlkPSJiYXNlIgogICBpbmtzY2FwZTp6b29tPSI1LjY1Njg1NDMiCiAgIGlua3NjYXBl OmN4PSI3Ny4xODgyNDIiCiAgIGlua3NjYXBlOmN5PSI1OS42NjE2NDIiCiAgIGlua3NjYXBlOndp bmRvdy14PSIzMiIKICAgaW5rc2NhcGU6d2luZG93LXk9IjI0IgogICBpbmtzY2FwZTpjdXJyZW50 LWxheWVyPSJsYXllcjIiCiAgIHNob3dndWlkZXM9InRydWUiCiAgIGlua3NjYXBlOmd1aWRlLWJi b3g9InRydWUiIC8+CgkKCQo8ZwogICBpbmtzY2FwZTpncm91cG1vZGU9ImxheWVyIgogICBpZD0i bGF5ZXI0IgogICBpbmtzY2FwZTpsYWJlbD0ic2hhZG93IgogICBzdHlsZT0iZGlzcGxheTppbmxp bmUiPjxwYXRoCiAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC42NTI2MjMsLTEuMDEyMTM4ZS0yLC0x LjE5MDM3OWUtMiwwLjk5NTY1MiwtNS41MjcwNzYsLTQ5LjEwMTg3KSIKICAgICBkPSJNIDk2LjM1 NDI0NCA5OS42NjA1MTUgQSA0NC4xNjIzNjEgOS45MTg4MTk0IDAgMSAxICA4LjAyOTUyMTksOTku NjYwNTE1IEEgNDQuMTYyMzYxIDkuOTE4ODE5NCAwIDEgMSAgOTYuMzU0MjQ0IDk5LjY2MDUxNSB6 IgogICAgIHNvZGlwb2RpOnJ5PSI5LjkxODgxOTQiCiAgICAgc29kaXBvZGk6cng9IjQ0LjE2MjM2 MSIKICAgICBzb2RpcG9kaTpjeT0iOTkuNjYwNTE1IgogICAgIHNvZGlwb2RpOmN4PSI1Mi4xOTE4 ODMiCiAgICAgaWQ9InBhdGg5Njk3IgogICAgIHN0eWxlPSJvcGFjaXR5OjAuNjA3OTI5NTQ7Zmls bDp1cmwoI3JhZGlhbEdyYWRpZW50MTUxOSk7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ry b2tlLXdpZHRoOjM7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0 cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtkaXNwbGF5OmlubGluZTtvdmVyZmxv dzp2aXNpYmxlIgogICAgIHNvZGlwb2RpOnR5cGU9ImFyYyIgLz48L2c+PGcKICAgaW5rc2NhcGU6 Z3JvdXBtb2RlPSJsYXllciIKICAgaWQ9ImxheWVyMSIKICAgaW5rc2NhcGU6bGFiZWw9Im91dGxp bmUiCiAgIHN0eWxlPSJkaXNwbGF5OmlubGluZSI+PHBhdGgKICAgICB0cmFuc2Zvcm09InRyYW5z bGF0ZSgwLDIuMDYyNWUtNikiCiAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjY2NzY3NjY3NzY2Mi CiAgICAgaWQ9InBhdGgyMjgiCiAgICAgZD0iTSAzOS42NTMwODUsLTguNzQwODQxNyBDIDM5LjY1 MzA4NSwtOC43NDA4NDE3IDM5LjY4NjI3NywyMy45NzUxMTIgMzkuNjg2Mjc3LDI4Ljg0NzQwNSBM IDQ2LjkxMTA4Nyw0MC4xMTc5MDggQyA0Ni45MTEwODcsMzkuODE3NjU1IDQ2LjkxMTM5OSwzMi40 NzUzNDIgNDYuOTY5NDQ1LDIzLjc5MjIxMSBDIDQ3LjAyNzQ5LDE1LjEwOTA4MSA0Ni43OTY4NDMs NC40NTAwMTk1IDQ2Ljc5Njg0MywyLjEzNTI4OTggQyA0Ny40NzA4MjksMi44ODUyOTg0IDUyLjEz MDc5MSw1LjQwNjgzMzYgNTQuNTI1ODQsNS43MzA4ODI5IEMgNTguODI5ODU5LDYuMzEzMjE1MiA2 My4wMzA0MTIsNS4wNjc0NjM3IDY2LjIwODE3MSwzLjY0NDg4MjIgTCA2NS4xNTcyNTgsMC40NjU2 MDI5MSBDIDYxLjU0MzIzMiwxLjU2MDMwNTcgNTguODk0OTU2LC0wLjc4ODE5NzM5IDU1LjgyODU2 LC0zLjUwNzM2OTggQyA1My4yOTc1MTMsLTUuNzUyMDQwOCA0OS40NzI0MDcsLTguNzUxODAxNCA0 Ni43MzYzLC04Ljc1Mzc5NzUgQyA0Ni4wMzg1NzcsLTguNzU0MzA2NSAzOS42NTMwODUsLTguNzQx Mzk5OSAzOS42NTMwODUsLTguNzQxMzk5OSBMIDM5LjY1MzA4NSwtOC43NDA4NDE3IHogIgogICAg IHN0eWxlPSJmaWxsOiMyMDRhODA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7ZGlzcGxheTpp bmxpbmUiCiAgICAgaTprbm9ja291dD0iT2ZmIiAvPjxwYXRoCiAgICAgaWQ9InBhdGgxMCIKICAg ICBkPSJNIDIzLjIzNzc5NSwxNi4yNjU5OTEgQyAyMi4zNDUxNjgsMTYuNzg3NTA4IDguNzYyOTkz OSwyNC40MTA2MjUgOC43NjI5OTM5LDI0LjQxMDYyNSBMIDguNzYyOTkzOSwyNC40MTA2MjUgQyA3 LjgwMjM3NDQsMjUuMDE2NjYgNi44NDE3NTQzLDI1Ljg2Mzg1MSA2Ljg0MTc1NDMsMjcuMTcxNDU0 IEMgNi44NDE3NTQzLDI4LjQzODI1NCA3LjEyOTY4NSw0Ni4xNjAyODEgNy4xMjk2ODUsNDYuMTYw MjgxIEMgNy4xOTgzMDA2LDQ3LjQzOTY5IDguMDIxNjg4OSw0OC4wNDU3MjMgOC41MDE5OTg2LDQ4 LjI0NzczNyBDIDguNTAxOTk4Niw0OC4yNDc3MzcgMjguMjg3MTQyLDU1Ljg0Nzk0OCAyOC4yODcx NDIsNTUuODQ3OTQ4IEMgMjkuNTIyMjI0LDU2LjMxOTMwNyAzMC44OTQ1MzgsNTYuMDQ5OTU4IDMx Ljc4NjU0Myw1NS4yNDE5MDkgQyAzMS43ODY1NDMsNTUuMjQxOTA5IDQ0LjQ3NzE2OCw0NS44NjY4 ODkgNDYuMDU2MjUxLDQ0LjcwMzIwNiBDIDQ2LjUzMzk0LDQ0LjM1MTE4IDQ2Ljk5MjUxNSw0My44 NjkzMDEgNDYuOTkyNjMyLDQyLjk1MjQzNSBDIDQ2Ljk5Mjg2NSw0MS4xMzk2MjIgNDYuOTQ4NzI0 LDI3LjQ0NzQwMyA0Ni45NDg3MjQsMjcuNDQ3NDAzIEMgNDYuOTQ4NzI0LDI3LjA0MzM3OCA0Ny4w MTczMzksMjQuMTExODY3IDQ2LjgxMTQ5LDIzLjM3MTE1NyBDIDQ2LjY3NDI2LDIyLjg5OTc5NiA0 MS4xODcxNDcsMjMuNjY5NzMxIDQxLjE3NzIyNSwyMi4zNjM5MzggTCA0MS4xNTgzMDYsMTkuODc0 MDE5IEMgNDEuMTU4MzA2LDE5Ljg3NDAxOSAyNy42MTA5MjUsMTYuNDgxNzA3IDI2LjE4ODI2OSwx Ni4xMzEzMTcgQyAyNC43MzQzNzYsMTUuNzczMjM0IDI0LjEzODAyLDE1Ljc0MDAzNSAyMy4yMzc3 OTUsMTYuMjY1OTkxIHogIgogICAgIHN0eWxlPSJmaWxsOiMyMDRhODA7ZmlsbC1vcGFjaXR5OjE7 ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmU7c3Ryb2tlLW1pdGVybGltaXQ6NDtkaXNwbGF5 OmlubGluZSIKICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjY3pjY2Njc3NjY3NjenoiCiAgICAg dHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwyLjA2MjVlLTYpIiAvPjwvZz48ZwogICBpbmtzY2FwZTpn cm91cG1vZGU9ImxheWVyIgogICBpZD0ibGF5ZXIyIgogICBpbmtzY2FwZTpsYWJlbD0iaW5zaWRl IgogICBzdHlsZT0iZGlzcGxheTppbmxpbmUiPjxwYXRoCiAgICAgaWQ9InBhdGgyNCIKICAgICBk PSJNIDcuOTkwMjk1MSwyOC41MDY2NzUgQyA3LjkxODE2MzUsMjcuODU3NDk0IDguNDIzMDgxNywy Ny40OTY4MzggOC45MjgwMDA1LDI3LjY0MTEgQyA5LjM2MDc4NzYsMjcuNzg1MzYzIDI4LjYyNTg1 OCwzMy45NTAzODEgMjkuMDU4NTg2LDM0LjEyNDkgQyAyOS40NzM2OTgsMzQuMjkyMzE1IDI5Ljkw NjQ4NiwzNC40ODgyOTUgMjkuOTE2MDA4LDM1LjA4NTc1OCBDIDI5LjkyNTI3NSwzNS42NjcyMjUg MzAuMDE3MTMxLDUzLjgzNzExMyAyOS45NDQ5OTksNTQuMjY5OSBDIDI5Ljg3Mjg2OSw1NC43NzQ4 MTggMjkuNDg1Mzk1LDU0LjgzODg1IDI4Ljc2NDA4Myw1NC42OTQ1ODYgQyAyNi42MDAxNDcsNTQu MTg5NjY4IDguOTI4MDAwNSw0Ny4xOTI5NDMgOC45MjgwMDA1LDQ3LjE5Mjk0MyBDIDguMzUwOTUw Nyw0Ni45NzY1NSA4LjIwNjY4ODEsNDYuNjE1ODkzIDguMjA2Njg4MSw0NS45NjY3MTIgTCA3Ljk5 MDI5NTEsMjguNTA2Njc1IHogIgogICAgIHN0eWxlPSJmaWxsOnVybCgjbGluZWFyR3JhZGllbnQz MTY2KTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZTtzdHJva2UtbWl0ZXJsaW1pdDo0Igog ICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2N6c2NjY2NjIgogICAgIHRyYW5zZm9ybT0idHJhbnNs YXRlKDAsMi4wNjI1ZS02KSIgLz48cGF0aAogICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsMi4w NjI1ZS02KSIKICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjY2Njc2NzIgogICAgIGlkPSJwYXRo MjQ0IgogICAgIGQ9Ik0gNDUuNDU1OTU4LC03LjA1NDk2NiBDIDQ0LjQwMzYxNiwtNy4wNTQ5NjYg NDEuMjI0NDA1LC03LjA2NjEzMDcgNDEuMjI0NDA1LC03LjA2NjEzMDcgTCA0MS4yMjM2MjksMTYu OTkzNTY3IEwgNDUuMTcyNTQ3LDE4LjUwODkxNiBMIDQ1LjEyMTU3NCwtMC41MTk2ODU0IEMgNDcu NzM0Mzc0LDAuNzk4MTQxMzIgNTEuMDY3NjUyLDMuNjkzNTExNSA1NC43MzY5NDQsNC4yNzAxNzAz IEMgNTguODU1NjE3LDQuOTE3NzI1MiA2MS42MDQzNDIsMy42OTA0NTg0IDY1LjU0NTQxNSwyLjA2 ODMwMTMgQyA1Ny4wNjA5NTMsNC4yMjE1OTIzIDUyLjcyOTc1NiwtNy4wNTQ5NjYgNDUuNDU1OTU4 LC03LjA1NDk2NiB6ICIKICAgICBzdHlsZT0iZmlsbDp1cmwoI2xpbmVhckdyYWRpZW50NDA0Nik7 c3Ryb2tlOm5vbmU7ZmlsbC1vcGFjaXR5OjEuMCIgLz48cGF0aAogICAgIGlkPSJwYXRoMTciCiAg ICAgZD0iTSAyNC4wMDM0MjMsMTcuMDExNDEgQyAyMy40NDczNjcsMTcuMzE4MTcxIDkuOTM3ODM3 NCwyNS4wMTc5NzQgOS4yMTY1MjUsMjUuNDUwNzYgQyA4LjQ5NTIxMzMsMjUuODgzNTQ5IDguMzUw OTUwNywyNi43NDkxMjIgOS4yODg2NTY2LDI3LjAzNzY0OCBDIDEwLjIyNjM2MiwyNy4zOTgzMDQg MjguMjM2MDEzLDMzLjE5ODczNiAyOS4wMjk0NTYsMzMuNDE1MTI5IEMgMjkuODIyODk5LDMzLjYz MTUyNCAzMC41MTU1MzIsMzMuNTg0OTIgMzEuMTQ0NDEzLDMzLjE2ODggQyAzMS43Njg5MzcsMzIu NzU1NTYzIDQ0LjI5Mzg4OSwyMy44MzMzMTMgNDQuNzI2Njc2LDIzLjQ3MjY1OCBDIDQ1LjE1OTQ2 NiwyMy4xMTIwMDEgNDQuODQ5MzQxLDIyLjIwNDg1NiA0NC4yMDAxNjIsMjIuMDYwNTk0IEMgNDMu NTUwOTgsMjEuODQ0MiAyNi43MzQ5NjUsMTcuMTc1OTUgMjYuMDM2MDQxLDE2Ljk4MTQ3NCBDIDI0 LjkwNDUwNywxNi42NjY2MjUgMjQuNTc5NDQ2LDE2LjY5MzYzNCAyNC4wMDM0MjMsMTcuMDExNDEg eiAiCiAgICAgc3R5bGU9ImZpbGw6dXJsKCNsaW5lYXJHcmFkaWVudDMxNjkpO2ZpbGwtcnVsZTpu b256ZXJvO3N0cm9rZTpub25lO3N0cm9rZS1taXRlcmxpbWl0OjQiCiAgICAgc29kaXBvZGk6bm9k ZXR5cGVzPSJjc2NzenNjc3oiCiAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwyLjA2MjVlLTYp IiAvPjxwYXRoCiAgICAgc3R5bGU9ImZpbGw6dXJsKCNsaW5lYXJHcmFkaWVudDI2ODgpO2ZpbGwt b3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDoxcHg7 c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6 MSIKICAgICBkPSJNIDQxLjI1MTMwNiwxMi44NjM5MDcgTCA0NS4xMjc3NTQsMTIuNzQ4OTk1IEMg NDUuMTYxNzc2LDEzLjQ3NTkwNSA0NS4yNDE2NCwyMS4yNTY4NjQgNDUuMjQxNjQsMjEuOTQ0Nzk3 IEMgNDUuMjQxNjQsMjIuOTQ4NDc0IDQ1LjI0NTk4MSwyMy4wOTkyMjQgNDQuMzc2NzQsMjMuNzQ4 MTA4IEwgMzkuOTU4MzExLDI2LjgzOTQ1OCBMIDM1LjQyODI3NiwxOS42ODA1OTQgTCA0MS4xOTc4 MzgsMjEuMTM3Njk5IEwgNDEuMjUxMzA2LDEyLjg2MzkwNyB6ICIKICAgICBpZD0icGF0aDI2ODAi CiAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjY3NjY2NjYyIKICAgICB0cmFuc2Zvcm09InRyYW5z bGF0ZSgwLDIuMDYyNWUtNikiIC8+PHBhdGgKICAgICBpZD0icGF0aDMxIgogICAgIGQ9Ik0gMzAu NzExNjI1LDU0LjQwNjA2MyBDIDMwLjMzODIxMiw1NC42ODY5MzIgMzAuMTg1OTQ5LDU0LjMzMzgz NyAzMC4xODQzMzcsNTMuNzY2ODMzIEMgMzAuMTgyNzI1LDUzLjE5OTgzIDMwLjQwMzc0OCwzNS45 MzUxNjUgMzAuNDc2MDY2LDM1LjEzMTQ5MyBDIDMwLjU0ODE5NywzNC4zMjk4OTggMzEuMDA4MzI3 LDMzLjk4ODI4NiAzMS40NDExMTQsMzMuNjI3NjMgQyAzMS44NzM5MDEsMzMuMjY2OTc0IDQ0Ljc2 NjAyNiwyNC42MzQwMDIgNDUuMjcwOTQ1LDI0LjIwMTIxNSBDIDQ1Ljc3NTg2MywyMy43Njg0Mjgg NDUuOTQxMjYxLDI0Ljc2NzA3OSA0NS44NjkxMjksMjUuMTk5ODY3IEMgNDUuNzk2OTk4LDI1LjYz MjY1NCA0NS44NjIwODksNDIuMDA3MTAyIDQ1Ljg2MjA4OSw0Mi41Nzc3MSBDIDQ1Ljg2MjA4OSw0 My4zMTE5MyA0NS40NDYzODgsNDMuNTg0NjYgNDUuMDI5OTYxLDQzLjk2MzIzMSBDIDQ0LjY1Mjk0 Niw0NC4zMDU5NzMgMzEuMDgwNzM0LDU0LjEyODQzMSAzMC43MTE2MjUsNTQuNDA2MDYzIHogIgog ICAgIHN0eWxlPSJmaWxsOnVybCgjbGluZWFyR3JhZGllbnQzMTYzKTtmaWxsLXJ1bGU6bm9uemVy bztzdHJva2U6bm9uZTtzdHJva2UtbWl0ZXJsaW1pdDo0IgogICAgIHNvZGlwb2RpOm5vZGV0eXBl cz0iY3p6enNzc3NzIgogICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsMi4wNjI1ZS02KSIgLz48 L2c+PGcKICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciIKICAgaWQ9ImxheWVyNiIKICAgaW5r c2NhcGU6bGFiZWw9ImhpZ2hsaWdodCIKICAgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj48cGF0aAog ICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmU7c3Ry b2tlLW1pdGVybGltaXQ6NDtkaXNwbGF5OmlubGluZSIKICAgICBzb2RpcG9kaTpub2RldHlwZXM9 ImNjY3NjY2NzemNzc3oiCiAgICAgZD0iTSA5LjEyMzY1NDEsMjYuOTg2NDggQyA4LjU3NDU1OSwy Ni43NTQyNzIgOC40OTM0NzI4LDI2LjA2NTIwNSA5LjA1OTU2ODIsMjUuNTU5NzA0IEMgNy44NDU0 NTUsMjYuMzY1MjY3IDcuOTkwODgxNCwyNy4yNjcyNDggNy45OTA4ODE0LDI4LjI5ODcwNyBDIDcu OTkwODgxNCwyNy45MjQyMjEgOC40MDE1Mjg3LDI3LjQ5NzQzOCA5LjExMzI0MTgsMjcuNzI3ODE5 IEMgMTEuNDA1Mjk4LDI4LjQ2OTc1NiAyNy44OTg1MzgsMzMuOTI4NjYyIDI4LjU0NzcyLDM0LjE0 NTA1NiBDIDI5LjI2OTAzMywzNC4zNjE0NDkgMjkuMzYyMzAyLDM1LjA2Mjg1OCAyOS4zNjIzMDIs MzUuNzEyMDM5IEwgMjkuOTUzMTIxLDU0LjI2MTcyNSBDIDI5Ljk1MzEyMSw1NC4yNjE3MjUgMzAu MDg5NTQ4LDM4LjUwNzMgMzAuMTM2NTQ1LDM1LjUxODEzNyBDIDMwLjE1Mjk3MywzNC40NzMyNiAz MC4zOTYyOTcsMzQuMDQzNzkxIDMxLjA1MjQxMSwzMy41NjgwMDUgQyAzMS42NTk0NzcsMzMuMTI3 Nzg2IDQyLjI5OTYzNCwyNS4zMDUwODMgNDQuNjAwMjcxLDIzLjU3ODU4NyBDIDQxLjIwODI1Miwy NS45Njg1MjEgMzIuNjQzNDUxLDMyLjExNjk2MiAzMS4yODcyMywzMy4wNzM4IEMgMzAuMjYzMTQz LDMzLjc5NjMxMiAyOS4zMjM3NDIsMzMuNTI0OTg3IDI4LjY2MTM0NCwzMy4yOTYxNjMgQyAyNy4y NDM3MjgsMzIuODA2NDQ4IDkuNjcyNzQ5MywyNy4yMTg2ODcgOS4xMjM2NTQxLDI2Ljk4NjQ4IHog IgogICAgIGlkPSJwYXRoMzUiCiAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwyLjA2MjVlLTYp IiAvPjwvZz48L3N2Zz4= ------=_Part_10042_19415251.1149198844729-- From pclouds@gmail.com Thu Jun 1 21:45:32 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 625A73B022D for ; Thu, 1 Jun 2006 21:45:32 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 22312-07 for ; Thu, 1 Jun 2006 21:45:31 -0400 (EDT) Received: from wx-out-0102.google.com (wx-out-0102.google.com [66.249.82.199]) by menubar.gnome.org (Postfix) with ESMTP id DF0AF3B0301 for ; Thu, 1 Jun 2006 21:45:30 -0400 (EDT) Received: by wx-out-0102.google.com with SMTP id i30so388867wxd for ; Thu, 01 Jun 2006 18:45:30 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=pIRZKS8ZhMKnSokQCvLM66NImBjx6ns0blzKJ0sgGf3VYu5KrE+7kOydhtIUIEhZJdKhv/0U4t31DlXmimX4yZ73gvjJXtGEyyQL1uiIVHUBgjY0TD+fFW/AJhI4VSXaG6ATEQZc9LWAijjgNoUStzetVuecIWwcn6/u6m4PlVo= Received: by 10.70.130.14 with SMTP id c14mr1706184wxd; Thu, 01 Jun 2006 18:45:30 -0700 (PDT) Received: by 10.70.45.11 with HTTP; Thu, 1 Jun 2006 18:45:30 -0700 (PDT) Message-ID: Date: Fri, 2 Jun 2006 08:45:30 +0700 From: "=?UTF-8?Q?Nguy=E1=BB=85n_Th=C3=A1i_Ng=E1=BB=8Dc_Duy?=" To: sjoeboo@sjoeboo.com Subject: Re: [Rhythmbox-devel] debian/ubuntu packaging In-Reply-To: <1149177292.5684.54.camel@localhost> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 Content-Disposition: inline References: <1149177292.5684.54.camel@localhost> X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.353 tagged_above=-999 required=2 tests=[AWL=0.023, BAYES_00=-2.599, MIME_BASE64_NO_NAME=0.224, SPF_PASS=-0.001] X-Spam-Score: -2.353 X-Spam-Level: Cc: rhythmbox-devel@gnome.org X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jun 2006 01:45:32 -0000 T24gNi8xLzA2LCBNYXR0aGV3IE5pY2hvbHNvbiA8c2pvZWJvb0Bzam9lYm9vLmNvbT4gd3JvdGU6 Cj4gaSdtIGludGVyZXN0ZWQgaW4gYnVpbGRpbmcgYSBkZWJpYW4gcGFja2FnZSAocmF0aGVyLCB1 YnVudHUgNi4wNikgb2YKPiByaHl0aG1ib3ggY3ZzLiBpJ3ZlIGJlZW4gcnVubmluZyBjdnMsIGFu ZCBkb2luZyBhbG1vc3QgZGFpbHkgYnVpbGQgYXMgb2YKPiBsYXRlLCBhbmQgd291bGQgcmVhbGx5 IGxpa2UgdG8gaGF2ZSBwYWNrYWdlcyB0byBzaG93IGZyaWVuZHMgZXRjLgpJZiB5b3UganVzdCBu ZWVkIGEgZGViIHBhY2thZ2UgYW5kIGRvbid0IHdhbnQgdG8gY2FyZSBhYm91dCBvdGhlcgp0aGlu Z3MuIGNoZWNrLWluc3RhbGwgc2hvdWxkIGhlbHAuIEl0IGNhbiBjcmVhdGUgZGViIHBhY2thZ2Vz IElJUkMuCi0tIApCaSBD4budIExhbwo= From mccann@jhu.edu Fri Jun 2 00:33:02 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 650B23B0FC2 for ; Fri, 2 Jun 2006 00:33:02 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 29673-01 for ; Fri, 2 Jun 2006 00:33:00 -0400 (EDT) Received: from ipex2.johnshopkins.edu (ipex2.johnshopkins.edu [162.129.8.151]) by menubar.gnome.org (Postfix) with ESMTP id DCEFB3B0FBA for ; Fri, 2 Jun 2006 00:32:59 -0400 (EDT) Received: from adcam-2.pha.jhu.edu (HELO adcam.pha.jhu.edu) ([128.220.146.77]) by ipex2.johnshopkins.edu with ESMTP/TLS/AES256-SHA; 02 Jun 2006 00:32:58 -0400 X-BrightmailFiltered: true X-Brightmail-Tracker: AAAAAA== X-IronPort-AV: i="4.05,201,1146456000"; d="svg'?scan'208"; a="155944826:sNHT42636940" Received: from [192.168.0.4] (c-68-50-177-80.hsd1.md.comcast.net [68.50.177.80]) (authenticated bits=0) by adcam.pha.jhu.edu (8.13.6/8.13.6) with ESMTP id k524Wwtq019996 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Fri, 2 Jun 2006 00:32:58 -0400 (EDT) Message-ID: <447FBF78.4050000@jhu.edu> Date: Fri, 02 Jun 2006 00:32:56 -0400 From: William Jon McCann User-Agent: Thunderbird 1.5.0.2 (X11/20060501) MIME-Version: 1.0 To: rhythmbox-devel@gnome.org Subject: Re: [Rhythmbox-devel] svg icon for rhythmbox References: <447CE08D.6060705@riseup.net> In-Reply-To: <447CE08D.6060705@riseup.net> Content-Type: multipart/mixed; boundary="------------060109060101020005060605" X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.599 tagged_above=-999 required=2 tests=[AWL=0.000, BAYES_00=-2.599] X-Spam-Score: -2.599 X-Spam-Level: X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jun 2006 04:33:02 -0000 This is a multi-part message in MIME format. --------------060109060101020005060605 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Hi, Here is another icon to consider. It is a combination of two tango icons and a fill color change. I don't think we have to worry about trademark issues here because it is a different shape, doesn't include text, doesn't use a border, and uses different colors. What do you think? Jon --------------060109060101020005060605 Content-Type: image/svg+xml; name="rhythmbox-plain.svg" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="rhythmbox-plain.svg" PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+ CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8p IC0tPgo8c3ZnCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAg IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6eGxpbms9Imh0 dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCiAgIHZlcnNpb249IjEuMCIKICAgd2lkdGg9 Ijk2IgogICBoZWlnaHQ9Ijk2IgogICBpZD0ic3ZnMTMwNiI+CiAgPGRlZnMKICAgICBpZD0i ZGVmczEzMDgiPgogICAgPHJhZGlhbEdyYWRpZW50CiAgICAgICBjeD0iNC4zOTIwMzM2Igog ICAgICAgY3k9IjMyLjMwNzg1NCIKICAgICAgIHI9IjYuMzc1IgogICAgICAgZng9IjQuMzky MDMzNiIKICAgICAgIGZ5PSIzMi4zMDc4NTQiCiAgICAgICBpZD0icmFkaWFsR3JhZGllbnQy MzY0IgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50MjMxNSIKICAgICAgIGdy YWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09 Im1hdHJpeCgxLC0yLjIzNzI1MWUtMTYsNy4zMzc0OTZlLTE3LDAuNTA5ODA0LDEuMzIwMzNl LTE0LDE2LjA1MzkyKSIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVh ckdyYWRpZW50MjMxNSI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9y OiNmZmZmZmY7c3RvcC1vcGFjaXR5OjEiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAg aWQ9InN0b3AyMzE3IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xv cjojZmZmZmZmO3N0b3Atb3BhY2l0eTowIgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAg IGlkPSJzdG9wMjMxOSIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8cmFkaWFsR3Jh ZGllbnQKICAgICAgIGN4PSI0LjM5MjAzMzYiCiAgICAgICBjeT0iMzIuMzA3ODU0IgogICAg ICAgcj0iNi4zNzUiCiAgICAgICBmeD0iNC4zOTIwMzM2IgogICAgICAgZnk9IjMyLjMwNzg1 NCIKICAgICAgIGlkPSJyYWRpYWxHcmFkaWVudDIzNjIiCiAgICAgICB4bGluazpocmVmPSIj bGluZWFyR3JhZGllbnQyMzE1IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25V c2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEsLTEuNDM4MzNlLTE2LDYu NDE3MmUtMTcsMC41MDk4MDQsNS4xNTY1NzZlLTE2LDE2LjA1MzkyKSIgLz4KICAgIDxsaW5l YXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NDQwOSI+CiAgICAgIDxzdG9w CiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmZmZmZmY7c3RvcC1vcGFjaXR5OjEiCiAg ICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3A0NDExIiAvPgogICAgICA8c3Rv cAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmZmZmZmO3N0b3Atb3BhY2l0eTowIgog ICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wNDQxMyIgLz4KICAgIDwvbGlu ZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFk aWVudDYwMjgiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmZm ZmZmO3N0b3Atb3BhY2l0eToxIgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJz dG9wNjAzMCIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2Zm ZmZmZjtzdG9wLW9wYWNpdHk6MCIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0i c3RvcDYwMzIiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50 CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ2MDM2Ij4KICAgICAgPHN0b3AKICAgICAgICAg c3R5bGU9InN0b3AtY29sb3I6I2ZmZmZmZjtzdG9wLW9wYWNpdHk6MSIKICAgICAgICAgb2Zm c2V0PSIwIgogICAgICAgICBpZD0ic3RvcDYwMzgiIC8+CiAgICAgIDxzdG9wCiAgICAgICAg IHN0eWxlPSJzdG9wLWNvbG9yOiNmZmZmZmY7c3RvcC1vcGFjaXR5OjAiCiAgICAgICAgIG9m ZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3A2MDQwIiAvPgogICAgPC9saW5lYXJHcmFkaWVu dD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgeDE9IjEyLjI3NDQiCiAgICAgICB5MT0i MzIuNDE2NSIKICAgICAgIHgyPSIzNS4zOTEyMDEiCiAgICAgICB5Mj0iMTQuMjAzMyIKICAg ICAgIGlkPSJhaWdyZDIiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+ CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmYmZiZmI7c3RvcC1v cGFjaXR5OjEiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3AzMDQzIiAv PgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojYjZiNmI2O3N0b3At b3BhY2l0eToxIgogICAgICAgICBvZmZzZXQ9IjAuNSIKICAgICAgICAgaWQ9InN0b3AzMDQ1 IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZTRlNGU0O3N0 b3Atb3BhY2l0eToxIgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wMzA0 NyIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAg IHgxPSIxNC45OTY2IgogICAgICAgeTE9IjExLjE4ODUiCiAgICAgICB4Mj0iMzIuNTExMDAy IgogICAgICAgeTI9IjM0LjMwNzQ5OSIKICAgICAgIGlkPSJhaWdyZDEiCiAgICAgICBncmFk aWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxl PSJzdG9wLWNvbG9yOiNlYmViZWI7c3RvcC1vcGFjaXR5OjEiCiAgICAgICAgIG9mZnNldD0i MCIKICAgICAgICAgaWQ9InN0b3AzMDM0IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHls ZT0ic3RvcC1jb2xvcjojZmZmZmZmO3N0b3Atb3BhY2l0eToxIgogICAgICAgICBvZmZzZXQ9 IjAuNSIKICAgICAgICAgaWQ9InN0b3AzMDM2IiAvPgogICAgICA8c3RvcAogICAgICAgICBz dHlsZT0ic3RvcC1jb2xvcjojZWJlYmViO3N0b3Atb3BhY2l0eToxIgogICAgICAgICBvZmZz ZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wMzAzOCIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+ CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDIzNDE5Ij4K ICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzAwMDAwMDtzdG9wLW9w YWNpdHk6MSIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDIzNDIxIiAv PgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMDAwMDAwO3N0b3At b3BhY2l0eTowIgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wMjM0MjMi IC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPHJhZGlhbEdyYWRpZW50CiAgICAgICBj eD0iMjMuMzM0NTI0IgogICAgICAgY3k9IjQxLjYzNjA0IgogICAgICAgcj0iMjIuNjI3NDE3 IgogICAgICAgZng9IjIzLjMzNDUyNCIKICAgICAgIGZ5PSI0MS42MzYwNCIKICAgICAgIGlk PSJyYWRpYWxHcmFkaWVudDM1MDciCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGll bnQyMzQxOSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAg Z3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwwLjI1LDAsMzEuMjI3MDMpIiAvPgog ICAgPGxpbmVhckdyYWRpZW50CiAgICAgICB4MT0iMjguNzAyODg1IgogICAgICAgeTE9IjMx LjQ5NDcwNyIKICAgICAgIHgyPSIxNy43NDI3MjkiCiAgICAgICB5Mj0iMTguMzY2NTc1Igog ICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzUxNSIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5l YXJHcmFkaWVudDYwMjgiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIg Lz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgeDE9IjEwLjUwMTcyIgogICAgICAgeTE9 IjMuNjEwMDE2MSIKICAgICAgIHgyPSI0OC43OTg4ODUiCiAgICAgICB5Mj0iNTQuNjk4NDgz IgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzUxOSIKICAgICAgIHhsaW5rOmhyZWY9IiNs aW5lYXJHcmFkaWVudDYwMzYiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVz ZSIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTguNDUyZS0yLC0xLjMz MzMyMykiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIHgxPSIxMi4yNzQ0IgogICAg ICAgeTE9IjMyLjQxNjUiCiAgICAgICB4Mj0iMzUuMzkxMjAxIgogICAgICAgeTI9IjE0LjIw MzMiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzNTIzIgogICAgICAgeGxpbms6aHJlZj0i I2FpZ3JkMiIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAg Z3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxLjE5MDQ3NiwwLDAsMS4xOTA0NzYsLTQuMzA4 OTQ0LC0zLjgzMzMyNCkiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIHgxPSIxNC45 OTY2IgogICAgICAgeTE9IjExLjE4ODUiCiAgICAgICB4Mj0iMzIuNTExMDAyIgogICAgICAg eTI9IjM0LjMwNzQ5OSIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDM1MjYiCiAgICAgICB4 bGluazpocmVmPSIjYWlncmQxIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25V c2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEuMTkwNDc2LDAsMCwxLjE5 MDQ3NiwtNC4zMDg5NDQsLTMuODMzMzIzKSIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAg ICAgeDE9IjI1Ljk4NTkyOCIKICAgICAgIHkxPSIyNC45MTk2MjgiCiAgICAgICB4Mj0iMTUu ODg5MDcyIgogICAgICAgeTI9IjExLjY2OTYyOCIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVu dDQ0MTUiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ0NDA5IgogICAgICAg Z3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9y bT0idHJhbnNsYXRlKDAuNSwtMC4zNTM1NTMpIiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAg ICAgICB4MT0iMTQuOTk2NiIKICAgICAgIHkxPSIxMS4xODg1IgogICAgICAgeDI9IjMyLjUx MTAwMiIKICAgICAgIHkyPSIzNC4zMDc0OTkiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ1 MDIxIgogICAgICAgeGxpbms6aHJlZj0iI2FpZ3JkMSIKICAgICAgIGdyYWRpZW50VW5pdHM9 InVzZXJTcGFjZU9uVXNlIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxLjE5 MDQ3NiwwLDAsMS4xOTA0NzYsLTQuMzA4OTQ0LC0zLjgzMzMyMykiIC8+CiAgICA8bGluZWFy R3JhZGllbnQKICAgICAgIHgxPSIxMi4yNzQ0IgogICAgICAgeTE9IjMyLjQxNjUiCiAgICAg ICB4Mj0iMzUuMzkxMjAxIgogICAgICAgeTI9IjE0LjIwMzMiCiAgICAgICBpZD0ibGluZWFy R3JhZGllbnQ1MDIzIgogICAgICAgeGxpbms6aHJlZj0iI2FpZ3JkMiIKICAgICAgIGdyYWRp ZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1h dHJpeCgxLjE5MDQ3NiwwLDAsMS4xOTA0NzYsLTQuMzA4OTQ0LC0zLjgzMzMyNCkiIC8+CiAg ICA8bGluZWFyR3JhZGllbnQKICAgICAgIHgxPSIyNS45ODU5MjgiCiAgICAgICB5MT0iMjQu OTE5NjI4IgogICAgICAgeDI9IjE1Ljg4OTA3MiIKICAgICAgIHkyPSIxMS42Njk2MjgiCiAg ICAgICBpZD0ibGluZWFyR3JhZGllbnQ1MDI1IgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVh ckdyYWRpZW50NDQwOSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgog ICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSgwLjUsLTAuMzUzNTUzKSIgLz4K ICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgeDE9IjEwLjUwMTcyIgogICAgICAgeTE9IjMu NjEwMDE2MSIKICAgICAgIHgyPSI0OC43OTg4ODUiCiAgICAgICB5Mj0iNTQuNjk4NDgzIgog ICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NTAyNyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5l YXJHcmFkaWVudDYwMzYiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIK ICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTguNDUyZS0yLC0xLjMzMzMy MykiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIHgxPSIyOC43MDI4ODUiCiAgICAg ICB5MT0iMzEuNDk0NzA3IgogICAgICAgeDI9IjE3Ljc0MjcyOSIKICAgICAgIHkyPSIxOC4z NjY1NzUiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ1MDI5IgogICAgICAgeGxpbms6aHJl Zj0iI2xpbmVhckdyYWRpZW50NjAyOCIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFj ZU9uVXNlIiAvPgogIDwvZGVmcz4KICA8ZwogICAgIGlkPSJsYXllcjEiPgogICAgPGcKICAg ICAgIHRyYW5zZm9ybT0ibWF0cml4KDIsMCwwLDIsLTEuODU4MzA0LDAuMzMzMzE0KSIKICAg ICAgIGlkPSJnNTAwMyI+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Ik0gMjQuMjYyNDg2LDIu ODMzMzQzNSBDIDEyLjcxNDg2NiwyLjgzMzM0MzUgMy40MjkxNTE5LDEyLjExOTA1OCAzLjQy OTE1MTksMjMuNjY2Njc3IEMgMy40MjkxNTE5LDM1LjIxNDI5NyAxMi43MTQ4NjYsNDQuNTAw MDEyIDI0LjI2MjQ4Niw0NC41MDAwMTIgQyAzNS44MTAxMDYsNDQuNTAwMDEyIDQ1LjA5NTgy MSwzNS4yMTQyOTcgNDUuMDk1ODIxLDIzLjY2NjY3NyBDIDQ1LjA5NTgyMSwxMi4xMTkwNTgg MzUuODEwMTA2LDIuODMzMzQzNSAyNC4yNjI0ODYsMi44MzMzNDM1IEwgMjQuMjYyNDg2LDIu ODMzMzQzNSB6IE0gMjQuMjYyNDg2LDI4LjY2NjY3OCBDIDIxLjUyNDM5MSwyOC42NjY2Nzgg MTkuMjYyNDg2LDI2LjQwNDc3MyAxOS4yNjI0ODYsMjMuNjY2Njc3IEMgMTkuMjYyNDg2LDIw LjkyODU4MiAyMS41MjQzOTEsMTguNjY2Njc3IDI0LjI2MjQ4NiwxOC42NjY2NzcgQyAyNy4w MDA1ODEsMTguNjY2Njc3IDI5LjI2MjQ4NiwyMC45Mjg1ODIgMjkuMjYyNDg2LDIzLjY2NjY3 NyBDIDI5LjI2MjQ4NiwyNi40MDQ3NzMgMjcuMDAwNTgxLDI4LjY2NjY3OCAyNC4yNjI0ODYs MjguNjY2Njc4IHogIgogICAgICAgICBzdHlsZT0iZmlsbDp1cmwoI2xpbmVhckdyYWRpZW50 NTAyMSk7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmU7c3Ryb2tlLW1pdGVybGltaXQ6 NCIKICAgICAgICAgaWQ9InBhdGgzMDQwIiAvPgogICAgICA8cGF0aAogICAgICAgICBkPSJN IDI0LjI2MjQ4NiwyLjgzMzM0MzEgQyAxMi43MTQ4NjYsMi44MzMzNDMxIDMuNDI5MTUyLDEy LjExOTA1OCAzLjQyOTE1MiwyMy42NjY2NzcgQyAzLjQyOTE1MiwzNS4yMTQyOTcgMTIuNzE0 ODY2LDQ0LjUwMDAxMiAyNC4yNjI0ODYsNDQuNTAwMDEyIEMgMzUuODEwMTA2LDQ0LjUwMDAx MiA0NS4wOTU4MjEsMzUuMjE0Mjk3IDQ1LjA5NTgyMSwyMy42NjY2NzcgQyA0NS4wOTU4MjEs MTIuMTE5MDU4IDM1LjgxMDEwNiwyLjgzMzM0MzEgMjQuMjYyNDg2LDIuODMzMzQzMSBMIDI0 LjI2MjQ4NiwyLjgzMzM0MzEgeiBNIDI0LjI2MjQ4NiwyOC42NjY2NzggQyAyMS41MjQzOTEs MjguNjY2Njc4IDE5LjI2MjQ4NiwyNi40MDQ3NzMgMTkuMjYyNDg2LDIzLjY2NjY3NyBDIDE5 LjI2MjQ4NiwyMC45Mjg1ODIgMjEuNTI0MzkxLDE4LjY2NjY3NyAyNC4yNjI0ODYsMTguNjY2 Njc3IEMgMjcuMDAwNTgxLDE4LjY2NjY3NyAyOS4yNjI0ODYsMjAuOTI4NTgyIDI5LjI2MjQ4 NiwyMy42NjY2NzcgQyAyOS4yNjI0ODYsMjYuNDA0NzczIDI3LjAwMDU4MSwyOC42NjY2Nzgg MjQuMjYyNDg2LDI4LjY2NjY3OCB6ICIKICAgICAgICAgc3R5bGU9ImZpbGw6dXJsKCNsaW5l YXJHcmFkaWVudDUwMjMpO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTojODA4MDgwO3N0cm9r ZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgICAgaWQ9InBhdGgzMDQ5 IiAvPgogICAgICA8cGF0aAogICAgICAgICBkPSJNIDIzLjQxMDUzOCwzLjQ1ODc4MjUgQyAx Mi42NDg4NDcsMy44NjQ2OTMgNC4xMTA5Mjc1LDEyLjY3NjEzNSA0LjExMDkyNzUsMjMuNTQx MjE3IEMgNC4xMTA5Mjc1LDI4LjQ2NjcyMiA1Ljg1ODA1MSwzMi45NDM2MDcgOC43Nzc3NjAx LDM2LjQyNzY5NyBMIDE5Ljg5NTExMywyNy4wMTc0MDMgQyAxOS4xNzM3NzIsMjYuMTc0MDYy IDE4Ljg0NTg3OCwyNC45NzQyMzUgMTguODQ1ODc4LDIzLjc5MTIxNyBDIDE4Ljg0NTg3OCwy MC40MDA4MjcgMjEuMTUwMTY3LDE4LjIyMzg0MiAyNC40MTMyNTMsMTguMjIzODQyIEMgMjUu ODk3MTc4LDE4LjIyMzg0MiAyNy4zODQzNCwxOC44OTcyNjkgMjguMjcxNzE5LDE5Ljk3MDE0 IEwgMzkuNjM5MDcyLDEwLjY4NDg0NiBDIDM1Ljk2MzkwMSw2LjI2MDY5MTkgMzAuMzk0Nzk3 LDMuNDU4NzgyNSAyNC4xNjMyNTMsMy40NTg3ODI1IEMgMjMuOTAyNDkyLDMuNDU4NzgyNSAy My42Njg4MTksMy40NDkwNDA2IDIzLjQxMDUzOCwzLjQ1ODc4MjUgeiAiCiAgICAgICAgIHN0 eWxlPSJmaWxsOnVybCgjbGluZWFyR3JhZGllbnQ1MDI1KTtmaWxsLW9wYWNpdHk6MTtmaWxs LXJ1bGU6bm9uemVybztzdHJva2U6bm9uZTtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1v cGFjaXR5OjEiCiAgICAgICAgIGlkPSJwYXRoMzUzMSIgLz4KICAgICAgPHBhdGgKICAgICAg ICAgZD0iTSAyNC4yNjI0ODYsMTMuNTYyNTEyIEMgMTguNjE5OSwxMy41NjI1MTIgMTQuMTU4 MzIsMTguMTU1MzE1IDE0LjE1ODMyLDIzLjY2NjY3NyBDIDE0LjE1ODMyLDI5LjMwOTI2NSAx OC43NTExMjQsMzMuNzcwODQzIDI0LjI2MjQ4NiwzMy43NzA4NDMgQyAyOS45MDUwNzIsMzMu NzcwODQzIDM0LjM2NjY1MiwyOS4xNzgwNDEgMzQuMzY2NjUyLDIzLjY2NjY3NyBDIDM0LjM2 NjY1MiwxOC4wMjQwOTEgMjkuNzczODQ4LDEzLjU2MjUxMiAyNC4yNjI0ODYsMTMuNTYyNTEy IEwgMjQuMjYyNDg2LDEzLjU2MjUxMiB6IE0gMjQuMjYyNDg2LDI5LjE3ODA0MSBDIDIxLjI0 NDM1OSwyOS4xNzgwNDEgMTguNzUxMTI0LDI2LjY4NDgwNiAxOC43NTExMjQsMjMuNjY2Njc3 IEMgMTguNzUxMTI0LDIwLjY0ODU1IDIxLjI0NDM1OSwxOC4xNTUzMTUgMjQuMjYyNDg2LDE4 LjE1NTMxNSBDIDI3LjI4MDYxMywxOC4xNTUzMTUgMjkuNzczODQ4LDIwLjY0ODU1IDI5Ljc3 Mzg0OCwyMy42NjY2NzcgQyAyOS43NzM4NDgsMjYuNjg0ODA2IDI3LjI4MDYxMywyOS4xNzgw NDEgMjQuMjYyNDg2LDI5LjE3ODA0MSB6ICIKICAgICAgICAgc3R5bGU9Im9wYWNpdHk6MC41 MTA5ODkwMjtmaWxsOiNlZWVlZWM7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmU7c3Ry b2tlLW1pdGVybGltaXQ6NCIKICAgICAgICAgaWQ9InBhdGgzMDUxIiAvPgogICAgICA8cGF0 aAogICAgICAgICBkPSJNIDI0LjI2MjQ4MiwzLjg2OTA0MjEgQyAxMy4yODg5MzgsMy44Njkw NDIxIDQuNDY0ODUxMSwxMi42OTMxMzEgNC40NjQ4NTExLDIzLjY2NjY3NCBDIDQuNDY0ODUx MSwzNC42NDAyMTggMTMuMjg4OTM4LDQzLjQ2NDMwNSAyNC4yNjI0ODIsNDMuNDY0MzA1IEMg MzUuMjM2MDI2LDQzLjQ2NDMwNSA0NC4wNjAxMTMsMzQuNjQwMjE4IDQ0LjA2MDExMywyMy42 NjY2NzQgQyA0NC4wNjAxMTMsMTIuNjkzMTMxIDM1LjIzNjAyNiwzLjg2OTA0MjEgMjQuMjYy NDgyLDMuODY5MDQyMSBMIDI0LjI2MjQ4MiwzLjg2OTA0MjEgeiAiCiAgICAgICAgIHN0eWxl PSJvcGFjaXR5OjAuNTQ2NDQ4MTE7ZmlsbDpub25lO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9r ZTp1cmwoI2xpbmVhckdyYWRpZW50NTAyNyk7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Ut b3BhY2l0eToxIgogICAgICAgICBpZD0icGF0aDUyNjQiIC8+CiAgICAgIDxwYXRoCiAgICAg ICAgIGQ9Ik0gMzAuNDA1NTkxIDI0LjkzMDY0MSBBIDYuMDk4Nzk1OSA2LjA5ODc5NTkgMCAx IDEgIDE4LjIwNzk5OSwyNC45MzA2NDEgQSA2LjA5ODc5NTkgNi4wOTg3OTU5IDAgMSAxICAz MC40MDU1OTEgMjQuOTMwNjQxIHoiCiAgICAgICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMu ODY4ZS0zLC0xLjI0NDkzNCkiCiAgICAgICAgIHN0eWxlPSJvcGFjaXR5OjAuNjcyMTMxMTE7 Y29sb3I6IzAwMDAwMDtmaWxsOm5vbmU7ZmlsbC1vcGFjaXR5OjAuMzE2Mzg0MTc7ZmlsbC1y dWxlOm5vbnplcm87c3Ryb2tlOnVybCgjbGluZWFyR3JhZGllbnQ1MDI5KTtzdHJva2Utd2lk dGg6MC45MzA1Mzg2NTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRl cjttYXJrZXI6bm9uZTttYXJrZXItc3RhcnQ6bm9uZTttYXJrZXItbWlkOm5vbmU7bWFya2Vy LWVuZDpub25lO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJv a2Utb3BhY2l0eToxO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxv dzp2aXNpYmxlIgogICAgICAgICBpZD0icGF0aDYwMjYiIC8+CiAgICA8L2c+CiAgICA8Zwog ICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC41LDAsMCwwLjUsNDEuMzYwMDEsNDYuNjk4MDIp IgogICAgICAgaWQ9ImcyMzcxIj4KICAgICAgPHBhdGgKICAgICAgICAgZD0iTSA5Ni40NDc0 NCwtNDguMTM5MDkxIEMgOTYuNDQ3NDQsLTQ4LjEzOTA5MSA0LjE5NzQ0LC0zNi44MDA1MDgg NC4xOTc0NCwtMzYuODAwNTA4IEwgNC4xOTc0NCw1MC4zMjQ0OTIgQyAtMi4zODYzOCw0OC4w OTM4ODggLTExLjUyOTcsNDcuNTEwNzc2IC0yMS41NTI1Niw0OS41NzQ0OTIgQyAtMzguOTc3 ODE2LDUzLjE2MjM2OCAtNTEuNDY0MDAxLDYyLjc3MjQ0IC00OS41NTI1Niw3MC45NDk0OTIg QyAtNDcuNjQxMTIsNzkuMTI2NTQ0IC0zMS45Nzc4Miw4Mi45MTIzNzIgLTE0LjU1MjU2LDc5 LjMyNDQ5MiBDIDEuOTE0MDA0LDc1LjkzNDAxMiAxNi4xODM5MzIsNjcuMTczMjg0IDE1Ljg1 Nzk3Miw1OS4zMjQ0OTIgTCAxNi40ODI5NzIsLTE2LjgwMDUwOCBDIDE2LjQ4Mjk3MiwtMTYu ODAwNTA4IDg0LjIwNDgsLTI4LjM4MTczMiA4NC4yMDQ4LC0yOC4zODE3MzIgTCA4NC4yMDQ4 LDQwLjc1NjcyNCBDIDQzLjIwNDgsMzQuNzU2NzI0IDMxLjAzNTk5Niw1Mi4zMjk2NjggMzIu OTQ3NDQsNjAuNTA2NzI0IEMgMzQuODU4ODgsNjguNjgzNzc2IDUwLjUyMjE4NCw3Mi40Njk2 IDY3Ljk0NzQ0LDY4Ljg4MTcyNCBDIDgzLjQwODk0NCw2NS42OTgxODQgOTQuNDc3MDgsNTcu ODI4ODggOTUuNTcyNDQsNTAuMzgxNzI0IEwgOTYuNDQ3NDQsLTQ4LjEzOTA5MSB6ICIKICAg ICAgICAgc3R5bGU9ImNvbG9yOiMwMDAwMDA7ZmlsbDojNzU1MDdiO2ZpbGwtb3BhY2l0eTox O2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTojNTk2NjE2O3N0cm9rZS13aWR0aDo0O3N0cm9r ZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDttYXJrZXI6bm9uZTttYXJr ZXItc3RhcnQ6bm9uZTttYXJrZXItbWlkOm5vbmU7bWFya2VyLWVuZDpub25lO3N0cm9rZS1t aXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJva2Utb3BhY2l0eToxO3Zpc2li aWxpdHk6dmlzaWJsZTtkaXNwbGF5OmJsb2NrIgogICAgICAgICBpZD0icGF0aDcwNDIiIC8+ CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Ik0gOTIuODYzNTg0LC00My43MzcxNDcgQyA5Mi44 NjM1ODQsLTQzLjczNzE0NyA4LjEzNjUwOCwtMzIuMzk4NTY0IDguMTM2NTA4LC0zMi4zOTg1 NjQgTCA4LjEzNjUwOCw1NC45NTQ3ODQgQyAtMjIuMTI0NTEyLDQ3LjMzMzU0NCAtNDYuNzk1 OTA3LDYyLjI5MjQyIC00NC45NzgxODIsNzAuMDY4NTYgQyAtNDIuMTYwNDU4LDgzLjM0NDcg MTIuNTM1MzE2LDc0LjQ3NzQ5NiAxMi4yMjUzMzYsNTcuNTEzNTIgTCAxMi44MTk2OTIsLTIw LjM3OTE0NCBDIDEyLjgxOTY5MiwtMjAuMzc5MTQ0IDg4LjIyMTE4OCwtMzEuOTQ4NDcyIDg4 LjIyMTE4OCwtMzEuOTQ4NDcyIEwgODguMjIxMTg4LDQ1LjgwMDE5MiBDIDU3Ljk1NjA1Miwz OC4wOTM2MDQgMzUuMTU5MTk2LDUxLjMwNTcyOCAzNi45NzY5MjQsNTkuMDgxODcyIEMgMzku Mjk0NjQ4LDcxLjg1ODAxMiA4Ni40ODk4MjgsNjcuNTM1MzIgOTIuMDMxNDg0LDQ4LjQ1MzI4 OCBMIDkyLjg2MzU4NCwtNDMuNzM3MTQ3IHogIgogICAgICAgICBzdHlsZT0ib3BhY2l0eTow LjUxMTc2NDcxO2NvbG9yOiMwMDAwMDA7ZmlsbDpub25lO2ZpbGwtb3BhY2l0eToxO2ZpbGwt cnVsZTpub256ZXJvO3N0cm9rZTojZmZmZmZmO3N0cm9rZS13aWR0aDo0O3N0cm9rZS1saW5l Y2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO21hcmtlcjpub25lO21hcmtlci1zdGFy dDpub25lO21hcmtlci1taWQ6bm9uZTttYXJrZXItZW5kOm5vbmU7c3Ryb2tlLW1pdGVybGlt aXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJva2Ut b3BhY2l0eToxO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmJsb2NrIgogICAgICAgICBp ZD0icGF0aDIzMTEiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Ik0gMTIuMjUgMzIuNzUg QSA2LjM3NSAzLjI1IDAgMSAxICAtMC41LDMyLjc1IEEgNi4zNzUgMy4yNSAwIDEgMSAgMTIu MjUgMzIuNzUgeiIKICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMi45MzgwNjQsLTAuNDQ2 NTgsMC40NDY1OCwyLjkzODA2NCwtNTQuNDM5MTEsLTMwLjQxNzY2KSIKICAgICAgICAgc3R5 bGU9Im9wYWNpdHk6MC41MTE3NjQ3MTtjb2xvcjojMDAwMDAwO2ZpbGw6dXJsKCNyYWRpYWxH cmFkaWVudDIzNjIpO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpu b25lO3N0cm9rZS13aWR0aDoxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2lu Om1pdGVyO21hcmtlcjpub25lO21hcmtlci1zdGFydDpub25lO21hcmtlci1taWQ6bm9uZTtt YXJrZXItZW5kOm5vbmU7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5v bmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJva2Utb3BhY2l0eToxO3Zpc2liaWxpdHk6dmlz aWJsZTtkaXNwbGF5OmJsb2NrO292ZXJmbG93OnZpc2libGUiCiAgICAgICAgIGlkPSJwYXRo MjMxMyIgLz4KICAgICAgPHBhdGgKICAgICAgICAgZD0iTSAxMi4yNSAzMi43NSBBIDYuMzc1 IDMuMjUgMCAxIDEgIC0wLjUsMzIuNzUgQSA2LjM3NSAzLjI1IDAgMSAxICAxMi4yNSAzMi43 NSB6IgogICAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgyLjkzODA2NCwtMC40NDY1OCwwLjQ0 NjU4LDIuOTM4MDY0LDI0LjkzMDkyLC00MS43NTYyNCkiCiAgICAgICAgIHN0eWxlPSJvcGFj aXR5OjAuNTExNzY0NzE7Y29sb3I6IzAwMDAwMDtmaWxsOnVybCgjcmFkaWFsR3JhZGllbnQy MzY0KTtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZTtzdHJv a2Utd2lkdGg6MTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtt YXJrZXI6bm9uZTttYXJrZXItc3RhcnQ6bm9uZTttYXJrZXItbWlkOm5vbmU7bWFya2VyLWVu ZDpub25lO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9r ZS1kYXNob2Zmc2V0OjA7c3Ryb2tlLW9wYWNpdHk6MTt2aXNpYmlsaXR5OnZpc2libGU7ZGlz cGxheTpibG9jaztvdmVyZmxvdzp2aXNpYmxlIgogICAgICAgICBpZD0icGF0aDIzMjMiIC8+ CiAgICA8L2c+CiAgPC9nPgo8L3N2Zz4K --------------060109060101020005060605-- From Karsten.Schmiedecke@gmx.de Fri Jun 2 01:53:36 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 02AC63B0341 for ; Fri, 2 Jun 2006 01:53:36 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 00551-10 for ; Fri, 2 Jun 2006 01:53:33 -0400 (EDT) Received: from mail.gmx.net (mail.gmx.de [213.165.64.20]) by menubar.gnome.org (Postfix) with SMTP id 3BC263B02FF for ; Fri, 2 Jun 2006 01:53:32 -0400 (EDT) Received: (qmail invoked by alias); 02 Jun 2006 05:53:30 -0000 Received: from e178118084.adsl.alicedsl.de (EHLO [192.168.178.28]) [85.178.118.84] by mail.gmx.net (mp030) with SMTP; 02 Jun 2006 07:53:30 +0200 X-Authenticated: #920491 Message-ID: <447FD349.4020100@gmx.de> Date: Fri, 02 Jun 2006 07:57:29 +0200 From: Karsten Schmiedecke User-Agent: Thunderbird 1.5.0.2 (Windows/20060308) MIME-Version: 1.0 Cc: rhythmbox-devel@gnome.org Subject: Re: [Rhythmbox-devel] svg icon for rhythmbox References: <447CE08D.6060705@riseup.net> <447FBF78.4050000@jhu.edu> In-Reply-To: <447FBF78.4050000@jhu.edu> X-Enigmail-Version: 0.94.0.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Y-GMX-Trusted: 0 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.465 tagged_above=-999 required=2 tests=[BAYES_00=-2.599, FORGED_RCVD_HELO=0.135, SPF_PASS=-0.001] X-Spam-Score: -2.465 X-Spam-Level: X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Karsten.Schmiedecke@gmx.de List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jun 2006 05:53:36 -0000 Hi! Haven't said anything on this list lately but am still following development. Now I think it's time to drop a line again... William Jon McCann wrote: > What do you think? This one I REAAALLY like! Good Job! (Guess I like Tango ;)) Only thing, imho, the bubbles of those two notes are kind of wide, or rather, long. I'd suggest shrinking them a little (only the "bubbles" and only horizontally). Just my thoughts. -karsten From nudrema@gmail.com Fri Jun 2 08:40:15 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id EB3813B0490 for ; Fri, 2 Jun 2006 08:40:14 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 26179-07 for ; Fri, 2 Jun 2006 08:40:14 -0400 (EDT) Received: from swip.net (mailfe01.swip.net [212.247.154.1]) by menubar.gnome.org (Postfix) with ESMTP id DAD933B0351 for ; Fri, 2 Jun 2006 08:40:12 -0400 (EDT) X-T2-Posting-ID: Ee7YIbSG3O5rNcT4cGADretWTWrDEjpwS9FwzyhFhzk= X-Cloudmark-Score: 0.000000 [] Received: from [83.182.30.88] (HELO [10.0.0.14]) by mailfe01.swip.net (CommuniGate Pro SMTP 5.0.8) with ESMTP id 187403356 for rhythmbox-devel@gnome.org; Fri, 02 Jun 2006 14:40:11 +0200 Message-ID: <448031AA.7090202@gmail.com> Date: Fri, 02 Jun 2006 14:40:10 +0200 From: =?ISO-8859-1?Q?Steve_Fr=E9cinaux?= User-Agent: Thunderbird 1.5.0.2 (X11/20060522) MIME-Version: 1.0 To: rhythmbox-devel@gnome.org Subject: Re: [Rhythmbox-devel] svg icon for rhythmbox References: <447CE08D.6060705@riseup.net> <447FBF78.4050000@jhu.edu> In-Reply-To: <447FBF78.4050000@jhu.edu> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-1.964 tagged_above=-999 required=2 tests=[AWL=-0.434, BAYES_00=-2.599, SPF_NEUTRAL=1.069] X-Spam-Score: -1.964 X-Spam-Level: X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jun 2006 12:40:15 -0000 William Jon McCann wrote: > What do you think? I strongly prefer the first one since it is more specific to the rhythm_box_ thing, and because rhythmbox has nearly nothing to do with CD's: it's a MP3/Ogg library and player. From mccann@jhu.edu Fri Jun 2 10:27:15 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 11A4A3B0238 for ; Fri, 2 Jun 2006 10:27:15 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 32496-03 for ; Fri, 2 Jun 2006 10:27:13 -0400 (EDT) Received: from ipex4.johnshopkins.edu (ipex4.johnshopkins.edu [128.220.2.151]) by menubar.gnome.org (Postfix) with ESMTP id 760873B0272 for ; Fri, 2 Jun 2006 10:27:13 -0400 (EDT) Received: from adcam-2.pha.jhu.edu (HELO adcam.pha.jhu.edu) ([128.220.146.77]) by ipex4.johnshopkins.edu with ESMTP/TLS/AES256-SHA; 02 Jun 2006 10:27:11 -0400 X-BrightmailFiltered: true X-Brightmail-Tracker: AAAAAA== X-IronPort-AV: i="4.05,204,1146456000"; d="scan'208"; a="152620721:sNHT39546002" Received: from [128.220.146.22] (acs7 [128.220.146.22]) (authenticated bits=0) by adcam.pha.jhu.edu (8.13.6/8.13.6) with ESMTP id k52ERCTn018346 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Fri, 2 Jun 2006 10:27:12 -0400 (EDT) Message-ID: <44804ABF.6030107@jhu.edu> Date: Fri, 02 Jun 2006 10:27:11 -0400 From: William Jon McCann User-Agent: Mozilla Thunderbird 1.0.8-1.4.1 (X11/20060420) X-Accept-Language: en-us, en MIME-Version: 1.0 To: rhythmbox-devel@gnome.org Subject: Re: [Rhythmbox-devel] svg icon for rhythmbox References: <447CE08D.6060705@riseup.net> <447FBF78.4050000@jhu.edu> <448031AA.7090202@gmail.com> In-Reply-To: <448031AA.7090202@gmail.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.596 tagged_above=-999 required=2 tests=[AWL=0.003, BAYES_00=-2.599] X-Spam-Score: -2.596 X-Spam-Level: X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jun 2006 14:27:15 -0000 Hi Steve, Steve Frécinaux wrote: > William Jon McCann wrote: > >>What do you think? > > > I strongly prefer the first one since it is more specific to the > rhythm_box_ thing, and because rhythmbox has nearly nothing to do with > CD's: it's a MP3/Ogg library and player. I'm not sure why you think that rhythmbox has nearly nothing to do with CDs. It plays them, rips them, and burns them... I think the fact that rhythmbox has or will become the default handler for CD audio is a compelling reason to include a CD in the logo. While I like the blue-box-note icon I have to admit that I'm not really a big fan of the visual pun type of icon. See: http://developer.gnome.org/projects/gup/hig/2.0/icons-design.html#icon_problems Jon From mccann@jhu.edu Fri Jun 2 11:46:31 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id D45FD3B00A5 for ; Fri, 2 Jun 2006 11:46:31 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 05090-05 for ; Fri, 2 Jun 2006 11:46:27 -0400 (EDT) Received: from ipex2.johnshopkins.edu (ipex2.johnshopkins.edu [162.129.8.151]) by menubar.gnome.org (Postfix) with ESMTP id 709C23B00C6 for ; Fri, 2 Jun 2006 11:46:27 -0400 (EDT) Received: from adcam.pha.jhu.edu ([128.220.146.76]) by ipex2.johnshopkins.edu with ESMTP/TLS/AES256-SHA; 02 Jun 2006 11:46:26 -0400 X-BrightmailFiltered: true X-Brightmail-Tracker: AAAAAA== X-IronPort-AV: i="4.05,204,1146456000"; d="scan'208"; a="156101540:sNHT39512460" Received: from [128.220.146.22] (acs7 [128.220.146.22]) (authenticated bits=0) by adcam.pha.jhu.edu (8.13.6/8.13.6) with ESMTP id k52FkQi2007486 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Fri, 2 Jun 2006 11:46:26 -0400 (EDT) Message-ID: <44805D52.40003@jhu.edu> Date: Fri, 02 Jun 2006 11:46:26 -0400 From: William Jon McCann User-Agent: Mozilla Thunderbird 1.0.8-1.4.1 (X11/20060420) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Rhythmbox Mailing List Subject: [Fwd: Re: [Rhythmbox-devel] svg icon for rhythmbox] Content-Type: multipart/mixed; boundary="------------070206030001040802010300" X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.296 tagged_above=-999 required=2 tests=[AWL=-0.296, BAYES_00=-2.599, HTML_30_40=0.374, HTML_MESSAGE=0.001, MIME_BASE64_NO_NAME=0.224] X-Spam-Score: -2.296 X-Spam-Level: X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jun 2006 15:46:32 -0000 This is a multi-part message in MIME format. --------------070206030001040802010300 Content-Type: text/plain; charset=windows-1251; format=flowed Content-Transfer-Encoding: 7bit --------------070206030001040802010300 Content-Type: message/rfc822; name="Re: [Rhythmbox-devel] svg icon for rhythmbox" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="Re: [Rhythmbox-devel] svg icon for rhythmbox" Return-Path: Received: from jhmin1.jhmi.edu (jhmin1.jhmi.edu [162.129.8.64]) by adcam.pha.jhu.edu (8.13.6/8.13.6) with ESMTP id k52FdM76004066 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=FAIL) for ; Fri, 2 Jun 2006 11:39:22 -0400 (EDT) Received: from ipex2.johnshopkins.edu (ipex2.johnshopkins.edu [162.129.8.151]) by jhmin1.jhmi.edu (Sun Java System Messaging Server 6.1 HotFix 0.02 (built Aug 25 2004)) with ESMTPS id <0J08001CQOTMYW10@jhmin1.jhmi.edu> for mccannwj@adcam.pha.jhu.edu; Fri, 02 Jun 2006 11:39:22 -0400 (EDT) Received: from concorde.pha.jhu.edu ([128.220.143.18]) by ipex2.johnshopkins.edu with ESMTP/TLS/AES256-SHA; Fri, 02 Jun 2006 11:39:22 -0400 Received: from jhmin1.jhmi.edu (jhmin1.jhmi.edu [162.129.8.64]) by concorde.pha.jhu.edu (8.13.1/8.13.1) with ESMTP id k52FdMWZ025815 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=OK) for ; Fri, 02 Jun 2006 11:39:22 -0400 Received: from ipex4.johnshopkins.edu (ipex4.johnshopkins.edu [128.220.2.151]) by jhmin1.jhmi.edu (Sun Java System Messaging Server 6.1 HotFix 0.02 (built Aug 25 2004)) with ESMTPS id <0J08001F1OTLYU10@jhmin1.jhmi.edu> for mccannwj@pha.jhu.edu (ORCPT mccann@jhu.edu); Fri, 02 Jun 2006 11:39:21 -0400 (EDT) Received: from ug-out-1314.google.com ([66.249.92.175]) by ipex4.johnshopkins.edu with ESMTP; Fri, 02 Jun 2006 11:39:21 -0400 Received: by ug-out-1314.google.com with SMTP id k40so503683ugc for ; Fri, 02 Jun 2006 08:39:21 -0700 (PDT) Received: by 10.78.57.11 with SMTP id f11mr338654hua; Fri, 02 Jun 2006 08:39:21 -0700 (PDT) Received: by 10.78.59.19 with HTTP; Fri, 02 Jun 2006 08:39:21 -0700 (PDT) Date: Fri, 02 Jun 2006 17:39:21 +0200 From: Pau Subject: Re: [Rhythmbox-devel] svg icon for rhythmbox In-reply-to: <44804ABF.6030107@jhu.edu> To: William Jon McCann Message-id: MIME-version: 1.0 Content-type: multipart/alternative; boundary="----=_Part_10019_5326840.1149262761340" DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; b=PSGnOzeTW/CyZCWhcpwjagFcJg2TBDWMVTD1ttFWbq9Y7+E9oYE434DNiYwbO7OGyooKVNuxAbUnZgPinKV9TbToTfwHcOz6oRenjtaxCgvKCdRJ9oYQ6JUUdC/uy0AJXxvStP1mc79eXGfYHxOyVi7V+He+e5tLm88V1qLHx+I= X-BrightmailFiltered: true X-Brightmail-Tracker: AAAAAA== X-IronPort-AV: i="4.05,204,1146456000"; d="scan'208"; a="156099331:sNHT31505292" X-BrightmailFiltered: true X-Brightmail-Tracker: AAAAAA== X-IronPort-AV: i="4.05,204,1146456000"; d="scan'208"; a="152649636:sNHT41277364" References: <447CE08D.6060705@riseup.net> <447FBF78.4050000@jhu.edu> <448031AA.7090202@gmail.com> <44804ABF.6030107@jhu.edu> ------=_Part_10019_5326840.1149262761340 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 Content-Disposition: inline VGhlcmUgaGFzIGJlZW4gcmVjZW50bHkgYSBkaXNjdXNzaW9uIGFib3V0IGEgdGFuZ28gaWNvbiBp biB0aGUgdGFuZ28tYXJ0aXN0cwptYWlsaW5nIGxpc3QsIHRoZXJlIGFyZSBzb21lIGljb25zIHRo ZXJlIHRvbzoKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy90YW5nby1hcnRp c3RzLzIwMDYtQXByaWwvMDAwMzY5Lmh0bWwKCjIwMDYvNi8yLCBXaWxsaWFtIEpvbiBNY0Nhbm4g PG1jY2FubkBqaHUuZWR1PjoKPgo+IEhpIFN0ZXZlLAo+Cj4gU3RldmUgRnLDqWNpbmF1eCB3cm90 ZToKPiA+IFdpbGxpYW0gSm9uIE1jQ2FubiB3cm90ZToKPiA+Cj4gPj5XaGF0IGRvIHlvdSB0aGlu az8KPiA+Cj4gPgo+ID4gSSBzdHJvbmdseSBwcmVmZXIgdGhlIGZpcnN0IG9uZSBzaW5jZSBpdCBp cyBtb3JlIHNwZWNpZmljIHRvIHRoZQo+ID4gcmh5dGhtX2JveF8gdGhpbmcsIGFuZCBiZWNhdXNl IHJoeXRobWJveCBoYXMgbmVhcmx5IG5vdGhpbmcgdG8gZG8gd2l0aAo+ID4gQ0QnczogaXQncyBh IE1QMy9PZ2cgbGlicmFyeSBhbmQgcGxheWVyLgo+Cj4gSSdtIG5vdCBzdXJlIHdoeSB5b3UgdGhp bmsgdGhhdCByaHl0aG1ib3ggaGFzIG5lYXJseSBub3RoaW5nIHRvIGRvIHdpdGgKPiBDRHMuICBJ dCBwbGF5cyB0aGVtLCByaXBzIHRoZW0sIGFuZCBidXJucyB0aGVtLi4uCj4KPiBJIHRoaW5rIHRo ZSBmYWN0IHRoYXQgcmh5dGhtYm94IGhhcyBvciB3aWxsIGJlY29tZSB0aGUgZGVmYXVsdCBoYW5k bGVyCj4gZm9yIENEIGF1ZGlvIGlzIGEgY29tcGVsbGluZyByZWFzb24gdG8gaW5jbHVkZSBhIENE IGluIHRoZSBsb2dvLgo+Cj4gV2hpbGUgSSBsaWtlIHRoZSBibHVlLWJveC1ub3RlIGljb24gSSBo YXZlIHRvIGFkbWl0IHRoYXQgSSdtIG5vdCByZWFsbHkKPiBhIGJpZyBmYW4gb2YgdGhlIHZpc3Vh bCBwdW4gdHlwZSBvZiBpY29uLiAgU2VlOgo+Cj4gaHR0cDovL2RldmVsb3Blci5nbm9tZS5vcmcv cHJvamVjdHMvZ3VwL2hpZy8yLjAvaWNvbnMtZGVzaWduLmh0bWwjaWNvbl9wcm9ibGVtcwo+Cj4g Sm9uCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBy aHl0aG1ib3gtZGV2ZWwgbWFpbGluZyBsaXN0Cj4gcmh5dGhtYm94LWRldmVsQGdub21lLm9yZwo+ IGh0dHA6Ly9tYWlsLmdub21lLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3JoeXRobWJveC1kZXZlbAo+ Cg== ------=_Part_10019_5326840.1149262761340 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: base64 Content-Disposition: inline VGhlcmUgaGFzIGJlZW4gcmVjZW50bHkgYSBkaXNjdXNzaW9uIGFib3V0IGEgdGFuZ28gaWNvbiBp biB0aGUgdGFuZ28tYXJ0aXN0cyBtYWlsaW5nIGxpc3QsIHRoZXJlIGFyZSBzb21lIGljb25zIHRo ZXJlIHRvbzogPGEgaHJlZj0iaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy90 YW5nby1hcnRpc3RzLzIwMDYtQXByaWwvMDAwMzY5Lmh0bWwiPmh0dHA6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvYXJjaGl2ZXMvdGFuZ28tYXJ0aXN0cy8yMDA2LUFwcmlsLzAwMDM2OS5odG1sCjwv YT48YnI+PGJyPjxkaXY+PHNwYW4gY2xhc3M9ImdtYWlsX3F1b3RlIj4yMDA2LzYvMiwgV2lsbGlh bSBKb24gTWNDYW5uICZsdDs8YSBocmVmPSJtYWlsdG86bWNjYW5uQGpodS5lZHUiPm1jY2FubkBq aHUuZWR1PC9hPiZndDs6PC9zcGFuPjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5 bGU9ImJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiKDIwNCwgMjA0LCAyMDQpOyBtYXJnaW46IDBw dCAwcHQgMHB0IDAuOGV4OyBwYWRkaW5nLWxlZnQ6IDFleDsiPgpIaSBTdGV2ZSw8YnI+PGJyPlN0 ZXZlIEZyw6ljaW5hdXggd3JvdGU6PGJyPiZndDsgV2lsbGlhbSBKb24gTWNDYW5uIHdyb3RlOjxi cj4mZ3Q7PGJyPiZndDsmZ3Q7V2hhdCBkbyB5b3UgdGhpbms/PGJyPiZndDs8YnI+Jmd0Ozxicj4m Z3Q7IEkgc3Ryb25nbHkgcHJlZmVyIHRoZSBmaXJzdCBvbmUgc2luY2UgaXQgaXMgbW9yZSBzcGVj aWZpYyB0byB0aGU8YnI+Jmd0OyByaHl0aG1fYm94XyB0aGluZywgYW5kIGJlY2F1c2Ugcmh5dGht Ym94IGhhcyBuZWFybHkgbm90aGluZyB0byBkbyB3aXRoCjxicj4mZ3Q7IENEJ3M6IGl0J3MgYSBN UDMvT2dnIGxpYnJhcnkgYW5kIHBsYXllci48YnI+PGJyPkknbSBub3Qgc3VyZSB3aHkgeW91IHRo aW5rIHRoYXQgcmh5dGhtYm94IGhhcyBuZWFybHkgbm90aGluZyB0byBkbyB3aXRoPGJyPkNEcy4m bmJzcDsmbmJzcDtJdCBwbGF5cyB0aGVtLCByaXBzIHRoZW0sIGFuZCBidXJucyB0aGVtLi4uPGJy Pjxicj5JIHRoaW5rIHRoZSBmYWN0IHRoYXQgcmh5dGhtYm94IGhhcyBvciB3aWxsIGJlY29tZSB0 aGUgZGVmYXVsdCBoYW5kbGVyCjxicj5mb3IgQ0QgYXVkaW8gaXMgYSBjb21wZWxsaW5nIHJlYXNv biB0byBpbmNsdWRlIGEgQ0QgaW4gdGhlIGxvZ28uPGJyPjxicj5XaGlsZSBJIGxpa2UgdGhlIGJs dWUtYm94LW5vdGUgaWNvbiBJIGhhdmUgdG8gYWRtaXQgdGhhdCBJJ20gbm90IHJlYWxseTxicj5h IGJpZyBmYW4gb2YgdGhlIHZpc3VhbCBwdW4gdHlwZSBvZiBpY29uLiZuYnNwOyZuYnNwO1NlZTo8 YnI+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci5nbm9tZS5vcmcvcHJvamVjdHMvZ3VwL2hpZy8y LjAvaWNvbnMtZGVzaWduLmh0bWwjaWNvbl9wcm9ibGVtcyI+Cmh0dHA6Ly9kZXZlbG9wZXIuZ25v bWUub3JnL3Byb2plY3RzL2d1cC9oaWcvMi4wL2ljb25zLWRlc2lnbi5odG1sI2ljb25fcHJvYmxl bXM8L2E+PGJyPjxicj5Kb248YnI+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX188YnI+cmh5dGhtYm94LWRldmVsIG1haWxpbmcgbGlzdDxicj48YSBocmVmPSJt YWlsdG86cmh5dGhtYm94LWRldmVsQGdub21lLm9yZyI+CnJoeXRobWJveC1kZXZlbEBnbm9tZS5v cmc8L2E+PGJyPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9tYWlsbWFuL2xpc3RpbmZv L3JoeXRobWJveC1kZXZlbCI+aHR0cDovL21haWwuZ25vbWUub3JnL21haWxtYW4vbGlzdGluZm8v cmh5dGhtYm94LWRldmVsPC9hPjxicj48L2Jsb2NrcXVvdGU+PC9kaXY+PGJyPgo= ------=_Part_10019_5326840.1149262761340-- --------------070206030001040802010300-- From pclouds@gmail.com Fri Jun 2 12:11:52 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id E27EE3B01A4 for ; Fri, 2 Jun 2006 12:11:51 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 06850-07 for ; Fri, 2 Jun 2006 12:11:50 -0400 (EDT) Received: from wx-out-0102.google.com (wx-out-0102.google.com [66.249.82.195]) by menubar.gnome.org (Postfix) with ESMTP id A0D863B0255 for ; Fri, 2 Jun 2006 12:11:49 -0400 (EDT) Received: by wx-out-0102.google.com with SMTP id i30so579822wxd for ; Fri, 02 Jun 2006 09:11:48 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=UHWgQTtID028moZL9SfycBUs2ItUg+WnRZuTM9YBe0HB1nnVltBTrTzcglxt40W+eW4J2cCkQtmULJrAAwqk8o7XIEGRm12Rioy58huF0Vke9Qv1yRdhzwleNWBh3ORsnKwEa6KxlqZfz+fcBJ/ia1XCor0wrUtm5UrQXrAI6Dk= Received: by 10.70.40.12 with SMTP id n12mr2639807wxn; Fri, 02 Jun 2006 09:11:46 -0700 (PDT) Received: by 10.70.45.11 with HTTP; Fri, 2 Jun 2006 09:11:46 -0700 (PDT) Message-ID: Date: Fri, 2 Jun 2006 23:11:46 +0700 From: "=?UTF-8?Q?Nguy=E1=BB=85n_Th=C3=A1i_Ng=E1=BB=8Dc_Duy?=" To: "William Jon McCann" Subject: Re: [Rhythmbox-devel] svg icon for rhythmbox In-Reply-To: <44804ABF.6030107@jhu.edu> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 Content-Disposition: inline References: <447CE08D.6060705@riseup.net> <447FBF78.4050000@jhu.edu> <448031AA.7090202@gmail.com> <44804ABF.6030107@jhu.edu> X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.354 tagged_above=-999 required=2 tests=[AWL=0.022, BAYES_00=-2.599, MIME_BASE64_NO_NAME=0.224, SPF_PASS=-0.001] X-Spam-Score: -2.354 X-Spam-Level: Cc: rhythmbox-devel@gnome.org X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jun 2006 16:11:52 -0000 T24gNi8yLzA2LCBXaWxsaWFtIEpvbiBNY0Nhbm4gPG1jY2FubkBqaHUuZWR1PiB3cm90ZToKPiA+ IEkgc3Ryb25nbHkgcHJlZmVyIHRoZSBmaXJzdCBvbmUgc2luY2UgaXQgaXMgbW9yZSBzcGVjaWZp YyB0byB0aGUKPiA+IHJoeXRobV9ib3hfIHRoaW5nLCBhbmQgYmVjYXVzZSByaHl0aG1ib3ggaGFz IG5lYXJseSBub3RoaW5nIHRvIGRvIHdpdGgKPiA+IENEJ3M6IGl0J3MgYSBNUDMvT2dnIGxpYnJh cnkgYW5kIHBsYXllci4KCkkgcHJlZmVyIHRoZSBmaXJzdCBvbmUgdG9vLgoKPgo+IEknbSBub3Qg c3VyZSB3aHkgeW91IHRoaW5rIHRoYXQgcmh5dGhtYm94IGhhcyBuZWFybHkgbm90aGluZyB0byBk byB3aXRoCj4gQ0RzLiAgSXQgcGxheXMgdGhlbSwgcmlwcyB0aGVtLCBhbmQgYnVybnMgdGhlbS4u LgoKWWVzLCBidXQgaXQncyBub3Qgcmh5dGhtYm94J3MgcHJpbWFyeSBmdW5jdGlvbi4gSXQncyBn b2luZyB0byBiZSBhCnBsdWdpbiBJSVJDLiAgQW5kIHRoZSBmaXJzdCBpcyBzaW1wbGVyLCBqdXN0 IG9uZSB0aGluZyBpbnN0ZWFkIG9mIHR3bwppbiB0aGUgc2Vjb25kLgoKPgo+IEkgdGhpbmsgdGhl IGZhY3QgdGhhdCByaHl0aG1ib3ggaGFzIG9yIHdpbGwgYmVjb21lIHRoZSBkZWZhdWx0IGhhbmRs ZXIKPiBmb3IgQ0QgYXVkaW8gaXMgYSBjb21wZWxsaW5nIHJlYXNvbiB0byBpbmNsdWRlIGEgQ0Qg aW4gdGhlIGxvZ28uCgpJIHRoaW5rIGl0J3MgdG90ZW0gdGhhdCB3aWxsIGJlY29tZSBhIGRlZmF1 bHQgaGFuZGxlciBmb3IgYW55dGhpbmcKcGxheWFibGUsIG5vdCByaHl0aG1ib3guCgotLSAKQmkg Q+G7nSBMYW8K From nudrema@gmail.com Sat Jun 3 05:30:31 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 7C0F53B05BD for ; Sat, 3 Jun 2006 05:30:31 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 25490-10 for ; Sat, 3 Jun 2006 05:30:30 -0400 (EDT) Received: from swip.net (mailfe02.swip.net [212.247.154.33]) by menubar.gnome.org (Postfix) with ESMTP id 138B93B0607 for ; Sat, 3 Jun 2006 05:30:29 -0400 (EDT) X-T2-Posting-ID: Ee7YIbSG3O5rNcT4cGADretWTWrDEjpwS9FwzyhFhzk= X-Cloudmark-Score: 0.000000 [] Received: from [83.182.30.51] (HELO [10.0.0.13]) by mailfe02.swip.net (CommuniGate Pro SMTP 5.0.8) with ESMTP id 210257012 for rhythmbox-devel@gnome.org; Sat, 03 Jun 2006 11:30:28 +0200 Message-ID: <448156B3.5070702@gmail.com> Date: Sat, 03 Jun 2006 11:30:27 +0200 From: =?UTF-8?B?U3RldmUgRnLDqWNpbmF1eA==?= User-Agent: Thunderbird 1.5.0.2 (X11/20060522) MIME-Version: 1.0 Cc: rhythmbox-devel@gnome.org Subject: Re: [Rhythmbox-devel] svg icon for rhythmbox References: <447CE08D.6060705@riseup.net> <447FBF78.4050000@jhu.edu> <448031AA.7090202@gmail.com> <44804ABF.6030107@jhu.edu> In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-1.222 tagged_above=-999 required=2 tests=[AWL=-1.181, BAYES_05=-1.11, SPF_NEUTRAL=1.069] X-Spam-Score: -1.222 X-Spam-Level: X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jun 2006 09:30:31 -0000 Nguyá»…n Thái Ngá»c Duy wrote: >> I think the fact that rhythmbox has or will become the default handler >> for CD audio is a compelling reason to include a CD in the logo. > > I think it's totem that will become a default handler for anything > playable, not rhythmbox. Indeed. Remember that Rhythmbox is not part of the desktop yet. From rsgill@purdue.edu Fri Jun 2 22:20:22 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 06C773B0462 for ; Fri, 2 Jun 2006 22:20:22 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 05669-09 for ; Fri, 2 Jun 2006 22:20:18 -0400 (EDT) Received: from mailhub246.itcs.purdue.edu (mailhub246.itcs.purdue.edu [128.210.5.246]) by menubar.gnome.org (Postfix) with ESMTP id EC0AC3B03BA for ; Fri, 2 Jun 2006 22:20:17 -0400 (EDT) Received: from slayer ([74.132.209.119]) (authenticated bits=0) by mailhub246.itcs.purdue.edu (8.13.6/8.13.4/external-auth-smtp) with ESMTP id k532KFDZ030876 for ; Fri, 2 Jun 2006 22:20:15 -0400 From: R S Gill To: rhythmbox-devel@gnome.org Content-Type: multipart/alternative; boundary="=-8TWQuduCQwCM7d0lHnrr" Date: Fri, 02 Jun 2006 22:19:23 -0400 Message-Id: <1149301163.11291.3.camel@localhost> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 X-PMX-Version: 5.1.2.240295 X-PerlMx-Virus-Scanned: Yes X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-0.735 tagged_above=-999 required=2 tests=[BAYES_05=-1.11, HTML_30_40=0.374, HTML_MESSAGE=0.001] X-Spam-Score: -0.735 X-Spam-Level: X-Mailman-Approved-At: Sun, 04 Jun 2006 04:17:24 -0400 Subject: [Rhythmbox-devel] Feature Request X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jun 2006 02:20:22 -0000 --=-8TWQuduCQwCM7d0lHnrr Content-Type: text/plain Content-Transfer-Encoding: 7bit Can you guys please include a way to redownload a podcast. Sometimes when the connection times out, the only recourse is to manually download the podcast in question directly from the website via Firefox. Having Rhythmbox lose all awarness of podcasts that have been deleted just doesn't cut it. At the very least it should be have like iTunes and redownload the episode list if not the actual episodes again. Gill (Ubuntu Dapper) --=-8TWQuduCQwCM7d0lHnrr Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: 7bit Can you guys please include a way to redownload a podcast. Sometimes when the connection times out, the only recourse is to manually download the podcast in question directly from the website via Firefox.

Having Rhythmbox lose all awarness of podcasts that have been deleted just doesn't cut it. At the very least it should be have like iTunes and redownload the episode list if not the actual episodes again.

Gill
(Ubuntu Dapper) --=-8TWQuduCQwCM7d0lHnrr-- From elijah@riseup.net Sat Jun 3 18:37:32 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id A46B63B02FE for ; Sat, 3 Jun 2006 18:37:32 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 01003-01 for ; Sat, 3 Jun 2006 18:37:31 -0400 (EDT) Received: from mail.riseup.net (buffy.riseup.net [208.99.202.32]) by menubar.gnome.org (Postfix) with ESMTP id 78A143B0497 for ; Sat, 3 Jun 2006 18:37:30 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by mail.riseup.net (Postfix) with ESMTP id 18FD0A2E5C; Sat, 3 Jun 2006 15:36:20 -0700 (PDT) Received: from mail.riseup.net ([127.0.0.1]) by localhost (buffy [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 18290-35; Sat, 3 Jun 2006 15:36:19 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mail.riseup.net (Postfix) with ESMTP id 0FE84A2D7F; Sat, 3 Jun 2006 15:36:18 -0700 (PDT) Message-ID: <44820F1F.9040803@riseup.net> Date: Sat, 03 Jun 2006 15:37:19 -0700 From: elijah User-Agent: Thunderbird 1.5.0.2 (X11/20060522) MIME-Version: 1.0 To: rhythmbox-devel@gnome.org Subject: Re: [Rhythmbox-devel] Re: svg icon for rhythmbox References: <1149113816.20283.4.camel@localhost.localdomain> <4a305d880606011452h52be7424ma24730aeaad63d93@mail.gmail.com> <4a305d880606011454m10293791qc7ee5e579da34744@mail.gmail.com> In-Reply-To: <4a305d880606011454m10293791qc7ee5e579da34744@mail.gmail.com> X-Enigmail-Version: 0.94.0.0 Content-Type: multipart/mixed; boundary="------------020400070607020405040309" X-Virus-Scanned: by amavisd-new-20030616-p10 (Debian) at riseup.net X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.599 tagged_above=-999 required=2 tests=[AWL=0.000, BAYES_00=-2.599] X-Spam-Score: -2.599 X-Spam-Level: X-Mailman-Approved-At: Sun, 04 Jun 2006 04:17:24 -0400 Cc: X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jun 2006 22:37:32 -0000 This is a multi-part message in MIME format. --------------020400070607020405040309 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Christophe Dehais wrote: > And here are the corrected icons (inkscape layered version and raw SVG) SVG attached is based on Christophe's tango-like glitch-free version, but with the weird fade problem between the stem and cube fixed. -elijah --------------020400070607020405040309 Content-Type: image/svg+xml; name="rhythmbox.svg" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="rhythmbox.svg" PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+ CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8p IC0tPgo8c3ZnCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAg IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6eGxpbms9Imh0 dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCiAgIHZlcnNpb249IjEuMCIKICAgd2lkdGg9 IjEyOCIKICAgaGVpZ2h0PSIxMjgiCiAgIHZpZXdCb3g9IjAgMCA3MC4yIDQ4IgogICBpZD0i c3ZnMiIKICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PGRlZnMKICAgaWQ9ImRlZnM2MiI+PGxp bmVhckdyYWRpZW50CiAgICAgaWQ9ImxpbmVhckdyYWRpZW50MjI0MCI+PHN0b3AKICAgICAg IHN0eWxlPSJzdG9wLWNvbG9yOiM2ZWFiZTY7c3RvcC1vcGFjaXR5OjEiCiAgICAgICBvZmZz ZXQ9IjAiCiAgICAgICBpZD0ic3RvcDIyNDIiIC8+PHN0b3AKICAgICAgIHN0eWxlPSJzdG9w LWNvbG9yOiMzMzhmZWM7c3RvcC1vcGFjaXR5OjEiCiAgICAgICBvZmZzZXQ9IjEiCiAgICAg ICBpZD0ic3RvcDIyNDQiIC8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQKICAg ICB4MT0iNDAuMjYxNyIKICAgICB5MT0iMzguNzc0Mzk5IgogICAgIHgyPSI1Ni42NDk2MDEi CiAgICAgeTI9IjE5LjQ4MTUwMSIKICAgICBpZD0ibGluZWFyR3JhZGllbnQyNjY3IgogICAg IGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgIGdyYWRpZW50VHJhbnNmb3Jt PSJtYXRyaXgoMS4yMDEyNCw5LjMxMzUyNmUtMiwtOS4zMTM1MjZlLTIsMS4yMDEyNCwtMy45 MDE3NzEsLTYuNjcxODMxKSI+CgkJCTxzdG9wCiAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwODZl ZDQ7c3RvcC1vcGFjaXR5OjEiCiAgIG9mZnNldD0iMCIKICAgaWQ9InN0b3AyNjY5IiAvPgoJ CQk8c3RvcAogICBzdHlsZT0ic3RvcC1jb2xvcjojMWE1MDg2O3N0b3Atb3BhY2l0eToxIgog ICBvZmZzZXQ9IjEiCiAgIGlkPSJzdG9wMjY3MSIgLz4KCQk8L2xpbmVhckdyYWRpZW50Pjxs aW5lYXJHcmFkaWVudAogICAgIHgxPSI5LjEzNDgiCiAgICAgeTE9IjMzLjg1NDUiCiAgICAg eDI9IjM1LjM1MjQwMiIKICAgICB5Mj0iMzUuNzQyODAyIgogICAgIGlkPSJsaW5lYXJHcmFk aWVudDI2NjEiCiAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgZ3Jh ZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxLjIwMTI0LDkuMzEzNTI2ZS0yLC05LjMxMzUyNmUt MiwxLjIwMTI0LC0zLjkwMTc3MSwtNi42NzE4MzEpIj4KCQkJPHN0b3AKICAgc3R5bGU9InN0 b3AtY29sb3I6I2I2ZDhmYztzdG9wLW9wYWNpdHk6MSIKICAgb2Zmc2V0PSIwIgogICBpZD0i c3RvcDI2NjMiIC8+CgkJCTxzdG9wCiAgIHN0eWxlPSJzdG9wLWNvbG9yOiMyMDgxZTM7c3Rv cC1vcGFjaXR5OjEiCiAgIG9mZnNldD0iMSIKICAgaWQ9InN0b3AyNjY1IiAvPgoJCTwvbGlu ZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50CiAgICAgeDE9IjcuMTEzOCIKICAgICB5MT0i MjIuNDM1NDk5IgogICAgIHgyPSI1Ny40MDQzMDEiCiAgICAgeTI9IjIyLjQzNTQ5OSIKICAg ICBpZD0ibGluZWFyR3JhZGllbnQyNjU1IgogICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFj ZU9uVXNlIgogICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMS4yMDEyNCw5LjMxMzUy NmUtMiwtOS4zMTM1MjZlLTIsMS4yMDEyNCwtMy45MDE3NzEsLTYuNjcxODMxKSI+CgkJCTxz dG9wCiAgIHN0eWxlPSJzdG9wLWNvbG9yOiMzMThlZWQ7c3RvcC1vcGFjaXR5OjEiCiAgIG9m ZnNldD0iMCIKICAgaWQ9InN0b3AyNjU3IiAvPgoJCQk8c3RvcAogICBzdHlsZT0ic3RvcC1j b2xvcjojNzhiMGU2O3N0b3Atb3BhY2l0eToxIgogICBvZmZzZXQ9IjEiCiAgIGlkPSJzdG9w MjY1OSIgLz4KCQk8L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudAogICAgIGlkPSJs aW5lYXJHcmFkaWVudDEwNDU3Ij48c3RvcAogICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzAw MDAwMDtzdG9wLW9wYWNpdHk6MC43MTQyODU3MyIKICAgICAgIG9mZnNldD0iMCIKICAgICAg IGlkPSJzdG9wMTA0NTkiIC8+PHN0b3AKICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAw MDA7c3RvcC1vcGFjaXR5OjAiCiAgICAgICBvZmZzZXQ9IjEiCiAgICAgICBpZD0ic3RvcDEw NDYxIiAvPjwvbGluZWFyR3JhZGllbnQ+PHJhZGlhbEdyYWRpZW50CiAgICAgY3g9IjI0Ljcz NDcxMSIKICAgICBjeT0iMjEwLjI5MDMxIgogICAgIHI9IjIwLjkyOTM2OSIKICAgICBmeD0i MjQuNzM0NzExIgogICAgIGZ5PSIyMTAuMjkwMzEiCiAgICAgaWQ9InJhZGlhbEdyYWRpZW50 MTUxOSIKICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQxMDQ1NyIKICAgICBncmFk aWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICBncmFkaWVudFRyYW5zZm9ybT0ic2Nh bGUoMi4xMTAwNjcsMC40NzM5MTkpIiAvPjxsaW5lYXJHcmFkaWVudAogICAgIHgxPSI0MC4y NjE3IgogICAgIHkxPSIzOC43NzQzOTkiCiAgICAgeDI9IjU2LjY0OTYwMSIKICAgICB5Mj0i MTkuNDgxNTAxIgogICAgIGlkPSJsaW5lYXJHcmFkaWVudDEzNDUiCiAgICAgeGxpbms6aHJl Zj0iI2xpbmVhckdyYWRpZW50MjY2NyIKICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VP blVzZSIKICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAuNzE5MTQ4LDUuNTc1NzMz ZS0yLC01LjU3NTczM2UtMiwwLjcxOTE0OCw0LjkxNTE5NSwyMS45MDE5NCkiIC8+PGxpbmVh ckdyYWRpZW50CiAgICAgeDE9IjcuMTEzOCIKICAgICB5MT0iMjIuNDM1NDk5IgogICAgIHgy PSI1Ny40MDQzMDEiCiAgICAgeTI9IjIyLjQzNTQ5OSIKICAgICBpZD0ibGluZWFyR3JhZGll bnQxMzUxIgogICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDI2NTUiCiAgICAgZ3Jh ZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1h dHJpeCgwLjcxOTE0OCw1LjU3NTczM2UtMiwtNS41NzU3MzNlLTIsMC43MTkxNDgsNC45MTUx OTUsNy4zMDA3NDkpIiAvPjxsaW5lYXJHcmFkaWVudAogICAgIHgxPSI5LjEzNDgiCiAgICAg eTE9IjMzLjg1NDUiCiAgICAgeDI9IjM1LjM1MjQwMiIKICAgICB5Mj0iMzUuNzQyODAyIgog ICAgIGlkPSJsaW5lYXJHcmFkaWVudDEzNTciCiAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdy YWRpZW50MjY2MSIKICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICBn cmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAuNzE5MTQ4LDUuNTc1NzMzZS0yLC01LjU3NTcz M2UtMiwwLjcxOTE0OCw0LjkxNTE5NSwyMS45MDE5NCkiIC8+PGxpbmVhckdyYWRpZW50CiAg ICAgeDE9IjQxLjk5NTUyOSIKICAgICB5MT0iMTMuOTM3OTMiCiAgICAgeDI9IjU0LjUwMTM1 OCIKICAgICB5Mj0iNi4yMTg5NjM2IgogICAgIGlkPSJsaW5lYXJHcmFkaWVudDIyMzgiCiAg ICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50MjI0MCIKICAgICBncmFkaWVudFVuaXRz PSJ1c2VyU3BhY2VPblVzZSIgLz48L2RlZnM+CgkKCQo8ZwogICBzdHlsZT0iZGlzcGxheTpp bmxpbmUiCiAgIGlkPSJsYXllcjQiPjxwYXRoCiAgICAgZD0iTSA5Ni4zNTQyNDQsOTkuNjYw NTE1IEMgOTYuMzU0MjQ0LDEwNS4xMzg1MyA3Ni41ODIwODEsMTA5LjU3OTMzIDUyLjE5MTg4 MywxMDkuNTc5MzMgQyAyNy44MDE2ODQsMTA5LjU3OTMzIDguMDI5NTIxOSwxMDUuMTM4NTMg OC4wMjk1MjE5LDk5LjY2MDUxNSBDIDguMDI5NTIxOSw5NC4xODI1MDIgMjcuODAxNjg0LDg5 Ljc0MTY5NiA1Mi4xOTE4ODMsODkuNzQxNjk2IEMgNzYuNTgyMDgxLDg5Ljc0MTY5NiA5Ni4z NTQyNDQsOTQuMTgyNTAyIDk2LjM1NDI0NCw5OS42NjA1MTUgeiAiCiAgICAgdHJhbnNmb3Jt PSJtYXRyaXgoMC42NTI2MjMsLTEuMDEyMTM4ZS0yLC0xLjE5MDM3OWUtMiwwLjk5NTY1Miwt NS41MjcwNzYsLTQ5LjEwMTg3KSIKICAgICBzdHlsZT0ib3BhY2l0eTowLjYwNzkyOTU0O2Zp bGw6dXJsKCNyYWRpYWxHcmFkaWVudDE1MTkpO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25l O3N0cm9rZS13aWR0aDozO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpy b3VuZDtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7ZGlzcGxheTppbmxp bmU7b3ZlcmZsb3c6dmlzaWJsZSIKICAgICBpZD0icGF0aDk2OTciIC8+PC9nPjxnCiAgIHN0 eWxlPSJkaXNwbGF5OmlubGluZSIKICAgaWQ9ImxheWVyMSI+PHBhdGgKICAgICBkPSJNIDM5 LjY1MzA4NSwtOC43NDA4NDE3IEMgMzkuNjUzMDg1LC04Ljc0MDg0MTcgMzkuNjg2Mjc3LDIz Ljk3NTExMiAzOS42ODYyNzcsMjguODQ3NDA1IEwgNDYuOTExMDg3LDQwLjExNzkwOCBDIDQ2 LjkxMTA4NywzOS44MTc2NTUgNDYuOTExMzk5LDMyLjQ3NTM0MiA0Ni45Njk0NDUsMjMuNzky MjExIEMgNDcuMDI3NDksMTUuMTA5MDgxIDQ2Ljc5Njg0Myw0LjQ1MDAxOTUgNDYuNzk2ODQz LDIuMTM1Mjg5OCBDIDQ3LjQ3MDgyOSwyLjg4NTI5ODQgNTIuMTMwNzkxLDUuNDA2ODMzNiA1 NC41MjU4NCw1LjczMDg4MjkgQyA1OC44Mjk4NTksNi4zMTMyMTUyIDYzLjAzMDQxMiw1LjA2 NzQ2MzcgNjYuMjA4MTcxLDMuNjQ0ODgyMiBMIDY1LjE1NzI1OCwwLjQ2NTYwMjkxIEMgNjEu NTQzMjMyLDEuNTYwMzA1NyA1OC44OTQ5NTYsLTAuNzg4MTk3MzkgNTUuODI4NTYsLTMuNTA3 MzY5OCBDIDUzLjI5NzUxMywtNS43NTIwNDA4IDQ5LjQ3MjQwNywtOC43NTE4MDE0IDQ2Ljcz NjMsLTguNzUzNzk3NSBDIDQ2LjAzODU3NywtOC43NTQzMDY1IDM5LjY1MzA4NSwtOC43NDEz OTk5IDM5LjY1MzA4NSwtOC43NDEzOTk5IEwgMzkuNjUzMDg1LC04Ljc0MDg0MTcgeiAiCiAg ICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwyLjA2MjVlLTYpIgogICAgIHN0eWxlPSJmaWxs OiMyMDRhODA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7ZGlzcGxheTppbmxpbmUiCiAg ICAgaWQ9InBhdGgyMjgiIC8+PHBhdGgKICAgICBkPSJNIDIzLjIzNzc5NSwxNi4yNjU5OTEg QyAyMi4zNDUxNjgsMTYuNzg3NTA4IDguNzYyOTkzOSwyNC40MTA2MjUgOC43NjI5OTM5LDI0 LjQxMDYyNSBMIDguNzYyOTkzOSwyNC40MTA2MjUgQyA3LjgwMjM3NDQsMjUuMDE2NjYgNi44 NDE3NTQzLDI1Ljg2Mzg1MSA2Ljg0MTc1NDMsMjcuMTcxNDU0IEMgNi44NDE3NTQzLDI4LjQz ODI1NCA3LjEyOTY4NSw0Ni4xNjAyODEgNy4xMjk2ODUsNDYuMTYwMjgxIEMgNy4xOTgzMDA2 LDQ3LjQzOTY5IDguMDIxNjg4OSw0OC4wNDU3MjMgOC41MDE5OTg2LDQ4LjI0NzczNyBDIDgu NTAxOTk4Niw0OC4yNDc3MzcgMjguMjg3MTQyLDU1Ljg0Nzk0OCAyOC4yODcxNDIsNTUuODQ3 OTQ4IEMgMjkuNTIyMjI0LDU2LjMxOTMwNyAzMC44OTQ1MzgsNTYuMDQ5OTU4IDMxLjc4NjU0 Myw1NS4yNDE5MDkgQyAzMS43ODY1NDMsNTUuMjQxOTA5IDQ0LjQ3NzE2OCw0NS44NjY4ODkg NDYuMDU2MjUxLDQ0LjcwMzIwNiBDIDQ2LjUzMzk0LDQ0LjM1MTE4IDQ2Ljk5MjUxNSw0My44 NjkzMDEgNDYuOTkyNjMyLDQyLjk1MjQzNSBDIDQ2Ljk5Mjg2NSw0MS4xMzk2MjIgNDYuOTQ4 NzI0LDI3LjQ0NzQwMyA0Ni45NDg3MjQsMjcuNDQ3NDAzIEMgNDYuOTQ4NzI0LDI3LjA0MzM3 OCA0Ny4wMTczMzksMjQuMTExODY3IDQ2LjgxMTQ5LDIzLjM3MTE1NyBDIDQ2LjY3NDI2LDIy Ljg5OTc5NiA0MS4xODcxNDcsMjMuNjY5NzMxIDQxLjE3NzIyNSwyMi4zNjM5MzggTCA0MS4x NTgzMDYsMTkuODc0MDE5IEMgNDEuMTU4MzA2LDE5Ljg3NDAxOSAyNy42MTA5MjUsMTYuNDgx NzA3IDI2LjE4ODI2OSwxNi4xMzEzMTcgQyAyNC43MzQzNzYsMTUuNzczMjM0IDI0LjEzODAy LDE1Ljc0MDAzNSAyMy4yMzc3OTUsMTYuMjY1OTkxIHogIgogICAgIHRyYW5zZm9ybT0idHJh bnNsYXRlKDAsMi4wNjI1ZS02KSIKICAgICBzdHlsZT0iZmlsbDojMjA0YTgwO2ZpbGwtb3Bh Y2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lO3N0cm9rZS1taXRlcmxpbWl0 OjQ7ZGlzcGxheTppbmxpbmUiCiAgICAgaWQ9InBhdGgxMCIgLz48L2c+PHBhdGgKICAgZD0i TSA3Ljk5MDI5NTEsMjguNTA2Njc3IEMgNy45MTgxNjM1LDI3Ljg1NzQ5NiA4LjQyMzA4MTcs MjcuNDk2ODQgOC45MjgwMDA1LDI3LjY0MTEwMiBDIDkuMzYwNzg3NiwyNy43ODUzNjUgMjgu NjI1ODU4LDMzLjk1MDM4MyAyOS4wNTg1ODYsMzQuMTI0OTAyIEMgMjkuNDczNjk4LDM0LjI5 MjMxNyAyOS45MDY0ODYsMzQuNDg4Mjk3IDI5LjkxNjAwOCwzNS4wODU3NiBDIDI5LjkyNTI3 NSwzNS42NjcyMjcgMzAuMDE3MTMxLDUzLjgzNzExNSAyOS45NDQ5OTksNTQuMjY5OTAyIEMg MjkuODcyODY5LDU0Ljc3NDgyIDI5LjQ4NTM5NSw1NC44Mzg4NTIgMjguNzY0MDgzLDU0LjY5 NDU4OCBDIDI2LjYwMDE0Nyw1NC4xODk2NyA4LjkyODAwMDUsNDcuMTkyOTQ1IDguOTI4MDAw NSw0Ny4xOTI5NDUgQyA4LjM1MDk1MDcsNDYuOTc2NTUyIDguMjA2Njg4MSw0Ni42MTU4OTUg OC4yMDY2ODgxLDQ1Ljk2NjcxNCBMIDcuOTkwMjk1MSwyOC41MDY2NzcgeiAiCiAgIHN0eWxl PSJmaWxsOnVybCgjbGluZWFyR3JhZGllbnQxMzU3KTtmaWxsLXJ1bGU6bm9uemVybztzdHJv a2U6bm9uZTtzdHJva2UtbWl0ZXJsaW1pdDo0IgogICBpZD0icGF0aDI0IiAvPjxwYXRoCiAg IGQ9Ik0gMjQuMDAzNDIzLDE3LjAxMTQxMiBDIDIzLjQ0NzM2NywxNy4zMTgxNzMgOS45Mzc4 Mzc0LDI1LjAxNzk3NiA5LjIxNjUyNSwyNS40NTA3NjIgQyA4LjQ5NTIxMzMsMjUuODgzNTUx IDguMzUwOTUwNywyNi43NDkxMjQgOS4yODg2NTY2LDI3LjAzNzY1IEMgMTAuMjI2MzYyLDI3 LjM5ODMwNiAyOC4yMzYwMTMsMzMuMTk4NzM4IDI5LjAyOTQ1NiwzMy40MTUxMzEgQyAyOS44 MjI4OTksMzMuNjMxNTI2IDMwLjUxNTUzMiwzMy41ODQ5MjIgMzEuMTQ0NDEzLDMzLjE2ODgw MiBDIDMxLjc2ODkzNywzMi43NTU1NjUgNDQuMjkzODg5LDIzLjgzMzMxNSA0NC43MjY2NzYs MjMuNDcyNjYgQyA0NS4xNTk0NjYsMjMuMTEyMDAzIDQ0Ljg0OTM0MSwyMi4yMDQ4NTggNDQu MjAwMTYyLDIyLjA2MDU5NiBDIDQzLjU1MDk4LDIxLjg0NDIwMiAyNi43MzQ5NjUsMTcuMTc1 OTUyIDI2LjAzNjA0MSwxNi45ODE0NzYgQyAyNC45MDQ1MDcsMTYuNjY2NjI3IDI0LjU3OTQ0 NiwxNi42OTM2MzYgMjQuMDAzNDIzLDE3LjAxMTQxMiB6ICIKICAgc3R5bGU9ImZpbGw6dXJs KCNsaW5lYXJHcmFkaWVudDEzNTEpO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lO3N0 cm9rZS1taXRlcmxpbWl0OjQiCiAgIGlkPSJwYXRoMTciIC8+PHBhdGgKICAgZD0iTSAzMC43 MTE2MjUsNTQuNDA2MDY1IEMgMzAuMzM4MjEyLDU0LjY4NjkzNCAzMC4xODU5NDksNTQuMzMz ODM5IDMwLjE4NDMzNyw1My43NjY4MzUgQyAzMC4xODI3MjUsNTMuMTk5ODMyIDMwLjQwMzc0 OCwzNS45MzUxNjcgMzAuNDc2MDY2LDM1LjEzMTQ5NSBDIDMwLjU0ODE5NywzNC4zMjk5IDMx LjAwODMyNywzMy45ODgyODggMzEuNDQxMTE0LDMzLjYyNzYzMiBDIDMxLjg3MzkwMSwzMy4y NjY5NzYgNDQuNzY2MDI2LDI0LjYzNDAwNCA0NS4yNzA5NDUsMjQuMjAxMjE3IEMgNDUuNzc1 ODYzLDIzLjc2ODQzIDQ1Ljk0MTI2MSwyNC43NjcwODEgNDUuODY5MTI5LDI1LjE5OTg2OSBD IDQ1Ljc5Njk5OCwyNS42MzI2NTYgNDUuODYyMDg5LDQyLjAwNzEwNCA0NS44NjIwODksNDIu NTc3NzEyIEMgNDUuODYyMDg5LDQzLjMxMTkzMiA0NS40NDYzODgsNDMuNTg0NjYyIDQ1LjAy OTk2MSw0My45NjMyMzMgQyA0NC42NTI5NDYsNDQuMzA1OTc1IDMxLjA4MDczNCw1NC4xMjg0 MzMgMzAuNzExNjI1LDU0LjQwNjA2NSB6ICIKICAgc3R5bGU9ImZpbGw6dXJsKCNsaW5lYXJH cmFkaWVudDEzNDUpO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lO3N0cm9rZS1taXRl cmxpbWl0OjQiCiAgIGlkPSJwYXRoMzEiIC8+PGcKICAgc3R5bGU9ImRpc3BsYXk6aW5saW5l IgogICBpZD0ibGF5ZXI2Ij48cGF0aAogICAgIGQ9Ik0gOS4xMjM2NTQxLDI2Ljk4NjQ4IEMg OC41NzQ1NTksMjYuNzU0MjcyIDguNDkzNDcyOCwyNi4wNjUyMDUgOS4wNTk1NjgyLDI1LjU1 OTcwNCBDIDcuODQ1NDU1LDI2LjM2NTI2NyA3Ljk5MDg4MTQsMjcuMjY3MjQ4IDcuOTkwODgx NCwyOC4yOTg3MDcgQyA3Ljk5MDg4MTQsMjcuOTI0MjIxIDguNDAxNTI4NywyNy40OTc0Mzgg OS4xMTMyNDE4LDI3LjcyNzgxOSBDIDExLjQwNTI5OCwyOC40Njk3NTYgMjcuODk4NTM4LDMz LjkyODY2MiAyOC41NDc3MiwzNC4xNDUwNTYgQyAyOS4yNjkwMzMsMzQuMzYxNDQ5IDI5LjM2 MjMwMiwzNS4wNjI4NTggMjkuMzYyMzAyLDM1LjcxMjAzOSBMIDI5Ljk1MzEyMSw1NC4yNjE3 MjUgQyAyOS45NTMxMjEsNTQuMjYxNzI1IDMwLjA4OTU0OCwzOC41MDczIDMwLjEzNjU0NSwz NS41MTgxMzcgQyAzMC4xNTI5NzMsMzQuNDczMjYgMzAuMzk2Mjk3LDM0LjA0Mzc5MSAzMS4w NTI0MTEsMzMuNTY4MDA1IEMgMzEuNjU5NDc3LDMzLjEyNzc4NiA0Mi4yOTk2MzQsMjUuMzA1 MDgzIDQ0LjYwMDI3MSwyMy41Nzg1ODcgQyA0MS4yMDgyNTIsMjUuOTY4NTIxIDMyLjY0MzQ1 MSwzMi4xMTY5NjIgMzEuMjg3MjMsMzMuMDczOCBDIDMwLjI2MzE0MywzMy43OTYzMTIgMjku MzIzNzQyLDMzLjUyNDk4NyAyOC42NjEzNDQsMzMuMjk2MTYzIEMgMjcuMjQzNzI4LDMyLjgw NjQ0OCA5LjY3Mjc0OTMsMjcuMjE4Njg3IDkuMTIzNjU0MSwyNi45ODY0OCB6ICIKICAgICB0 cmFuc2Zvcm09InRyYW5zbGF0ZSgwLDIuMDYyNWUtNikiCiAgICAgc3R5bGU9ImZpbGw6I2Zm ZmZmZjtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZTtzdHJva2UtbWl0ZXJsaW1pdDo0 O2Rpc3BsYXk6aW5saW5lIgogICAgIGlkPSJwYXRoMzUiIC8+PC9nPjxwYXRoCiAgIGQ9Ik0g NDUuNDU1OTU4LC03LjA1NDk2MzkgQyA0NC40MDM2MTYsLTcuMDU0OTYzOSA0MS4yMjQ0MDUs LTcuMDY2MTI4NiA0MS4yMjQ0MDUsLTcuMDY2MTI4NiBMIDQxLjEwNDg3NiwyMS44MDMwNzkg QyA0MS4xOTQwNjQsMjQuMDQ5OTExIDQzLjc0MjI5LDI1LjA1NDA1MiA0NS4yOTEzLDIyLjg0 MzQxNSBMIDQ1LjEyMTU3NCwtMC41MTk2ODMzNCBDIDQ3LjczNDM3NCwwLjc5ODE0MzM4IDUx LjA2NzY1MiwzLjY5MzUxMzYgNTQuNzM2OTQ0LDQuMjcwMTcyNCBDIDU4Ljg1NTYxNyw0Ljkx NzcyNzMgNjEuNjA0MzQyLDMuNjkwNDYwNSA2NS41NDU0MTUsMi4wNjgzMDM0IEMgNTcuMDYw OTUzLDQuMjIxNTk0NCA1Mi43Mjk3NTYsLTcuMDU0OTYzOSA0NS40NTU5NTgsLTcuMDU0OTYz OSB6ICIKICAgc3R5bGU9ImZpbGw6dXJsKCNsaW5lYXJHcmFkaWVudDIyMzgpO2ZpbGwtb3Bh Y2l0eToxO3N0cm9rZTpub25lIgogICBpZD0icGF0aDI0NCIgLz48L3N2Zz4= --------------020400070607020405040309-- From jonathan@kaolin.wh9.net Sun Jun 4 09:13:09 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 9209B3B018D for ; Sun, 4 Jun 2006 09:13:09 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 18819-01 for ; Sun, 4 Jun 2006 09:13:03 -0400 (EDT) Received: from smtp3.adl2.internode.on.net (smtp3.adl2.internode.on.net [203.16.214.203]) by menubar.gnome.org (Postfix) with ESMTP id E58E43B0285 for ; Sun, 4 Jun 2006 09:13:02 -0400 (EDT) Received: from stapler.kaolin.wh9.net (ppp97-73.lns1.bne1.internode.on.net [59.167.97.73]) by smtp3.adl2.internode.on.net (8.13.6/8.13.5) with ESMTP id k54DCvhn025125 for ; Sun, 4 Jun 2006 22:43:01 +0930 (CST) (envelope-from jonathan@kaolin.wh9.net) Received: from jonathan by stapler.kaolin.wh9.net with local (Exim 4.50) id 1FmsPY-0008QE-UL for rhythmbox-devel@gnome.org; Sun, 04 Jun 2006 23:12:56 +1000 Date: Sun, 4 Jun 2006 23:12:56 +1000 To: rhythmbox-devel@gnome.org Subject: Re: [Rhythmbox-devel] Multi User Rhythmbox Message-ID: <20060604131256.GA31901@kaolin.wh9.net> Mail-Followup-To: rhythmbox-devel@gnome.org References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Represent-the-Ocean: Yes User-Agent: Mutt/1.5.9i From: Jonathan Matthew X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.463 tagged_above=-999 required=2 tests=[AWL=0.002, BAYES_00=-2.599, FORGED_RCVD_HELO=0.135, SPF_HELO_PASS=-0.001] X-Spam-Score: -2.463 X-Spam-Level: X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 04 Jun 2006 13:13:09 -0000 On Wed, May 31, 2006 at 10:08:45AM -0500, David Berg wrote: > On our family computer I often start a play list then leave the room > with it running which tends to really bother my wife since she can't > then skip a particular song, change the playlist or put in a movie for > the kids. > > I was hoping that I could remidy the situation by creating a user > music that would run rhythmbox. The idea being that we could both > have access to processes owned by the this user and control each > other's playlists. This would work if I give the music user its own > session but I would much rather beable to control it from within my > session. Unfortunately, if I try to launch a second instance of > rhythmbox then the second instance immediately closes unexpectedly. > Is there a way to work around this? If not, how hard would it be to > impliment? I'd be willing to tweak the code if its not to hard and > someone points me in the right direction. It's not really clear how your setup works or why running rhythmbox as a different user would help. I'm not sure what the actual problem is. Armed with my lack of knowledge of your setup, I'm going to suggest running rhythmbox in a stripped down session for some user inside a vnc server, so your other users can connect to that to control it. I'm not sure of the best way of setting this up, or which of the 37 different vnc servers is best to use. From drberg1000@gmail.com Sun Jun 4 22:37:49 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 3E5643B03EB for ; Sun, 4 Jun 2006 22:37:49 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 28329-09 for ; Sun, 4 Jun 2006 22:37:47 -0400 (EDT) Received: from py-out-1112.google.com (py-out-1112.google.com [64.233.166.183]) by menubar.gnome.org (Postfix) with ESMTP id 20B0A3B025C for ; Sun, 4 Jun 2006 22:37:47 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id x31so2716772pye for ; Sun, 04 Jun 2006 19:37:46 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=liA8CV84Ca53uwKNLfT47f7NQD8CZ5ovLIrJOBaraDMd/rrhQB1y8Suht9e4B9rWwIaAC93Bv8FD85ywgQyYlRhIo+0Nh9pT0zqsWWtOEflLD+XaC5vYK7iAiKXDrGxh9kTvkPRO2NcIZUj1QcW6SRnDA7wbxOlAarsbU8IiWfs= Received: by 10.35.90.20 with SMTP id s20mr5697807pyl; Sun, 04 Jun 2006 19:37:46 -0700 (PDT) Received: by 10.35.86.11 with HTTP; Sun, 4 Jun 2006 19:37:46 -0700 (PDT) Message-ID: Date: Sun, 4 Jun 2006 21:37:46 -0500 From: "David Berg" To: rhythmbox-devel@gnome.org Subject: Re: [Rhythmbox-devel] Multi User Rhythmbox In-Reply-To: <20060604131256.GA31901@kaolin.wh9.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <20060604131256.GA31901@kaolin.wh9.net> X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.325 tagged_above=-999 required=2 tests=[AWL=0.275, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.325 X-Spam-Level: X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Jun 2006 02:37:49 -0000 On 6/4/06, Jonathan Matthew wrote: > On Wed, May 31, 2006 at 10:08:45AM -0500, David Berg wrote: > > On our family computer I often start a play list then leave the room > > with it running which tends to really bother my wife since she can't > > then skip a particular song, change the playlist or put in a movie for > > the kids. > > > > I was hoping that I could remidy the situation by creating a user > > music that would run rhythmbox. The idea being that we could both > > have access to processes owned by the this user and control each > > other's playlists. This would work if I give the music user its own > > session but I would much rather beable to control it from within my > > session. Unfortunately, if I try to launch a second instance of > > rhythmbox then the second instance immediately closes unexpectedly. > > Is there a way to work around this? If not, how hard would it be to > > impliment? I'd be willing to tweak the code if its not to hard and > > someone points me in the right direction. > > It's not really clear how your setup works or why running rhythmbox as > a different user would help. I'm not sure what the actual problem is. The problem is that if I start a playlist then let the screen lock with the music playing, my wife can't stop or change what is on. I'd like to be able to allow her to do so. I'm not sure what the best way to do this would be, but if there were a way she could control my rhythmbox process or we could both control a shared process that would work well. Example: I launch rhythmbox, start a play list then go about doing something else. She decides she doesn't like what I chose to play, launches an instance of rhythmbox in her session which is tied to my library and process. Then she can skip a song in the playlist I started, start a new playlist, etc. Running rhythmbox as a separte user probably isn't necessary in this case but may be in others where security is more important. > > Armed with my lack of knowledge of your setup, I'm going to suggest > running rhythmbox in a stripped down session for some user inside a vnc > server, so your other users can connect to that to control it. I'm not > sure of the best way of setting this up, or which of the 37 different > vnc servers is best to use. This may work, but seems like an awful lot of hassle. I guess I would like to see something like a rhythmbox daemon and rhythmbox clients. Allowing a user to select who can control the daemon and that would also make streams available over the network yet keep accounting information on song popularity. Is this clearer? --Dave From jonathan@kaolin.wh9.net Sun Jun 4 23:07:23 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 577673B06D3 for ; Sun, 4 Jun 2006 23:07:23 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 29691-09 for ; Sun, 4 Jun 2006 23:07:22 -0400 (EDT) Received: from smtp1.adl2.internode.on.net (smtp1.adl2.internode.on.net [203.16.214.181]) by menubar.gnome.org (Postfix) with ESMTP id 42EE73B0688 for ; Sun, 4 Jun 2006 23:07:21 -0400 (EDT) Received: from stapler.kaolin.wh9.net (ppp97-73.lns1.bne1.internode.on.net [59.167.97.73]) by smtp1.adl2.internode.on.net (8.13.6/8.13.5) with ESMTP id k5537IsZ030526 for ; Mon, 5 Jun 2006 12:37:19 +0930 (CST) (envelope-from jonathan@kaolin.wh9.net) Received: from jonathan by stapler.kaolin.wh9.net with local (Exim 4.50) id 1Fn5R0-0000dG-Cr for rhythmbox-devel@gnome.org; Mon, 05 Jun 2006 13:07:18 +1000 Date: Mon, 5 Jun 2006 13:07:18 +1000 To: rhythmbox-devel@gnome.org Subject: Re: [Rhythmbox-devel] Multi User Rhythmbox Message-ID: <20060605030718.GA2397@kaolin.wh9.net> Mail-Followup-To: rhythmbox-devel@gnome.org References: <20060604131256.GA31901@kaolin.wh9.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Represent-the-Ocean: Yes User-Agent: Mutt/1.5.9i From: Jonathan Matthew X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.463 tagged_above=-999 required=2 tests=[AWL=0.002, BAYES_00=-2.599, FORGED_RCVD_HELO=0.135, SPF_HELO_PASS=-0.001] X-Spam-Score: -2.463 X-Spam-Level: X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Jun 2006 03:07:23 -0000 On Sun, Jun 04, 2006 at 09:37:46PM -0500, David Berg wrote: > On 6/4/06, Jonathan Matthew wrote: > >Armed with my lack of knowledge of your setup, I'm going to suggest > >running rhythmbox in a stripped down session for some user inside a vnc > >server, so your other users can connect to that to control it. I'm not > >sure of the best way of setting this up, or which of the 37 different > >vnc servers is best to use. > > This may work, but seems like an awful lot of hassle. I guess I would > like to see something like a rhythmbox daemon and rhythmbox clients. > Allowing a user to select who can control the daemon and that would > also make streams available over the network yet keep accounting > information on song popularity. > > > Is this clearer? Yes, but one of those options is possible today with five minutes of reading documentation and writing trivial scripts, and the other would take a serious amount of development work and won't be available any time soon. I don't think anyone is arguing that it's not a good idea, but no one is really working on it. Another (uglier) option would be to run a separate dbus session bus for rhythmbox, sharing the bus address between users through some unspecified means. Other users could then control a shared-ish rhythmbox instance using dbus clients; if they needed access to the actual UI, they could cause the current instance to quit, then start their own attached to their display. This would be quite tricky to set up, and wouldn't work as well as running a shared rhythmbox in vnc. From joel.plane@gmail.com Mon Jun 5 00:39:55 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 3D3BA3B0169 for ; Mon, 5 Jun 2006 00:39:55 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 02146-04 for ; Mon, 5 Jun 2006 00:39:53 -0400 (EDT) Received: from nz-out-0102.google.com (nz-out-0102.google.com [64.233.162.200]) by menubar.gnome.org (Postfix) with ESMTP id 135B83B0308 for ; Mon, 5 Jun 2006 00:39:52 -0400 (EDT) Received: by nz-out-0102.google.com with SMTP id 9so1786074nzo for ; Sun, 04 Jun 2006 21:39:52 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:user-agent:x-accept-language:mime-version:to:subject:references:in-reply-to:content-type:content-transfer-encoding; b=N1QvZT+Gr7TdUVLAEM0Q6E/qWwxCUAu8VJINO/0CrOqvNy1Ef+Lc2XNjr9u3zczCDNFbeyu+nKK3zbRiLF94SAEMtAFhKmIu+xVTOTht8rzdJgR8Z3RkT61D9EECRvkchp08TqzYbSNiG/rtteXEETlvhRNhTDzovUBKGUbHq+Q= Received: by 10.36.220.60 with SMTP id s60mr5629906nzg; Sun, 04 Jun 2006 21:39:52 -0700 (PDT) Received: from ?10.92.2.2? ( [220.245.212.52]) by mx.gmail.com with ESMTP id m2sm860047nzf.2006.06.04.21.39.50; Sun, 04 Jun 2006 21:39:52 -0700 (PDT) Message-ID: <4483B4EF.9070805@gmail.com> Date: Mon, 05 Jun 2006 14:37:03 +1000 From: Joel Plane User-Agent: Mozilla Thunderbird 1.0.8 (X11/20060502) X-Accept-Language: en-us, en MIME-Version: 1.0 To: rhythmbox-devel@gnome.org Subject: Re: [Rhythmbox-devel] Multi User Rhythmbox References: <20060604131256.GA31901@kaolin.wh9.net> In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.6 tagged_above=-999 required=2 tests=[BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.6 X-Spam-Level: X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Jun 2006 04:39:55 -0000 You could try this: Ctrl+Alt+2 to get to tty2 assuming its not being used. Log in as your 'music' user. startx -e rhythmbox -- :1 then you could use Ctrl+Alt+7 and Ctrl+Alt+8 to switch between you normal session and the newly created rhythmbox session. I hope this helps. Joel. David Berg wrote: > On 6/4/06, Jonathan Matthew wrote: > >> On Wed, May 31, 2006 at 10:08:45AM -0500, David Berg wrote: >> > On our family computer I often start a play list then leave the room >> > with it running which tends to really bother my wife since she can't >> > then skip a particular song, change the playlist or put in a movie for >> > the kids. >> > >> > I was hoping that I could remidy the situation by creating a user >> > music that would run rhythmbox. The idea being that we could both >> > have access to processes owned by the this user and control each >> > other's playlists. This would work if I give the music user its own >> > session but I would much rather beable to control it from within my >> > session. Unfortunately, if I try to launch a second instance of >> > rhythmbox then the second instance immediately closes unexpectedly. >> > Is there a way to work around this? If not, how hard would it be to >> > impliment? I'd be willing to tweak the code if its not to hard and >> > someone points me in the right direction. >> >> It's not really clear how your setup works or why running rhythmbox as >> a different user would help. I'm not sure what the actual problem is. > > > The problem is that if I start a playlist then let the screen lock > with the music playing, my wife can't stop or change what is on. I'd > like to be able to allow her to do so. I'm not sure what the best way > to do this would be, but if there were a way she could control my > rhythmbox process or we could both control a shared process that would > work well. > > Example: I launch rhythmbox, start a play list then go about doing > something else. She decides she doesn't like what I chose to play, > launches an instance of rhythmbox in her session which is tied to my > library and process. Then she can skip a song in the playlist I > started, start a new playlist, etc. > > Running rhythmbox as a separte user probably isn't necessary in this > case but may be in others where security is more important. > >> >> Armed with my lack of knowledge of your setup, I'm going to suggest >> running rhythmbox in a stripped down session for some user inside a vnc >> server, so your other users can connect to that to control it. I'm not >> sure of the best way of setting this up, or which of the 37 different >> vnc servers is best to use. > > > This may work, but seems like an awful lot of hassle. I guess I would > like to see something like a rhythmbox daemon and rhythmbox clients. > Allowing a user to select who can control the daemon and that would > also make streams available over the network yet keep accounting > information on song popularity. > > > Is this clearer? > > > --Dave > _______________________________________________ > rhythmbox-devel mailing list > rhythmbox-devel@gnome.org > http://mail.gnome.org/mailman/listinfo/rhythmbox-devel > From drberg1000@gmail.com Mon Jun 5 08:33:05 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 9B3403B02F3 for ; Mon, 5 Jun 2006 08:33:05 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 30257-10 for ; Mon, 5 Jun 2006 08:33:03 -0400 (EDT) Received: from py-out-1112.google.com (py-out-1112.google.com [64.233.166.177]) by menubar.gnome.org (Postfix) with ESMTP id 8084B3B018D for ; Mon, 5 Jun 2006 08:33:03 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id x31so3038159pye for ; Mon, 05 Jun 2006 05:33:02 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=q4rF+4K+K9qUn4Tq8SovwL/kIX2KLfVsyNZAs9RnbQBog8kC6ZPXfxRDvc2kL23Co/F8BUYVdCI5pJD64yYFr/j6Vri19kiymzKd3GgBDaRB5ZZL71dBqWRtmlOJZS31s3jka1m6ccuXri9+PrPQUywSyaO71OxXt6Okxio9T10= Received: by 10.35.113.12 with SMTP id q12mr6447590pym; Mon, 05 Jun 2006 05:33:02 -0700 (PDT) Received: by 10.35.86.11 with HTTP; Mon, 5 Jun 2006 05:33:02 -0700 (PDT) Message-ID: Date: Mon, 5 Jun 2006 07:33:02 -0500 From: "David Berg" To: rhythmbox-devel@gnome.org Subject: Re: [Rhythmbox-devel] Multi User Rhythmbox In-Reply-To: <4483B4EF.9070805@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <20060604131256.GA31901@kaolin.wh9.net> <4483B4EF.9070805@gmail.com> X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.369 tagged_above=-999 required=2 tests=[AWL=0.231, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.369 X-Spam-Level: X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Jun 2006 12:33:05 -0000 On 6/4/06, Joel Plane wrote: > You could try this: > > Ctrl+Alt+2 to get to tty2 assuming its not being used. Log in as your > 'music' user. > > startx -e rhythmbox -- :1 > > then you could use Ctrl+Alt+7 and Ctrl+Alt+8 to switch between you > normal session and the newly created rhythmbox session. I've alreay thought of this and may go this route but would prefer to keep it within my own session and not have to switch terminals to change playlists or see what song is playing. --Dave > > I hope this helps. > > Joel. > > > David Berg wrote: > > > On 6/4/06, Jonathan Matthew wrote: > > > >> On Wed, May 31, 2006 at 10:08:45AM -0500, David Berg wrote: > >> > On our family computer I often start a play list then leave the room > >> > with it running which tends to really bother my wife since she can't > >> > then skip a particular song, change the playlist or put in a movie for > >> > the kids. > >> > > >> > I was hoping that I could remidy the situation by creating a user > >> > music that would run rhythmbox. The idea being that we could both > >> > have access to processes owned by the this user and control each > >> > other's playlists. This would work if I give the music user its own > >> > session but I would much rather beable to control it from within my > >> > session. Unfortunately, if I try to launch a second instance of > >> > rhythmbox then the second instance immediately closes unexpectedly. > >> > Is there a way to work around this? If not, how hard would it be to > >> > impliment? I'd be willing to tweak the code if its not to hard and > >> > someone points me in the right direction. > >> > >> It's not really clear how your setup works or why running rhythmbox as > >> a different user would help. I'm not sure what the actual problem is. > > > > > > The problem is that if I start a playlist then let the screen lock > > with the music playing, my wife can't stop or change what is on. I'd > > like to be able to allow her to do so. I'm not sure what the best way > > to do this would be, but if there were a way she could control my > > rhythmbox process or we could both control a shared process that would > > work well. > > > > Example: I launch rhythmbox, start a play list then go about doing > > something else. She decides she doesn't like what I chose to play, > > launches an instance of rhythmbox in her session which is tied to my > > library and process. Then she can skip a song in the playlist I > > started, start a new playlist, etc. > > > > Running rhythmbox as a separte user probably isn't necessary in this > > case but may be in others where security is more important. > > > >> > >> Armed with my lack of knowledge of your setup, I'm going to suggest > >> running rhythmbox in a stripped down session for some user inside a vnc > >> server, so your other users can connect to that to control it. I'm not > >> sure of the best way of setting this up, or which of the 37 different > >> vnc servers is best to use. > > > > > > This may work, but seems like an awful lot of hassle. I guess I would > > like to see something like a rhythmbox daemon and rhythmbox clients. > > Allowing a user to select who can control the daemon and that would > > also make streams available over the network yet keep accounting > > information on song popularity. > > > > > > Is this clearer? > > > > > > --Dave > > _______________________________________________ > > rhythmbox-devel mailing list > > rhythmbox-devel@gnome.org > > http://mail.gnome.org/mailman/listinfo/rhythmbox-devel > > > _______________________________________________ > rhythmbox-devel mailing list > rhythmbox-devel@gnome.org > http://mail.gnome.org/mailman/listinfo/rhythmbox-devel > From drberg1000@gmail.com Mon Jun 5 08:45:58 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id F19743B04D2 for ; Mon, 5 Jun 2006 08:45:57 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 31125-02 for ; Mon, 5 Jun 2006 08:45:55 -0400 (EDT) Received: from py-out-1112.google.com (py-out-1112.google.com [64.233.166.179]) by menubar.gnome.org (Postfix) with ESMTP id 3B4FB3B0456 for ; Mon, 5 Jun 2006 08:45:55 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id x31so3051147pye for ; Mon, 05 Jun 2006 05:45:54 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=nPnk+/DJhUGr3W5EBQnbD7LSFeZ+CnV8lBMg1M4QowUY6hbzCy4MlQJoWzcsWaa8HrSxRx7PzRYoJuX008n2YJts1XDK55ZT998Q8X16XWZb0UYOaqKKegBRIyq55/+JFuUB6iLVqvXHqZ7meiLoe7pSSFKROOma36A7E4xmXdM= Received: by 10.35.98.6 with SMTP id a6mr6380197pym; Mon, 05 Jun 2006 05:45:54 -0700 (PDT) Received: by 10.35.86.11 with HTTP; Mon, 5 Jun 2006 05:45:54 -0700 (PDT) Message-ID: Date: Mon, 5 Jun 2006 07:45:54 -0500 From: "David Berg" To: rhythmbox-devel@gnome.org Subject: Re: [Rhythmbox-devel] Multi User Rhythmbox In-Reply-To: <1149494797.5909.2.camel@localhost.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <20060604131256.GA31901@kaolin.wh9.net> <1149494797.5909.2.camel@localhost.localdomain> X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.401 tagged_above=-999 required=2 tests=[AWL=0.199, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.401 X-Spam-Level: X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Jun 2006 12:45:58 -0000 On 6/5/06, Mark Hewitt wrote: > > The problem is that if I start a playlist then let the screen lock > > with the music playing, my wife can't stop or change what is on. I'd > > like to be able to allow her to do so. I'm not sure what the best way > > to do this would be, but if there were a way she could control my > > rhythmbox process or we could both control a shared process that would > > work well. > > To me, David, this really doesn't seem like a Rhythmbox problem - if you > let the screen lock and your wife couldn't use the internet, you > wouldn't go to the Firefox dev team to fix it, would you? :-P No I wouldn't, because while my copy of firefox is potentially using bandwidth, the pipe shares its bandwidth quite nicely. There is no problem with my wife logging in under her own account and starting her own firefox instance. If I've started a massive download she may complain that the "internet" is slow but that is a shaping issue that can be taken care of in the firewall scripts or with other shaping tools. However, firefox COULD put some crude shaping capability into their download code which would allow a level of control over things. The sound devices don't share quite as well as the uplink does. And even if it did, I would still like to beable to give permission to control which playlist is playing and which song in the playlist is playing. > I believe there's an off option for the screen lock, and it seems to > work fine on my machine... Yes, I'm quite aware that the screen lock can be shut off. I was under the impression that linux was a MULTI user system. Personally I like being able to change settings for my account that would drive my wife nuts. Not to mention the kids getting in and mucking up things that they shouldn't be playing with. Thanks for the suggestions, but I'll pass on these routes. --Dave > > Mark Hewitt > ------------------------------- > If the telephone rings today... > WATER IT! > Reverend Thomas > NYC Cabal > Discordian Society > ------------------------------- > > From drberg1000@gmail.com Mon Jun 5 09:05:15 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 261443B0681 for ; Mon, 5 Jun 2006 09:05:15 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 32322-07 for ; Mon, 5 Jun 2006 09:05:13 -0400 (EDT) Received: from py-out-1112.google.com (py-out-1112.google.com [64.233.166.180]) by menubar.gnome.org (Postfix) with ESMTP id D62D23B02E3 for ; Mon, 5 Jun 2006 09:05:12 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id x31so3064729pye for ; Mon, 05 Jun 2006 06:05:12 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=CVB8fXTnOTo6Nwb5NAk93uTYuM5U2/5fqWzDb2tEH588kKR9/vpmE+MoZtq7dz/vRNqOhOQUWT7sKTt4ZptfJDjvIsX5VtBIUuW5PrLx66w9gQPJvOlK8iOwg6TV9Cu388BPfHnLrBZ23Ryd35NzdcXentMBRsmG/FJiFEw6vcY= Received: by 10.35.101.9 with SMTP id d9mr6362786pym; Mon, 05 Jun 2006 06:05:12 -0700 (PDT) Received: by 10.35.86.11 with HTTP; Mon, 5 Jun 2006 06:05:11 -0700 (PDT) Message-ID: Date: Mon, 5 Jun 2006 08:05:11 -0500 From: "David Berg" To: rhythmbox-devel@gnome.org Subject: Re: [Rhythmbox-devel] Multi User Rhythmbox In-Reply-To: <20060605030718.GA2397@kaolin.wh9.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <20060604131256.GA31901@kaolin.wh9.net> <20060605030718.GA2397@kaolin.wh9.net> X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.423 tagged_above=-999 required=2 tests=[AWL=0.177, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.423 X-Spam-Level: X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Jun 2006 13:05:15 -0000 On 6/4/06, Jonathan Matthew wrote: > On Sun, Jun 04, 2006 at 09:37:46PM -0500, David Berg wrote: > > On 6/4/06, Jonathan Matthew wrote: > > >Armed with my lack of knowledge of your setup, I'm going to suggest > > >running rhythmbox in a stripped down session for some user inside a vnc > > >server, so your other users can connect to that to control it. I'm not > > >sure of the best way of setting this up, or which of the 37 different > > >vnc servers is best to use. > > > > This may work, but seems like an awful lot of hassle. I guess I would > > like to see something like a rhythmbox daemon and rhythmbox clients. > > Allowing a user to select who can control the daemon and that would > > also make streams available over the network yet keep accounting > > information on song popularity. > > > > > > Is this clearer? > > Yes, but one of those options is possible today with five minutes of > reading documentation and writing trivial scripts, and the other would > take a serious amount of development work and won't be available any > time soon. I don't think anyone is arguing that it's not a good idea, > but no one is really working on it. What is trivial for one is not necessarily trivial for another. I can't imagine that I'm alone with this problem and am actually quite suprised at the lack of information I've been able to find addressing it. I probably will use this route as it is the most elegant idea I've seen or had yet but I'd still like to see something that is more intuitive. As far as no one working on it, I do recall offering some help though I realize I said "if its not too hard". I guess that if I sumbled across someone with an idea to improve a program that I used a lot and contributed a lot of code to, and that person was willing to impliment their idea I would encourage it rather than discourage it. I guess I'll go with the work around and hope that someone else impliments something similar. It will be quite a while before I need anthing that can't be done through vnc anyway. --Dave > > Another (uglier) option would be to run a separate dbus session bus > for rhythmbox, sharing the bus address between users through some > unspecified means. Other users could then control a shared-ish > rhythmbox instance using dbus clients; if they needed access to the > actual UI, they could cause the current instance to quit, then start > their own attached to their display. This would be quite tricky to set > up, and wouldn't work as well as running a shared rhythmbox in vnc. > > _______________________________________________ > rhythmbox-devel mailing list > rhythmbox-devel@gnome.org > http://mail.gnome.org/mailman/listinfo/rhythmbox-devel > From eh@iki.fi Mon Jun 5 09:15:30 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 07C673B010B for ; Mon, 5 Jun 2006 09:15:30 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 00787-08 for ; Mon, 5 Jun 2006 09:15:26 -0400 (EDT) Received: from smtp.netsonic.fi (smtp.netsonic.fi [194.29.192.26]) by menubar.gnome.org (Postfix) with ESMTP id AC6533B03B1 for ; Mon, 5 Jun 2006 09:15:26 -0400 (EDT) Received: from mail.dmm.fi (laku120.adsl.netsonic.fi [81.17.205.120]) by smtp.netsonic.fi (Postfix) with ESMTP id C70691F80BB for ; Mon, 5 Jun 2006 16:15:24 +0300 (EEST) Received: from [127.0.0.1] ([192.168.1.230]) by mail.dmm.fi with Microsoft SMTPSVC(6.0.3790.1830); Mon, 5 Jun 2006 16:15:22 +0300 Message-ID: <44842E6A.6010804@iki.fi> Date: Mon, 05 Jun 2006 16:15:22 +0300 From: Eetu Huisman User-Agent: Mozilla Thunderbird 1.0.2 (Windows/20050317) X-Accept-Language: en-us, en MIME-Version: 1.0 To: David Berg Subject: Re: [Rhythmbox-devel] Multi User Rhythmbox References: <20060604131256.GA31901@kaolin.wh9.net> In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Antivirus: avast! (VPS 0623-0, 06/05/2006), Outbound message X-Antivirus-Status: Clean X-OriginalArrivalTime: 05 Jun 2006 13:15:23.0078 (UTC) FILETIME=[1A1C4E60:01C688A2] X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-1.616 tagged_above=-999 required=2 tests=[AWL=-0.641, BAYES_05=-1.11, FORGED_RCVD_HELO=0.135] X-Spam-Score: -1.616 X-Spam-Level: Cc: rhythmbox-devel@gnome.org X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Jun 2006 13:15:30 -0000 David Berg wrote: > The problem is that if I start a playlist then let the screen lock > with the music playing, my wife can't stop or change what is on. I'd > like to be able to allow her to do so. I'm not sure what the best way > to do this would be, but if there were a way she could control my > rhythmbox process or we could both control a shared process that would > work well. I stumbled upon the same unwanted feature a couple of days ago. Being a multi user client-server multimedia player probably doesn't fit Rhythmbox roadmap, but I think that user switching in Gnome is broken in this regard. Music shouldn't continue to be played when the user is changed. That way the other users would at least have control over what they are listening to, which they currently don't. I think I'm going to file a bug about this (though I'm not sure which would be the correct product), but I'm not sure whether this addresses your needs at all. Anyway, I guess that there are other music players which are designed to be used by multiple users at the same time and would probably serve you better than Rhythmbox. Eetu From mknepher@bluethingy.com Mon Jun 5 12:04:55 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 170D73B08DA for ; Mon, 5 Jun 2006 12:04:54 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 12546-07 for ; Mon, 5 Jun 2006 12:04:50 -0400 (EDT) Received: from spunkymail-a16.dreamhost.com (mailbigip2.dreamhost.com [208.97.132.53]) by menubar.gnome.org (Postfix) with ESMTP id 4540C3B022A for ; Mon, 5 Jun 2006 12:04:49 -0400 (EDT) Received: from [192.168.0.110] (adsl-63-194-2-38.dsl.lsan03.pacbell.net [63.194.2.38]) by spunkymail-a16.dreamhost.com (Postfix) with ESMTP id 1F3747B392; Mon, 5 Jun 2006 09:04:48 -0700 (PDT) Subject: Re: [Rhythmbox-devel] Multi User Rhythmbox From: Michael Knepher To: David Berg In-Reply-To: References: <20060604131256.GA31901@kaolin.wh9.net> <4483B4EF.9070805@gmail.com> Content-Type: text/plain Date: Mon, 05 Jun 2006 09:04:46 -0700 Message-Id: <1149523486.25028.8.camel@lionel-hutz.darnell.group> Mime-Version: 1.0 X-Mailer: Evolution 2.7.2.1 (2.7.2.1-3) Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.532 tagged_above=-999 required=2 tests=[AWL=0.068, BAYES_00=-2.599] X-Spam-Score: -2.532 X-Spam-Level: Cc: rhythmbox-devel@gnome.org X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Jun 2006 16:04:55 -0000 On Mon, 2006-06-05 at 07:33 -0500, David Berg wrote: > On 6/4/06, Joel Plane wrote: > > You could try this: > > > > Ctrl+Alt+2 to get to tty2 assuming its not being used. Log in as your > > 'music' user. > > > > startx -e rhythmbox -- :1 > > > > then you could use Ctrl+Alt+7 and Ctrl+Alt+8 to switch between you > > normal session and the newly created rhythmbox session. > > I've alreay thought of this and may go this route but would prefer to > keep it within my own session and not have to switch terminals to > change playlists or see what song is playing. What about setting up a streaming server that would allow you to use a browser interface to control the music? Just add the stream to rhythmbox as a new Internet Radio source. Personally, I run slimserver (http://www.slimdevices.com). Your wife could then change songs, stop the stream, etc., from a browser, without having to have access to your rhythmbox process. > > --Dave > > > > > I hope this helps. > > > > Joel. > > > > > > David Berg wrote: > > > > > On 6/4/06, Jonathan Matthew wrote: > > > > > >> On Wed, May 31, 2006 at 10:08:45AM -0500, David Berg wrote: > > >> > On our family computer I often start a play list then leave the room > > >> > with it running which tends to really bother my wife since she can't > > >> > then skip a particular song, change the playlist or put in a movie for > > >> > the kids. > > >> > > > >> > I was hoping that I could remidy the situation by creating a user > > >> > music that would run rhythmbox. The idea being that we could both > > >> > have access to processes owned by the this user and control each > > >> > other's playlists. This would work if I give the music user its own > > >> > session but I would much rather beable to control it from within my > > >> > session. Unfortunately, if I try to launch a second instance of > > >> > rhythmbox then the second instance immediately closes unexpectedly. > > >> > Is there a way to work around this? If not, how hard would it be to > > >> > impliment? I'd be willing to tweak the code if its not to hard and > > >> > someone points me in the right direction. > > >> > > >> It's not really clear how your setup works or why running rhythmbox as > > >> a different user would help. I'm not sure what the actual problem is. > > > > > > > > > The problem is that if I start a playlist then let the screen lock > > > with the music playing, my wife can't stop or change what is on. I'd > > > like to be able to allow her to do so. I'm not sure what the best way > > > to do this would be, but if there were a way she could control my > > > rhythmbox process or we could both control a shared process that would > > > work well. > > > > > > Example: I launch rhythmbox, start a play list then go about doing > > > something else. She decides she doesn't like what I chose to play, > > > launches an instance of rhythmbox in her session which is tied to my > > > library and process. Then she can skip a song in the playlist I > > > started, start a new playlist, etc. > > > > > > Running rhythmbox as a separte user probably isn't necessary in this > > > case but may be in others where security is more important. > > > > > >> > > >> Armed with my lack of knowledge of your setup, I'm going to suggest > > >> running rhythmbox in a stripped down session for some user inside a vnc > > >> server, so your other users can connect to that to control it. I'm not > > >> sure of the best way of setting this up, or which of the 37 different > > >> vnc servers is best to use. > > > > > > > > > This may work, but seems like an awful lot of hassle. I guess I would > > > like to see something like a rhythmbox daemon and rhythmbox clients. > > > Allowing a user to select who can control the daemon and that would > > > also make streams available over the network yet keep accounting > > > information on song popularity. > > > > > > > > > Is this clearer? > > > > > > > > > --Dave > > > _______________________________________________ > > > rhythmbox-devel mailing list > > > rhythmbox-devel@gnome.org > > > http://mail.gnome.org/mailman/listinfo/rhythmbox-devel > > > > > _______________________________________________ > > rhythmbox-devel mailing list > > rhythmbox-devel@gnome.org > > http://mail.gnome.org/mailman/listinfo/rhythmbox-devel > > > _______________________________________________ > rhythmbox-devel mailing list > rhythmbox-devel@gnome.org > http://mail.gnome.org/mailman/listinfo/rhythmbox-devel > From alexl@users.sourceforge.net Mon Jun 5 21:18:50 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id BE32B3B0526 for ; Mon, 5 Jun 2006 21:18:50 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 14236-10 for ; Mon, 5 Jun 2006 21:18:47 -0400 (EDT) Received: from allele2.biol.berkeley.edu (allele2.Biol.Berkeley.EDU [128.32.118.82]) by menubar.gnome.org (Postfix) with ESMTP id 517173B0913 for ; Mon, 5 Jun 2006 21:18:47 -0400 (EDT) Received: from allele2.biol.berkeley.edu (localhost.localdomain [127.0.0.1]) by allele2.biol.berkeley.edu (8.13.6/8.12.11) with ESMTP id k561IkWr025349 for ; Mon, 5 Jun 2006 18:18:46 -0700 Received: (from alex@localhost) by allele2.biol.berkeley.edu (8.13.6/8.13.4/Submit) id k561IklW025348; Mon, 5 Jun 2006 18:18:46 -0700 X-Authentication-Warning: allele2.biol.berkeley.edu: alex set sender to alexl@users.sourceforge.net using -f To: rhythmbox-devel@gnome.org References: <1149301163.11291.3.camel@localhost> From: Alex Lancaster Organization: Sourceforge Date: Mon, 05 Jun 2006 18:18:46 -0700 In-Reply-To: <1149301163.11291.3.camel@localhost> (R. S. Gill's message of "Fri, 02 Jun 2006 22:19:23 -0400") Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.589 tagged_above=-999 required=2 tests=[AWL=0.010, BAYES_00=-2.599] X-Spam-Score: -2.589 X-Spam-Level: Subject: [Rhythmbox-devel] resume partial podcast downloads (was Re: Feature Request) X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Jun 2006 01:18:50 -0000 >>>>> "RSG" == R S Gill writes: RSG> Can you guys please include a way to redownload a RSG> podcast. Sometimes when the connection times out, the only RSG> recourse is to manually download the podcast in question directly RSG> from the website via Firefox. RSG> Having Rhythmbox lose all awarness of podcasts that have been RSG> deleted just doesn't cut it. At the very least it should be have RSG> like iTunes and redownload the episode list if not the actual RSG> episodes again. It's a known issue: http://bugs.gnome.org/319758 The problem is not so much rhythmbox, but that gnome-vfs should really support resume (or otherwise would have to write custom code in rhythmbox to support what should really be support in gnome-vfs). Alex From jdrouhard@myrealbox.com Tue Jun 6 01:57:26 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 987423B0092 for ; Tue, 6 Jun 2006 01:57:26 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 26148-08 for ; Tue, 6 Jun 2006 01:57:24 -0400 (EDT) Received: from ms-smtp-04.rdc-kc.rr.com (ms-smtp-04.rdc-kc.rr.com [24.94.166.116]) by menubar.gnome.org (Postfix) with ESMTP id 7FF073B0088 for ; Tue, 6 Jun 2006 01:57:24 -0400 (EDT) Received: from jmdtech.homelinux.com (CPE-67-48-109-183.kc.res.rr.com [67.48.109.183]) by ms-smtp-04.rdc-kc.rr.com (8.13.6/8.13.6) with ESMTP id k565vCtd002319 for ; Tue, 6 Jun 2006 00:57:15 -0500 (CDT) Received: from localhost (localhost [127.0.0.1]) by jmdtech.homelinux.com (Postfix) with ESMTP id 5F26E1340A3 for ; Tue, 6 Jun 2006 00:57:29 -0500 (CDT) Received: from jmdtech.homelinux.com ([127.0.0.1]) by localhost (jmdtech.homelinux.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 19303-02 for ; Tue, 6 Jun 2006 00:57:15 -0500 (CDT) Received: from Johnm.homenetwork (Johnm.homenetwork [192.168.1.101]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by jmdtech.homelinux.com (Postfix) with ESMTP id 3835E134034 for ; Tue, 6 Jun 2006 00:57:15 -0500 (CDT) Date: Tue, 6 Jun 2006 00:56:50 -0500 From: John Drouhard To: rhythmbox-devel@gnome.org Message-ID: <20060606005650.19c0994f@Johnm.homenetwork> X-Mailer: Sylpheed-Claws 2.2.0cvs53 (GTK+ 2.8.18; x86_64-unknown-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Virus-Scanned: Symantec AntiVirus Scan Engine X-Virus-Scanned: amavisd-new at homelinux.com X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.402 tagged_above=-999 required=2 tests=[AWL=0.062, BAYES_00=-2.599, FORGED_RCVD_HELO=0.135] X-Spam-Score: -2.402 X-Spam-Level: Subject: [Rhythmbox-devel] recent cvs build problem X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Jun 2006 05:57:26 -0000 Recently, I have been unable to build the most current cvs. I did upgrade my gcc to 4.1.1 and did a few other system updates, so whether or not it's a problem with rhythmbox itself I'm not exactly sure. Here's the error: gcc -DHAVE_CONFIG_H -I. -I. -I.. -DGNOMELOCALEDIR=\"/usr/local/share/locale\" -DG_LOG_DOMAIN=\"Rhythmbox\" -DSHARE_DIR=\"/usr/local/share/rhythmbox\" -I.. -I../widgets -I/usr/include/libsoup-2.2 -I/usr/include/libxml2 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -DORBIT2=1 -pthread -I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/libgnomeui-2.0 -I/usr/include/libgnome-2.0 -I/usr/include/libgnomecanvas-2.0 -I/usr/include/libart-2.0 -I/usr/include/gconf/2 -I/usr/include/libbonoboui-2.0 -I/usr/include/gnome-vfs-2.0 -I/usr/lib64/gnome-vfs-2.0/include -I/usr/include/gnome-keyring-1 -I/usr/include/orbit-2.0 -I/usr/include/libbonobo-2.0 -I/usr/include/bonobo-activation-2.0 -I/usr/include/freetype2 -I/usr/include/libxml2 -I/usr/include/libglade-2.0 -I/usr/include/gnome-vfs-module-2.0 -pthread -I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/libxml2 -Wcomment -Wformat -Wnonnull -Wimplicit-int -Wimplicit -Wmain -Wmissing-braces -Wparentheses -Wsequence-point -Wreturn-type -Wswitch -Wtrigraphs -Wunused-function -Wunused-label -Wunused-value -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wcast-align -Wall -Werror -std=gnu89 -g -O2 -MT rb-stock-icons.lo -MD -MP -MF .deps/rb-stock-icons.Tpo -c rb-stock-icons.c -fPIC -DPIC -o .libs/rb-stock-icons.o rb-stock-icons.c: In function 'rb_stock_icons_init': rb-stock-icons.c:121: error: 'DATADIR' undeclared (first use in this function) rb-stock-icons.c:121: error: (Each undeclared identifier is reported only once rb-stock-icons.c:121: error: for each function it appears in.) rb-stock-icons.c:121: error: expected '}' before string constant make[3]: *** [rb-stock-icons.lo] Error 1 make[3]: Leaving directory `/opt/cvsstuff/rhythmbox/lib' make[2]: *** [all] Error 2 make[2]: Leaving directory `/opt/cvsstuff/rhythmbox/lib' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/opt/cvsstuff/rhythmbox' make: *** [all] Error 2 Any ideas? From jonathan@kaolin.wh9.net Tue Jun 6 02:05:50 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 5169D3B0092 for ; Tue, 6 Jun 2006 02:05:50 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 26603-06 for ; Tue, 6 Jun 2006 02:05:48 -0400 (EDT) Received: from smtp3.adl2.internode.on.net (smtp3.adl2.internode.on.net [203.16.214.203]) by menubar.gnome.org (Postfix) with ESMTP id 21DF33B03FA for ; Tue, 6 Jun 2006 02:05:47 -0400 (EDT) Received: from stapler.kaolin.wh9.net (ppp97-73.lns1.bne1.internode.on.net [59.167.97.73]) by smtp3.adl2.internode.on.net (8.13.6/8.13.5) with ESMTP id k5665fQf025799 for ; Tue, 6 Jun 2006 15:35:46 +0930 (CST) (envelope-from jonathan@kaolin.wh9.net) Received: from jonathan by stapler.kaolin.wh9.net with local (Exim 4.50) id 1FnUhB-0002lg-KY for rhythmbox-devel@gnome.org; Tue, 06 Jun 2006 16:05:41 +1000 Date: Tue, 6 Jun 2006 16:05:41 +1000 To: rhythmbox-devel@gnome.org Subject: Re: [Rhythmbox-devel] recent cvs build problem Message-ID: <20060606060541.GA10622@kaolin.wh9.net> Mail-Followup-To: rhythmbox-devel@gnome.org References: <20060606005650.19c0994f@Johnm.homenetwork> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20060606005650.19c0994f@Johnm.homenetwork> X-Represent-the-Ocean: Yes User-Agent: Mutt/1.5.9i From: Jonathan Matthew X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.463 tagged_above=-999 required=2 tests=[AWL=0.002, BAYES_00=-2.599, FORGED_RCVD_HELO=0.135, SPF_HELO_PASS=-0.001] X-Spam-Score: -2.463 X-Spam-Level: X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Jun 2006 06:05:50 -0000 On Tue, Jun 06, 2006 at 12:56:50AM -0500, John Drouhard wrote: > Recently, I have been unable to build the most current cvs. I did > upgrade my gcc to 4.1.1 and did a few other system updates, so whether > or not it's a problem with rhythmbox itself I'm not exactly sure. > Here's the error: > > gcc -DHAVE_CONFIG_H -I. -I. -I.. > -DGNOMELOCALEDIR=\"/usr/local/share/locale\" > -DG_LOG_DOMAIN=\"Rhythmbox\" -DSHARE_DIR=\"/usr/local/share/rhythmbox\" [...] > rb-stock-icons.c:121: error: 'DATADIR' undeclared (first use in this > function) You need to re-run autogen.sh. The makefile in lib/ in your build tree hasn't been regenerated since lib/Makefile.am was updated to pass the DATADIR variable to the compiler. From jmdrouhard@kc.rr.com Mon Jun 5 12:11:43 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 354B03B08BD for ; Mon, 5 Jun 2006 12:11:43 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 13023-04 for ; Mon, 5 Jun 2006 12:11:41 -0400 (EDT) Received: from ms-smtp-01.rdc-kc.rr.com (ms-smtp-01.rdc-kc.rr.com [24.94.166.115]) by menubar.gnome.org (Postfix) with ESMTP id 039F23B03E1 for ; Mon, 5 Jun 2006 12:11:40 -0400 (EDT) Received: from jmdtech.homelinux.com (CPE-67-48-109-183.kc.res.rr.com [67.48.109.183]) by ms-smtp-01.rdc-kc.rr.com (8.13.6/8.13.6) with ESMTP id k55GBcIL004506 for ; Mon, 5 Jun 2006 11:11:39 -0500 (CDT) Received: from localhost (localhost [127.0.0.1]) by jmdtech.homelinux.com (Postfix) with ESMTP id 0EA46133F2D for ; Mon, 5 Jun 2006 11:11:53 -0500 (CDT) Received: from jmdtech.homelinux.com ([127.0.0.1]) by localhost (jmdtech.homelinux.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 29629-05 for ; Mon, 5 Jun 2006 11:11:39 -0500 (CDT) Received: from Johnm.homenetwork (Johnm.homenetwork [192.168.1.101]) by jmdtech.homelinux.com (Postfix) with ESMTP id 8CF4A133F4E for ; Mon, 5 Jun 2006 11:11:39 -0500 (CDT) Date: Mon, 5 Jun 2006 11:11:24 -0500 From: John Drouhard To: rhythmbox-devel@gnome.org Message-ID: <20060605111124.7ec673e9@Johnm.homenetwork> X-Mailer: Sylpheed-Claws 2.2.0cvs53 (GTK+ 2.8.18; x86_64-unknown-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Virus-Scanned: Symantec AntiVirus Scan Engine X-Virus-Scanned: amavisd-new at homelinux.com X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.465 tagged_above=-999 required=2 tests=[BAYES_00=-2.599, FORGED_RCVD_HELO=0.135, SPF_PASS=-0.001] X-Spam-Score: -2.465 X-Spam-Level: X-Mailman-Approved-At: Tue, 06 Jun 2006 08:11:00 -0400 Subject: [Rhythmbox-devel] recent cvs build problem X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Jun 2006 16:11:43 -0000 Recently, I have been unable to build the most current cvs. I did upgrade my gcc to 4.1.1 and did a few other system updates, so whether or not it's a problem with rhythmbox itself I'm not exactly sure. Here's the error: gcc -DHAVE_CONFIG_H -I. -I. -I.. -DGNOMELOCALEDIR=\"/usr/local/share/locale\" -DG_LOG_DOMAIN=\"Rhythmbox\" -DSHARE_DIR=\"/usr/local/share/rhythmbox\" -I.. -I../widgets -I/usr/include/libsoup-2.2 -I/usr/include/libxml2 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -DORBIT2=1 -pthread -I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/libgnomeui-2.0 -I/usr/include/libgnome-2.0 -I/usr/include/libgnomecanvas-2.0 -I/usr/include/libart-2.0 -I/usr/include/gconf/2 -I/usr/include/libbonoboui-2.0 -I/usr/include/gnome-vfs-2.0 -I/usr/lib64/gnome-vfs-2.0/include -I/usr/include/gnome-keyring-1 -I/usr/include/orbit-2.0 -I/usr/include/libbonobo-2.0 -I/usr/include/bonobo-activation-2.0 -I/usr/include/freetype2 -I/usr/include/libxml2 -I/usr/include/libglade-2.0 -I/usr/include/gnome-vfs-module-2.0 -pthread -I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/libxml2 -Wcomment -Wformat -Wnonnull -Wimplicit-int -Wimplicit -Wmain -Wmissing-braces -Wparentheses -Wsequence-point -Wreturn-type -Wswitch -Wtrigraphs -Wunused-function -Wunused-label -Wunused-value -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wcast-align -Wall -Werror -std=gnu89 -g -O2 -MT rb-stock-icons.lo -MD -MP -MF .deps/rb-stock-icons.Tpo -c rb-stock-icons.c -fPIC -DPIC -o .libs/rb-stock-icons.o rb-stock-icons.c: In function 'rb_stock_icons_init': rb-stock-icons.c:121: error: 'DATADIR' undeclared (first use in this function) rb-stock-icons.c:121: error: (Each undeclared identifier is reported only once rb-stock-icons.c:121: error: for each function it appears in.) rb-stock-icons.c:121: error: expected '}' before string constant make[3]: *** [rb-stock-icons.lo] Error 1 make[3]: Leaving directory `/opt/cvsstuff/rhythmbox/lib' make[2]: *** [all] Error 2 make[2]: Leaving directory `/opt/cvsstuff/rhythmbox/lib' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/opt/cvsstuff/rhythmbox' make: *** [all] Error 2 Any ideas? From doclivingston@gmail.com Tue Jun 6 11:26:25 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 37B723B0183 for ; Tue, 6 Jun 2006 11:26:25 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 00616-01 for ; Tue, 6 Jun 2006 11:26:21 -0400 (EDT) Received: from wr-out-0506.google.com (wr-out-0506.google.com [64.233.184.239]) by menubar.gnome.org (Postfix) with ESMTP id 6AB9B3B0151 for ; Tue, 6 Jun 2006 11:26:20 -0400 (EDT) Received: by wr-out-0506.google.com with SMTP id 50so1347786wri for ; Tue, 06 Jun 2006 08:26:19 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:subject:from:reply-to:to:content-type:date:message-id:mime-version:x-mailer:content-transfer-encoding; b=hc9E61b6inQ1VagC2G783qgze6nZMwtOfZsE2C7cY3OBKKL1IYABGpy6NBvjDhfYBq7How5SQZphFe4G+vABU/uSdWfu5sUCBc5I3JZKI4kddDhCAYVroY2TNCwEX8uTqaE/fIkFHzQwKWbvDQiZN1nCGREwhXQIMLBtGDdIZN8= Received: by 10.65.155.20 with SMTP id h20mr4661209qbo; Tue, 06 Jun 2006 08:26:19 -0700 (PDT) Received: from alyrion.local ( [144.134.101.252]) by mx.gmail.com with ESMTP id c5sm2478976qbc.2006.06.06.08.26.16; Tue, 06 Jun 2006 08:26:17 -0700 (PDT) From: "James \"Doc\" Livingston" To: Rhythmbox-devel list Content-Type: text/plain Date: Wed, 07 Jun 2006 01:26:12 +1000 Message-Id: <1149607572.5396.19.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.515 tagged_above=-999 required=2 tests=[AWL=0.085, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.515 X-Spam-Level: Subject: [Rhythmbox-devel] Upcoming 0.9.5 release X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: doclivingston@gmail.com List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Jun 2006 15:26:25 -0000 G'day everyone, 0.9.5 will be out fairly soon, so I've chucked a pre-release tarball up at [0] for anyone who wants to test it. I've enabled the track-transfer stuff (cd ripping, copying from daap/audio players) by default, but have disabled the small amount of ipod syncing code in cvs. Hopefully we can land the ipod-syncing stuff shortly after 0.9.5 [0] http://gnome.org/~jrl/rhythmbox-0.9.4.90.tar.bz2 Cheers, James "Doc" Livingston -- "You are comparing two structures that have holes in them" -- MPW C error message From sjoeboo@sjoeboo.com Tue Jun 6 16:02:30 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 84D583B0BAD for ; Tue, 6 Jun 2006 16:02:28 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 18223-09 for ; Tue, 6 Jun 2006 16:02:12 -0400 (EDT) Received: from server.sjoeboo.com (unknown [64.79.192.114]) by menubar.gnome.org (Postfix) with ESMTP id 70FD93B0171 for ; Tue, 6 Jun 2006 16:02:08 -0400 (EDT) Received: by server.sjoeboo.com (Postfix, from userid 33) id CCD5B18C4AB0; Tue, 6 Jun 2006 13:01:59 -0700 (PDT) To: Rhythmbox-devel list Subject: Re: [Rhythmbox-devel] Upcoming 0.9.5 release MIME-Version: 1.0 Date: Tue, 6 Jun 2006 13:01:59 -0700 From: sjoeboo Organization: sjoeboo.com In-Reply-To: <1149607572.5396.19.camel@localhost.localdomain> References: <1149607572.5396.19.camel@localhost.localdomain> Message-ID: <21c59dd6706f5787d42b2bdcaa210585@localhost> X-Sender: sjoeboo@sjoeboo.com User-Agent: RoundCube Webmail/0.1b Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.599 tagged_above=-999 required=2 tests=[AWL=0.000, BAYES_00=-2.599] X-Spam-Score: -2.599 X-Spam-Level: X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: sjoeboo@sjoeboo.com List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Jun 2006 20:02:30 -0000 nothin to report in terms of problems thus far. when you say disables the small amount of ipod syncing code in cvs, what do you mean? i had played with dragging and dropping tracks from my library to my ipod (when running from cvs) and had no issues. is this what has been pulled, or is it 'sync' code to do automatic updates etc? at any rate, 0.9.5 looks great with all the new plugins/features/speedups On Wed, 07 Jun 2006 01:26:12 +1000, "James \"Doc\" Livingston" wrote: > G'day everyone, > > 0.9.5 will be out fairly soon, so I've chucked a pre-release tarball up > at [0] for anyone who wants to test it. > > I've enabled the track-transfer stuff (cd ripping, copying from > daap/audio players) by default, but have disabled the small amount of > ipod syncing code in cvs. Hopefully we can land the ipod-syncing stuff > shortly after 0.9.5 > > > [0] http://gnome.org/~jrl/rhythmbox-0.9.4.90.tar.bz2 > > > Cheers, > > James "Doc" Livingston > -- > "You are comparing two structures that have holes in them" > -- MPW C error message > > _______________________________________________ > rhythmbox-devel mailing list > rhythmbox-devel@gnome.org > http://mail.gnome.org/mailman/listinfo/rhythmbox-devel -- Matthew Nicholson sjoeboo@sjoeboo.com sjoeboo.com From zach@collegegeek.org Tue Jun 6 20:21:20 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id B2EF53B008A for ; Tue, 6 Jun 2006 20:21:20 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 31836-09 for ; Tue, 6 Jun 2006 20:21:17 -0400 (EDT) Received: from py-out-1112.google.com (py-out-1112.google.com [64.233.166.176]) by menubar.gnome.org (Postfix) with ESMTP id 8DC4E3B012A for ; Tue, 6 Jun 2006 20:21:17 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id x31so86492pye for ; Tue, 06 Jun 2006 17:21:16 -0700 (PDT) Received: by 10.35.99.17 with SMTP id b17mr134349pym; Tue, 06 Jun 2006 17:21:16 -0700 (PDT) Received: from dorm13253.dorm-net.louisville.edu ( [136.165.13.253]) by mx.gmail.com with ESMTP id w28sm216577pyc.2006.06.06.17.21.16; Tue, 06 Jun 2006 17:21:16 -0700 (PDT) From: Zach Tibbitts To: Rhythmbox-devel list Content-Type: text/plain Organization: CollegeGeek.org Date: Tue, 06 Jun 2006 20:21:13 -0400 Message-Id: <1149639674.22241.3.camel@localhost> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.599 tagged_above=-999 required=2 tests=[BAYES_00=-2.599] X-Spam-Score: -2.599 X-Spam-Level: Subject: [Rhythmbox-devel] Approaching a 1.0 release? X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jun 2006 00:21:20 -0000 First off, great work. I've been using RB since Ubuntu 5.04, and although I did switch to Banshee, RB 0.9.4 brought me right back. I'm currently using the preview of 0.9.5, and it is awesome. So, I was wondering what the timeframe on a version 1.0 is? RB seems very feature complete and stable, but when is it enough for a 1.0 release? Personally, I think the devs should aim to have 0.9.5 to be the last in the 0.9.x series, and after hammering out some bugs, shoot for a 1.0.x release before Ubuntu 6.10 comes out, as it's pretty much certain that Ubuntu will continue to use RB as its default music player. Zach From d2xdt2@gmail.com Tue Jun 6 20:54:42 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 075993B038B for ; Tue, 6 Jun 2006 20:54:42 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 00793-05 for ; Tue, 6 Jun 2006 20:54:40 -0400 (EDT) Received: from py-out-1112.google.com (py-out-1112.google.com [64.233.166.176]) by menubar.gnome.org (Postfix) with ESMTP id 69E353B02E8 for ; Tue, 6 Jun 2006 20:54:40 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id x31so94536pye for ; Tue, 06 Jun 2006 17:54:39 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=AzHcZTjnbao2JP/rwL7Amo/kcVaTdqLvkDKXmgWuevgwOyZbtwltT4/TqFKPpGi7rcX+zLMZ0mkWeDuvdP7pVmMiy+pGGJu+2LYSS0hD1UXucVsOB+qLLPdnq02jtBzICRyIL4UWrrbHcwIHpzA4azWLF5jkFiBjtSgeBl4RYPY= Received: by 10.35.113.12 with SMTP id q12mr155180pym; Tue, 06 Jun 2006 17:54:39 -0700 (PDT) Received: by 10.35.107.12 with HTTP; Tue, 6 Jun 2006 17:54:39 -0700 (PDT) Message-ID: Date: Wed, 7 Jun 2006 02:54:39 +0200 From: "Martin Jeppesen" To: "Zach Tibbitts" Subject: Re: [Rhythmbox-devel] Approaching a 1.0 release? In-Reply-To: <1149639674.22241.3.camel@localhost> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <1149639674.22241.3.camel@localhost> X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.499 tagged_above=-999 required=2 tests=[AWL=0.101, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.499 X-Spam-Level: Cc: Rhythmbox-devel list X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jun 2006 00:54:42 -0000 If you ask me, there are some 1.0 blockers: Allow toggle remaining time http://bugzilla.gnome.org/show_bug.cgi?id=128108 Search should be a toolbar http://bugzilla.gnome.org/show_bug.cgi?id=339143 HIG: Vertical space between Search, All, Artists, Albums, Titles buttons and browser http://bugzilla.gnome.org/show_bug.cgi?id=335812 ...and the play order bug =) From pat@kgnz.com Tue Jun 6 16:59:08 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 53EAE3B025D for ; Tue, 6 Jun 2006 16:59:08 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 21669-06 for ; Tue, 6 Jun 2006 16:59:07 -0400 (EDT) Received: from sendmail.afo.net (sendmail.afo.net [66.210.32.133]) by menubar.gnome.org (Postfix) with ESMTP id B52B13B00C2 for ; Tue, 6 Jun 2006 16:59:06 -0400 (EDT) Received: from [192.168.2.15] (wsip-70-183-81-143.dl.dl.cox.net [70.183.81.143]) (authenticated bits=0) by sendmail.afo.net (8.13.5/8.13.5) with ESMTP id k56Kxuon026775 for ; Tue, 6 Jun 2006 15:59:57 -0500 From: Pat Voce To: rhythmbox-devel@gnome.org Content-Type: text/plain Date: Tue, 06 Jun 2006 16:00:01 -0500 Message-Id: <1149627601.17960.4.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=0 tagged_above=-999 required=2 tests=[BAYES_50=0.001, SPF_PASS=-0.001] X-Spam-Score: 0 X-Spam-Level: X-Mailman-Approved-At: Wed, 07 Jun 2006 03:09:54 -0400 Subject: [Rhythmbox-devel] queue bar X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Jun 2006 20:59:08 -0000 I was so happy to see the new queue bar! However, I noticed that songs "disappear" after being played. As this is a wonderful way to create and edit playlists on the fly, would future versions have this capability, a'la (ducking) amarok? Quite stable, possibly some icecast2 interaction would make this a no-brainer for internet streaming. Thanks for all of the hard work. Pat Voce KGNZ FM 88.1 Abilene, Texas www.kgnz.com From teuf@gnome.org Wed Jun 7 04:10:52 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 16A3B3B034F for ; Wed, 7 Jun 2006 04:10:52 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 25695-08 for ; Wed, 7 Jun 2006 04:10:44 -0400 (EDT) Received: from vds19s01.yellis.net (ns1019.yellis.net [213.246.41.159]) by menubar.gnome.org (Postfix) with ESMTP id 1F4053B09AD for ; Wed, 7 Jun 2006 04:10:44 -0400 (EDT) Received: from goliath.anevia.com (LSt-Amand-152-31-11-137.w82-127.abo.wanadoo.fr [82.127.10.137]) by vds19s01.yellis.net (Postfix) with ESMTP id 5F28B906E5 for ; Wed, 7 Jun 2006 10:10:47 +0200 (CEST) Received: from plouf.anevia.com (plouf.anevia.com [10.0.1.37]) by goliath.anevia.com (Postfix) with ESMTP id A69F31300050 for ; Wed, 7 Jun 2006 10:10:41 +0200 (CEST) Subject: Re: [Rhythmbox-devel] Upcoming 0.9.5 release From: Christophe Fergeau To: rhythmbox-devel@gnome.org In-Reply-To: <21c59dd6706f5787d42b2bdcaa210585@localhost> References: <1149607572.5396.19.camel@localhost.localdomain> <21c59dd6706f5787d42b2bdcaa210585@localhost> Content-Type: text/plain; charset=utf-8 Date: Wed, 07 Jun 2006 10:10:19 +0200 Message-Id: <1149667820.14759.5.camel@plouf.anevia.com> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.346 tagged_above=-999 required=2 tests=[AWL=0.118, BAYES_00=-2.599, FORGED_RCVD_HELO=0.135] X-Spam-Score: -2.346 X-Spam-Level: X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jun 2006 08:10:52 -0000 Le mardi 06 juin 2006 à 13:01 -0700, sjoeboo a écrit : > nothin to report in terms of problems thus far. > > when you say disables the small amount of ipod syncing code in cvs, what do you mean? I'd like to second that question, what do you mean by « disable the ipod transfer stuff, since it has big issues » in the ChangeLog? It's missing features (mainly transcoding, transfer of playlists and real syncing), but what is there works for me and for the few people who tested it. But maybe I missed some bug reports, I'm not really up to date with the bugzilla daily spam ;) Christophe From jjrussell@gmail.com Wed Jun 7 07:40:42 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 416393B030A for ; Wed, 7 Jun 2006 07:40:42 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 07547-07 for ; Wed, 7 Jun 2006 07:40:40 -0400 (EDT) Received: from wx-out-0102.google.com (wx-out-0102.google.com [66.249.82.194]) by menubar.gnome.org (Postfix) with ESMTP id 7999A3B01EA for ; Wed, 7 Jun 2006 07:40:40 -0400 (EDT) Received: by wx-out-0102.google.com with SMTP id i30so181580wxd for ; Wed, 07 Jun 2006 04:40:37 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=tfGFbNWPssGPjOX69tEK5yAvG1oAyGwWQ2hy9BteRrOfEvAa/ho90sZjOijQHYHGnPAIEiwRkGTrcW+HLrON1VEuiZxXqPqzcPAc6ZbZwRafYAnR0ZVpJZlV3ZdCisdRVfjuIXmBPhvmWfnFp/LeB02a1osemK3mxVdwA22DrCY= Received: by 10.70.25.1 with SMTP id 1mr557487wxy; Wed, 07 Jun 2006 04:40:37 -0700 (PDT) Received: by 10.70.129.9 with HTTP; Wed, 7 Jun 2006 04:40:37 -0700 (PDT) Message-ID: <46cb18130606070440w7651e033md92757a4cc094d3c@mail.gmail.com> Date: Wed, 7 Jun 2006 07:40:37 -0400 From: "John Russell" To: "Rhythmbox-devel list" Subject: Re: [Rhythmbox-devel] Approaching a 1.0 release? In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <1149639674.22241.3.camel@localhost> X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.598 tagged_above=-999 required=2 tests=[AWL=0.002, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.598 X-Spam-Level: X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jun 2006 11:40:42 -0000 If I may be so bold as to throw in another. This may be fixed in 0.9.5 but in 0.9.4 it is still an issue. I'll check for existing bugs later but I'm just curious what people think. The progress slider keyboard and mouse interaction isn't that solid. The best example I can give is go try realplayer on linux and click around on the slider while a song is playing and use left and right keys while a song is playing. Smooth as a baby's butt. RB is so much better on all other ways, and the smooth and intuitive slider behavior would make my heart sing. John On 6/6/06, Martin Jeppesen wrote: > If you ask me, there are some 1.0 blockers: > > Allow toggle remaining time > http://bugzilla.gnome.org/show_bug.cgi?id=128108 > > Search should be a toolbar > http://bugzilla.gnome.org/show_bug.cgi?id=339143 > > HIG: Vertical space between Search, All, Artists, Albums, Titles > buttons and browser > http://bugzilla.gnome.org/show_bug.cgi?id=335812 > > ...and the play order bug =) > _______________________________________________ > rhythmbox-devel mailing list > rhythmbox-devel@gnome.org > http://mail.gnome.org/mailman/listinfo/rhythmbox-devel > From zach@collegegeek.org Wed Jun 7 14:45:37 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 2150B3B069F for ; Wed, 7 Jun 2006 14:45:37 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 06011-01 for ; Wed, 7 Jun 2006 14:45:35 -0400 (EDT) Received: from py-out-1112.google.com (py-out-1112.google.com [64.233.166.176]) by menubar.gnome.org (Postfix) with ESMTP id 17BBD3B03F7 for ; Wed, 7 Jun 2006 14:45:35 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id x31so375836pye for ; Wed, 07 Jun 2006 11:45:34 -0700 (PDT) Received: by 10.35.102.18 with SMTP id e18mr1087835pym; Wed, 07 Jun 2006 11:45:34 -0700 (PDT) Received: from dorm13253.dorm-net.louisville.edu ( [136.165.13.253]) by mx.gmail.com with ESMTP id q36sm445007pyg.2006.06.07.11.45.34; Wed, 07 Jun 2006 11:45:34 -0700 (PDT) Subject: Re: [Rhythmbox-devel] Approaching a 1.0 release? From: Zach Tibbitts To: John Russell In-Reply-To: <46cb18130606070440w7651e033md92757a4cc094d3c@mail.gmail.com> References: <1149639674.22241.3.camel@localhost> <46cb18130606070440w7651e033md92757a4cc094d3c@mail.gmail.com> Content-Type: text/plain Organization: CollegeGeek.org Date: Wed, 07 Jun 2006 14:45:28 -0400 Message-Id: <1149705929.18331.0.camel@localhost> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.599 tagged_above=-999 required=2 tests=[BAYES_00=-2.599] X-Spam-Score: -2.599 X-Spam-Level: Cc: Rhythmbox-devel list X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jun 2006 18:45:37 -0000 In that case, after the 0.9.5 release, I think the primary focus needs to be hammering out these bugs. On Wed, 2006-06-07 at 07:40 -0400, John Russell wrote: > If I may be so bold as to throw in another. This may be fixed in 0.9.5 > but in 0.9.4 it is still an issue. I'll check for existing bugs later > but I'm just curious what people think. > > The progress slider keyboard and mouse interaction isn't that solid. > The best example I can give is go try realplayer on linux and click > around on the slider while a song is playing and use left and right > keys while a song is playing. Smooth as a baby's butt. > > RB is so much better on all other ways, and the smooth and intuitive > slider behavior would make my heart sing. > > John > > On 6/6/06, Martin Jeppesen wrote: > > If you ask me, there are some 1.0 blockers: > > > > Allow toggle remaining time > > http://bugzilla.gnome.org/show_bug.cgi?id=128108 > > > > Search should be a toolbar > > http://bugzilla.gnome.org/show_bug.cgi?id=339143 > > > > HIG: Vertical space between Search, All, Artists, Albums, Titles > > buttons and browser > > http://bugzilla.gnome.org/show_bug.cgi?id=335812 > > > > ...and the play order bug =) > > _______________________________________________ > > rhythmbox-devel mailing list > > rhythmbox-devel@gnome.org > > http://mail.gnome.org/mailman/listinfo/rhythmbox-devel > > > _______________________________________________ > rhythmbox-devel mailing list > rhythmbox-devel@gnome.org > http://mail.gnome.org/mailman/listinfo/rhythmbox-devel From d2xdt2@gmail.com Wed Jun 7 15:39:45 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id D4A603B0DD2 for ; Wed, 7 Jun 2006 15:39:40 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 09039-09 for ; Wed, 7 Jun 2006 15:39:38 -0400 (EDT) Received: from py-out-1112.google.com (py-out-1112.google.com [64.233.166.181]) by menubar.gnome.org (Postfix) with ESMTP id 1BF503B0D1B for ; Wed, 7 Jun 2006 15:39:26 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id x31so391602pye for ; Wed, 07 Jun 2006 12:39:26 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=tA6xvcKxdv6ps/5HW4Wu/omtNjFK+QP4XlSHyJS78zXQmh8dnECt9YMhVEvogkJ40VhDk8bBM13Tl7si0g82tBenT8UJI+lesEBdrFgB0HKbxbwKorqR65g3VnEcKLyQgRkENEBQ1fJB0PKNswO6OHzftGgd5xBWRwgZTNwMYpY= Received: by 10.35.102.18 with SMTP id e18mr1159808pym; Wed, 07 Jun 2006 12:39:26 -0700 (PDT) Received: by 10.35.107.12 with HTTP; Wed, 7 Jun 2006 12:39:26 -0700 (PDT) Message-ID: Date: Wed, 7 Jun 2006 21:39:26 +0200 From: "Martin Jeppesen" To: "Rhythmbox-devel list" MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.501 tagged_above=-999 required=2 tests=[AWL=0.099, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.501 X-Spam-Level: Subject: [Rhythmbox-devel] Is this a bug? ./configure.in: No such file or directory X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jun 2006 19:39:45 -0000 I have just checked out a fresh CVS on FC5, and this is what I get. ~/bdownload/cvs-rhythmbox/rhythmbox$ ./autogen.sh /usr/bin/gnome-autogen.sh grep: ./configure.in: No such file or directory grep: ./configure.in: No such file or directory grep: ./configure.in: No such file or directory grep: ./configure.in: No such file or directory **Warning**: I am going to run `configure' with no arguments. If you wish to pass any to it, please specify them on the `./autogen.sh' command line. Running ./configure --enable-maintainer-mode --enable-compile-warnings ... /usr/share/aclocal/gnome2-macros/autogen.sh: line 162: ./configure: No such file or directory ~/bdownload/cvs-rhythmbox/rhythmbox$ Is this a bug? From lool+gnome@via.ecp.fr Wed Jun 7 16:48:06 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 9F4303B01E8 for ; Wed, 7 Jun 2006 16:48:06 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 13675-05 for ; Wed, 7 Jun 2006 16:48:05 -0400 (EDT) Received: from mx0.bpl-group.org (mx0.bpl-group.org [195.115.71.69]) by menubar.gnome.org (Postfix) with ESMTP id 158233B015D for ; Wed, 7 Jun 2006 16:48:00 -0400 (EDT) Received: from bee.dooz.org (levallois.dooz.org [81.57.180.178]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "lminier.people.bpl-group.org", Issuer "BPL Group People Certification Authority" (verified OK)) by mx0.bpl-group.org (Postfix) with ESMTP id C5F10C4B8 for ; Wed, 7 Jun 2006 22:47:56 +0200 (CEST) Received: by bee.dooz.org (Postfix, from userid 1000) id 559964F02FA; Wed, 7 Jun 2006 22:47:55 +0200 (CEST) Date: Wed, 7 Jun 2006 22:47:55 +0200 From: =?iso-8859-1?Q?Lo=EFc?= Minier To: rhythmbox-devel@gnome.org Subject: Re: [Rhythmbox-devel] Upcoming 0.9.5 release Message-ID: <20060607204755.GO6411@bee.dooz.org> Mail-Followup-To: rhythmbox-devel@gnome.org References: <1149607572.5396.19.camel@localhost.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1149607572.5396.19.camel@localhost.localdomain> X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.549 tagged_above=-999 required=2 tests=[AWL=0.050, BAYES_00=-2.599] X-Spam-Score: -2.549 X-Spam-Level: X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jun 2006 20:48:06 -0000 On Wed, Jun 07, 2006, James Doc Livingston wrote: > 0.9.5 will be out fairly soon, so I've chucked a pre-release tarball up > at [0] for anyone who wants to test it. Thanks! From configure: PKG_CHECK_MODULES(IPOD_PHONE, libgpod-1.0 >= 0.3.3 [...]) where can I get 0.3.3? it doesn't show up in the SourceForge files section of the upstream site, and a quick googling didn't show another homepage. Oh and what's iPod support for phone? :) -- Loïc Minier From jjrussell@gmail.com Wed Jun 7 21:23:56 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 3D3A93B0E8E for ; Wed, 7 Jun 2006 21:23:56 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 28672-10 for ; Wed, 7 Jun 2006 21:23:55 -0400 (EDT) Received: from wx-out-0102.google.com (wx-out-0102.google.com [66.249.82.205]) by menubar.gnome.org (Postfix) with ESMTP id B8CEB3B0574 for ; Wed, 7 Jun 2006 21:23:54 -0400 (EDT) Received: by wx-out-0102.google.com with SMTP id i30so323275wxd for ; Wed, 07 Jun 2006 18:23:54 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=Yjm4pvzD5u8NfXBaL0RjSBltwfY2iorStqvl4Rd9XUrBTD7HvRyHpPprIP2aWyHHQOZVrcDkLGIErFUE549S9/YQa2SANWsV2tNF50HDdmdviuoXqLzGwcsVM1GtTnTwCXw6DBJx8KCVp/a6RnPIcgTV4Jg5f2Nve6+jwb9BBLg= Received: by 10.70.73.13 with SMTP id v13mr1481517wxa; Wed, 07 Jun 2006 18:23:54 -0700 (PDT) Received: by 10.70.129.9 with HTTP; Wed, 7 Jun 2006 18:23:53 -0700 (PDT) Message-ID: <46cb18130606071823u494ed3d7y88d55075035d9f8f@mail.gmail.com> Date: Wed, 7 Jun 2006 21:23:53 -0400 From: "John Russell" To: doclivingston@gmail.com Subject: Re: [Rhythmbox-devel] Upcoming 0.9.5 release In-Reply-To: <1149607572.5396.19.camel@localhost.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <1149607572.5396.19.camel@localhost.localdomain> X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.598 tagged_above=-999 required=2 tests=[AWL=0.002, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.598 X-Spam-Level: Cc: Rhythmbox-devel list X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Jun 2006 01:23:56 -0000 Might I ask why the --next --previous --play-pause etc. arguments were removed? I always found them very useful. On 6/6/06, James Doc Livingston wrote: > G'day everyone, > > 0.9.5 will be out fairly soon, so I've chucked a pre-release tarball up > at [0] for anyone who wants to test it. > > I've enabled the track-transfer stuff (cd ripping, copying from > daap/audio players) by default, but have disabled the small amount of > ipod syncing code in cvs. Hopefully we can land the ipod-syncing stuff > shortly after 0.9.5 > > > [0] http://gnome.org/~jrl/rhythmbox-0.9.4.90.tar.bz2 > > > Cheers, > > James "Doc" Livingston > -- > "You are comparing two structures that have holes in them" > -- MPW C error message > > _______________________________________________ > rhythmbox-devel mailing list > rhythmbox-devel@gnome.org > http://mail.gnome.org/mailman/listinfo/rhythmbox-devel > From jonathan@kaolin.wh9.net Wed Jun 7 22:27:29 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 8163E3B019C for ; Wed, 7 Jun 2006 22:27:29 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 32335-04 for ; Wed, 7 Jun 2006 22:27:27 -0400 (EDT) Received: from smtp3.adl2.internode.on.net (smtp3.adl2.internode.on.net [203.16.214.203]) by menubar.gnome.org (Postfix) with ESMTP id 384083B0239 for ; Wed, 7 Jun 2006 22:27:26 -0400 (EDT) Received: from stapler.kaolin.wh9.net (ppp97-73.lns1.bne1.internode.on.net [59.167.97.73]) by smtp3.adl2.internode.on.net (8.13.6/8.13.5) with ESMTP id k582RG4S099866 for ; Thu, 8 Jun 2006 11:57:22 +0930 (CST) (envelope-from jonathan@kaolin.wh9.net) Received: from jonathan by stapler.kaolin.wh9.net with local (Exim 4.50) id 1FoAEu-0005TO-7u for rhythmbox-devel@gnome.org; Thu, 08 Jun 2006 12:27:16 +1000 Date: Thu, 8 Jun 2006 12:27:16 +1000 To: rhythmbox-devel@gnome.org Subject: Re: [Rhythmbox-devel] Upcoming 0.9.5 release Message-ID: <20060608022716.GA21019@kaolin.wh9.net> Mail-Followup-To: rhythmbox-devel@gnome.org References: <1149607572.5396.19.camel@localhost.localdomain> <46cb18130606071823u494ed3d7y88d55075035d9f8f@mail.gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <46cb18130606071823u494ed3d7y88d55075035d9f8f@mail.gmail.com> X-Represent-the-Ocean: Yes User-Agent: Mutt/1.5.9i From: Jonathan Matthew X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.463 tagged_above=-999 required=2 tests=[AWL=0.002, BAYES_00=-2.599, FORGED_RCVD_HELO=0.135, SPF_HELO_PASS=-0.001] X-Spam-Score: -2.463 X-Spam-Level: X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Jun 2006 02:27:29 -0000 On Wed, Jun 07, 2006 at 09:23:53PM -0400, John Russell wrote: > Might I ask why the --next --previous --play-pause etc. arguments were > removed? I always found them very useful. They were removed when the bonobo remote control interface was removed. I'll shortly (hopefully before 0.9.5, come to think of it) be adding a dbus client program providing these arguments and a few more. See bug 340863. You can also do various slightly ugly things like this: $ dbus-send --session --dest=org.gnome.Rhythmbox \ /org/gnome/Rhythmbox/Player org.gnome.Rhythmbox.Player.playPause \ boolean:false use dbus-viewer to see the exposed methods and their arguments. From doclivingston@gmail.com Wed Jun 7 22:58:36 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id E78783B008F for ; Wed, 7 Jun 2006 22:58:35 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 01431-08 for ; Wed, 7 Jun 2006 22:58:34 -0400 (EDT) Received: from py-out-1112.google.com (py-out-1112.google.com [64.233.166.182]) by menubar.gnome.org (Postfix) with ESMTP id 3ABDE3B000A for ; Wed, 7 Jun 2006 22:58:34 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id x31so508329pye for ; Wed, 07 Jun 2006 19:58:32 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:subject:from:reply-to:to:in-reply-to:references:content-type:date:message-id:mime-version:x-mailer:content-transfer-encoding; b=i0m4T5q0zIdhSnNpzEYPHDxBrDzkRfar7Ma2GesDtJzBpdAeVV1gTGKqZ/4aHx+QvYQZOeWLsr4DzI1M237d+WQu/WL5bMVv5ExJ0i3X3pTcho804yPpcX7iH2JF7NsmXEglboBi4+I/MWEtLtZR9MqF+aUVoqY/ECuwftE64sU= Received: by 10.35.61.2 with SMTP id o2mr1661712pyk; Wed, 07 Jun 2006 19:58:32 -0700 (PDT) Received: from alyrion.local ( [144.139.79.169]) by mx.gmail.com with ESMTP id y78sm827976pyg.2006.06.07.19.58.30; Wed, 07 Jun 2006 19:58:32 -0700 (PDT) Subject: Re: [Rhythmbox-devel] Upcoming 0.9.5 release From: "James \"Doc\" Livingston" To: rhythmbox-devel@gnome.org In-Reply-To: <20060607204755.GO6411@bee.dooz.org> References: <1149607572.5396.19.camel@localhost.localdomain> <20060607204755.GO6411@bee.dooz.org> Content-Type: text/plain; charset=UTF-8 Date: Thu, 08 Jun 2006 12:58:27 +1000 Message-Id: <1149735507.5192.2.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.311 tagged_above=-999 required=2 tests=[AWL=0.289, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.311 X-Spam-Level: X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: doclivingston@gmail.com List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Jun 2006 02:58:36 -0000 On Wed, 2006-06-07 at 22:47 +0200, Loïc Minier wrote: > On Wed, Jun 07, 2006, James Doc Livingston wrote: > > 0.9.5 will be out fairly soon, so I've chucked a pre-release tarball up > > at [0] for anyone who wants to test it. > > Thanks! From configure: > PKG_CHECK_MODULES(IPOD_PHONE, libgpod-1.0 >= 0.3.3 [...]) > where can I get 0.3.3? it doesn't show up in the SourceForge files > section of the upstream site, and a quick googling didn't show another > homepage. I think libgpod uses "post-release version incrementing", so the version got changes in cvs as soon as 0.3.2 was released. So in other words, you need libgpod from cvs. > Oh and what's iPod support for phone? :) The "ipod phone" is that one from Motorola that has a version itunes on it, I can't remember exactly what it's called (I'm sure googling will help). If you have libgpod from cvs, RB will support that as much as it supports normal iPods. Cheers, James "Doc" Livingston -- Java is a WORA language! (Write Once, Run Away) -- James Vandenberg on progstone@egroups.com From doclivingston@gmail.com Wed Jun 7 23:59:12 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id DC81C3B00D9 for ; Wed, 7 Jun 2006 23:59:11 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 04500-06 for ; Wed, 7 Jun 2006 23:59:00 -0400 (EDT) Received: from py-out-1112.google.com (py-out-1112.google.com [64.233.166.181]) by menubar.gnome.org (Postfix) with ESMTP id 414B23B0BCE for ; Wed, 7 Jun 2006 23:58:03 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id x31so519462pye for ; Wed, 07 Jun 2006 20:58:02 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:subject:from:reply-to:to:in-reply-to:references:content-type:date:message-id:mime-version:x-mailer:content-transfer-encoding; b=HtExjKkubJ4UuTrwRGDz9Yn76nkYuhJ0lQN9NhJPnjTtgASP/g9OnEKas5eKbJVMG9Vo7b8tU52+8Tfcpkm+zco4hcOj7rmoZ7+L7T1LRkkkICOL8EA1tkJm6cUt+OKjnT2qKYxFtfnEOxRtAJxO9KEDWq1rjqJRYZkG186Pcb8= Received: by 10.35.57.5 with SMTP id j5mr1728522pyk; Wed, 07 Jun 2006 20:58:01 -0700 (PDT) Received: from alyrion.local ( [144.139.79.169]) by mx.gmail.com with ESMTP id f20sm293881pyf.2006.06.07.20.58.00; Wed, 07 Jun 2006 20:58:01 -0700 (PDT) Subject: Re: [Rhythmbox-devel] Is this a bug? ./configure.in: No such file or directory From: "James \"Doc\" Livingston" To: rhythmbox-devel@gnome.org In-Reply-To: References: Content-Type: text/plain Date: Thu, 08 Jun 2006 13:57:56 +1000 Message-Id: <1149739076.5192.10.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.313 tagged_above=-999 required=2 tests=[AWL=0.287, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.313 X-Spam-Level: X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: doclivingston@gmail.com List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Jun 2006 03:59:12 -0000 On Wed, 2006-06-07 at 21:39 +0200, Martin Jeppesen wrote: > I have just checked out a fresh CVS on FC5, and this is what I get. > > ~/bdownload/cvs-rhythmbox/rhythmbox$ ./autogen.sh > /usr/bin/gnome-autogen.sh > grep: ./configure.in: No such file or directory > grep: ./configure.in: No such file or directory > grep: ./configure.in: No such file or directory > grep: ./configure.in: No such file or directory > **Warning**: I am going to run `configure' with no arguments. > If you wish to pass any to it, please specify them on the > `./autogen.sh' command line. > > Running ./configure --enable-maintainer-mode --enable-compile-warnings ... > /usr/share/aclocal/gnome2-macros/autogen.sh: line 162: ./configure: No > such file or directory > ~/bdownload/cvs-rhythmbox/rhythmbox$ That looks odd - Rhythmbox doesn't have a "configure.in" file, it uses "configure.ac". A fresh cvs checkout work fine for me. Cheers, James "Doc" Livingston -- September 25th: Discovered lots of things about Dynamic HTML. Notably that almost every site attempting to use it is crap. -- Alan Cox's Diary From lool+gnome@via.ecp.fr Thu Jun 8 02:35:16 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 187D33B0576 for ; Thu, 8 Jun 2006 02:35:16 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 12128-01 for ; Thu, 8 Jun 2006 02:35:14 -0400 (EDT) Received: from mx0.bpl-group.org (mx0.bpl-group.org [195.115.71.69]) by menubar.gnome.org (Postfix) with ESMTP id 854413B0571 for ; Thu, 8 Jun 2006 02:35:14 -0400 (EDT) Received: from bee.dooz.org (levallois.dooz.org [81.57.180.178]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "lminier.people.bpl-group.org", Issuer "BPL Group People Certification Authority" (verified OK)) by mx0.bpl-group.org (Postfix) with ESMTP id 05771C4C9 for ; Thu, 8 Jun 2006 08:35:13 +0200 (CEST) Received: by bee.dooz.org (Postfix, from userid 1000) id 9A3004F030D; Thu, 8 Jun 2006 08:35:10 +0200 (CEST) Date: Thu, 8 Jun 2006 08:35:10 +0200 From: =?iso-8859-1?Q?Lo=EFc?= Minier To: rhythmbox-devel@gnome.org Subject: Re: [Rhythmbox-devel] Upcoming 0.9.5 release Message-ID: <20060608063510.GA14129@bee.dooz.org> Mail-Followup-To: rhythmbox-devel@gnome.org References: <1149607572.5396.19.camel@localhost.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1149607572.5396.19.camel@localhost.localdomain> X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.566 tagged_above=-999 required=2 tests=[AWL=0.033, BAYES_00=-2.599] X-Spam-Score: -2.566 X-Spam-Level: X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Jun 2006 06:35:16 -0000 Hi, On Wed, Jun 07, 2006, James Doc Livingston wrote: > 0.9.5 will be out fairly soon, so I've chucked a pre-release tarball up > at [0] for anyone who wants to test it. The dbus python samples remote/dbus/rb-print-playing.py, and remote/dbus/rb-set-rating.py don't end up in the tarball, presumably because there's no Makefile.am in remote/. Bye, -- Loïc Minier From palfrey@tevp.net Thu Jun 8 09:31:21 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 65AE43B0614 for ; Thu, 8 Jun 2006 09:31:21 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 07473-02 for ; Thu, 8 Jun 2006 09:31:19 -0400 (EDT) Received: from mailservice.tudelft.nl (mailservice.tudelft.nl [130.161.131.5]) by menubar.gnome.org (Postfix) with ESMTP id 6E0A33B03A6 for ; Thu, 8 Jun 2006 09:31:18 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by rav.antivirus (Postfix) with ESMTP id 18D7E22EE93 for ; Thu, 8 Jun 2006 15:31:17 +0200 (CEST) Received: from [130.161.158.119] (kriek.st.ewi.tudelft.nl [130.161.158.119]) by mx1.tudelft.nl (Postfix) with ESMTP id 85C4B22EEB1 for ; Thu, 8 Jun 2006 15:31:08 +0200 (CEST) Message-ID: <4488270C.9040000@tevp.net> Date: Thu, 08 Jun 2006 15:33:00 +0200 From: Tom Parker User-Agent: Thunderbird 1.5.0.2 (X11/20060516) MIME-Version: 1.0 To: rhythmbox-devel@gnome.org Content-Type: multipart/mixed; boundary="------------050102070802080700070401" X-Virus-Scanned: by amavisd-new at tudelft.nl X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.519 tagged_above=-999 required=2 tests=[AWL=-0.074, BAYES_00=-2.599, TW_GT=0.077, TW_HM=0.077] X-Spam-Score: -2.519 X-Spam-Level: Subject: [Rhythmbox-devel] No-burner support X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Jun 2006 13:31:21 -0000 This is a multi-part message in MIME format. --------------050102070802080700070401 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit I'd been wondering for a while whether I could disable the CD-burning support in Rhythmbox entirely, as I never use it (my system doesn't even have a burner). As it turns out I couldn't, so I've written a patch to support this. Default behaviour is as current, but with the --disable-nautilus-burn flag given to configure, CD burning is switched off entirely. As well as the patch enclosed here, you'll also need the rhythmbox-ui.xml.in and sifter.pl (used to generate rhythmbox-ui.xml from the .in with or without burner menu/popup options). WFM, applies against current CVS Head. Hopefully of some interest to other people. Tom Parker -- palfrey@tevp.net - http://tevp.net Illegitimus non carborundum --------------050102070802080700070401 Content-Type: text/plain; name="no-cd.diff" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="no-cd.diff" Index: Makefile.am =================================================================== RCS file: /cvs/gnome/rhythmbox/Makefile.am,v retrieving revision 1.51 diff -u -p -r1.51 Makefile.am --- Makefile.am 12 May 2006 16:04:44 -0000 1.51 +++ Makefile.am 8 Jun 2006 13:19:21 -0000 @@ -5,7 +5,7 @@ AUTOMAKE_OPTIONS = 1.7 DISTCHECK_CONFIGURE_FLAGS = --disable-schemas-install --enable-gtk-doc --disable-scrollkeeper distuninstallcheck_listfiles = find . -type f -print | grep -v '^\./var/scrollkeeper' -SUBDIRS = macros lib metadata player rhythmdb widgets sources iradio podcast \ +SUBDIRS = macros lib metadata $(PLAYER_MODULE) rhythmdb widgets sources iradio podcast \ daapsharing backends plugins bindings shell data po help tests doc EXTRA_DIST = \ Index: configure.ac =================================================================== RCS file: /cvs/gnome/rhythmbox/configure.ac,v retrieving revision 1.245 diff -u -p -r1.245 configure.ac --- configure.ac 8 Jun 2006 06:31:10 -0000 1.245 +++ configure.ac 8 Jun 2006 13:19:22 -0000 @@ -559,22 +559,34 @@ AM_CONDITIONAL(HAVE_LINUX_CDROM, test "x NCB_DRIVE_DOOR_VERSION=2.11.3 dnl CD burner support -PKG_CHECK_MODULES(LIBNAUTILUS_BURN, [libnautilus-burn >= $NCB_MIN_REQS], have_cd_burner=yes, have_cd_burner=no) -if test "x$have_cd_burner" = xno; then - AC_MSG_ERROR([libnautilus-burn not found or too cold]) -fi -AC_CHECK_LIB(nautilus-burn, nautilus_burn_drive_door_is_open, - [AC_DEFINE([HAVE_BURN_DRIVE_DOOR], 1, [Have nautilus-burn function to check drive door state])], - ,[$LIBNAUTILUS_BURN_LIBS $LIBNAUTILUS_BURN_CFLAGS]) -AC_CHECK_LIB(nautilus-burn, nautilus_burn_drive_unref, - [AC_DEFINE([HAVE_BURN_DRIVE_UNREF], 1, [Have nautilus-burn 2.13 drive unref function])], - ,[$LIBNAUTILUS_BURN_LIBS $LIBNAUTILUS_BURN_CFLAGS]) -AC_CHECK_LIB(nautilus-burn, nautilus_burn_drive_new_from_path, - [AC_DEFINE([HAVE_BURN_DRIVE_NEW_FROM_PATH], 1, [Have nautilus-burn 2.13 drive new_from_path function])], - ,[$LIBNAUTILUS_BURN_LIBS $LIBNAUTILUS_BURN_CFLAGS]) -AC_CHECK_LIB(nautilus-burn, nautilus_burn_drive_get_write_speeds, - [AC_DEFINE([HAVE_BURN_DRIVE_GET_WRITE_SPEEDS], 1, [Have nautilus-burn 2.13 drive get_write_speeds])], - ,[$LIBNAUTILUS_BURN_LIBS $LIBNAUTILUS_BURN_CFLAGS]) +AC_ARG_ENABLE(nautilus-burn, + AC_HELP_STRING([--disable-nautilus-burn], + [Disable cd burner support in rhythmbox])) +if test x"$enable_nautilus_burn" != xno; then + PKG_CHECK_MODULES(LIBNAUTILUS_BURN, [libnautilus-burn >= $NCB_MIN_REQS], have_cd_burner=yes, have_cd_burner=no) + if test "x$have_cd_burner" = xyes; then + AC_CHECK_LIB(nautilus-burn, nautilus_burn_drive_door_is_open, + [AC_DEFINE([HAVE_BURN_DRIVE_DOOR], 1, [Have nautilus-burn function to check drive door state])], + ,[$LIBNAUTILUS_BURN_LIBS $LIBNAUTILUS_BURN_CFLAGS]) + AC_CHECK_LIB(nautilus-burn, nautilus_burn_drive_unref, + [AC_DEFINE([HAVE_BURN_DRIVE_UNREF], 1, [Have nautilus-burn 2.13 drive unref function])], + ,[$LIBNAUTILUS_BURN_LIBS $LIBNAUTILUS_BURN_CFLAGS]) + AC_CHECK_LIB(nautilus-burn, nautilus_burn_drive_new_from_path, + [AC_DEFINE([HAVE_BURN_DRIVE_NEW_FROM_PATH], 1, [Have nautilus-burn 2.13 drive new_from_path function])], + ,[$LIBNAUTILUS_BURN_LIBS $LIBNAUTILUS_BURN_CFLAGS]) + AC_CHECK_LIB(nautilus-burn, nautilus_burn_drive_get_write_speeds, + [AC_DEFINE([HAVE_BURN_DRIVE_GET_WRITE_SPEEDS], 1, [Have nautilus-burn 2.13 drive get_write_speeds])], + ,[$LIBNAUTILUS_BURN_LIBS $LIBNAUTILUS_BURN_CFLAGS]) + AC_DEFINE(HAVE_NAUTILUS_BURN, 1, [defined if you have nautilus-burn]) + PLAYER_MODULE=player + else + AC_MSG_ERROR([libnautilus-burn not found or too cold]) + fi +else + PLAYER_MODULE= +fi +AC_SUBST(PLAYER_MODULE) +AM_CONDITIONAL(HAVE_NAUTILUS_BURN, test "x$enable_nautilus_burn" != "xno") AC_SUBST(CFLAGS) AC_SUBST(LDFLAGS) @@ -944,7 +955,11 @@ fi if test x"${with_rhythmdb_debug}" != x0; then AC_MSG_NOTICE([** RhythmDB sanity checking enabled (may be slow!)]) fi - +if test x"$enable_nautilus_burn" = xyes; then + AC_MSG_NOTICE([** CD burning is enabled]) +else + AC_MSG_NOTICE([ CD burning is disabled]) +fi if test x"$enable_tag_writing" = xyes; then AC_MSG_NOTICE([** Tag writing is enabled - USE AT YOUR OWN RISK]) Index: data/ui/Makefile.am =================================================================== RCS file: /cvs/gnome/rhythmbox/data/ui/Makefile.am,v retrieving revision 1.17 diff -u -p -r1.17 Makefile.am --- data/ui/Makefile.am 25 May 2006 07:20:46 -0000 1.17 +++ data/ui/Makefile.am 8 Jun 2006 13:19:22 -0000 @@ -3,5 +3,9 @@ uixmldir = $(pkgdatadir) uixml_DATA = rhythmbox-ui.xml ipod-ui.xml daap-ui.xml generic-player-ui.xml -EXTRA_DIST = rhythmbox-ui.xml ipod-ui.xml daap-ui.xml generic-player-ui.xml +EXTRA_DIST = rhythmbox-ui.xml.in ipod-ui.xml daap-ui.xml generic-player-ui.xml +export + +rhythmbox-ui.xml: rhythmbox-ui.xml.in Makefile sifter.pl + ./sifter.pl $< $@ Index: player/rb-recorder-gst.c =================================================================== RCS file: /cvs/gnome/rhythmbox/player/rb-recorder-gst.c,v retrieving revision 1.26 diff -u -p -r1.26 rb-recorder-gst.c --- player/rb-recorder-gst.c 2 Jun 2006 05:58:18 -0000 1.26 +++ player/rb-recorder-gst.c 8 Jun 2006 13:19:22 -0000 @@ -100,7 +100,8 @@ struct _RBRecorderPrivate { double progress; GList *tracks; +#ifdef HAVE_NAUTILUS_BURN NautilusBurnDrive *drive; NautilusBurnRecorder *recorder; gboolean playing; Index: shell/Makefile.am =================================================================== RCS file: /cvs/gnome/rhythmbox/shell/Makefile.am,v retrieving revision 1.83 diff -u -p -r1.83 Makefile.am --- shell/Makefile.am 14 May 2006 00:00:55 -0000 1.83 +++ shell/Makefile.am 8 Jun 2006 13:19:22 -0000 @@ -100,13 +100,16 @@ rhythmbox_LDADD = \ $(top_builddir)/sources/libsourcesimpl.la \ $(top_builddir)/iradio/librbiradio.la \ $(top_builddir)/podcast/librbpodcast.la \ - $(top_builddir)/player/librbplayer.la \ $(top_builddir)/metadata/librbmetadata.la \ $(top_builddir)/widgets/librbwidgets.la \ $(top_builddir)/rhythmdb/librhythmdb.la \ $(top_builddir)/backends/librbbackends.la \ $(top_builddir)/plugins/librbplugins.la \ $(top_builddir)/lib/librb.la + +if HAVE_NAUTILUS_BURN +rhythmbox_LDADD += $(top_builddir)/player/librbplayer.la +endif if USE_DAAP INCLUDES += -I$(top_srcdir)/daapsharing Index: shell/main.c =================================================================== RCS file: /cvs/gnome/rhythmbox/shell/main.c,v retrieving revision 1.98 diff -u -p -r1.98 main.c --- shell/main.c 30 May 2006 13:47:16 -0000 1.98 +++ shell/main.c 8 Jun 2006 13:19:22 -0000 @@ -73,6 +73,7 @@ #include #endif +#ifdef HAVE_NAUTILUS_BURN #include #ifndef NAUTILUS_BURN_CHECK_VERSION #define NAUTILUS_BURN_CHECK_VERSION(a,b,c) FALSE @@ -81,6 +82,13 @@ #if NAUTILUS_BURN_CHECK_VERSION(2,15,3) #include #endif + +#else // !HAVE_NAUTILUS_BURN +#ifndef NAUTILUS_BURN_CHECK_VERSION +#define NAUTILUS_BURN_CHECK_VERSION(a,b,c) FALSE +#endif + +#endif // HAVE_NAUTILUS_BURN static gboolean debug = FALSE; static char *debug_match = NULL; Index: shell/rb-playlist-manager.c =================================================================== RCS file: /cvs/gnome/rhythmbox/shell/rb-playlist-manager.c,v retrieving revision 1.107 diff -u -p -r1.107 rb-playlist-manager.c --- shell/rb-playlist-manager.c 7 Jun 2006 13:10:39 -0000 1.107 +++ shell/rb-playlist-manager.c 8 Jun 2006 13:19:22 -0000 @@ -70,8 +70,10 @@ static void rb_playlist_manager_cmd_load RBPlaylistManager *mgr); static void rb_playlist_manager_cmd_save_playlist (GtkAction *action, RBPlaylistManager *mgr); +#ifdef HAVE_NAUTILUS_BURN static void rb_playlist_manager_cmd_burn_playlist (GtkAction *action, RBPlaylistManager *mgr); +#endif static void rb_playlist_manager_cmd_new_playlist (GtkAction *action, RBPlaylistManager *mgr); static void rb_playlist_manager_cmd_new_automatic_playlist (GtkAction *action, @@ -144,9 +146,11 @@ static GtkActionEntry rb_playlist_manage { "MusicPlaylistSavePlaylist", GTK_STOCK_SAVE_AS, N_("_Save to File..."), NULL, N_("Save a playlist to a file"), G_CALLBACK (rb_playlist_manager_cmd_save_playlist) }, +#ifdef HAVE_NAUTILUS_BURN { "MusicPlaylistBurnPlaylist", GTK_STOCK_CDROM, N_("_Create Audio CD..."), NULL, N_("Create an audio CD from playlist"), G_CALLBACK (rb_playlist_manager_cmd_burn_playlist) }, +#endif { "MusicPlaylistRenamePlaylist", NULL, N_("_Rename"), NULL, N_("Rename playlist"), G_CALLBACK (rb_playlist_manager_cmd_rename_playlist) }, @@ -314,12 +318,16 @@ static void rb_playlist_manager_playlist_entries_changed (GtkTreeModel *model, RhythmDBEntry *entry, RBPlaylistManager *mgr) { int num_tracks; +#ifdef HAVE_NAUTILUS_BURN GtkAction *action; +#endif num_tracks = gtk_tree_model_iter_n_children (model, NULL); +#ifdef HAVE_NAUTILUS_BURN action = gtk_action_group_get_action (mgr->priv->actiongroup, "MusicPlaylistBurnPlaylist"); gtk_action_set_sensitive (action, (num_tracks > 0)); +#endif } static void @@ -391,6 +399,7 @@ rb_playlist_manager_set_source (RBPlayli "MusicPlaylistRenamePlaylist"); gtk_action_set_visible (action, can_rename); +#ifdef HAVE_NAUTILUS_BURN action = gtk_action_group_get_action (mgr->priv->actiongroup, "MusicPlaylistBurnPlaylist"); if (playlist_active && rb_recorder_enabled ()) { @@ -413,6 +422,7 @@ rb_playlist_manager_set_source (RBPlayli } else { gtk_action_set_visible (action, FALSE); } +#endif } static void @@ -1401,12 +1411,14 @@ rb_playlist_manager_cmd_save_playlist (G g_object_unref (G_OBJECT (xml)); } +#ifdef HAVE_NAUTILUS_BURN static void rb_playlist_manager_cmd_burn_playlist (GtkAction *action, RBPlaylistManager *mgr) { rb_playlist_source_burn_playlist (RB_PLAYLIST_SOURCE (mgr->priv->selected_source)); } +#endif /** * rb_playlist_manager_get_playlists Index: shell/rb-removable-media-manager.c =================================================================== RCS file: /cvs/gnome/rhythmbox/shell/rb-removable-media-manager.c,v retrieving revision 1.28 diff -u -p -r1.28 rb-removable-media-manager.c --- shell/rb-removable-media-manager.c 2 Jun 2006 22:27:46 -0000 1.28 +++ shell/rb-removable-media-manager.c 8 Jun 2006 13:19:22 -0000 @@ -27,6 +27,7 @@ #include #include +#ifdef HAVE_NAUTILUS_BURN #include #ifndef NAUTILUS_BURN_CHECK_VERSION @@ -37,6 +38,12 @@ #include #endif +#else // !HAVE_NAUTILUS_BURN +#ifndef NAUTILUS_BURN_CHECK_VERSION +#define NAUTILUS_BURN_CHECK_VERSION(a,b,c) FALSE +#endif +#endif + #include "rb-removable-media-manager.h" #include "rb-library-source.h" #include "rb-sourcelist.h" @@ -371,7 +379,9 @@ typedef struct gboolean removed; gboolean tray_opened; RBRemovableMediaManager *manager; +#ifdef HAVE_NAUTILUS_BURN NautilusBurnDrive *drive; +#endif } RbCdDriveInfo; #ifdef HAVE_BURN_DRIVE_DOOR @@ -406,6 +416,7 @@ gboolean poll_tray_opened (RbCdDriveInfo } #endif +#ifdef HAVE_NAUTILUS_BURN static void end_cd_drive_monitor (RbCdDriveInfo *info, RBRemovableMediaManager *manager) { @@ -466,8 +477,10 @@ get_nautilus_burn_drive_for_path (const return path_drive; #endif } +#endif #endif /* NAUTILUS_BURN < 2.15.3 */ +#ifdef HAVE_NAUTILUS_BURN static char * split_drive_from_cdda_uri (const char *uri) { @@ -538,17 +551,20 @@ rb_removable_media_manager_playing_uri_c g_free (priv->playing_uri); priv->playing_uri = (uri) ? g_strdup (uri) : NULL; } +#endif static gboolean rb_removable_media_manager_load_media (RBRemovableMediaManager *manager) { - RBRemovableMediaManagerPrivate *priv = REMOVABLE_MEDIA_MANAGER_GET_PRIVATE (manager); GnomeVFSVolumeMonitor *monitor = gnome_vfs_get_volume_monitor (); +#ifdef HAVE_NAUTILUS_BURN + RBRemovableMediaManagerPrivate *priv = REMOVABLE_MEDIA_MANAGER_GET_PRIVATE (manager); #if !NAUTILUS_BURN_CHECK_VERSION(2,15,3) GList *drives; #endif GObject *shell_player; +#endif /* * Monitor new (un)mounted file systems to look for new media @@ -568,6 +584,7 @@ rb_removable_media_manager_load_media (R G_CALLBACK (rb_removable_media_manager_volume_unmounted_cb), manager); +#ifdef HAVE_NAUTILUS_BURN /* * Monitor all cd drives for inserted audio cds * @@ -586,6 +603,7 @@ rb_removable_media_manager_load_media (R g_signal_connect (shell_player, "playing-uri-changed", G_CALLBACK (rb_removable_media_manager_playing_uri_changed_cb), manager); +#endif return FALSE; } @@ -819,6 +837,7 @@ rb_removable_media_manager_unmount_volum rb_removable_media_manager_unmount_volume (manager, volume); } +#ifdef HAVE_NAUTILUS_BURN #if !NAUTILUS_BURN_CHECK_VERSION(2,15,3) static const char * nautilus_burn_drive_get_device (NautilusBurnDrive *drive) @@ -828,6 +847,7 @@ nautilus_burn_drive_get_device (Nautilus return drive->device; } #endif +#endif void rb_removable_media_manager_scan (RBRemovableMediaManager *manager) @@ -862,6 +882,7 @@ rb_removable_media_manager_scan (RBRemov } g_list_free (list); +#ifdef HAVE_NAUTILUS_BURN /* scan cd drives */ #if NAUTILUS_BURN_CHECK_VERSION(2,15,3) list = nautilus_burn_drive_monitor_get_drives (nautilus_burn_get_drive_monitor ()); @@ -878,6 +899,7 @@ rb_removable_media_manager_scan (RBRemov } } g_list_free (list); +#endif } Index: sources/Makefile.am =================================================================== RCS file: /cvs/gnome/rhythmbox/sources/Makefile.am,v retrieving revision 1.41 diff -u -p -r1.41 Makefile.am --- sources/Makefile.am 27 May 2006 04:30:50 -0000 1.41 +++ sources/Makefile.am 8 Jun 2006 13:19:22 -0000 @@ -20,8 +20,6 @@ libsourcesimpl_la_SOURCES = \ rb-removable-media-source.h \ rb-audiocd-source.c \ rb-audiocd-source.h \ - rb-playlist-source-recorder.c \ - rb-playlist-source-recorder.h \ rb-playlist-source.c \ rb-playlist-source.h \ rb-playlist-xml.h \ @@ -70,6 +68,11 @@ if USE_DAAP libsourcesimpl_la_SOURCES += $(daap_files) endif +if HAVE_NAUTILUS_BURN +libsourcesimpl_la_SOURCES += rb-playlist-source-recorder.c \ + rb-playlist-source-recorder.h +endif + if USE_LIBSOUP INCLUDES += $(SOUP_CFLAGS) endif Index: sources/rb-playlist-source.c =================================================================== RCS file: /cvs/gnome/rhythmbox/sources/rb-playlist-source.c,v retrieving revision 1.118 diff -u -p -r1.118 rb-playlist-source.c --- sources/rb-playlist-source.c 25 May 2006 07:20:48 -0000 1.118 +++ sources/rb-playlist-source.c 8 Jun 2006 13:19:22 -0000 @@ -500,6 +500,7 @@ rb_playlist_source_save_playlist (RBPlay "%s", error->message); } +#ifdef HAVE_NAUTILUS_BURN static gboolean burn_playlist_iter_func (GtkTreeModel *model, GtkTreeIter *iter, char **uri, char **artist, char **title, gulong *duration) { @@ -545,6 +546,7 @@ rb_playlist_source_burn_playlist (RBPlay GTK_TREE_MODEL (source->priv->model), burn_playlist_iter_func, &error); + if (! res) { rb_error_dialog (GTK_WINDOW (parent), _("Unable to create audio CD"), @@ -563,6 +565,7 @@ rb_playlist_source_burn_playlist (RBPlay gtk_widget_show (recorder); } +#endif /* Adapted from yelp-toc-pager.c */ static xmlChar * --------------050102070802080700070401 Content-Type: text/plain; name="rhythmbox-ui.xml.in" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="rhythmbox-ui.xml.in" #HAVE_NAUTILUS_BURN #HAVE_NAUTILUS_BURN #HAVE_NAUTILUS_BURN #HAVE_NAUTILUS_BURN --------------050102070802080700070401 Content-Type: text/x-perl; name="sifter.pl" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="sifter.pl" #!/usr/bin/perl -w open(INFILE, "< $ARGV[0]"); open(OUTFILE, "> $ARGV[1]"); while () { if (substr($_,0,1) eq "#") { ($var,$rest) = split(/ /,$_,2); $var = substr($var,1); if (!exists $ENV{$var} || $ENV{$var} == 0) { next; } $_ = $rest; } print OUTFILE $_; } close INFILE; --------------050102070802080700070401-- From sri@aracnet.com Thu Jun 8 12:09:34 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 3A2803B011C for ; Thu, 8 Jun 2006 12:09:34 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 19045-10 for ; Thu, 8 Jun 2006 12:09:31 -0400 (EDT) Received: from onyx.spiritone.com (onyx.spiritone.com [216.99.193.114]) by menubar.gnome.org (Postfix) with ESMTP id 6B3FF3B06CE for ; Thu, 8 Jun 2006 12:09:31 -0400 (EDT) Received: from onyx.spiritone.com (onyx.spiritone.com [127.0.0.1]) by onyx.spiritone.com (8.12.8/8.12.8) with ESMTP id k58G9UdR031307; Thu, 8 Jun 2006 09:09:30 -0700 Received: (from sri@localhost) by onyx.spiritone.com (8.12.8/8.12.8/Submit) id k58G9TtI031305; Thu, 8 Jun 2006 09:09:29 -0700 Date: Thu, 8 Jun 2006 09:09:29 -0700 From: Sriram Ramkrishna To: Tom Parker Subject: Re: [Rhythmbox-devel] No-burner support Message-ID: <20060608160929.GH4522@aracnet.com> References: <4488270C.9040000@tevp.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4488270C.9040000@tevp.net> User-Agent: Mutt/1.4.1i X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.487 tagged_above=-999 required=2 tests=[AWL=-0.041, BAYES_00=-2.599, SPF_PASS=-0.001, TW_GT=0.077, TW_HM=0.077] X-Spam-Score: -2.487 X-Spam-Level: Cc: rhythmbox-devel@gnome.org X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Jun 2006 16:09:34 -0000 Could you put this in bugzilla as a feature request? Secondly, it seems to me that it would be more useful if it looked at HAL and turned it off if the computer did not have have cd burning capabilities. sri On Thu, Jun 08, 2006 at 03:33:00PM +0200, Tom Parker wrote: > I'd been wondering for a while whether I could disable the CD-burning > support in Rhythmbox entirely, as I never use it (my system doesn't even > have a burner). As it turns out I couldn't, so I've written a patch to > support this. Default behaviour is as current, but with the > --disable-nautilus-burn flag given to configure, CD burning is switched > off entirely. As well as the patch enclosed here, you'll also need the > rhythmbox-ui.xml.in and sifter.pl (used to generate rhythmbox-ui.xml > from the .in with or without burner menu/popup options). > > WFM, applies against current CVS Head. Hopefully of some interest to > other people. > > Tom Parker > -- > palfrey@tevp.net - http://tevp.net > Illegitimus non carborundum > Index: Makefile.am > =================================================================== > RCS file: /cvs/gnome/rhythmbox/Makefile.am,v > retrieving revision 1.51 > diff -u -p -r1.51 Makefile.am > --- Makefile.am 12 May 2006 16:04:44 -0000 1.51 > +++ Makefile.am 8 Jun 2006 13:19:21 -0000 > @@ -5,7 +5,7 @@ AUTOMAKE_OPTIONS = 1.7 > DISTCHECK_CONFIGURE_FLAGS = --disable-schemas-install --enable-gtk-doc --disable-scrollkeeper > distuninstallcheck_listfiles = find . -type f -print | grep -v '^\./var/scrollkeeper' > > -SUBDIRS = macros lib metadata player rhythmdb widgets sources iradio podcast \ > +SUBDIRS = macros lib metadata $(PLAYER_MODULE) rhythmdb widgets sources iradio podcast \ > daapsharing backends plugins bindings shell data po help tests doc > > EXTRA_DIST = \ > Index: configure.ac > =================================================================== > RCS file: /cvs/gnome/rhythmbox/configure.ac,v > retrieving revision 1.245 > diff -u -p -r1.245 configure.ac > --- configure.ac 8 Jun 2006 06:31:10 -0000 1.245 > +++ configure.ac 8 Jun 2006 13:19:22 -0000 > @@ -559,22 +559,34 @@ AM_CONDITIONAL(HAVE_LINUX_CDROM, test "x > > NCB_DRIVE_DOOR_VERSION=2.11.3 > dnl CD burner support > -PKG_CHECK_MODULES(LIBNAUTILUS_BURN, [libnautilus-burn >= $NCB_MIN_REQS], have_cd_burner=yes, have_cd_burner=no) > -if test "x$have_cd_burner" = xno; then > - AC_MSG_ERROR([libnautilus-burn not found or too cold]) > -fi > -AC_CHECK_LIB(nautilus-burn, nautilus_burn_drive_door_is_open, > - [AC_DEFINE([HAVE_BURN_DRIVE_DOOR], 1, [Have nautilus-burn function to check drive door state])], > - ,[$LIBNAUTILUS_BURN_LIBS $LIBNAUTILUS_BURN_CFLAGS]) > -AC_CHECK_LIB(nautilus-burn, nautilus_burn_drive_unref, > - [AC_DEFINE([HAVE_BURN_DRIVE_UNREF], 1, [Have nautilus-burn 2.13 drive unref function])], > - ,[$LIBNAUTILUS_BURN_LIBS $LIBNAUTILUS_BURN_CFLAGS]) > -AC_CHECK_LIB(nautilus-burn, nautilus_burn_drive_new_from_path, > - [AC_DEFINE([HAVE_BURN_DRIVE_NEW_FROM_PATH], 1, [Have nautilus-burn 2.13 drive new_from_path function])], > - ,[$LIBNAUTILUS_BURN_LIBS $LIBNAUTILUS_BURN_CFLAGS]) > -AC_CHECK_LIB(nautilus-burn, nautilus_burn_drive_get_write_speeds, > - [AC_DEFINE([HAVE_BURN_DRIVE_GET_WRITE_SPEEDS], 1, [Have nautilus-burn 2.13 drive get_write_speeds])], > - ,[$LIBNAUTILUS_BURN_LIBS $LIBNAUTILUS_BURN_CFLAGS]) > +AC_ARG_ENABLE(nautilus-burn, > + AC_HELP_STRING([--disable-nautilus-burn], > + [Disable cd burner support in rhythmbox])) > +if test x"$enable_nautilus_burn" != xno; then > + PKG_CHECK_MODULES(LIBNAUTILUS_BURN, [libnautilus-burn >= $NCB_MIN_REQS], have_cd_burner=yes, have_cd_burner=no) > + if test "x$have_cd_burner" = xyes; then > + AC_CHECK_LIB(nautilus-burn, nautilus_burn_drive_door_is_open, > + [AC_DEFINE([HAVE_BURN_DRIVE_DOOR], 1, [Have nautilus-burn function to check drive door state])], > + ,[$LIBNAUTILUS_BURN_LIBS $LIBNAUTILUS_BURN_CFLAGS]) > + AC_CHECK_LIB(nautilus-burn, nautilus_burn_drive_unref, > + [AC_DEFINE([HAVE_BURN_DRIVE_UNREF], 1, [Have nautilus-burn 2.13 drive unref function])], > + ,[$LIBNAUTILUS_BURN_LIBS $LIBNAUTILUS_BURN_CFLAGS]) > + AC_CHECK_LIB(nautilus-burn, nautilus_burn_drive_new_from_path, > + [AC_DEFINE([HAVE_BURN_DRIVE_NEW_FROM_PATH], 1, [Have nautilus-burn 2.13 drive new_from_path function])], > + ,[$LIBNAUTILUS_BURN_LIBS $LIBNAUTILUS_BURN_CFLAGS]) > + AC_CHECK_LIB(nautilus-burn, nautilus_burn_drive_get_write_speeds, > + [AC_DEFINE([HAVE_BURN_DRIVE_GET_WRITE_SPEEDS], 1, [Have nautilus-burn 2.13 drive get_write_speeds])], > + ,[$LIBNAUTILUS_BURN_LIBS $LIBNAUTILUS_BURN_CFLAGS]) > + AC_DEFINE(HAVE_NAUTILUS_BURN, 1, [defined if you have nautilus-burn]) > + PLAYER_MODULE=player > + else > + AC_MSG_ERROR([libnautilus-burn not found or too cold]) > + fi > +else > + PLAYER_MODULE= > +fi > +AC_SUBST(PLAYER_MODULE) > +AM_CONDITIONAL(HAVE_NAUTILUS_BURN, test "x$enable_nautilus_burn" != "xno") > > AC_SUBST(CFLAGS) > AC_SUBST(LDFLAGS) > > @@ -944,7 +955,11 @@ fi > if test x"${with_rhythmdb_debug}" != x0; then > AC_MSG_NOTICE([** RhythmDB sanity checking enabled (may be slow!)]) > fi > - > +if test x"$enable_nautilus_burn" = xyes; then > + AC_MSG_NOTICE([** CD burning is enabled]) > +else > + AC_MSG_NOTICE([ CD burning is disabled]) > +fi > > if test x"$enable_tag_writing" = xyes; then > AC_MSG_NOTICE([** Tag writing is enabled - USE AT YOUR OWN RISK]) > Index: data/ui/Makefile.am > =================================================================== > RCS file: /cvs/gnome/rhythmbox/data/ui/Makefile.am,v > retrieving revision 1.17 > diff -u -p -r1.17 Makefile.am > --- data/ui/Makefile.am 25 May 2006 07:20:46 -0000 1.17 > +++ data/ui/Makefile.am 8 Jun 2006 13:19:22 -0000 > @@ -3,5 +3,9 @@ > uixmldir = $(pkgdatadir) > uixml_DATA = rhythmbox-ui.xml ipod-ui.xml daap-ui.xml generic-player-ui.xml > > -EXTRA_DIST = rhythmbox-ui.xml ipod-ui.xml daap-ui.xml generic-player-ui.xml > +EXTRA_DIST = rhythmbox-ui.xml.in ipod-ui.xml daap-ui.xml generic-player-ui.xml > > +export > + > +rhythmbox-ui.xml: rhythmbox-ui.xml.in Makefile sifter.pl > + ./sifter.pl $< $@ > Index: player/rb-recorder-gst.c > =================================================================== > RCS file: /cvs/gnome/rhythmbox/player/rb-recorder-gst.c,v > retrieving revision 1.26 > diff -u -p -r1.26 rb-recorder-gst.c > --- player/rb-recorder-gst.c 2 Jun 2006 05:58:18 -0000 1.26 > +++ player/rb-recorder-gst.c 8 Jun 2006 13:19:22 -0000 > @@ -100,7 +100,8 @@ struct _RBRecorderPrivate { > double progress; > GList *tracks; > > +#ifdef HAVE_NAUTILUS_BURN > NautilusBurnDrive *drive; > NautilusBurnRecorder *recorder; > > gboolean playing; > > Index: shell/Makefile.am > =================================================================== > RCS file: /cvs/gnome/rhythmbox/shell/Makefile.am,v > retrieving revision 1.83 > diff -u -p -r1.83 Makefile.am > --- shell/Makefile.am 14 May 2006 00:00:55 -0000 1.83 > +++ shell/Makefile.am 8 Jun 2006 13:19:22 -0000 > @@ -100,13 +100,16 @@ rhythmbox_LDADD = \ > $(top_builddir)/sources/libsourcesimpl.la \ > $(top_builddir)/iradio/librbiradio.la \ > $(top_builddir)/podcast/librbpodcast.la \ > - $(top_builddir)/player/librbplayer.la \ > $(top_builddir)/metadata/librbmetadata.la \ > $(top_builddir)/widgets/librbwidgets.la \ > $(top_builddir)/rhythmdb/librhythmdb.la \ > $(top_builddir)/backends/librbbackends.la \ > $(top_builddir)/plugins/librbplugins.la \ > $(top_builddir)/lib/librb.la > + > +if HAVE_NAUTILUS_BURN > +rhythmbox_LDADD += $(top_builddir)/player/librbplayer.la > +endif > > if USE_DAAP > INCLUDES += -I$(top_srcdir)/daapsharing > Index: shell/main.c > =================================================================== > RCS file: /cvs/gnome/rhythmbox/shell/main.c,v > retrieving revision 1.98 > diff -u -p -r1.98 main.c > --- shell/main.c 30 May 2006 13:47:16 -0000 1.98 > +++ shell/main.c 8 Jun 2006 13:19:22 -0000 > @@ -73,6 +73,7 @@ > #include > #endif > > +#ifdef HAVE_NAUTILUS_BURN > #include > #ifndef NAUTILUS_BURN_CHECK_VERSION > #define NAUTILUS_BURN_CHECK_VERSION(a,b,c) FALSE > @@ -81,6 +82,13 @@ > #if NAUTILUS_BURN_CHECK_VERSION(2,15,3) > #include > #endif > + > +#else // !HAVE_NAUTILUS_BURN > +#ifndef NAUTILUS_BURN_CHECK_VERSION > +#define NAUTILUS_BURN_CHECK_VERSION(a,b,c) FALSE > +#endif > + > +#endif // HAVE_NAUTILUS_BURN > > static gboolean debug = FALSE; > static char *debug_match = NULL; > Index: shell/rb-playlist-manager.c > =================================================================== > RCS file: /cvs/gnome/rhythmbox/shell/rb-playlist-manager.c,v > retrieving revision 1.107 > diff -u -p -r1.107 rb-playlist-manager.c > --- shell/rb-playlist-manager.c 7 Jun 2006 13:10:39 -0000 1.107 > +++ shell/rb-playlist-manager.c 8 Jun 2006 13:19:22 -0000 > @@ -70,8 +70,10 @@ static void rb_playlist_manager_cmd_load > RBPlaylistManager *mgr); > static void rb_playlist_manager_cmd_save_playlist (GtkAction *action, > RBPlaylistManager *mgr); > +#ifdef HAVE_NAUTILUS_BURN > static void rb_playlist_manager_cmd_burn_playlist (GtkAction *action, > RBPlaylistManager *mgr); > +#endif > static void rb_playlist_manager_cmd_new_playlist (GtkAction *action, > RBPlaylistManager *mgr); > static void rb_playlist_manager_cmd_new_automatic_playlist (GtkAction *action, > @@ -144,9 +146,11 @@ static GtkActionEntry rb_playlist_manage > { "MusicPlaylistSavePlaylist", GTK_STOCK_SAVE_AS, N_("_Save to File..."), NULL, > N_("Save a playlist to a file"), > G_CALLBACK (rb_playlist_manager_cmd_save_playlist) }, > +#ifdef HAVE_NAUTILUS_BURN > { "MusicPlaylistBurnPlaylist", GTK_STOCK_CDROM, N_("_Create Audio CD..."), NULL, > N_("Create an audio CD from playlist"), > G_CALLBACK (rb_playlist_manager_cmd_burn_playlist) }, > +#endif > { "MusicPlaylistRenamePlaylist", NULL, N_("_Rename"), NULL, > N_("Rename playlist"), > G_CALLBACK (rb_playlist_manager_cmd_rename_playlist) }, > @@ -314,12 +318,16 @@ static void > rb_playlist_manager_playlist_entries_changed (GtkTreeModel *model, RhythmDBEntry *entry, RBPlaylistManager *mgr) > { > int num_tracks; > +#ifdef HAVE_NAUTILUS_BURN > GtkAction *action; > +#endif > > num_tracks = gtk_tree_model_iter_n_children (model, NULL); > > +#ifdef HAVE_NAUTILUS_BURN > action = gtk_action_group_get_action (mgr->priv->actiongroup, "MusicPlaylistBurnPlaylist"); > gtk_action_set_sensitive (action, (num_tracks > 0)); > +#endif > } > > static void > @@ -391,6 +399,7 @@ rb_playlist_manager_set_source (RBPlayli > "MusicPlaylistRenamePlaylist"); > gtk_action_set_visible (action, can_rename); > > +#ifdef HAVE_NAUTILUS_BURN > action = gtk_action_group_get_action (mgr->priv->actiongroup, > "MusicPlaylistBurnPlaylist"); > if (playlist_active && rb_recorder_enabled ()) { > @@ -413,6 +422,7 @@ rb_playlist_manager_set_source (RBPlayli > } else { > gtk_action_set_visible (action, FALSE); > } > +#endif > } > > static void > @@ -1401,12 +1411,14 @@ rb_playlist_manager_cmd_save_playlist (G > g_object_unref (G_OBJECT (xml)); > } > > +#ifdef HAVE_NAUTILUS_BURN > static void > rb_playlist_manager_cmd_burn_playlist (GtkAction *action, > RBPlaylistManager *mgr) > { > rb_playlist_source_burn_playlist (RB_PLAYLIST_SOURCE (mgr->priv->selected_source)); > } > +#endif > > /** > * rb_playlist_manager_get_playlists > Index: shell/rb-removable-media-manager.c > =================================================================== > RCS file: /cvs/gnome/rhythmbox/shell/rb-removable-media-manager.c,v > retrieving revision 1.28 > diff -u -p -r1.28 rb-removable-media-manager.c > --- shell/rb-removable-media-manager.c 2 Jun 2006 22:27:46 -0000 1.28 > +++ shell/rb-removable-media-manager.c 8 Jun 2006 13:19:22 -0000 > @@ -27,6 +27,7 @@ > #include > > #include > +#ifdef HAVE_NAUTILUS_BURN > > #include > #ifndef NAUTILUS_BURN_CHECK_VERSION > @@ -37,6 +38,12 @@ > #include > #endif > > +#else // !HAVE_NAUTILUS_BURN > +#ifndef NAUTILUS_BURN_CHECK_VERSION > +#define NAUTILUS_BURN_CHECK_VERSION(a,b,c) FALSE > +#endif > +#endif > + > #include "rb-removable-media-manager.h" > #include "rb-library-source.h" > #include "rb-sourcelist.h" > @@ -371,7 +379,9 @@ typedef struct > gboolean removed; > gboolean tray_opened; > RBRemovableMediaManager *manager; > +#ifdef HAVE_NAUTILUS_BURN > NautilusBurnDrive *drive; > +#endif > } RbCdDriveInfo; > > #ifdef HAVE_BURN_DRIVE_DOOR > @@ -406,6 +416,7 @@ gboolean poll_tray_opened (RbCdDriveInfo > } > #endif > > +#ifdef HAVE_NAUTILUS_BURN > static > void end_cd_drive_monitor (RbCdDriveInfo *info, RBRemovableMediaManager *manager) > { > @@ -466,8 +477,10 @@ get_nautilus_burn_drive_for_path (const > return path_drive; > #endif > } > +#endif > #endif /* NAUTILUS_BURN < 2.15.3 */ > > +#ifdef HAVE_NAUTILUS_BURN > static char * > split_drive_from_cdda_uri (const char *uri) > { > @@ -538,17 +551,20 @@ rb_removable_media_manager_playing_uri_c > g_free (priv->playing_uri); > priv->playing_uri = (uri) ? g_strdup (uri) : NULL; > } > +#endif > > > static gboolean > rb_removable_media_manager_load_media (RBRemovableMediaManager *manager) > { > - RBRemovableMediaManagerPrivate *priv = REMOVABLE_MEDIA_MANAGER_GET_PRIVATE (manager); > GnomeVFSVolumeMonitor *monitor = gnome_vfs_get_volume_monitor (); > +#ifdef HAVE_NAUTILUS_BURN > + RBRemovableMediaManagerPrivate *priv = REMOVABLE_MEDIA_MANAGER_GET_PRIVATE (manager); > #if !NAUTILUS_BURN_CHECK_VERSION(2,15,3) > GList *drives; > #endif > GObject *shell_player; > +#endif > > /* > * Monitor new (un)mounted file systems to look for new media > @@ -568,6 +584,7 @@ rb_removable_media_manager_load_media (R > G_CALLBACK (rb_removable_media_manager_volume_unmounted_cb), > manager); > > +#ifdef HAVE_NAUTILUS_BURN > /* > * Monitor all cd drives for inserted audio cds > * > @@ -586,6 +603,7 @@ rb_removable_media_manager_load_media (R > g_signal_connect (shell_player, "playing-uri-changed", > G_CALLBACK (rb_removable_media_manager_playing_uri_changed_cb), > manager); > +#endif > > return FALSE; > } > @@ -819,6 +837,7 @@ rb_removable_media_manager_unmount_volum > rb_removable_media_manager_unmount_volume (manager, volume); > } > > +#ifdef HAVE_NAUTILUS_BURN > #if !NAUTILUS_BURN_CHECK_VERSION(2,15,3) > static const char * > nautilus_burn_drive_get_device (NautilusBurnDrive *drive) > @@ -828,6 +847,7 @@ nautilus_burn_drive_get_device (Nautilus > return drive->device; > } > #endif > +#endif > > void > rb_removable_media_manager_scan (RBRemovableMediaManager *manager) > @@ -862,6 +882,7 @@ rb_removable_media_manager_scan (RBRemov > } > g_list_free (list); > > +#ifdef HAVE_NAUTILUS_BURN > /* scan cd drives */ > #if NAUTILUS_BURN_CHECK_VERSION(2,15,3) > list = nautilus_burn_drive_monitor_get_drives (nautilus_burn_get_drive_monitor ()); > @@ -878,6 +899,7 @@ rb_removable_media_manager_scan (RBRemov > } > } > g_list_free (list); > +#endif > } > > > Index: sources/Makefile.am > =================================================================== > RCS file: /cvs/gnome/rhythmbox/sources/Makefile.am,v > retrieving revision 1.41 > diff -u -p -r1.41 Makefile.am > --- sources/Makefile.am 27 May 2006 04:30:50 -0000 1.41 > +++ sources/Makefile.am 8 Jun 2006 13:19:22 -0000 > @@ -20,8 +20,6 @@ libsourcesimpl_la_SOURCES = \ > rb-removable-media-source.h \ > rb-audiocd-source.c \ > rb-audiocd-source.h \ > - rb-playlist-source-recorder.c \ > - rb-playlist-source-recorder.h \ > rb-playlist-source.c \ > rb-playlist-source.h \ > rb-playlist-xml.h \ > @@ -70,6 +68,11 @@ if USE_DAAP > libsourcesimpl_la_SOURCES += $(daap_files) > endif > > +if HAVE_NAUTILUS_BURN > +libsourcesimpl_la_SOURCES += rb-playlist-source-recorder.c \ > + rb-playlist-source-recorder.h > +endif > + > if USE_LIBSOUP > INCLUDES += $(SOUP_CFLAGS) > endif > Index: sources/rb-playlist-source.c > =================================================================== > RCS file: /cvs/gnome/rhythmbox/sources/rb-playlist-source.c,v > retrieving revision 1.118 > diff -u -p -r1.118 rb-playlist-source.c > --- sources/rb-playlist-source.c 25 May 2006 07:20:48 -0000 1.118 > +++ sources/rb-playlist-source.c 8 Jun 2006 13:19:22 -0000 > @@ -500,6 +500,7 @@ rb_playlist_source_save_playlist (RBPlay > "%s", error->message); > } > > +#ifdef HAVE_NAUTILUS_BURN > static gboolean > burn_playlist_iter_func (GtkTreeModel *model, GtkTreeIter *iter, char **uri, char **artist, char **title, gulong *duration) > { > @@ -545,6 +546,7 @@ rb_playlist_source_burn_playlist (RBPlay > GTK_TREE_MODEL (source->priv->model), > burn_playlist_iter_func, > &error); > + > if (! res) { > rb_error_dialog (GTK_WINDOW (parent), > _("Unable to create audio CD"), > @@ -563,6 +565,7 @@ rb_playlist_source_burn_playlist (RBPlay > > gtk_widget_show (recorder); > } > +#endif > > /* Adapted from yelp-toc-pager.c */ > static xmlChar * > > > > > > > > > > > > > > > #HAVE_NAUTILUS_BURN > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > #HAVE_NAUTILUS_BURN > #HAVE_NAUTILUS_BURN > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > #HAVE_NAUTILUS_BURN > > > > > > > > > > > _______________________________________________ > rhythmbox-devel mailing list > rhythmbox-devel@gnome.org > http://mail.gnome.org/mailman/listinfo/rhythmbox-devel -- From palfrey@tevp.net Thu Jun 8 12:31:38 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 2D74F3B0709 for ; Thu, 8 Jun 2006 12:31:38 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 20664-01 for ; Thu, 8 Jun 2006 12:31:36 -0400 (EDT) Received: from mailservice.tudelft.nl (mailservice.tudelft.nl [130.161.131.5]) by menubar.gnome.org (Postfix) with ESMTP id 558103B0014 for ; Thu, 8 Jun 2006 12:31:36 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by rav.antivirus (Postfix) with ESMTP id 3927722EF82 for ; Thu, 8 Jun 2006 18:31:35 +0200 (CEST) Received: from [130.161.158.119] (kriek.st.ewi.tudelft.nl [130.161.158.119]) by mx1.tudelft.nl (Postfix) with ESMTP id 79EE122EEF5 for ; Thu, 8 Jun 2006 18:31:34 +0200 (CEST) Message-ID: <44885158.2060302@tevp.net> Date: Thu, 08 Jun 2006 18:33:28 +0200 From: Tom Parker User-Agent: Thunderbird 1.5.0.2 (X11/20060516) MIME-Version: 1.0 To: rhythmbox-devel@gnome.org Subject: Re: [Rhythmbox-devel] No-burner support References: <4488270C.9040000@tevp.net> <20060608160929.GH4522@aracnet.com> In-Reply-To: <20060608160929.GH4522@aracnet.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at tudelft.nl X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.549 tagged_above=-999 required=2 tests=[AWL=-0.027, BAYES_00=-2.599, TW_MK=0.077] X-Spam-Score: -2.549 X-Spam-Level: X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Jun 2006 16:31:38 -0000 (Apologies to Sririam who will be seeing this twice. Damn "Reply-To"-less mailing lists....) Sriram Ramkrishna wrote: > Could you put this in bugzilla as a feature request? Done. http://bugzilla.gnome.org/show_bug.cgi?id=344300 > Secondly, it seems to me that it would be more useful if it looked > at HAL and turned it off if the computer did not have have cd > burning capabilities. That would require being able to add/remove items from the menus in the code as opposed to my current approach of editing the ui XML files at compile time. Another thought: Could CD burning become a plugin? Crazy idea, but that would allow for both disabling it entirely and as the plugin mechanism already needs a way to add/remove menu or popup items, it might just work... Tom -- palfrey@tevp.net - http://tevp.net Illegitimus non carborundum From mccann@jhu.edu Thu Jun 8 12:35:03 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 136EA3B0762 for ; Thu, 8 Jun 2006 12:35:03 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 20679-09 for ; Thu, 8 Jun 2006 12:34:59 -0400 (EDT) Received: from ipex4.johnshopkins.edu (ipex4.johnshopkins.edu [128.220.2.151]) by menubar.gnome.org (Postfix) with ESMTP id 0A5F63B06D6 for ; Thu, 8 Jun 2006 12:34:56 -0400 (EDT) Received: from adcam-2.pha.jhu.edu (HELO adcam.pha.jhu.edu) ([128.220.146.77]) by ipex4.johnshopkins.edu with ESMTP/TLS/AES256-SHA; 08 Jun 2006 12:34:56 -0400 X-BrightmailFiltered: true X-Brightmail-Tracker: AAAAAA== X-IronPort-AV: i="4.05,220,1146456000"; d="scan'208"; a="154718101:sNHT22048660" Received: from [128.220.146.22] (acs7 [128.220.146.22]) (authenticated bits=0) by adcam.pha.jhu.edu (8.13.6/8.13.6) with ESMTP id k58GYtW1016615 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 8 Jun 2006 12:34:55 -0400 (EDT) Message-ID: <448851AF.8080704@jhu.edu> Date: Thu, 08 Jun 2006 12:34:55 -0400 From: William Jon McCann User-Agent: Mozilla Thunderbird 1.0.8-1.4.1 (X11/20060420) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Tom Parker Subject: Re: [Rhythmbox-devel] No-burner support References: <4488270C.9040000@tevp.net> <20060608160929.GH4522@aracnet.com> <44885158.2060302@tevp.net> In-Reply-To: <44885158.2060302@tevp.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.553 tagged_above=-999 required=2 tests=[AWL=-0.031, BAYES_00=-2.599, TW_MK=0.077] X-Spam-Score: -2.553 X-Spam-Level: Cc: rhythmbox-devel@gnome.org X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Jun 2006 16:35:03 -0000 Tom Parker wrote: > (Apologies to Sririam who will be seeing this twice. Damn > "Reply-To"-less mailing lists....) > > Sriram Ramkrishna wrote: > > Could you put this in bugzilla as a feature request? > > Done. http://bugzilla.gnome.org/show_bug.cgi?id=344300 > > > Secondly, it seems to me that it would be more useful if it looked > > at HAL and turned it off if the computer did not have have cd > > burning capabilities. > > That would require being able to add/remove items from the menus in the > code as opposed to my current approach of editing the ui XML files at > compile time. > > Another thought: Could CD burning become a plugin? Crazy idea, but that > would allow for both disabling it entirely and as the plugin mechanism > already needs a way to add/remove menu or popup items, it might just > work... But when you connect a CD burner to your computer, or someone comes over your house and connects a CD burner, you expect CD burner support to be present, right? Even if you don't, I think most people would. What problems is the burning feature causing you? Is it just that it is present in the menus? Jon From palfrey@tevp.net Thu Jun 8 12:55:02 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 693B53B0F4C for ; Thu, 8 Jun 2006 12:55:02 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 22217-09 for ; Thu, 8 Jun 2006 12:55:00 -0400 (EDT) Received: from mailservice.tudelft.nl (mailservice.tudelft.nl [130.161.131.5]) by menubar.gnome.org (Postfix) with ESMTP id A74793B0F62 for ; Thu, 8 Jun 2006 12:55:00 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by rav.antivirus (Postfix) with ESMTP id BD0548018C for ; Thu, 8 Jun 2006 18:54:59 +0200 (CEST) Received: from [130.161.158.119] (kriek.st.ewi.tudelft.nl [130.161.158.119]) by mx4.tudelft.nl (Postfix) with ESMTP id 04DA6800A3 for ; Thu, 8 Jun 2006 18:54:59 +0200 (CEST) Message-ID: <448856D2.9040309@tevp.net> Date: Thu, 08 Jun 2006 18:56:50 +0200 From: Tom Parker User-Agent: Thunderbird 1.5.0.2 (X11/20060516) MIME-Version: 1.0 To: rhythmbox-devel@gnome.org Subject: Re: [Rhythmbox-devel] No-burner support References: <4488270C.9040000@tevp.net> <20060608160929.GH4522@aracnet.com> <44885158.2060302@tevp.net> <448851AF.8080704@jhu.edu> In-Reply-To: <448851AF.8080704@jhu.edu> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at tudelft.nl X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.585 tagged_above=-999 required=2 tests=[AWL=0.014, BAYES_00=-2.599] X-Spam-Score: -2.585 X-Spam-Level: X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Jun 2006 16:55:02 -0000 William Jon McCann wrote: > What problems is the burning feature causing you? Is it just that it is > present in the menus? I think the thing that was bugging me was the only reason that I had libnautilus-burn-dev installed was so I could recompile Rhythmbox, and I wanted to get it off my system. I'm not used to thinking of applications like Rhythmbox as an all-singing-all-dancing music manager, but more as just something to play my MP3s. In a similar note, I don't even want the Play Queue, Radio or Podcasts. All I want is the Library and I'll be happy. I guess it's just one of those stereotypical "programmer has an itch to scratch" things we keep hearing as the canonical examples of reasons for open source programming. Not very important really, but I felt as I'd implemented it for my own interest I might as well share it with everyone else. Tom -- palfrey@tevp.net - http://tevp.net Illegitimus non carborundum From pclouds@gmail.com Thu Jun 8 12:58:00 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 011413B0F4C for ; Thu, 8 Jun 2006 12:58:00 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 22607-02 for ; Thu, 8 Jun 2006 12:57:58 -0400 (EDT) Received: from wx-out-0102.google.com (wx-out-0102.google.com [66.249.82.197]) by menubar.gnome.org (Postfix) with ESMTP id D6DB23B0F31 for ; Thu, 8 Jun 2006 12:57:57 -0400 (EDT) Received: by wx-out-0102.google.com with SMTP id i30so443101wxd for ; Thu, 08 Jun 2006 09:57:57 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=IDD0ilbXRn/DdtQqO1GMoD9GWrl6KT4BDlykc9R7D/CdidaPDDCH0Fzpz32UGtyXoEl8yOggbB68BU3y5c+EwLraQPjNiwiWz51N3gFNqdBZWqti9pru21ifEEUwXJ4iR0WqoU8ip3xHLv2NtxLUrWkgEygFaPjLxHAo4abquxE= Received: by 10.70.103.17 with SMTP id a17mr2295297wxc; Thu, 08 Jun 2006 09:57:56 -0700 (PDT) Received: by 10.70.45.11 with HTTP; Thu, 8 Jun 2006 09:57:56 -0700 (PDT) Message-ID: Date: Thu, 8 Jun 2006 23:57:56 +0700 From: "=?UTF-8?Q?Nguy=E1=BB=85n_Th=C3=A1i_Ng=E1=BB=8Dc_Duy?=" To: "William Jon McCann" Subject: Re: [Rhythmbox-devel] No-burner support In-Reply-To: <448851AF.8080704@jhu.edu> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 Content-Disposition: inline References: <4488270C.9040000@tevp.net> <20060608160929.GH4522@aracnet.com> <44885158.2060302@tevp.net> <448851AF.8080704@jhu.edu> X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.355 tagged_above=-999 required=2 tests=[AWL=0.021, BAYES_00=-2.599, MIME_BASE64_NO_NAME=0.224, SPF_PASS=-0.001] X-Spam-Score: -2.355 X-Spam-Level: Cc: rhythmbox-devel@gnome.org X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Jun 2006 16:58:00 -0000 T24gNi84LzA2LCBXaWxsaWFtIEpvbiBNY0Nhbm4gPG1jY2FubkBqaHUuZWR1PiB3cm90ZToKPiBC dXQgd2hlbiB5b3UgY29ubmVjdCBhIENEIGJ1cm5lciB0byB5b3VyIGNvbXB1dGVyLCBvciBzb21l b25lIGNvbWVzIG92ZXIKPiB5b3VyIGhvdXNlIGFuZCBjb25uZWN0cyBhIENEIGJ1cm5lciwgeW91 IGV4cGVjdCBDRCBidXJuZXIgc3VwcG9ydCB0byBiZQo+IHByZXNlbnQsIHJpZ2h0PyAgRXZlbiBp ZiB5b3UgZG9uJ3QsIEkgdGhpbmsgbW9zdCBwZW9wbGUgd291bGQuCkJ1dCBJIHRoaW5rIHRoZXJl IGFyZSBwZW9wbGUgd2hvIGRvIG5vdCBhbGxvdyB0byBidXJuIENEcyBmcm9tIHRoZWlyCnN5c3Rl bXMuIFNvbWUgc2VsZmlzaCBvbmVzIG1heWJlIDspCgo+Cj4gV2hhdCBwcm9ibGVtcyBpcyB0aGUg YnVybmluZyBmZWF0dXJlIGNhdXNpbmcgeW91PyAgSXMgaXQganVzdCB0aGF0IGl0IGlzCj4gcHJl c2VudCBpbiB0aGUgbWVudXM/CkZvciBtZSwgaXQncyBiZWNhdXNlIG9mIG5hdXRpbHVzLWJ1cm4g ZGVwZW5kZW5jeS4KLS0gCkJpIEPhu50gTGFvCg== From d2xdt2@gmail.com Thu Jun 8 13:53:19 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 8247E3B0740 for ; Thu, 8 Jun 2006 13:53:19 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 25916-07 for ; Thu, 8 Jun 2006 13:53:17 -0400 (EDT) Received: from py-out-1112.google.com (py-out-1112.google.com [64.233.166.179]) by menubar.gnome.org (Postfix) with ESMTP id 8B8F43B0670 for ; Thu, 8 Jun 2006 13:53:17 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id m51so668580pye for ; Thu, 08 Jun 2006 10:53:16 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=YvzV6IFDJPahVMVGYJOXMX543arHCvb6Ln9WrnfzfTWPPpOyk3nVSfe9jbHrIHAk3sjcjS/+C/fInE5R7a/jDygTXJUcj3JI0KsPkbSy2jZOjM899gCraTKmDMg2KFZoTM/VqaiZAU8ot6vHFR2CNKvNvrDXVPaz+49iLGz26kA= Received: by 10.35.27.1 with SMTP id e1mr2758796pyj; Thu, 08 Jun 2006 10:53:16 -0700 (PDT) Received: by 10.35.102.19 with HTTP; Thu, 8 Jun 2006 10:53:16 -0700 (PDT) Message-ID: Date: Thu, 8 Jun 2006 19:53:16 +0200 From: "Martin Jeppesen" To: doclivingston@gmail.com Subject: Re: [Rhythmbox-devel] Is this a bug? ./configure.in: No such file or directory In-Reply-To: <1149739076.5192.10.camel@localhost.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <1149739076.5192.10.camel@localhost.localdomain> X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.503 tagged_above=-999 required=2 tests=[AWL=0.097, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.503 X-Spam-Level: Cc: rhythmbox-devel@gnome.org X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Jun 2006 17:53:19 -0000 > That looks odd - Rhythmbox doesn't have a "configure.in" file, it uses > "configure.ac". A fresh cvs checkout work fine for me. I still get that error even after I have done: ~/bdownload/cvs-rhythmbox$ rm -r rhythmbox/ ~/bdownload/cvs-rhythmbox/rhythmbox$ date Thu Jun 8 19:52:39 CEST 2006 ~/bdownload/cvs-rhythmbox$ cvs -z3 -d:pserver:anonymous@anoncvs.gnome.org:/cvs/gnome co rhythmbox [snip] ~/bdownload/cvs-rhythmbox$ cd rhythmbox/ ~/bdownload/cvs-rhythmbox/rhythmbox$ ./autogen.sh /usr/bin/gnome-autogen.sh grep: ./configure.in: No such file or directory grep: ./configure.in: No such file or directory grep: ./configure.in: No such file or directory grep: ./configure.in: No such file or directory **Warning**: I am going to run `configure' with no arguments. If you wish to pass any to it, please specify them on the `./autogen.sh' command line. Running ./configure --enable-maintainer-mode --enable-compile-warnings ... /usr/share/aclocal/gnome2-macros/autogen.sh: line 162: ./configure: No such file or directory ~/bdownload/cvs-rhythmbox/rhythmbox$ From hadess@hadess.net Thu Jun 8 15:46:05 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 0668A3B1020 for ; Thu, 8 Jun 2006 15:46:05 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 00777-01 for ; Thu, 8 Jun 2006 15:46:00 -0400 (EDT) Received: from lucifer.nerdfest.org (lucifer.nerdfest.org [216.243.209.218]) by menubar.gnome.org (Postfix) with ESMTP id E95F73B102C for ; Thu, 8 Jun 2006 15:45:58 -0400 (EDT) Received: from [192.168.1.5] (cpc4-glfd1-0-0-cust751.glfd.cable.ntl.com [86.16.126.240]) (authenticated bits=0) by lucifer.nerdfest.org (8.13.1/8.13.1) with ESMTP id k58JjpAG019082 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NO); Thu, 8 Jun 2006 14:45:53 -0500 Subject: Re: [Rhythmbox-devel] No-burner support From: Bastien Nocera To: =?UTF-8?Q?Nguy=E1=BB=85n_Th=C3=A1i_Ng=E1=BB=8Dc?= Duy In-Reply-To: References: <4488270C.9040000@tevp.net> <20060608160929.GH4522@aracnet.com> <44885158.2060302@tevp.net> <448851AF.8080704@jhu.edu> Content-Type: text/plain; charset=UTF-8 Date: Thu, 08 Jun 2006 20:45:52 +0100 Message-Id: <1149795952.19715.8.camel@wyatt.hadess.net> Mime-Version: 1.0 X-Mailer: Evolution 2.5.90 (2.5.90-2.1) Content-Transfer-Encoding: 8bit X-Virus-Scanned: ClamAV 0.88.2/1520/Wed Jun 7 16:47:18 2006 on lucifer.nerdfest.org X-Virus-Status: Clean X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.594 tagged_above=-999 required=2 tests=[AWL=0.006, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.594 X-Spam-Level: Cc: rhythmbox-devel@gnome.org, William Jon McCann X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Jun 2006 19:46:05 -0000 On Thu, 2006-06-08 at 23:57 +0700, Nguyá»…n Thái Ngá»c Duy wrote: > On 6/8/06, William Jon McCann wrote: > > But when you connect a CD burner to your computer, or someone comes over > > your house and connects a CD burner, you expect CD burner support to be > > present, right? Even if you don't, I think most people would. > But I think there are people who do not allow to burn CDs from their > systems. Some selfish ones maybe ;) This should be disabled using a GConf key, made mandatory at the system level, not a compile option. -- Bastien Nocera From alexl@users.sourceforge.net Thu Jun 8 22:46:22 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 7B8DB3B0408 for ; Thu, 8 Jun 2006 22:46:22 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 21600-07 for ; Thu, 8 Jun 2006 22:46:20 -0400 (EDT) Received: from allele2.biol.berkeley.edu (allele2.Biol.Berkeley.EDU [128.32.118.82]) by menubar.gnome.org (Postfix) with ESMTP id A05053B02FE for ; Thu, 8 Jun 2006 22:46:20 -0400 (EDT) Received: from allele2.biol.berkeley.edu (localhost.localdomain [127.0.0.1]) by allele2.biol.berkeley.edu (8.13.6/8.12.11) with ESMTP id k592kJsq001707 for ; Thu, 8 Jun 2006 19:46:19 -0700 Received: (from alex@localhost) by allele2.biol.berkeley.edu (8.13.6/8.13.4/Submit) id k592kJXR001705; Thu, 8 Jun 2006 19:46:19 -0700 X-Authentication-Warning: allele2.biol.berkeley.edu: alex set sender to alexl@users.sourceforge.net using -f To: rhythmbox-devel@gnome.org References: <1149739076.5192.10.camel@localhost.localdomain> From: Alex Lancaster Organization: Sourceforge Date: Thu, 08 Jun 2006 19:46:19 -0700 In-Reply-To: (Martin Jeppesen's message of "Thu, 8 Jun 2006 19:53:16 +0200") Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.589 tagged_above=-999 required=2 tests=[AWL=0.010, BAYES_00=-2.599] X-Spam-Score: -2.589 X-Spam-Level: Subject: [Rhythmbox-devel] Re: Is this a bug? ./configure.in: No such file or directory X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Jun 2006 02:46:22 -0000 >>>>> "MJ" == Martin Jeppesen writes: >> That looks odd - Rhythmbox doesn't have a "configure.in" file, it >> uses "configure.ac". A fresh cvs checkout work fine for me. MJ> I still get that error even after I have done: MJ> ~/bdownload/cvs-rhythmbox$ rm -r rhythmbox/ MJ> ~/bdownload/cvs-rhythmbox/rhythmbox$ date Thu Jun 8 19:52:39 CEST MJ> 2006 ~/bdownload/cvs-rhythmbox$ cvs -z3 MJ> -d:pserver:anonymous@anoncvs.gnome.org:/cvs/gnome co rhythmbox MJ> [snip] ~/bdownload/cvs-rhythmbox$ cd rhythmbox/ MJ> ~/bdownload/cvs-rhythmbox/rhythmbox$ ./autogen.sh MJ> /usr/bin/gnome-autogen.sh grep: ./configure.in: No such file or MJ> directory grep: ./configure.in: No such file or directory grep: MJ> ./configure.in: No such file or directory grep: ./configure.in: No MJ> such file or directory **Warning**: I am going to run `configure' MJ> with no arguments. If you wish to pass any to it, please specify MJ> them on the `./autogen.sh' command line. MJ> Running ./configure --enable-maintainer-mode MJ> --enable-compile-warnings ... MJ> /usr/share/aclocal/gnome2-macros/autogen.sh: line 162: MJ> ./configure: No such file or directory MJ> ~/bdownload/cvs-rhythmbox/rhythmbox$ What version of gnome-common do you have? Do you have the latest gnome-common from CVS as detailed in autogen.sh? "You need to install gnome-common from the GNOME CVS" It could be your version of gnome-autogen.sh Alex From miguel.lahoz@gmail.com Thu Jun 8 14:32:49 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id A82843B0F4E for ; Thu, 8 Jun 2006 14:32:49 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 28631-02 for ; Thu, 8 Jun 2006 14:32:45 -0400 (EDT) Received: from wr-out-0506.google.com (wr-out-0506.google.com [64.233.184.227]) by menubar.gnome.org (Postfix) with ESMTP id F26D53B0670 for ; Thu, 8 Jun 2006 14:32:44 -0400 (EDT) Received: by wr-out-0506.google.com with SMTP id i12so678837wra for ; Thu, 08 Jun 2006 11:32:44 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:subject:from:to:content-type:date:message-id:mime-version:x-mailer:content-transfer-encoding; b=O5STPKbcAoWGFwOMwu3J+zdY9K19Hi2BVDYmEie61CWk1/Hie8A0ySrvTHv1dbVhxAgplxj9NRGHYZgPNXqVT7p7K9qOeI2QK7xwygfgDVEySskwJ/dSZypcOy6+qa5C4s8Ic9LXQ8P1tnA+b4eNVPxU+fkthPXtUxgVSOvL7eA= Received: by 10.54.101.13 with SMTP id y13mr2027006wrb; Thu, 08 Jun 2006 11:32:37 -0700 (PDT) Received: from ?192.168.1.4? ( [87.217.176.34]) by mx.gmail.com with ESMTP id g5sm1867411wra.2006.06.08.11.32.34; Thu, 08 Jun 2006 11:32:37 -0700 (PDT) From: Miguel Lahoz =?ISO-8859-1?Q?Garc=EDa?= To: rhythmbox-devel@gnome.org Content-Type: text/plain Date: Thu, 08 Jun 2006 20:32:30 +0200 Message-Id: <1149791550.5194.16.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.6 tagged_above=-999 required=2 tests=[BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.6 X-Spam-Level: X-Mailman-Approved-At: Fri, 09 Jun 2006 03:04:03 -0400 Subject: [Rhythmbox-devel] Problem downloading some podcasts X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Jun 2006 18:32:49 -0000 Hi, I'm using Rhythmbox 0.9.3.1 (Ubuntu Dapper) and I can't download episodes from some podcasts, for example: http://feeds.feedburner.com/EnglishAsASecondLanguagePodcast This podcast works fine with other podcast clients, like gPodder and iTunes. I have observed, in all the podcast with this problem, that the url for the files uses some kind of redirection, for example: http://www.podtrac.com/pts/redirect.mp3?http://media.libsyn.com/media/eslpod/ESLPod171.mp3 The url is valid, the file can be downloaded with wget. Any idea about how to solve it? Do you think it could be a bug? Thanks and regards, -Miguel From ernstp@gmail.com Fri Jun 9 03:49:32 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 767D73B006E for ; Fri, 9 Jun 2006 03:49:32 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 05069-01 for ; Fri, 9 Jun 2006 03:49:31 -0400 (EDT) Received: from nz-out-0102.google.com (nz-out-0102.google.com [64.233.162.204]) by menubar.gnome.org (Postfix) with ESMTP id B23633B010A for ; Fri, 9 Jun 2006 03:49:30 -0400 (EDT) Received: by nz-out-0102.google.com with SMTP id 9so705439nzo for ; Fri, 09 Jun 2006 00:49:30 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=TiEXc7CRrefG9qJlELf/R7FkgMWJRjK8uCDNHT5VCdE2pMiQkwcSvbIz4xsI2VAPacRPM+Gx2hn7Kig96yGaYPnN+NacW0lTDozLwSVoH/9553TsQmQpvxLOVWlBKADuQ7ySAyx4j9Uj1/RK5MvTKAwM8KSw5di3LaCwfRdlIQE= Received: by 10.36.96.10 with SMTP id t10mr171571nzb; Fri, 09 Jun 2006 00:47:06 -0700 (PDT) Received: by 10.36.37.11 with HTTP; Fri, 9 Jun 2006 00:49:29 -0700 (PDT) Message-ID: <8e2e399f0606090049s7c66d7b0v5b198db77587a69b@mail.gmail.com> Date: Fri, 9 Jun 2006 09:49:29 +0200 From: "Ernst Persson" To: "Rhythmbox-devel list" MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-1.999 tagged_above=-999 required=2 tests=[AWL=0.601, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -1.999 X-Spam-Level: Subject: [Rhythmbox-devel] Questions and ideas about cvs-version X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Jun 2006 07:49:32 -0000 1. How about putting audio-cds above playlists? You have one cd and many playlists so it might disappear way below the playlists. 2. Sometimes Rhythmbox crashes when I insert a audio cd. Anyone else seen that? I can't reproduce it unfortunately... It could be when I insert a cd tha computer has never seen before and tries to look up the metadata.. 3. Is there something special I have to do to get tags on imported mp3s from audio cd? I used a simple "lame bitrate=192" importer and the songs ended up without tags in my library. BR /Ernst From doclivingston@gmail.com Fri Jun 9 06:24:34 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id D07EF3B0121 for ; Fri, 9 Jun 2006 06:24:34 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 14636-02 for ; Fri, 9 Jun 2006 06:24:33 -0400 (EDT) Received: from py-out-1112.google.com (py-out-1112.google.com [64.233.166.176]) by menubar.gnome.org (Postfix) with ESMTP id ECCE13B011C for ; Fri, 9 Jun 2006 06:24:32 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id x31so915208pye for ; Fri, 09 Jun 2006 03:24:31 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:subject:from:reply-to:to:in-reply-to:references:content-type:date:message-id:mime-version:x-mailer:content-transfer-encoding; b=t8WDO/8ZxuJdSmbVy0phqvfgrhfJqoGhqa6OFO8WJ14w+3yPYB2bARaeGq8F0I2ytxlZqf3dvkpZe4E0/dLUGbXT3tgGHzDF2vnexYBU5J2EKM+MUVIj29QTxaaSfwv0wHnYCNeVBDehIqrfemt4c6AgcmGzA9UgJ1G38f5U+1g= Received: by 10.35.61.2 with SMTP id o2mr3769854pyk; Fri, 09 Jun 2006 03:24:31 -0700 (PDT) Received: from alyrion.local ( [144.134.101.96]) by mx.gmail.com with ESMTP id i72sm1590307pye.2006.06.09.03.24.30; Fri, 09 Jun 2006 03:24:31 -0700 (PDT) Subject: Re: [Rhythmbox-devel] No-burner support From: "James \"Doc\" Livingston" To: rhythmbox-devel@gnome.org In-Reply-To: <44885158.2060302@tevp.net> References: <4488270C.9040000@tevp.net> <20060608160929.GH4522@aracnet.com> <44885158.2060302@tevp.net> Content-Type: text/plain; charset=UTF-8 Date: Fri, 09 Jun 2006 20:24:26 +1000 Message-Id: <1149848666.5823.22.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.521 tagged_above=-999 required=2 tests=[AWL=0.079, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.521 X-Spam-Level: X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: doclivingston@gmail.com List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Jun 2006 10:24:35 -0000 On Thu, 2006-06-08 at 18:33 +0200, Tom Parker wrote: > That would require being able to add/remove items from the menus in the > code as opposed to my current approach of editing the ui XML files at > compile time. Doing it at runtime (via GtkUIManager) would probably be easier than it was to write the script to mangle it at compile time :) > Another thought: Could CD burning become a plugin? Crazy idea, but that > would allow for both disabling it entirely and as the plugin mechanism > already needs a way to add/remove menu or popup items, it might just work... Making it an on-by-default plugin is probably a much cleaner way of doing it. The burn-related code is fairly detached from the rest of the code, so it shouldn't be too hard to do. soruces/rb-playlist-source-recorder.{c,h}, player/rb-recorder.h and player/rb-recorder-gst.c would become part of the plugin. rb_playlist_source_burn_playlist() and the UI bits from shell/rb-playlist-manager.c would become part of the plugin. The only real issue is that cd-burning isn't the only thing that uses libnautilusburn, audio cd support currently uses it too. On Thu, 2006-06-08 at 23:57 +0700, Nguyá»…n Thái Ngá»c Duy wrote: > For me, it's because of nautilus-burn dependency. This is exactly the reason I had done something similar to this (but even more hacky) last week. The only difference was that I was trying to build RB on Windows, and AFAIK libnautilusburn doesn't work there. For anyone who is interesting in how much work a Windows port would be, most of RB's hard dependencies either have official win32 binaries or are trivial to compile. The ones that aren't: gstreamer: supported on win32, but I wouldn't call it trivial to compile on any system. Hopefully the official win32 packages will turn up soon. totem-plparser: compiles with a few small fixes, I'm cleaning them up to submit upstream. Note, this is just totem-plparser not all of totem, that would need more work. libnautilusburn: didn't look easy to fix, and IIRC 2.15 depends on HAl which would make it harder. Cheers, James "Doc" Livingston -- Computer games don't affect kids. I mean, if Pacman affected us as kids, we'd all be running around in darkened rooms, munching pills and listening to repetitive music. -- Stolen from Marcus Brigstocke. From doclivingston@gmail.com Fri Jun 9 06:40:52 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 16C243B011C for ; Fri, 9 Jun 2006 06:40:52 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 15925-06 for ; Fri, 9 Jun 2006 06:40:49 -0400 (EDT) Received: from py-out-1112.google.com (py-out-1112.google.com [64.233.166.183]) by menubar.gnome.org (Postfix) with ESMTP id 0F6233B041B for ; Fri, 9 Jun 2006 06:40:48 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id f28so321666pyf for ; Fri, 09 Jun 2006 03:40:48 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:subject:from:reply-to:to:in-reply-to:references:content-type:date:message-id:mime-version:x-mailer:content-transfer-encoding; b=LLfFG5U6vm80SULTvX64v7/UVY/ORoeJXkK+CkW1dxCrTvjRuwKApxRpaXA/g+IisiNviyhoUPwXyxkEj3jF+fK5hJPDV3Sr8TCE4+gQMtRzgHnyk6vN4ZkspiKDSSp1cLFB9TD/3GnkcTRRJIIHu65n1T5hnXX5w4LuQWAePIc= Received: by 10.35.103.12 with SMTP id f12mr3786124pym; Fri, 09 Jun 2006 03:40:48 -0700 (PDT) Received: from alyrion.local ( [144.134.101.96]) by mx.gmail.com with ESMTP id f19sm2264522pyf.2006.06.09.03.40.46; Fri, 09 Jun 2006 03:40:47 -0700 (PDT) Subject: Re: [Rhythmbox-devel] Problem downloading some podcasts From: "James \"Doc\" Livingston" To: rhythmbox-devel@gnome.org In-Reply-To: <1149791550.5194.16.camel@localhost.localdomain> References: <1149791550.5194.16.camel@localhost.localdomain> Content-Type: text/plain; charset=UTF-8 Date: Fri, 09 Jun 2006 20:40:42 +1000 Message-Id: <1149849642.5823.30.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.523 tagged_above=-999 required=2 tests=[AWL=0.077, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.523 X-Spam-Level: X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: doclivingston@gmail.com List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Jun 2006 10:40:52 -0000 On Thu, 2006-06-08 at 20:32 +0200, Miguel Lahoz García wrote: > I have observed, in all the podcast with this problem, that the url for > the files uses some kind of redirection, for example: > > http://www.podtrac.com/pts/redirect.mp3?http://media.libsyn.com/media/eslpod/ESLPod171.mp3 > > The url is valid, the file can be downloaded with wget. There are two bugs related to this: Bug 321991: we don't support 302 redirects http://bugzilla.gnome.org/show_bug.cgi?id=321991 Bug 322985: the double slash (//) gets converted into a single one http://bugzilla.gnome.org/show_bug.cgi?id=322985 We know about them, and have some ideas for fixing them, but they haven't been fixed yet. Cheers, James "Doc" Livingston -- Imagine if every Thursday your shoes exploded if you tied them the usual way. This happens to us all the time with computers, and nobody thinks of complaining. -- Jeff Raskin From alexl@users.sourceforge.net Fri Jun 9 06:52:59 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 72A333B05AE for ; Fri, 9 Jun 2006 06:52:59 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 16468-07 for ; Fri, 9 Jun 2006 06:52:58 -0400 (EDT) Received: from allele2.biol.berkeley.edu (allele2.Biol.Berkeley.EDU [128.32.118.82]) by menubar.gnome.org (Postfix) with ESMTP id 06B1C3B02C8 for ; Fri, 9 Jun 2006 06:52:57 -0400 (EDT) Received: from allele2.biol.berkeley.edu (localhost.localdomain [127.0.0.1]) by allele2.biol.berkeley.edu (8.13.6/8.12.11) with ESMTP id k59AqvlW004687 for ; Fri, 9 Jun 2006 03:52:57 -0700 Received: (from alex@localhost) by allele2.biol.berkeley.edu (8.13.6/8.13.4/Submit) id k59Aqued004686; Fri, 9 Jun 2006 03:52:56 -0700 X-Authentication-Warning: allele2.biol.berkeley.edu: alex set sender to alexl@users.sourceforge.net using -f To: rhythmbox-devel@gnome.org References: <8e2e399f0606090049s7c66d7b0v5b198db77587a69b@mail.gmail.com> From: Alex Lancaster Organization: Sourceforge Date: Fri, 09 Jun 2006 03:52:56 -0700 In-Reply-To: <8e2e399f0606090049s7c66d7b0v5b198db77587a69b@mail.gmail.com> (Ernst Persson's message of "Fri, 9 Jun 2006 09:49:29 +0200") Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.589 tagged_above=-999 required=2 tests=[AWL=0.010, BAYES_00=-2.599] X-Spam-Score: -2.589 X-Spam-Level: Subject: [Rhythmbox-devel] Re: Questions and ideas about cvs-version X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Jun 2006 10:52:59 -0000 >>>>> "EP" == Ernst Persson writes: EP> 1. How about putting audio-cds above playlists? You have one cd EP> and many playlists so it might disappear way below the playlists. EP> 2. Sometimes Rhythmbox crashes when I insert a audio cd. Anyone EP> else seen that? I can't reproduce it unfortunately... It could be EP> when I insert a cd tha computer has never seen before and tries to EP> look up the metadata.. EP> 3. Is there something special I have to do to get tags on imported EP> mp3s from audio cd? I used a simple "lame bitrate=192" importer EP> and the songs ended up without tags in my library. Yes, tag writing support was removed from the lame element in recent gstreamer versions, your new gstreamer pipeline (set in gnome-audio-profiles-properties) needs to include the libid3tag-based "id3mux" plugin and should look something like this (I use variable bitrate encoding): audio/x-raw-int,rate=44100,channels=2 ! lame name=enc vbr=4 preset=1001 ! xingmux ! id3mux Recent gstreamers contain the new (and better) taglib-based "id3v2mux" plugin (you will need to have taglib installed for this to work): audio/x-raw-int,rate=44100,channels=2 ! lame name=enc vbr=4 preset=1001 ! xingmux ! id3v2mux The "xingmux" plugin is only necessary if you are using variable bit-rate encoding and writes the correct duration information. xingmux may not work with the id3mux plugin, but should work with id3v2mux. With a simple constant bitrate setting you can use: audio/x-raw-int,rate=44100,channels=2 ! lame name=enc bitrate=192 ! id3mux or audio/x-raw-int,rate=44100,channels=2 ! lame name=enc bitrate=192 ! id3v2mux Alex From alexl@users.sourceforge.net Fri Jun 9 06:59:30 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 94DAC3B107D for ; Fri, 9 Jun 2006 06:59:30 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 17174-07 for ; Fri, 9 Jun 2006 06:59:29 -0400 (EDT) Received: from allele2.biol.berkeley.edu (allele2.Biol.Berkeley.EDU [128.32.118.82]) by menubar.gnome.org (Postfix) with ESMTP id 07C6B3B0FDF for ; Fri, 9 Jun 2006 06:59:28 -0400 (EDT) Received: from allele2.biol.berkeley.edu (localhost.localdomain [127.0.0.1]) by allele2.biol.berkeley.edu (8.13.6/8.12.11) with ESMTP id k59AxS9E004718 for ; Fri, 9 Jun 2006 03:59:28 -0700 Received: (from alex@localhost) by allele2.biol.berkeley.edu (8.13.6/8.13.4/Submit) id k59AxShb004717; Fri, 9 Jun 2006 03:59:28 -0700 X-Authentication-Warning: allele2.biol.berkeley.edu: alex set sender to alexl@users.sourceforge.net using -f To: rhythmbox-devel@gnome.org References: <1149791550.5194.16.camel@localhost.localdomain> From: Alex Lancaster Organization: Sourceforge Date: Fri, 09 Jun 2006 03:59:28 -0700 In-Reply-To: <1149791550.5194.16.camel@localhost.localdomain> (Miguel Lahoz =?iso-8859-1?Q?Garc=EDa's?= message of "Thu, 08 Jun 2006 20:32:30 +0200") Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.59 tagged_above=-999 required=2 tests=[AWL=0.009, BAYES_00=-2.599] X-Spam-Score: -2.59 X-Spam-Level: Subject: [Rhythmbox-devel] podcast URLs with redirection don't work (was Re: Problem downloading some podcasts) X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Jun 2006 10:59:30 -0000 >>>>> "MLG" =3D=3D Miguel Lahoz Garc=EDa writes: MLG> Hi, I'm using Rhythmbox 0.9.3.1 (Ubuntu Dapper) and I can't MLG> download episodes from some podcasts, for example: MLG> http://feeds.feedburner.com/EnglishAsASecondLanguagePodcast MLG> This podcast works fine with other podcast clients, like gPodder MLG> and iTunes. I have observed, in all the podcast with this MLG> problem, that the url for the files uses some kind of MLG> redirection, for example: MLG> http://www.podtrac.com/pts/redirect.mp3?http://media.libsyn.com/media/= eslpod/ESLPod171.mp3 MLG> The url is valid, the file can be downloaded with wget. MLG> Any idea about how to solve it? Do you think it could be a bug? Yep, failing to handle redirects is a known bug (and still present in CVS HEAD): http://bugs.gnome.org/321991 There is a discussion there about how it might be solved. Alex From pclouds@gmail.com Fri Jun 9 12:11:17 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 3D1723B024A for ; Fri, 9 Jun 2006 12:11:17 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 05208-08 for ; Fri, 9 Jun 2006 12:11:16 -0400 (EDT) Received: from wx-out-0102.google.com (wx-out-0102.google.com [66.249.82.199]) by menubar.gnome.org (Postfix) with ESMTP id C15173B0112 for ; Fri, 9 Jun 2006 12:11:15 -0400 (EDT) Received: by wx-out-0102.google.com with SMTP id i30so660520wxd for ; Fri, 09 Jun 2006 09:11:15 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=fiXwL01QMlSgsQMFZnW1UR3wH/E4B0pHpy5GfZzbphLbS4km+rElWVqZjXFRjNf9Z3mCQPygQ7xaV2PGcysI5h6PEil5WZmKXyPrvDm+sCa8P+deq7ThvbtmZMhFObbKtSDRM3h5kEStwALFTrUB2BucHXnTRfyn20cL+OoBMf4= Received: by 10.70.25.1 with SMTP id 1mr1240312wxy; Fri, 09 Jun 2006 09:11:14 -0700 (PDT) Received: by 10.70.45.11 with HTTP; Fri, 9 Jun 2006 09:11:14 -0700 (PDT) Message-ID: Date: Fri, 9 Jun 2006 23:11:14 +0700 From: "=?UTF-8?Q?Nguy=E1=BB=85n_Th=C3=A1i_Ng=E1=BB=8Dc_Duy?=" To: doclivingston@gmail.com Subject: Re: [Rhythmbox-devel] No-burner support In-Reply-To: <1149848666.5823.22.camel@localhost.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 Content-Disposition: inline References: <4488270C.9040000@tevp.net> <20060608160929.GH4522@aracnet.com> <44885158.2060302@tevp.net> <1149848666.5823.22.camel@localhost.localdomain> X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.356 tagged_above=-999 required=2 tests=[AWL=0.020, BAYES_00=-2.599, MIME_BASE64_NO_NAME=0.224, SPF_PASS=-0.001] X-Spam-Score: -2.356 X-Spam-Level: Cc: rhythmbox-devel@gnome.org X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Jun 2006 16:11:17 -0000 T24gNi85LzA2LCBKYW1lcyBEb2MgTGl2aW5nc3RvbiA8ZG9jbGl2aW5nc3RvbkBnbWFpbC5jb20+ IHdyb3RlOgo+IFRoaXMgaXMgZXhhY3RseSB0aGUgcmVhc29uIEkgaGFkIGRvbmUgc29tZXRoaW5n IHNpbWlsYXIgdG8gdGhpcyAoYnV0Cj4gZXZlbiBtb3JlIGhhY2t5KSBsYXN0IHdlZWsuIFRoZSBv bmx5IGRpZmZlcmVuY2Ugd2FzIHRoYXQgSSB3YXMgdHJ5aW5nIHRvCj4gYnVpbGQgUkIgb24gV2lu ZG93cywgYW5kIEFGQUlLIGxpYm5hdXRpbHVzYnVybiBkb2Vzbid0IHdvcmsgdGhlcmUuCldlbGws IDEuMCByZWxlYXNlIHdpdGggV2luZG93cyBzdXBwb3J0IHdvdWxkIGJlIGdyZWF0IDopCgo+IHRv dGVtLXBscGFyc2VyOiBjb21waWxlcyB3aXRoIGEgZmV3IHNtYWxsIGZpeGVzLCBJJ20gY2xlYW5p bmcgdGhlbSB1cCB0bwo+IHN1Ym1pdCB1cHN0cmVhbS4gTm90ZSwgdGhpcyBpcyBqdXN0IHRvdGVt LXBscGFyc2VyIG5vdCBhbGwgb2YgdG90ZW0sCj4gdGhhdCB3b3VsZCBuZWVkIG1vcmUgd29yay4K U28gYW55IGNoYW5jZSB0b3RlbS1wbHBhcnNlciBjb3VsZCBiZSBhIHNlcGFyYXRlIHBhY2thZ2Ug ZnJvbSB0b3RlbT8KLS0gCkJpIEPhu50gTGFvCg== From hadess@hadess.net Fri Jun 9 18:36:52 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 2D1923B0354 for ; Fri, 9 Jun 2006 18:36:52 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 25315-06 for ; Fri, 9 Jun 2006 18:36:49 -0400 (EDT) Received: from lucifer.nerdfest.org (lucifer.nerdfest.org [216.243.209.218]) by menubar.gnome.org (Postfix) with ESMTP id 9E7C43B02CE for ; Fri, 9 Jun 2006 18:36:48 -0400 (EDT) Received: from [192.168.1.5] (cpc4-glfd1-0-0-cust751.glfd.cable.ntl.com [86.16.126.240]) (authenticated bits=0) by lucifer.nerdfest.org (8.13.1/8.13.1) with ESMTP id k59Macoe025504 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NO); Fri, 9 Jun 2006 17:36:43 -0500 Subject: Re: [Rhythmbox-devel] No-burner support From: Bastien Nocera To: =?UTF-8?Q?Nguy=E1=BB=85n_Th=C3=A1i_Ng=E1=BB=8Dc?= Duy In-Reply-To: References: <4488270C.9040000@tevp.net> <20060608160929.GH4522@aracnet.com> <44885158.2060302@tevp.net> <1149848666.5823.22.camel@localhost.localdomain> Content-Type: text/plain; charset=UTF-8 Date: Fri, 09 Jun 2006 23:36:45 +0100 Message-Id: <1149892606.27385.0.camel@wyatt.hadess.net> Mime-Version: 1.0 X-Mailer: Evolution 2.5.90 (2.5.90-2.1) Content-Transfer-Encoding: 8bit X-Virus-Scanned: ClamAV 0.88.2/1523/Fri Jun 9 02:10:10 2006 on lucifer.nerdfest.org X-Virus-Status: Clean X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.594 tagged_above=-999 required=2 tests=[AWL=0.006, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.594 X-Spam-Level: Cc: rhythmbox-devel@gnome.org X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Jun 2006 22:36:52 -0000 On Fri, 2006-06-09 at 23:11 +0700, Nguyá»…n Thái Ngá»c Duy wrote: > On 6/9/06, James Doc Livingston wrote: > > totem-plparser: compiles with a few small fixes, I'm cleaning them up to > > submit upstream. Note, this is just totem-plparser not all of totem, > > that would need more work. > So any chance totem-plparser could be a separate package from totem? Nope. Get your packager to be clever ;) -- Bastien Nocera From drberg1000@gmail.com Sat Jun 10 09:55:53 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 40FAB3B0285 for ; Sat, 10 Jun 2006 09:55:53 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 06510-02 for ; Sat, 10 Jun 2006 09:55:48 -0400 (EDT) Received: from py-out-1112.google.com (py-out-1112.google.com [64.233.166.179]) by menubar.gnome.org (Postfix) with ESMTP id 5CF1A3B01CB for ; Sat, 10 Jun 2006 09:55:46 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id c39so1094269pyd for ; Sat, 10 Jun 2006 06:55:45 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=IllSXjeb3XXpQyxieezFrty5ctVkGv8bImhimj+lldbcKPxnP6NZeuk8ll0J8gzmncfk9DxHm8yKyFv6GyDp3Kt4K72UC6C3GNZx7nSOF9+4dV/VYuq0ztExwjitr3VdBh2CTSA+4O2EvWbplLmskoVdILlCX+48WhjHvHp/eg4= Received: by 10.35.37.18 with SMTP id p18mr4398208pyj; Sat, 10 Jun 2006 06:55:45 -0700 (PDT) Received: by 10.35.82.13 with HTTP; Sat, 10 Jun 2006 06:55:45 -0700 (PDT) Message-ID: Date: Sat, 10 Jun 2006 08:55:45 -0500 From: "David Berg" To: rhythmbox-devel@gnome.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.434 tagged_above=-999 required=2 tests=[AWL=0.166, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.434 X-Spam-Level: Subject: [Rhythmbox-devel] Frozen after Resuming from Hibernate X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 10 Jun 2006 13:55:53 -0000 On my desktop Rhythmbox is frozen after my system hibernates. I have to kill and restart it to get things playing again. It does work fine on my laptop though so I know its a hardware related issue (both systems are running an up to date ubuntu dapper). Where should I go about looking to narrow down where the problem is? --Dave From jon@oberheide.org Sun Jun 11 03:29:40 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 39C683B00AF for ; Sun, 11 Jun 2006 03:29:40 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 14208-10 for ; Sun, 11 Jun 2006 03:29:39 -0400 (EDT) Received: from rwcrmhc11.comcast.net (rwcrmhc11.comcast.net [204.127.192.81]) by menubar.gnome.org (Postfix) with ESMTP id 04C0F3B0018 for ; Sun, 11 Jun 2006 03:29:38 -0400 (EDT) Received: from [192.168.0.194] (c-69-137-219-218.hsd1.mi.comcast.net[69.137.219.218]) by comcast.net (rwcrmhc11) with SMTP id <20060611072850m1100hb56oe>; Sun, 11 Jun 2006 07:28:54 +0000 From: Jon Oberheide To: gaim-devel@lists.sourceforge.net, rhythmbox-devel@gnome.org Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-0QN0cp8B1hH2hq9I3BSb" Date: Sun, 11 Jun 2006 03:28:48 -0400 Message-Id: <1150010929.16530.4.camel@localhost> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.599 tagged_above=-999 required=2 tests=[BAYES_00=-2.599] X-Spam-Score: -2.599 X-Spam-Level: Cc: Subject: [Rhythmbox-devel] [ANNOUNCE] gaim-rhythmbox 2.0beta X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Jun 2006 07:29:40 -0000 --=-0QN0cp8B1hH2hq9I3BSb Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Gaim-Rhythmbox has been ported to work with Gaim 2.0.0 and Rhythmbox 0.9. http://gaim-rhythmbox.sourceforge.net Regards, Jon Oberheide --=20 Jon Oberheide GnuPG Key: 1024D/F47C17FE Fingerprint: B716 DA66 8173 6EDD 28F6 F184 5842 1C89 F47C 17FE --=-0QN0cp8B1hH2hq9I3BSb Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.3 (GNU/Linux) iD8DBQBEi8YwWEIcifR8F/4RAgPGAKCooRBdiA/d8B04O4mmo0lh1OZkjwCfZ7l7 TAIx9z+aywhnDaTL6NUNz5c= =ThVJ -----END PGP SIGNATURE----- --=-0QN0cp8B1hH2hq9I3BSb-- From doclivingston@gmail.com Sun Jun 11 06:43:15 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 478F83B00D3 for ; Sun, 11 Jun 2006 06:43:15 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 04975-06 for ; Sun, 11 Jun 2006 06:43:12 -0400 (EDT) Received: from py-out-1112.google.com (py-out-1112.google.com [64.233.166.178]) by menubar.gnome.org (Postfix) with ESMTP id C42B43B0109 for ; Sun, 11 Jun 2006 06:43:11 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id c39so1245653pyd for ; Sun, 11 Jun 2006 03:42:24 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:subject:from:reply-to:to:in-reply-to:references:content-type:date:message-id:mime-version:x-mailer:content-transfer-encoding; b=aXN8Or/1V1Xb8zalhExbvKoV8gNKFTU82oO23UFSBsTa2gfyik4BCz8UqFCjnkW2uqcag62ENoNJ7iyRXXcVTgtypz4tGZwcb01Wr0zWjivEXPB0dSPtoogNIp8nvQPmV2aIFC33cF3Hl1MNc7yYaQSdF4WaB7WBwzXKV/cgCJ0= Received: by 10.35.50.5 with SMTP id c5mr207808pyk; Sun, 11 Jun 2006 03:42:24 -0700 (PDT) Received: from alyrion.local ( [144.134.102.75]) by mx.gmail.com with ESMTP id t70sm1906875pyg.2006.06.11.03.42.20; Sun, 11 Jun 2006 03:42:24 -0700 (PDT) Subject: Re: [Rhythmbox-devel] queue bar From: "James \"Doc\" Livingston" To: rhythmbox-devel@gnome.org In-Reply-To: <1149627601.17960.4.camel@localhost.localdomain> References: <1149627601.17960.4.camel@localhost.localdomain> Content-Type: text/plain Date: Sun, 11 Jun 2006 20:42:13 +1000 Message-Id: <1150022534.5205.15.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.525 tagged_above=-999 required=2 tests=[AWL=0.075, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.525 X-Spam-Level: X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: doclivingston@gmail.com List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Jun 2006 10:43:15 -0000 On Tue, 2006-06-06 at 16:00 -0500, Pat Voce wrote: > I was so happy to see the new queue bar! However, I noticed that songs > "disappear" after being played. This is by design, as the use-case is basically "I want to play this song/these songs next". > As this is a wonderful way to create and edit playlists on the fly, > would future versions have this capability, a'la (ducking) amarok? The biggest issue with this idea is that there isn't a lot of room in the sidebar, and even less if you're using the cover art plugin. I haven't looked at how amaroK handles it yet (I haven't played around with that part of it). I had an (extreme-crack) idea the other week which may help this - I thought that we might be able to turn the sidebar into an editable toolbar. You could then add a second sidebar on the right and put the queue there, and leave the sources and cover art on the left. Or put the cover art in the "header" toolbar. I haven't started any work towards it, it's probably full of horrible HIG violations, and may not even work. But it would be cool. > Quite stable, possibly some icecast2 interaction would make this a > no-brainer for internet streaming. There is a patch sitting in bugzilla which reads the icecast directory, http://bugzilla.gnome.org/show_bug.cgi?id=127794. I've been meaning to update it, so that it's a plugin and adds a new "Icecast" source. But I haven't gotten around to doing that yet. Cheers, James "Doc" Livingston -- PUBLIC NOTICE AS REQUIRED BY LAW: Any Use of This Product, in Any Manner Whatsoever, Will Increase the Amount of Disorder in the Universe. Although No Liability Is Implied Herein, the Consumer Is Warned That This Process Will Ultimately Lead to the Heat Death of the Universe. From doclivingston@gmail.com Sun Jun 11 07:30:25 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 113B13B063F for ; Sun, 11 Jun 2006 07:30:25 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 06592-06 for ; Sun, 11 Jun 2006 07:30:23 -0400 (EDT) Received: from py-out-1112.google.com (py-out-1112.google.com [64.233.166.181]) by menubar.gnome.org (Postfix) with ESMTP id 6550E3B0635 for ; Sun, 11 Jun 2006 07:30:23 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id c39so1251367pyd for ; Sun, 11 Jun 2006 04:29:40 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:subject:from:reply-to:to:in-reply-to:references:content-type:date:message-id:mime-version:x-mailer:content-transfer-encoding; b=qkH3DkvBP023DHM5+sb63Qrt5pQ4DDmsgTQC0j2OjYlsYPj/uHrMzgh/XlMaYgdc31t9mnFaPJUEe7o1kCgqmDhGxmnydDmaSPg7zCGCXgVnLgSG7AEkRzU4cPevyqPZxsjQn/SsnUYffJYHkCQ+JJoO0CPfdrk8VqKAr/0e4TM= Received: by 10.35.21.1 with SMTP id y1mr2382221pyi; Sun, 11 Jun 2006 04:29:40 -0700 (PDT) Received: from alyrion.local ( [144.134.102.75]) by mx.gmail.com with ESMTP id b52sm1362479pyb.2006.06.11.04.29.33; Sun, 11 Jun 2006 04:29:40 -0700 (PDT) Subject: Re: [Rhythmbox-devel] Frozen after Resuming from Hibernate From: "James \"Doc\" Livingston" To: rhythmbox-devel@gnome.org In-Reply-To: References: Content-Type: text/plain Date: Sun, 11 Jun 2006 21:29:26 +1000 Message-Id: <1150025366.5205.19.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.527 tagged_above=-999 required=2 tests=[AWL=0.073, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.527 X-Spam-Level: X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: doclivingston@gmail.com List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Jun 2006 11:30:25 -0000 On Sat, 2006-06-10 at 08:55 -0500, David Berg wrote: > On my desktop Rhythmbox is frozen after my system hibernates. I have > to kill and restart it to get things playing again. It does work fine > on my laptop though so I know its a hardware related issue (both > systems are running an up to date ubuntu dapper). Where should I go > about looking to narrow down where the problem is? The most useful information would be a backtrace of where it has hung. Running "gdb --pid=$(pidof rhythmbox)", entering "thread apply all bt" and attaching the output. Cheers, James "Doc" Livingston -- I think I've finally worked out why the Irish drink Guinness. It's to lubricate their throat so they can speak their own language. -- David P. From lool+gnome@via.ecp.fr Sun Jun 11 07:46:19 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id C4B3E3B00EC for ; Sun, 11 Jun 2006 07:46:19 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 07703-02 for ; Sun, 11 Jun 2006 07:46:16 -0400 (EDT) Received: from mx0.bpl-group.org (mx0.bpl-group.org [195.115.71.69]) by menubar.gnome.org (Postfix) with ESMTP id 257483B00D8 for ; Sun, 11 Jun 2006 07:46:15 -0400 (EDT) Received: from bee.dooz.org (levallois.dooz.org [81.57.180.178]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "lminier.people.bpl-group.org", Issuer "BPL Group People Certification Authority" (verified OK)) by mx0.bpl-group.org (Postfix) with ESMTP id 55E0DC2F2 for ; Sun, 11 Jun 2006 13:45:39 +0200 (CEST) Received: by bee.dooz.org (Postfix, from userid 1000) id 8AB181D8018; Sun, 11 Jun 2006 13:45:37 +0200 (CEST) Date: Sun, 11 Jun 2006 13:45:37 +0200 From: =?iso-8859-1?Q?Lo=EFc?= Minier To: rhythmbox-devel@gnome.org Subject: Re: [Rhythmbox-devel] Upcoming 0.9.5 release Message-ID: <20060611114537.GE22477@bee.dooz.org> Mail-Followup-To: rhythmbox-devel@gnome.org References: <1149607572.5396.19.camel@localhost.localdomain> <20060608063510.GA14129@bee.dooz.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20060608063510.GA14129@bee.dooz.org> X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.581 tagged_above=-999 required=2 tests=[AWL=0.018, BAYES_00=-2.599] X-Spam-Score: -2.581 X-Spam-Level: X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Jun 2006 11:46:19 -0000 On Thu, Jun 08, 2006, Loïc Minier wrote: > The dbus python samples remote/dbus/rb-print-playing.py, and > remote/dbus/rb-set-rating.py don't end up in the tarball, presumably > because there's no Makefile.am in remote/. This seems fixed in CVS, thanks. -- Loïc Minier From drberg1000@gmail.com Sun Jun 11 10:19:50 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 081D33B0139 for ; Sun, 11 Jun 2006 10:19:50 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 13640-06 for ; Sun, 11 Jun 2006 10:19:47 -0400 (EDT) Received: from py-out-1112.google.com (py-out-1112.google.com [64.233.166.183]) by menubar.gnome.org (Postfix) with ESMTP id 0E1713B00B1 for ; Sun, 11 Jun 2006 10:19:46 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id c39so1276238pyd for ; Sun, 11 Jun 2006 07:17:52 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=gZBcKOlZMTd3Bh32ttC8DBMmXgpk8AL5j/AtrAPw+/Lea0tFs1WQxED2bN+SDaE1GTwnlgN029JJdsVcHLm8zyHIxvGRn3j95kcVV/Wwpzuhzq5uRZEQS2c+Q/Y3Twyvy5EuHZcfIfxM7OdPcNLBVgyKuIcIQI14WtFTuW0KxRQ= Received: by 10.35.84.12 with SMTP id m12mr5797171pyl; Sun, 11 Jun 2006 07:17:52 -0700 (PDT) Received: by 10.35.82.13 with HTTP; Sun, 11 Jun 2006 07:17:52 -0700 (PDT) Message-ID: Date: Sun, 11 Jun 2006 09:17:52 -0500 From: "David Berg" To: doclivingston@gmail.com Subject: Re: [Rhythmbox-devel] Frozen after Resuming from Hibernate In-Reply-To: <1150025366.5205.19.camel@localhost.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <1150025366.5205.19.camel@localhost.localdomain> X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.372 tagged_above=-999 required=2 tests=[AWL=0.151, BAYES_00=-2.599, SPF_PASS=-0.001, TW_DB=0.077] X-Spam-Score: -2.372 X-Spam-Level: Cc: rhythmbox-devel@gnome.org X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Jun 2006 14:19:50 -0000 On 6/11/06, James Doc Livingston wrote: > On Sat, 2006-06-10 at 08:55 -0500, David Berg wrote: > > On my desktop Rhythmbox is frozen after my system hibernates. I have > > to kill and restart it to get things playing again. It does work fine > > on my laptop though so I know its a hardware related issue (both > > systems are running an up to date ubuntu dapper). Where should I go > > about looking to narrow down where the problem is? > > The most useful information would be a backtrace of where it has hung. > Running "gdb --pid=$(pidof rhythmbox)", entering "thread apply all bt" > and attaching the output. I attached a typescript logging this process: Start rhythmbox Hibernate Try to play a song Run gdb and ask for backtrace kill rhythmbox exit gdb Also of interest might be that I am running Ubuntu LTS (Dapper Drake) which installs rhythmbox version: 0.9.3.1-0ubuntu9. I also installed the rhythmbox-dbg package of the same version. Hope this helps. > > > Cheers, > > James "Doc" Livingston > -- > I think I've finally worked out why the Irish drink Guinness. It's to > lubricate their throat so they can speak their own language. -- David P. > > _______________________________________________ > rhythmbox-devel mailing list > rhythmbox-devel@gnome.org > http://mail.gnome.org/mailman/listinfo/rhythmbox-devel > From d2xdt2@gmail.com Sun Jun 11 11:39:51 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id F11D33B0125 for ; Sun, 11 Jun 2006 11:39:50 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 16636-04 for ; Sun, 11 Jun 2006 11:39:47 -0400 (EDT) Received: from py-out-1112.google.com (py-out-1112.google.com [64.233.166.182]) by menubar.gnome.org (Postfix) with ESMTP id 662D43B00D3 for ; Sun, 11 Jun 2006 11:39:47 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id c39so1287904pyd for ; Sun, 11 Jun 2006 08:38:20 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=sqHQEFOsl9twYpl+hu8jsffMME8engHKYiL16SXp7DYCTVbKWNDqVkGGamuPXx2296sDrvOkNFg/PYqhr0y3gssk6Lw7iMZ+W5kvX2DtbAqvB+bF19JtG+oJ9lw3t2QAGLMpC1dv8+kQcxdw1M+xHRzQEsTyYJuCA9DJoQ03kw0= Received: by 10.35.106.15 with SMTP id i15mr453807pym; Sun, 11 Jun 2006 08:12:13 -0700 (PDT) Received: by 10.35.102.19 with HTTP; Sun, 11 Jun 2006 08:12:13 -0700 (PDT) Message-ID: Date: Sun, 11 Jun 2006 17:12:13 +0200 From: "Martin Jeppesen" To: "Alex Lancaster" Subject: Re: [Rhythmbox-devel] Re: Is this a bug? ./configure.in: No such file or directory In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <1149739076.5192.10.camel@localhost.localdomain> X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.505 tagged_above=-999 required=2 tests=[AWL=0.095, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.505 X-Spam-Level: Cc: rhythmbox-devel@gnome.org X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Jun 2006 15:39:51 -0000 > What version of gnome-common do you have? Do you have the latest > gnome-common from CVS as detailed in autogen.sh? > > "You need to install gnome-common from the GNOME CVS" > > It could be your version of gnome-autogen.sh Thanks, that was it =) I had gnome-common-2.12.0-2.fc5 installed, and that was apparently not enough =) From d2xdt2@gmail.com Sun Jun 11 12:15:49 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id BC7B73B008B for ; Sun, 11 Jun 2006 12:15:49 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 17598-09 for ; Sun, 11 Jun 2006 12:15:47 -0400 (EDT) Received: from py-out-1112.google.com (py-out-1112.google.com [64.233.166.182]) by menubar.gnome.org (Postfix) with ESMTP id B46FC3B00A7 for ; Sun, 11 Jun 2006 12:15:47 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id c39so1292962pyd for ; Sun, 11 Jun 2006 09:14:38 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=tGI3TI/yKrOrjCzI9STbyTLvWlMLyF5qjA9tmw1ozkebX2OClUFiU3wtjhR/rTKtbpWBJJ/sMYM2M8rTejhen3PpyJcf7+KA2tf/7UIqIJdCi6eMZlZLv95cDHmHuyiEQ5W2H1j2nVkalRONu9eseU5F6lEwFqLeF2uvG9JEkZI= Received: by 10.35.129.19 with SMTP id g19mr5846051pyn; Sun, 11 Jun 2006 08:46:45 -0700 (PDT) Received: by 10.35.102.19 with HTTP; Sun, 11 Jun 2006 08:46:45 -0700 (PDT) Message-ID: Date: Sun, 11 Jun 2006 17:46:45 +0200 From: "Martin Jeppesen" To: "Rhythmbox-devel list" MIME-Version: 1.0 Content-Type: text/plain; charset=WINDOWS-1252; format=flowed Content-Transfer-Encoding: quoted-printable Content-Disposition: inline X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.505 tagged_above=-999 required=2 tests=[AWL=0.095, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.505 X-Spam-Level: Subject: [Rhythmbox-devel] Bug 335812 still in CVS X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Jun 2006 16:15:49 -0000 Hi, Can Bug 335812 =96 HIG: Vertical space between Search, All, Artists, Albums, Titles buttons and browser http://bugzilla.gnome.org/show_bug.cgi?id=3D335812 be reopened? The bug is still in the latest cvs. I have attached these 2 screenshots to the bug, where the problems can be s= een. http://bugzilla.gnome.org/attachment.cgi?id=3D67133 http://bugzilla.gnome.org/attachment.cgi?id=3D67132 From khadgaray@gmail.com Sun Jun 11 12:32:40 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id CB1803B00A1 for ; Sun, 11 Jun 2006 12:32:40 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 19683-05 for ; Sun, 11 Jun 2006 12:32:39 -0400 (EDT) Received: from nf-out-0910.google.com (nf-out-0910.google.com [64.233.182.191]) by menubar.gnome.org (Postfix) with ESMTP id 43F933B00D3 for ; Sun, 11 Jun 2006 12:32:39 -0400 (EDT) Received: by nf-out-0910.google.com with SMTP id h2so772664nfe for ; Sun, 11 Jun 2006 09:31:58 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:subject:from:to:cc:in-reply-to:references:content-type:date:message-id:mime-version:x-mailer:content-transfer-encoding; b=nyouS8UlFCs3xlHqIutMjD4z685avqw/FISYzvBKFtftg3sjcWLT14n1ZkYbUcwoe0+HozY+vf1bEETh7NuTCK2+YxTmCxYmPHSk5wZg088PO8/plxOiPEcJUlmwpS5YcZLgDgOjM07uMf1dBo0482g029QWHRd2SCs2ae4sB88= Received: by 10.49.54.16 with SMTP id g16mr4105921nfk; Sun, 11 Jun 2006 09:25:53 -0700 (PDT) Received: from rkhadgar.pnq.redhat.com ( [202.41.228.162]) by mx.gmail.com with ESMTP id a23sm5588075nfc.2006.06.11.09.25.51; Sun, 11 Jun 2006 09:25:52 -0700 (PDT) Subject: Re: [Rhythmbox-devel] Questions and ideas about cvs-version From: Ritesh Khadgaray To: Ernst Persson In-Reply-To: <8e2e399f0606090049s7c66d7b0v5b198db77587a69b@mail.gmail.com> References: <8e2e399f0606090049s7c66d7b0v5b198db77587a69b@mail.gmail.com> Content-Type: text/plain Date: Sun, 11 Jun 2006 21:55:47 +0530 Message-Id: <1150043148.11581.25.camel@rkhadgar.pnq.redhat.com> Mime-Version: 1.0 X-Mailer: Evolution 2.0.2 (2.0.2-27) Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-0.943 tagged_above=-999 required=2 tests=[AWL=-0.773, BAYES_00=-2.599, RCVD_IN_WHOIS_BOGONS=2.43, SPF_PASS=-0.001] X-Spam-Score: -0.943 X-Spam-Level: Cc: Rhythmbox-devel list X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Jun 2006 16:32:41 -0000 On Fri, 2006-06-09 at 09:49 +0200, Ernst Persson wrote: > 1. How about putting audio-cds above playlists? You have one cd and > many playlists so it might disappear way below the playlists. > how about adding playlist as child as in banshee. http://banshee-project.org/Image:0_11_0_library.png -- Ritesh Khadgaray LinuX N Stuff Ph: +919923010121 Eat Right, Exercise, Die Anyway. From drberg1000@gmail.com Sun Jun 11 19:12:11 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 0A9D83B06B9 for ; Sun, 11 Jun 2006 19:12:11 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 07715-10 for ; Sun, 11 Jun 2006 19:12:10 -0400 (EDT) Received: from py-out-1112.google.com (py-out-1112.google.com [64.233.166.182]) by menubar.gnome.org (Postfix) with ESMTP id 8A0AD3B0373 for ; Sun, 11 Jun 2006 19:12:09 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id c39so1345129pyd for ; Sun, 11 Jun 2006 16:11:12 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:references; b=OhGHKO5Or3vD4vqUpzKmYJVlcxEOe/AEog4wbRspVO9AvZnkaBt+CNMbEvVcV38KE/WqtbE8sRPWMvge3eslXuH9NvicdBrYqiKoakuctRtIztjrYnTf6F6aoCXpzEajNgud5glBSXKvBe5YDhEDlwv+a5EPc6ZWCNH7baYFRfk= Received: by 10.35.103.12 with SMTP id f12mr3184401pym; Sun, 11 Jun 2006 16:11:12 -0700 (PDT) Received: by 10.35.82.13 with HTTP; Sun, 11 Jun 2006 16:11:12 -0700 (PDT) Message-ID: Date: Sun, 11 Jun 2006 18:11:12 -0500 From: "David Berg" To: doclivingston@gmail.com Subject: Re: [Rhythmbox-devel] Frozen after Resuming from Hibernate In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_212_26356666.1150067472138" References: <1150025366.5205.19.camel@localhost.localdomain> X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-1.602 tagged_above=-999 required=2 tests=[AWL=-0.637, BAYES_00=-2.599, RCVD_IN_BL_SPAMCOP_NET=1.558, SPF_PASS=-0.001, TW_DB=0.077] X-Spam-Score: -1.602 X-Spam-Level: Cc: rhythmbox-devel@gnome.org X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Jun 2006 23:12:11 -0000 ------=_Part_212_26356666.1150067472138 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sorry, forgot the attachment. Here it is. --Dave On 6/11/06, David Berg wrote: > On 6/11/06, James Doc Livingston wrote: > > On Sat, 2006-06-10 at 08:55 -0500, David Berg wrote: > > > On my desktop Rhythmbox is frozen after my system hibernates. I have > > > to kill and restart it to get things playing again. It does work fine > > > on my laptop though so I know its a hardware related issue (both > > > systems are running an up to date ubuntu dapper). Where should I go > > > about looking to narrow down where the problem is? > > > > The most useful information would be a backtrace of where it has hung. > > Running "gdb --pid=$(pidof rhythmbox)", entering "thread apply all bt" > > and attaching the output. > > I attached a typescript logging this process: > > Start rhythmbox > Hibernate > Try to play a song > Run gdb and ask for backtrace > kill rhythmbox > exit gdb > > Also of interest might be that I am running Ubuntu LTS (Dapper Drake) > which installs rhythmbox version: 0.9.3.1-0ubuntu9. I also installed > the rhythmbox-dbg package of the > same version. > > Hope this helps. > > > > > > > Cheers, > > > > James "Doc" Livingston > > -- > > I think I've finally worked out why the Irish drink Guinness. It's to > > lubricate their throat so they can speak their own language. -- David P. > > > > _______________________________________________ > > rhythmbox-devel mailing list > > rhythmbox-devel@gnome.org > > http://mail.gnome.org/mailman/listinfo/rhythmbox-devel > > > ------=_Part_212_26356666.1150067472138 Content-Type: application/octet-stream; name="typescript" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="typescript" X-Attachment-Id: f_eoc0g3ui U2NyaXB0IHN0YXJ0ZWQgb24gU3VuIDExIEp1biAyMDA2IDA5OjA0OjAwIENEVApkYmVyZ0BkYWxl On4kIHJoeXRobWJveCAmDQpbMV0gMTExNjENCmRiZXJnQGRhbGU6fiQgDQooPHVua25vd24+OjEx MTYxKTogR2RrLVdBUk5JTkcgKio6IGxvY2FsZSBub3Qgc3VwcG9ydGVkIGJ5IFhsaWINCg0KKDx1 bmtub3duPjoxMTE2MSk6IEdkay1XQVJOSU5HICoqOiBjYW5ub3Qgc2V0IGxvY2FsZSBtb2RpZmll cnMNCg0KKHJoeXRobWJveDoxMTE2MSk6IFJoeXRobWJveC1XQVJOSU5HICoqOiBVbmFibGUgdG8g c3RhcnQgbUROUyBicm93c2luZw0KDQpkYmVyZ0BkYWxlOn4kIGdkYiAtLXBpZD0xMTEyNQgICAgI CAgICAgICAgIDWRiZXJnQGRhbGU6fiQgZ2RiIC0tcGlkPTExMTI1CBtbSwgbW0sHNgcxDQpHTlUg Z2RiIDYuNC1kZWJpYW4NCkNvcHlyaWdodCAyMDA1IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLg0KR0RCIGlzIGZyZWUgc29mdHdhcmUsIGNvdmVyZWQgYnkgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlLCBhbmQgeW91IGFyZQ0Kd2VsY29tZSB0byBjaGFuZ2UgaXQgYW5kL29yIGRp c3RyaWJ1dGUgY29waWVzIG9mIGl0IHVuZGVyIGNlcnRhaW4gY29uZGl0aW9ucy4NClR5cGUgInNo b3cgY29weWluZyIgdG8gc2VlIHRoZSBjb25kaXRpb25zLg0KVGhlcmUgaXMgYWJzb2x1dGVseSBu byB3YXJyYW50eSBmb3IgR0RCLiAgVHlwZSAic2hvdyB3YXJyYW50eSIgZm9yIGRldGFpbHMuDQpU aGlzIEdEQiB3YXMgY29uZmlndXJlZCBhcyAiaTQ4Ni1saW51eC1nbnUiLg0KQXR0YWNoaW5nIHRv IHByb2Nlc3MgMTExNjENClJlYWRpbmcgc3ltYm9scyBmcm9tIC91c3IvYmluL3JoeXRobWJveC4u LlJlYWRpbmcgc3ltYm9scyBmcm9tIC91c3IvbGliL2RlYnVnL3Vzci9iaW4vcmh5dGhtYm94Li4u ZG9uZS4NClVzaW5nIGhvc3QgbGlidGhyZWFkX2RiIGxpYnJhcnkgIi9saWIvdGxzL2k2ODYvY21v di9saWJ0aHJlYWRfZGIuc28uMSIuDQpkb25lLg0KUmVhZGluZyBzeW1ib2xzIGZyb20gL3Vzci9s aWIvbGlidG90ZW0tcGxwYXJzZXIuc28uMS4uLmRvbmUuDQpMb2FkZWQgc3ltYm9scyBmb3IgL3Vz ci9saWIvbGlidG90ZW0tcGxwYXJzZXIuc28uMQ0KUmVhZGluZyBzeW1ib2xzIGZyb20gL3Vzci9s aWIvbGliaGFsLnNvLjEuLi5kb25lLg0KTG9hZGVkIHN5bWJvbHMgZm9yIC91c3IvbGliL2xpYmhh bC5zby4xDQpSZWFkaW5nIHN5bWJvbHMgZnJvbSAvdXNyL2xpYi9saWJuYXV0aWx1cy1idXJuLnNv LjMuLi5kb25lLg0KTG9hZGVkIHN5bWJvbHMgZm9yIC91c3IvbGliL2xpYm5hdXRpbHVzLWJ1cm4u c28uMw0KUmVhZGluZyBzeW1ib2xzIGZyb20gL3Vzci9saWIvbGliZ25vbWV1aS0yLnNvLjAuLi5k b25lLg0KTG9hZGVkIHN5bWJvbHMgZm9yIC91c3IvbGliL2xpYmdub21ldWktMi5zby4wDQpSZWFk aW5nIHN5bWJvbHMgZnJvbSAvdXNyL2xpYi9saWJqcGVnLnNvLjYyLi4uZG9uZS4NCkxvYWRlZCBz eW1ib2xzIGZvciAvdXNyL2xpYi9saWJqcGVnLnNvLjYyDQpSZWFkaW5nIHN5bWJvbHMgZnJvbSAv dXNyL2xpYi9saWJib25vYm91aS0yLnNvLjAuLi5kb25lLg0KTG9hZGVkIHN5bWJvbHMgZm9yIC91 c3IvbGliL2xpYmJvbm9ib3VpLTIuc28uMA0KUmVhZGluZyBzeW1ib2xzIGZyb20gL3Vzci9saWIv bGliU00uc28uNi4uLmRvbmUuDQpMb2FkZWQgc3ltYm9scyBmb3IgL3Vzci9saWIvbGliU00uc28u Ng0KUmVhZGluZyBzeW1ib2xzIGZyb20gL3Vzci9saWIvbGliSUNFLnNvLjYuLi5kb25lLg0KTG9h ZGVkIHN5bWJvbHMgZm9yIC91c3IvbGliL2xpYklDRS5zby42DQpSZWFkaW5nIHN5bWJvbHMgZnJv bSAvdXNyL2xpYi9saWJnbm9tZS1rZXlyaW5nLnNvLjAuLi5kb25lLg0KTG9hZGVkIHN5bWJvbHMg Zm9yIC91c3IvbGliL2xpYmdub21lLWtleXJpbmcuc28uMA0KUmVhZGluZyBzeW1ib2xzIGZyb20g L3Vzci9saWIvbGliZ25vbWVjYW52YXMtMi5zby4wLi4uZG9uZS4NCkxvYWRlZCBzeW1ib2xzIGZv ciAvdXNyL2xpYi9saWJnbm9tZWNhbnZhcy0yLnNvLjANClJlYWRpbmcgc3ltYm9scyBmcm9tIC91 c3IvbGliL2xpYmdub21lLTIuc28uMC4uLmRvbmUuDQpMb2FkZWQgc3ltYm9scyBmb3IgL3Vzci9s aWIvbGliZ25vbWUtMi5zby4wDQpSZWFkaW5nIHN5bWJvbHMgZnJvbSAvdXNyL2xpYi9saWJlc2Qu c28uMC4uLmRvbmUuDQpMb2FkZWQgc3ltYm9scyBmb3IgL3Vzci9saWIvbGliZXNkLnNvLjANClJl YWRpbmcgc3ltYm9scyBmcm9tIC91c3IvbGliL2xpYmF1ZGlvZmlsZS5zby4wLi4uZG9uZS4NCkxv YWRlZCBzeW1ib2xzIGZvciAvdXNyL2xpYi9saWJhdWRpb2ZpbGUuc28uMA0KUmVhZGluZyBzeW1i b2xzIGZyb20gL3Vzci9saWIvbGliYXJ0X2xncGxfMi5zby4yLi4uZG9uZS4NCkxvYWRlZCBzeW1i b2xzIGZvciAvdXNyL2xpYi9saWJhcnRfbGdwbF8yLnNvLjINClJlYWRpbmcgc3ltYm9scyBmcm9t IC91c3IvbGliL2xpYmdsYWRlLTIuMC5zby4wLi4uZG9uZS4NCkxvYWRlZCBzeW1ib2xzIGZvciAv dXNyL2xpYi9saWJnbGFkZS0yLjAuc28uMA0KUmVhZGluZyBzeW1ib2xzIGZyb20gL3Vzci9saWIv bGlibGF1bmNocGFkLWludGVncmF0aW9uLnNvLjAuLi5kb25lLg0KTG9hZGVkIHN5bWJvbHMgZm9y IC91c3IvbGliL2xpYmxhdW5jaHBhZC1pbnRlZ3JhdGlvbi5zby4wDQpSZWFkaW5nIHN5bWJvbHMg ZnJvbSAvdXNyL2xpYi9saWJwYW5nb2Z0Mi0xLjAuc28uMC4uLmRvbmUuDQpMb2FkZWQgc3ltYm9s cyBmb3IgL3Vzci9saWIvbGlicGFuZ29mdDItMS4wLnNvLjANClJlYWRpbmcgc3ltYm9scyBmcm9t IC91c3IvbGliL2xpYnBuZzEyLnNvLjAuLi5kb25lLg0KTG9hZGVkIHN5bWJvbHMgZm9yIC91c3Iv bGliL2xpYnBuZzEyLnNvLjANClJlYWRpbmcgc3ltYm9scyBmcm9tIC91c3IvbGliL2xpYmZyZWV0 eXBlLnNvLjYuLi5kb25lLg0KTG9hZGVkIHN5bWJvbHMgZm9yIC91c3IvbGliL2xpYmZyZWV0eXBl LnNvLjYNClJlYWRpbmcgc3ltYm9scyBmcm9tIC91c3IvbGliL2xpYmdub21ldmZzLTIuc28uMC4u LmRvbmUuDQpMb2FkZWQgc3ltYm9scyBmb3IgL3Vzci9saWIvbGliZ25vbWV2ZnMtMi5zby4wDQpS ZWFkaW5nIHN5bWJvbHMgZnJvbSAvdXNyL2xpYi9saWJ0YXNuMS5zby4yLi4uZG9uZS4NCkxvYWRl ZCBzeW1ib2xzIGZvciAvdXNyL2xpYi9saWJ0YXNuMS5zby4yDQpSZWFkaW5nIHN5bWJvbHMgZnJv bSAvdXNyL2xpYi9saWJnY3J5cHQuc28uMTEuLi5kb25lLg0KTG9hZGVkIHN5bWJvbHMgZm9yIC91 c3IvbGliL2xpYmdjcnlwdC5zby4xMQ0KUmVhZGluZyBzeW1ib2xzIGZyb20gL2xpYi90bHMvaTY4 Ni9jbW92L2xpYm5zbC5zby4xLi4uZG9uZS4NCkxvYWRlZCBzeW1ib2xzIGZvciAvbGliL3Rscy9p Njg2L2Ntb3YvbGlibnNsLnNvLjENClJlYWRpbmcgc3ltYm9scyBmcm9tIC91c3IvbGliL2xpYmdw Zy1lcnJvci5zby4wLi4uZG9uZS4NCkxvYWRlZCBzeW1ib2xzIGZvciAvdXNyL2xpYi9saWJncGct ZXJyb3Iuc28uMA0KUmVhZGluZyBzeW1ib2xzIGZyb20gL2xpYi90bHMvaTY4Ni9jbW92L2xpYnJl c29sdi5zby4yLi4uZG9uZS4NCkxvYWRlZCBzeW1ib2xzIGZvciAvbGliL3Rscy9pNjg2L2Ntb3Yv bGlicmVzb2x2LnNvLjINClJlYWRpbmcgc3ltYm9scyBmcm9tIC9saWIvdGxzL2k2ODYvY21vdi9s aWJ1dGlsLnNvLjEuLi5kb25lLg0KTG9hZGVkIHN5bWJvbHMgZm9yIC9saWIvdGxzL2k2ODYvY21v di9saWJ1dGlsLnNvLjENClJlYWRpbmcgc3ltYm9scyBmcm9tIC91c3IvbGliL2xpYmdjb25mLTIu c28uNC4uLmRvbmUuDQpMb2FkZWQgc3ltYm9scyBmb3IgL3Vzci9saWIvbGliZ2NvbmYtMi5zby40 DQpSZWFkaW5nIHN5bWJvbHMgZnJvbSAvdXNyL2xpYi9saWJnc3RiYXNlLTAuMTAuc28uMC4uLmRv bmUuDQpMb2FkZWQgc3ltYm9scyBmb3IgL3Vzci9saWIvbGliZ3N0YmFzZS0wLjEwLnNvLjANClJl YWRpbmcgc3ltYm9scyBmcm9tIC91c3IvbGliL2xpYmdzdHJlYW1lci0wLjEwLnNvLjAuLi5kb25l Lg0KTG9hZGVkIHN5bWJvbHMgZm9yIC91c3IvbGliL2xpYmdzdHJlYW1lci0wLjEwLnNvLjANClJl YWRpbmcgc3ltYm9scyBmcm9tIC91c3IvbGliL2xpYm11c2ljYnJhaW56LnNvLjQuLi5kb25lLg0K TG9hZGVkIHN5bWJvbHMgZm9yIC91c3IvbGliL2xpYm11c2ljYnJhaW56LnNvLjQNClJlYWRpbmcg c3ltYm9scyBmcm9tIC91c3IvbGliL2xpYmV4cGF0LnNvLjEuLi5kb25lLg0KTG9hZGVkIHN5bWJv bHMgZm9yIC91c3IvbGliL2xpYmV4cGF0LnNvLjENClJlYWRpbmcgc3ltYm9scyBmcm9tIC91c3Iv bGliL2xpYmJvbm9iby0yLnNvLjAuLi5kb25lLg0KTG9hZGVkIHN5bWJvbHMgZm9yIC91c3IvbGli L2xpYmJvbm9iby0yLnNvLjANClJlYWRpbmcgc3ltYm9scyBmcm9tIC91c3IvbGliL2xpYmJvbm9i by1hY3RpdmF0aW9uLnNvLjQuLi5kb25lLg0KTG9hZGVkIHN5bWJvbHMgZm9yIC91c3IvbGliL2xp YmJvbm9iby1hY3RpdmF0aW9uLnNvLjQNClJlYWRpbmcgc3ltYm9scyBmcm9tIC91c3IvbGliL2xp Yk9SQml0Q29zTmFtaW5nLTIuc28uMC4uLmRvbmUuDQpMb2FkZWQgc3ltYm9scyBmb3IgL3Vzci9s aWIvbGliT1JCaXRDb3NOYW1pbmctMi5zby4wDQpSZWFkaW5nIHN5bWJvbHMgZnJvbSAvdXNyL2xp Yi9saWJPUkJpdC0yLnNvLjAuLi5kb25lLg0KTG9hZGVkIHN5bWJvbHMgZm9yIC91c3IvbGliL2xp Yk9SQml0LTIuc28uMA0KUmVhZGluZyBzeW1ib2xzIGZyb20gL2xpYi9saWJwb3B0LnNvLjAuLi5k b25lLg0KTG9hZGVkIHN5bWJvbHMgZm9yIC9saWIvbGlicG9wdC5zby4wDQpSZWFkaW5nIHN5bWJv bHMgZnJvbSAvdXNyL2xpYi9saWJndGhyZWFkLTIuMC5zby4wLi4uZG9uZS4NCkxvYWRlZCBzeW1i b2xzIGZvciAvdXNyL2xpYi9saWJndGhyZWFkLTIuMC5zby4wDQpSZWFkaW5nIHN5bWJvbHMgZnJv bSAvbGliL3Rscy9pNjg2L2Ntb3YvbGlicHRocmVhZC5zby4wLi4uZG9uZS4NCltUaHJlYWQgZGVi dWdnaW5nIHVzaW5nIGxpYnRocmVhZF9kYiBlbmFibGVkXQ0KW05ldyBUaHJlYWQgLTEyMjU5NTk3 NDQgKExXUCAxMTE2MSldDQpbTmV3IFRocmVhZCAtMTI3NjkyNTAwOCAoTFdQIDExNDY0KV0NCltO ZXcgVGhyZWFkIC0xMjY4NTMyMzA0IChMV1AgMTE0NjIpXQ0KW05ldyBUaHJlYWQgLTEyNDkwMDI1 NzYgKExXUCAxMTQ2MSldDQpbTmV3IFRocmVhZCAtMTI1ODE4NTgwOCAoTFdQIDExNDYwKV0NCltO ZXcgVGhyZWFkIC0xMjQ4MjI0MzM2IChMV1AgMTExNjQpXQ0KW05ldyBUaHJlYWQgLTEyMzk4MzE2 MzIgKExXUCAxMTE2MyldDQpMb2FkZWQgc3ltYm9scyBmb3IgL2xpYi90bHMvaTY4Ni9jbW92L2xp YnB0aHJlYWQuc28uMA0KUmVhZGluZyBzeW1ib2xzIGZyb20gL3Vzci9saWIvbGliZ3BvZC5zby4w Li4uZG9uZS4NCkxvYWRlZCBzeW1ib2xzIGZvciAvdXNyL2xpYi9saWJncG9kLnNvLjANClJlYWRp bmcgc3ltYm9scyBmcm9tIC91c3IvbGliL2xpYmF2YWhpLWNvbW1vbi5zby4zLi4uZG9uZS4NCkxv YWRlZCBzeW1ib2xzIGZvciAvdXNyL2xpYi9saWJhdmFoaS1jb21tb24uc28uMw0KUmVhZGluZyBz eW1ib2xzIGZyb20gL3Vzci9saWIvbGliYXZhaGktY2xpZW50LnNvLjMuLi5kb25lLg0KTG9hZGVk IHN5bWJvbHMgZm9yIC91c3IvbGliL2xpYmF2YWhpLWNsaWVudC5zby4zDQpSZWFkaW5nIHN5bWJv bHMgZnJvbSAvdXNyL2xpYi9saWJhdmFoaS1nbGliLnNvLjEuLi5kb25lLg0KTG9hZGVkIHN5bWJv bHMgZm9yIC91c3IvbGliL2xpYmF2YWhpLWdsaWIuc28uMQ0KUmVhZGluZyBzeW1ib2xzIGZyb20g L3Vzci9saWIvbGlic291cC0yLjIuc28uOC4uLmRvbmUuDQpMb2FkZWQgc3ltYm9scyBmb3IgL3Vz ci9saWIvbGlic291cC0yLjIuc28uOA0KUmVhZGluZyBzeW1ib2xzIGZyb20gL3Vzci9saWIvbGli Z251dGxzLnNvLjEyLi4uZG9uZS4NCkxvYWRlZCBzeW1ib2xzIGZvciAvdXNyL2xpYi9saWJnbnV0 bHMuc28uMTINClJlYWRpbmcgc3ltYm9scyBmcm9tIC91c3IvbGliL2xpYnhtbDIuc28uMi4uLmRv bmUuDQpMb2FkZWQgc3ltYm9scyBmb3IgL3Vzci9saWIvbGlieG1sMi5zby4yDQpSZWFkaW5nIHN5 bWJvbHMgZnJvbSAvdXNyL2xpYi9saWJub3RpZnkuc28uMS4uLmRvbmUuDQpMb2FkZWQgc3ltYm9s cyBmb3IgL3Vzci9saWIvbGlibm90aWZ5LnNvLjENClJlYWRpbmcgc3ltYm9scyBmcm9tIC91c3Iv bGliL2xpYmd0ay14MTEtMi4wLnNvLjAuLi5kb25lLg0KTG9hZGVkIHN5bWJvbHMgZm9yIC91c3Iv bGliL2xpYmd0ay14MTEtMi4wLnNvLjANClJlYWRpbmcgc3ltYm9scyBmcm9tIC91c3IvbGliL2xp Ymdkay14MTEtMi4wLnNvLjAuLi5kb25lLg0KTG9hZGVkIHN5bWJvbHMgZm9yIC91c3IvbGliL2xp Ymdkay14MTEtMi4wLnNvLjANClJlYWRpbmcgc3ltYm9scyBmcm9tIC91c3IvbGliL2xpYmF0ay0x LjAuc28uMC4uLmRvbmUuDQpMb2FkZWQgc3ltYm9scyBmb3IgL3Vzci9saWIvbGliYXRrLTEuMC5z by4wDQpSZWFkaW5nIHN5bWJvbHMgZnJvbSAvdXNyL2xpYi9saWJnZGtfcGl4YnVmLTIuMC5zby4w Li4uZG9uZS4NCkxvYWRlZCBzeW1ib2xzIGZvciAvdXNyL2xpYi9saWJnZGtfcGl4YnVmLTIuMC5z by4wDQpSZWFkaW5nIHN5bWJvbHMgZnJvbSAvbGliL3Rscy9pNjg2L2Ntb3YvbGlibS5zby42Li4u ZG9uZS4NCkxvYWRlZCBzeW1ib2xzIGZvciAvbGliL3Rscy9pNjg2L2Ntb3YvbGlibS5zby42DQpS ZWFkaW5nIHN5bWJvbHMgZnJvbSAvdXNyL2xpYi9saWJwYW5nb2NhaXJvLTEuMC5zby4wLi4uZG9u ZS4NCkxvYWRlZCBzeW1ib2xzIGZvciAvdXNyL2xpYi9saWJwYW5nb2NhaXJvLTEuMC5zby4wDQpS ZWFkaW5nIHN5bWJvbHMgZnJvbSAvdXNyL2xpYi9saWJmb250Y29uZmlnLnNvLjEuLi5kb25lLg0K TG9hZGVkIHN5bWJvbHMgZm9yIC91c3IvbGliL2xpYmZvbnRjb25maWcuc28uMQ0KUmVhZGluZyBz eW1ib2xzIGZyb20gL3Vzci9saWIvbGliWGV4dC5zby42Li4uZG9uZS4NCkxvYWRlZCBzeW1ib2xz IGZvciAvdXNyL2xpYi9saWJYZXh0LnNvLjYNClJlYWRpbmcgc3ltYm9scyBmcm9tIC91c3IvbGli L2xpYlhyZW5kZXIuc28uMS4uLmRvbmUuDQpMb2FkZWQgc3ltYm9scyBmb3IgL3Vzci9saWIvbGli WHJlbmRlci5zby4xDQpSZWFkaW5nIHN5bWJvbHMgZnJvbSAvdXNyL2xpYi9saWJYaW5lcmFtYS5z by4xLi4uZG9uZS4NCkxvYWRlZCBzeW1ib2xzIGZvciAvdXNyL2xpYi9saWJYaW5lcmFtYS5zby4x DQpSZWFkaW5nIHN5bWJvbHMgZnJvbSAvdXNyL2xpYi9saWJYaS5zby42Li4uZG9uZS4NCkxvYWRl ZCBzeW1ib2xzIGZvciAvdXNyL2xpYi9saWJYaS5zby42DQpSZWFkaW5nIHN5bWJvbHMgZnJvbSAv dXNyL2xpYi9saWJYcmFuZHIuc28uMi4uLmRvbmUuDQpMb2FkZWQgc3ltYm9scyBmb3IgL3Vzci9s aWIvbGliWHJhbmRyLnNvLjINClJlYWRpbmcgc3ltYm9scyBmcm9tIC91c3IvbGliL2xpYlhjdXJz b3Iuc28uMS4uLmRvbmUuDQpMb2FkZWQgc3ltYm9scyBmb3IgL3Vzci9saWIvbGliWGN1cnNvci5z by4xDQpSZWFkaW5nIHN5bWJvbHMgZnJvbSAvdXNyL2xpYi9saWJYZml4ZXMuc28uMy4uLmRvbmUu DQpMb2FkZWQgc3ltYm9scyBmb3IgL3Vzci9saWIvbGliWGZpeGVzLnNvLjMNClJlYWRpbmcgc3lt Ym9scyBmcm9tIC91c3IvbGliL2xpYnBhbmdvLTEuMC5zby4wLi4uZG9uZS4NCkxvYWRlZCBzeW1i b2xzIGZvciAvdXNyL2xpYi9saWJwYW5nby0xLjAuc28uMA0KUmVhZGluZyBzeW1ib2xzIGZyb20g L3Vzci9saWIvbGliY2Fpcm8uc28uMi4uLmRvbmUuDQpMb2FkZWQgc3ltYm9scyBmb3IgL3Vzci9s aWIvbGliY2Fpcm8uc28uMg0KUmVhZGluZyBzeW1ib2xzIGZyb20gL3Vzci9saWIvbGliWDExLnNv LjYuLi5kb25lLg0KTG9hZGVkIHN5bWJvbHMgZm9yIC91c3IvbGliL2xpYlgxMS5zby42DQpSZWFk aW5nIHN5bWJvbHMgZnJvbSAvdXNyL2xpYi9saWJnb2JqZWN0LTIuMC5zby4wLi4uZG9uZS4NCkxv YWRlZCBzeW1ib2xzIGZvciAvdXNyL2xpYi9saWJnb2JqZWN0LTIuMC5zby4wDQpSZWFkaW5nIHN5 bWJvbHMgZnJvbSAvdXNyL2xpYi9saWJnbW9kdWxlLTIuMC5zby4wLi4uZG9uZS4NCkxvYWRlZCBz eW1ib2xzIGZvciAvdXNyL2xpYi9saWJnbW9kdWxlLTIuMC5zby4wDQpSZWFkaW5nIHN5bWJvbHMg ZnJvbSAvbGliL3Rscy9pNjg2L2Ntb3YvbGliZGwuc28uMi4uLmRvbmUuDQpMb2FkZWQgc3ltYm9s cyBmb3IgL2xpYi90bHMvaTY4Ni9jbW92L2xpYmRsLnNvLjINClJlYWRpbmcgc3ltYm9scyBmcm9t IC91c3IvbGliL2xpYmRidXMtZ2xpYi0xLnNvLjIuLi5kb25lLg0KTG9hZGVkIHN5bWJvbHMgZm9y IC91c3IvbGliL2xpYmRidXMtZ2xpYi0xLnNvLjINClJlYWRpbmcgc3ltYm9scyBmcm9tIC91c3Iv bGliL2xpYmRidXMtMS5zby4yLi4uZG9uZS4NCkxvYWRlZCBzeW1ib2xzIGZvciAvdXNyL2xpYi9s aWJkYnVzLTEuc28uMg0KUmVhZGluZyBzeW1ib2xzIGZyb20gL3Vzci9saWIvbGliZ2xpYi0yLjAu c28uMC4uLmRvbmUuDQpMb2FkZWQgc3ltYm9scyBmb3IgL3Vzci9saWIvbGliZ2xpYi0yLjAuc28u MA0KUmVhZGluZyBzeW1ib2xzIGZyb20gL3Vzci9saWIvbGliei5zby4xLi4uZG9uZS4NCkxvYWRl ZCBzeW1ib2xzIGZvciAvdXNyL2xpYi9saWJ6LnNvLjENClJlYWRpbmcgc3ltYm9scyBmcm9tIC9s aWIvdGxzL2k2ODYvY21vdi9saWJjLnNvLjYuLi5kb25lLg0KTG9hZGVkIHN5bWJvbHMgZm9yIC9s aWIvdGxzL2k2ODYvY21vdi9saWJjLnNvLjYNClJlYWRpbmcgc3ltYm9scyBmcm9tIC91c3IvbGli L2xpYmFzb3VuZC5zby4yLi4uZG9uZS4NCkxvYWRlZCBzeW1ib2xzIGZvciAvdXNyL2xpYi9saWJh c291bmQuc28uMg0KUmVhZGluZyBzeW1ib2xzIGZyb20gL3Vzci9saWIvbGlic3RkYysrLnNvLjYu Li5kb25lLg0KTG9hZGVkIHN5bWJvbHMgZm9yIC91c3IvbGliL2xpYnN0ZGMrKy5zby42DQpSZWFk aW5nIHN5bWJvbHMgZnJvbSAvbGliL2xpYmdjY19zLnNvLjEuLi5kb25lLg0KTG9hZGVkIHN5bWJv bHMgZm9yIC9saWIvbGliZ2NjX3Muc28uMQ0KUmVhZGluZyBzeW1ib2xzIGZyb20gL2xpYi9sZC1s aW51eC5zby4yLi4uZG9uZS4NCkxvYWRlZCBzeW1ib2xzIGZvciAvbGliL2xkLWxpbnV4LnNvLjIN ClJlYWRpbmcgc3ltYm9scyBmcm9tIC91c3IvbGliL2xpYlhhdS5zby42Li4uZG9uZS4NCkxvYWRl ZCBzeW1ib2xzIGZvciAvdXNyL2xpYi9saWJYYXUuc28uNg0KUmVhZGluZyBzeW1ib2xzIGZyb20g L2xpYi90bHMvaTY4Ni9jbW92L2xpYm5zc19jb21wYXQuc28uMi4uLmRvbmUuDQpMb2FkZWQgc3lt Ym9scyBmb3IgL2xpYi90bHMvaTY4Ni9jbW92L2xpYm5zc19jb21wYXQuc28uMg0KUmVhZGluZyBz eW1ib2xzIGZyb20gL2xpYi90bHMvaTY4Ni9jbW92L2xpYm5zc19uaXMuc28uMi4uLmRvbmUuDQpM b2FkZWQgc3ltYm9scyBmb3IgL2xpYi90bHMvaTY4Ni9jbW92L2xpYm5zc19uaXMuc28uMg0KUmVh ZGluZyBzeW1ib2xzIGZyb20gL2xpYi90bHMvaTY4Ni9jbW92L2xpYm5zc19maWxlcy5zby4yLi4u ZG9uZS4NCkxvYWRlZCBzeW1ib2xzIGZvciAvbGliL3Rscy9pNjg2L2Ntb3YvbGlibnNzX2ZpbGVz LnNvLjINClJlYWRpbmcgc3ltYm9scyBmcm9tIC91c3IvbGliL2djb252L0lTTzg4NTktMS5zby4u LmRvbmUuDQpMb2FkZWQgc3ltYm9scyBmb3IgL3Vzci9saWIvZ2NvbnYvSVNPODg1OS0xLnNvDQpS ZWFkaW5nIHN5bWJvbHMgZnJvbSAvdXNyL2xpYi9ndGstMi4wLzIuNC4wL2VuZ2luZXMvbGlidWJ1 bnR1bG9va3Muc28uLi5kb25lLg0KTG9hZGVkIHN5bWJvbHMgZm9yIC91c3IvbGliL2d0ay0yLjAv Mi40LjAvZW5naW5lcy9saWJ1YnVudHVsb29rcy5zbw0KUmVhZGluZyBzeW1ib2xzIGZyb20gL3Vz ci9saWIvZ3RrLTIuMC8yLjQuMC9sb2FkZXJzL2xpYnBpeGJ1ZmxvYWRlci1wbmcuc28uLi5kb25l Lg0KTG9hZGVkIHN5bWJvbHMgZm9yIC91c3IvbGliL2d0ay0yLjAvMi40LjAvbG9hZGVycy9saWJw aXhidWZsb2FkZXItcG5nLnNvDQpSZWFkaW5nIHN5bWJvbHMgZnJvbSAvdXNyL2xpYi9wYW5nby8x LjUuMC9tb2R1bGVzL3BhbmdvLWJhc2ljLWZjLnNvLi4uZG9uZS4NCkxvYWRlZCBzeW1ib2xzIGZv ciAvdXNyL2xpYi9wYW5nby8xLjUuMC9tb2R1bGVzL3BhbmdvLWJhc2ljLWZjLnNvDQpSZWFkaW5n IHN5bWJvbHMgZnJvbSAvdXNyL2xpYi9nbm9tZS12ZnMtMi4wL21vZHVsZXMvbGliZmlsZS5zby4u LmRvbmUuDQpMb2FkZWQgc3ltYm9scyBmb3IgL3Vzci9saWIvZ25vbWUtdmZzLTIuMC9tb2R1bGVz L2xpYmZpbGUuc28NClJlYWRpbmcgc3ltYm9scyBmcm9tIC91c3IvbGliL2xpYmZhbS5zby4wLi4u ZG9uZS4NCkxvYWRlZCBzeW1ib2xzIGZvciAvdXNyL2xpYi9saWJmYW0uc28uMA0KUmVhZGluZyBz eW1ib2xzIGZyb20gL3Vzci9saWIvbGliZ2xhZGUvMi4wL2xpYmdub21lLnNvLi4uZG9uZS4NCkxv YWRlZCBzeW1ib2xzIGZvciAvdXNyL2xpYi9saWJnbGFkZS8yLjAvbGliZ25vbWUuc28NClJlYWRp bmcgc3ltYm9scyBmcm9tIC91c3IvbGliL2xpYmdsYWRlLzIuMC9saWJib25vYm8uc28uLi5kb25l Lg0KTG9hZGVkIHN5bWJvbHMgZm9yIC91c3IvbGliL2xpYmdsYWRlLzIuMC9saWJib25vYm8uc28N ClJlYWRpbmcgc3ltYm9scyBmcm9tIC91c3IvbGliL2dzdHJlYW1lci0wLjEwL2xpYmdzdHBsYXli aW4uc28uLi5kb25lLg0KTG9hZGVkIHN5bWJvbHMgZm9yIC91c3IvbGliL2dzdHJlYW1lci0wLjEw L2xpYmdzdHBsYXliaW4uc28NClJlYWRpbmcgc3ltYm9scyBmcm9tIC91c3IvbGliL2dzdHJlYW1l ci0wLjEwL2xpYmdzdGNvcmVlbGVtZW50cy5zby4uLmRvbmUuDQpMb2FkZWQgc3ltYm9scyBmb3Ig L3Vzci9saWIvZ3N0cmVhbWVyLTAuMTAvbGliZ3N0Y29yZWVsZW1lbnRzLnNvDQpSZWFkaW5nIHN5 bWJvbHMgZnJvbSAvdXNyL2xpYi9nc3RyZWFtZXItMC4xMC9saWJnc3RnY29uZmVsZW1lbnRzLnNv Li4uZG9uZS4NCkxvYWRlZCBzeW1ib2xzIGZvciAvdXNyL2xpYi9nc3RyZWFtZXItMC4xMC9saWJn c3RnY29uZmVsZW1lbnRzLnNvDQpSZWFkaW5nIHN5bWJvbHMgZnJvbSAvdXNyL2xpYi9nc3RyZWFt ZXItMC4xMC9saWJnc3Rnbm9tZXZmcy5zby4uLmRvbmUuDQpMb2FkZWQgc3ltYm9scyBmb3IgL3Vz ci9saWIvZ3N0cmVhbWVyLTAuMTAvbGliZ3N0Z25vbWV2ZnMuc28NClJlYWRpbmcgc3ltYm9scyBm cm9tIC91c3IvbGliL2dub21lLXZmcy0yLjAvbW9kdWxlcy9saWJodHRwLnNvLi4uZG9uZS4NCkxv YWRlZCBzeW1ib2xzIGZvciAvdXNyL2xpYi9nbm9tZS12ZnMtMi4wL21vZHVsZXMvbGliaHR0cC5z bw0KUmVhZGluZyBzeW1ib2xzIGZyb20gL3Vzci9saWIvZ25vbWUtdmZzLTIuMC9tb2R1bGVzL2xp YmZ0cC5zby4uLmRvbmUuDQpMb2FkZWQgc3ltYm9scyBmb3IgL3Vzci9saWIvZ25vbWUtdmZzLTIu MC9tb2R1bGVzL2xpYmZ0cC5zbw0KUmVhZGluZyBzeW1ib2xzIGZyb20gL3Vzci9saWIvZ25vbWUt dmZzLTIuMC9tb2R1bGVzL2xpYnNmdHAuc28uLi5kb25lLg0KTG9hZGVkIHN5bWJvbHMgZm9yIC91 c3IvbGliL2dub21lLXZmcy0yLjAvbW9kdWxlcy9saWJzZnRwLnNvDQpSZWFkaW5nIHN5bWJvbHMg ZnJvbSAvdXNyL2xpYi9nc3RyZWFtZXItMC4xMC9saWJnc3RkZWNvZGViaW4uc28uLi5kb25lLg0K TG9hZGVkIHN5bWJvbHMgZm9yIC91c3IvbGliL2dzdHJlYW1lci0wLjEwL2xpYmdzdGRlY29kZWJp bi5zbw0KUmVhZGluZyBzeW1ib2xzIGZyb20gL3Vzci9saWIvZ3N0cmVhbWVyLTAuMTAvbGliZ3N0 dHlwZWZpbmRmdW5jdGlvbnMuc28uLi5kb25lLg0KTG9hZGVkIHN5bWJvbHMgZm9yIC91c3IvbGli L2dzdHJlYW1lci0wLjEwL2xpYmdzdHR5cGVmaW5kZnVuY3Rpb25zLnNvDQpSZWFkaW5nIHN5bWJv bHMgZnJvbSAvdXNyL2xpYi9nc3RyZWFtZXItMC4xMC9saWJnc3RpZDNkZW11eC5zby4uLmRvbmUu DQpMb2FkZWQgc3ltYm9scyBmb3IgL3Vzci9saWIvZ3N0cmVhbWVyLTAuMTAvbGliZ3N0aWQzZGVt dXguc28NClJlYWRpbmcgc3ltYm9scyBmcm9tIC91c3IvbGliL2xpYmdzdHRhZy0wLjEwLnNvLjAu Li5kb25lLg0KTG9hZGVkIHN5bWJvbHMgZm9yIC91c3IvbGliL2xpYmdzdHRhZy0wLjEwLnNvLjAN ClJlYWRpbmcgc3ltYm9scyBmcm9tIC91c3IvbGliL2dzdHJlYW1lci0wLjEwL2xpYmdzdG1hZC5z by4uLmRvbmUuDQpMb2FkZWQgc3ltYm9scyBmb3IgL3Vzci9saWIvZ3N0cmVhbWVyLTAuMTAvbGli Z3N0bWFkLnNvDQpSZWFkaW5nIHN5bWJvbHMgZnJvbSAvdXNyL2xpYi9saWJtYWQuc28uMC4uLmRv bmUuDQpMb2FkZWQgc3ltYm9scyBmb3IgL3Vzci9saWIvbGlibWFkLnNvLjANClJlYWRpbmcgc3lt Ym9scyBmcm9tIC91c3IvbGliL2xpYmlkM3RhZy5zby4wLi4uZG9uZS4NCkxvYWRlZCBzeW1ib2xz IGZvciAvdXNyL2xpYi9saWJpZDN0YWcuc28uMA0KUmVhZGluZyBzeW1ib2xzIGZyb20gL3Vzci9s aWIvZ3N0cmVhbWVyLTAuMTAvbGliZ3N0YXVkaW9jb252ZXJ0LnNvLi4uZG9uZS4NCkxvYWRlZCBz eW1ib2xzIGZvciAvdXNyL2xpYi9nc3RyZWFtZXItMC4xMC9saWJnc3RhdWRpb2NvbnZlcnQuc28N ClJlYWRpbmcgc3ltYm9scyBmcm9tIC91c3IvbGliL2xpYmdzdGF1ZGlvLTAuMTAuc28uMC4uLmRv bmUuDQpMb2FkZWQgc3ltYm9scyBmb3IgL3Vzci9saWIvbGliZ3N0YXVkaW8tMC4xMC5zby4wDQpS ZWFkaW5nIHN5bWJvbHMgZnJvbSAvdXNyL2xpYi9saWJnc3RpbnRlcmZhY2VzLTAuMTAuc28uMC4u LmRvbmUuDQpMb2FkZWQgc3ltYm9scyBmb3IgL3Vzci9saWIvbGliZ3N0aW50ZXJmYWNlcy0wLjEw LnNvLjANClJlYWRpbmcgc3ltYm9scyBmcm9tIC91c3IvbGliL2dzdHJlYW1lci0wLjEwL2xpYmdz dGF1ZGlvcmVzYW1wbGUuc28uLi5kb25lLg0KTG9hZGVkIHN5bWJvbHMgZm9yIC91c3IvbGliL2dz dHJlYW1lci0wLjEwL2xpYmdzdGF1ZGlvcmVzYW1wbGUuc28NClJlYWRpbmcgc3ltYm9scyBmcm9t IC91c3IvbGliL2xpYm9pbC0wLjMuc28uMC4uLmRvbmUuDQpMb2FkZWQgc3ltYm9scyBmb3IgL3Vz ci9saWIvbGlib2lsLTAuMy5zby4wDQpSZWFkaW5nIHN5bWJvbHMgZnJvbSAvdXNyL2xpYi9nc3Ry ZWFtZXItMC4xMC9saWJnc3R2b2x1bWUuc28uLi5kb25lLg0KTG9hZGVkIHN5bWJvbHMgZm9yIC91 c3IvbGliL2dzdHJlYW1lci0wLjEwL2xpYmdzdHZvbHVtZS5zbw0KUmVhZGluZyBzeW1ib2xzIGZy b20gL3Vzci9saWIvbGliZ3N0Y29udHJvbGxlci0wLjEwLnNvLjAuLi5kb25lLg0KTG9hZGVkIHN5 bWJvbHMgZm9yIC91c3IvbGliL2xpYmdzdGNvbnRyb2xsZXItMC4xMC5zby4wDQpSZWFkaW5nIHN5 bWJvbHMgZnJvbSAvdXNyL2xpYi9nc3RyZWFtZXItMC4xMC9saWJnc3RhdXRvZGV0ZWN0LnNvLi4u ZG9uZS4NCkxvYWRlZCBzeW1ib2xzIGZvciAvdXNyL2xpYi9nc3RyZWFtZXItMC4xMC9saWJnc3Rh dXRvZGV0ZWN0LnNvDQpSZWFkaW5nIHN5bWJvbHMgZnJvbSAvdXNyL2xpYi9nc3RyZWFtZXItMC4x MC9saWJnc3RhbHNhLnNvLi4uZG9uZS4NCkxvYWRlZCBzeW1ib2xzIGZvciAvdXNyL2xpYi9nc3Ry ZWFtZXItMC4xMC9saWJnc3RhbHNhLnNvDQpSZWFkaW5nIHN5bWJvbHMgZnJvbSAvdXNyL2xpYi9n c3RyZWFtZXItMC4xMC9saWJnc3Rlc2Quc28uLi5kb25lLg0KTG9hZGVkIHN5bWJvbHMgZm9yIC91 c3IvbGliL2dzdHJlYW1lci0wLjEwL2xpYmdzdGVzZC5zbw0KUmVhZGluZyBzeW1ib2xzIGZyb20g L3Vzci9saWIvZ3N0cmVhbWVyLTAuMTAvbGliZ3N0b3NzYXVkaW8uc28uLi5kb25lLg0KTG9hZGVk IHN5bWJvbHMgZm9yIC91c3IvbGliL2dzdHJlYW1lci0wLjEwL2xpYmdzdG9zc2F1ZGlvLnNvDQow eGZmZmZlNDEwIGluIF9fa2VybmVsX3ZzeXNjYWxsICgpDQooZ2RiKSB0aHJlYWQgYXBwbHkgYWxs IGJ0DQoNClRocmVhZCA3IChUaHJlYWQgLTEyMzk4MzE2MzIgKExXUCAxMTE2MykpOg0KIzAgIDB4 ZmZmZmU0MTAgaW4gX19rZXJuZWxfdnN5c2NhbGwgKCkNCiMxICAweGI3YTIwZWVjIGluIHB0aHJl YWRfY29uZF90aW1lZHdhaXRAQEdMSUJDXzIuMy4yICgpDQogICBmcm9tIC9saWIvdGxzL2k2ODYv Y21vdi9saWJwdGhyZWFkLnNvLjANCiMyICAweGI3YTJjNWRjIGluID8/ICgpIGZyb20gL3Vzci9s aWIvbGliZ3RocmVhZC0yLjAuc28uMA0KIzMgIDB4MDgyNzA5MzggaW4gPz8gKCkNCiM0ICAweDA4 MjZlYTgwIGluID8/ICgpDQojNSAgMHhiNjE5YTMyNCBpbiA/PyAoKQ0KIzYgIDB4YjcxZTc0ZDIg aW4gZ19xdWV1ZV9wdXNoX2hlYWQgKCkgZnJvbSAvdXNyL2xpYi9saWJnbGliLTIuMC5zby4wDQoj NyAgMHhiNzFjMmQ4YyBpbiBnX2FzeW5jX3F1ZXVlX3B1c2hfc29ydGVkICgpIGZyb20gL3Vzci9s aWIvbGliZ2xpYi0yLjAuc28uMA0KIzggIDB4YjcxYzMwM2EgaW4gZ19hc3luY19xdWV1ZV90aW1l ZF9wb3AgKCkgZnJvbSAvdXNyL2xpYi9saWJnbGliLTIuMC5zby4wDQojOSAgMHgwODBhNjNlNiBp biBhY3Rpb25fdGhyZWFkX21haW4gKGRiPTB4ODI2ZjAwMCkgYXQgcmh5dGhtZGIuYzoxNzc0DQoj MTAgMHhiNzFmNDVhMiBpbiBnX3N0YXRpY19wcml2YXRlX2ZyZWUgKCkgZnJvbSAvdXNyL2xpYi9s aWJnbGliLTIuMC5zby4wDQojMTEgMHhiN2ExZTM0MSBpbiBzdGFydF90aHJlYWQgKCkgZnJvbSAv bGliL3Rscy9pNjg2L2Ntb3YvbGlicHRocmVhZC5zby4wDQojMTIgMHhiNzEzYjRlZSBpbiBjbG9u ZSAoKSBmcm9tIC9saWIvdGxzL2k2ODYvY21vdi9saWJjLnNvLjYNCg0KVGhyZWFkIDYgKFRocmVh ZCAtMTI0ODIyNDMzNiAoTFdQIDExMTY0KSk6DQojMCAgMHhmZmZmZTQxMCBpbiBfX2tlcm5lbF92 c3lzY2FsbCAoKQ0KIzEgIDB4YjcxMzE4YzQgaW4gcG9sbCAoKSBmcm9tIC9saWIvdGxzL2k2ODYv Y21vdi9saWJjLnNvLjYNCiMyICAweGI3MWRiN2U4IGluIGdfbWFpbl9jb250ZXh0X2NoZWNrICgp IGZyb20gL3Vzci9saWIvbGliZ2xpYi0yLjAuc28uMA0KIzMgIDB4YjcxZGJjYjggaW4gZ19tYWlu X2xvb3BfcnVuICgpIGZyb20gL3Vzci9saWIvbGliZ2xpYi0yLjAuc28uMA0KIzQgIDB4YjdhNmY3 MGUgaW4gbGlua190aHJlYWRfaW9fY29udGV4dCAoKSBmcm9tIC91c3IvbGliL2xpYk9SQml0LTIu c28uMA0KLS0tVHlwZSA8cmV0dXJuPiB0byBjb250aW51ZSwgb3IgcSA8cmV0dXJuPiB0byBxdWl0 LS0tDQojNSAgMHhiNzFmNDVhMiBpbiBnX3N0YXRpY19wcml2YXRlX2ZyZWUgKCkgZnJvbSAvdXNy L2xpYi9saWJnbGliLTIuMC5zby4wDQojNiAgMHhiN2ExZTM0MSBpbiBzdGFydF90aHJlYWQgKCkg ZnJvbSAvbGliL3Rscy9pNjg2L2Ntb3YvbGlicHRocmVhZC5zby4wDQojNyAgMHhiNzEzYjRlZSBp biBjbG9uZSAoKSBmcm9tIC9saWIvdGxzL2k2ODYvY21vdi9saWJjLnNvLjYNCg0KVGhyZWFkIDUg KFRocmVhZCAtMTI1ODE4NTgwOCAoTFdQIDExNDYwKSk6DQojMCAgMHhmZmZmZTQxMCBpbiBfX2tl cm5lbF92c3lzY2FsbCAoKQ0KIzEgIDB4YjdhMjBjNzYgaW4gcHRocmVhZF9jb25kX3dhaXRAQEdM SUJDXzIuMy4yICgpDQogICBmcm9tIC9saWIvdGxzL2k2ODYvY21vdi9saWJwdGhyZWFkLnNvLjAN CiMyICAweGI3YjkzNjU3IGluIGdzdF9zeXN0ZW1fY2xvY2tfb2J0YWluICgpDQogICBmcm9tIC91 c3IvbGliL2xpYmdzdHJlYW1lci0wLjEwLnNvLjANCiMzICAweGI3MWY0NWEyIGluIGdfc3RhdGlj X3ByaXZhdGVfZnJlZSAoKSBmcm9tIC91c3IvbGliL2xpYmdsaWItMi4wLnNvLjANCiM0ICAweGI3 YTFlMzQxIGluIHN0YXJ0X3RocmVhZCAoKSBmcm9tIC9saWIvdGxzL2k2ODYvY21vdi9saWJwdGhy ZWFkLnNvLjANCiM1ICAweGI3MTNiNGVlIGluIGNsb25lICgpIGZyb20gL2xpYi90bHMvaTY4Ni9j bW92L2xpYmMuc28uNg0KDQpUaHJlYWQgNCAoVGhyZWFkIC0xMjQ5MDAyNTc2IChMV1AgMTE0NjEp KToNCiMwICAweGZmZmZlNDEwIGluIF9fa2VybmVsX3ZzeXNjYWxsICgpDQojMSAgMHhiN2EyMzJh ZSBpbiBfX2xsbF9tdXRleF9sb2NrX3dhaXQgKCkNCiAgIGZyb20gL2xpYi90bHMvaTY4Ni9jbW92 L2xpYnB0aHJlYWQuc28uMA0KDQojMiAgMHhiN2EyNTZmNSBpbiBfTF9tdXRleF9jb25kX2xvY2tf MzMgKCkNCiAgIGZyb20gL2xpYi90bHMvaTY4Ni9jbW92L2xpYnB0aHJlYWQuc28uMA0KIzMgIDB4 YjU4ZGE3MDggaW4gPz8gKCkNCiM0ICAweGI0NzMwZDRkIGluIGdzdF9yaW5nX2J1ZmZlcl9zdGFy dCAoKSBmcm9tIC91c3IvbGliL2xpYmdzdGF1ZGlvLTAuMTAuc28uMA0KIzUgIDB4YjdhMjBkMDUg aW4gcHRocmVhZF9jb25kX3dhaXRAQEdMSUJDXzIuMy4yICgpDQotLS1UeXBlIDxyZXR1cm4+IHRv IGNvbnRpbnVlLCBvciBxIDxyZXR1cm4+IHRvIHF1aXQtLS0NCiAgIGZyb20gL2xpYi90bHMvaTY4 Ni9jbW92L2xpYnB0aHJlYWQuc28uMA0KIzYgIDB4YjQ3MzEzMDkgaW4gZ3N0X3JpbmdfYnVmZmVy X3NhbXBsZXNfZG9uZSAoKQ0KICAgZnJvbSAvdXNyL2xpYi9saWJnc3RhdWRpby0wLjEwLnNvLjAN CiM3ICAweGI0NzMxYTI1IGluIGdzdF9yaW5nX2J1ZmZlcl9jb21taXQgKCkgZnJvbSAvdXNyL2xp Yi9saWJnc3RhdWRpby0wLjEwLnNvLjANCiM4ICAweGI0NzJjM2IyIGluIGdzdF9iYXNlX2F1ZGlv X3NpbmtfZ2V0X3R5cGUgKCkNCiAgIGZyb20gL3Vzci9saWIvbGliZ3N0YXVkaW8tMC4xMC5zby4w DQojOSAgMHhiN2JkNzc4MiBpbiBnc3RfYmFzZV9zaW5rX2lzX3Fvc19lbmFibGVkICgpDQogICBm cm9tIC91c3IvbGliL2xpYmdzdGJhc2UtMC4xMC5zby4wDQojMTAgMHhiN2JkOGM5MiBpbiBnc3Rf YmFzZV9zaW5rX2lzX3Fvc19lbmFibGVkICgpDQogICBmcm9tIC91c3IvbGliL2xpYmdzdGJhc2Ut MC4xMC5zby4wDQojMTEgMHhiN2JkOTVkYyBpbiBnc3RfYmFzZV9zaW5rX2lzX3Fvc19lbmFibGVk ICgpDQogICBmcm9tIC91c3IvbGliL2xpYmdzdGJhc2UtMC4xMC5zby4wDQojMTIgMHhiN2JkOTlk YSBpbiBnc3RfYmFzZV9zaW5rX2lzX3Fvc19lbmFibGVkICgpDQogICBmcm9tIC91c3IvbGliL2xp YmdzdGJhc2UtMC4xMC5zby4wDQojMTMgMHhiN2I4MzgwNCBpbiBnc3RfcGFkX2NoYWluICgpIGZy b20gL3Vzci9saWIvbGliZ3N0cmVhbWVyLTAuMTAuc28uMA0KIzE0IDB4YjdiNzQ0NTMgaW4gZ3N0 X3Byb3h5X3BhZF9nZXRfdHlwZSAoKQ0KICAgZnJvbSAvdXNyL2xpYi9saWJnc3RyZWFtZXItMC4x MC5zby4wDQojMTUgMHhiN2I4MzgwNCBpbiBnc3RfcGFkX2NoYWluICgpIGZyb20gL3Vzci9saWIv bGliZ3N0cmVhbWVyLTAuMTAuc28uMA0KIzE2IDB4YjdiNzQ0NTMgaW4gZ3N0X3Byb3h5X3BhZF9n ZXRfdHlwZSAoKQ0KICAgZnJvbSAvdXNyL2xpYi9saWJnc3RyZWFtZXItMC4xMC5zby4wDQojMTcg MHhiN2I4MzgwNCBpbiBnc3RfcGFkX2NoYWluICgpIGZyb20gL3Vzci9saWIvbGliZ3N0cmVhbWVy LTAuMTAuc28uMA0KIzE4IDB4YjdiNzQ0NTMgaW4gZ3N0X3Byb3h5X3BhZF9nZXRfdHlwZSAoKQ0K ICAgZnJvbSAvdXNyL2xpYi9saWJnc3RyZWFtZXItMC4xMC5zby4wDQotLS1UeXBlIDxyZXR1cm4+ IHRvIGNvbnRpbnVlLCBvciBxIDxyZXR1cm4+IHRvIHF1aXQtLS0NCiMxOSAweGI3YjgzODA0IGlu IGdzdF9wYWRfY2hhaW4gKCkgZnJvbSAvdXNyL2xpYi9saWJnc3RyZWFtZXItMC4xMC5zby4wDQoj MjAgMHhiN2I4M2ZhMiBpbiBnc3RfcGFkX3B1c2ggKCkgZnJvbSAvdXNyL2xpYi9saWJnc3RyZWFt ZXItMC4xMC5zby4wDQojMjEgMHhiN2JlNDY2MyBpbiBnc3RfYmFzZV90cmFuc2Zvcm1fdXBkYXRl X3FvcyAoKQ0KICAgZnJvbSAvdXNyL2xpYi9saWJnc3RiYXNlLTAuMTAuc28uMA0KIzIyIDB4Yjdi ODM4MDQgaW4gZ3N0X3BhZF9jaGFpbiAoKSBmcm9tIC91c3IvbGliL2xpYmdzdHJlYW1lci0wLjEw LnNvLjANCiMyMyAweGI3YjgzZmEyIGluIGdzdF9wYWRfcHVzaCAoKSBmcm9tIC91c3IvbGliL2xp YmdzdHJlYW1lci0wLjEwLnNvLjANCiMyNCAweGI3YmU0NjYzIGluIGdzdF9iYXNlX3RyYW5zZm9y bV91cGRhdGVfcW9zICgpDQogICBmcm9tIC91c3IvbGliL2xpYmdzdGJhc2UtMC4xMC5zby4wDQoj MjUgMHhiN2I4MzgwNCBpbiBnc3RfcGFkX2NoYWluICgpIGZyb20gL3Vzci9saWIvbGliZ3N0cmVh bWVyLTAuMTAuc28uMA0KIzI2IDB4YjdiODNmYTIgaW4gZ3N0X3BhZF9wdXNoICgpIGZyb20gL3Vz ci9saWIvbGliZ3N0cmVhbWVyLTAuMTAuc28uMA0KIzI3IDB4YjdiZTQ2NjMgaW4gZ3N0X2Jhc2Vf dHJhbnNmb3JtX3VwZGF0ZV9xb3MgKCkNCiAgIGZyb20gL3Vzci9saWIvbGliZ3N0YmFzZS0wLjEw LnNvLjANCiMyOCAweGI3YjgzODA0IGluIGdzdF9wYWRfY2hhaW4gKCkgZnJvbSAvdXNyL2xpYi9s aWJnc3RyZWFtZXItMC4xMC5zby4wDQojMjkgMHhiN2I3NDQ1MyBpbiBnc3RfcHJveHlfcGFkX2dl dF90eXBlICgpDQogICBmcm9tIC91c3IvbGliL2xpYmdzdHJlYW1lci0wLjEwLnNvLjANCiMzMCAw eGI3YjgzODA0IGluIGdzdF9wYWRfY2hhaW4gKCkgZnJvbSAvdXNyL2xpYi9saWJnc3RyZWFtZXIt MC4xMC5zby4wDQojMzEgMHhiN2I4M2ZhMiBpbiBnc3RfcGFkX3B1c2ggKCkgZnJvbSAvdXNyL2xp Yi9saWJnc3RyZWFtZXItMC4xMC5zby4wDQojMzIgMHhiNDdmYjQ2MyBpbiBnc3RfcXVldWVfZ2V0 X3R5cGUgKCkNCiAgIGZyb20gL3Vzci9saWIvZ3N0cmVhbWVyLTAuMTAvbGliZ3N0Y29yZWVsZW1l bnRzLnNvDQojMzMgMHhiN2I5N2Q5ZiBpbiBnc3RfdGFza19nZXRfdHlwZSAoKSBmcm9tIC91c3Iv bGliL2xpYmdzdHJlYW1lci0wLjEwLnNvLjANCiMzNCAweGI3MWY2NDQ4IGluIGdfdGhyZWFkX3Bv b2xfZnJlZSAoKSBmcm9tIC91c3IvbGliL2xpYmdsaWItMi4wLnNvLjANCiMzNSAweGI3MWY0NWEy IGluIGdfc3RhdGljX3ByaXZhdGVfZnJlZSAoKSBmcm9tIC91c3IvbGliL2xpYmdsaWItMi4wLnNv LjANCiMzNiAweGI3YTFlMzQxIGluIHN0YXJ0X3RocmVhZCAoKSBmcm9tIC9saWIvdGxzL2k2ODYv Y21vdi9saWJwdGhyZWFkLnNvLjANCi0tLVR5cGUgPHJldHVybj4gdG8gY29udGludWUsIG9yIHEg PHJldHVybj4gdG8gcXVpdC0tLQ0KIzM3IDB4YjcxM2I0ZWUgaW4gY2xvbmUgKCkgZnJvbSAvbGli L3Rscy9pNjg2L2Ntb3YvbGliYy5zby42DQoNClRocmVhZCAzIChUaHJlYWQgLTEyNjg1MzIzMDQg KExXUCAxMTQ2MikpOg0KIzAgIDB4ZmZmZmU0MTAgaW4gX19rZXJuZWxfdnN5c2NhbGwgKCkNCiMx ICAweGI3YTIwYzc2IGluIHB0aHJlYWRfY29uZF93YWl0QEBHTElCQ18yLjMuMiAoKQ0KICAgZnJv bSAvbGliL3Rscy9pNjg2L2Ntb3YvbGlicHRocmVhZC5zby4wDQojMiAgMHhiNDdmOTdhNCBpbiBn c3RfcXVldWVfZ2V0X3R5cGUgKCkNCiAgIGZyb20gL3Vzci9saWIvZ3N0cmVhbWVyLTAuMTAvbGli Z3N0Y29yZWVsZW1lbnRzLnNvDQojMyAgMHhiN2I4MzgwNCBpbiBnc3RfcGFkX2NoYWluICgpIGZy b20gL3Vzci9saWIvbGliZ3N0cmVhbWVyLTAuMTAuc28uMA0KIzQgIDB4YjdiODNmYTIgaW4gZ3N0 X3BhZF9wdXNoICgpIGZyb20gL3Vzci9saWIvbGliZ3N0cmVhbWVyLTAuMTAuc28uMA0KIzUgIDB4 YjQ4MTU4MGUgaW4gZ3N0X3N0cmVhbV9zZWxlY3Rvcl9nZXRfdHlwZSAoKQ0KICAgZnJvbSAvdXNy L2xpYi9nc3RyZWFtZXItMC4xMC9saWJnc3RwbGF5YmluLnNvDQojNiAgMHhiN2I4MzgwNCBpbiBn c3RfcGFkX2NoYWluICgpIGZyb20gL3Vzci9saWIvbGliZ3N0cmVhbWVyLTAuMTAuc28uMA0KIzcg IDB4YjdiNzQ0NTMgaW4gZ3N0X3Byb3h5X3BhZF9nZXRfdHlwZSAoKQ0KICAgZnJvbSAvdXNyL2xp Yi9saWJnc3RyZWFtZXItMC4xMC5zby4wDQojOCAgMHhiN2I4MzgwNCBpbiBnc3RfcGFkX2NoYWlu ICgpIGZyb20gL3Vzci9saWIvbGliZ3N0cmVhbWVyLTAuMTAuc28uMA0KIzkgIDB4YjdiODNmYTIg aW4gZ3N0X3BhZF9wdXNoICgpIGZyb20gL3Vzci9saWIvbGliZ3N0cmVhbWVyLTAuMTAuc28uMA0K IzEwIDB4YjQ3OGJiYzEgaW4gZ3N0X21hZF9nZXRfdHlwZSAoKSBmcm9tIC91c3IvbGliL2dzdHJl YW1lci0wLjEwL2xpYmdzdG1hZC5zbw0KIzExIDB4YjdiODM4MDQgaW4gZ3N0X3BhZF9jaGFpbiAo KSBmcm9tIC91c3IvbGliL2xpYmdzdHJlYW1lci0wLjEwLnNvLjANCiMxMiAweGI3YjgzZmEyIGlu IGdzdF9wYWRfcHVzaCAoKSBmcm9tIC91c3IvbGliL2xpYmdzdHJlYW1lci0wLjEwLnNvLjANCiMx MyAweGI0Nzk5MWM1IGluIGdzdF9pZDNkZW11eF9nZXRfdHlwZSAoKQ0KICAgZnJvbSAvdXNyL2xp Yi9nc3RyZWFtZXItMC4xMC9saWJnc3RpZDNkZW11eC5zbw0KIzE0IDB4YjdiODM4MDQgaW4gZ3N0 X3BhZF9jaGFpbiAoKSBmcm9tIC91c3IvbGliL2xpYmdzdHJlYW1lci0wLjEwLnNvLjANCi0tLVR5 cGUgPHJldHVybj4gdG8gY29udGludWUsIG9yIHEgPHJldHVybj4gdG8gcXVpdC0tLQ0KIzE1IDB4 YjdiODNmYTIgaW4gZ3N0X3BhZF9wdXNoICgpIGZyb20gL3Vzci9saWIvbGliZ3N0cmVhbWVyLTAu MTAuc28uMA0KIzE2IDB4YjQ3ZmViZDggaW4gZ3N0X3R5cGVfZmluZF9lbGVtZW50X2dldF90eXBl ICgpDQogICBmcm9tIC91c3IvbGliL2dzdHJlYW1lci0wLjEwL2xpYmdzdGNvcmVlbGVtZW50cy5z bw0KIzE3IDB4YjdiODM4MDQgaW4gZ3N0X3BhZF9jaGFpbiAoKSBmcm9tIC91c3IvbGliL2xpYmdz dHJlYW1lci0wLjEwLnNvLjANCiMxOCAweGI3Yjc0NDUzIGluIGdzdF9wcm94eV9wYWRfZ2V0X3R5 cGUgKCkNCiAgIGZyb20gL3Vzci9saWIvbGliZ3N0cmVhbWVyLTAuMTAuc28uMA0KIzE5IDB4Yjdi ODM4MDQgaW4gZ3N0X3BhZF9jaGFpbiAoKSBmcm9tIC91c3IvbGliL2xpYmdzdHJlYW1lci0wLjEw LnNvLjANCiMyMCAweGI3YjgzZmEyIGluIGdzdF9wYWRfcHVzaCAoKSBmcm9tIC91c3IvbGliL2xp YmdzdHJlYW1lci0wLjEwLnNvLjANCiMyMSAweGI3YmRlMDM1IGluIGdzdF9iYXNlX3NyY19zZXRf Zm9ybWF0ICgpIGZyb20gL3Vzci9saWIvbGliZ3N0YmFzZS0wLjEwLnNvLjANCiMyMiAweGI3Yjk3 ZDlmIGluIGdzdF90YXNrX2dldF90eXBlICgpIGZyb20gL3Vzci9saWIvbGliZ3N0cmVhbWVyLTAu MTAuc28uMA0KIzIzIDB4YjcxZjY0NDggaW4gZ190aHJlYWRfcG9vbF9mcmVlICgpIGZyb20gL3Vz ci9saWIvbGliZ2xpYi0yLjAuc28uMA0KIzI0IDB4YjcxZjQ1YTIgaW4gZ19zdGF0aWNfcHJpdmF0 ZV9mcmVlICgpIGZyb20gL3Vzci9saWIvbGliZ2xpYi0yLjAuc28uMA0KIzI1IDB4YjdhMWUzNDEg aW4gc3RhcnRfdGhyZWFkICgpIGZyb20gL2xpYi90bHMvaTY4Ni9jbW92L2xpYnB0aHJlYWQuc28u MA0KIzI2IDB4YjcxM2I0ZWUgaW4gY2xvbmUgKCkgZnJvbSAvbGliL3Rscy9pNjg2L2Ntb3YvbGli Yy5zby42DQoNClRocmVhZCAyIChUaHJlYWQgLTEyNzY5MjUwMDggKExXUCAxMTQ2NCkpOg0KIzAg IDB4ZmZmZmU0MTAgaW4gX19rZXJuZWxfdnN5c2NhbGwgKCkNCiMxICAweGI3MTMxOGM0IGluIHBv bGwgKCkgZnJvbSAvbGliL3Rscy9pNjg2L2Ntb3YvbGliYy5zby42DQojMiAgMHhiNmZmYjgzNiBp biBzbmRfcGNtX3dhaXRfbm9jaGVjayAoKSBmcm9tIC91c3IvbGliL2xpYmFzb3VuZC5zby4yDQoj MyAgMHhiNzAwMWM1OCBpbiBzbmRfcGNtX3dhaXQgKCkgZnJvbSAvdXNyL2xpYi9saWJhc291bmQu c28uMg0KIzQgIDB4YjcwMDFkMzQgaW4gc25kX3BjbV93cml0ZV9hcmVhcyAoKSBmcm9tIC91c3Iv bGliL2xpYmFzb3VuZC5zby4yDQojNSAgMHhiNzAxYjVjNCBpbiBzbmRfcGNtX21tYXBfd3JpdGVp ICgpIGZyb20gL3Vzci9saWIvbGliYXNvdW5kLnNvLjINCiM2ICAweGI2ZmY5OTY2IGluIHNuZF9w Y21fd3JpdGVpICgpIGZyb20gL3Vzci9saWIvbGliYXNvdW5kLnNvLjINCi0tLVR5cGUgPHJldHVy bj4gdG8gY29udGludWUsIG9yIHEgPHJldHVybj4gdG8gcXVpdC0tLQ0KIzcgIDB4YjQ2YjEzNDgg aW4gPz8gKCkgZnJvbSAvdXNyL2xpYi9nc3RyZWFtZXItMC4xMC9saWJnc3RhbHNhLnNvDQojOCAg MHgwODc0NDkwMCBpbiA/PyAoKQ0KIzkgIDB4MDg3ODc5MTggaW4gPz8gKCkNCiMxMCAweDAwMDAw M2FjIGluID8/ICgpDQojMTEgMHgwODcyODU3OCBpbiA/PyAoKQ0KIzEyIDB4MDg2ZWJlNTggaW4g Pz8gKCkNCiMxMyAweDAwMDAwMDAxIGluID8/ICgpDQojMTQgMHgwMDAwMDAwMCBpbiA/PyAoKQ0K DQpUaHJlYWQgMSAoVGhyZWFkIC0xMjI1OTU5NzQ0IChMV1AgMTExNjEpKToNCiMwICAweGZmZmZl NDEwIGluIF9fa2VybmVsX3ZzeXNjYWxsICgpDQojMSAgMHhiN2EyMzJhZSBpbiBfX2xsbF9tdXRl eF9sb2NrX3dhaXQgKCkNCiAgIGZyb20gL2xpYi90bHMvaTY4Ni9jbW92L2xpYnB0aHJlYWQuc28u MA0KIzIgIDB4YjdhMWZmYmIgaW4gX0xfbXV0ZXhfbG9ja18zMyAoKSBmcm9tIC9saWIvdGxzL2k2 ODYvY21vdi9saWJwdGhyZWFkLnNvLjANCiMzICAweGJmZGMyYWY4IGluID8/ICgpDQojNCAgMHhi NDZhZDIwYyBpbiA/PyAoKSBmcm9tIC91c3IvbGliL2dzdHJlYW1lci0wLjEwL2xpYmdzdGFsc2Eu c28NCiM1ICAweDA4NzI2ZjU4IGluID8/ICgpDQojNiAgMHgwMDAwMDAwMCBpbiA/PyAoKQ0KIzAg IDB4ZmZmZmU0MTAgaW4gX19rZXJuZWxfdnN5c2NhbGwgKCkNCihnZGIpIGV4aXQNClVuZGVmaW5l ZCBjb21tYW5kOiAiZXhpdCIuICBUcnkgImhlbHAiLg0KKGdkYikgcXVpdA0KVGhlIHByb2dyYW0g aXMgcnVubmluZy4gIFF1aXQgYW55d2F5IChhbmQgZGV0YWNoIGl0KT8gKHkgb3IgbikgeQ0KUXVp dHRpbmc6IENhbid0IGRldGFjaCBMV1AgMTExNjM6IE5vIHN1Y2ggcHJvY2Vzcw0KWzFdKyAgS2ls bGVkICAgICAgICAgICAgICAgICAgcmh5dGhtYm94DQpkYmVyZ0BkYWxlOn4kIGV4aXQNCgpTY3Jp cHQgZG9uZSBvbiBTdW4gMTEgSnVuIDIwMDYgMDk6MTE6MjIgQ0RUCg== ------=_Part_212_26356666.1150067472138-- From dashnak@gmail.com Sun Jun 11 12:52:48 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id D7F203B0132 for ; Sun, 11 Jun 2006 12:52:48 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 20862-05 for ; Sun, 11 Jun 2006 12:52:47 -0400 (EDT) Received: from nz-out-0102.google.com (nz-out-0102.google.com [64.233.162.193]) by menubar.gnome.org (Postfix) with ESMTP id 4877C3B0116 for ; Sun, 11 Jun 2006 12:52:47 -0400 (EDT) Received: by nz-out-0102.google.com with SMTP id 9so1588348nzo for ; Sun, 11 Jun 2006 09:51:39 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:user-agent:mime-version:to:subject:content-type:content-transfer-encoding; b=Fjh74H1dQNzansHjVqutOGlmQupSmyuYb5OiuFzp/bQRStMY/XHYp4sGfM3SBYRr/ixZpn42W1jcd3uH2d8rHPdGfoCE7IviLrnni33z7P2AtLE2i9URe1DZuHW+ZpOQMj7Cm1Scxb90eTJgC+q17pUwqD5E03qCdnNs5Ll5NMc= Received: by 10.36.250.47 with SMTP id x47mr3134318nzh; Sun, 11 Jun 2006 09:51:39 -0700 (PDT) Received: from ?200.79.236.147? ( [200.79.236.147]) by mx.gmail.com with ESMTP id 19sm2483735nzp.2006.06.11.09.51.38; Sun, 11 Jun 2006 09:51:39 -0700 (PDT) Message-ID: <448C4A0E.9090706@gmail.com> Date: Sun, 11 Jun 2006 11:51:26 -0500 From: dashnak wyvernspur User-Agent: Thunderbird 1.5.0.2 (X11/20060522) MIME-Version: 1.0 To: rhythmbox-devel@gnome.org Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.6 tagged_above=-999 required=2 tests=[BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.6 X-Spam-Level: X-Mailman-Approved-At: Mon, 12 Jun 2006 03:20:15 -0400 Subject: [Rhythmbox-devel] Bug in system tray X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Jun 2006 16:52:49 -0000 There seems to be a bug in rhythmbox 0.9.4.1 relating to the tray icon. I remember that in older versions, if you closed rhythmbox, it would iconify to the system tray. This is no longer the case; if you close it, it is gone. This is a terrible annoyance, and is very inconvenient too. I'm using Ubuntu Dapper x86. Thanks for your time. Dashnak. From sjoeboo@sjoeboo.com Wed Jun 14 10:50:35 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id CE3003B037F; Wed, 14 Jun 2006 10:50:35 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 08478-04; Wed, 14 Jun 2006 10:50:34 -0400 (EDT) Received: from server.sjoeboo.com (unknown [64.79.192.114]) by menubar.gnome.org (Postfix) with ESMTP id D38F13B02C8; Wed, 14 Jun 2006 10:50:33 -0400 (EDT) Received: by server.sjoeboo.com (Postfix, from userid 33) id 6D37418C4F7F; Wed, 14 Jun 2006 07:50:15 -0700 (PDT) To: gnome-multimedia@gnome.org, rhythmbox-devel@gnome.org MIME-Version: 1.0 Date: Wed, 14 Jun 2006 7:50:15 -0700 From: sjoeboo Organization: sjoeboo.com Message-ID: <5135b2d86e5568cedc7e8138809a3b9f@localhost> X-Sender: sjoeboo@sjoeboo.com User-Agent: RoundCube Webmail/0.1b Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.599 tagged_above=-999 required=2 tests=[AWL=0.000, BAYES_00=-2.599] X-Spam-Score: -2.599 X-Spam-Level: Subject: [Rhythmbox-devel] totem and goom information... X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list Reply-To: sjoeboo@sjoeboo.com List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Jun 2006 14:50:36 -0000 Good "morning" everyone, So, my (and what should be everyones) favorite music player for gnome, rhythmbox, has been on a steady march of advancement for the past few months, with a whole slew of new features comming about. One thing I though of recently is visualizations, and how ncie it would be to have at least one, possibly as a plugin. I know totem uses GOOM to do this, and was wondering what I might have to do in terms of gstreamer etc to have rhythmbox use it as well. I was looking around on the Totem site for a mailing list etc, but couldn't find anything. Does anyone know where I might find more info for something like this? Thanks, and keep up the great work. -- Matthew Nicholson sjoeboo@sjoeboo.com sjoeboo.com From alexl@users.sourceforge.net Wed Jun 14 15:29:33 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 642823B0099 for ; Wed, 14 Jun 2006 15:29:33 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 28096-10 for ; Wed, 14 Jun 2006 15:29:32 -0400 (EDT) Received: from allele2.biol.berkeley.edu (allele2.Biol.Berkeley.EDU [128.32.118.82]) by menubar.gnome.org (Postfix) with ESMTP id C02DB3B000C for ; Wed, 14 Jun 2006 15:29:31 -0400 (EDT) Received: from allele2.biol.berkeley.edu (localhost.localdomain [127.0.0.1]) by allele2.biol.berkeley.edu (8.13.6/8.12.11) with ESMTP id k5EJSp0E012546 for ; Wed, 14 Jun 2006 12:28:51 -0700 Received: (from alex@localhost) by allele2.biol.berkeley.edu (8.13.6/8.13.4/Submit) id k5EJSp8K012545; Wed, 14 Jun 2006 12:28:51 -0700 X-Authentication-Warning: allele2.biol.berkeley.edu: alex set sender to alexl@users.sourceforge.net using -f To: rhythmbox-devel@gnome.org References: <5135b2d86e5568cedc7e8138809a3b9f@localhost> From: Alex Lancaster Organization: Sourceforge Date: Wed, 14 Jun 2006 12:28:51 -0700 In-Reply-To: <5135b2d86e5568cedc7e8138809a3b9f@localhost> (sjoeboo@sjoeboo.com's message of "Wed, 14 Jun 2006 7:50:15 -0700") Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.59 tagged_above=-999 required=2 tests=[AWL=0.009, BAYES_00=-2.599] X-Spam-Score: -2.59 X-Spam-Level: Subject: Re: [Rhythmbox-devel] totem and goom information... X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Jun 2006 19:29:33 -0000 >>>>> "s" == sjoeboo writes: s> Good "morning" everyone, s> So, my (and what should be everyones) favorite music player for s> gnome, rhythmbox, has been on a steady march of advancement for the s> past few months, with a whole slew of new features comming s> about. One thing I though of recently is visualizations, and how s> ncie it would be to have at least one, possibly as a plugin. I s> know totem uses GOOM to do this, and was wondering what I might s> have to do in terms of gstreamer etc to have rhythmbox use it as s> well. I was looking around on the Totem site for a mailing list s> etc, but couldn't find anything. Does anyone know where I might s> find more info for something like this? It's been an open enhancement request for about 4 years (since 2002!) ;-) http://bugzilla.gnome.org/76519 It was moved to the plugin component recently when plugins were added. It could/should be done via gstreamer's libvisual plugin I believe. Just needs somebody to work on it! Alex From adam_zimmerman@sfu.ca Wed Jun 14 17:40:30 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id ED73A3B03F0 for ; Wed, 14 Jun 2006 17:40:29 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 03958-09 for ; Wed, 14 Jun 2006 17:40:28 -0400 (EDT) Received: from pobox.sfu.ca (pobox.sfu.ca [142.58.101.28]) by menubar.gnome.org (Postfix) with ESMTP id 5E83B3B027F for ; Wed, 14 Jun 2006 17:40:28 -0400 (EDT) Received: from [192.168.1.104] (d154-20-161-87.bchsia.telus.net [154.20.161.87]) (authenticated bits=0) by pobox.sfu.ca (8.13.6/8.13.5/SFU-6.0G) with ESMTP id k5ELeFqq021753 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NOT) for ; Wed, 14 Jun 2006 14:40:16 -0700 (PDT) From: Adam Zimmerman To: rhythmbox-devel@gnome.org Content-Type: multipart/mixed; boundary="=-4AzQRduJZNnQfR3JUbQo" Date: Wed, 14 Jun 2006 14:40:13 -0700 Message-Id: <1150321213.15485.22.camel@midnight> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 X-Virus-Scanned: by antibody.sfu.ca running antivirus scanner X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.355 tagged_above=-999 required=2 tests=[AWL=0.090, BAYES_00=-2.599, TW_GT=0.077, TW_HM=0.077] X-Spam-Score: -2.355 X-Spam-Level: Subject: [Rhythmbox-devel] Magnatune catalog/purchasing plugin X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Jun 2006 21:40:30 -0000 --=-4AzQRduJZNnQfR3JUbQo Content-Type: text/plain Content-Transfer-Encoding: 7bit Hi everyone, After reading this[1] entry in the blog of Magnatune's founder, I figured I'd try to write a plugin for rhythmbox that did the same thing as an exercise. So, after a while, I realized that I have basically no idea how rhythmbox works, and the plugins I'm looking at for help (mostly generic-player, since it adds a source) are written in C, which I don't know. So I've got a couple of questions about python plugins/rhythmbox in general. I'd appreciate any help anyone could give me. - How do I add songs to my source? generic-player seems to get its own rhythmdb instance or something, and then call db.add_uri on the song (directory in that case). I tried this in the python console, and succeeded in adding a song to the library, so it seems right, just that I need a separate db (or do I?). - Is there a way to associate other data with an entry (such as the album sku)? add_uri only takes the uri of the file as an argument. - Is there a way to manually set the metadata for a track, so rhythmbox doesn't have to hit every mp3 file on magnatune? And some other questions related to purchasing (I'm going to try to get playback working first, so these are lower priority): - I'm not quite sure how to allow the user to set options (such as email address, credit card info, etc.). Ideally I'd like to give the user the option of entering cc info every time (default) or saving it. - How do I add a context-menu action to an entry ("Buy this album")? - Can I use track-transfer to transfer a bought file from its download location into the library? Or do I have to use gnomevfs.xfer_uri? That's all I can think of at the moment. Thanks in advance for any help! -Adam [1] http://blogs.magnatune.com/buckman/2006/06/embedded_purcha.html -- Adam Zimmerman CREATIVITY - http://mirrors.creativecommons.org/movingimages/Building_on_the_Past.mpg ALWAYS - http://www.musiccreators.ca/ BUILDS - http://www.ubuntu.com/ ON THE PAST - http://www.theopencd.org/ -- "...very few phenomena can pull someone out of Deep Hack Mode, with two noted exceptions: being struck by lightning, or worse, your *computer* being struck by lightning." (By Matt Welsh) --=-4AzQRduJZNnQfR3JUbQo Content-Disposition: attachment; filename=magnatune.py Content-Type: text/x-python; name=magnatune.py; charset=UTF-8 Content-Transfer-Encoding: 7bit import rhythmdb, rb import gobject, gtk from gettext import gettext as _ import xml.sax, xml.sax.handler import urllib magnatune_partner_id = "rhythmbox" # this needs to be set up with magnatune class TrackListHandler(xml.sax.handler.ContentHandler): # Class to add Magnatune catalog to the source def __init__(self, source, db): xml.sax.handler.ContentHandler.__init__(self) self._track = {} # temporary dictionary for track info self._source = source # is this needed? self._db = db def startElement(self, name, attrs): self._text = "" def endElement(self, name): if name == "Track": # add the track to the source self._db.add_uri(self._track['url']) # this might be wrong, it seems to be what generic-player does # somehow associate the sku with the track as well. Also file metadata if possible. self._track = {} elif name == "AllSongs": pass # end of the file else: self._track[name] = self._text def characters(self, content): self._text = self._text + content class BuyAlbumHandler(xml.sax.handler.ContentHandler): # Class to download the track, etc. def __init__(self): xml.sax.handler.ContentHandler.__init__(self) def startElement(self, name, attrs): self._text = "" def endElement(self, name): # need to figure out the format of what gets returned, there's no documentation on the site. pass def characters(self, content): self._text = self._text + content def buy_track(track, amount, cc, name, email): # http://magnatune.com/info/api#purchase url = "https://magnatune.com/buy/buy_dl_cc_xml?" url = url + urllib.urlencode({ 'id': magnatune_partner_id, 'sku': track['albumsku'], 'amount': amount, 'cc': cc['number'], 'yy': cc['year'], 'mm': cc['month'], 'name': name, 'email':email }) xml.sax.parse(url, BuyAlbumHandler()) url = "" # get download url # transfer the track to the library with track-transfer class Magnatune(rb.Plugin): def __init__(self): rb.Plugin.__init__(self) def activate(self, shell): db = shell.get_property("db") # need to get the proper db for the source we create (or make one ourselves?) model = db.query_model_new_empty() self.source = gobject.new (MagnatuneSource, shell=shell, name=_("Magnatune"), query_model=model) #icon = blabla #self.source.set_property("icon", icon) shell.append_source(self.source, None) # Add the source to the list xml.sax.parse("http://magnatune.com/info/song_info.xml", TrackListHandler(self.source, db)) # Add the tracks to the source def deactivate(self, shell): self.source.delete_thyself() self.source = None class MagnatuneSource(rb.Source): def __init__(self): rb.Source.__init__(self) gobject.type_register(MagnatuneSource) --=-4AzQRduJZNnQfR3JUbQo-- From jonathan@kaolin.wh9.net Wed Jun 14 23:21:09 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 974793B0174 for ; Wed, 14 Jun 2006 23:21:09 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 08236-06 for ; Wed, 14 Jun 2006 23:21:06 -0400 (EDT) Received: from smtp1.adl2.internode.on.net (smtp1.adl2.internode.on.net [203.16.214.181]) by menubar.gnome.org (Postfix) with ESMTP id 0C07C3B00F3 for ; Wed, 14 Jun 2006 23:21:05 -0400 (EDT) Received: from stapler.kaolin.wh9.net (ppp97-73.lns1.bne1.internode.on.net [59.167.97.73]) by smtp1.adl2.internode.on.net (8.13.6/8.13.5) with ESMTP id k5F3KSqv045716 for ; Thu, 15 Jun 2006 12:50:28 +0930 (CST) (envelope-from jonathan@kaolin.wh9.net) Received: from jonathan by stapler.kaolin.wh9.net with local (Exim 4.50) id 1FqiPD-0004kI-UY for rhythmbox-devel@gnome.org; Thu, 15 Jun 2006 13:20:27 +1000 Date: Thu, 15 Jun 2006 13:20:27 +1000 To: rhythmbox-devel@gnome.org Message-ID: <20060615032027.GA18230@kaolin.wh9.net> Mail-Followup-To: rhythmbox-devel@gnome.org References: <448C4A0E.9090706@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <448C4A0E.9090706@gmail.com> X-Represent-the-Ocean: Yes User-Agent: Mutt/1.5.9i From: Jonathan Matthew X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.463 tagged_above=-999 required=2 tests=[AWL=0.002, BAYES_00=-2.599, FORGED_RCVD_HELO=0.135, SPF_HELO_PASS=-0.001] X-Spam-Score: -2.463 X-Spam-Level: Subject: Re: [Rhythmbox-devel] Bug in system tray X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Jun 2006 03:21:09 -0000 On Sun, Jun 11, 2006 at 11:51:26AM -0500, dashnak wyvernspur wrote: > There seems to be a bug in rhythmbox 0.9.4.1 relating to the tray icon. > I remember that in older versions, if you closed rhythmbox, it would > iconify to the system tray. This is no longer the case; if you close it, > it is gone. This is a terrible annoyance, and is very inconvenient too. This is not a bug, it is a deliberate change in behaviour. You can get the behaviour you want by clicking on the system tray icon. From jonathan@kaolin.wh9.net Wed Jun 14 23:30:25 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id D7B613B01FF for ; Wed, 14 Jun 2006 23:30:25 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 08759-10 for ; Wed, 14 Jun 2006 23:30:24 -0400 (EDT) Received: from smtp3.adl2.internode.on.net (smtp3.adl2.internode.on.net [203.16.214.203]) by menubar.gnome.org (Postfix) with ESMTP id D559A3B0184 for ; Wed, 14 Jun 2006 23:30:23 -0400 (EDT) Received: from stapler.kaolin.wh9.net (ppp97-73.lns1.bne1.internode.on.net [59.167.97.73]) by smtp3.adl2.internode.on.net (8.13.6/8.13.5) with ESMTP id k5F3U0d6058792 for ; Thu, 15 Jun 2006 13:00:02 +0930 (CST) (envelope-from jonathan@kaolin.wh9.net) Received: from jonathan by stapler.kaolin.wh9.net with local (Exim 4.50) id 1FqiYS-0004kd-P2 for rhythmbox-devel@gnome.org; Thu, 15 Jun 2006 13:30:00 +1000 Date: Thu, 15 Jun 2006 13:30:00 +1000 To: rhythmbox-devel@gnome.org Message-ID: <20060615033000.GB18230@kaolin.wh9.net> Mail-Followup-To: rhythmbox-devel@gnome.org References: <5135b2d86e5568cedc7e8138809a3b9f@localhost> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5135b2d86e5568cedc7e8138809a3b9f@localhost> X-Represent-the-Ocean: Yes User-Agent: Mutt/1.5.9i From: Jonathan Matthew X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.463 tagged_above=-999 required=2 tests=[AWL=0.002, BAYES_00=-2.599, FORGED_RCVD_HELO=0.135, SPF_HELO_PASS=-0.001] X-Spam-Score: -2.463 X-Spam-Level: Subject: Re: [Rhythmbox-devel] totem and goom information... X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Jun 2006 03:30:26 -0000 On Wed, Jun 14, 2006 at 07:50:15AM -0700, sjoeboo wrote: > > Good "morning" everyone, > > So, my (and what should be everyones) favorite music player for gnome, > rhythmbox, has been on a steady march of advancement for the past few > months, with a whole slew of new features comming about. One thing I > though of recently is visualizations, and how ncie it would be to have > at least one, possibly as a plugin. I know totem uses GOOM to do > this, and was wondering what I might have to do in terms of gstreamer > etc to have rhythmbox use it as well. I was looking around on the > Totem site for a mailing list etc, but couldn't find anything. Does > anyone know where I might find more info for something like this? Totem, when using the gstreamer backend, creates a gstreamer element (goom, one of the libvisual elements, etc.) and sets it as the vis-plugin property on the playbin instance, and sets up a video sink outputting to its display window. I'm working on a plugin that does this. It basically works, but toggling visualization while playing doesn't work very well, and causes some weird UI glitches. I think I'm just getting some GDK bits wrong. When I get it working properly, I'll make patches available (or just check it in..). From jonathan@kaolin.wh9.net Thu Jun 15 00:14:18 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id D26D63B0174 for ; Thu, 15 Jun 2006 00:14:18 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 10411-05 for ; Thu, 15 Jun 2006 00:14:17 -0400 (EDT) Received: from smtp3.adl2.internode.on.net (smtp3.adl2.internode.on.net [203.16.214.203]) by menubar.gnome.org (Postfix) with ESMTP id 817AA3B00B5 for ; Thu, 15 Jun 2006 00:14:16 -0400 (EDT) Received: from stapler.kaolin.wh9.net (ppp97-73.lns1.bne1.internode.on.net [59.167.97.73]) by smtp3.adl2.internode.on.net (8.13.6/8.13.5) with ESMTP id k5F4DI8p085716 for ; Thu, 15 Jun 2006 13:43:18 +0930 (CST) (envelope-from jonathan@kaolin.wh9.net) Received: from jonathan by stapler.kaolin.wh9.net with local (Exim 4.50) id 1FqjEL-0004mK-T5 for rhythmbox-devel@gnome.org; Thu, 15 Jun 2006 14:13:17 +1000 Date: Thu, 15 Jun 2006 14:13:17 +1000 To: rhythmbox-devel@gnome.org Message-ID: <20060615041317.GC18230@kaolin.wh9.net> Mail-Followup-To: rhythmbox-devel@gnome.org References: <1150321213.15485.22.camel@midnight> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1150321213.15485.22.camel@midnight> X-Represent-the-Ocean: Yes User-Agent: Mutt/1.5.9i From: Jonathan Matthew X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.425 tagged_above=-999 required=2 tests=[AWL=-0.037, BAYES_00=-2.599, FORGED_RCVD_HELO=0.135, SPF_HELO_PASS=-0.001, TW_HM=0.077] X-Spam-Score: -2.425 X-Spam-Level: Subject: Re: [Rhythmbox-devel] Magnatune catalog/purchasing plugin X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Jun 2006 04:14:19 -0000 On Wed, Jun 14, 2006 at 02:40:13PM -0700, Adam Zimmerman wrote: > Hi everyone, > > After reading this[1] entry in the blog of Magnatune's founder, I > figured I'd try to write a plugin for rhythmbox that did the same thing > as an exercise. So, after a while, I realized that I have basically no > idea how rhythmbox works, and the plugins I'm looking at for help > (mostly generic-player, since it adds a source) are written in C, which > I don't know. I think the DAAP and iPod sources would be better to work from for what you're doing, since they directly create their own rhythmdb entries rather than importing from a filesystem. > So I've got a couple of questions about python plugins/rhythmbox in > general. I'd appreciate any help anyone could give me. > > - How do I add songs to my source? generic-player seems to get its own > rhythmdb instance or something, and then call db.add_uri on the song > (directory in that case). I tried this in the python console, and > succeeded in adding a song to the library, so it seems right, just that > I need a separate db (or do I?). You don't need a separate db - there can only be one instance of the database at the moment. What everything does at the moment is retrieve a reference to the db object from the shell object. It looks like you're already doing this correctly. > > - Is there a way to associate other data with an entry (such as the > album sku)? add_uri only takes the uri of the file as an argument. I don't think we have a way to do that from python. In C, you specify an extra amount of space to allocate with each entry of your given type, then use rhythmdb_entry_get_type_data() to get a pointer to it. > - Is there a way to manually set the metadata for a track, so rhythmbox > doesn't have to hit every mp3 file on magnatune? Basically, look at how the ipod source works (add_ipod_song_to_db() in rb-ipod-source.c). It registers an entry type, then for each entry in the ipod's database, it creates an entry (rhythmdb_entry_new), sets various properties (rhythmdb_entry_set), then commits the changes (rhythmdb_commit). You may have some problems trying to do this in python, though, since I don't think anyone has tried it before. I'll have a look at this and the entry type data thing later on and post more information. I don't think we'll be making any changes until we release 0.9.5, which should be fairly soon. > And some other questions related to purchasing (I'm going to try to get > playback working first, so these are lower priority): > > - I'm not quite sure how to allow the user to set options (such as email > address, credit card info, etc.). Ideally I'd like to give the user the > option of entering cc info every time (default) or saving it. If your plugin provides an implementation of the 'create_configure_dialog' method, rhythmbox will display the resulting dialog when you hit the 'configure' button on the plugin dialog. You can (optionally) store the information in gconf, under /apps/rhythmbox/plugins//. Another option would be to override the 'impl_activate' method on the source object, so the first time the user selects your source, you can pop up a window asking for the information you need. > - How do I add a context-menu action to an entry ("Buy this album")? The entry view for your source will emit a show-popup signal when the user right clicks (or hits the menu key, or whatever). Your source can attach a handler to that and show its popup. I don't know much about doing this in python. > - Can I use track-transfer to transfer a bought file from its download > location into the library? Or do I have to use gnomevfs.xfer_uri? I think either would work, unless you needed to present authentication information or cookies or something, in which case you'd probably need to use gnomevfs. > That's all I can think of at the moment. Thanks in advance for any help! Hopefully I've given you some helpful information here. Good luck! From adam_zimmerman@sfu.ca Thu Jun 15 02:26:31 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 471843B0333 for ; Thu, 15 Jun 2006 02:26:31 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 16148-09 for ; Thu, 15 Jun 2006 02:26:28 -0400 (EDT) Received: from pobox.sfu.ca (pobox.sfu.ca [142.58.101.28]) by menubar.gnome.org (Postfix) with ESMTP id C68013B01D0 for ; Thu, 15 Jun 2006 02:26:27 -0400 (EDT) Received: from [192.168.1.104] (d154-20-161-87.bchsia.telus.net [154.20.161.87]) (authenticated bits=0) by pobox.sfu.ca (8.13.6/8.13.5/SFU-6.0G) with ESMTP id k5F6Q7Ow003734 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NOT) for ; Wed, 14 Jun 2006 23:26:10 -0700 (PDT) From: Adam Zimmerman To: rhythmbox-devel@gnome.org In-Reply-To: <20060615041317.GC18230@kaolin.wh9.net> References: <1150321213.15485.22.camel@midnight> <20060615041317.GC18230@kaolin.wh9.net> Content-Type: text/plain Date: Wed, 14 Jun 2006 23:26:06 -0700 Message-Id: <1150352766.4396.10.camel@midnight> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by antibody.sfu.ca running antivirus scanner X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.407 tagged_above=-999 required=2 tests=[AWL=0.115, BAYES_00=-2.599, TW_HM=0.077] X-Spam-Score: -2.407 X-Spam-Level: Subject: Re: [Rhythmbox-devel] Magnatune catalog/purchasing plugin X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Jun 2006 06:26:31 -0000 Brilliant, thank you! Looking at the ipod source definitely helped me better understand what I need to do. On Thu, 2006-15-06 at 14:13 +1000, Jonathan Matthew wrote: > On Wed, Jun 14, 2006 at 02:40:13PM -0700, Adam Zimmerman wrote: > > > > - How do I add songs to my source? generic-player seems to get its own > > rhythmdb instance or something, and then call db.add_uri on the song > > (directory in that case). I tried this in the python console, and > > succeeded in adding a song to the library, so it seems right, just that > > I need a separate db (or do I?). > > You don't need a separate db - there can only be one instance of the > database at the moment. What everything does at the moment is retrieve > a reference to the db object from the shell object. It looks like > you're already doing this correctly. > OK, good to know. So does rhythmbox decide what source to show an entry in by its entry-type? > > > > - Is there a way to associate other data with an entry (such as the > > album sku)? add_uri only takes the uri of the file as an argument. > > I don't think we have a way to do that from python. In C, you specify > an extra amount of space to allocate with each entry of your given type, > then use rhythmdb_entry_get_type_data() to get a pointer to it. > This is only useful once I start doing purchasing, so I'll leave it for now. > > - Is there a way to manually set the metadata for a track, so rhythmbox > > doesn't have to hit every mp3 file on magnatune? > > Basically, look at how the ipod source works (add_ipod_song_to_db() in > rb-ipod-source.c). It registers an entry type, then for each entry in > the ipod's database, it creates an entry (rhythmdb_entry_new), sets > various properties (rhythmdb_entry_set), then commits the changes > (rhythmdb_commit). You may have some problems trying to do this in > python, though, since I don't think anyone has tried it before. > > I'll have a look at this and the entry type data thing later on and post > more information. I don't think we'll be making any changes until we > release 0.9.5, which should be fairly soon. > OK, this is the part I still need some help on. From what you're saying, I gather that my source needs to create its own entry type, right? Right now I'm doing this: def activate(self, shell): db = shell.get_property("db") model = db.query_model_new_empty() entry_type = rhythmdb.rhythmdb_entry_register_type("") self.source = gobject.new (MagnatuneSource, shell=shell, name=_("Magnatune"), query_model=model) shell.register_entry_type_for_source(self.source, entry_type) shell.append_source(self.source, None) Do I also need to do something when creating self.source? And then in the endElement method of the xml handler, I have: def endElement(self, name): if name == "Track": print "Adding: %s - %s" % (self._track['artist'], self._track['trackname']) # add the track to the source entry = self._db.entry_new(entry_type, self._track['url']) # how do we get the entry type for the source? self._db.entry_set_uninserted(entry, rhythmdb.PROP_ARTIST, self._track['artist']) self._db.entry_set_uninserted(entry, rhythmdb.PROP_ALBUM, self._track['albumname']) self._db.entry_set_uninserted(entry, rhythmdb.PROP_TITLE, self._track['trackname']) # etc., etc. self._db.commit() self._track = {} elif name == "AllSongs": pass # end of the file else: self._track[name] = self._text The problem is, I'm not sure how to get the entry_type argument for the call to entry_new. I've tried various things, and it keeps saying: TypeError: type should be a RhythmDBEntryType_ Thanks in advance. -- Adam Zimmerman CREATIVITY - http://mirrors.creativecommons.org/movingimages/Building_on_the_Past.mpg ALWAYS - http://www.musiccreators.ca/ BUILDS - http://www.ubuntu.com/ ON THE PAST - http://www.theopencd.org/ -- "People everywhere enjoy believing things that they know are not true. It spares them the ordeal of thinking for themselves and taking responsibility for what they know." [Brook Atkinson, "Once Around the Sun"] From jonathan@kaolin.wh9.net Thu Jun 15 06:41:33 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id E14EE3B041F for ; Thu, 15 Jun 2006 06:41:32 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 31260-02 for ; Thu, 15 Jun 2006 06:41:28 -0400 (EDT) Received: from smtp3.adl2.internode.on.net (smtp3.adl2.internode.on.net [203.16.214.203]) by menubar.gnome.org (Postfix) with ESMTP id 4FF8B3B03D9 for ; Thu, 15 Jun 2006 06:41:27 -0400 (EDT) Received: from stapler.kaolin.wh9.net (ppp97-73.lns1.bne1.internode.on.net [59.167.97.73]) by smtp3.adl2.internode.on.net (8.13.6/8.13.5) with ESMTP id k5FAfBQt086003 for ; Thu, 15 Jun 2006 20:11:12 +0930 (CST) (envelope-from jonathan@kaolin.wh9.net) Received: from jonathan by stapler.kaolin.wh9.net with local (Exim 4.50) id 1FqpHj-0005Db-F6 for rhythmbox-devel@gnome.org; Thu, 15 Jun 2006 20:41:11 +1000 Date: Thu, 15 Jun 2006 20:41:11 +1000 To: rhythmbox-devel@gnome.org Message-ID: <20060615104111.GA19789@kaolin.wh9.net> Mail-Followup-To: rhythmbox-devel@gnome.org References: <1150321213.15485.22.camel@midnight> <20060615041317.GC18230@kaolin.wh9.net> <1150352766.4396.10.camel@midnight> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1150352766.4396.10.camel@midnight> X-Represent-the-Ocean: Yes User-Agent: Mutt/1.5.9i From: Jonathan Matthew X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.424 tagged_above=-999 required=2 tests=[AWL=-0.036, BAYES_00=-2.599, FORGED_RCVD_HELO=0.135, SPF_HELO_PASS=-0.001, TW_HM=0.077] X-Spam-Score: -2.424 X-Spam-Level: Subject: Re: [Rhythmbox-devel] Magnatune catalog/purchasing plugin X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Jun 2006 10:41:33 -0000 On Wed, Jun 14, 2006 at 11:26:06PM -0700, Adam Zimmerman wrote: > Brilliant, thank you! Looking at the ipod source definitely helped me > better understand what I need to do. > > On Thu, 2006-15-06 at 14:13 +1000, Jonathan Matthew wrote: > > On Wed, Jun 14, 2006 at 02:40:13PM -0700, Adam Zimmerman wrote: > > > > > > - How do I add songs to my source? generic-player seems to get its own > > > rhythmdb instance or something, and then call db.add_uri on the song > > > (directory in that case). I tried this in the python console, and > > > succeeded in adding a song to the library, so it seems right, just that > > > I need a separate db (or do I?). > > > > You don't need a separate db - there can only be one instance of the > > database at the moment. What everything does at the moment is retrieve > > a reference to the db object from the shell object. It looks like > > you're already doing this correctly. > > > > OK, good to know. So does rhythmbox decide what source to show an entry > in by its entry-type? Sources display entries using an RBEntryView instance (or rb.EntryView in python). The RBEntryView is a tree view backed by a RhythmDBQueryModel, which is a GtkTreeModel that contains a set of entries matching particular criteria. So, an entry is shown in any source for which it matches the query. > > > - Is there a way to manually set the metadata for a track, so rhythmbox > > > doesn't have to hit every mp3 file on magnatune? > > > > Basically, look at how the ipod source works (add_ipod_song_to_db() in > > rb-ipod-source.c). It registers an entry type, then for each entry in > > the ipod's database, it creates an entry (rhythmdb_entry_new), sets > > various properties (rhythmdb_entry_set), then commits the changes > > (rhythmdb_commit). You may have some problems trying to do this in > > python, though, since I don't think anyone has tried it before. > > > > I'll have a look at this and the entry type data thing later on and post > > more information. I don't think we'll be making any changes until we > > release 0.9.5, which should be fairly soon. > > > > OK, this is the part I still need some help on. From what you're saying, > I gather that my source needs to create its own entry type, right? Right > now I'm doing this: > > def activate(self, shell): > db = shell.get_property("db") > model = db.query_model_new_empty() > entry_type = rhythmdb.rhythmdb_entry_register_type("") It's not actually important (yet?) but it's a good idea to specify a name for your entry type. You also need to keep hold of the entry type, so that should probably be 'self.entry_type = ...'. > self.source = gobject.new (MagnatuneSource, shell=shell, > name=_("Magnatune"), query_model=model) > shell.register_entry_type_for_source(self.source, entry_type) > shell.append_source(self.source, None) > > Do I also need to do something when creating self.source? You should be creating a query model like this: query = db.query_parse(rhythmdb.QUERY_PROP_EQUALS, rhythmdb.PROP_TYPE, self.entry_type) model = db.query_model_new(query) except query_parse doesn't seem to be available in python (codegen says vararg functions are not supported), so .. ignore this part for now. Instead, what you can do is model.add_entry(entry, -1) for each entry after the db.commit() call, which will manually insert each entry at the end of the model. We'll need to make query_parse available in python so you can implement searching or browsing, sooner or later. > And then in the endElement method of the xml handler, I have: > > def endElement(self, name): > if name == "Track": > print "Adding: %s - %s" % (self._track['artist'], > self._track['trackname']) > # add the track to the source > entry = self._db.entry_new(entry_type, self._track['url']) # how do we > get the entry type for the source? > > self._db.entry_set_uninserted(entry, rhythmdb.PROP_ARTIST, > self._track['artist']) > self._db.entry_set_uninserted(entry, rhythmdb.PROP_ALBUM, > self._track['albumname']) > self._db.entry_set_uninserted(entry, rhythmdb.PROP_TITLE, > self._track['trackname']) > # etc., etc. > > self._db.commit() > self._track = {} > elif name == "AllSongs": > pass # end of the file > else: > self._track[name] = self._text > > The problem is, I'm not sure how to get the entry_type argument for the > call to entry_new. I've tried various things, and it keeps saying: > TypeError: type should be a RhythmDBEntryType_ This should just be self.entry_type, I think. Otherwise, it looks like you're on the right track. From peter.grundstrom@gmail.com Thu Jun 15 07:35:43 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 086403B04C5 for ; Thu, 15 Jun 2006 07:35:43 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 02910-07 for ; Thu, 15 Jun 2006 07:35:36 -0400 (EDT) Received: from nf-out-0910.google.com (nf-out-0910.google.com [64.233.182.185]) by menubar.gnome.org (Postfix) with ESMTP id 2B7913B03BB for ; Thu, 15 Jun 2006 07:35:35 -0400 (EDT) Received: by nf-out-0910.google.com with SMTP id x30so68122nfb for ; Thu, 15 Jun 2006 04:35:11 -0700 (PDT) Received: by 10.49.93.15 with SMTP id v15mr1227847nfl; Thu, 15 Jun 2006 04:35:11 -0700 (PDT) Received: from ?192.168.1.34? ( [83.227.176.123]) by mx.gmail.com with ESMTP id c28sm633275nfb.2006.06.15.04.35.09; Thu, 15 Jun 2006 04:35:10 -0700 (PDT) From: Peter =?ISO-8859-1?Q?Grundstr=F6m?= To: rhythmbox-devel@gnome.org Content-Type: multipart/mixed; boundary="=-ZOcu/7Olr2ZAy5x6WJF2" Date: Thu, 15 Jun 2006 13:35:08 +0200 Message-Id: <1150371308.6819.1.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-0.884 tagged_above=-999 required=2 tests=[BAYES_00=-2.599, SPF_PASS=-0.001, TW_HM=0.077, UPPERCASE_25_50=0, URIBL_SBL=1.639] X-Spam-Score: -0.884 X-Spam-Level: X-Mailman-Approved-At: Thu, 15 Jun 2006 07:49:10 -0400 Subject: [Rhythmbox-devel] MTP support to rhythmbox X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Jun 2006 11:35:43 -0000 --=-ZOcu/7Olr2ZAy5x6WJF2 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit (it seams like my first attempt to send this to the mailing-list was unsuccessful, hopefully it'll go better this time.) Hello all, I thought I'd share with you the result of my hacking the last days. The attached patch adds support for handling MTP (Microsoft Transfer Protocol) to rhythmbox. I'm not the one who talked about MTP-support a couple of moth ago, that was Steve Fox, but I've talked to him and he hadn't had the time to work on it, but I have :). But since this is my first contribution to rhythmbox, or anything for that part, I probably should introduce myself. My name is Peter Grundström, petgru/pete on irc, I'm 18 years old and I live in Sweden. I've been a user of opensource (linux/gnome/rhythmbox you name it) for quite some time now. The last year or so I've started to develop some useful programming skills. This is my first, but hopefully not my last, "major" contribution to any opensource project. So, back to the thing you probably are more interested in :) The patch adds basic mtp-device handling to rhythmbox. Setup the device, List the songs, Transfer songs and delete songs. It's built in the same way as the ipod support, one mtp-plugin and a mtp-source. It's still not perfect in any way, but it works. What it doesn't do / TODO: * You cant play the songs on the device. (the device never gets mounted, you only access it through the library libmtp.) * you have to run rhythmbox as root, since the libmtp requires root-privileges to access the device through libusb. This should probably be fixed with something like a udev-rule (in libmtp i presume). * the device has to be attached when you start rhythmbox, and the only way to detach it is to close rhythmbox. * I was working with that last thing, but I couldn't get the popup to work, it only says "Couldn't get menu widget for /MTPSourcePopup". Someone who is more experienced with rhythmbox maybe can figure out why. * It is a little delay when you close rythmbox which makes rhythmbox look like it hanged, and the "rhythmbox does not respond" dialog appears. No idea how to fix that. * test it. * find and fix the bugs (I'm subscribed to the mailing-list, so no need to reply extra to me) --=-ZOcu/7Olr2ZAy5x6WJF2 Content-Disposition: attachment; filename=mtp-device-0.1.patch Content-Type: text/x-patch; name=mtp-device-0.1.patch; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: 8bit diff -u -r1.246 configure.ac --- configure.ac 11 Jun 2006 11:12:24 -0000 1.246 +++ configure.ac 12 Jun 2006 21:57:42 -0000 @@ -121,6 +121,26 @@ fi AM_CONDITIONAL(USE_IPOD, test x"$use_ipod" = xyes) +dnl mtp support + +AC_ARG_WITH(mtp, + AC_HELP_STRING([--with-mtp], + [Enable MTP support]),, + with_mtp=auto) +if test "x$with_mtp" != "xno"; then + + PKG_CHECK_MODULES(MTP, libmtp, have_libmtp=yes, have_libmtp=no) + if test "x$have_libmtp" = "xno" -a "x$with_mtp" = "xyes"; then + AC_MSG_ERROR([MTP explicitly requested but libmtp couldn't be found]) + fi + if test "x$have_libmtp" = "xyes"; then + use_mtp=yes + AC_SUBST(MTP_CFLAGS) + AC_SUBST(MTP_LIBS) + fi +fi +AM_CONDITIONAL(USE_MTP, test x"$use_mtp" = xyes) + dnl Database AC_ARG_WITH(database, AC_HELP_STRING([--with-database=tree|libgda], @@ -917,6 +937,7 @@ plugins/sample/Makefile plugins/audioscrobbler/Makefile plugins/ipod/Makefile +plugins/mtp/Makefile plugins/lirc/Makefile plugins/lyrics/Makefile plugins/sample-python/Makefile @@ -988,6 +1009,11 @@ AC_MSG_NOTICE([** iPod integration enabled]) else AC_MSG_NOTICE([ iPod integration disabled]) +fi +if test x"$use_mtp" = xyes; then + AC_MSG_NOTICE([** MTP integration enabled]) +else + AC_MSG_NOTICE([ MTP integration disabled]) fi if test x"$enable_daap" = xyes; then AC_MSG_NOTICE([** DAAP (music sharing) support is enabled]) diff -u -r1.8 Makefile.am --- plugins/Makefile.am 25 May 2006 07:20:47 -0000 1.8 +++ plugins/Makefile.am 12 Jun 2006 21:57:42 -0000 @@ -24,6 +24,10 @@ SUBDIRS += ipod endif +if USE_MTP +SUBDIRS += mtp +endif + noinst_LTLIBRARIES = librbplugins.la librbplugins_la_SOURCES = \ --- /dev/null 2006-05-22 16:25:23.000000000 +0200 +++ plugins/mtp/Makefile.in 2006-06-12 23:19:18.000000000 +0200 @@ -0,0 +1,723 @@ +# Makefile.in generated by automake 1.7.9 from Makefile.am. +# @configure_input@ + +# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 +# Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = ../.. + +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_triplet = @host@ +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMDEP_FALSE = @AMDEP_FALSE@ +AMDEP_TRUE = @AMDEP_TRUE@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AVAHI_CFLAGS = @AVAHI_CFLAGS@ +AVAHI_LIBS = @AVAHI_LIBS@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CHECK_CFLAGS = @CHECK_CFLAGS@ +CHECK_LIBS = @CHECK_LIBS@ +CONFIG_STATUS_DEPENDENCIES = @CONFIG_STATUS_DEPENDENCIES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIR = @DATADIR@ +DATADIRNAME = @DATADIRNAME@ +DBUS_CFLAGS = @DBUS_CFLAGS@ +DBUS_GLIB_BIN = @DBUS_GLIB_BIN@ +DBUS_LIBS = @DBUS_LIBS@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ENABLE_GTK_DOC_FALSE = @ENABLE_GTK_DOC_FALSE@ +ENABLE_GTK_DOC_TRUE = @ENABLE_GTK_DOC_TRUE@ +ENABLE_PYTHON_FALSE = @ENABLE_PYTHON_FALSE@ +ENABLE_PYTHON_TRUE = @ENABLE_PYTHON_TRUE@ +ENABLE_SK_FALSE = @ENABLE_SK_FALSE@ +ENABLE_SK_TRUE = @ENABLE_SK_TRUE@ +ENABLE_TRACK_TRANSFER_FALSE = @ENABLE_TRACK_TRANSFER_FALSE@ +ENABLE_TRACK_TRANSFER_TRUE = @ENABLE_TRACK_TRANSFER_TRUE@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +GCONFTOOL = @GCONFTOOL@ +GCONF_SCHEMAS_INSTALL_FALSE = @GCONF_SCHEMAS_INSTALL_FALSE@ +GCONF_SCHEMAS_INSTALL_TRUE = @GCONF_SCHEMAS_INSTALL_TRUE@ +GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ +GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ +GDA_CFLAGS = @GDA_CFLAGS@ +GDA_LIBS = @GDA_LIBS@ +GDU_MODULE_VERSION_CHECK_CFLAGS = @GDU_MODULE_VERSION_CHECK_CFLAGS@ +GDU_MODULE_VERSION_CHECK_LIBS = @GDU_MODULE_VERSION_CHECK_LIBS@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GNOME_MEDIA_PROFILES_CFLAGS = @GNOME_MEDIA_PROFILES_CFLAGS@ +GNOME_MEDIA_PROFILES_LIBS = @GNOME_MEDIA_PROFILES_LIBS@ +GSTREAMER_0_10_CFLAGS = @GSTREAMER_0_10_CFLAGS@ +GSTREAMER_0_10_LIBS = @GSTREAMER_0_10_LIBS@ +GSTREAMER_0_8_CFLAGS = @GSTREAMER_0_8_CFLAGS@ +GSTREAMER_0_8_LIBS = @GSTREAMER_0_8_LIBS@ +GTK_DOC_USE_LIBTOOL_FALSE = @GTK_DOC_USE_LIBTOOL_FALSE@ +GTK_DOC_USE_LIBTOOL_TRUE = @GTK_DOC_USE_LIBTOOL_TRUE@ +HAL_CFLAGS = @HAL_CFLAGS@ +HAL_LIBS = @HAL_LIBS@ +HAVE_CHECK_FALSE = @HAVE_CHECK_FALSE@ +HAVE_CHECK_TRUE = @HAVE_CHECK_TRUE@ +HAVE_HAL_0_2_FALSE = @HAVE_HAL_0_2_FALSE@ +HAVE_HAL_0_2_TRUE = @HAVE_HAL_0_2_TRUE@ +HAVE_HAL_0_5_FALSE = @HAVE_HAL_0_5_FALSE@ +HAVE_HAL_0_5_TRUE = @HAVE_HAL_0_5_TRUE@ +HAVE_HAL_FALSE = @HAVE_HAL_FALSE@ +HAVE_HAL_TRUE = @HAVE_HAL_TRUE@ +HAVE_LINUX_CDROM_FALSE = @HAVE_LINUX_CDROM_FALSE@ +HAVE_LINUX_CDROM_TRUE = @HAVE_LINUX_CDROM_TRUE@ +HAVE_MUSICBRAINZ_FALSE = @HAVE_MUSICBRAINZ_FALSE@ +HAVE_MUSICBRAINZ_TRUE = @HAVE_MUSICBRAINZ_TRUE@ +HELP_DIR = @HELP_DIR@ +HOWL_CFLAGS = @HOWL_CFLAGS@ +HOWL_LIBS = @HOWL_LIBS@ +HTML_DIR = @HTML_DIR@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@ +INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@ +INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_ICONV = @INTLTOOL_ICONV@ +INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@ +INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@ +INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@ +INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@ +INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@ +INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@ +INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@ +INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@ +INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@ +INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@ +INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@ +INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@ +INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@ +INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@ +INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@ +IPOD_CFLAGS = @IPOD_CFLAGS@ +IPOD_LIBS = @IPOD_LIBS@ +IPOD_PHONE_CFLAGS = @IPOD_PHONE_CFLAGS@ +IPOD_PHONE_LIBS = @IPOD_PHONE_LIBS@ +LDFLAGS = @LDFLAGS@ +LIBNAUTILUS_BURN_CFLAGS = @LIBNAUTILUS_BURN_CFLAGS@ +LIBNAUTILUS_BURN_LIBS = @LIBNAUTILUS_BURN_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBSEXY_CFLAGS = @LIBSEXY_CFLAGS@ +LIBSEXY_LIBS = @LIBSEXY_LIBS@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ +MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ +MAKEINFO = @MAKEINFO@ +MDNS_CFLAGS = @MDNS_CFLAGS@ +MDNS_LIBS = @MDNS_LIBS@ +MKDTEMP_MISSING_FALSE = @MKDTEMP_MISSING_FALSE@ +MKDTEMP_MISSING_TRUE = @MKDTEMP_MISSING_TRUE@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +MTP_CFLAGS = @MTP_CFLAGS@ +MTP_LIBS = @MTP_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NOTIFY_CFLAGS = @NOTIFY_CFLAGS@ +NOTIFY_LIBS = @NOTIFY_LIBS@ +NO_STRICT_ALIASING_CFLAGS = @NO_STRICT_ALIASING_CFLAGS@ +OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +PLUGIN_LIBTOOL_FLAGS = @PLUGIN_LIBTOOL_FLAGS@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +PYGTK_CFLAGS = @PYGTK_CFLAGS@ +PYGTK_CODEGEN = @PYGTK_CODEGEN@ +PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ +PYGTK_H2DEF = @PYGTK_H2DEF@ +PYGTK_LIBS = @PYGTK_LIBS@ +PYTHON = @PYTHON@ +PYTHON_CFLAGS = @PYTHON_CFLAGS@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ +PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_LIB_LOC = @PYTHON_LIB_LOC@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RB_CLIENT_CFLAGS = @RB_CLIENT_CFLAGS@ +RB_CLIENT_LIBS = @RB_CLIENT_LIBS@ +RHYTHMBOX_CFLAGS = @RHYTHMBOX_CFLAGS@ +RHYTHMBOX_LIBS = @RHYTHMBOX_LIBS@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SOUNDSYSTEM_DEPS = @SOUNDSYSTEM_DEPS@ +SOUP_CFLAGS = @SOUP_CFLAGS@ +SOUP_LIBS = @SOUP_LIBS@ +STRIP = @STRIP@ +TOTEM_PLPARSER_CFLAGS = @TOTEM_PLPARSER_CFLAGS@ +TOTEM_PLPARSER_LIBS = @TOTEM_PLPARSER_LIBS@ +USE_AVAHI_FALSE = @USE_AVAHI_FALSE@ +USE_AVAHI_TRUE = @USE_AVAHI_TRUE@ +USE_DAAP_FALSE = @USE_DAAP_FALSE@ +USE_DAAP_TRUE = @USE_DAAP_TRUE@ +USE_GDADB_FALSE = @USE_GDADB_FALSE@ +USE_GDADB_TRUE = @USE_GDADB_TRUE@ +USE_GSTREAMER_0_10_FALSE = @USE_GSTREAMER_0_10_FALSE@ +USE_GSTREAMER_0_10_TRUE = @USE_GSTREAMER_0_10_TRUE@ +USE_GSTREAMER_0_8_FALSE = @USE_GSTREAMER_0_8_FALSE@ +USE_GSTREAMER_0_8_TRUE = @USE_GSTREAMER_0_8_TRUE@ +USE_HOWL_FALSE = @USE_HOWL_FALSE@ +USE_HOWL_TRUE = @USE_HOWL_TRUE@ +USE_IPOD_FALSE = @USE_IPOD_FALSE@ +USE_IPOD_TRUE = @USE_IPOD_TRUE@ +USE_LIBSOUP_FALSE = @USE_LIBSOUP_FALSE@ +USE_LIBSOUP_TRUE = @USE_LIBSOUP_TRUE@ +USE_MTP_FALSE = @USE_MTP_FALSE@ +USE_MTP_TRUE = @USE_MTP_TRUE@ +USE_NLS = @USE_NLS@ +USE_NOTIFY_FALSE = @USE_NOTIFY_FALSE@ +USE_NOTIFY_TRUE = @USE_NOTIFY_TRUE@ +USE_TREEDB_FALSE = @USE_TREEDB_FALSE@ +USE_TREEDB_TRUE = @USE_TREEDB_TRUE@ +VERSION = @VERSION@ +WITH_AUDIOSCROBBLER_FALSE = @WITH_AUDIOSCROBBLER_FALSE@ +WITH_AUDIOSCROBBLER_TRUE = @WITH_AUDIOSCROBBLER_TRUE@ +WITH_DBUS_FALSE = @WITH_DBUS_FALSE@ +WITH_DBUS_TRUE = @WITH_DBUS_TRUE@ +WITH_INTERNAL_LIBSEXY_FALSE = @WITH_INTERNAL_LIBSEXY_FALSE@ +WITH_INTERNAL_LIBSEXY_TRUE = @WITH_INTERNAL_LIBSEXY_TRUE@ +WITH_LIRC_FALSE = @WITH_LIRC_FALSE@ +WITH_LIRC_TRUE = @WITH_LIRC_TRUE@ +WITH_METADATA_HELPER_FALSE = @WITH_METADATA_HELPER_FALSE@ +WITH_METADATA_HELPER_TRUE = @WITH_METADATA_HELPER_TRUE@ +WITH_OLD_DBUS_FALSE = @WITH_OLD_DBUS_FALSE@ +WITH_OLD_DBUS_TRUE = @WITH_OLD_DBUS_TRUE@ +WNOERROR_CFLAGS = @WNOERROR_CFLAGS@ +XGETTEXT = @XGETTEXT@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +ac_ct_RANLIB = @ac_ct_RANLIB@ +ac_ct_STRIP = @ac_ct_STRIP@ +ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@ +am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ +am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +datadir = @datadir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +plugindir = $(PLUGINDIR) +plugin_LTLIBRARIES = libmtpdevice.la + +libmtpdevice_la_SOURCES = \ + rb-mtp-plugin.c \ + $(top_srcdir)/sources/rb-mtp-source.c \ + $(top_srcdir)/sources/rb-mtp-source.h + + +libmtpdevice_la_LDFLAGS = $(PLUGIN_LIBTOOL_FLAGS) +libmtpdevice_la_LIBADD = \ + $(top_builddir)/lib/librb.la \ + $(HAL_LIBS) \ + $(MTP_LIBS) + + +INCLUDES = \ + -DGNOMELOCALEDIR=\""$(datadir)/locale"\" \ + -DG_LOG_DOMAIN=\"Rhythmbox\" \ + -I$(top_srcdir) \ + -I$(top_srcdir)/lib \ + -I$(top_srcdir)/metadata \ + -I$(top_srcdir)/player \ + -I$(top_srcdir)/rhythmdb \ + -I$(top_srcdir)/widgets \ + -I$(top_srcdir)/sources \ + -I$(top_srcdir)/iradio \ + -I$(top_srcdir)/podcast \ + -I$(top_srcdir)/plugins \ + -I$(top_srcdir)/shell \ + -DPIXMAP_DIR=\""$(datadir)/pixmaps"\" \ + -DSHARE_DIR=\"$(pkgdatadir)\" \ + -DDATADIR=\""$(datadir)"\" \ + $(RHYTHMBOX_CFLAGS) \ + $(WARN_CFLAGS) \ + $(HAL_CFLAGS) \ + $(MTP_CFLAGS) \ + -D_XOPEN_SOURCE -D_BSD_SOURCE + + +plugin_in_files = mtpdevice.rb-plugin.desktop.in + +plugin_DATA = $(plugin_in_files:.rb-plugin.desktop.in=.rb-plugin) + +EXTRA_DIST = $(plugin_in_files) + +CLEANFILES = $(plugin_DATA) +DISTCLEANFILES = $(plugin_DATA) +subdir = plugins/mtp +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +LTLIBRARIES = $(plugin_LTLIBRARIES) + +libmtpdevice_la_DEPENDENCIES = $(top_builddir)/lib/librb.la +am_libmtpdevice_la_OBJECTS = rb-mtp-plugin.lo rb-mtp-source.lo +libmtpdevice_la_OBJECTS = $(am_libmtpdevice_la_OBJECTS) + +DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/rb-mtp-plugin.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/rb-mtp-source.Plo +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \ + $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +DIST_SOURCES = $(libmtpdevice_la_SOURCES) +DATA = $(plugin_DATA) + +DIST_COMMON = $(srcdir)/Makefile.in Makefile.am +SOURCES = $(libmtpdevice_la_SOURCES) + +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu plugins/mtp/Makefile +Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) +pluginLTLIBRARIES_INSTALL = $(INSTALL) +install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(plugindir) + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + if test -f $$p; then \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " $(LIBTOOL) --mode=install $(pluginLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(plugindir)/$$f"; \ + $(LIBTOOL) --mode=install $(pluginLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(plugindir)/$$f; \ + else :; fi; \ + done + +uninstall-pluginLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + p="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(plugindir)/$$p"; \ + $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(plugindir)/$$p; \ + done + +clean-pluginLTLIBRARIES: + -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" = "$$p" && dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libmtpdevice.la: $(libmtpdevice_la_OBJECTS) $(libmtpdevice_la_DEPENDENCIES) + $(LINK) -rpath $(plugindir) $(libmtpdevice_la_LDFLAGS) $(libmtpdevice_la_OBJECTS) $(libmtpdevice_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) core *.core + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rb-mtp-plugin.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rb-mtp-source.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ +@am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ +@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ +@am__fastdepCC_TRUE@ fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$< + +.c.obj: +@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ +@am__fastdepCC_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ +@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ +@am__fastdepCC_TRUE@ fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` + +.c.lo: +@am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ +@am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ +@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ +@am__fastdepCC_TRUE@ fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< + +rb-mtp-source.o: $(top_srcdir)/sources/rb-mtp-source.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT rb-mtp-source.o -MD -MP -MF "$(DEPDIR)/rb-mtp-source.Tpo" \ +@am__fastdepCC_TRUE@ -c -o rb-mtp-source.o `test -f '$(top_srcdir)/sources/rb-mtp-source.c' || echo '$(srcdir)/'`$(top_srcdir)/sources/rb-mtp-source.c; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/rb-mtp-source.Tpo" "$(DEPDIR)/rb-mtp-source.Po"; \ +@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/rb-mtp-source.Tpo"; exit 1; \ +@am__fastdepCC_TRUE@ fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(top_srcdir)/sources/rb-mtp-source.c' object='rb-mtp-source.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/rb-mtp-source.Po' tmpdepfile='$(DEPDIR)/rb-mtp-source.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rb-mtp-source.o `test -f '$(top_srcdir)/sources/rb-mtp-source.c' || echo '$(srcdir)/'`$(top_srcdir)/sources/rb-mtp-source.c + +rb-mtp-source.obj: $(top_srcdir)/sources/rb-mtp-source.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT rb-mtp-source.obj -MD -MP -MF "$(DEPDIR)/rb-mtp-source.Tpo" \ +@am__fastdepCC_TRUE@ -c -o rb-mtp-source.obj `if test -f '$(top_srcdir)/sources/rb-mtp-source.c'; then $(CYGPATH_W) '$(top_srcdir)/sources/rb-mtp-source.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/sources/rb-mtp-source.c'; fi`; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/rb-mtp-source.Tpo" "$(DEPDIR)/rb-mtp-source.Po"; \ +@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/rb-mtp-source.Tpo"; exit 1; \ +@am__fastdepCC_TRUE@ fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(top_srcdir)/sources/rb-mtp-source.c' object='rb-mtp-source.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/rb-mtp-source.Po' tmpdepfile='$(DEPDIR)/rb-mtp-source.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rb-mtp-source.obj `if test -f '$(top_srcdir)/sources/rb-mtp-source.c'; then $(CYGPATH_W) '$(top_srcdir)/sources/rb-mtp-source.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/sources/rb-mtp-source.c'; fi` + +rb-mtp-source.lo: $(top_srcdir)/sources/rb-mtp-source.c +@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT rb-mtp-source.lo -MD -MP -MF "$(DEPDIR)/rb-mtp-source.Tpo" \ +@am__fastdepCC_TRUE@ -c -o rb-mtp-source.lo `test -f '$(top_srcdir)/sources/rb-mtp-source.c' || echo '$(srcdir)/'`$(top_srcdir)/sources/rb-mtp-source.c; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/rb-mtp-source.Tpo" "$(DEPDIR)/rb-mtp-source.Plo"; \ +@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/rb-mtp-source.Tpo"; exit 1; \ +@am__fastdepCC_TRUE@ fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(top_srcdir)/sources/rb-mtp-source.c' object='rb-mtp-source.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/rb-mtp-source.Plo' tmpdepfile='$(DEPDIR)/rb-mtp-source.TPlo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rb-mtp-source.lo `test -f '$(top_srcdir)/sources/rb-mtp-source.c' || echo '$(srcdir)/'`$(top_srcdir)/sources/rb-mtp-source.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: +pluginDATA_INSTALL = $(INSTALL_DATA) +install-pluginDATA: $(plugin_DATA) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(plugindir) + @list='$(plugin_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " $(pluginDATA_INSTALL) $$d$$p $(DESTDIR)$(plugindir)/$$f"; \ + $(pluginDATA_INSTALL) $$d$$p $(DESTDIR)$(plugindir)/$$f; \ + done + +uninstall-pluginDATA: + @$(NORMAL_UNINSTALL) + @list='$(plugin_DATA)'; for p in $$list; do \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " rm -f $(DESTDIR)$(plugindir)/$$f"; \ + rm -f $(DESTDIR)$(plugindir)/$$f; \ + done + +ETAGS = etags +ETAGSFLAGS = + +CTAGS = ctags +CTAGSFLAGS = + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$tags$$unique" \ + || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique + +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) + +top_distdir = ../.. +distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkinstalldirs) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(DATA) + +installdirs: + $(mkinstalldirs) $(DESTDIR)$(plugindir) $(DESTDIR)$(plugindir) +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f $(CONFIG_CLEAN_FILES) + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-libtool distclean-tags + +dvi: dvi-am + +dvi-am: + +info: info-am + +info-am: + +install-data-am: install-pluginDATA install-pluginLTLIBRARIES + +install-exec-am: + +install-info: install-info-am + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-info-am uninstall-pluginDATA \ + uninstall-pluginLTLIBRARIES + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am info info-am install \ + install-am install-data install-data-am install-exec \ + install-exec-am install-info install-info-am install-man \ + install-pluginDATA install-pluginLTLIBRARIES install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-info-am \ + uninstall-pluginDATA uninstall-pluginLTLIBRARIES + + +%.rb-plugin: %.rb-plugin.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*po) ; $(INTLTOOL_MERGE) $(top_srcdir)/po $< $@ -d -u -c $(top_builddir)/po/.intltool-merge-cache +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: --- /dev/null 2006-05-22 16:25:23.000000000 +0200 +++ plugins/mtp/Makefile.am 2006-06-10 23:33:27.000000000 +0200 @@ -0,0 +1,47 @@ +plugindir = $(PLUGINDIR) +plugin_LTLIBRARIES = libmtpdevice.la + +libmtpdevice_la_SOURCES = \ + rb-mtp-plugin.c \ + $(top_srcdir)/sources/rb-mtp-source.c \ + $(top_srcdir)/sources/rb-mtp-source.h + +libmtpdevice_la_LDFLAGS = $(PLUGIN_LIBTOOL_FLAGS) +libmtpdevice_la_LIBADD = \ + $(top_builddir)/lib/librb.la \ + $(HAL_LIBS) \ + $(MTP_LIBS) + +INCLUDES = \ + -DGNOMELOCALEDIR=\""$(datadir)/locale"\" \ + -DG_LOG_DOMAIN=\"Rhythmbox\" \ + -I$(top_srcdir) \ + -I$(top_srcdir)/lib \ + -I$(top_srcdir)/metadata \ + -I$(top_srcdir)/player \ + -I$(top_srcdir)/rhythmdb \ + -I$(top_srcdir)/widgets \ + -I$(top_srcdir)/sources \ + -I$(top_srcdir)/iradio \ + -I$(top_srcdir)/podcast \ + -I$(top_srcdir)/plugins \ + -I$(top_srcdir)/shell \ + -DPIXMAP_DIR=\""$(datadir)/pixmaps"\" \ + -DSHARE_DIR=\"$(pkgdatadir)\" \ + -DDATADIR=\""$(datadir)"\" \ + $(RHYTHMBOX_CFLAGS) \ + $(WARN_CFLAGS) \ + $(HAL_CFLAGS) \ + $(MTP_CFLAGS) \ + -D_XOPEN_SOURCE -D_BSD_SOURCE + +plugin_in_files = mtpdevice.rb-plugin.desktop.in + +%.rb-plugin: %.rb-plugin.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*po) ; $(INTLTOOL_MERGE) $(top_srcdir)/po $< $@ -d -u -c $(top_builddir)/po/.intltool-merge-cache + +plugin_DATA = $(plugin_in_files:.rb-plugin.desktop.in=.rb-plugin) + +EXTRA_DIST = $(plugin_in_files) + +CLEANFILES = $(plugin_DATA) +DISTCLEANFILES = $(plugin_DATA) --- /dev/null 2006-05-22 16:25:23.000000000 +0200 +++ plugins/mtp/mtpdevice.rb-plugin.desktop.in 2006-06-10 23:32:49.000000000 +0200 @@ -0,0 +1,8 @@ +[RB Plugin] +Module=mtpdevice +IAge=1 +_Name=MTP Support +_Description=Adds mtp support to Rhythmbox so that it can show an mtp-device content +Authors=Peter Grundström +Copyright=(C) 2006 Peter Grundström +Website=http://www.rhythmbox.org --- /dev/null 2006-05-22 16:25:23.000000000 +0200 +++ plugins/mtp/rb-mtp-plugin.c 2006-06-12 23:11:27.000000000 +0200 @@ -0,0 +1,209 @@ +/* + * rb-ipod-plugin.c + * + * Copyright (C) 2006 James Livingston + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include +#include +#include +#include + +#include "rb-source.h" +#include "rb-mtp-source.h" +#include "rb-plugin.h" +#include "rb-debug.h" +#include "rb-file-helpers.h" +#include "rb-util.h" +#include "rb-shell.h" + + +#define RB_TYPE_MTP_PLUGIN (rb_mtp_plugin_get_type ()) +#define RB_MTP_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), RB_TYPE_MTP_PLUGIN, RBMtpPlugin)) +#define RB_MTP_PLUGIN_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), RB_TYPE_IPOD_PLUGIN, RBMtpPluginClass)) +#define RB_IS_MTP_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), RB_TYPE_MTP_PLUGIN)) +#define RB_IS_MTP_PLUGIN_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), RB_TYPE_MTP_PLUGIN)) +#define RB_MTP_PLUGIN_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), RB_TYPE_MTP_PLUGIN, RBMtpPluginClass)) + +typedef struct +{ + RBPlugin parent; + + RBShell *shell; + GtkActionGroup *action_group; + guint ui_merge_id; + + GList *mtp_sources; +} RBMtpPlugin; + +typedef struct +{ + RBPluginClass parent_class; +} RBMtpPluginClass; + + +G_MODULE_EXPORT GType register_rb_plugin (GTypeModule *module); +GType rb_mtp_plugin_get_type (void) G_GNUC_CONST; + +static void rb_mtp_plugin_init (RBMtpPlugin *plugin); +static void rb_mtp_plugin_finalize (GObject *object); +static void impl_activate (RBPlugin *plugin, RBShell *shell); +static void impl_deactivate (RBPlugin *plugin, RBShell *shell); + +static RBSource * create_source_cb (RBMtpPlugin *plugin,LIBMTP_mtpdevice_t *device); + +static void rb_mtp_plugin_eject (GtkAction *action, + RBMtpPlugin *plugin); + +RB_PLUGIN_REGISTER(RBMtpPlugin, rb_mtp_plugin) + +static GtkActionEntry rb_mtp_plugin_actions [] = +{ + { "MTPSourceEject", NULL, N_("_Eject"), NULL, + N_("Eject MTP-device"), + G_CALLBACK (rb_mtp_plugin_eject) } +}; + +static void +rb_mtp_plugin_class_init (RBMtpPluginClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + RBPluginClass *plugin_class = RB_PLUGIN_CLASS (klass); + + object_class->finalize = rb_mtp_plugin_finalize; + + plugin_class->activate = impl_activate; + plugin_class->deactivate = impl_deactivate; + + /* register types used by the plugin */ + RB_PLUGIN_REGISTER_TYPE(rb_mtp_source); +} + +static void +rb_mtp_plugin_init (RBMtpPlugin *plugin) +{ + rb_debug ("RBMtpPlugin initialising"); + LIBMTP_Init(); +} + +static void +rb_mtp_plugin_finalize (GObject *object) +{ + /*RBIpodPlugin *plugin = RB_IPOD_PLUGIN (object);*/ + + rb_debug ("RBMtpPlugin finalising"); + + G_OBJECT_CLASS (rb_mtp_plugin_parent_class)->finalize (object); +} + +static void +impl_activate (RBPlugin *bplugin, + RBShell *shell) +{ + RBMtpPlugin *plugin = RB_MTP_PLUGIN (bplugin); + GtkUIManager *uimanager = NULL; + + plugin->shell = shell; + + g_object_get (G_OBJECT (shell), + "ui-manager", &uimanager, + NULL); + + //ui + + plugin->action_group = gtk_action_group_new ("MTPActions"); + gtk_action_group_set_translation_domain (plugin->action_group, + GETTEXT_PACKAGE); + gtk_action_group_add_actions (plugin->action_group, + rb_mtp_plugin_actions, G_N_ELEMENTS (rb_mtp_plugin_actions), + plugin); + gtk_ui_manager_insert_action_group (uimanager, plugin->action_group, 0); + plugin->ui_merge_id = gtk_ui_manager_add_ui_from_file (uimanager, + rb_file ("mtp-ui.xml"), + NULL); + + //device detection + + uint16_t vid; + uint16_t pid; + + int ret = LIBMTP_Detect_Descriptor(&vid, &pid); + if (ret > 0) { + rb_debug ("DETECTED MTP DEVICE WITH VID:%04x, PID:%04X\n", vid, pid); + LIBMTP_mtpdevice_t *device = LIBMTP_Get_First_Device(); + create_source_cb(plugin,device); + } + + g_object_unref (G_OBJECT (uimanager)); +} + +static void +impl_deactivate (RBPlugin *bplugin, + RBShell *shell) +{ + RBMtpPlugin *plugin = RB_MTP_PLUGIN (bplugin); + GtkUIManager *uimanager = NULL; + + g_object_get (G_OBJECT (shell), + "ui-manager", &uimanager, + NULL); + + gtk_ui_manager_remove_ui (uimanager, plugin->ui_merge_id); + gtk_ui_manager_remove_action_group (uimanager, plugin->action_group); + + g_list_foreach (plugin->mtp_sources, (GFunc)rb_source_delete_thyself, NULL); + g_list_free (plugin->mtp_sources); + plugin->mtp_sources = NULL; + + g_object_unref (G_OBJECT (uimanager)); +} + +static void +rb_mtp_plugin_source_deleted (RBmtpSource *source, RBMtpPlugin *plugin) +{ + plugin->mtp_sources = g_list_remove (plugin->mtp_sources, source); +} + +static RBSource * +create_source_cb (RBMtpPlugin *plugin, LIBMTP_mtpdevice_t *device) +{ + RBSource *source; + source = RB_SOURCE (rb_mtp_source_new (plugin->shell,device)); + + rb_shell_append_source (plugin->shell, source, NULL); + plugin->mtp_sources = g_list_prepend (plugin->mtp_sources, source); + + g_signal_connect_object (G_OBJECT (source), + "deleted", G_CALLBACK (rb_mtp_plugin_source_deleted), + plugin, 0); + + return source; +} + +static void +rb_mtp_plugin_eject (GtkAction *action, + RBMtpPlugin *plugin) +{ + g_object_unref(plugin); +} --- /dev/null 2006-05-22 16:25:23.000000000 +0200 +++ sources/rb-mtp-source.h 2006-06-12 01:05:07.000000000 +0200 @@ -0,0 +1,55 @@ +/* + * arch-tag: Header for mtp source object + * + * Copyright (C) 2006 Peter Grundström + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +#ifndef __RB_MTP_SOURCE_H +#define __RB_MTP_SOURCE_H + +#include "rb-shell.h" +#include "rb-browser-source.h" +#include "rhythmdb.h" +#include + +G_BEGIN_DECLS + +#define RB_TYPE_MTP_SOURCE (rb_mtp_source_get_type ()) +#define RB_MTP_SOURCE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), RB_TYPE_MTP_SOURCE, RBmtpSource)) +#define RB_MTP_SOURCE_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), RB_TYPE_MTP_SOURCE, RBmtpSourceClass)) +#define RB_IS_MTP_SOURCE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), RB_TYPE_MTP_SOURCE)) +#define RB_IS_MTP_SOURCE_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), RB_TYPE_MTP_SOURCE)) +#define RB_MTP_SOURCE_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), RB_TYPE_MTP_SOURCE, RBmtpSourceClass)) + +typedef struct +{ + RBBrowserSource parent; +} RBmtpSource; + +typedef struct +{ + RBBrowserSourceClass parent; +} RBmtpSourceClass; + +RBBrowserSource * rb_mtp_source_new (RBShell *shell,LIBMTP_mtpdevice_t *device); +GType rb_mtp_source_get_type (void); +GType rb_mtp_source_register_type (GTypeModule *module); + +G_END_DECLS + +#endif /* __RB_MTP_SOURCE_H */ --- /dev/null 2006-05-22 16:25:23.000000000 +0200 +++ sources/rb-mtp-source.c 2006-06-12 23:11:54.000000000 +0200 @@ -0,0 +1,546 @@ +/* + * arch-tag: Implementation of mtp source object + * + * Copyright (C) 2006 Peter Grundström + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +#include + + +#include +#include +#include "rhythmdb.h" +#include +#include +#include +#include +#include "eel-gconf-extensions.h" +#include "rb-mtp-source.h" +#include "rb-debug.h" +#include "rb-file-helpers.h" +#include "rb-plugin.h" +#include "rb-static-playlist-source.h" +#include "rb-util.h" +#include "rb-refstring.h" +#include "rhythmdb.h" + +static GObject *rb_mtp_source_constructor (GType type, + guint n_construct_properties, + GObjectConstructParam *construct_properties); +static void rb_mtp_source_dispose (GObject *object); + +static GObject *rb_mtp_source_constructor (GType type, guint n_construct_properties, + GObjectConstructParam *construct_properties); +static void rb_mtp_source_dispose (GObject *object); + +static void rb_mtp_load_songs (RBmtpSource*); +static void impl_delete_thyself (RBSource *source); +static void impl_move_to_trash (RBSource *asource); +static void impl_paste (RBSource *source, GList *entries); +static gboolean impl_receive_drag (RBSource *source, GtkSelectionData *data); +static gboolean impl_show_popup (RBSource *source); + +typedef struct +{ + LIBMTP_mtpdevice_t *device; + GHashTable *entry_map; +} RBmtpSourcePrivate; + + +RB_PLUGIN_DEFINE_TYPE(RBmtpSource, + rb_mtp_source, + RB_TYPE_BROWSER_SOURCE) + +#define MTP_SOURCE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), RB_TYPE_MTP_SOURCE, RBmtpSourcePrivate)) + +static void +rb_mtp_source_class_init (RBmtpSourceClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + RBSourceClass *source_class = RB_SOURCE_CLASS (klass); + + object_class->constructor = rb_mtp_source_constructor; + object_class->dispose = rb_mtp_source_dispose; + + source_class->impl_show_popup = impl_show_popup; + source_class->impl_delete_thyself = impl_delete_thyself; + source_class->impl_can_move_to_trash = (RBSourceFeatureFunc) rb_true_function; + source_class->impl_move_to_trash = impl_move_to_trash; + source_class->impl_can_paste = (RBSourceFeatureFunc) rb_true_function; + source_class->impl_paste = impl_paste; + source_class->impl_receive_drag = impl_receive_drag; + + source_class->impl_can_rename = (RBSourceFeatureFunc) rb_true_function; + + g_type_class_add_private (klass, sizeof (RBmtpSourcePrivate)); +} + +static void +rb_mtp_source_init (RBmtpSource *source) +{ + g_message("source init"); + RBmtpSourcePrivate *priv = MTP_SOURCE_GET_PRIVATE (source); + priv = G_TYPE_INSTANCE_GET_PRIVATE (source, + RB_TYPE_MTP_SOURCE, + RBmtpSourcePrivate); +} + +static GObject * +rb_mtp_source_constructor (GType type, guint n_construct_properties, + GObjectConstructParam *construct_properties) +{ + RBmtpSource *source; + RBEntryView *songs; + RBmtpSourcePrivate *priv; + + source = RB_MTP_SOURCE (G_OBJECT_CLASS (rb_mtp_source_parent_class)-> + constructor (type, n_construct_properties, construct_properties)); + priv = MTP_SOURCE_GET_PRIVATE (source); + + songs = rb_source_get_entry_view (RB_SOURCE (source)); + rb_entry_view_append_column (songs, RB_ENTRY_VIEW_COL_RATING, FALSE); + rb_entry_view_append_column (songs, RB_ENTRY_VIEW_COL_TITLE, TRUE); + + gint size; + GtkIconTheme *theme; + GdkPixbuf *pixbuf; + + theme = gtk_icon_theme_get_default (); + gtk_icon_size_lookup (GTK_ICON_SIZE_LARGE_TOOLBAR, &size, NULL); + pixbuf = gtk_icon_theme_load_icon (theme, "multimedia-player", size, 0, NULL); + + rb_source_set_pixbuf (RB_SOURCE (source), pixbuf); + g_object_unref (pixbuf); + + return G_OBJECT (source); +} + +static void +rb_mtp_source_dispose (GObject *object) +{ + RBmtpSourcePrivate *priv = MTP_SOURCE_GET_PRIVATE (object); + + if (priv->entry_map) { + g_hash_table_destroy (priv->entry_map); + priv->entry_map = NULL; + } + + G_OBJECT_CLASS (rb_mtp_source_parent_class)->dispose (object); +} + +RBBrowserSource * +rb_mtp_source_new (RBShell *shell, LIBMTP_mtpdevice_t *device) +{ + RBmtpSource *source; + RhythmDBEntryType entry_type; + + entry_type = rhythmdb_entry_register_type (NULL); + + source = RB_MTP_SOURCE (g_object_new (RB_TYPE_MTP_SOURCE, + "entry-type", entry_type, + "shell",shell, + "visibility", TRUE, + "sourcelist-group", RB_SOURCELIST_GROUP_REMOVABLE, + NULL)); + + RBmtpSourcePrivate *priv = MTP_SOURCE_GET_PRIVATE (source); + priv->device = device; + + rb_mtp_load_songs (source); + + rb_shell_register_entry_type_for_source (shell, RB_SOURCE(source), entry_type); + + return RB_BROWSER_SOURCE (source); +} + +static void +entry_set_string_prop (RhythmDB *db, RhythmDBEntry *entry, + RhythmDBPropType propid, const char *str) +{ + GValue value = {0,}; + + if (!str) + str = _("Unknown"); + + g_value_init (&value, G_TYPE_STRING); + g_value_set_static_string (&value, str); + rhythmdb_entry_set_uninserted (RHYTHMDB (db), entry, propid, &value); + g_value_unset (&value); +} + +static void +add_mtp_song_to_db (RBmtpSource *source, RhythmDB *db, LIBMTP_track_t *song) +{ + RhythmDBEntry *entry; + RhythmDBEntryType entry_type; + RBmtpSourcePrivate *priv = MTP_SOURCE_GET_PRIVATE (source); + + /* Set URI */ + g_object_get (G_OBJECT (source), "entry-type", &entry_type, + NULL); + + entry = rhythmdb_entry_new (RHYTHMDB (db), entry_type, song->filename); + + if (entry == NULL) { + rb_debug ("cannot create entry %s", song->filename); + return; + } + + /* Set track number */ + if (song->tracknumber != 0) { + GValue value = {0, }; + g_value_init (&value, G_TYPE_ULONG); + g_value_set_ulong (&value, song->tracknumber); + rhythmdb_entry_set_uninserted (RHYTHMDB (db), entry, + RHYTHMDB_PROP_TRACK_NUMBER, + &value); + g_value_unset (&value); + } + + /* Set length */ + if (song->duration != 0) { + GValue value = {0, }; + g_value_init (&value, G_TYPE_ULONG); + g_value_set_ulong (&value, song->duration/1000); + rhythmdb_entry_set_uninserted (RHYTHMDB (db), entry, + RHYTHMDB_PROP_DURATION, + &value); + g_value_unset (&value); + } + + /* Set file size */ + if (song->filesize != 0) { + GValue value = {0, }; + g_value_init (&value, G_TYPE_UINT64); + g_value_set_uint64 (&value, song->filesize); + rhythmdb_entry_set_uninserted (RHYTHMDB (db), entry, + RHYTHMDB_PROP_FILE_SIZE, + &value); + g_value_unset (&value); + } + + /* Set title */ + entry_set_string_prop (RHYTHMDB (db), entry, + RHYTHMDB_PROP_TITLE, song->title); + + /* Set album, artist and genre from MTP */ + entry_set_string_prop (RHYTHMDB (db), entry, + RHYTHMDB_PROP_ARTIST, song->artist); + + entry_set_string_prop (RHYTHMDB (db), entry, + RHYTHMDB_PROP_ALBUM, song->album); + + entry_set_string_prop (RHYTHMDB (db), entry, + RHYTHMDB_PROP_GENRE, song->genre); + + + g_hash_table_insert (priv->entry_map, entry, song); + + rhythmdb_commit (RHYTHMDB (db)); +} + +static gboolean +load_mtp_db_idle_cb (RBmtpSource* source) +{ + RBShell *shell; + RhythmDB *db; + RBmtpSourcePrivate *priv = MTP_SOURCE_GET_PRIVATE (source); + + g_object_get (G_OBJECT (source), "shell", &shell, NULL); + g_object_get (G_OBJECT (shell), "db", &db, NULL); + g_object_unref (G_OBJECT (shell)); + + g_assert (db != NULL); + + LIBMTP_track_t *tracks = LIBMTP_Get_Tracklisting(priv->device); + if (tracks == NULL) { + rb_debug("No tracks.\n"); + } else { + LIBMTP_track_t *track,*tmp; + for (track = tracks; track != NULL; track = track->next) { + add_mtp_song_to_db (source, db, track); + tmp = track; + } + } + + g_object_unref (G_OBJECT (db)); + return FALSE; +} + +static void +rb_mtp_load_songs (RBmtpSource *source) +{ + RBmtpSourcePrivate *priv = MTP_SOURCE_GET_PRIVATE (source); + RBShell *shell; + + g_object_get (G_OBJECT (source), "shell", &shell, NULL); + g_object_unref (G_OBJECT (shell)); + + priv->entry_map = g_hash_table_new (g_direct_hash, g_direct_equal); + if ((priv->device != NULL) && (priv->entry_map != NULL)) { + /* FIXME: we could set a different icon depending on the iPod + * model + */ + char* name = LIBMTP_Get_Ownername(priv->device); + g_object_set (RB_SOURCE (source), + "name", name, + NULL); + free(name); + g_idle_add ((GSourceFunc)load_mtp_db_idle_cb, source); + } +} + +static void +impl_delete_thyself (RBSource *source) +{ + RBmtpSourcePrivate *priv = MTP_SOURCE_GET_PRIVATE (source); + + LIBMTP_track_t *tracks = LIBMTP_Get_Tracklisting(priv->device); + if (tracks == NULL) { + rb_debug("No tracks.\n"); + } else { + LIBMTP_track_t *track,*tmp; + for (track = tracks; track != NULL; track = track->next) { + tmp = track; + LIBMTP_destroy_track_t(tmp); + } + } + + LIBMTP_Release_Device(priv->device); + priv->device = NULL; + + RB_SOURCE_CLASS (rb_mtp_source_parent_class)->impl_delete_thyself (source); +} + +//track transfer + +static void dump_trackinfo(LIBMTP_track_t *track) +{ + g_message("Track ID: %d\n", track->item_id); + if (track->title != NULL) + g_message(" Title: %s\n", track->title); + if (track->artist != NULL) + g_message(" Artist: %s\n", track->artist); + if (track->genre != NULL) + g_message(" Genre: %s\n", track->genre); + if (track->album != NULL) + g_message(" Album: %s\n", track->album); + if (track->date != NULL) + g_message(" Date: %s\n", track->date); + if (track->filename != NULL) + g_message(" Origfilename: %s\n", track->filename); + g_message(" Track number: %d\n", track->tracknumber); + g_message(" Duration: %d milliseconds\n", track->duration); + g_message(" File size %llu bytes\n", track->filesize); + g_message(" Filetype: %s\n", LIBMTP_Get_Filetype_Description(track->filetype)); +} + +static char * +gdate_to_char (GDate* date) +{ + char tmp[80]; + snprintf(tmp, sizeof(tmp)-1, "%2i%2i%2iT0000.0", g_date_get_year(date),g_date_get_month(date),g_date_get_day(date)); + tmp[sizeof(tmp)-1] = '\0'; + return strdup(tmp); +} + +static LIBMTP_track_t * +add_song_to_mtp (LIBMTP_mtpdevice_t *device, RhythmDBEntry *entry) +{ + LIBMTP_track_t *trackmeta = LIBMTP_new_track_t(); + + const char *mimetype = rhythmdb_entry_get_string(entry,RHYTHMDB_PROP_MIMETYPE); + rb_debug("Sending track:\n"); + rb_debug("Codec: %s\n", mimetype); + + if (!strcasecmp(mimetype,"audio/mpeg") || !strcasecmp(mimetype,"application/x-id3")) { + trackmeta->filetype = LIBMTP_FILETYPE_MP3; + } else if (!strcasecmp(mimetype,"audio/x-wav")) { + trackmeta->filetype = LIBMTP_FILETYPE_WAV; + } else if (!strcasecmp(mimetype,"application/ogg")) { + trackmeta->filetype = LIBMTP_FILETYPE_OGG; + } else if (!strcasecmp(mimetype,"audio/mp4")) { + trackmeta->filetype = LIBMTP_FILETYPE_MP4; + } else if (!strcasecmp(mimetype,"audio/x-ms-wma") || !strcasecmp(mimetype,"audio/x-ms-asf")) { + trackmeta->filetype = LIBMTP_FILETYPE_WMA; + } else { + g_debug("Not a valid codec: \"%s\"\n", mimetype); + g_debug("Supported formats: MP3, WAV, OGG, MP4, WMA\n"); + } + + trackmeta->title = rhythmdb_entry_dup_string(entry,RHYTHMDB_PROP_TITLE); + trackmeta->album = rhythmdb_entry_dup_string(entry,RHYTHMDB_PROP_ALBUM); + trackmeta->artist = rhythmdb_entry_dup_string(entry,RHYTHMDB_PROP_ARTIST); + trackmeta->genre = rhythmdb_entry_dup_string(entry,RHYTHMDB_PROP_GENRE); + trackmeta->filename = gnome_vfs_get_local_path_from_uri (rhythmdb_entry_get_string(entry,RHYTHMDB_PROP_LOCATION)); + GDate d; + g_date_set_julian(&d,rhythmdb_entry_get_ulong(entry,RHYTHMDB_PROP_DATE)); + trackmeta->date = gdate_to_char(&d); + trackmeta->tracknumber = rhythmdb_entry_get_ulong(entry,RHYTHMDB_PROP_TRACK_NUMBER); + trackmeta->duration = rhythmdb_entry_get_ulong(entry,RHYTHMDB_PROP_DURATION) * 1000; + trackmeta->filesize = rhythmdb_entry_get_uint64(entry,RHYTHMDB_PROP_FILE_SIZE); + + g_message("Sending track...\n"); + dump_trackinfo(trackmeta); + LIBMTP_Send_Track_From_File(device, trackmeta->filename, trackmeta, NULL, NULL, 0); + g_message("\n"); + + g_message("New track ID: %d\n", trackmeta->item_id); + + //LIBMTP_destroy_track_t(trackmeta); + return trackmeta; +} + +static void +impl_paste (RBSource *source, GList *entries) +{ + GList *l; + RBShell *shell; + RhythmDB *db; + RBmtpSourcePrivate *priv = MTP_SOURCE_GET_PRIVATE (source); + + g_object_get (G_OBJECT (source), "shell", &shell, NULL); + g_object_get (G_OBJECT (shell), "db", &db, NULL); + g_object_unref (G_OBJECT (shell)); + + for (l = entries; l != NULL; l = l->next) { + RhythmDBEntry *entry; + RhythmDBEntryType entry_type; + + entry = (RhythmDBEntry *)l->data; + entry_type = rhythmdb_entry_get_entry_type (entry); + + if (entry_type == RHYTHMDB_ENTRY_TYPE_IRADIO_STATION || + entry_type == RHYTHMDB_ENTRY_TYPE_PODCAST_FEED ) + continue; + + LIBMTP_track_t *song = add_song_to_mtp(priv->device,entry); + + add_mtp_song_to_db(RB_MTP_SOURCE(source),db,song); + } +} + +static gboolean +impl_receive_drag (RBSource *asource, GtkSelectionData *data) +{ + RBBrowserSource *source = RB_BROWSER_SOURCE (asource); + GList *list, *i; + GList *entries = NULL; + RBShell *shell; + RhythmDB *db; + + rb_debug ("parsing uri list"); + list = rb_uri_list_parse ((const char *) data->data); + + g_object_get (G_OBJECT (source), "shell", &shell, NULL); + g_object_get (G_OBJECT (shell), "db", &db, NULL); + g_object_unref (G_OBJECT (shell)); + + for (i = list; i != NULL; i = g_list_next (i)) { + if (i->data != NULL) { + char *uri = i->data; + RhythmDBEntry *entry; + + entry = rhythmdb_entry_lookup_by_location (db, uri); + + if (entry == NULL) { + /* add to the library */ + g_print ("Where does that come from?\n"); + } else { + /* add to list of entries to copy */ + entries = g_list_prepend (entries, entry); + } + + g_free (uri); + } + } + g_object_unref (db); + g_list_free (list); + + if (entries) { + entries = g_list_reverse (entries); + if (rb_source_can_paste (asource)) + rb_source_paste (asource, entries); + g_list_free (entries); + } + + return TRUE; +} + +static void +remove_track_from_db (LIBMTP_mtpdevice_t *device, LIBMTP_track_t *track) +{ + //GList *it; + + //for (it = track->itdb->playlists; it != NULL; it = it->next) { + // itdb_playlist_remove_track ((Itdb_Playlist *)it->data, track); + //} + g_print ("DELETE TRACK"); + //dump_trackinfo(track); + g_print("id: %i", track->item_id); + + LIBMTP_Delete_File(device, track->item_id); +} + +static void +impl_move_to_trash (RBSource *asource) +{ + GList *sel, *tem; + RBEntryView *songs; + RBShell *shell; + RhythmDB *db; + RBmtpSourcePrivate *priv = MTP_SOURCE_GET_PRIVATE (asource); + RBmtpSource *source = RB_MTP_SOURCE (asource); + LIBMTP_mtpdevice_t *device = priv->device; + + g_object_get (G_OBJECT (source), "shell", &shell, NULL); + g_object_get (G_OBJECT (shell), "db", &db, NULL); + g_object_unref (G_OBJECT (shell)); + + songs = rb_source_get_entry_view (RB_SOURCE (asource)); + sel = rb_entry_view_get_selected_entries (songs); + for (tem = sel; tem != NULL; tem = tem->next) { + RhythmDBEntry *entry; + const gchar *uri; + LIBMTP_track_t *track; + + entry = (RhythmDBEntry *)tem->data; + uri = rhythmdb_entry_get_string (entry, + RHYTHMDB_PROP_LOCATION); + track = g_hash_table_lookup (priv->entry_map, entry); + if (track == NULL) { + g_warning ("Couldn't find track on mtp-device! (%s)", uri); + continue; + } + + remove_track_from_db (device,track); + g_hash_table_remove (priv->entry_map, entry); + rhythmdb_entry_move_to_trash (db, entry); + rhythmdb_commit (db); + } + + g_list_free (sel); +} + +static gboolean +impl_show_popup (RBSource *source) +{ + _rb_source_show_popup (RB_SOURCE (source), "/MTPSourcePopup"); + return TRUE; +} + --- /dev/null 2006-05-22 16:25:23.000000000 +0200 +++ data/ui/mtp-ui.xml 2006-06-12 19:49:07.000000000 +0200 @@ -0,0 +1,5 @@ + + + + + --=-ZOcu/7Olr2ZAy5x6WJF2-- From adam_zimmerman@sfu.ca Thu Jun 15 12:15:26 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 129C43B0609 for ; Thu, 15 Jun 2006 12:15:26 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 21814-08 for ; Thu, 15 Jun 2006 12:15:24 -0400 (EDT) Received: from pobox.sfu.ca (pobox.sfu.ca [142.58.101.28]) by menubar.gnome.org (Postfix) with ESMTP id 79A493B0147 for ; Thu, 15 Jun 2006 12:15:24 -0400 (EDT) Received: from [192.168.1.104] (d154-20-161-87.bchsia.telus.net [154.20.161.87]) (authenticated bits=0) by pobox.sfu.ca (8.13.6/8.13.5/SFU-6.0G) with ESMTP id k5FGEgbS004888 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NOT) for ; Thu, 15 Jun 2006 09:14:43 -0700 (PDT) From: Adam Zimmerman To: rhythmbox-devel@gnome.org In-Reply-To: <20060615104111.GA19789@kaolin.wh9.net> References: <1150321213.15485.22.camel@midnight> <20060615041317.GC18230@kaolin.wh9.net> <1150352766.4396.10.camel@midnight> <20060615104111.GA19789@kaolin.wh9.net> Content-Type: multipart/mixed; boundary="=-zcf7whJIBA834/LNEhfZ" Date: Thu, 15 Jun 2006 09:14:41 -0700 Message-Id: <1150388081.16258.22.camel@midnight> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 X-Virus-Scanned: by antibody.sfu.ca running antivirus scanner X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.383 tagged_above=-999 required=2 tests=[AWL=0.062, BAYES_00=-2.599, TW_GT=0.077, TW_HM=0.077] X-Spam-Score: -2.383 X-Spam-Level: Subject: Re: [Rhythmbox-devel] Magnatune catalog/purchasing plugin X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Jun 2006 16:15:26 -0000 --=-zcf7whJIBA834/LNEhfZ Content-Type: text/plain Content-Transfer-Encoding: 7bit OK, I'm almost there! There are still a couple issues though. On Thu, 2006-15-06 at 20:41 +1000, Jonathan Matthew wrote: > Sources display entries using an RBEntryView instance (or rb.EntryView > in python). The RBEntryView is a tree view backed by a > RhythmDBQueryModel, which is a GtkTreeModel that contains a set of > entries matching particular criteria. So, an entry is shown in any > source for which it matches the query. > I've made all the changes you suggested, and my source now shows up in the list. But when I click on it, I just see a blank grey box. Do I need to create my own EntryView? I can't see where the ipod source does it, but that could just be my weak (i.e., nonexistent) C skillz :P Also, duplicate URIs cause rhythmdb to give a warning. This happens a few times in song_info.xml, but it also happens for every track after the plugin is unloaded and then loaded again. Finally, loading the plugin blocks the UI for about 2 minutes while the tracks are being parsed. I tried (as you can see from the code) putting the call to xml.sax.parse into a Thread object, but when I tried that the method didn't run at all (the source showed up, but the "Adding artist - title" string never got printed). Is there something else I can do so my code doesn't block the UI? Thanks for all the help so far. -- Adam Zimmerman CREATIVITY - http://mirrors.creativecommons.org/movingimages/Building_on_the_Past.mpg ALWAYS - http://www.musiccreators.ca/ BUILDS - http://www.ubuntu.com/ ON THE PAST - http://www.theopencd.org/ -- If I have trouble installing Linux, something is wrong. Very wrong. -- Linus Torvalds --=-zcf7whJIBA834/LNEhfZ Content-Disposition: attachment; filename=magnatune.py Content-Type: text/x-python; name=magnatune.py; charset=utf-8 Content-Transfer-Encoding: 7bit import rhythmdb, rb import gobject, gtk from gettext import gettext as _ import xml.sax, xml.sax.handler import urllib from threading import Thread magnatune_partner_id = "rhythmbox" # this needs to be set up with magnatune ################################################ # Class to add Magnatune catalog to the source # ################################################ class TrackListHandler(xml.sax.handler.ContentHandler): def __init__(self, source, db, entry_type): xml.sax.handler.ContentHandler.__init__(self) self._track = {} # temporary dictionary for track info self._source = source self._db = db self._entry_type = entry_type def startElement(self, name, attrs): self._text = "" def endElement(self, name): if name == "Track": try: print "Adding: %s - %s" % (self._track['artist'], self._track['trackname']) # add the track to the source entry = self._db.entry_new(self._entry_type, self._track['url']) self._db.entry_set_uninserted(entry, rhythmdb.PROP_ARTIST, self._track['artist']) self._db.entry_set_uninserted(entry, rhythmdb.PROP_ALBUM, self._track['albumname']) self._db.entry_set_uninserted(entry, rhythmdb.PROP_TITLE, self._track['trackname']) self._db.entry_set_uninserted(entry, rhythmdb.PROP_TRACK_NUMBER, int(self._track['tracknum'])) self._db.entry_set_uninserted(entry, rhythmdb.PROP_YEAR, int(self._track['year'])) self._db.entry_set_uninserted(entry, rhythmdb.PROP_GENRE, self._track['mp3genre']) self._db.entry_set_uninserted(entry, rhythmdb.PROP_DURATION, int(self._track['seconds'])) # somehow associate the sku with the track as well, so we can buy it. self._db.commit() # temporary, until we can properly make proper query models in python model = self._source.get_property("query-model") model.add_entry(entry, -1) except: # This happens on duplicate uris being added print "Couldn't add track." pass # for now self._track = {} elif name == "AllSongs": pass # end of the file else: self._track[name] = self._text def characters(self, content): self._text = self._text + content ################################################ # Main Magnatune Plugin Class # ################################################ class Magnatune(rb.Plugin): def __init__(self): rb.Plugin.__init__(self) def activate(self, shell): self.db = shell.get_property("db") # disabled for now, as db.query_parse doesn't exist #query = db.query_parse(rhythmdb.QUERY_PROP_EQUALS, rhythmdb.PROP_TYPE, self.entry_type) #model = db.query_model_new(query) model = self.db.query_model_new_empty() self.entry_type = rhythmdb.rhythmdb_entry_register_type("MagnatuneEntryType") self.source = gobject.new (MagnatuneSource, shell=shell, name=_("Magnatune"), query_model=model) shell.register_entry_type_for_source(self.source, self.entry_type) #icon = blabla #self.source.set_property("icon", icon) shell.append_source(self.source, None) # Add the source to the list xml.sax.parse("http://magnatune.com/info/song_info.xml", TrackListHandler(self.source, self.db, self.entry_type)) # Add the tracks to the source # doesn't work #parse_thread = ParseThread(self.source, self.db, self.entry_type) #parse_thread.start() def deactivate(self, shell): self.source.delete_thyself() self.source = None # def create_configure_dialog(self): # return None # return a gtk dialog with configure options class ParseThread(Thread): def __init__(self, source, db, entry_type): Thread.__init__(self) self.source = source self.db = db self.entry_type = entry_type def run(self): xml.sax.parse("http://magnatune.com/info/song_info.xml", TrackListHandler(self.source, self.db, self.entry_type)) # Add the tracks to the source class MagnatuneSource(rb.Source): def __init__(self): rb.Source.__init__(self) gobject.type_register(MagnatuneSource) ################################################ # Purchasing code. Do this later # ################################################ class BuyAlbumHandler(xml.sax.handler.ContentHandler): # Class to download the track, etc. def __init__(self): xml.sax.handler.ContentHandler.__init__(self) def startElement(self, name, attrs): self._text = "" def endElement(self, name): # need to figure out the format of what gets returned, there's no documentation on the site. pass def characters(self, content): self._text = self._text + content def buy_track(track, amount, cc, name, email): # http://magnatune.com/info/api#purchase url = "https://magnatune.com/buy/buy_dl_cc_xml?" url = url + urllib.urlencode({ 'id': magnatune_partner_id, 'sku': track['albumsku'], 'amount': amount, 'cc': cc['number'], 'yy': cc['year'], 'mm': cc['month'], 'name': name, 'email':email }) xml.sax.parse(url, BuyAlbumHandler()) url = "" # get download url # transfer the track to the library with track-transfer --=-zcf7whJIBA834/LNEhfZ Content-Disposition: attachment; filename=magnatune.rb-plugin Content-Type: text/plain; name=magnatune.rb-plugin; charset=utf-8 Content-Transfer-Encoding: 7bit [RB Plugin] Loader=python Module=magnatune IAge=1 Name=Magnatune support Description=Adds support to Rhythmbox for playing the Magnatune catalog Authors=Adam Zimmerman Copyright=(C) 2006 Adam Zimmerman Website=http://www.rhythmbox.org --=-zcf7whJIBA834/LNEhfZ-- From stephen.english@gmail.com Thu Jun 15 18:25:03 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id F40EA3B00DD for ; Thu, 15 Jun 2006 18:25:02 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 03668-05 for ; Thu, 15 Jun 2006 18:25:01 -0400 (EDT) Received: from py-out-1112.google.com (py-out-1112.google.com [64.233.166.180]) by menubar.gnome.org (Postfix) with ESMTP id 926643B006C for ; Thu, 15 Jun 2006 18:25:01 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id c39so415067pyd for ; Thu, 15 Jun 2006 15:24:44 -0700 (PDT) Received: by 10.35.21.1 with SMTP id y1mr3708870pyi; Thu, 15 Jun 2006 15:24:44 -0700 (PDT) Received: by 10.35.20.11 with HTTP; Thu, 15 Jun 2006 15:24:43 -0700 (PDT) Message-ID: <94195f780606151524qe1e7ebfr25a2279021c937b0@mail.gmail.com> Date: Thu, 15 Jun 2006 23:24:44 +0100 From: "Stephen English" Sender: stephen.english@gmail.com To: rhythmbox-devel@gnome.org In-Reply-To: <1150388081.16258.22.camel@midnight> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_17600_7035465.1150410283999" References: <1150321213.15485.22.camel@midnight> <20060615041317.GC18230@kaolin.wh9.net> <1150352766.4396.10.camel@midnight> <20060615104111.GA19789@kaolin.wh9.net> <1150388081.16258.22.camel@midnight> X-Google-Sender-Auth: 6c2b3963e3467c6b X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.599 tagged_above=-999 required=2 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001, SPF_PASS=-0.001] X-Spam-Score: -2.599 X-Spam-Level: Subject: Re: [Rhythmbox-devel] Magnatune catalog/purchasing plugin X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Jun 2006 22:25:03 -0000 ------=_Part_17600_7035465.1150410283999 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline > Finally, loading the plugin blocks the UI for about 2 minutes while the > tracks are being parsed. I tried (as you can see from the code) putting > the call to xml.sax.parse into a Thread object, but when I tried that > the method didn't run at all (the source showed up, but the "Adding > artist - title" string never got printed). Is there something else I can > do so my code doesn't block the UI? Python threads can only run whilst the python interpreter is running, and as far as I can see, the python interpreter runs in the main rhythmbox thread - so this scuppers running a python thread in the background of the main UI. A shame - I'm no C/GTK expert, how hard would it be to move the python interpreter into another thread? Stephen English ------=_Part_17600_7035465.1150410283999 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline
Finally, loading the plugin blocks the UI for about 2 minutes while the
tracks are being parsed. I tried (as you can see from the code) putting
the call to xml.sax.parse into a Thread object, but when I tried that
the method didn't run at all (the source showed up, but the "Adding
artist - title" string never got printed). Is there something else I can
do so my code doesn't block the UI?

Python threads can only run whilst the python interpreter is running, and as far as I can see, the python interpreter runs in the main rhythmbox thread - so this scuppers running a python thread in the background of the main UI. A shame - I'm no C/GTK expert, how hard would it be to move the python interpreter into another thread?

Stephen English


------=_Part_17600_7035465.1150410283999-- From jonathan@kaolin.wh9.net Thu Jun 15 19:53:43 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id CDB703B00D0 for ; Thu, 15 Jun 2006 19:53:43 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 06412-01 for ; Thu, 15 Jun 2006 19:53:40 -0400 (EDT) Received: from smtp3.adl2.internode.on.net (smtp3.adl2.internode.on.net [203.16.214.203]) by menubar.gnome.org (Postfix) with ESMTP id 0BF083B00F8 for ; Thu, 15 Jun 2006 19:53:39 -0400 (EDT) Received: from stapler.kaolin.wh9.net (ppp97-73.lns1.bne1.internode.on.net [59.167.97.73]) by smtp3.adl2.internode.on.net (8.13.6/8.13.5) with ESMTP id k5FNrCsb052719 for ; Fri, 16 Jun 2006 09:23:13 +0930 (CST) (envelope-from jonathan@kaolin.wh9.net) Received: from jonathan by stapler.kaolin.wh9.net with local (Exim 4.50) id 1Fr1eC-0005hZ-HY for rhythmbox-devel@gnome.org; Fri, 16 Jun 2006 09:53:12 +1000 Date: Fri, 16 Jun 2006 09:53:12 +1000 To: rhythmbox-devel@gnome.org Message-ID: <20060615235312.GA21776@kaolin.wh9.net> Mail-Followup-To: rhythmbox-devel@gnome.org References: <1150371308.6819.1.camel@localhost.localdomain> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1150371308.6819.1.camel@localhost.localdomain> X-Represent-the-Ocean: Yes User-Agent: Mutt/1.5.9i From: Jonathan Matthew X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.461 tagged_above=-999 required=2 tests=[AWL=0.004, BAYES_00=-2.599, FORGED_RCVD_HELO=0.135, SPF_HELO_PASS=-0.001] X-Spam-Score: -2.461 X-Spam-Level: Subject: Re: [Rhythmbox-devel] MTP support to rhythmbox X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Jun 2006 23:53:44 -0000 On Thu, Jun 15, 2006 at 01:35:08PM +0200, Peter Grundström wrote: I haven't looked at the code in detail yet, but I've got a few comments on your TODO list. > What it doesn't do / TODO: > > * You cant play the songs on the device. (the device never gets mounted, > you only access it through the library libmtp.) There are two ways to solve this: write GStreamer source and sink elements, or write a gnome-vfs module. You wouldn't strictly need a GStreamer sink element, but it'd let you use GStreamer to transcode files for the device. I think GStreamer elements would be easier to write. From briefly looking at the libmtp API, I think this would be possible, but it'd be a bit hackish. > * you have to run rhythmbox as root, since the libmtp requires > root-privileges to access the device through libusb. This should > probably be fixed with something like a udev-rule (in libmtp i presume). > > * the device has to be attached when you start rhythmbox, and the only > way to detach it is to close rhythmbox. We should have RBRemovableMediaManager emit a signal when it scans devices, so plugins can perform their own scanning. This would at least make the device show up when you use the 'Scan Removable Media' menu item. Maybe there's a way to get HAL to notify rhythmbox when this sort of device is attached or detached. > * I was working with that last thing, but I couldn't get the popup to > work, it only says "Couldn't get menu widget for /MTPSourcePopup". > Someone who is more experienced with rhythmbox maybe can figure out why. Are you sure it's loading the UI file correctly? The code looks OK. > * It is a little delay when you close rythmbox which makes rhythmbox > look like it hanged, and the "rhythmbox does not respond" dialog > appears. No idea how to fix that. Do you know where this delay is being introduced? Adding some rb_debug output and running 'rhythmbox -D mtp' would help track it down. Thanks for your work on this so far. Hopefully we can get this finished up and integrated into the next release after we get 0.9.5 out. From jonathan@kaolin.wh9.net Thu Jun 15 20:28:00 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 72CEE3B0080 for ; Thu, 15 Jun 2006 20:28:00 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 07421-01 for ; Thu, 15 Jun 2006 20:27:58 -0400 (EDT) Received: from smtp1.adl2.internode.on.net (smtp1.adl2.internode.on.net [203.16.214.181]) by menubar.gnome.org (Postfix) with ESMTP id 3141F3B006C for ; Thu, 15 Jun 2006 20:27:58 -0400 (EDT) Received: from stapler.kaolin.wh9.net (ppp97-73.lns1.bne1.internode.on.net [59.167.97.73]) by smtp1.adl2.internode.on.net (8.13.6/8.13.5) with ESMTP id k5G0Rtqw088624 for ; Fri, 16 Jun 2006 09:57:56 +0930 (CST) (envelope-from jonathan@kaolin.wh9.net) Received: from jonathan by stapler.kaolin.wh9.net with local (Exim 4.50) id 1Fr2Bn-0005j3-Kv for rhythmbox-devel@gnome.org; Fri, 16 Jun 2006 10:27:55 +1000 Date: Fri, 16 Jun 2006 10:27:55 +1000 To: rhythmbox-devel@gnome.org Message-ID: <20060616002755.GA21946@kaolin.wh9.net> Mail-Followup-To: rhythmbox-devel@gnome.org References: <1150321213.15485.22.camel@midnight> <20060615041317.GC18230@kaolin.wh9.net> <1150352766.4396.10.camel@midnight> <20060615104111.GA19789@kaolin.wh9.net> <1150388081.16258.22.camel@midnight> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1150388081.16258.22.camel@midnight> X-Represent-the-Ocean: Yes User-Agent: Mutt/1.5.9i From: Jonathan Matthew X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.423 tagged_above=-999 required=2 tests=[AWL=-0.035, BAYES_00=-2.599, FORGED_RCVD_HELO=0.135, SPF_HELO_PASS=-0.001, TW_HM=0.077] X-Spam-Score: -2.423 X-Spam-Level: Subject: Re: [Rhythmbox-devel] Magnatune catalog/purchasing plugin X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Jun 2006 00:28:00 -0000 On Thu, Jun 15, 2006 at 09:14:41AM -0700, Adam Zimmerman wrote: > OK, I'm almost there! There are still a couple issues though. > > On Thu, 2006-15-06 at 20:41 +1000, Jonathan Matthew wrote: > > Sources display entries using an RBEntryView instance (or rb.EntryView > > in python). The RBEntryView is a tree view backed by a > > RhythmDBQueryModel, which is a GtkTreeModel that contains a set of > > entries matching particular criteria. So, an entry is shown in any > > source for which it matches the query. > > > > I've made all the changes you suggested, and my source now shows up in > the list. But when I click on it, I just see a blank grey box. Do I need > to create my own EntryView? I can't see where the ipod source does it, > but that could just be my weak (i.e., nonexistent) C skillz :P Yes, it seems that you do. The ipod source doesn't create one because its parent class, RBBrowserSource, does it. It looks like you can do this: self.entry_view = rb.EntryView(db, shell_player, "", False, False) which causes a gconf error but otherwise seems to work. I think we'll need to fix the python bindings a bit to get rid of the error. Then you'd add the columns you want to display: self.entry_view.append_column(rb.ENTRY_VIEW_COL_TITLE, False) self.entry_view.append_column(rb.ENTRY_VIEW_COL_ARTIST, False) self.entry_view.append_column(rb.ENTRY_VIEW_COL_ALBUM, False) self.entry_view.append_column(rb.ENTRY_VIEW_COL_GENRE, False) and attach the query model: self.entry_view.set_model(self.model) and add it to the source widget: self.pack_start(self.entry_view) I haven't really tested much of this, but it should work. > Also, duplicate URIs cause rhythmdb to give a warning. This happens a > few times in song_info.xml, but it also happens for every track after > the plugin is unloaded and then loaded again. When your plugin is unloaded, you should delete all db entries of your entry type: self._db.entry_delete_by_type(self.entry_type) or something. > Finally, loading the plugin blocks the UI for about 2 minutes while the > tracks are being parsed. I tried (as you can see from the code) putting > the call to xml.sax.parse into a Thread object, but when I tried that > the method didn't run at all (the source showed up, but the "Adding > artist - title" string never got printed). Is there something else I can > do so my code doesn't block the UI? We don't currently enable python threads. I'm not sure what's involved in enabling them. I'm also not sure what else you could do. Sorry. From doclivingston@gmail.com Fri Jun 16 07:23:37 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 342A33B0011 for ; Fri, 16 Jun 2006 07:23:37 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 26679-09 for ; Fri, 16 Jun 2006 07:23:33 -0400 (EDT) Received: from py-out-1112.google.com (py-out-1112.google.com [64.233.166.182]) by menubar.gnome.org (Postfix) with ESMTP id AE79D3B0012 for ; Fri, 16 Jun 2006 07:23:33 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id c39so559415pyd for ; Fri, 16 Jun 2006 04:22:47 -0700 (PDT) Received: by 10.35.45.14 with SMTP id x14mr4415306pyj; Fri, 16 Jun 2006 04:22:46 -0700 (PDT) Received: from alyrion.local ( [144.134.102.145]) by mx.gmail.com with ESMTP id k13sm2072182pyf.2006.06.16.04.22.30; Fri, 16 Jun 2006 04:22:45 -0700 (PDT) From: "James \"Doc\" Livingston" To: rhythmbox-devel@gnome.org In-Reply-To: <1150388081.16258.22.camel@midnight> References: <1150321213.15485.22.camel@midnight> <20060615041317.GC18230@kaolin.wh9.net> <1150352766.4396.10.camel@midnight> <20060615104111.GA19789@kaolin.wh9.net> <1150388081.16258.22.camel@midnight> Content-Type: text/plain Date: Fri, 16 Jun 2006 21:22:06 +1000 Message-Id: <1150456926.5185.41.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.491 tagged_above=-999 required=2 tests=[AWL=0.032, BAYES_00=-2.599, SPF_PASS=-0.001, TW_HM=0.077] X-Spam-Score: -2.491 X-Spam-Level: Subject: Re: [Rhythmbox-devel] Magnatune catalog/purchasing plugin X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list Reply-To: doclivingston@gmail.com List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Jun 2006 11:23:37 -0000 On Thu, 2006-06-15 at 09:14 -0700, Adam Zimmerman wrote: > I've made all the changes you suggested, and my source now shows up in > the list. But when I click on it, I just see a blank grey box. Do I need > to create my own EntryView? I can't see where the ipod source does it, > but that could just be my weak (i.e., nonexistent) C skillz :P Does your source class derive directly from rb.Source? If you do that you will need to manually create the entry view, set it up and pack it into the source (which is a gtk.Box). The iPod source doesn't directly derive from that, instead it derives from rb.BrowserSource (well actually it's rb.RemovableMediaSource, but it makes no difference). That takes care of a lot of the standard entry view stuff, and gives you working browsers and search box for free. Basically what you need to do is derive from rb.BrowserSource instead of rb.Source. You don't need to worry about query models (it's handled automatically), just "entry_type=self.entry_type" to gobject.new instead. > Also, duplicate URIs cause rhythmdb to give a warning. This happens a > few times in song_info.xml, but it also happens for every track after > the plugin is unloaded and then loaded again. This is because the entries are still in the database, you need to get rid of them when you plugin is unloaded. The easiest way is to add the following to the plugin's "deactivate" function: db.entry_delete_by_type (self.entry_type) db.commit () Really there should be a function to delete the entry type which does this and cleans up the entry type properly (which currently gets leaked), but that's a post 0.9.5 change. > Finally, loading the plugin blocks the UI for about 2 minutes while the > tracks are being parsed. I tried (as you can see from the code) putting > the call to xml.sax.parse into a Thread object, but when I tried that > the method didn't run at all (the source showed up, but the "Adding > artist - title" string never got printed). Is there something else I can > do so my code doesn't block the UI? Currently we don't activate threading for the embedded python interpreter, which is why it doesn't work. This isn't a solid reason for not activating it, except it's non-trivial to ensure that we correctly take the global python lock when calling things and fixing any re-entrancy issues. If you (or anyone else) actually needs it, we can activate it. By doing a bit of thinking it's usually possible to find a good method that doesn't require threading. In this case it is asynchronous SAX parsing. I'm not sure exactly how to do it in python, but basically you create a parser, load the data in chunks with asynchronous gnome-vfs or urllib, and pass the data to the parser as you get it. So you never do anything that will block for a long time. Cheers, James "Doc" Livingston -- On two occasions I have been asked [by members of Parliament!], `Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question. --Charles Babbage From adam_zimmerman@sfu.ca Sat Jun 17 00:33:00 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 1A5353B00C5 for ; Sat, 17 Jun 2006 00:33:00 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 02125-09 for ; Sat, 17 Jun 2006 00:32:57 -0400 (EDT) Received: from pobox.sfu.ca (pobox.sfu.ca [142.58.101.28]) by menubar.gnome.org (Postfix) with ESMTP id E80EF3B00CB for ; Sat, 17 Jun 2006 00:32:56 -0400 (EDT) Received: from [192.168.1.104] (d154-20-161-87.bchsia.telus.net [154.20.161.87]) (authenticated bits=0) by pobox.sfu.ca (8.13.6/8.13.5/SFU-6.0G) with ESMTP id k5H1oCbB011559 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NOT) for ; Fri, 16 Jun 2006 18:50:15 -0700 (PDT) From: Adam Zimmerman To: rhythmbox-devel@gnome.org In-Reply-To: <1150456926.5185.41.camel@localhost.localdomain> References: <1150321213.15485.22.camel@midnight> <20060615041317.GC18230@kaolin.wh9.net> <1150352766.4396.10.camel@midnight> <20060615104111.GA19789@kaolin.wh9.net> <1150388081.16258.22.camel@midnight> <1150456926.5185.41.camel@localhost.localdomain> Content-Type: text/plain Date: Fri, 16 Jun 2006 18:50:11 -0700 Message-Id: <1150509012.24700.3.camel@midnight> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by antibody.sfu.ca running antivirus scanner X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.467 tagged_above=-999 required=2 tests=[AWL=0.132, BAYES_00=-2.599] X-Spam-Score: -2.467 X-Spam-Level: Subject: Re: [Rhythmbox-devel] Magnatune catalog/purchasing plugin X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Jun 2006 04:33:00 -0000 On Fri, 2006-16-06 at 21:22 +1000, James "Doc" Livingston wrote: > Basically what you need to do is derive from rb.BrowserSource instead of > rb.Source. You don't need to worry about query models (it's handled > automatically), just "entry_type=self.entry_type" to gobject.new > instead. OK, I did that, and now when I run rhythmbox, it says: Traceback (most recent call last): File "/home/adam/.gnome2/rhythmbox/plugins/magnatune.py", line 75, in activate self.source = gobject.new (MagnatuneSource, shell=shell, name=_("Magnatune"), entry_type=self.entry_type) TypeError: could not convert value for property `entry_type' from rhythmdb.EntryType to gpointer I'm pretty sure the lines leading up to that one haven't been changed: def activate(self, shell): self.db = shell.get_property("db") self.entry_type = rhythmdb.rhythmdb_entry_register_type("MagnatuneEntryType") self.source = gobject.new (MagnatuneSource, shell=shell, name=_("Magnatune"), entry_type=self.entry_type) -- Adam Zimmerman CREATIVITY - http://mirrors.creativecommons.org/movingimages/Building_on_the_Past.mpg ALWAYS - http://www.musiccreators.ca/ BUILDS - http://www.ubuntu.com/ ON THE PAST - http://www.theopencd.org/ -- "Humor is a drug which it's the fashion to abuse." -- William Gilbert From rdebeasi@nww.com Fri Jun 16 11:58:14 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id AB16E3B002C for ; Fri, 16 Jun 2006 11:58:14 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 01926-08 for ; Fri, 16 Jun 2006 11:58:13 -0400 (EDT) Received: from hestia.nww.com (hestia.nww.com [198.3.122.6]) by menubar.gnome.org (Postfix) with ESMTP id F023F3B006C for ; Fri, 16 Jun 2006 11:58:12 -0400 (EDT) Received: from bosmxmp00.nww.com ([172.17.20.100]) by hestia.nww.com (8.13.1/8.13.1) with ESMTP id k5GFc1uW011196 for ; Fri, 16 Jun 2006 11:38:05 -0400 X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C6915D.1C00CB47" Date: Fri, 16 Jun 2006 11:54:11 -0400 Message-ID: <02D7D7B3D8DDA84AB54BB60168A4029B01778A5D@bosmxmp00.nww.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Rhythmbox and the Cooperative Bug Isolation project Thread-Index: AcaRXRtyJqZWZ6mLSt2tQwoTgzxXSA== From: "Ryan DeBeasi" To: X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-0.775 tagged_above=-999 required=2 tests=[BAYES_05=-1.11, DNS_FROM_RFC_ABUSE=0.2, HTML_50_60=0.134, HTML_MESSAGE=0.001] X-Spam-Score: -0.775 X-Spam-Level: X-Mailman-Approved-At: Sat, 17 Jun 2006 08:00:09 -0400 Subject: [Rhythmbox-devel] Rhythmbox and the Cooperative Bug Isolation project X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Jun 2006 15:58:14 -0000 This is a multi-part message in MIME format. ------_=_NextPart_001_01C6915D.1C00CB47 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi Rhythmbox folks, =20 I'm writing a story for Network World magazine about Ben Liblit's Cooperative Bug Isolation project, and I'd like to get your your input on how it has affected Rhythmbox. As you probably know, Liblit has released a build of Rhythmbox that includes his bug detection software, which sends small amounts of program data to a server along with an indication of whether the program ran successfully or crashed. If you have some time, I'd love to get your input on how helpful it's been and what kinds of bugs it finds. If you'd like to talk about this, you can call me at (508) 490-6453 until 2pm EST today. If that's not convenient, please feel free to shoot me an E-mail.=20 =20 Thanks a lot for your time. I hope all is well. =20 - Ryan DeBeasi ------_=_NextPart_001_01C6915D.1C00CB47 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Message
Hi = Rhythmbox=20 folks,
 
I'm writing a story for Network World = magazine=20 about Ben Liblit's Cooperative Bug Isolation project, and I'd like to = get your=20 your input on how it has affected RhythmboxAs you probably know, Liblit has = released=20 a build of Rhythmbox=20 that includes his bug detection software, which sends=20 small amounts of program = data to a=20 server along with an indication of whether the program ran successfully = or=20 crashed. If you have some time, = I'd love to=20 get your input on how helpful it's been and what kinds of bugs it=20 finds.

If you'd like to talk about this, you can call = me at (508) 490-6453 until 2pm EST today. If = that's not=20 convenient, please feel free to=20 shoot me an E-mail. 
 
Thanks a lot for your time. I = hope all is=20 well.
 
- Ryan = DeBeasi
------_=_NextPart_001_01C6915D.1C00CB47-- From peter.grundstrom@gmail.com Sat Jun 17 15:08:56 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 7E90A3B0599 for ; Sat, 17 Jun 2006 15:08:56 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 04082-06 for ; Sat, 17 Jun 2006 15:08:50 -0400 (EDT) Received: from nf-out-0910.google.com (nf-out-0910.google.com [64.233.182.188]) by menubar.gnome.org (Postfix) with ESMTP id 8C9C73B0C03 for ; Sat, 17 Jun 2006 15:06:31 -0400 (EDT) Received: by nf-out-0910.google.com with SMTP id x30so897821nfb for ; Sat, 17 Jun 2006 12:05:40 -0700 (PDT) Received: by 10.49.75.11 with SMTP id c11mr3890127nfl; Sat, 17 Jun 2006 11:59:30 -0700 (PDT) Received: from ?192.168.1.38? ( [83.227.176.123]) by mx.gmail.com with ESMTP id c1sm3654182nfe.2006.06.17.11.59.30; Sat, 17 Jun 2006 11:59:30 -0700 (PDT) From: Peter =?ISO-8859-1?Q?Grundstr=F6m?= To: rhythmbox-devel@gnome.org In-Reply-To: <20060615235312.GA21776@kaolin.wh9.net> References: <1150371308.6819.1.camel@localhost.localdomain> <20060615235312.GA21776@kaolin.wh9.net> Content-Type: text/plain; charset=ISO-8859-1 Date: Sat, 17 Jun 2006 20:59:28 +0200 Message-Id: <1150570768.5707.5.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-1.891 tagged_above=-999 required=2 tests=[AWL=0.709, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -1.891 X-Spam-Level: Subject: Re: [Rhythmbox-devel] MTP support to rhythmbox X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Jun 2006 19:08:56 -0000 Hi again, I've now a new version of the patch. It's attached to the following bug. http://bugzilla.gnome.org/show_bug.cgi?id=345006 . The big news is that you now can run it as a ordinary user (see comment in bug) and that it now uses hal to detect devices. On Fri, 2006-06-16 at 09:53 +1000, Jonathan Matthew wrote: > On Thu, Jun 15, 2006 at 01:35:08PM +0200, Peter Grundström wrote: > > I haven't looked at the code in detail yet, but I've got a few comments > on your TODO list. > > > What it doesn't do / TODO: > > > > * You cant play the songs on the device. (the device never gets mounted, > > you only access it through the library libmtp.) > > There are two ways to solve this: write GStreamer source and sink > elements, or write a gnome-vfs module. You wouldn't strictly need a > GStreamer sink element, but it'd let you use GStreamer to transcode > files for the device. I think GStreamer elements would be easier to > write. From briefly looking at the libmtp API, I think this would be > possible, but it'd be a bit hackish. If anyone has any documentation or example code on how to do something like this. It would be very helpful. > > > * you have to run rhythmbox as root, since the libmtp requires > > root-privileges to access the device through libusb. This should > > probably be fixed with something like a udev-rule (in libmtp i presume). > > > > * the device has to be attached when you start rhythmbox, and the only > > way to detach it is to close rhythmbox. > > We should have RBRemovableMediaManager emit a signal when it scans > devices, so plugins can perform their own scanning. This would at least > make the device show up when you use the 'Scan Removable Media' menu > item. Maybe there's a way to get HAL to notify rhythmbox when this sort > of device is attached or detached. > Fixed now. > > * I was working with that last thing, but I couldn't get the popup to > > work, it only says "Couldn't get menu widget for /MTPSourcePopup". > > Someone who is more experienced with rhythmbox maybe can figure out why. > > Are you sure it's loading the UI file correctly? The code looks OK. > > > * It is a little delay when you close rythmbox which makes rhythmbox > > look like it hanged, and the "rhythmbox does not respond" dialog > > appears. No idea how to fix that. > > Do you know where this delay is being introduced? Adding some rb_debug > output and running 'rhythmbox -D mtp' would help track it down. > > Thanks for your work on this so far. Hopefully we can get this finished > up and integrated into the next release after we get 0.9.5 out. > > _______________________________________________ > rhythmbox-devel mailing list > rhythmbox-devel@gnome.org > http://mail.gnome.org/mailman/listinfo/rhythmbox-devel -- Peter Grundström ________________________________________ \ | MAIL: pete@openfestis.org \ | GPG: C11ED3C4 > | WWW: http://www.openfestis.org / ________________________________________/ From doclivingston@gmail.com Sun Jun 18 02:46:57 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 101633B0158 for ; Sun, 18 Jun 2006 02:46:57 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 28029-01 for ; Sun, 18 Jun 2006 02:46:54 -0400 (EDT) Received: from py-out-1112.google.com (py-out-1112.google.com [64.233.166.180]) by menubar.gnome.org (Postfix) with ESMTP id 37B4A3B0143 for ; Sun, 18 Jun 2006 02:46:54 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id c39so971443pyd for ; Sat, 17 Jun 2006 23:43:58 -0700 (PDT) Received: by 10.35.89.10 with SMTP id r10mr6756008pyl; Sat, 17 Jun 2006 23:43:58 -0700 (PDT) Received: from alyrion.local ( [144.134.102.218]) by mx.gmail.com with ESMTP id k13sm2076296pyf.2006.06.17.23.43.55; Sat, 17 Jun 2006 23:43:57 -0700 (PDT) From: "James \"Doc\" Livingston" To: Rhythmbox-devel list , gnome-announce-list@gnome.org Content-Type: text/plain; charset=UTF-8 Date: Sun, 18 Jun 2006 16:43:53 +1000 Message-Id: <1150613033.6027.23.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.53 tagged_above=-999 required=2 tests=[AWL=0.070, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.53 X-Spam-Level: Subject: [Rhythmbox-devel] Rhythmbox 0.9.5 X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list Reply-To: rhythmbox-devel@gnome.org List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Jun 2006 06:46:57 -0000 G'day Everyone, On behalf of the Rhythmbox developers, I'm proud to announce the sixth release of the Rhythmbox 0.9 series, which includes a large number of fixes, improvements and new features. Notable new features include: - Improved plugin support, and several features converted to plugins - An album art viewing and download plugin - A song lyric viewing and download plugin - Ogg Vorbis tag editing [0] - Partial iPod write support [1] - Improved audio player and DAAP support - CD ripping and track transfer enabled by default - Updated documentation and many, many more improvements, bug fixes and new minor features. See below for more details. [0] requires a GStreamer plugin not yet in cvs, see bug 335635 [1] off by default, pass --enable-ipod-writing to enable. * What is Rhythmbox ? ===================== Rhythmbox is an integrated music management application, originally inspired by Apple's iTunes. It is free software, designed to work well under the GNOME Desktop, and based on the powerful GStreamer media framework. * What's changed in 0.9.5 ? =========================== * fix icon themability (Steve Frécinaux) * handle iPods that have been repartitioned (Christophe Fergeau: 325034) * allow ipod renaming, ejection, deletion and transfer (Christophe Fergeau) * make iradio handling work much better (Jonathan Matthew: 320336, 324402) * improve out-of-process metadata loader (Jonathan Matthew: 338062) * update documentation (Baptiste Mille-Mathias, ) * pluginise iPod and Generic players (Christophe Fergeau, Jonathan Matthew) * support saving playlists as M3U (Gavin Stewart: 316295) * remember browser visibility when changing sources (Alex Lancaster: 118862) * handle media unmounts better (Jonathan Matthew: 339023) * make entry types be a structure, and add support for extended data, and various method implementations (Christophe Fergeau, James Livingston) * album art view&download plugin (Alex Lancaster, James Livingston, Gareth Murphy, William Jon McCann, Martin Szulecki) * update the FSF's address (Gunnar Steinn Magnusson) * much improved Python bindings (James Livingston, Jonathan Matthew) * fix some translation issues (Nguyá»…n Thái Ngá»c Duy, James Livingston: 339380, 343081) * improve startup time (James Livingston, Jonathan Matthew) * fix audioscrobbler submission, and allow viewing of info (Jonathan Matthew: 325848) * improve DBus interface (Jonathan Matthew, Tim Moloney) * allow transcoding during track transfer (Alessandro Decina: 322268) * cd burning fixes and improvements (William Jon McCann) * podcast feed parsing and download fixes (James Livingston: 339728) * turn the playback backend into a full GObject interface (James Livingston: 338667) * add more API documentation (Jonathan Mattjew) * add vorbis tag editing (James Livingston: 339878) * fix various threading insanities (Jonathan Matthew) * display "child libraries" with multiple library locations (James Livingston: 100552) * improve drag-and-drop from browsers (Jonathan Matthew: 327540) * support Motorola ROKR phones (Joe Barnett) * make query model limits saner (Janes Livingston) * source cleanup and API improvement (James Livingston, Jonathan Matthew) * improve status feedback for DAAP (Jonathan Matthew: 322020 and 338978) * memory improvement and leak fixed (James Livingston, Jonathan Matthew) * kill Bonobo support, require DBus, support DBus 0.3.0 (Jonathan Matthew: 339720) * add lyric download and view plugin (Jonathan Matthew: 319320) * add "add to playlist" menu (James Livingston: 323364) * allow changing of audio cd metadata (James Livingston) * improve DAAP handling (William Jon McCann: 342643) * update and write new unit tests (James Livingston) * group sources (Jonathan Matthew) * add new "rhythmbox-client" program (Jonathan Matthew: 340863, 155763) * assorted build fixes (Brian Cameron, Paul Drain, Elijah Newren, Hendrik Richter, Ryan P Skadberg, Götz Waschk, Pawel Worach, FreeBSD GNOME project, others) * HIG and UI improvements (Dennis Cranston, Baptiste Mille-Mathias) * many other bug fixed (Christophe Fergeau, Jaap A. Haitsma, James Livingston, Jonathan Matthew, Mikael Olenfalk, Roozbeh Pournader) Updated Translations -------------------- ca Jordi Mallach cs Miloslav Trmac de Hendrik Richter es Francisco Javier F. Serrador fi Ilkka Tuohela gl Ignacio Casal Quinteiro lt Žygimantas BeruÄka nb Øivind Hoel, Kjartan Maraas nl Vincent van Adrighem, Wouter Bolsterlee sv Fredrik Tuomas vi Clytie Siddall zh_CN Funda Wang * Where can I get it ? ====================== Source code: http://ftp.gnome.org/pub/GNOME/sources/rhythmbox/0.9/rhythmbox-0.9.5.tar.gz [MD5 sum: 3cbce0fd5ed948e13dabe7be7b9353e9] http://ftp.gnome.org/pub/GNOME/sources/rhythmbox/0.9/rhythmbox-0.9.5.tar.bz2 [MD5 sum: ff55e1db114321b7bdd6e21df1879367] Home Page: http://www.rhythmbox.org/ James "Doc" Livingston From doclivingston@gmail.com Mon Jun 19 00:35:51 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id B275F3B0B1B for ; Mon, 19 Jun 2006 00:35:51 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 24116-10 for ; Mon, 19 Jun 2006 00:35:50 -0400 (EDT) Received: from nz-out-0102.google.com (nz-out-0102.google.com [64.233.162.204]) by menubar.gnome.org (Postfix) with ESMTP id 5F2153B03B6 for ; Mon, 19 Jun 2006 00:35:50 -0400 (EDT) Received: by nz-out-0102.google.com with SMTP id z3so831993nzf for ; Sun, 18 Jun 2006 21:34:34 -0700 (PDT) Received: by 10.65.236.7 with SMTP id n7mr3799512qbr; Sun, 18 Jun 2006 21:34:33 -0700 (PDT) Received: from alyrion.local ( [144.134.101.185]) by mx.gmail.com with ESMTP id f18sm858038qba.2006.06.18.21.33.53; Sun, 18 Jun 2006 21:34:33 -0700 (PDT) From: "James \"Doc\" Livingston" To: rhythmbox-devel@gnome.org In-Reply-To: <1150509012.24700.3.camel@midnight> References: <1150321213.15485.22.camel@midnight> <20060615041317.GC18230@kaolin.wh9.net> <1150352766.4396.10.camel@midnight> <20060615104111.GA19789@kaolin.wh9.net> <1150388081.16258.22.camel@midnight> <1150456926.5185.41.camel@localhost.localdomain> <1150509012.24700.3.camel@midnight> Content-Type: text/plain Date: Mon, 19 Jun 2006 14:33:16 +1000 Message-Id: <1150691596.5187.6.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.528 tagged_above=-999 required=2 tests=[AWL=0.072, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.528 X-Spam-Level: Subject: Re: [Rhythmbox-devel] Magnatune catalog/purchasing plugin X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list Reply-To: doclivingston@gmail.com List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Jun 2006 04:35:51 -0000 On Fri, 2006-06-16 at 18:50 -0700, Adam Zimmerman wrote: > Traceback (most recent call last): > File "/home/adam/.gnome2/rhythmbox/plugins/magnatune.py", line 75, in > activate self.source = gobject.new (MagnatuneSource, shell=shell, > name=_("Magnatune"), entry_type=self.entry_type) > TypeError: could not convert value for property `entry_type' from > rhythmdb.EntryType to gpointer After some discussion with PyGTK people, I've found out that python can't deal with G_TYPE_POINTER derived types properly, which included anything related gobject properties. I've just converted RhythmDBEntry and RhythmDBEntryType to be boxed types, which allows Python to use them. By changing "rhythmdb.rhythmdb_register_entry_type" to "rhythmdb.register_entry_type" in the last patch you posted, it seems to work now. Cheers, James "Doc" Livingston -- "Every time I look at my speedometer, I get lost!" -- Heisenberg's Automotive Lament From adam_zimmerman@sfu.ca Mon Jun 19 02:44:40 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id E5A7A3B0DDA for ; Mon, 19 Jun 2006 02:44:39 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 28747-08 for ; Mon, 19 Jun 2006 02:44:36 -0400 (EDT) Received: from pobox.sfu.ca (pobox.sfu.ca [142.58.101.28]) by menubar.gnome.org (Postfix) with ESMTP id 4AF0A3B0D43 for ; Mon, 19 Jun 2006 02:44:36 -0400 (EDT) Received: from [192.168.1.106] (d154-20-161-87.bchsia.telus.net [154.20.161.87]) (authenticated bits=0) by pobox.sfu.ca (8.13.6/8.13.5/SFU-6.0G) with ESMTP id k5J6i17x018567 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NOT) for ; Sun, 18 Jun 2006 23:44:02 -0700 (PDT) From: Adam Zimmerman To: rhythmbox-devel@gnome.org In-Reply-To: <1150691596.5187.6.camel@localhost.localdomain> References: <1150321213.15485.22.camel@midnight> <20060615041317.GC18230@kaolin.wh9.net> <1150352766.4396.10.camel@midnight> <20060615104111.GA19789@kaolin.wh9.net> <1150388081.16258.22.camel@midnight> <1150456926.5185.41.camel@localhost.localdomain> <1150509012.24700.3.camel@midnight> <1150691596.5187.6.camel@localhost.localdomain> Content-Type: multipart/mixed; boundary="=-cjbyUffuT6gz0B7HQxzw" Date: Sun, 18 Jun 2006 23:44:01 -0700 Message-Id: <1150699441.7747.20.camel@midnight> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 X-Virus-Scanned: by antibody.sfu.ca running antivirus scanner X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.365 tagged_above=-999 required=2 tests=[AWL=0.003, BAYES_00=-2.599, TW_BG=0.077, TW_EV=0.077, TW_GT=0.077] X-Spam-Score: -2.365 X-Spam-Level: Subject: Re: [Rhythmbox-devel] Magnatune catalog/purchasing plugin X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Jun 2006 06:44:40 -0000 --=-cjbyUffuT6gz0B7HQxzw Content-Type: text/plain Content-Transfer-Encoding: 7bit On Mon, 2006-19-06 at 14:33 +1000, James "Doc" Livingston wrote: > I've just converted RhythmDBEntry and RhythmDBEntryType to be boxed > types, which allows Python to use them. By changing > "rhythmdb.rhythmdb_register_entry_type" to > "rhythmdb.register_entry_type" in the last patch you posted, it seems to > work now. Alright, now we're getting somewhere! The tracks now show up in the source, and they play :D ! But they have no metadata. The first self._db.entry_set_uninserted call (and presumably the others as well) throws an exception with the message "entry should be a RhythmDBEntry". However, entry is a RhythmDBEntry (checked with "print entry", which gives something to the effect of ), so I'm not sure what's going on there. The other thing that's going weird has to do with the gnomevfs.async code I'm writing, but it's quite possible I'm doing something wrong there. I get the following message a bunch of times: (rhythmbox:7409): libgnomevfs-WARNING **: Unknown job kind 9 (strangely, the UI still seems to block while loading the songs, although the activate method returns beforehand (or at least, the gnomevfs.async.open call returns)) and then rhythmbox segfaults: GLib-ERROR **: gmem.c:135: failed to allocate 524288 bytes aborting... Segmentation fault! Cannot display crash dialogue The only result I found on google for the libgnomevfs error didn't really help much. -- Adam Zimmerman CREATIVITY - http://mirrors.creativecommons.org/movingimages/Building_on_the_Past.mpg ALWAYS - http://www.musiccreators.ca/ BUILDS - http://www.ubuntu.com/ ON THE PAST - http://www.theopencd.org/ -- Most people will listen to your unreasonable demands, if you'll consider their unacceptable offer. --=-cjbyUffuT6gz0B7HQxzw Content-Disposition: attachment; filename=magnatune.py Content-Type: text/x-python; name=magnatune.py; charset=utf-8 Content-Transfer-Encoding: 7bit import rhythmdb, rb import gobject, gtk, gconf, gnomevfs from gettext import gettext as _ import xml.sax, xml.sax.handler import urllib magnatune_partner_id = "rhythmbox" # this needs to be set up with magnatune ################################################ # Class to add Magnatune catalog to the source # ################################################ class TrackListHandler(xml.sax.handler.ContentHandler): def __init__(self, source, db, entry_type): xml.sax.handler.ContentHandler.__init__(self) self._track = {} # temporary dictionary for track info self._source = source self._db = db self._entry_type = entry_type def startElement(self, name, attrs): self._text = "" def endElement(self, name): if name == "Track": try: print "Adding: %s - %s" % (self._track['artist'], self._track['trackname']) # add the track to the source entry = self._db.entry_new(self._entry_type, self._track['url']) self._db.entry_set_uninserted(entry, rhythmdb.PROP_ARTIST, self._track['artist']) self._db.entry_set_uninserted(entry, rhythmdb.PROP_ALBUM, self._track['albumname']) self._db.entry_set_uninserted(entry, rhythmdb.PROP_TITLE, self._track['trackname']) self._db.entry_set_uninserted(entry, rhythmdb.PROP_TRACK_NUMBER, int(self._track['tracknum'])) self._db.entry_set_uninserted(entry, rhythmdb.PROP_YEAR, int(self._track['year'])) self._db.entry_set_uninserted(entry, rhythmdb.PROP_GENRE, self._track['mp3genre']) self._db.entry_set_uninserted(entry, rhythmdb.PROP_DURATION, int(self._track['seconds'])) # somehow associate the sku with the track as well, so we can buy it. self._db.commit() # temporary, until we can properly make proper query models in python #model = self._source.get_property("query-model") #model.add_entry(entry, -1) except Exception,e: # This happens on duplicate uris being added (and now on the set_uninserted call) print e self._track = {} elif name == "AllSongs": pass # end of the file else: self._track[name] = self._text def characters(self, content): self._text = self._text + content ################################################ # Main Magnatune Plugin Class # ################################################ class Magnatune(rb.Plugin): _preferences = None # # Core methods # def __init__(self): rb.Plugin.__init__(self) def activate(self, shell): self.db = shell.get_property("db") self.entry_type = rhythmdb.entry_register_type("MagnatuneEntryType") self.source = gobject.new (MagnatuneSource, shell=shell, name=_("Magnatune"), entry_type=self.entry_type) shell.register_entry_type_for_source(self.source, self.entry_type) icon = gtk.gdk.pixbuf_new_from_xpm_data(magnatune_logo_xpm) # Include a flashy Magnatune logo for the source self.source.set_property("icon", icon) shell.append_source(self.source, None) # Add the source to the list # http://magnatune.com/info/song_info.xml self.parser = xml.sax.make_parser() self.parser.setContentHandler(TrackListHandler(self.source, self.db, self.entry_type)) #gnomevfs.async.open("/home/adam/Desktop/song_info.xml", self.open_callback) self.parser.parse("/home/adam/Desktop/song_info.xml") def deactivate(self, shell): self.db.entry_delete_by_type(self.entry_type) self.db.commit() self.source.delete_thyself() self.source = None # # Callback/helper functions # def open_callback(self, handle, exc_type): times = 0 if not exc_type: try: while True: handle.read(512*1024, self.read_callback) # file is about 5MB except EOFError: handle.close(lambda *args: None) else: handle.close(lambda *args: None) def read_callback(self, handle, buf, exc_type, bytes_requested): self.parser.feed(buf) class MagnatuneSource(rb.BrowserSource): def __init__(self): rb.Source.__init__(self) gobject.type_register(MagnatuneSource) ################################################ # Purchasing code. Do this later # ################################################ class BuyAlbumHandler(xml.sax.handler.ContentHandler): # Class to download the track, etc. def __init__(self): xml.sax.handler.ContentHandler.__init__(self) def startElement(self, name, attrs): self._text = "" def endElement(self, name): # need to figure out the format of what gets returned, there's no documentation on the site. pass def characters(self, content): self._text = self._text + content def buy_track(track, amount, cc, name, email): # http://magnatune.com/info/api#purchase client = gconf.client_get_default() url = "https://magnatune.com/buy/buy_dl_cc_xml?" url = url + urllib.urlencode({ 'id': magnatune_partner_id, 'sku': track['albumsku'], 'amount': amount, 'cc': cc['number'], 'yy': cc['year'], 'mm': cc['month'], 'name': name, 'email':email }) xml.sax.parse(url, BuyAlbumHandler()) url = "" # get download url # transfer the track to the library with track-transfer ################################################ # Magnatune Logo. Seems to work well enough... # ################################################ # (converted from http://www.magnatune.com/favicon.ico) magnatune_logo_xpm = [ "32 32 4 1", " c None", #Original colours: ". c None", #FFFFFF "+ c #303030", #C0C0C0 "@ c #000000", #808080 "................................", "................................", "................................", "................................", "................................", "................................", "............++@@@@++............", "..........+@@@@@@@@@@+..........", ".........+@@@+....+@@@+.........", "........+@@+...++...+@@+........", ".......+@@+....@@....+@@+.......", ".......@@+.....@@.....+@@.......", "......+@@......@@......@@+......", "......+@+......@@......+@+......", "......@@...@@..@@..@@...@@......", "......@@...@@+.@@.+@@...@@......", "......@@...@@+.@@.+@@...@@......", "......@@...@@+.@@.+@@...@@......", "......+@+..@@+.@@.+@@..+@+......", "......+@@..@@+.@@.+@@..@@+......", ".......@@+.@@+.@@.+@@.+@@.......", ".......+@@+.+..+...+.+@@+.......", "........+@@+........+@@+........", ".........+@@@+....+@@@+.........", "..........+@@@@@@@@@@+..........", "............++@@@@++............", "................................", "................................", "................................", "................................", "................................", "................................" ] ### ### preferences, ugly and gross. Someone else who knows what they're doing should probably fix this ### # def create_configure_dialog(self): # return a gtk dialog with configure options # if self._preferences == None: # client = gconf.client_get_default() # self._preferences = gtk.Dialog(title=_("Magnatune Preferences"), flags=gtk.DIALOG_MODAL) # # label = gtk.Label("Purchase Information") # self._preferences.vbox.pack_start(label, False, False, 0) # label.show() # # hbox = gtk.HBox() # label = gtk.Label(_("Name")) # entry = gtk.Entry() # self.setup_entry(entry, "name") # hbox.pack_start(label, False, False, 0) # hbox.pack_start(entry, False, False, 0) # label.show() # entry.show() # self._preferences.vbox.pack_start(hbox, True, True, 0) # hbox.show() # # hbox = gtk.HBox() # label = gtk.Label(_("E-mail Address")) # entry = gtk.Entry() # self.setup_entry(entry, "email") # hbox.pack_start(label, False, False, 0) # hbox.pack_start(entry, False, False, 0) # label.show() # entry.show() # self._preferences.vbox.pack_start(hbox, True, True, 0) # hbox.show() # # button = gtk.CheckButton(_("Remember Credit Card Information")) # credit_entry = gtk.Entry(max=16) # month_entry = gtk.Entry(max=2) # year_entry = gtk.Entry(max=4) # button.connect("toggled", self.check_toggle, (credit_entry, month_entry, year_entry)) # set = client.get_bool("/apps/rhythmbox/plugins/magnatune/forget") # if set is not None: # button.set_active(set) # self._preferences.vbox.pack_start(button, False, False, 0) # button.show() # # hbox = gtk.HBox() # label = gtk.Label(_("Credit Card Number")) # # entry has already been created # self.setup_entry(credit_entry, "cc_num") # hbox.pack_start(label, False, False, 0) # hbox.pack_start(credit_entry, False, False, 0) # label.show() # credit_entry.show() # self._preferences.vbox.pack_start(hbox, True, True, 0) # hbox.show() # # hbox = gtk.HBox() # label = gtk.Label(_("Expiration: mm/yy ")) # # entries already created # sep = gtk.Label(" / ") # self.setup_entry(month_entry, "cc_mm") # self.setup_entry(year_entry, "cc_yy") # hbox.pack_start(label, False, False, 0) # hbox.pack_start(month_entry, False, False, 0) # hbox.pack_start(sep, False, False, 0) # hbox.pack_start(year_entry, False, False, 0) # label.show() # month_entry.show() # sep.show() # year_entry.show() # self._preferences.vbox.pack_start(hbox, True, True, 0) # hbox.show() # # hbox = gtk.HBox() # button = gtk.Button(stock=gtk.STOCK_CLOSE) # button.connect("clicked", self.close_clicked, None) # self._preferences.action_area.pack_end(button, True, True, 0) # button.show() # # self._preferences.show() # return self._preferences # # def check_toggle(self, widget, data=None): # active = not widget.get_active() # this method gets called before the widget changes # client = gconf.client_get_default() # client.set_bool("/apps/rhythmbox/plugins/magnatune/forget", active) # if active: # for entry in data: # entry.set_text("") # entry.set_sensitive(False) # for field in ('cc_num', 'cc_mm', 'cc_yy'): # client.unset("/apps/rhythmbox/plugins/magnatune/" + field) # else: # for entry in data: # entry.set_sensitive(True) # # def pref_changed(self, widget, gdk_event, data=None): # client = gconf.client_get_default() # client.set_string("/apps/rhythmbox/plugins/magnatune/" + data, widget.get_text()) # # def close_clicked(self, widget, data=None): # self._preferences.hide() # # def setup_entry(self, entry, data): # client = gconf.client_get_default() # text = client.get_string("/apps/rhythmbox/plugins/magnatune/" + data) # if text is not None: # entry.set_text(text) # entry.connect("focus-out-event", self.pref_changed, data) --=-cjbyUffuT6gz0B7HQxzw-- From pclouds@gmail.com Mon Jun 19 03:24:38 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 8BD0D3B0D34 for ; Mon, 19 Jun 2006 03:24:38 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 30251-02 for ; Mon, 19 Jun 2006 03:24:37 -0400 (EDT) Received: from wx-out-0102.google.com (wx-out-0102.google.com [66.249.82.202]) by menubar.gnome.org (Postfix) with ESMTP id C11303B0DA8 for ; Mon, 19 Jun 2006 03:24:36 -0400 (EDT) Received: by wx-out-0102.google.com with SMTP id t12so206268wxc for ; Mon, 19 Jun 2006 00:23:48 -0700 (PDT) Received: by 10.70.126.15 with SMTP id y15mr8020617wxc; Mon, 19 Jun 2006 00:23:48 -0700 (PDT) Received: by 10.70.45.11 with HTTP; Mon, 19 Jun 2006 00:23:48 -0700 (PDT) Message-ID: Date: Mon, 19 Jun 2006 14:23:48 +0700 From: "=?UTF-8?Q?Nguy=E1=BB=85n_Th=C3=A1i_Ng=E1=BB=8Dc_Duy?=" To: "Rhythmbox-devel list" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 Content-Disposition: inline X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.356 tagged_above=-999 required=2 tests=[AWL=0.020, BAYES_00=-2.599, MIME_BASE64_NO_NAME=0.224, SPF_PASS=-0.001] X-Spam-Score: -2.356 X-Spam-Level: Subject: [Rhythmbox-devel] can't edit tags X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Jun 2006 07:24:38 -0000 SSBjYW4gbm8gbG9uZ2VyIGVkaXQgdGFncyB3aXRoIHJoeXRobWJveC4gSXQgc2VlbXMgdG8gcmVm dXNlIHRvIG1vZGlmeQphbnkgZmlsZSB3aXRoIG1lc3NhZ2UgIkZpbGUgY29ycnVwdGVkIGR1cmlu ZyB3cml0ZSIuIEluIHRlcm1pbmFsIEkKZ290Ogoocmh5dGhtYm94LW1ldGFkYXRhOjE5MTAyKTog R1N0cmVhbWVyLUNSSVRJQ0FMICoqOgpnc3RfcGFkX2FjdGl2YXRlX3B1bGw6IGFzc2VydGlvbiBg b2xkID09IEdTVF9BQ1RJVkFURV9OT05FJyBmYWlsZWQKSSdtIHVzaW5nIGdzdHJlYW1lci0wLjEw LjgsICBnc3QtcGx1Z2lucy17Z29vZCxiYWQsdWdseX0tMC4xMC4zLgpDYW4gSSB1c2UgZ3N0LWxh dW5jaC0wLjEwIHRvIG1vZGlmeSB0YWdzPyBJcyB0aGVyZSBhbnkgc2ltcGxlIGNvbW1hbmQKbGlu ZSBpbnRlcmZhY2UgdG8gdGVzdCB3aXRoPwotLSAKQmkgQ+G7nSBMYW8K From doclivingston@gmail.com Mon Jun 19 04:39:17 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 118353B0339 for ; Mon, 19 Jun 2006 04:39:17 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 00428-10 for ; Mon, 19 Jun 2006 04:39:15 -0400 (EDT) Received: from py-out-1112.google.com (py-out-1112.google.com [64.233.166.182]) by menubar.gnome.org (Postfix) with ESMTP id 9F1093B008F for ; Mon, 19 Jun 2006 04:39:15 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id c39so1185714pyd for ; Mon, 19 Jun 2006 01:38:41 -0700 (PDT) Received: by 10.35.127.15 with SMTP id e15mr7967903pyn; Mon, 19 Jun 2006 00:37:15 -0700 (PDT) Received: from alyrion.local ( [144.134.101.185]) by mx.gmail.com with ESMTP id v53sm364748pyv.2006.06.19.00.37.02; Mon, 19 Jun 2006 00:37:14 -0700 (PDT) From: "James \"Doc\" Livingston" To: rhythmbox-devel@gnome.org In-Reply-To: References: Content-Type: text/plain; charset=UTF-8 Date: Mon, 19 Jun 2006 17:36:29 +1000 Message-Id: <1150702589.5187.20.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.53 tagged_above=-999 required=2 tests=[AWL=0.070, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.53 X-Spam-Level: Subject: Re: [Rhythmbox-devel] can't edit tags X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list Reply-To: doclivingston@gmail.com List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Jun 2006 08:39:17 -0000 On Mon, 2006-06-19 at 14:23 +0700, Nguyá»…n Thái Ngá»c Duy wrote: > I can no longer edit tags with rhythmbox. It seems to refuse to modify > any file with message "File corrupted during write". In terminal I > got: > (rhythmbox-metadata:19102): GStreamer-CRITICAL **: > gst_pad_activate_pull: assertion `old == GST_ACTIVATE_NONE' failed > I'm using gstreamer-0.10.8, gst-plugins-{good,bad,ugly}-0.10.3. The best idea would be to run "GST_DEBUG=*:4 GST_DEBUG_NO_COLOR=1 rhythmbox >rb.log 2>&1", bzip the resuling "rb.log" and file a bug with it attached. > Can I use gst-launch-0.10 to modify tags? Is there any simple command > line interface to test with? Not really, gst-launch can't do things like set tags on a GstTagSetter interface. Cheers, James "Doc" Livingston -- "'The Internet' cannot be moved to the recycle bin. Do you wish to delete 'The Internet' now ?" -- Windows explorer From alexl@users.sourceforge.net Mon Jun 19 06:06:05 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id D10663B008F for ; Mon, 19 Jun 2006 06:06:05 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 02661-02 for ; Mon, 19 Jun 2006 06:06:04 -0400 (EDT) Received: from allele2.biol.berkeley.edu (allele2.Biol.Berkeley.EDU [128.32.118.82]) by menubar.gnome.org (Postfix) with ESMTP id 6088B3B0014 for ; Mon, 19 Jun 2006 06:06:04 -0400 (EDT) Received: from allele2.biol.berkeley.edu (localhost.localdomain [127.0.0.1]) by allele2.biol.berkeley.edu (8.13.6/8.12.11) with ESMTP id k5JA52Jl011289 for ; Mon, 19 Jun 2006 03:05:02 -0700 Received: (from alex@localhost) by allele2.biol.berkeley.edu (8.13.6/8.13.4/Submit) id k5JA51aZ011288; Mon, 19 Jun 2006 03:05:01 -0700 X-Authentication-Warning: allele2.biol.berkeley.edu: alex set sender to alexl@users.sourceforge.net using -f To: rhythmbox-devel@gnome.org References: <8gk67diht3.fsf@allele2.biol.berkeley.edu> From: Alex Lancaster Date: Mon, 19 Jun 2006 03:05:01 -0700 In-Reply-To: <8gk67diht3.fsf@allele2.biol.berkeley.edu> (Alex Lancaster's message of "Mon, 19 Jun 2006 03:03:04 -0700") Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.59 tagged_above=-999 required=2 tests=[AWL=0.009, BAYES_00=-2.599] X-Spam-Score: -2.59 X-Spam-Level: Subject: Re: [Rhythmbox-devel] can't edit tags X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Jun 2006 10:06:06 -0000 >>>>> "NTND" =3D=3D Nguy=E1=BB=85n Th=C3=A1i Ng=E1=BB=8Dc Duy writes: NTND> I can no longer edit tags with rhythmbox. It seems to refuse to NTND> modify any file with message "File corrupted during write". In NTND> terminal I got: (rhythmbox-metadata:19102): GStreamer-CRITICAL NTND> **: gst_pad_activate_pull: assertion `old =3D=3D GST_ACTIVATE_NONE' NTND> failed I'm using gstreamer-0.10.8, NTND> gst-plugins-{good,bad,ugly}-0.10.3. Can I use gst-launch-0.10 NTND> to modify tags? Is there any simple command line interface to NTND> test with? -- Bi C=E1=BB=9D Lao Are you using CVS HEAD? There are some particular combinations of rhythmbox and gstreamer in which tagging won't work, see the discussion on: http://bugs.gnome.org/342330 With rhythmbox HEAD and HEAD of gstreamer-plugins-{base,good,ugly} it should work. It may work with rhythmbox HEAD of earlier plugin releases, but I know that 0.9.4.1 and certain version of gst-plugins-ugly won't work. The id3v2mux plugin (now in gst-plugins-base-0.10.8) works much better than the old id3mux plugin from gst-plugins-ugly. Alex From brent@heyes.co.uk Mon Jun 19 05:43:10 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 31E6E3B008F for ; Mon, 19 Jun 2006 05:43:10 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 02128-10 for ; Mon, 19 Jun 2006 05:43:08 -0400 (EDT) Received: from ns.thishost.net (ns.thishost.net [217.199.169.69]) by menubar.gnome.org (Postfix) with ESMTP id 65F203B00C8 for ; Mon, 19 Jun 2006 05:43:08 -0400 (EDT) Received: from [192.168.1.1] (88-96-43-126.dsl.zen.co.uk [88.96.43.126]) (authenticated) by ns.thishost.net (8.10.2/8.10.2) with ESMTP id k5J9Xgs04132 for ; Mon, 19 Jun 2006 10:33:53 +0100 Message-ID: <44966F42.6030807@heyes.co.uk> Date: Mon, 19 Jun 2006 10:32:50 +0100 From: Brent Heyes User-Agent: Thunderbird 1.5.0.4 (X11/20060615) MIME-Version: 1.0 To: rhythmbox-devel@gnome.org X-Enigmail-Version: 0.94.0.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-0.74 tagged_above=-999 required=2 tests=[BAYES_20=-0.74] X-Spam-Score: -0.74 X-Spam-Level: X-Mailman-Approved-At: Mon, 19 Jun 2006 06:28:48 -0400 Subject: [Rhythmbox-devel] Rhythmbox Airtunes support X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Jun 2006 09:43:10 -0000 Hello there, Is there any visibility of either a gstreamer airtunes sink or even direct support for streaming to airtunes from Rhythmbox. Many thanks, -Brent From brent@heyes.co.uk Mon Jun 19 06:32:14 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 5E2A23B015D for ; Mon, 19 Jun 2006 06:32:14 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 04448-01 for ; Mon, 19 Jun 2006 06:32:13 -0400 (EDT) Received: from ns.thishost.net (ns.thishost.net [217.199.169.69]) by menubar.gnome.org (Postfix) with ESMTP id C795B3B00DC for ; Mon, 19 Jun 2006 06:32:12 -0400 (EDT) Received: from [192.168.1.1] (88-96-43-126.dsl.zen.co.uk [88.96.43.126]) (authenticated) by ns.thishost.net (8.10.2/8.10.2) with ESMTP id k5JAWFs06757 for ; Mon, 19 Jun 2006 11:32:15 +0100 Message-ID: <44967CFA.1080603@heyes.co.uk> Date: Mon, 19 Jun 2006 11:31:22 +0100 From: Brent Heyes User-Agent: Thunderbird 1.5.0.4 (X11/20060615) MIME-Version: 1.0 To: rhythmbox-devel@gnome.org X-Enigmail-Version: 0.94.0.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-1.631 tagged_above=-999 required=2 tests=[AWL=0.891, BAYES_00=-2.599, TW_MK=0.077] X-Spam-Score: -1.631 X-Spam-Level: Subject: [Rhythmbox-devel] Rhythmbox Airtunes support X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Jun 2006 10:32:14 -0000 Hello there, Is there any visibility of either a gstreamer airtunes sink or even direct support for streaming to airtunes from Rhythmbox. Many thanks, -Brent PS: I'm currently using the following method: gstreamer-properties ------------------------------------ Default Output Plugin: alsasink device=airtunes-stream ~/.asoundrc ---------------------- pcm.airtunes-stream { type file slave.pcm default file /tmp/airtunes-stream } ~/bin/airtunes-stream ------------------------------------- #!/bin/sh if [ ! -p /tmp/airtunes-stream ] then mkfifo /tmp/airtunes-stream fi while true do cat /tmp/airtunes-stream | JustePort.exe - 192.168.1.3 -20 sleep 1 done This method is a little buggy and also affects other applications using gstreamer such as totem. From doclivingston@gmail.com Mon Jun 19 06:52:18 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id D90B83B012F for ; Mon, 19 Jun 2006 06:52:17 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 05288-01 for ; Mon, 19 Jun 2006 06:52:17 -0400 (EDT) Received: from py-out-1112.google.com (py-out-1112.google.com [64.233.166.180]) by menubar.gnome.org (Postfix) with ESMTP id BB5773B00C4 for ; Mon, 19 Jun 2006 06:52:16 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id c39so1212783pyd for ; Mon, 19 Jun 2006 03:50:42 -0700 (PDT) Received: by 10.35.82.15 with SMTP id j15mr8098989pyl; Mon, 19 Jun 2006 03:50:42 -0700 (PDT) Received: from alyrion.local ( [144.134.101.185]) by mx.gmail.com with ESMTP id k62sm368505pyk.2006.06.19.03.50.39; Mon, 19 Jun 2006 03:50:41 -0700 (PDT) From: "James \"Doc\" Livingston" To: rhythmbox-devel@gnome.org In-Reply-To: <1150699441.7747.20.camel@midnight> References: <1150321213.15485.22.camel@midnight> <20060615041317.GC18230@kaolin.wh9.net> <1150352766.4396.10.camel@midnight> <20060615104111.GA19789@kaolin.wh9.net> <1150388081.16258.22.camel@midnight> <1150456926.5185.41.camel@localhost.localdomain> <1150509012.24700.3.camel@midnight> <1150691596.5187.6.camel@localhost.localdomain> <1150699441.7747.20.camel@midnight> Content-Type: text/plain Date: Mon, 19 Jun 2006 20:50:33 +1000 Message-Id: <1150714233.5187.30.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.452 tagged_above=-999 required=2 tests=[AWL=-0.006, BAYES_00=-2.599, SPF_PASS=-0.001, TW_BG=0.077, TW_EV=0.077] X-Spam-Score: -2.452 X-Spam-Level: Subject: Re: [Rhythmbox-devel] Magnatune catalog/purchasing plugin X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list Reply-To: doclivingston@gmail.com List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Jun 2006 10:52:18 -0000 On Sun, 2006-06-18 at 23:44 -0700, Adam Zimmerman wrote: > Alright, now we're getting somewhere! The tracks now show up in the > source, and they play :D ! But they have no metadata. The first > self._db.entry_set_uninserted call (and presumably the others as well) > throws an exception with the message "entry should be a RhythmDBEntry". > However, entry is a RhythmDBEntry (checked with "print entry", which > gives something to the effect of ), so I'm > not sure what's going on there. I've just fixed in cvs this too. Currently all the Python plugins that people have work on have been fairly simple (from a RB point of view), and don't use most of the API. So you get to be the guinea-pig that finds all these problems for us ;) > The other thing that's going weird has to do with the gnomevfs.async > code I'm writing, but it's quite possible I'm doing something wrong > there. I get the following message a bunch of times: > > (rhythmbox:7409): libgnomevfs-WARNING **: Unknown job kind 9 I also see that, and have no idea why. Cheers, James "Doc" Livingston -- There are only 10 types of people in the world: those who understand binary and those who don't. From doclivingston@gmail.com Mon Jun 19 08:24:08 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 4B4D83B0BF8 for ; Mon, 19 Jun 2006 08:24:08 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 10704-03 for ; Mon, 19 Jun 2006 08:24:07 -0400 (EDT) Received: from nz-out-0102.google.com (nz-out-0102.google.com [64.233.162.200]) by menubar.gnome.org (Postfix) with ESMTP id 14E763B04E0 for ; Mon, 19 Jun 2006 08:24:07 -0400 (EDT) Received: by nz-out-0102.google.com with SMTP id z3so889211nzf for ; Mon, 19 Jun 2006 05:23:10 -0700 (PDT) Received: by 10.65.93.17 with SMTP id v17mr5376178qbl; Mon, 19 Jun 2006 05:23:10 -0700 (PDT) Received: from alyrion.local ( [144.134.101.145]) by mx.gmail.com with ESMTP id z21sm2220157qbc.2006.06.19.05.23.08; Mon, 19 Jun 2006 05:23:10 -0700 (PDT) From: "James \"Doc\" Livingston" To: rhythmbox-devel@gnome.org In-Reply-To: <44967CFA.1080603@heyes.co.uk> References: <44967CFA.1080603@heyes.co.uk> Content-Type: text/plain Date: Mon, 19 Jun 2006 22:23:05 +1000 Message-Id: <1150719785.5187.39.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-1.801 tagged_above=-999 required=2 tests=[AWL=-0.657, BAYES_00=-2.599, RCVD_IN_SORBS_WEB=1.456, SPF_PASS=-0.001] X-Spam-Score: -1.801 X-Spam-Level: Subject: Re: [Rhythmbox-devel] Rhythmbox Airtunes support X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list Reply-To: doclivingston@gmail.com List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Jun 2006 12:24:08 -0000 On Mon, 2006-06-19 at 11:31 +0100, Brent Heyes wrote: > Is there any visibility of either a gstreamer airtunes sink or even > direct support for streaming to airtunes from Rhythmbox. Sometime in the not-to-distant future Rhythmbox will support plugins inserting things in/modifying the GStreamer pipeline. (We're still sorting out how exactly it will work.) When that arrives, it shouldn't be too difficult to write a plugin that launches JustePort and uses a GStreamer "fdsink" element to send the audio data directly to the program. Cheers, James "Doc" Livingston -- In God we Trust. All others must submit an X.509 certificate. From paul@power.luon.net Mon Jun 19 08:29:14 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 92E2F3B0B6B for ; Mon, 19 Jun 2006 08:29:13 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 10711-07 for ; Mon, 19 Jun 2006 08:29:10 -0400 (EDT) Received: from power.luon.net (246-12-ftth.onsnetstudenten.nl [145.120.12.246]) by menubar.gnome.org (Postfix) with ESMTP id 4338F3B047D for ; Mon, 19 Jun 2006 08:29:10 -0400 (EDT) Received: by power.luon.net (Postfix, from userid 1000) id 1D7E46B06A; Mon, 19 Jun 2006 14:28:05 +0200 (CEST) Date: Mon, 19 Jun 2006 14:28:05 +0200 From: Paul van Tilburg To: rhythmbox-devel@gnome.org Message-ID: <20060619122804.GA16353@power.luon.net> Mail-Followup-To: rhythmbox-devel@gnome.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Operating-System: Linux power 2.6.16-2-powerpc #2 Mon May 22 16:46:02 CEST 2006 ppc GNU/Linux User-Agent: Mutt/1.5.11+cvs20060403 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.532 tagged_above=-999 required=2 tests=[AWL=-0.067, BAYES_00=-2.599, FORGED_RCVD_HELO=0.135] X-Spam-Score: -2.532 X-Spam-Level: Subject: [Rhythmbox-devel] Queue ideas X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Jun 2006 12:29:14 -0000 Hello everyone, I tried the Rhythmbox 0.9.5 release, it is nice, good work. :) I had some few ideas for queueing and I'd would like to know what you think of them before filing some wishlist bugs: * Queuing radio channels: Sometimes I feel like.. ok, after these tracks, let's just tune in to some radio. I think this would work well. If the channel stops broadcasting or I press next, normal operation resumes. * Queuing a playback stop: I have not thought about how this can work UI-wise or if it should be possible even. But I sometimes would like to insert a pause or just a stop. I do this now by typing rubbish in the search field so that the playlist/library yields an empty list and RB stops playing. I even see other people doing this :), it can't be the right way. * Queuing a playlist: This is the weirdest of the three suggestions. This is probably because it would involve dragging an item of the left-hand side of Rhythmbox into a the queue which is maybe not so obvious. Besides these issues, I think it is useful if you can queue the playback of some playlist. Now I always have to interrupt a track because I doubleclick on some list to start it. Once a playlist is started, I also can not say what has to happen after the playlist is finished. If playlists can be queued, this can be controlled. Paul -- Student @ Eindhoven | email: paul@luon.net University of Technology, The Netherlands | JID: paul@luon.net >>> Using the Power of Debian GNU/Linux <<< | GnuPG key ID: 0x50064181 From fabio@berta.ch Mon Jun 19 12:39:06 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 4AEE03B0378 for ; Mon, 19 Jun 2006 12:39:06 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 20544-08 for ; Mon, 19 Jun 2006 12:39:05 -0400 (EDT) Received: from smtp.hispeed.ch (mxout.hispeed.ch [62.2.95.247]) by menubar.gnome.org (Postfix) with ESMTP id 5F5953B03D1 for ; Mon, 19 Jun 2006 12:39:04 -0400 (EDT) Received: from 84-74-81-146.dclient.hispeed.ch (84-74-81-146.dclient.hispeed.ch [84.74.81.146]) by smtp.hispeed.ch (8.12.11.20060308/8.12.6/taifun-1.0) with ESMTP id k5JGcGh5029350 for ; Mon, 19 Jun 2006 18:38:16 +0200 From: Fabio Berta To: rhythmbox-devel@gnome.org In-Reply-To: References: Content-Type: text/plain Date: Mon, 19 Jun 2006 18:38:38 +0200 Message-Id: <1150735119.6206.2.camel@ubuntu> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.88.2, clamav-milter version 0.88.2 on smtp-08.tornado.cablecom.ch X-Virus-Status: Clean X-DCC-spamcheck-01.tornado.cablecom.ch-Metrics: smtp-08.tornado.cablecom.ch 1377; Body=1 Fuz1=1 Fuz2=1 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.464 tagged_above=-999 required=2 tests=[BAYES_00=-2.599, FORGED_RCVD_HELO=0.135] X-Spam-Score: -2.464 X-Spam-Level: Subject: [Rhythmbox-devel] Art Plugin X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Jun 2006 16:39:06 -0000 Hi I'm using the new Rhythmbox 0.9.5 and I really like it! Especially the art plugin is great. But one thing bothers me a bit. I often have albums with more than 1 CD, so I name them "album CD1" and "album CD2". For example "Stadium Arcadium CD1". The art plugin is not able to pick up the right cover for CDs named like this. Maybe this could be fixed somehow? Cheers, Fabio From adam_zimmerman@sfu.ca Mon Jun 19 15:03:00 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id B08D53B01DA for ; Mon, 19 Jun 2006 15:03:00 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 27111-02 for ; Mon, 19 Jun 2006 15:02:50 -0400 (EDT) Received: from pobox.sfu.ca (pobox.sfu.ca [142.58.101.28]) by menubar.gnome.org (Postfix) with ESMTP id 6EA3A3B01BB for ; Mon, 19 Jun 2006 15:02:50 -0400 (EDT) Received: from [192.168.1.106] (d154-20-236-220.bchsia.telus.net [154.20.236.220]) (authenticated bits=0) by pobox.sfu.ca (8.13.6/8.13.5/SFU-6.0G) with ESMTP id k5JJ1ZE8018793 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NOT) for ; Mon, 19 Jun 2006 12:01:36 -0700 (PDT) From: Adam Zimmerman To: rhythmbox-devel@gnome.org In-Reply-To: <1150714233.5187.30.camel@localhost.localdomain> References: <1150321213.15485.22.camel@midnight> <20060615041317.GC18230@kaolin.wh9.net> <1150352766.4396.10.camel@midnight> <20060615104111.GA19789@kaolin.wh9.net> <1150388081.16258.22.camel@midnight> <1150456926.5185.41.camel@localhost.localdomain> <1150509012.24700.3.camel@midnight> <1150691596.5187.6.camel@localhost.localdomain> <1150699441.7747.20.camel@midnight> <1150714233.5187.30.camel@localhost.localdomain> Content-Type: multipart/mixed; boundary="=-J6JHMV/bM4tyg4zN1rZj" Date: Mon, 19 Jun 2006 12:01:34 -0700 Message-Id: <1150743695.14078.23.camel@midnight> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 X-Virus-Scanned: by antibody.sfu.ca running antivirus scanner X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.442 tagged_above=-999 required=2 tests=[AWL=0.080, BAYES_00=-2.599, TW_GT=0.077] X-Spam-Score: -2.442 X-Spam-Level: Subject: Re: [Rhythmbox-devel] Magnatune catalog/purchasing plugin X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Jun 2006 19:03:00 -0000 --=-J6JHMV/bM4tyg4zN1rZj Content-Type: text/plain Content-Transfer-Encoding: 7bit (happy dance!) Everything (basically) seems to be working now. The tracks have proper metadata, they play fine (although the duration in the xml file doesn't include the extra bit announcing the artist/album at the end of each file, but nothing we can do about that), and nothing crashes :). I noticed that if I look at a track's properties, when I close rhythmbox I see this message (just once, no matter how many files' properties I looked at, but it doesn't happen if I don't look at any): sys:1: GtkWarning: gtk_tree_selection_count_selected_rows: assertion `GTK_IS_TREE_SELECTION (selection)' failed sys:1: Warning: invalid unclassed pointer in cast to `GObject' sys:1: Warning: instance with invalid (NULL) class pointer sys:1: Warning: g_signal_emit_valist: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed It seems to be harmless, so I'm not too worried about it. I think I'll file a bug about the async.open/read issue, unless anyone has an idea as to what's going on with that. I'll also get in touch with John at Magnatune and ask for a partner id and get info on how the purchase API responds. I still need to figure out a way to attach the album's sku string to an entry so that it can be purchased. I've attached a much cleaner-looking :) version of the code, with just the playing bits. It still blocks the ui for about 2 minutes, but other than that it works perfectly as far as I can tell. Thank you everyone for your help and patience so far! -- Adam Zimmerman CREATIVITY - http://mirrors.creativecommons.org/movingimages/Building_on_the_Past.mpg ALWAYS - http://www.musiccreators.ca/ BUILDS - http://www.ubuntu.com/ ON THE PAST - http://www.theopencd.org/ -- "What time is it?" "I don't know, it keeps changing." --=-J6JHMV/bM4tyg4zN1rZj Content-Disposition: attachment; filename=magnatune.py Content-Type: text/x-python; name=magnatune.py; charset=utf-8 Content-Transfer-Encoding: 7bit import rhythmdb, rb import gobject, gtk from gettext import gettext as _ import xml.sax, xml.sax.handler import datetime ################################################ # Class to add Magnatune catalog to the source # ################################################ class TrackListHandler(xml.sax.handler.ContentHandler): def __init__(self, db, entry_type): xml.sax.handler.ContentHandler.__init__(self) self._track = {} # temporary dictionary for track info self._db = db self._entry_type = entry_type def startElement(self, name, attrs): self._text = "" def endElement(self, name): if name == "Track": try: # add the track to the source entry = self._db.entry_new(self._entry_type, self._track['url']) date = datetime.date(int(self._track['launchdate'][0:4]), 1, 1).toordinal() # year is sometimes 0, so we use launchdate # set metadata self._db.entry_set_uninserted(entry, rhythmdb.PROP_ARTIST, self._track['artist']) self._db.entry_set_uninserted(entry, rhythmdb.PROP_ALBUM, self._track['albumname']) self._db.entry_set_uninserted(entry, rhythmdb.PROP_TITLE, self._track['trackname']) self._db.entry_set_uninserted(entry, rhythmdb.PROP_TRACK_NUMBER, int(self._track['tracknum'])) self._db.entry_set_uninserted(entry, rhythmdb.PROP_DATE, date) self._db.entry_set_uninserted(entry, rhythmdb.PROP_GENRE, self._track['mp3genre']) self._db.entry_set_uninserted(entry, rhythmdb.PROP_DURATION, int(self._track['seconds'])) self._db.commit() except Exception,e: # This happens on duplicate uris being added print _("Couldn't add %s - %s") % (self._track['artist'], self._track['trackname']) # This should be printed to debug print e self._track = {} elif name == "AllSongs": pass # end of the file else: self._track[name] = self._text def characters(self, content): self._text = self._text + content ################################################ # Main Magnatune Plugin Class # ################################################ class Magnatune(rb.Plugin): def __init__(self): rb.Plugin.__init__(self) def activate(self, shell): self.db = shell.get_property("db") self.entry_type = rhythmdb.entry_register_type("MagnatuneEntryType") self.source = gobject.new (MagnatuneSource, shell=shell, name=_("Magnatune"), entry_type=self.entry_type) shell.register_entry_type_for_source(self.source, self.entry_type) icon = gtk.gdk.pixbuf_new_from_xpm_data(magnatune_logo_xpm) # Include a flashy Magnatune logo for the source self.source.set_property("icon", icon) shell.append_source(self.source, None) # Add the source to the list self.parser = xml.sax.make_parser() self.parser.setContentHandler(TrackListHandler(self.db, self.entry_type)) self.parser.parse("http://magnatune.com/info/song_info.xml") def deactivate(self, shell): self.db.entry_delete_by_type(self.entry_type) self.db.commit() self.source.delete_thyself() self.source = None class MagnatuneSource(rb.BrowserSource): def __init__(self): rb.Source.__init__(self) gobject.type_register(MagnatuneSource) ################################################ # Magnatune Logo. Seems to work well enough... # ################################################ # (converted from http://www.magnatune.com/favicon.ico) magnatune_logo_xpm = [ "32 32 4 1", " c None", #Original colours: ". c None", #FFFFFF "+ c #303030", #C0C0C0 "@ c #000000", #808080 "................................", "................................", "................................", "................................", "................................", "................................", "............++@@@@++............", "..........+@@@@@@@@@@+..........", ".........+@@@+....+@@@+.........", "........+@@+...++...+@@+........", ".......+@@+....@@....+@@+.......", ".......@@+.....@@.....+@@.......", "......+@@......@@......@@+......", "......+@+......@@......+@+......", "......@@...@@..@@..@@...@@......", "......@@...@@+.@@.+@@...@@......", "......@@...@@+.@@.+@@...@@......", "......@@...@@+.@@.+@@...@@......", "......+@+..@@+.@@.+@@..+@+......", "......+@@..@@+.@@.+@@..@@+......", ".......@@+.@@+.@@.+@@.+@@.......", ".......+@@+.+..+...+.+@@+.......", "........+@@+........+@@+........", ".........+@@@+....+@@@+.........", "..........+@@@@@@@@@@+..........", "............++@@@@++............", "................................", "................................", "................................", "................................", "................................", "................................" ] --=-J6JHMV/bM4tyg4zN1rZj-- From jan.martin@jpl.nasa.gov Mon Jun 19 15:05:57 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 69AF43B01BB for ; Mon, 19 Jun 2006 15:05:57 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 27220-01 for ; Mon, 19 Jun 2006 15:05:56 -0400 (EDT) Received: from radar-mail.jpl.nasa.gov (comma.jpl.nasa.gov [137.78.28.135]) by menubar.gnome.org (Postfix) with SMTP id 00BB13B00DB for ; Mon, 19 Jun 2006 15:05:55 -0400 (EDT) Received: (qmail 20307 invoked from network); 19 Jun 2006 19:04:24 -0000 Received: from surprise.jpl.nasa.gov (HELO ?137.78.28.125?) (jmm@radar-sci.jpl.nasa.gov@137.78.28.125) by comma.jpl.nasa.gov with SMTP; 19 Jun 2006 19:04:24 -0000 Message-ID: <4496F52F.8010308@jpl.nasa.gov> Date: Mon, 19 Jun 2006 12:04:15 -0700 From: Jan Martin User-Agent: Thunderbird 1.5.0.4 (X11/20060516) MIME-Version: 1.0 To: Rhythmbox-devel list Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.599 tagged_above=-999 required=2 tests=[BAYES_00=-2.599] X-Spam-Score: -2.599 X-Spam-Level: Subject: [Rhythmbox-devel] dbus dependency kills compilation X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Jun 2006 19:05:57 -0000 Hi folks, I have a question about the new dbus requirement - how can I satisfy it without breaking my system, given that the dbus version present on Mandriva 2006.0 is 0.28. The problem is that several crucial components use dbus and I don't know really how to update dbus to a later version without potentially breaking something I really need, like my desktop. Any ideas? By the way, the archive for this list appears to be broken - when I go there, I can only see June, which makes searching this list a little difficult. Maybe it's just me? Dunno. I really like using rhythmbox, and I'd like to try out the new version, so any help would be appreciated. Thanks. -Jan From jjrussell@gmail.com Mon Jun 19 15:34:32 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 8761B3B0A9E for ; Mon, 19 Jun 2006 15:34:24 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 28489-02 for ; Mon, 19 Jun 2006 15:34:21 -0400 (EDT) Received: from ug-out-1314.google.com (ug-out-1314.google.com [66.249.92.174]) by menubar.gnome.org (Postfix) with ESMTP id 45ED43B0B44 for ; Mon, 19 Jun 2006 15:34:12 -0400 (EDT) Received: by ug-out-1314.google.com with SMTP id o2so2682919uge for ; Mon, 19 Jun 2006 12:33:12 -0700 (PDT) Received: by 10.78.26.9 with SMTP id 9mr2270031huz; Mon, 19 Jun 2006 12:33:12 -0700 (PDT) Received: by 10.78.124.12 with HTTP; Mon, 19 Jun 2006 12:33:12 -0700 (PDT) Message-ID: <46cb18130606191233w68f08b35t5b4a360a592e8971@mail.gmail.com> Date: Mon, 19 Jun 2006 15:33:12 -0400 From: "John Russell" To: "Rhythmbox-devel list" MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.598 tagged_above=-999 required=2 tests=[AWL=0.002, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.598 X-Spam-Level: Subject: [Rhythmbox-devel] uable to determine address of the message bus X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Jun 2006 19:34:32 -0000 (rhythmbox:31895): Rhythmbox-WARNING **: couldn't connect to session bus: Unable to determine the address of the message bus I get this message all the time and now that 0.9.5 has rb-client which uses dbus to control rb, I really need to figure it out. I have this in my .xinitrc dbus-launch --exit-with-session gnome-session and when I look for dbus I get ~> ps aux | grep dbus 101 10297 0.0 0.0 3292 952 ? Ss Jun16 0:00 /usr/bin/dbus-daemon --system jorussel 31668 0.0 0.0 2736 672 tty1 S 15:26 0:00 dbus-launch --exit-with-session gnome-session jorussel 31667 0.0 0.0 3296 976 ? Ss 15:26 0:00 dbus-daemon --fork --print-pid 8 --print-address 6 --session So I have both the system and session buses running. So why is it that rb still can't find the message bus? Thanks for the help. John From hadess@hadess.net Mon Jun 19 18:14:36 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 93EC03B0E73 for ; Mon, 19 Jun 2006 18:14:36 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 04558-03 for ; Mon, 19 Jun 2006 18:14:35 -0400 (EDT) Received: from lucifer.nerdfest.org (lucifer.nerdfest.org [216.243.209.218]) by menubar.gnome.org (Postfix) with ESMTP id 037BB3B0DFC for ; Mon, 19 Jun 2006 18:14:34 -0400 (EDT) Received: from [192.168.1.5] (cpc4-glfd1-0-0-cust751.glfd.cable.ntl.com [86.16.126.240]) (authenticated bits=0) by lucifer.nerdfest.org (8.13.1/8.13.1) with ESMTP id k5JMD72K009241 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NO); Mon, 19 Jun 2006 17:13:09 -0500 From: Bastien Nocera To: Fabio Berta In-Reply-To: <1150735119.6206.2.camel@ubuntu> References: <1150735119.6206.2.camel@ubuntu> Content-Type: text/plain Date: Mon, 19 Jun 2006 23:13:56 +0100 Message-Id: <1150755237.9668.148.camel@wyatt.hadess.net> Mime-Version: 1.0 X-Mailer: Evolution 2.5.90 (2.5.90-2.1) Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV 0.88.2/1549/Sat Jun 17 17:20:39 2006 on lucifer.nerdfest.org X-Virus-Status: Clean X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.594 tagged_above=-999 required=2 tests=[AWL=0.006, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.594 X-Spam-Level: Cc: rhythmbox-devel@gnome.org Subject: Re: [Rhythmbox-devel] Art Plugin X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Jun 2006 22:14:36 -0000 On Mon, 2006-06-19 at 18:38 +0200, Fabio Berta wrote: > Hi > > I'm using the new Rhythmbox 0.9.5 and I really like it! Especially the > art plugin is great. But one thing bothers me a bit. I often have albums > with more than 1 CD, so I name them "album CD1" and "album CD2". For > example "Stadium Arcadium CD1". The art plugin is not able to pick up > the right cover for CDs named like this. Maybe this could be fixed > somehow? The obvious way is to use the "Album number" tag, and remove the "CD XXX" bit from the album name. -- Bastien Nocera From jonathan@kaolin.wh9.net Mon Jun 19 20:53:29 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id C105C3B0E52 for ; Mon, 19 Jun 2006 20:53:29 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 10740-07 for ; Mon, 19 Jun 2006 20:53:28 -0400 (EDT) Received: from ash25e.internode.on.net (ash25e.internode.on.net [203.16.214.182]) by menubar.gnome.org (Postfix) with ESMTP id 8346A3B0319 for ; Mon, 19 Jun 2006 20:53:27 -0400 (EDT) Received: from stapler.kaolin.wh9.net (ppp97-73.lns1.bne1.internode.on.net [59.167.97.73]) by ash25e.internode.on.net (8.13.6/8.13.5) with ESMTP id k5K0qDTS015869 for ; Tue, 20 Jun 2006 10:22:13 +0930 (CST) (envelope-from jonathan@kaolin.wh9.net) Received: from jonathan by stapler.kaolin.wh9.net with local (Exim 4.50) id 1FsUTV-0001Vj-1z for rhythmbox-devel@gnome.org; Tue, 20 Jun 2006 10:52:13 +1000 Date: Tue, 20 Jun 2006 10:52:13 +1000 To: rhythmbox-devel@gnome.org Message-ID: <20060620005213.GA5785@kaolin.wh9.net> Mail-Followup-To: rhythmbox-devel@gnome.org References: <46cb18130606191233w68f08b35t5b4a360a592e8971@mail.gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <46cb18130606191233w68f08b35t5b4a360a592e8971@mail.gmail.com> X-Represent-the-Ocean: Yes User-Agent: Mutt/1.5.9i From: Jonathan Matthew X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.46 tagged_above=-999 required=2 tests=[AWL=0.005, BAYES_00=-2.599, FORGED_RCVD_HELO=0.135, SPF_HELO_PASS=-0.001] X-Spam-Score: -2.46 X-Spam-Level: Subject: Re: [Rhythmbox-devel] uable to determine address of the message bus X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Jun 2006 00:53:29 -0000 On Mon, Jun 19, 2006 at 03:33:12PM -0400, John Russell wrote: > (rhythmbox:31895): Rhythmbox-WARNING **: couldn't connect to session > bus: Unable to determine the address of the message bus > > I get this message all the time and now that 0.9.5 has rb-client which > uses dbus to control rb, I really need to figure it out. > > I have this in my .xinitrc > > dbus-launch --exit-with-session gnome-session This will work as long as everything you use in your session is a spawned by gnome-session. If not, you might have better luck with something like this (from the dbus-launch man page): eval 'dbus-launch --sh-syntax --exit-with-session' The dbus library uses the DBUS_SESSION_BUS_ADDRESS environment variable to find the session bus. If this is set in whatever process you're launching rhythmbox or rhythmbox-client from, everything should work. From doclivingston@gmail.com Mon Jun 19 20:56:16 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id F1A9B3B0EF1 for ; Mon, 19 Jun 2006 20:56:15 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 10889-08 for ; Mon, 19 Jun 2006 20:56:13 -0400 (EDT) Received: from py-out-1112.google.com (py-out-1112.google.com [64.233.166.181]) by menubar.gnome.org (Postfix) with ESMTP id 9A88F3B0E87 for ; Mon, 19 Jun 2006 20:56:13 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id c39so1408053pyd for ; Mon, 19 Jun 2006 17:54:28 -0700 (PDT) Received: by 10.35.129.19 with SMTP id g19mr8986586pyn; Mon, 19 Jun 2006 17:54:28 -0700 (PDT) Received: from alyrion.local ( [144.134.101.18]) by mx.gmail.com with ESMTP id b52sm57407pyb.2006.06.19.17.54.00; Mon, 19 Jun 2006 17:54:27 -0700 (PDT) From: "James \"Doc\" Livingston" To: rhythmbox-devel@gnome.org In-Reply-To: <1150735119.6206.2.camel@ubuntu> References: <1150735119.6206.2.camel@ubuntu> Content-Type: text/plain Date: Tue, 20 Jun 2006 10:53:23 +1000 Message-Id: <1150764803.5180.14.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.514 tagged_above=-999 required=2 tests=[AWL=0.086, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.514 X-Spam-Level: Subject: Re: [Rhythmbox-devel] Art Plugin X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list Reply-To: doclivingston@gmail.com List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Jun 2006 00:56:16 -0000 On Mon, 2006-06-19 at 18:38 +0200, Fabio Berta wrote: > I'm using the new Rhythmbox 0.9.5 and I really like it! Especially the > art plugin is great. But one thing bothers me a bit. I often have albums > with more than 1 CD, so I name them "album CD1" and "album CD2". For > example "Stadium Arcadium CD1". The art plugin is not able to pick up > the right cover for CDs named like this. Maybe this could be fixed > somehow? We already do this, but only for "(disc N)", "(CD N)" and the like - with the parentheses. We could probably add another regexp string to match them without parentheses if it's at the end of the string. Can anyone think of any likely false matches for "[Cc][Dd] *[1-9]+$" or [Dd]is[ck] *[1-9]+$"? If not, I'll add it to the list. Cheers, James "Doc" Livingston -- | <- You must be smarter than this stick to ride the Internet -- Mike Handler, paraphrased from Bev White From jonathan@kaolin.wh9.net Mon Jun 19 21:16:17 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 0AFFC3B008F for ; Mon, 19 Jun 2006 21:16:17 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 13451-05 for ; Mon, 19 Jun 2006 21:16:10 -0400 (EDT) Received: from smtp3.adl2.internode.on.net (smtp3.adl2.internode.on.net [203.16.214.203]) by menubar.gnome.org (Postfix) with ESMTP id D4C503B0ADF for ; Mon, 19 Jun 2006 21:14:44 -0400 (EDT) Received: from stapler.kaolin.wh9.net (ppp97-73.lns1.bne1.internode.on.net [59.167.97.73]) by smtp3.adl2.internode.on.net (8.13.6/8.13.5) with ESMTP id k5K1D6d8039414 for ; Tue, 20 Jun 2006 10:43:10 +0930 (CST) (envelope-from jonathan@kaolin.wh9.net) Received: from jonathan by stapler.kaolin.wh9.net with local (Exim 4.50) id 1FsUni-0001WU-33 for rhythmbox-devel@gnome.org; Tue, 20 Jun 2006 11:13:06 +1000 Date: Tue, 20 Jun 2006 11:13:06 +1000 To: rhythmbox-devel@gnome.org Message-ID: <20060620011306.GB5785@kaolin.wh9.net> Mail-Followup-To: rhythmbox-devel@gnome.org References: <4496F52F.8010308@jpl.nasa.gov> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4496F52F.8010308@jpl.nasa.gov> X-Represent-the-Ocean: Yes User-Agent: Mutt/1.5.9i From: Jonathan Matthew X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.46 tagged_above=-999 required=2 tests=[AWL=0.005, BAYES_00=-2.599, FORGED_RCVD_HELO=0.135, SPF_HELO_PASS=-0.001] X-Spam-Score: -2.46 X-Spam-Level: Subject: Re: [Rhythmbox-devel] dbus dependency kills compilation X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Jun 2006 01:16:17 -0000 On Mon, Jun 19, 2006 at 12:04:15PM -0700, Jan Martin wrote: > Hi folks, > > I have a question about the new dbus requirement - how can I satisfy it > without breaking my system, given that the dbus version present on > Mandriva 2006.0 is 0.28. The problem is that several crucial components > use dbus and I don't know really how to update dbus to a later version > without potentially breaking something I really need, like my desktop. > > Any ideas? You could try to implement old-dbus support for dbus 0.2x, or compile a newer version of dbus under your home directory and use that for rhythmbox. Adding support for dbus 0.2x shouldn't be too hard, but I'm not sure how much the API changed between 0.2x and 0.3x. The current old-dbus support for dbus 0.31 - 0.35 lives in shell/main.c. I don't see any reason we wouldn't accept a patch to do this, as long as it didn't mess up anything else too much. Running a separate dbus session bus for rhythmbox would be the easiest way to do this, but making sure the bus address environment variable is set correctly when you need it might be tricky. If you used dbus-launch to run a script wrote the bus address to a file in your home directory then launched rhythmbox, then had a wrapper for rhythmbox-client that read this file and set DBUS_SESSION_BUS_ADDRESS, then ran rhythmbox-client, this might work. I haven't tried it. > By the way, the archive for this list appears to be broken - when I go > there, I can only see June, which makes searching this list a little > difficult. Maybe it's just me? Dunno. There's something weird going on with the archives on mail.gnome.org. The archives are all still there, but the archive index page doesn't show them. gmane should still have everything, and google should have it all indexed. From doclivingston@gmail.com Mon Jun 19 21:24:47 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 8EF1D3B0156 for ; Mon, 19 Jun 2006 21:24:47 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 13897-09 for ; Mon, 19 Jun 2006 21:24:46 -0400 (EDT) Received: from py-out-1112.google.com (py-out-1112.google.com [64.233.166.183]) by menubar.gnome.org (Postfix) with ESMTP id D78C23B0359 for ; Mon, 19 Jun 2006 21:24:45 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id c39so1413568pyd for ; Mon, 19 Jun 2006 18:24:00 -0700 (PDT) Received: by 10.35.121.9 with SMTP id y9mr9024591pym; Mon, 19 Jun 2006 18:24:00 -0700 (PDT) Received: from alyrion.local ( [144.134.101.18]) by mx.gmail.com with ESMTP id w28sm1663481pyc.2006.06.19.18.23.57; Mon, 19 Jun 2006 18:23:59 -0700 (PDT) From: "James \"Doc\" Livingston" To: rhythmbox-devel@gnome.org In-Reply-To: <1150743695.14078.23.camel@midnight> References: <1150321213.15485.22.camel@midnight> <20060615041317.GC18230@kaolin.wh9.net> <1150352766.4396.10.camel@midnight> <20060615104111.GA19789@kaolin.wh9.net> <1150388081.16258.22.camel@midnight> <1150456926.5185.41.camel@localhost.localdomain> <1150509012.24700.3.camel@midnight> <1150691596.5187.6.camel@localhost.localdomain> <1150699441.7747.20.camel@midnight> <1150714233.5187.30.camel@localhost.localdomain> <1150743695.14078.23.camel@midnight> Content-Type: text/plain Date: Tue, 20 Jun 2006 11:23:54 +1000 Message-Id: <1150766634.5180.22.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.514 tagged_above=-999 required=2 tests=[AWL=0.086, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.514 X-Spam-Level: Subject: Re: [Rhythmbox-devel] Magnatune catalog/purchasing plugin X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list Reply-To: doclivingston@gmail.com List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Jun 2006 01:24:47 -0000 On Mon, 2006-06-19 at 12:01 -0700, Adam Zimmerman wrote: > sys:1: GtkWarning: gtk_tree_selection_count_selected_rows: assertion > `GTK_IS_TREE_SELECTION (selection)' failed > sys:1: Warning: invalid unclassed pointer in cast to `GObject' > sys:1: Warning: instance with invalid (NULL) class pointer > sys:1: Warning: g_signal_emit_valist: assertion `G_TYPE_CHECK_INSTANCE > (instance)' failed That was another "forget to remove idle callback when finalised" bug, it's fixed now. > I'll also get in touch with John at Magnatune and ask for a partner id > and get info on how the purchase API responds. It might be worth asking if there is a compressed version of the .xml file available too, for example a gzipped version is ~270kb instead of 5.8Mb - and that would save a lot of bandwidth. If there is anything he needs to know about Rhythmbox which you don't feel up to answering, feel free to pass my address on. On a related note, we can probably do some other things to reduce the bandwidth. The most obvious would be caching the xml file as ~/.gnome2/rhythmbox/magnatune/song_info.xml (or whatever) and only downloading it every now and then, and in the background. We could probably send the HTTP magic needed to get the "it hasn't changed" response, so we know not to update. > I still need to figure out a way to attach the album's sku string to an > entry so that it can be purchased. Rhythmbox supports attaching extra data, but it's not currently exposed to Python. One method of doing it (which would be fairly simple) would be to give each entry a dictionary, accessable via "entry.data" or something - how does that sound? James "Doc" Livingston -- "The Web brings people together because no matter what kind of a twisted sexual mutant you happen to be, you've got millions of pals out there. Type in 'Find people that have sex with goats that are on fire' and the computer will ask, 'Specify type of goat.'" -- Rich Jeni From doclivingston@gmail.com Mon Jun 19 21:46:16 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id D969F3B09BA for ; Mon, 19 Jun 2006 21:46:16 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 15206-08 for ; Mon, 19 Jun 2006 21:46:15 -0400 (EDT) Received: from py-out-1112.google.com (py-out-1112.google.com [64.233.166.176]) by menubar.gnome.org (Postfix) with ESMTP id 79CA33B015D for ; Mon, 19 Jun 2006 21:46:15 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id c39so1418274pyd for ; Mon, 19 Jun 2006 18:44:59 -0700 (PDT) Received: by 10.35.57.5 with SMTP id j5mr9080336pyk; Mon, 19 Jun 2006 18:44:59 -0700 (PDT) Received: from alyrion.local ( [144.134.101.18]) by mx.gmail.com with ESMTP id w66sm2175691pyw.2006.06.19.18.44.41; Mon, 19 Jun 2006 18:44:59 -0700 (PDT) From: "James \"Doc\" Livingston" To: rhythmbox-devel@gnome.org In-Reply-To: <46cb18130606191233w68f08b35t5b4a360a592e8971@mail.gmail.com> References: <46cb18130606191233w68f08b35t5b4a360a592e8971@mail.gmail.com> Content-Type: text/plain Date: Tue, 20 Jun 2006 11:44:19 +1000 Message-Id: <1150767859.5180.33.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.514 tagged_above=-999 required=2 tests=[AWL=0.086, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.514 X-Spam-Level: Subject: Re: [Rhythmbox-devel] uable to determine address of the message bus X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list Reply-To: doclivingston@gmail.com List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Jun 2006 01:46:17 -0000 On Mon, 2006-06-19 at 15:33 -0400, John Russell wrote: > (rhythmbox:31895): Rhythmbox-WARNING **: couldn't connect to session > bus: Unable to determine the address of the message bus > > I get this message all the time and now that 0.9.5 has rb-client which > uses dbus to control rb, I really need to figure it out. That's the message when "dbus_g_bus_get (DBUS_BUS_SESSION, &error);" returns NULL, and the second half of the message comes directly from DBus. > So I have both the system and session buses running. So why is it > that rb still can't find the message bus? Do any other DBus-using applications report that? (e.g. dbus-viewer). If they won't, and Rhythmbox doesn't, then something very odd is going on. Cheers, James "Doc" Livingston -- Actually, we have scientifically determined that Heisenberg did indeed sleep exactly here. However, we have no idea whatsoever just how fast asleep he was. -- Dave Aronson in asr. From fisxoj@gmail.com Tue Jun 20 00:20:07 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 76CF53B0ED7 for ; Tue, 20 Jun 2006 00:20:07 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 22211-10 for ; Tue, 20 Jun 2006 00:20:03 -0400 (EDT) Received: from wx-out-0102.google.com (wx-out-0102.google.com [66.249.82.203]) by menubar.gnome.org (Postfix) with ESMTP id 7DCEC3B0E5D for ; Tue, 20 Jun 2006 00:20:03 -0400 (EDT) Received: by wx-out-0102.google.com with SMTP id t12so386943wxc for ; Mon, 19 Jun 2006 21:18:39 -0700 (PDT) Received: by 10.70.37.13 with SMTP id k13mr9673417wxk; Mon, 19 Jun 2006 21:12:16 -0700 (PDT) Received: from ?192.168.1.120? ( [67.86.206.80]) by mx.gmail.com with ESMTP id h18sm3164416wxd.2006.06.19.21.12.16; Mon, 19 Jun 2006 21:12:16 -0700 (PDT) Message-ID: <44977599.7060509@gmail.com> Date: Tue, 20 Jun 2006 00:12:09 -0400 From: Matt User-Agent: Thunderbird 1.5.0.4 (X11/20060614) MIME-Version: 1.0 To: rhythmbox-devel@gnome.org References: <1150735119.6206.2.camel@ubuntu> In-Reply-To: <1150735119.6206.2.camel@ubuntu> X-Enigmail-Version: 0.94.0.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.584 tagged_above=-999 required=2 tests=[AWL=0.016, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.584 X-Spam-Level: Subject: Re: [Rhythmbox-devel] Art Plugin X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Jun 2006 04:20:07 -0000 Fabio Berta wrote: > Hi > > I'm using the new Rhythmbox 0.9.5 and I really like it! Especially the > art plugin is great. But one thing bothers me a bit. I often have albums > with more than 1 CD, so I name them "album CD1" and "album CD2". For > example "Stadium Arcadium CD1". The art plugin is not able to pick up > the right cover for CDs named like this. Maybe this could be fixed > somehow? > > Cheers, > > Fabio > > _______________________________________________ > rhythmbox-devel mailing list > rhythmbox-devel@gnome.org > http://mail.gnome.org/mailman/listinfo/rhythmbox-devel > > I have the same issue with Fountains of Wayne - Out of State Plates [disc1] Perhaps something could parse out phrases like 'CD' and 'disc' and strip chars like {} [] () ? Also, albums in other languages, which aren't on the amazon.com site (like Von Spatzen Und Tauben, Dächern Und Händen by Kettcar) don't show up. I don't know what the amazon api is like, but presumably it should be easy enough to query another source like amazon.de? As usual, enjoying the Box -Matt From fisxoj@gmail.com Mon Jun 19 19:22:32 2006 Return-Path: X-Original-To: rhythmbox-devel@gnome.org Delivered-To: rhythmbox-devel@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id C63893B0AA2 for ; Mon, 19 Jun 2006 19:22:31 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 06702-06 for ; Mon, 19 Jun 2006 19:22:31 -0400 (EDT) Received: from wx-out-0102.google.com (wx-out-0102.google.com [66.249.82.207]) by menubar.gnome.org (Postfix) with ESMTP id B52273B01D6 for ; Mon, 19 Jun 2006 19:22:28 -0400 (EDT) Received: by wx-out-0102.google.com with SMTP id h26so961018wxd for ; Mon, 19 Jun 2006 16:21:24 -0700 (PDT) Received: by 10.70.68.16 with SMTP id q16mr9396397wxa; Mon, 19 Jun 2006 16:21:24 -0700 (PDT) Received: from ?192.168.1.120? ( [67.86.206.80]) by mx.gmail.com with ESMTP id i10sm1247540wxd.2006.06.19.16.20.46; Mon, 19 Jun 2006 16:21:23 -0700 (PDT) Message-ID: <44973147.8020304@gmail.com> Date: Mon, 19 Jun 2006 19:20:39 -0400 From: Matt User-Agent: Thunderbird 1.5.0.4 (X11/20060614) MIME-Version: 1.0 To: rhythmbox-devel@gnome.org References: <445AA08B.9020006@gmail.com> <1146808133.23256.4.camel@localhost> <445B8CF8.3030501@gmail.com> <1146888105.6117.10.camel@localhost.localdomain> <446933F8.9010006@gmail.com> <1147916089.5540.4.camel@localhost.localdomain> In-Reply-To: <1147916089.5540.4.camel@localhost.localdomain> X-Enigmail-Version: 0.94.0.0 Content-Type: multipart/mixed; boundary="------------060407080808030906030006" X-Virus-Scanned: by amavisd-new at gnome.org X-Mailman-Approved-At: Tue, 20 Jun 2006 02:51:10 -0400 Subject: Re: [Rhythmbox-devel] Audioscrobbler integration X-BeenThere: rhythmbox-devel@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Rhythmbox developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Jun 2006 23:22:32 -0000 This is a multi-part message in MIME format. --------------060407080808030906030006 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Hello all, At this point, I'm happy to announce the first working version of the new audioscrobbler plugin! Right now, it only supports Neighbour radio, I'm working on making an interface to support more stations. The plugin is built into the same library as the audioscrobbler song submission code, and doesn't turn on/off cleanly, so I just suggest leaving the plugin enabled. It will use the username and password in the plugin config dialog. When using, the first time you click on the station, it won't play, it will log in, give it a second and click again and it should start buffering. I'm attaching the library, because I don't know how to make patches... sorry -Matt N --------------060407080808030906030006 Content-Type: application/x-gzip; name="libaudioscrobbler.tar.gz" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="libaudioscrobbler.tar.gz" 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 +LjamqjOzD5cby6qRo/Z0ygOe3TUdta2yqIZ/YUoGleaXJ2dQuVsonjudlnppKiGk+ykWKeo D2iWGerq/U1a2Ui1Q8tn1Aqn7x6lOr7xTr9x+/bt906fpl547g1bZ71tHRtjHR9rTRpMYWqd Nd2iJlgTLdpp2dbk2I1alydT22aANSlWLf1YTb5B61LXHLSOierzfzXPmmnREtUhN6htWr7W NS1Tm6410X/TF08/vHi6NloQzVqstnG1ev1Z2qmN6nF+ztFknThEveM87+jFmYtHL05YpA5x qGdkTNd86o39rNkW9cO1Sx7XmjuX+cS/w9roaczL//fwtOkz0psa1O5+Xu2ANn36osyl2nfa 0mmZy7pm1mS/o21Ln96s7jgvv0at26WO9Kp1Gb7Duz0zDqvxu9SGJWp8vpal5Wm3iP9u1lrU +g1vavce0LpuVE/R8rfbrOqb67RTbRb19nDt43O3q2u0jO1a9nYKzLhXO6CO36Cema9GNapn OlT7fnXrORu0GPqP5FJ3r9cc31Itq8+o1vGW1eq+sw+qj9uWEGpecuSTI187o/oM7WiXemm/ Ddq8adMfVqdbZ1n+1OW25sceyLJOiLFm4H91nTXDokbco3o3NKkfnKXd4B5/z8xbq9582zo+ xpoQp0Z+ox1RGzTHvPTdpZmqvuH7b7X7xrsz1c3nWVMtB6wZsdr9u6nGTtMytU/fnDHNl7Za jdG2ajdaxw6eOmPR6q7tWow1O9b35pvXTyeRv1NPz9d8xJojxH4rfWO3v8mRYtRJ+6dP82lZ 6ooNWtOMtNUay6edxVFj1AGaw6c1b39AbdhgTRumubUma1oUBXxKwckx6dvUzxTrJItPm6Gd n/Xmjas/pyC3urbRd7Z607n3jFXXLXGq605tVddltJY1NHdZk2K0M7RtXZc4u9QrwzXv9hP5 mV03T232qfedt39VVX7BlDVqqlc97aC2XbsgU0sgbtMyT1OHnmqdat++Ua294fEp2dqyPGJn nTrMmhCTnpmt3U6ZPKk+QI2ztUmL7czSDl/+JqU7sHrb6u1qnLZ1Wmap2uKdMlNLuHH15VTj 1vFD2cu7hHrLWzf6zmbilfXfbC1Q8w4+tF09brnnXo061dR7iIlWpiVoCW+pB86558M1aud+ dYeFqt+aGDv1s6WLd9+daU2yq2fl5yz75LqN2nc3rtYS1J/P0Rq1pjdd2eoYbck269gh6kXW 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 aZ+mMzQd0HSWpnM0navp3prOE0MSOopL/b45THp4gt2tnvJymexnYN8T1eUWfkY0qist/JsU 1fRI2EiTplfKTjXpWgs/HBfV9J7YWpOmd5uVmzS9vPdCk26hp9BMut3C89lHdeLy99K0RSwy LW+GtbeaSz76R2vnIU3Tg2fRZ1ozZH/brtl3avqQpl3W+DOvlP8ka6J9lKanWOPPwJJ/g2a/ yhp/BpbsN2n2+zS9RtNPa3qrpl+0xp+Tpfi7NfshTWfaEnU/TRdoulrTNKtP9LlbKq9Zsy/R 9I2avscWfy6X8j+h2Z/V9Aea3qfpnzR9TNN2I/4cLpWXayTaizQ9QdOzjfhzupS/w4g/l0u6 S/P/ixF/JpfsT2n2VzT9naYPavqYpu32RJ1ujz/jS+XlafYiu4g940v2Ks3eqGl6x1r0mV/y v0Oz/489/twv2bdp9tc1vUvT++3xZ4Mp/y+aPS0lUWdrml7hG31+mPLna/YyTVdrOskdGie+ neB3byUxX6IuHDGidHjx79/WErt2GhtGSXLpUQYaXjLiBJZgSemJ8pSWnMgyvAx348Su/9LA i7QUl408QZ7iUUWisLpCfRTTx3D6GEEfQfoooY9S+hhJH6OUH3sr9zL1VWUqVrmKg+IEJ4Ch quqaseXVoZrKyvPHTwupy2ch7V6qZAMe8ZVBptbw5VqKWmX1KkMS/47W9nBjkiuMiV4wYDgz 0RZpi6YnuWslaRhl0Qew1blyiIa1cFVeypZwqykCuiAN6dNZejgs+IJ50gE6U8Gt0Yx67ZFO 1YkZ1V09ba31dI8IfW+Q5+DxHOoym/KnpoyXqka++fQ/zMp8UVwNCjS0zaNRcB4fiMWWCysT G01F1MsIkfDv3CrUJGvRItusyJQpdtdRaGHzgmaq+uyO5paGUOzeEtljaHuTwG1W8luYNrwk F1HjYdWQGA22aN2K+l/MltQ/oVuZb6tLdqcUtVqko7011NwYapzV3BK6fFZ7q6lDHTdE2aRq YB7MS6ybNoqn+pts7/b6Oe1EwrzwPLowIXATl3ZFXN+CzG8m0W8KSfQ9vq5JWqe+JTyr/cR3 6jTRZjCHN3nZrWQV2xYnvwzNG034sg7zBjQnMQDdc0hji+arM9yAdDECUoWOyKLEvLnmyzcJ kVra2ubS5mBOa25dEG6PqN0UfYmtOvr9kv/WEfgtC9IbzuRxbIlQ50mUXo/0yyQNeeB9JbFM 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 UKDD2kRKyitLp1ZJEzEtAQuoqA/uoIJvC1CafSvYVn2+trq6UUW+oKq+yqm+KcXzS+W8+rPu cWQ5ixpba9vW8On2ltZVNntB5tT/26H0bPihVmX6ayM9idXKKHmRQ0WpXZm1TCWvjOYcva+l MMoqi5fMn1pcUap1NLSt8UUmzX1mgyzzVU2vLC0u8c2tLJ9TWV61xDd7TuWs4gqNNHZozW2t 9ZnqJ9QqU+zIOs6W9FVXqwrUwj7KCpQJqR5EW8OFZXZ2a6m5+1bLAZp+NMiOAkpHpx1P+Cbq q1khRYVTOFX2lLmqFNTj2ExQHKNJXWYN9XPVwQbN7Jm4LUCF1Q40H90eUe+qe6hSqaP2TG0i uI4Mq5bush1NmnkH1gKhVm4hNaEAdwdUwH6y67Z1s9uCjXXrtKiiOWsNhGrpHdLWIo0JbUxF PU3Mq8M0zWoxTbmlqL6n0wGD6tN4SKTVVgeaUB5n11Un59NqloEXX6q+ONLftQcDnY5oqJAp +8HV1LPWcPQrAm3VtTXVuHOFWkM0LCnQwnclWZ0Jky4n4fnUcsliqmtUQlUP08nwKKBOfY3u TCuKK8tKfVVz5lRMKa60+c0nW60I+51r0KHaObVy0w6o96LLlurAOnNIKlbKx+lq3Ku0NLaS 6ZGVKp2W8lG3eWId1avl5tDSWItcqTLBwKzWt6aaijS636M6j+bnHqmGO9PZc3zUny2opG7p fANAueWv9kk/Wh+CJXQ6JJdTcMvmYVWu6ixmzZ/im1ZeST22r9OO2rzb+XxkdxSvhiwju+G7 chDFyS1ILXqFgaOTHFWkqV5BlVGtP1jd2Gyrv5Ly4oo5ZZoqBm7Zq30hNi/S4+PhQK2/nZo1 SlzFp7QhU2Te0t/4+fRdc1BJtqraDxkb9YpKvvOsKTGygybqVnkVLpUhRj0anzQcuXGU8dCN BwzmSjlN1pYrs1ad6lxekq3Mu9zslWxDc6lATfogX71PBkvUSQR8na6O4uebgBy6jCZVHOlo /1dPRvXUulpNk6aCUg0v+qY9taK0ePaCuTRmYqOie0YgqDqRaJuErGkvXCpnPyXSkFT1fCqa Do4dQwwMfQLV+FmhRY11w8dBB+pXhMeZ3FGG7c8sMLIpGr7wrYTLXAmih65B7baqzlq1a9Ui ce+AoU+bM7tK/Wgd6IzOfjCVgU9zNd2Jm7knMjNdrDpPy8jDLEozp5pPlRdqXxmgNI6VbWoA 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 oW1PX/kNJzRpy50IikJK2oKlW2ag7Quross0WEBSkvVwoSgdUqZm/Juf6pV/9KKLfcuO7QoX kPvQC7pZUpEy3mdRlX8UYurXRRFRMiDDhXiVtaAf7bygt+0IDuqsfJZGF84TqnDW/w/2RxZU eiRpyxpKM8nlf7Njw8fhoguSnYTOkAqX1QqJwyrd20s/VjkoPWM38tITNpftpSe2Lzgz9uXL hm2f9Y5+fOzvL8uKTuv20iP5rz4zeS4b7NJtL6tC3T7r4+0LTm07PuTlHe3vXfnNZV23l36g /37IK9te3Px0n7WPWSJY+KYza/NTzlOTM7c9c3py91PLx5x89vS7b7+zd3X96RMnlz1/svT5 0wuOUkmfXiolfbr06Km2zJMqFac/Isk1s04rcvLZv4Am/eLolqOhJZzMw7qkNWnLxThYkip+ qXK7aNvLSCiZ7emTp/8f2t4DPq7iah++WyRdeVfSqre1LcmyLXc194LVLSxbQsUFDGuVVbFl SUi7bnRsA0YxYIoTEiAQCJDQCS20QAg1hD8B8mKIQxwCAVOCA4QQmr/zzDn37t2VbPx+3/+T f97nnjvtzJkzZ87MnTu3xsNF7vnLGx8Oc2bI6ovfVSVcSZkFfiUd5Deq5lX6+zox8uG11hZ/ ZdQWV0Udeuc7Em2of4i92fFRxu5TP7fogSH64Je7z/rGbJJHNFGGMMuRsPvw8KmfDwe/HKao H5361LPOfPhY0nGeXaqMndnJLPKm9tetuT1bncPdI5/BzdBg6TOGKfkBS+Eo/Zt5OxIYM5y+ 65WAc6E94LH2b9KWGcxA1WHrfVPRluVQh38+UEw9U6mQVbih3mgVrhFzuEqMtcfMrOXw7up5 w1UZu6sXDVe5d1cvVR3HsBotGUXP764jOTTne4peoV+3+jVl8mslt7pQiqJXKEFzfgpH3nPF 4US2u5ZOWZfvCU9enXOsHOCofW8O+cfK4WBcWA5IbTWe1QXc+ovyi46YRkryoNTnpoWlPjM/ ZWQO082muG9S+Piw46OCCNU96xtSAdJcQwvcSguiF9p3fzFCD5Zw/hbjGTL5w0vdFGNpWH+z 6jm6kVUxbKPa2RdHqoSItFIpxTKlFHXHEu8T+nE0kPtYObyccewGyjh6A3n2XFGYFZE6hRrJ HZ6D99BBsiyqPdaoFnBTqxiNIH3znALHs1WHVTeuwixDC0wabTgf3uLcXfWaQc0nA1P0RJjg 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