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, -- Loc 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. -- Loc 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 Frcinaux 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? :) -- Loc 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, Loc 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, -- Loc 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 Garca 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, Loc 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. -- Loc 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 Grundstrm, 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 Grundstrm 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 Grundstrm 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 Grundstrm ________________________________________ \ | 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, Dchern Und Hnden 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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 NDPZvDb9mO7sp2pb4izpWbv3/dZXvCnFRS/NRcT1TZLmgrPzn4XGcZx/pLnSjfpmF7oLdh2+ 2irvnNseDzQbjcdUZzl7xrM8Hvxh3CpPnL7lzeakLNdVmQPNzbHgHC2iObJEuZvDoUjQcFRc pW5zTAfdxWaaa3XQqTUcbXHbOrqaI8ba6c4z1/ZIW3B7HKZiq7wl2t4uKzYngi1Ps4h2uXnP g+XmRSozZ7n54VreFosmb4q/Tvq7leiA2Z5k3SnpfTC/4q1afpDLNsSS22ddC0vSRM9PdKdX QKax5rnqa5hnWVNztL4M6pL696A+Z0z6/a663DcCe1F+Z+UqqM9ylbvdleHsTvKUO7mv9gB4 y33f047F3Wbro+3IdbVjmqe+3UwgLcm7mO22wzz1FS9Jvs55rvqm41NFuW7zhqxw+TEf2GpH M8ifaN6spzKT5fzoXE98BWMtK+4q54Ta5Ylv4BId8SzxFbriO8dTX/c+Jn9Iz/Yu9ZRbfIJl XZjZs9ylnuP+ZGnydSl2Hfennvr6NSXb6K7vZk99y5ZqPVJfqau+X+NTQblaU99Wl6PzOq/2 HHdkyLLGpjjuU+zn8IYEQu6b2WS5dz31BUPWDsmxyWcy01suxfnsPgcS7Y1YifWgB1v6WZYY pP15nvo2dOr4OG993uTOz7I+/NJty9zhyMJZHs72cI6Hcz2c5+F8q4h9fyKWAmsE+7vBEy29 FlXDxxnttnR2iHDM0vWSh8AXGN3gqm85jdwVlkfTyXP6nPJ/NLqPi2UN5Rk2az4blkdFL7NZ +9nwULO/wXaubwWJp8TKzHcnXlnLfWKGc70qSKzh3p2RjGeRrQ9XdcpfZ+s6xY79HluHujv2 NVxEnXjeldgy9f0XlrXcx7t4lwwd/90PrjEsj69w2i/PlJbHP+wN7/h+eLnQw709XOzhUg/3 9XB/Dw9IrCmfTPnW7AzL5ZWfWPN5dxd3ZSSvncLzDB/gYlkb+ngXn2044uLzMnTdbYdlDekr XLxjfP08bCceqi5Jph6Vms/Hna74SzP6W0+4WF6dDR7+xMNFmcl5jlLfXpnJOY3C0zOT8xeF z85MzlUUljWm17h4dWZyDqLw+szkfEPhLzKTcwuFd8tKziMUlqfZOnMGhWdnJecHCkvdzlxA 4ZVZyXl/wq9lJef4CX+elZzPJzw4Ozl3T1jWuHfm6Qkfk52ckycsz5p15t8JX5a94+sna9w7 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 zn0of/hl+p//TdumJbTtI/wjeIb8/RRzaULai77r/lf+JiQpL0eu+UaPf+bOVz79L7PNL/Xx 3xGatiUh/Wb5u1aPL5T0b0XOlb/35G9qQln4auNsy/wqOtl/h9rmF/dHJEnLt8xbUPAf7nLh 1/8nJuE98b9LEo43qbzHd0254Gl6jLc+4JdWBxRPluOz5S+s1+yWvx/I8fnyd5Wew7ciD9fj RXpdfUIdp+jx7SqzLPMrZfw30deW3wv+b/k7Vs8X2uZO3ROaPi+JjnjTwgm2ecPJIpGvJJTZ qscdKpf56tsrf72Wuct4h8if6flfqXxc5ZuW+WXBU4rPlfyfiXRfYYOn7hfa5o0bbSKj8rc7 oa5H5PgF+cNbHvr/DWdHIZ6Sv8ds87aGg/03ViseYpk38LYsc7HZjVxaZys2bwJoiWHj0Xsf cLGxtL4nXGzeY9Efw+rdV7nYzOxZMWy8fcVzLjZvGlgUw8dZ38pEWSNBPtaRR0v7xkuW5q+M 7wbeP8RUcaJl1nr3y8KmSBYVszR9Vfy1Cax9ulyf02/GHNKnyuKpSxb8jysu/b43P94hXvOB 8V9IfzrNm77wDKlPAuW3Nf0haUTup8bmgDfqRH+Btm/DEO/1rx/uxZW+9n7oa898fZnIUi1v 9THe9HG+txW9o68WgT0g6W/qUN9W/FN81mSd2OOhpr3HCsWZsoAapu0/5VCTv0Pru0ri04Lf mTGP9JnDvPVdIIviPjHwZtukTzjVm75Vyiu62GZMjfROCcx+eIfNufAosa+6U7z5m1Tfn2n9 6Vne9Ed8bzI4VnGZ6udIINoni6pVWt8zvv7+lfRHtziAo7S93z3Mm75yhBfvOd6LD5f+z+kz e0+4vtmXf6bW90dt//QTvOm/9/H9ktSf9b6JuVDeTcJf67tWzJ4DggveNfMD8DEjvdffqEHF UNX/HCm/4GSbMQXyl4j9t4v936N8d+nLbH6k7XtYg7ag4nafvn/38b1W+GqX8bZRy3/hKG/6 NT/w4myf/ncjf4/ZI8D1S9Xe7tT6N2Z68z8y3Iu3+Mbjcb70G33tecDy4i1HevXPyfKm78FC RhbA67V99ndkrhZ7RV7Ya2LMgPw9aq8XaXnYryt6z+zz4folmn/lEJP+9hHe6xvVZRbq9d3H 49esNn8hhesPP8mbH08ObZD2ZGh7Vn7Xm75Ox/siLe+rod70gM/eb0nx4ok6nibo9Rcch/1a m2sYtKcn25v/Ml9/44nshndMbER70/ZcreX91td/Rcq/O973+fj97ywv3qn2+5za+x+Uz3f1 +kPxVFi+zbU96t+h9veUpt+j9UUUl0r7i6Jmb43jTcsfmWLSL9f2uvwe4rPnEuXnH5r+PcV1 in8pRGXutGLzzfdSvdc/rfPFQ6rPmWJ/NdfE/dd+9e+4DF29XK+v0fLrffZxnthDg/jzi/T6 AfEHudk2992B8Xa71n/G57dnffPH7TI/Fji2vglnmHV3ujd9nM9+o9KfLXPi7f2Ljn98+xNF r/TZ30afP7nxu3h62OY+Fa6vyPKmr/f5k3t89veQz78/7rv+JfUP52l/vemzv/O1fTdrOn5B 35Jqcz2N9syVgLGhOB4vBE/2Xj9Gx8vv9fprfPPBU+qvH9D0U33pYd98eYev/Xt8/RX0jY83 ffHCcF9/HYd0Caof1vbjCcLoHeYdWPAfv9TxeZS2b7jUl7XW3B9A/hy//0Wmf8XtZ7em3az2 e5nMDw0TbN5/Qfol0p99d1ux/nwI9l0V789HdTwudPtP7K+5LJ4+xNffAV9/fSPt75JFxQL1 l2Ht71O1vKjqd5m2L0/9pTue9kshfR+ZtTbjIYzXbpfPYdYV6l9ma3njffPT4772naj53fjv yDO86aW+64ek49fONt8Zh/pW+sZXkc9e89Vez9by3zw0Ht8fLfH9dF98uFLbMzHV5G8Ue2gV e/hM+S0U+y36xNyPAv5W+Riv5df7ypvjs9/6DC/e5Gv/G1lefJov/VPl80ytr0X926k6X65V /+P605ulvc3vmz0QtPdq3/i3j/PiFeqvr9TrF/jGiyP2UnSczX1dlHeG2G9rrs31L/C9Ml5y D7OtU9W+DlF9P9LyntKXpbnzyVliv5kJ64uR6h9+q+lvSH8WfWb2RDi/K5/Zmn6kju/bFK/3 8b/e158/Ufs+QfO/6Vtv/LdvfrhUxl9ORbx996R5+9fxxX/3+OKFoPLlrg9SxD+0fG7uZ6C8 fb7+/YH0390J8f4n0l/dA2b9i/xt3/HmXyr2deYdZj2C/B2Sv2jArIWR/wSffq8p3+3anltU n1Qd7xPx0dUr4/58pPaX29+Zvvn4Pl/78WGv1u44X5fq9edrfODeDz1Wy8OHIl6T9h+r7d8w NF4W0l8XxRra3fhqmPWRb3y9Lv6pb7jN/TKkf+FrX7qOz81a3gmnGfye6rvb158fw74lGJ2q 5dUIEd1fWLH49vu++gt865PPfeM1cqwX1/jG3wm+9dxhPn9xlOTvajd7Jqh/srb/SdVnvm++ q1f/5cZfWdq+21XflWKvNRIvV2p5uT57X6PXl2r+Q7T/HtPyRvr8d4eOV3c8HSmGknt+fH/h VE1/X8s733f9Wu2fR/X63/j6d4ny+bD64x3CR9/e+P7GL3X+Pkmvv0rt+Vit7zy8eXCIzXu/ yD9N2+P6t+t0/gsp/sIXDxyF+C4QH/8nZnnTl4l/aK2Mp2/U/rtBy9so/dF8oc19baS/6rO3 C3zx8W71H65/GYWTu+LzzSOq3181vdkXj97is4eZx3n79z3Rp7s83t7T1T+frv3Vrfy48T8+ mFTU6/rXYVa5z76ftLz4MQkS2nvi64MVOp5naHkf+uLjGUJc+5k271dy/a3z/xLNn4v9EPFH bvx0tK6/fq3tPd0X336d5cVB1J9p85kdXP+4zx+OFT7+R/wPaIP/CWl5rv0PPTO+35ZpfTaA N2Rk7Tb39VFeh/ZfQNv7Q+X/UsV4A0zRR659DbOO8PF1n+rj2stfla9OxWN0fG5S/E/xD3MT /OXnvnhzsvRf87Xx9Tj2TGuazP004Pd88fDvR2IPw+b+N9dbvvnsabGXrPL4euV+1S9f23Ok +N+chHgsU/3N9zW9Svqr9U6zj8z9D7UH177G+Ox1hG/9c5uvPdPlor7e+P5hisan7nrlPh3f rr1d4Nv/WaXjbbGmr/CN9zd9+Je+8Xm8Lx7d5vP/+3S+X6Hl5/naP8pX/hSxv6eETwwr8LlJ +UzX6znH6/7y0dbhElt5r5/lG4+/VX/t8nOhb7xNFD5q7jTPoaH/fuZrf53y8Se9fqFP/8fU Xz+t46Pdt59ypPa/G8+f5Nsv+cQ3/jq1/Os1/wPa/gcV34z4YaTNN9ugvW9o+fdq+ibEZ9W2 7icMs8b4+vt0nz0t980/bvgLP4akab74fJTUn/sdm8+loPyPfeP3j5Le+j2bz9RwfaD9gfkP 66W/K18XufuNvnhps2/+vdHH70wff9/q/Oj6881i35kj4uP3UV/7j/btN33lK2+Zr/5aX7pz HPbGbd7rRvmtvvyXZIn+p9mWnWrS3/TZ7zSff3rItx7tU37c8XuRL/75xDfeHpN/2j80z16i vtUaH7j7ZZbPX3/tWw+cLP6xqybuz46R/JsT8jeof3TXV3jesbvJiq3PH/bNN9vUfi/X/P8j /PT1mfv8yH+5z/5eFUfYVRKff4fBfkbE+/dR33g5T/hr+Ti+/4tf0jak2HxWEninj98Jvvb1 +PT/vW98dJ/uxa/74tUs3/rwXRmfzbL4G6b2HlL/ukX13+2zv3eEz4vFv8Fs4d+W+fzV3Cxz 7MY708DvLvPMGuNHtcfJmv6qXvuO4o3YLxH7dOfXddJ/WeLfDlH8a9Vno+Z/G79q/oWt/Er7 ffH3yT79X1f+cvX6j7O86T/WeMW9H+A+R+mubzaqP2vQ+PVi6Z/ubvN8Iepv8s0H3/j8aeQE rBlsK6Ljq883/j5T+2vW+j71rS9e843nK5WvaZo/IvVlHmPz+VLuH6m9TNH12hhfPH6X2oMb r/xWxnfrHjdeG8Y3AbZvN8/Vcf9P/fU5mv9biSdafmXrm8BlPeOz9xdPxm8IbD5Twv1wnz19 il9xJsxfZ/uu/0L7e6xbn+rr7s+sVf9zjurXpPpcqOnXZxns2uNvpf6uneaZOu4P+8bXP2X+ bPmBHfNHeaJ/5rtW7P7dx6p/g5aXJe1pkMXJDE0vkf5tSPAXj/jGa4J58t7+9drec7W8P/n4 3ykX5OTF9/Mr1X4navrJ6t926nz0sZY3U/Ewn/1/jl/vCh+fq318X+wlVya7H2v5o3z+fA/u Z+wwz+wg/WusB3ab5x55v8A3fx7j8wdrfPPjaeIv24vi/vJMn30fLfFTKOF+U4Fvfu/RePV8 1e8zKa+5NF7eI4IzS+LzwWLBufNsfbP+MOta/Oq5092/Er58/N8g/+R8aJ5zRvp/+eari336 rPC1/1ud7839R8vze4ss+XvQFx/j2Qh8NcYdr3/wxVNWYWFZZXVVIX7pEiwstArnl1eVy8mS RcU4LK4ovy5gFV6yoHBGoKy8Lhio5WfYAnV4E7H3x0GF5idYhXgjeFC/hGm+TFQbwJeq9PpC OW1yWvPKq0rxnaLSavxQlLAwjgtLqksDdQG+I9lftH6o0vw6rTBWdGIaPxymLxwvxu/pYglO oOQaTS4prvOdd799qUnBawoXlpei3jqnemFhcUVFEsWRXFJdNb+8TDNbpSXyL78XhRJKy4sr qssKqwILJT3oFM6rDwarq+qkYnwErLgCF1cFSoLm02gJdTrlpYFCIcf8ypUpkjUonaO1GoXj VXjOxbMWl5b6i4UaddX1taKpKb0w6CyuC1TMl1aZH3IW1lfVBhJgmaGizglUVAghxYsT2xBL 4PvgmZiko6QHcNZ8+NKtXk+ay4tr8NNTTZK6YWtil+6b4ROUENsI1lYvTmaHctHC6trSQiG9 dnFhcUkQX1MURuf958wlDr6pVYq8qMucpJYgMxAQBcE038kdfyu4r8x6aTN+qju4zP+YN7Gx CcqW1RbPK5xfXVJf52+WS7Y5Vee2FKcqiucFKry5zKl4LuhQWl9TWCOaBOejeWUVxWJziyor yEscoRg17liuedUVpeXzF5tSDzIudEjyjf/0MsHyErfndODFhq9JjVscW+D9JK2xL34eMxBr Pj1NtZhEOT4qMK++vKK0ED8GR7/KCfewMFhdWF9bbpVVVQtYML8OjonEl9cGmEsy1wfnj0Ox JQ7KqpQBX12SY2qqq6ko1z4rdIrFt8jwKF9kTsyvDQQWiNvE9+KqK1Rd8XpxiymLW4zoVF4Z qK4PcmDGs5hP8ek3GzlmC+sqpGt0VHgaXldfEYRCsSJNTtG0LOhY+I12YSV+/15mBpjnBPh3 gsGawgXmR8mWFCIXDs5UG7i2XoaZSRCnj8yFcqo+4Gajc66tXrTYdYBQU38kzs72XFpct7iq JO4Hq2ugaZ3lZi5EL1qVgcqSmsWmW0uc+jL3qLqyRksTM6mvM5bg1BbXGT9RUl5uer/Uqiz9 oTAgXOFA+w6HmNrqpHPU2t0+m18tdlDixDFaEe/rEkkNek5UVNep8UnXq5UqcIuOZV5YWx5M yMyypc/EzOS4XFpWsZjWEKtd+lEsIN4ngSrMg0k9Lw5RqHu99JK52C2rNlBZvSCA7w9eA45L pAfLKk1uGpz5voDHMs0XY+tqAiXudwxiw9FMmfq7bLBeI655cVILGDwRizknjFsm6PCUecvz qYNYtfHW+Vti5iXf5OnPxNCBvw8vnZfgMc2RmbS8qeW1xeK+EuY0b3JNdSliApF1wf+YaX5A HP7BMiV0uC+llOadLAXXmG92Jg9XyqWLD+ZKjBmgx8yMG8MH//7KoCnaOGfxFb52VVRXXyON noejkqQ5zPgwZHJUJpKdXFmk1EtTMPcHSmMX1FeB08TL3e+3u5fj85flg2hXZQ5Ghzd8HKS8 J8YZfEozu24T8zanpeqFg3qiLjGCitUaN0h4oljoI7P1gnnVi0z3CSgvQZQu0bh2efxk0AlU mjaVBuYXy7zgT6qolmkOOEEF9F5N+aJ59Zz15xdX1En19VUlhsF5hcHa+oQTHr8Q+36P1BIU f4Yw3B9oJJwvh5ISzTsyLUscjsKNygvKxaw4FiQALRGieb4cawvfqNDwN4H4+DeE4l4ifs63 APBVqQFnwhmNOkuqK+orqzxxV6JOYGPQiZpiGYVm8aS9n9B8mSrhE4pr6wL+k6ZvMLAClTXw ot5kM8HXJbHZ0mqhRewnoexS/9XuLJOgIjqNdfrOS0XVtW5SofHlCIXolotL8A4dK362VidH Tjm1iTF4LENtwAxSk4M940nXoI6pyoT7/drqGnEQBpUJj8a/W7XF5XU6T7hdLOGXTJzIIlFZ kFZQV6VTL18OojOiectMoS5rmCFQW+tpTmk9JkVtT6CiuIbd6bYJ/kqCwCCjAzSAoZNW7smV 4HuNRbKj4ifNRYV8mQwpwIEu26RsA33XlFRIgGCMsKyieh4+7O4/HxvxhTKxLoJzTcxhvrAd 8/dJkrwBKLRj6715Qag3kE2SqcyTqQ4UyjyIgM9XWGJK/ILKaunE6tqkbdUwBuH94AsYJyfm RqThzarzRmImcyqeRabPWFf6+xixKoJ1N4O3K2BTYq2FCLgGX8uz3g4++AV1gy+IhwrJikpM GVS1G9L5a9Dz3jrMx7oHlWFOeytNkrUuSdaEvhlcLj59lbRXBpfrzVqW8C2sQaUiwVds0rxu QmzdECxmFDGPATeHVXmthqexQB5J9F2eM7KKri0u4QVJ8psdFC1XJxnvCjQhweXLkxZf4XlL qSmWVV7SYpiimcWq6Q4TcgbqSoprOIfSedZwPi4prpLRJBnF0/obWOVe4W+enkd9gxMr8SE0 JnHlHavAbVnlNRL70PPWimOsrgTNhfyeuZtDHWZtoKReFqkLAhWLE4ovdV8iVYhXY4k1SiBb XgrBT5nX4Ujiq9KEjsBCjDTHS+E8hxdy+Yil5btpSfN7iC03GwmJNlSe0ET3HGbaigXQqELi ZMbf3Dg0b/symxeeJpgVsfQNOTTESkdza0IWyfSTWNUpicYcxRXUDbJRnvQ1o25xJdeF3ryD G5lE+xIZUpzEeEqiWVkI1klYWx9k1FuG3RHHDKrEEMGTW1cC2EsJXFsPE3X3VRxvAQiREPBo dzlojtnoYXlB7E9UXoMzWoX3cjdYTjxnFhY0/OrKedWM45zFNU5AAuwAAl3MK4h9k4S4vp01 s/Xl3VqrLK7FkohbHJVVAUxUJQk7abpsLa4PVrtLV9VPt7OFmXnVCRgvT2PkLheYuD6xs91Q f36xGRDuZKmTle860+3+azxrDPck51H/ggL6kRHYpa4fkl3pvUJ3kkuv0UviRZCwGRMLJxQU FF580fTL/EsX7LNx5eI7j8Zhoy8oASPTpYyZs6ZfdGnhrBkTrjRFxU7hQ6QzZ02YET8z+7LB 5y6b7jtRMH3SRRNmzoqfmDhj+hUz82ZYky+bPi2vcFrepIsnFM6cMjs/f2qe59yMvIK8CbM8 pwqmTrhy6sUzvScnzJ41PXlKHr8qianM7D5haVJdK4u/0linxzvT3H6Q9DpZjAT8KejB4ooa p9ifUMWN6apARZ0/ZV55EAsnid6LK2sqBpcYKC9zgv6zsmLClOTh2J+ntnohZorSQUXKIdoB hXVHGnuqGsXT/QWMvWB7Nr6bplMe9i595+AgzTpET5sxX1gSLw+7wSgttmAopAupwuIqcSUs PgI3kArLkGeBmcLKMcOVV+kCI7bSEL9dHeQYK+eNs3hKrMQ6LvLxhkhs/aOshOVCDBXX1hYv dtUzd4XMotb9zCjcGJe2ZUmu4KBXL1NSUl9ZX0GPpvtiZmIt9e4jmUKc6orSuliRJdU19NuV 5bq9ENuw9IU6sQzi7Etqy2t0y4BbkDW1AbdJmF/MOS6I3d11zGFVZsdXNy2xLR0wXV9RAetP 8N1sWp3Xn7sbuMmvuCawuM64wViwbFTT44SriUsDgRp3mRvfD/YV4M5ZiZvuevPAbYLU62bA Ett8ulWiotL6WrMtl/hVWTmvi08uRRPS6gJ4xau0sqLUrQGWW1I3Vvwt717Wy/ziFMfufnrH hiYmZhNXsdAsXzUrb2wU4i5YXWzr2OWtzFTlDhbsDKmpm6lExrH3hCeEWYAdlYC7VktI9CYw b2V1fRU2gUxS3eDM8b2XZCl65wwd641gNY83YNPKEmN+njKbSLzFJRNOMYesnKvhjZGqek5D 9RK+FlcVl+kuvN4VQ0piPCdWLP8aFyZJuNq7e8QzLJoepVJv1Rg/xznbvxPl7n6Y0LLcnRUP dmUsIbGcWrzZt1bn1LgTNgMijnXGjpXiabk5xUVfQhiAPnMdBz2mZ3OuvMq7pa9GGT9R78+h m90JOQadkUt+NHZQKb5T0s2VnhPzK4rL6nxnuKRNOKMby2XJbpEkjnJv5UYp8zQAbrC6rjt+ Bz1+i59hJVdIxte4p2K7oqa7E8ZXhUusN5/ZPXWtgWmxU6YCsXd3i9VTYH1VkiLrjA3XVdcm qWuezHkLy2XBZqZ2c+jdfPVco0Yn3oPnSqqNjxlULlZx88xqL5gsubj0V/V1wUo+xYFxGYMJ W1bcq+POtVxaGp8347eDzJnELIxxa4vLuEwprKuvwRuRTQOKa939m9gQSshpdvIHl+Purrsl ubcUy6tKk+hFdop5S4n9aXxGbCwaqFORTui6+Sg+oE5XDywXd+OKyzDt8KJ4XRJywfUFZNyX BHym5k3TzVijU0zTwbv6sdabPePB53kdynY1G2Rf8eJrqxNu8Yv9yBLCDWzcDveMmviV8/m0 EFlK0mxUXyp9ggaUewcHOz3mohJrUfJch16qSeZ+83+ohPabJI85kubDtgOyoi6N16n3o2Pc cgc8UFlubpbP0zjLU2aSG1CDEuNVDuqbQTn01kqyTEa74rIys2viNtrEi3AhdQ5jksFOJ3Y/ J3Zn3b14XgDPfQ0ak7oA9jBk/HtpeUmgLn49NwRL+ESUu+8tgVjtNe7Ul/h0if++tN6nN10d qOT2Qwnu5ddLcC9r9jpHzl8+/eJJhfw3nlcHhjfL9IlYohVOnD59at6Ey2LTgHneTH3hoItm T51+2eTC/KnTZXU4KHHmrBkXS6pXzL74sngl/6dL/kOugyYXTJeqZHF7sHRJPWjapOmzJ8oa eFCylmn0PnjyQat2M6AT/n8y/9tMB+UUBZhun5M3yTAw+/+Qf3D6v22JW8vB+s6cL0zec2oR ySxDKXHpLostGa8JeFYcJreqoNKbWx+oSMiN9rqDI34vVgNmN5PbtpjqiXnd/fhk+X1KxZRL /OZEXfXZ46z49x0Ejhljud9jEHQuQCWOfmQlfolBTuTgxHW8BEclJlNhgHNLYeG8ujq9W1mI dU/Sd99PnnrxxIsKpR2xozFnnxc7zrEO+p/N53TtQUfJPhWUmMNF5r+U2FnL8+SvHctle876 87mluPlSPHm8+eyEf731W3ptsnx2QuuTtyBlUDu9/w3WPll57lGK7/y/K9uOXeGW6u1Pbz73 yE74119XChm0fdf8+/JSPG1OPLYT0MF4Tvavn0Pbk8Ovh5W0zQf7ZJUd4zwl4YoUX554yhAf dvPbg/KnJJQ0eGykePDgHo23JpHzxHypvhyW59hvZYk6Ja/Zz7DXIuKtGNwSN8cQa+8Z+sy9 /Hd0OX4ZnWqddab+jvL75Yeh/36sOJPpKdZFZ5r8o1fZfLvgeJUVKpeofETlapXdKnepjKrs Vdmnco/KfpX7VOKF8pCpKtNUpqvMVDlc5QiVI1VmqcxWOUrlaJU5KseqHKdyvMpclZNUTlE5 VWWBylkq56icq7JIZalKR2WFyhqVQZWLVC5R2aDyEZWr3euf0+tVdst5W3jdBfmkbUUhL7Wt Xsh9ttUHOVv6GTLXtvohHdvaB4mXZsg1dr/0M+T90s+QPYKfsq1DTxYMiS9YQl4h/Q55vfQ7 5N+l3yGflX6H3Cn9Dtkr/Q5ZbFujIEttazRkwLZyIBtsayxko22Ng/yHbY2H7LatXMhPbGsS 5G7bmgL5qW1NhTwsxZorcuiR0r+QGdK/kGKwDuQx0j+Qx0r/QB4v/Qs5QvoX8jvSv5AnSP9C fteylkKOtKxlkCda1u2Q37OsZsjvW9ZdkFmWtQLyJMu6FzLbslogT7GsByFPtayVkKOEL0i8 YwFSxs4qyNGW1QZ5lvAIebZltUOeY1kbIMdYVifkuZa1GfI8y+qCHGtZWyF/aFnbIH9sWdsh xwnvkOcL75AXyPiCvFDGF+R4GV+QPxXeIX8m4wtyoowvSLxso03kJOEZMk94hswXniEnC8+Q U4RnyIuFZ8hLhWfIqcIz5DThGfIyGV+Q02V8QRbI+IL8uYwvyBkyviBnyviCvFzGF6TY0yTI OTK+IK+U8QX5CxlfkFfJ+IK8WsYXZKGML8gi4R+yWPiHnCf8Q5YI/5Clwj/kfOEfskz4hywX /iF/JfxDXiP8Q1YI/5CVwj9klfAPWS38Q9YI/5DXCv+QtcI/ZFD4h6wX/iEXCP+QC4V/yEXC P+Ri6W7I64R/yF8L/5A3CP+QNwr/kCHhH7JR+Ie8RfiHvFX4h1wm/EM2Cf+Qtwn/kLcL/5AR 4R/yDuEf8k7hH7JZ+If8jfAPiZcVPS1yufAPeZfwD/k74R/yv4R/yBXCP+Q9wj/k74V/yD8I /5D3Cv+Q9wn/kH8U/iH/W/iHbBH+IR8Q/iEfFP4hHxL+If8i/EOuFP4h/0f4h3xY+If8m/AP +ajwD9kq/EM+LvxDrhL+If9X+Id8UviHfEr4h2wT/iGfFv4hnxH+IVcL/5DPCf+Qa4R/yHbh H3Kd8A+5XviH3CD8Q24U/iE3Cf+QHcI/ZKfwD/mC8A/5ovAP+Q/hH3Kz8A/5kvAP+bLwD/mK 8A/ZJfxDbhH+IV8V/iHfEP4h3xT+Id8S/iHfEf4htwv/kO8K/5DvCf+QO4R/yG7hH/ID4R9y l/APiRdrPyPyI+EfMir8Q+4W/iE/Ff4h/yX8Q/YJ/5CfCf+Qnwv/kF8I/5B7hH/IvcI/5FfC P+TXwj/kN8I/5LfCP+R+4R/ygPAPOSD8Q0qUMhVyiG0VQKba1izIQ2xrDuShtjUXcqhtFUGm 2VYp5GG25UAOs60KyMNtqwYy3baCkEfY1iLII21rCWSmbTVAHmVbSyGPtq1lkMfY1u2Qw22r GfJY27oL8jjbWgF5vG3dCznCtlogv2NbD0KeYFsrIUfa1iOQJ9pWK+T3bGsV5Pdtqw0yy7ZW Q55kW+2QP7CtDZCn2FYn5Km2tRnyNNvqghxlW1shT7etbZBn2tZ2yNG21Q15lm3tgjxb5n3I HJn3IcfIvA95nm3tgRwr8z7kj2Teh8THLZ4VOc62UiHPl1gC8gLbSoe80LYyIcfb1nDIn9jW CMif2tZIyJ/ZVhbkBNvKhrxI5nnISTLPQ+bJPA85WeZ5yCkyz0NeLPM85CUyz0NOlXke8jKZ 5yGnC/+QPxf+IWcK/5CzhX/IK4R/yDnCP+SVwj/kL4R/yKuEf8i5wj/k1cI/5C+Ff8hC4R+y SPiHnCf8Q5YI/5DzhX/IMuEfslz4h7xG+IesEP4hK4V/yCrhH7JG+Ie8VviHrBX+IeuEf8ig 8A9ZL/xDLhD+IRcK/5CLhH/IxcI/5K+Ff8jrhX/IG4R/yBuFf0iJn7ohbxL+IUPCP+Qtwj/k rcI/5DLhH7JJ+Ie8TfiHxAvcV4uMCP+Qdwj/kHcK/5DNwj/kb4R/yOXCP+Tdwj/k74R/yP8S /iFXCP+Q9wj/kL8X/iH/IPxD3iv8Q/5R+If8k/AP+YDwD/mg8A/5Z+Ef8n+Ef8iHhX/IR4R/ yL8J/5CPCv+Qjwn/kK3CP+Tjwj/k34V/yCeEf0hZUyyClJh3CaTEQA2QMhcuhZQxsQxS+uZ2 SPlrhlwj/EO2C/+Q64R/yOeFf8j1wj/kBuEfcqPwD7lJ+IfsFP4hXxD+IV8U/iE3C/+QLwn/ kC8L/5CvCP+QW4R/yFeFf8jXhH/IN4R/yG3CP+Rbwj/k28I/5HbhH/Jd4R/yPeEfcofwD7lT +IfEy81k/TD0A+Ef8iPhH7JH+IfsFf4h/yn8Q0r8PQLyX8I/ZJ/wD/mZ8A+5R/iH/Er4h+wX /iG/Fv4hvxX+IfcL/5AHhH/IlBRrEuSQFGsKZGqKNRXykBSrAPLQFGsW5NAUaw5kmsT/kLIO KIIclmKVQh6eYjmQ6SnW7KYPQ71pUXxYPtqLf75Ksa0X1lsDT2BFPvCA+zqpgQfwogl+jaWn e0D+e4Bvj0FyTxcxXgTj8Cf57cR40YuDf3paifGiBicLuIUYhw4+3dXTTIwf3jvYk+tpIEaS g89f9dQQ4+sbTi5wETGyOnjteE8BMd4I4RQA5xLjUgefnenJIcYbIpwi4CxiFOVAoZ5MYryh xakBtohRtIPXRvf0HQDGGwOdBupPjKqcZdSfGG8EcpqpPzGqdlZQf2K8sdxpof7EaIqzkvoT 4ytHTiv1J0bTnDbqT4w3pjjt1J8YTXU6qT8x3lDidFF/YjTd2Ub9ifEGD6eb+hNDFSdK/Ynx Rn2nj/oTQzWnn/rvB76d/NvQn7iZ/AN3Ed9F/oHbiVeQf+BW4nvJP3ALcQv5B24mfpD8AzcQ ryT/wDXEj5B/4CLiVvIPXEC8ivwD5xK3kX/gHOLV5B84i7id/ANnEm8g/8AWcSf5B+7bB7yZ /FN/4i7yT/2Jt5J/6k+8jfxTf+Lt5J/6E3eTf+pPvIv8U3/iqGVWaaI/cS/5p/7EfeSf+hPv If/Un7if/FN/4n3kn/oTg0onSv2J8YZQp4/6E4Nap5/6fwuMr+Q42Hfr6SYG1Q4+ldfTRYyv gDiZwO3EoN4ZAdxKjC+uOFnALcQwBWcUcDMxvjrn5AA3EMM0nHHANcT4Ip+TC1xEDFNx8Bqb ngJifHnFKQDOJYbpOHOAc4jxZUenCDiLGKbkOMCZxPg6nFMDbBHDtJxFwH3fcPwDN1B/Ypia s4z6E+NrfU4z9SeG6TkrqD8xvljntFB/Ypiis5L6E+ONhE4r9SeGaTpt1J8YX8Zz2qk/MUzV 6aT+xPg6odNF/Ylhus426k+MN+873dSfuIH8U3/ipeSf+hMvI//U/2uOf/I/BPoTN5N/4C7i u8g/cDvxCvIP3Ep8L/kHbiFuIf/AzcQPkn/gBuKV5B+4hvgR8g9cRNxK/oELiFeRf+Bc4jby D5xDvJr8A2cRt5N/4EziDeQf2CLuJP/Aff0c/+Sf+hN3kX/qT7yV/FN/4m3kn/oTbyf/1J+4 m/xTf+Jd5J/6E0fJP/Un7iX/1J+4j/xTf+I95J/6E/eTf+pPvI/8U39iDGUnSv2J8UVAp4/6 E2NoO/3U/yuOf2Ds0/d0E2OoO2nAXcTDgfH64J52Ygx9ZwRwKzG+IOBkAbcQwxU4o4CbibOB c4AbiOEanHHANcSjgXOBi4jhKpwpwAXEY4ELgHOJ4TqcOcA5xOOBi4CziOFKHAc4k3gScA2w RQzX4iwC7tvL8Q/cQP2J4WqcZdSfeBZwM/UnhutxVlB/4rnALdSfGK7IWUn9iUuBW6k/MVyT 00b9iSuA26k/MVyV00n9iYPAXdSfGK7L2Ub9iZcAd1N/4gbyT/2Jl5J/6k+8jPxT/y85/sn/ IdCfuJn8A3cR30X+gduJV5B/4Fbie8k/cAtxC/kHbiZ+kPwDNxCvJP/ANcSPkH/gIuJW8g9c QLyK/APnEreRf+Ac4tXkHziLuJ38A2cSbyD/wBZxJ/kH7tvD8U/+qT9xF/mn/sRbyT/1J95G /qk/8XbyT/2Ju8k/9SfeRf6pP3GU/FN/4l7yT/2J+8g/9SfeQ/6pP3E/+af+xPvIP/Unhit3 otSfOBW4j/oTw7U7/dT/C45/YHy3u6ebGK7eSQPuIh4OnAncTgzX74wAbiUeCZwF3EKMqcAZ BdxMnA2cA9xAjKnBGQdcQzwaGK8L7ikixlThTAEuIB4LXACcS4ypw5kDnEM8HhifV+nJIsZU 4jjAmcSTgGuALWJMLc4i4L7POf6BG6g/MaYaZxn1J54F3Ez9iTH1OCuoP/Fc4BbqT4ypyFlJ /YlLgVupPzGmJqeN+hNXALdTf2JMVU4n9ScOAndRf2JMXc426k+8BLib+hM3kH/qT7yU/FN/ 4mXkn/p/xvFP/odCf+Jm8g/cRXwX+QduJ15B/oFbie8l/8AtxC3kH7iZ+EHyD9xAvJL8A9cQ P0L+gYuIW8k/cAHxKvIPnEvcRv6Bc4hXk3/gLOJ28g+cSbyB/ANbxJ3kH7ivj+Of/FN/4i7y T/2Jt5J/6k+8jfxTf+Lt5J/6E3eTf+pPvIv8U3/iKPmn/sS95J/6E/eRf+pPvIf8U3/ifvJP /Yn3kX/qT4yp3IlSf+JU4D7qT4yp3emn/v/i+AfGPdSebmJM9U4acBfxcOBM4HZiTP3OCOBW 4pHAWcAtxAgFnFHAzcTZwDnADcQIDZxxwDXEo4FzgYuIESo4U4ALiMcCFwDnEiN0cOYA5xCP By4CziJGKOFgA6Mnk3gScA2wRYzQwlkE3Pcpxz9wA/UnRqjhLKP+xLOAm6k/MUIPZwX1J54L 3EL9iRGKOCupP3EpcCv1J0Zo4rRRf+IK4HbqT4xQxemk/sRB4C7qT4zQxdlG/Ynxpn2nm/oT N5B/6k+8lPxTf+Jl5J/6/5Pjn/wfBv2Jm8k/cBfxXeQfuJ14BfkHbiW+l/wDtxC3kH/gZuIH yT9wA/FK8g9cQ/wI+QcuIm4l/8AFxKvIP3AucRv5B84hXk3+gbOI28k/cCbxBvIPbBF3kn/g vl6Of/JP/Ym7yD/1J95K/qk/8TbyT/2Jt5N/6k/cTf6pP/Eu8k/9iaPkn/oT95J/6k/cR/6p P/Ee8k/9ifvJP/Un3kf+qT8xQjknSv2JU4H7qD8xQjunn/rv5vgHxndIerqJEeo5acBdxMOB M4HbiRH6OSOAW4nx5RcnC7iFGKGgMwq4mTgbOAe4gRihoTMOuIZ4NHAucBExQkVnCnAB8Vjg AuBcYoSOzhzgHOLxwEXAWcQIJR0HOJN4EnANsEWM0NJZBNz3Ccc/cAP1J0ao6Syj/sSzgJup PzFCT2cF9SeeC9xC/YkRijorqT9xKXAr9SdGaOq0UX/iCuB26k+MUNXppP7EeBOv00X9iRG6 OtuoP/ES4G7qT9xA/qk/8VLyT/2Jl5F/6t/D8U/+D4f+xM3kH7iL+C7yD9xOvIL8A7cS30v+ gVuIW8g/cDPxg+QfuIF4JfkHriF+hPwDFxG3kn/gAuJV5B84l7iN/APnEK8m/8BZxO3kHziT eAP5B7aIO8k/cF+U45/8U3/iLvJP/Ym3kn/qT7yN/FN/4u3kn/oTd5N/6k+8i/xTf+Io+af+ xL3kn/oT95F/6k+8h/xTf+J+8k/9ifeRf+pPjFDeiVJ/4lTgPupPjNDe6af+H3P8A+O97z3d xAj1nTTgLuLhwJnA7cQI/Z0RwK2CceNgdtOHM3+ObU3rqpvW//ls2wovx05j46vBQ6L3ysGc q15Y35zwH/JHse180/qFkjvUm9rwLBYMVv248PJuc+V3w6GRcqopNTt65dcDA7sPD7WnNoWw zBh4NUwZzmx8tb5nUwhX2nOuunp9097I6tPc9kRHs/zjTfnhEPZqG9uDx4aX95kKDo/wnFQw 8OqVcnV4ZLbbyChM/KZ175xlo6irwzdh9bI+ssBKLH+zFHPT+qfOQvnDI6GC1VLWpOz0NnwY Uw7SIqEnzanUSOiB51hR9BwZgKENw6W2CL+/4pb3NN5SjRs2o5qu3hOtZclXS8lN1+9rmpqd 1lTfHwlFtQJTbuTZLbHSm6X0yBPHoY4l2Zmop0MMPRI6gBxjs5EpOvsznMl6Ln7mvG8HBsJ5 aU2h0aJcNE+uGPNq06zszMhybHtLSWmC0pEVuaTQc2X1GK7vD0ubQuiQ8NV7mnqvRrfwXtMI NP2pA2j6/aOl6ZKzPk0UWIv7KVJpdOI3LDYVDQiNRaWYn5s6oi9E463aL1NUZHnfGwcGmq4Y EVne+rocFEyKLC/gwRRp3Gs4mCqVa1ukCbNjXfdj1n/yaNN19f3R5/aYXlIdXpY2hAvSmzrG tIsJHBtemNm4V0xtMnvtWmmHHHqKbhqevQa7htE90ilP453gJCSvLxI69TmXgOOU3i524tN4 hFX6bnhk+QQkSC9Kz05lf6Y2BbMz17BHJD/1l7qDcl7gmG9w+ZgXDAtZ0HiW2NHyv29kKalS xnDpwHTk/fJjthWHz0izox+iczdFL/tU1TVJO6TpKD3ccJdW+ZKcCc/uY3ECbxCD7Nkvnea1 R9h37z505ZtnmPFjuu+VrzCYr16/+4hm33gm//3Rp3jR/WeA/31RrNcTOv/naM2mcO5wgD17 pSH56R35/M6EjMwMnD1bVqgd+Xz1ffhqMSBygPKvuHxm9BcsPI8tGh394HNP4Xv6BeZ1h3PT G9szGnGPpw3dPEbzsNOwnxuZ3Wv6d7ZyE2FvSDcHzAAa7vbNPNp7b+Pe+vPC1/dFh7Dn0sUg pJ839ZuORb7r+tWu5XjNB8jU3TQxPZzX93SBMRemzOo3NjL1Mww7NueobzTzcLEPbaW0BEm/ +wiOYvRVvyyUARYKmqGeGQmte069zMIkXuZSNcOmzwbzqePj+G/RhSmnc3zKEIneh7zPumVo X64Ump8pMVacRtU2RUJ3xfxP5hpTT/GHpLCxvX58OD9TKOTF13w5MMCuZ4Ec6Did3QNl06T7 BgpGeIZYon5drn6BmH6XPhfv3sfEd4fTsz2TibE/KSZ4qsd+R38DVY8fRf/s2u9ut6/Gqg4n 9sU8su/63q9p/6clXn9n7Pq5ev27/zrI9Rw06dE/s5TfSClimeFcjsqn+80oSpyvMH7q98Fj yii6lhfNxUWH4oJxX6Gj2QNn8ZCNOZmHLPF4HnJcpX9FZxpNxanYEIqsOtVrDzKeQr3jzYCJ 2qyv91Spb1Fq40DGUnw0IBJaKjquwW6XoX398xhh243+NZ0cAGzIlcbow7Xp0UfF/4RvKEWe prxd2tArv4wzuH+HySsDZPaucI2Dwabdcu6X8TH1RixbaNHYwzJu+RUblCOVinuU1oTztj9z wxCOrkwaqWcALPtUfXUk9CYaPdVk6EjlNwCip++CIr3x+dw0Ppw/Tmz4sIZxVkZjmfjwjrw+ Zj+jx5DelBcN549g+fAM9CNs7MWwyrw+HN7xZUy93FGmUXXrUds2pDa/h9QodZZxv4nZRiLl R3viun/zL8PgxISycszoZCmXJCslGynYz3VLWaWl7NsT7/BouGa06fAsZFmXkL2RdjyeDqc5 nDs2vDTU1zEwYG8b6I6EHoEhcO4Lentyx/vsyZ5nMYOEfiGarmW2Jd5sbZrtLsnWdkhsZE9c bzrWzfYbzVbpzXamL9uvNFu+N9sJvmwXabbve7MN9WUbqdn693uy7Xnem+3LnSbbFm+2D33Z XtZsf5VszxgLfPt5zjOeDvmLZgvt5+Vp4bxeYywV640Fz9/uDikJNZBzAXJ6/MUUeFMJwejH hd7ohV9iFJ/6A7iaVLHkI3xedgENsctUdNt6bZVUds/7dM3h66SyreG8rvDsrbT34dnRy3Yi aWvTZEwN4iow++Vti4Qe0l6MnsUM25ompiHD7K1unu2R0Co3z2HMs52TYmIesaz1bp4Pu3Uu zPTm2RUJvermWcc8u2S+9OaJRkI73Tz3dZvBMXGEN09vJPSpm2dxtxm+E7O9eSSmszZontnd Jk6aOFLz1IgHPAapw02gOlYyNOVnRUKnbHDnzq3ozH0fs8diMyB6cU6fYRXrWSkuuuQb0+EY uKk9szF4/P55ZrTiC9B5xUlm/gnjhknjC8H0cAhHOuWELthgSs7foeF7emQ5nnoBtWJsbiOi P5JWNfHK3Wua9rL8dJb/VRbKz44+tFMLGI4YhwFSQAMk2FlqtomRLt1gQtHo7B3wF9lXufH/ FWvxmIoEaf/7OYptYbFzI6E5G3RC/xzqPbG80xi8O5t0sovETR37LrqkU2IBc8GISGiROZK1 1U0b3Phg6xoNhaVIeJkx9HHbZLREP+j2xDBLjVE3bRKz68jFM2JWR26uEZOMmGLEVCMKjJhD HkJ3dKF5G1DSBb2mpPyicN4GjEg5d6p7rjR+7mj3nBM/d2C3nquIn/vEPVcTP/eGey4YP/e8 OScTXv4iMZUxe5uWYc3c1NrAhvKDvFwvkTchp1HJwcV3v61z7qYx7WZtlRbdsp1Twprfpkop HdH3P4XT3rfGEBTO64ws/yvokeEuNq6eHivK6KJ3JKf4IRBnPFXTeJmfZNoXKdHwCimpcW9G 45mpmEv7wtN6m7qa3rA7z38+I/RXmUmx2WWtlVUUudc1YPTzKFbk4k4ylt6cwg9lisXiucLo HLjHjrDp/mc/QTdsaBqKkfToJ1gxpWpSi0nqmMwFQ9NkRJfRMLNkapbrBT19KFPFkEo3xaMB NGHHByakeT4sK5CMpU9KlNE0uzuy/MGt6If2nr/AFiRMCB3oUuNiPLbsXbQ8o/ESRiWrX0xM q9C0qUzbvCUxrUDT9tDE1nvKHKtprUw7rjsxbQTT6hejybe/rfN5auj5VGks2n1ArnlGV53i rNrNcE2NWgjMMps2yVJ3g5kTnouEHtUmoa/WbmelS78r1ISHcn3YGws1JyLuGdozcAArTcaW rfHEU5A4eXhPuVzZPKbdRGXkmRTLokcz7sP8Ojm9Z9RAbMFaHi/mvSjJ6vmUlXDgXhpPbWdq Ws8Kppr4N556P1NTe36HVCFRTlW/BT0ynlyO4ZvxpHV+V/BIKZZHGY3zQa8YboQLu20y6Yqx 5ttd5/dl3HrlfuPvpVNe3B33zqWM1xNOOFwf7aYfjyznKmB2l0wOuPCmd7F3wZXF7M10DWma UvYuJgvHnAivwTBuHKifRYc3RwbGmpDtRtkd8cCaHO57k3WhIPrNvj0H3IhjBX7uNvoT4zlu QaHiORj3duTjoTmxo99vGBz+nvGWmTPmcabqasofDV2eaN9/YCC8KJ0B4XDjMIrolDc33YpH SNEIb/IEaHXrMpMW/csXmBHmMoJEb9XCQYsVjEddH32g/m289OJAbk7PkgMmPN2/1QQYLFIc fPZanS8eTzWmFDZzRHTPGySo5xdyYWz9Ep3ci9nm3BNsq/HVjKU3itJYZi3KBc3v7wAdLbFZ ZOladwG73oRkmc/sRSVu7PXaCxoSmTA7JBViLXQyB/LDKAaRxmoeSFiymQcSw2zngQQ8vXKg iwYJpBLWg+EfD+T1yVCWZoTpRsU7RanltzEtexMi/LQ3jJEz4y5m3Jc0447XzWqQGbuZcX/S jE8yY7rJuJ0ZDyTNGHndrCSZcSszDiTNWIqMN2K12HjiQHztwO4fj+4veQ/db4nHJdm6IbE2 tv5selkYHBlt/AQM1owQBl8QKjKWPk7DHebueUlV34GX7pB5TCeeno8xcT3oWgqev0qIKcjl D16gjWO3LfrMVmNqf3+Xq8egRA4YEePV4jrXash3M2Ju8QkF6eGbm82e1HzovMSEG4gr0AtM 4/y8BWqP1D2afQmTr/O+t8HjPvaXXP/nxP4I3+xuz31vB2ypD5lr0llAmrEY0cnaaMbt29Dn lmYOuz5p5HG69jz5NbeWnryB2OEFA2a8NL0pwdmIHnT2kOMRnE3F4n9ipumEjI3amXttT2fm dUWeaH5BJwzpw6rX6MXPwv5aqL8k41Y83BOePBqTyHd4mJPL/Ss44itGy7CQMxqwpWENIM7w NoTW07Y3pWdHb9xqVDpNJnzc1tWqI+7MaLz6+WYxhPU3XPA4zj8foZDu8M/Tw9OiHRPHsRvt jon4sQDn8rC0JrL8TOj1irhjcXSR8DigaZ2RcOVGjNReRnx5uzhgZQ1Tv7Vp2oYefKgv8sT8 jWZtbGbF/3rdzJMlCGZOUHuDJWHpgwX1tK1Qp+BVdHt3+PooqM7bJc1B6GF3yOSFy/Gkenhi EUoMfGimcYllTLS3dScVQpQ5IX0NnqEM5xZpFCYETdjohmnb2DN0mdEdYoLh6WmyLihGZ0yQ 3qlAYUM/NA2RycZMqgt2mi6UOHRi+jOnsPQKXZVK6bO1dF2GhKdt4wxuVjTXSSUDeb3mf+g2 rXfdzhT7FemaabuglnaIOIzNtKGh2kHezjkPbTXO3HTqxK2mU+88wNB/zWEpusGANYenBf1i D6x4l9R6RSpc/bUD8c0RdujwXcYgpEOvZYeGdEUpHWoyefqx7Ui3kZ6aEDdIl6FZ6Qk1sFP/ /oHWkKY1nNSd0KnI5OnLtmO0hp6/HdALM+VCmZpTdLBPUOt/C4M+f1xow1T6kqa9CHdnud30 3dd44+oalPBjobgjdyz3H2Q0dm8TD9Q/NOOWd+FK8oeaBgTdBpzjquixmYdfQYwkpYXah6oi c0wDekbCT2PaeuImj/mveNUwdZ9U0/ZjQ1P64JJ//oo7JsXw8QaSnn/sN3Yoo6F2VuPeG05w Y5A33ogN30tm2Z1NEwswI0pVf3vF7BVIcRPfh381fYJoHiqdm9S0tr0sk0zhftwFa/I0HOMD 29ORJ7gPGDvfwfPB2W0/OagyS1Hm4djtueCgeYpeTlAY7qvn7X2Ymn6zUf0XK/vFFtN7a/Yx 95h29DpTQ+2HMb6U7n/r+s8znsr7fP4RVvp8TABD1+Ix5rcq+9755ay3Kj/HWhe5SfAfkvqC 116SBuMWCdf3ut9/2gdw+EcfFdvvf24L9vsLXnAdLPlv26EruUhopWs8f/POqmYSila9ZOK4 vuhK3Mzpiz7ew8AiXDBWFhnnhL45NHhGbCsuva0tZoF9Zr5NjY5+iRcM5E7afaQswe34gty7 XeW9P4qfozHou6kXPxdqasRPxSJ57U2Nc+VAuvQ5yMj/OvLvvuiY96H1yEzb+uLhTUOtyPWf YbTMkHVa+G5ciO568PUBvemYFmZpbN1PEcLP3olVMlrWdPecAd3wWPUymH0W3dM4a8Abz4SZ LePJSccNGDWlyFluke+8h6S8z8J3o4nLJtUeEPS5yIH80IGj6nGHMfqmLLBv2gDNaO3x+6ll O6HJjAzD3xuy0pfu6eByP9S87UDCGnE43CuPzsAsNDm941CzoYGfp3j71txPo4IzGQdsx02A fd2o6uMjbXfjO7xorixShskQbOpjs6LN2xFB6UaDe0NTahwlPfsMHrMy+xDnmgVxJuyp1xt0 G4s1WwzRk/4ho6vBBByZDHbS21LcIEAsRremf/WmYaojmvMeQvLg5dLJa3ZKddG17mKJ4yKn XceFOgfj0p99kXH8Xe0ZT/YxYMpYevqAcbz0nzH1XN903UvGBeXR99eMb9ybsfReBqWZ7QyJ dh8eXpCKs7egl44LT0S4PFIyY9/KhFTDZX3OKXFiGluUYpxWl2lXNyr/wSswXKM65pkZZlOL K/huXpCqgd1hb3OjpCOId3PofTVTxr8QXWPt/DQSjMlONbcFpH+3bKIiYWyA4UeKVs8+OPgF ev8nOmwHGP8ynfdTw/Xp4evTove9NBC7F/8nbPssz3yRwz8Sanddw/FDvK7B7AjNjqLOaS+Y eyHfRG/9kkeIQfLHYmfjFvbhVreU7w5xXXmv6RX6/yPM9TJjhJ7PjX6xjyh6qVmdg4+CHLtg VEcu3/EWzh3N9cF2tyaXwoVdhuAMzLBY3/bpzdQeWyKjZlmUDuRPYj/mM1y9YpNZ/XN5qtuE TV3Rrab6Ma9Gb/ss1oDcSaH+lIXjjcm1qMm1jXO10UWS6Y2fdbIAt/Klu8z8aq4tcq8dk/Ta IZ3xKhnynvuOeyK2dTn2MAoT/cbrGbkryXpLhvoSrNOHvwvWB4bZFqmZA2ouREB42ZTGFzKW 4jGe8A3jsfJ91oqdfQ5lSfNSsyPPIkaKHvsKtyV0qyU8JT08odTdcLnWyXjyUGy44JcrkdD8 Tapnqms3YdhNJLQKs9C0DbxDntdOvjo4vWQ8ORT34y4vvSAlY+lf8KjJ5VLkUKByoiJFZwLl F4gJSXURfLI9fPl4hId4hj20YQnHiwYQadFDvsVwTzjpmsuUl80GT236hflTM+7A8xBSecaT 3AVGPbt5ZoqU3Ai/416Xyfk/Teb/CydOzbh9E7Y/ZyReh0dXI6FDN8VvG+yHZW4yGxKLYtva usGdHtv+lrE1ZZ27mHXWGWv++fOuIzztLXdTyG1Ko4zbQ/DQflP+1Eho2Trt8t8mWRun6toY O7t/3OhubYkx2cbq39sJcrrFrchqWfJ9g77DPU4sZf+2zah8bXrPG/tdKzMLVbNDrNPRQx0m n9irRDtbwrdg07rpd/j39HXh/CVbosLYrfgpXejrYzLuGJaCg+EZd+A+VyQ0Qtq/Zm1sTyze 9g8Tbju/v8FtSkc+d+17zt9vxld4QpHZ8lt6AxzHhIIL83ozIrU4/jnNo2w/g5cHv+KUpOts 3eErohKyKpDA8hXeBeiM/hoZO5RJDtGE7cEzXhkwj0ttMm28apOh6/52tG9bUx5j1OCbZvmD /c83TV8Wm4kteuWbJCES7l6HZel2ep9pqzAEbhjP7QfJPAv7LcfTQ2G6GWu2cXLMrDMa6+mp 2aMw+UzNzpIz2ZiApmaPMDNTGu+TY1pK0d3AdLO7I5qsgrPZuxZt3SpzHtra+UZsz3FJzEee t46tHJB683N5u3w85tJvMdKu335Yxp2fYf0vK9hpW3sm4Qm2b/4lemTccoqMnZ7jeYP4SdcT HOl6PDP6w2b0HyVhY08+fK7ZNDxp88DATz6WrBm3vpoSvztwwQskQ7xR3mpku+1FlP2ZO6/c bw82eZqNZH0Mfmc5WZzdZhYQaVw11yC1GHPf0IS7u4cp3e4g61vvjvdwbdDdErn0eRPe42dE 4bw2ORV54g7dwIge+RL3qMPe2hahti82m1B6sjGlJU2T01Ec7xhMzpQqv4cqp2EWmLa6afJw EFO9xfUTG8zkkdb2PTciMFv073Z4qWNHOi/Hdl9r0wfyczryTVCYl6YjJ/rJu64H7NnzNbrz KJeqP7geZDn8RmxbyEz5m2E7v1hnegWaTcFscp0dd5H/7HQHafiGqef3Z9x+K/ZoE51r4x2s 8BK3wgdia4YuY6Cs5Mv2mN/5peQ/vevpdGND4j1zDc/c1vNa1Nr2mFofsJb7pZY1w4bEnmRI 9+a/M57/IeZf7rYqLanFFsbzlzH/Ujf/oUnznxPPfzrzR+XE2lUHc3R00mnRr9fGO5iRwKjX Yu4/f2wa9/sZAvScwWG22vX+9yXtyr9KcT1zJafL0cUdA+bBN/bmWa4Kf0p6dcXaGBE/ZG0j tffbvkky16wyc030R2vZ4mdgdtGfRGP3UwoqIiHriwPIg4W0TDR4Br1nAh7UM6NIhsTTL3MQ 9TwprqEZ/p33m18agvvNod7x4dmZ0Z9tRVBzRooENSnos8gT2gZRaOMmd9AUIJSt74s8y/s2 WF4wpImuWIMGZT6NN5PsCx+NvcA3vvhzRmMjBsns4XFX/9gWZgzXI74P38DF8z/0SbBj2MpS LIZr0hr3BseH6zP1TtVKZOmI/sZddWuRnMXGdw3EHo7qfgY3pobjsUgT4cV21eu3mcZFnsXt pS/+HBwrpyKhClHymR36hBa384LYhjPzsMTVwtfq5xI257Vi3sT6oGuwLgP6ANVkui0HukzJ RPxXh82wmD7bnqM+6zq9+vDmXsUrcX0yn4nXPTgejd72Kkirt/4fZU8fEHWV7ZDjR0QybZS0 4QuNNntZRrWFxRayDlqNG0mapbZb2darXXNtJus9damBlennBIUGCqgoih/5ieCAKONHjAoq YppfbO5W28WxHrkuaqHz7jnn3t/H/GC294/+5jd37j3n3HPP97mA/5HAnQ9QcwM5FbW6Se5M u1OhUvgfIO64O7mhNxj08Xwro+CB72m2BR5sbApft+4aC/qgNtrutkZpS51rlAz5hCiYuGGX cJpwHZEgP83nYCf5N3XRhoksATnRDQE50cuCVM071TiCdF6trIhP5IN7UmTU4+inWq5AxGdS wL+fcwhIMD1k0eqllVlxbIBf88Ju5hRxz4qJcr6j9FEwbvgO+NSNSl/69HoD8nLidhutngCZ UidG3OMhvoOm5q0BeRqGBuRpKNgpsZJ1c9O4Q26Mwoh4cFqMItxO3OOV/JfBo4Z6eNjPuhZA ZvkVC/mT/Vhmg4bG0/sJDU8gNmcWsPasGG4gwwV8Sp8GAJ2wKcOjGMfRu4pezKWjmoiYjRN+ NSJGeRkDcq9GQK5wn1ZSC54PoTIZZGUfqsiG8OCoGFp2eTP9av9uHT+q385p1qrlC3qFRJ32 SJKjMTIs8rca3Yr8pFEuOAh7+xdI+BhWVSu07xQrZ4WvrI64Wre6RV392bDVX9Kt3l299hDk tRgqIWNXDsDetXdBCocvJfJfT4pimjlwahq1qt5RMckhGoT82ISZvk/F+k4tMNTgg8IQZz+Q 4m5fOHO9ZahPTlHhYX9CYCZ14anIDTkfBcnQC+ZvZGdrQ6Hhjc6hrNcWfLiVT8MGNOLzAN9g ASHWp9RikDcB4uk29HAmmMKMnAuAF8ZPUzKcXOwr49/22E+pURY4veNOs+GcsrUQz4ZCHPyB EE7sFvRXbVDKMz2mzkpCA7/pDbsB1TwwHJp9VbCuaRC/mWl0m9IFb70OSoDA4h797JkDPeg7 zbhL2GoQ3eJslNSkVj3c1ER5CP62P39s/3lI1Ch6twoLFmtu1Px/LQl+8LCneUQlSO4WJFaJ T9RvYsJO/uKiT/3F7LclHllbyO59GVQDJ8C4Y7JkYTjNBW4ZULL9cRzhhJiaGDEAR7j+CmEs ISGtYjpIJgc/7aZeeTvcK5TFxjUDb6T9YJFKwwmHPFs9+Jrt8cE+Okh1NRAA9LoX8jGxOR9E wR3BQOMBua1O68NXOeMkRoM+FRjBkHl1oZCErXgPhjhAAQX4JKAQR4HN1sE2naHwd3aOOAtt m8WLPPGiWb6YK1687qcXlLaavFd8QvviSfkJNfQI+QnTT/fJT+ir3CY/OeHTAPkJPYurxSd5 im+qy5ScCfZKgMiyy6+v08/QyZdVYkR5+Aj8VhHfugGP8TGeDvfOVPZ4u/ohjf2q3dABkCo6 AAbXIkVDmfFa1nyVqlnf3KeqaCGwx+7VdGZYvT9p2q+lVUH1sDoNagMpcuc+4JQbL0oZ6xAW V/QOZM9Uvvo+Ybq2qabrdhWMjgOoeFBLzNgcJruUZxzIeC6RQreCj80HHtgIHvxpjM5RYjlg Z/SfyDaL8pAWX5qUCVw2BupD2BQidGUxh1AKITS/naIRS8Vh/HYyjX/DOdOXqptpVj2E6LHf yIoGIdjPm/ig/pGm6wtaV/10qZoLkWuhsEscQ6wXPbUHyBnohINndW9Ngk48Z7TihofnJmrB tCZ+3Dz4Vvuux36hOTjp9E6Q9F1KFdwCwvWFTXGn9dF3AHndh8RhnrwZtcCKRspEwA1xHFVp +yKDPw7dJDhBcIvKH5g6gpveIMh9Ha7a9S+1dGHjVVrpwkmfKF3YzN809JEnB0jn2gzk3NeA 8THJO3B9kLfw2oOSkZGDgG9yM0UKyDP/aZF0GsZ3gtXVhfTJt4exfKgeZp5WRUjG+2EFb4uI K4mtvXdrCKr57H6IYP0nrKqcg9BHFVQreu2nA/ZmYrE9qIi8DljUtcGTO5o/tJ9Hh393bV/U C0kQyUizenIhUuNp5M5OzhigAX1G/v9BUPzkWoHoROkPzs8USTHFi4jFcH7cCP5BPWoP7uiL 8EmTMXyycVMIKzlHpSgZDn4EwJbjC5xA177FM4I7Pg7oDoPFnpeLVeNicIAppcZ/APdOKuPq lXSHCFoqY/YoLr9njxKX7PZjecA1IJ7HNHvse6gbDyMDGyAIy88FY6ABtwF9MLHYpdwDpb4u H5DhGIR6Xb7aa8jdGtgE7pZrjGKv56ArbzsE0Lf5RVwmSRnhgPYLAPrFCEDfz4Fuzwph/kU3 /xCa/7+g7DfTGlvj/vNuiIq4bPwxGx7To2Jz3kMc6/lKgbR4VKnRMJE7bb/YmpHdyC/kSMh/ rYfcIrCGcCV9tdG09n24dmzuRmIN/frOJLneEFxv4RWN5PEYasi7AmlNCaOrRX47BL99DWsy 6zm9InRolG8ALzPF654i8ZgQgcX+uc6Ex9WEx68QD+cwHWoZRNaU8G2bCnJzVGL7vssEn/67 sfhdQvu6ywYOyKTZM+BVX3o1URBurplwrod0RLlbEgWzVe3julm0DZTdqKEYuuYkpwP0jjhA c/cbCTZtPZ4yOkB8VkqeY8lT+8UuglrQBHpGOQEeVcF7sQnBS+CPLzUReMBjU/CZe2I3QFzO VY8T04wrxIwxNON7Aul8LGNo3n4V2qJ+ZWR0FyCyeQ1yPBeSGzxYeGdl74ImCICYwSABkEJo mDn8ANamobD697oSNFmj4h0t+KCkGqUIOYJW7f1LdViEnrMF4MK3DVFky5Jm4FqC8BMwFII0 QtkIn3rvkAwuvj7P2a192Y/41qu83CRMauW/cW88XiwZcGh78xkXk0o1vh2V0pAta0ZmQi2A VASKqgh+8QluN54wFGHtKT/i3kL90nhcwmhYuFZB8cJoOhUxGEeTTUUaSmmc4Fhobda3WSxh Byg9uMrefTaO/XKzVEL4y5ptoA/4PDGis8Rkf2Mb9/jkzix22A8Tbf8OJkqF34toz3RoQzc0 03KDn1qeqT+Cbzr7drtozVNmdYBUFuTDQtoPhL5geZ+gkv+wSvi5CeA6zEyKF65lnNqRwh3g j5uIJN5CDz1ZWe0n5A8Jg/dEPc725iYR80MjCLG2VGF8SuT/TfGMMw2A6JFvKZ7B7QYYL32C JBReDu4VCwGncsL7IEf6gDl1D/vNNu0XY+sJgOROWNu6lnoqtI468DDZNoDd1cF6r1R7wTlq pU3IbDZBTgR+1wpEq1S3QsfWkNb/t1VzvY9t1nUTi/gp5P8Rv3+dtejib2XC7XGP7CM6qHHm 36/FxYbpFstai+XVgzm8yh7gy/Hx3sLseHjg+z/tRnjgoC+5AR5sSqEPxuTB5ZeePLhS0lMA F2V6CxNhQIEFragOGzz78f3v4uB5Az77+8IzXDzpu8Yig+X1+6XJtbpJKr3qJjrOjbXdhPei +AawrvX/r/Det+u08F4vSQ0fp60PapYkLS5s1JUCY30FJ++abUDej4NA3kS2e4PhwNnrtIiK sPrvrYPzcx73nFPQ36Satrihh7ncY89Xy1nOY7y2VpwQHFFeo/e7aERbLeFxBKQdCIoUwq9Z EOryshB2tV/l3p048XnuaOn440w98v8ZQCCG9TIikFNLwh1kBn6uwSKVRudATyeWuuvciwkg vKBkxvW19rJwFdAspsf4FMZHX0EQxp4Ji4/OWK8FFn/0hcdHn10d0sVHn1itCyCO6iks+nlT eOTQJ+KpOo80s6an+KgDot9agPT25VwGHzH2ayI+RVsBn/fadfiw1es0ZO72aVFSqJfhz71i c/JhDYHczFVhAdLXxQuJYnpPKH73U1D8Y3U4ipBPn+YQiD0CWj7DFjyF8UwHqLKbQVhnpOmC mZwY6Em9sIXm9Kw3RDLl1+lbtDCmf0CohzBmaTnXaa+FRGGq4T4DffzykTog7B0M/Di+QCp3 8B2CU/etDxmDl45kruswMdpQ01PksneFJj73LgujCd3/Uov3v3yD/rB2IQDsD1/cqnOJC9iM LWCuQz4LXhdo+jSL5eI003CaoWwRab6iT2iyULUm0L+s5Od/9icIqjUZGBxlNHy1p5JCilg7 FkON4XTTguoUH6nW51WoemxHtdo0KtW20KZ0/wX4dFBE7tAJlQ53IxI1txooB7V1OFxSD+LX +DMsXFtiWDQg3j5eTcilr0M1nexXpjvwAgxoeAChzPFrUKMfdIXA0bWk0jNiMC6yXTaaaQVx 6VIQndyIQ9X4iRp81Yb4aIg0DbUvFtMXGrOq38zfLJmVLAuu2TIHS57t3axR7ewivk3fVNMC IxFtdZJMCl7srVS/he9wC9EeE3s1vAIJL+2qn28merWWh6gn3KFk2Ea7L15+qz9btArPI22T Mh4q0hI5oCFPeiLMkJ6kc7/im43exOBlpNMvS503RGQe2ssIPg7O9l7S0IR45HJiiEwH1S2C hSqta0ilk6VaQtsq8MZXbA2udN0mTdDZq7QtkHuDY88uRxMDjwf78woVEo2K0eUIhuF2lc5N Wv+zX/KwYMiHloTkvUPswCZhH6wxbjQIsk2bdFaSyf71HBzvOZoFZxQUMbd/v7TIjqW/W8I7 ll7hNJA2utVDbH9fFbbbSlf3VvIQbN6qacbQEXaGIbBRSzC/fkD84nY1H8+AijPRfLGyk4uR YOzwSiHFZDFtP623SZ5HYDxoC3Io07GstRAd2LMeXXuTzEagfPyiVH8NDbQ4NSDcAs3stWY0 HZv0aOoDEognBVSxrGHwYiM0udNDIr+vpKOCuG41NmwFsBvKIRqgHEmqw3FoMQT2PRmpzuuB AIMXyfmo2ZQeB4ZkvyAepHd39ebbRaFAT+4EtWhcuxFm6zIZFtJVmTtElTn8r68pv1IS0tWU Z1bSTirkHd5P0aYz62CSv1EcTq0sh6373RIUooDW/JG6eCu5r7E1I/vTdBSVE7amskHWkzt6 rCefA+Y6lsZTbTvEOLHwBt95C2FTvMrYg9I0GNkseOygKJ4SIUvYVm+mcLCnc7GAV8XAb6Aa 7ln5q1bxK63qXQRwOCipZQCuaMjtO7zFea3inYTYRQ1vcT3gdU+Vs3wWYZbOUmPwxztB5riU P4lgSeoBo3j79SIQjSmEspAznB89zZIfoXsDNvyHYr7hbVEUJYQczwoBkaISQVGJ8EcOiOLe DJ/OYXmkgkzEjv+Ie8u86+k05kKohpaG/IExBudVsLQF6dD+6pXu/HXg19c2Ar+O+0L6Z4or hs2q0GRo1Drkf3tHbM71URA4j815OIo68LmwnHY/vOCWpgVjQjJlObQUjWN7hzLaIYqwlKfi oFh1DR9FVwkoIxKR/CPwbpp9lXhuY6BAmoR6nEwQet1+QcTqopC4DEBZJynE6XMOKGTvYHV4 4wXCRVfV5BaJXY/rJnR5jwhdWkrCfrV+teZnwbS3dtGAxx3t6UDqFnZdF45I9guZ5ZfcZY2w TvFCvg/bsJqpSY7vG2H8qzB+vnZtB9qD9bDHuyrbLHQf4BdyorIo80QFYqJbFmJZFDw+vVRe JIX1IVivncBewUnHtmHeQktiwp+gYdOXdpfEnLSSjvt6GPLkUk1uHAaVl+kABo/dDzcgxuZ8 iIorSaqkoMUM6U4BqWuB8B/7ceP2Z5j/q8A3gTT8S1K6PKG0719cQz99rsKQDpRG6/VlIVM6 8FyzVIWnDkoIpGfy67U9pQMpvpUK8eFdt59C+iuFDrgVsoV7pG54ejvGcO2i+6LQubLpVLfO 6yu1jQi7bweVJPfiDq2FpepP8p+OOwu+F3Ts2tCjS0CvJD63FfT4uK9i8/4JMgphyPW7psKR 3GWB7v/YnEZymOAwyX5wuplPuw7oIdHH8Mw8OLTJqhlTVErS5hbY0zFf5e6dPUmxf6X3UdrZ FXRg3sgNOcfwVRJGQwCNro2Ko2VsUCGGyzxFy2BkMVEYfOzLQlgz+D7kKwwOITYABNdQfV77 vaBQ8FX7sJCs2gt6+FH8PRT+RoFa0/J94Nhw//cE5ftc/RRlNN1rM4jDOpBKx1cDX1Oh2aOr Cc8HV4dCxvsAs5gDp3rwhEXcT6gU4lStzv6cQ6PJqn605N/cV9gXJzl3HOFJ7lTBuYtrEfxr 3ftRXLIHwMjqI47qHRB5yxCF7qf4EfZ06FKVFD8R81eugfk/ovlJ8TtRRUH0nGUWYREmZqga WfpScgHkt/cW6ZEOq5/j8yv2OFhiJC4x7LggaQwZc7awUOcRDqb7H/HO3uyJeQZa6uI9P6yG mb4+BvYRXKquVCE1OMse5Is+XJXEN9Q5ACILwlHJXESyBhpFvPZ46BJyCWMyDk+XxSpOV24Q 9GMu/IEpjI8spn09WIoEgEtk2UslIdHdsHeelFpcX/+hRZzUK9Jq+oGjwm77CAwvnG8mZrrj wQFG0eFSuVneZQTeMOdtVrCSlDOrBHUMKMrbKsS1Fmx2Gd3CcjcE0U/p8t8Yv7nIPl8FJNr5 ucq/biSR3/kc59/xXvt5j9oB8SYH03d4zIu2Cy+f33GmD4DTNomDSfc6cHesRYjdo6rYzW+R Qq/zEBHqSqFxs1R4hH4YhfDc+zkWc4OwA3CcGVzv/QLOIvwBNtiVrUnU+CXvo4CeJnG7az9f l7S2+rgb6b4Fvq3Dr7iOc20jYczvBsa+rUK+F+qCn5Rv5/4H3YA4rh+rWAkg5h/Fs9lHcQMo GP/j7A337gr5TYeYvYWjXziKRKX7JMvpDHcf/0F5PAJ/NPSorBd7TRmA97uOU6ZziO9oFXex hd/CNmgedgOQu4jt/DIbAWz2Tzh+2MC76iNRjhHoi9QzXqt2c6vUWTmfheus/BXgNgT3d5eP mQtMuGvGEZJf7kzio2h6AsKw78FxxY9ed1oKzTgLfHN1iJ4/dfdHJuPUCUfg8LqiNf5h+RUY nLpRHuBbKgwixj1SxaWiNRyXXRDTrCpQ5VuKUIa7V8Bi6z8j4vv5rojEHVmUXFzwFd9hcWC4 BsCEgUWcU0UIwW7zujpQC9KBp7hlP/JGrexAOQkF+2lW9RHC3pe7/lyTYsjDWMmnlpI9tkwt wgke87p/qyK104TUdxXa0LVedxYfEDysiz9/sxyQaz1ssQhuc10U2AEmMNyZxoYvw9D3Tucw Dj2hQ9Wp4p6c4WUk7b7/MDy2qiN4mwm2sRy24EGV3jp+fwqhSj0s+F1A5HyMrV+KNJoCQMzU IiCj50nROvVDik7mhlyxnovGm45Tk5JD7DKHNfg1oUaAfW8CrJbjG9xBwCf3OKoQRpUU6OAH /V+B+r8V5WfAfh7P4aVyBGqQ13Vevf+zkEi2vaAnBu19OHxBiGcFW3E9kD8Git2C60a3Sglx n7zccxatfQ9QzEq3nnHCsRVLaf1HClAfQPOwv8etSzCBUrSUzn2Y/jjPipYh/oe656dZwE92 Bn9HlcP0QHIrQEXBN8lTzOElyCryfwJkvzRBdrlcQNb9/cAXlgJ8f2+JwO8PsscIviHE6mo4 5pwwSqPzI7D5EyaIQL5zNu8GHnX3XkCoHC1h/D6eNXA7IozXm1Uz4r0PEMzByZ18wzG5mVhC tpq+Fx74BdvD+T81Ha5jwb8SnsmdBPBEE8B1HP2gz2SPpWjwbiwHeEsPSm57it24GGH5A1Yj AcQijCVrHESK/OBcCfynXm17LxwbFAg7rPoDOs0EYTxAuN94QM2jznGYgpWaPMf9X4L7f0C3 /+rGZwp7jwu6R0nQadDb5C1JagM/WFOn3yeOuDg3AkcoJsCeXSwFn7k+nOQfQpl6QKNvTRnR F6OR8tSY6fuGIun78tyfTN8VJgB9i8z0NY/6aJGZvkWL8fzv756+HaVG+mIGW09k0bsplAvL 9hB9i5UI9PWbALtU1h19deft+0UA5almk355srRb/fJ2niRrfwUH2MQFmvy7rmLQ+xHIe8K8 /2Vm8ppH3QejKguM9H0QIR/cbMgXx0gR1ikoncF5JpW9VwKwwu+dWdB+qypu9e49fzHRN+V9 E33zVfj/1wTZglKkL8IfPCH/PsJo3P8y3P8mg3w9a5CvT7D2haJA2XVWr5OWkk5sm9zCKj04 Ivb4dwaw2uwtxyefOm4/FWR6DrCa7NILHPXgzm7y0xdK8fzviyD/H2GPEXzDOMWOozNo446N qgb+J4eI1ssTgSnjTSBNKdHUgEn+I1SOfWH8OII1LEBIJoXx44SFkh9n5/3kYz7UBNKhhWY+ NI9asxCPuUl/IT0rS9D/3xvRfrxUHNl+fLaAKLpxTgSKppsA+9nCnuzH6xCqrj0mer5R3C09 8+ZIet495yfTc4IJoHcXmOlpHjVxQQR6PrMQIE/fE5Geq4oi0/MOYVy+8JcI9JxqAmxnsY6e Wax5Aeb/AxRvlP7bIEOvxW8/pp8+k493veAgii0a/cHYmhbP13k7stgMnPTFAMQM/ZC+sXRa M6Nc/5F96U7nTdmX7prISZ996e7YeTsn92vhe0D2y0T0Tg3xAbo/CDzqJJwyNmARV0ABPAHQ g43wtH++3NplIMQvhhlH3cz3WTHM19Con28GzqfrYPhY1QiOPERduGaL5oZEmuD+PJMtFv73 EGi9Kbjek4b1/o+9t4+Pqrgax++GBQIEN2CQALEukSgoISSiEl6TkE1AEhKSLC8Chk128yJJ dt0XXqyBkM0q63WVIqhVaxGtUu3TWhREK5hEmiBVGpHyoqCRomwMrTG1kFJgf+ecmXv37ksQ fL6//x4+nOy983bPnDlz5szMmTP9g793bp30vROPyCZRoPFNkL+375Erfq/Qe/Fp8n/0Z75+ /xxvf75+tsUl3/PA/ee4Wwq9+ynPm5QnTpr27nK+BHkbQEHW7CJPwg2HHAVT+mn23uC4gbE1 egPN7dLsVSenNtu73ecQ8/PeoVCpVF2XPc5DBbj5LvBf3FLVkrfQQou7h5ZaNLvE32DhH9pT 6/70CjwJjgWavR+6c89q9h7Q7G3j6HT2dZ/D79Xi9+7G76U22f+Zqjtr7+h8JDBln9B0HQba G1XiM3cjrSl1ZPuU+x8oX9iIu+wHNGr6/VNImV/uE4S6GUmahmexMzOasg1mLCm9gaSNgTnK RP91aO9TJ7HmqQap4pNx/toDs1Mnrh3Jrjb4rvZtHild9OYwLIz+duBjh2kksM8l/c3FBMBy rEpr50f4/MMT0nfvl7/biIKixzsYv9oi7alTJWCa2umEmd/ffL53vouQLBJfkWVGA3oXy5Fm btHeu+rYF/+JX2ntWBhiz7Qw2beg0Lt6C1Kt9AMyBuLN4nHuJrKdQGtRXTvVBzh7DOCGJpUB pqdPrGXiiy+fSOcDH8KP7n6Ze9qSLGOidveTdPWHZI9Sl0R0KXiDu8X+rKvRgYu9uFkwGReU o537xnNTWUTgpU1kGyAZz4afT766mca/ZqnzgsgGXNHszGuDRqDpEDu1PZn1Z0nLxf6bpcZ1 ZOi9WZH4fTzt3T6dKhjl1a9lBL1xUxh7NcV4F8Psw3DrdBTh0q+ZjrgCK/RDp9+Okc61kRH2 RPirss9FT1yxztpoAcSsOwLKJVqF2Pt5nO8HSodV64m53oXcrRHUl9DhEDP0HVXv83kP/Ncn OSpTk3s/jPn+IZJi2ZFcivkWqrkL6uxfsNrNhN+Ocn9HU9I30h0HCZ+k9d8mtq8AYu4Sqqpx Y1K7RHjHWpxdhsNEuPtfvAMp878bcb3/d8gcLvQK4XEZkd9diy77pP10I7bXrDoaVV3LIXxt arKSf8UtmFic9C7J99QW+xCRsotbsMDUmN32G7JT92BGx+H1+/BTfH+WvfgdMgWPN97yTbT/ 2Sjxj/fkBm5mmrs7UpDsYWQrt5m0XONIFrOitkfY45gVGdCx/+MhgqGhcfV157Kioh03JPs6 Pwf4Uswa690GOM7e6Pimc5+YNd57GN9A3tt3QfzbQeeVCb/WXyB+O96X8Zsu4TcvHH6/pkUb Rwrip1bgV+4Jwe/cPpUDEdQ6hsHHPwP4AhFUIUqOMwy/SVfGT9b3RhOWUe9L8+Xp3qce4eOi 32U7ntjwAZ2wPwBOpOP1eD9+LAQzj7PlsKQl7f1bsJb0/BOk5IW9bygHjeg3b0Rk1u1lm6Do s0uzq38DdET/nHE/rhu0+D3zTYMRZAv0K83eRm/bObZDUwTvXs1jtFDDHP3FO3E5/+vDZHig ayMxom+UVDE11lj3EUou91q0GvhoQLNbt1/T8DcymfgI98P7ogMx3X7c0prOHjW7ot1NDYfs WQHybUPbeMO0ESvHwm86/Grhd+K0AStj6y4k2q+vu3C7/bq6CxM0rtfUgkDjj2bXfFU6aAGt 3IeK100CnbuD+ozezu6+WeBb5Mz96Zukatv7gOLz/kyBDrJIAv0Zf5SoP6vZFYEE2gD1mHYz 26vjRTSC6BFrT6h66lb7IMVLkGJvksDNdFlRuYqias+26tCyQF5ykPQjza7hDYc26M9oGu7t QwrO16TgaBrQfxcoOd+QkqNxrYTXybozmr1A1lf6oDVJ5yCq/95GUCYGZGh2qadAS3c5L6g0 DX9A318XIjQNf4eHumnDBU0D3mTvyRyuQjeRIAiB4Y7BY2cd7ofrvJKbLnbzEUN/gsvH3cWi feFjZPWF4f3wUb8fifBfXByBhofQLnzUt2Ho1xRKfPOZqPQC6b7sPqfZlaXK2qBrRX5b/gN1 2bN1ta1TNK5HL1G/8d6C2mtLx2L++modc1ULCkQXFlL3oCrJnvbOFIGbkTJkR69k26WJINDr VquSPPlAhhuBTi0RAqtiRyxEtaT5hA4zdO29UwLb6isHy/+Py5hIhW3v1ns7TtNJPPEMKYMa 113YJntBi9OdSW3RNPyM+s2B1CZNAzokhiYZvhHbA6IcKJybQGxoGvC8ntQ8X23sWHKZ1Wsd qi3N2Fyu+RBUV3sG2Dofn9apINdObK9VKC28+jomUADbNJpkNdQigY+5oQlbO5LlzNezzPA0 gLwiH3N9CPRuuHgJ7d67gBvSocy6dREC80ToWdWHXfHy73VM60pjEpVc0I/GT+jPpuqPAdfT 2bpjwDHj2mZrHm/E8r6LSL1gGwWhdasvJzmiOkfUzUyi/mjX5KXWnrV2wbvGtQWSZnc8AX/r /uRFNdp9znEvUAh0LaIh/DQcx06wtxuJdpAeP0R6oiEH0PMmoicmG3MJRz+sz0h8giRDL/np erxDTW4saTKEy0vrsU7NHf8kI6ZjjAk8T/6d7h55D7ih8xYuRt/FTuvUefsoOH+zkzru9S10 bI/cU4i13ov/esX+CXSRuikT7HO4FHiXxN2JlswIlUD+n/i7OiKpY/tFnC11PAI/dReAv5fQ paAklma5iMXR6RKw8wTHH91Hna0RdQ9GCI5XdidJsooh0x+Qcdd6AR8R52m13k4nF3WXGqgU C/lFPiSPG8+EjBtGt2Qij28tLNt//oM9JQJa6TjadTX2IUpIIv0TK+sPJwFpJgqxO/yNqnCs bjLw2JuXqKfB02/xQi5UzTp+gan7Cx1PXA6cv8Ty/cwf3Dg+ffm2fz/TfjvtZz0kTRD+I08Q zGt6GR2l5Y03Qur5EEiOzr+EHx/j0GmOnb5f/DazvLgNfVF419GcVueVdrCxRxTiapDO61wd 2d/+Mxr/+KzmUSeNJ8BMsschCLU7caeT+boHNgv4Pheaf/y5j+7OAv00Ix8Dlq/i074WPtWi +k4aA0Nuq/elh6n3YSM/8zB3ZUtz7ncfou/jY95q+SxA5mpWOCT/0MmUYWb0JDmqcj4s18dx q0932ll7uq/GZeAWlLoG2WO/omK8wLEQ2RFFM1W/anIohPSqR+QyOr5ACRc4/3+E5v87+X58 ETdTu/gQbrgv4m+/dzGjhTD3db1H+V/dydeDephVBdvNdv4g2Vg4z/IKGZGJ6CsBlmnvy+VV UXkLpfIWsfWlKPbE8nj/UIsqD14/K50aw1FAeWrMYwG+j5E6jVyPh200qu3Y7VVJdnlS1Nwa YNBf9jKfO/ow2b+8Jc/nqAbYCX9Baoe8dO5YTeIp6A66P429THbUemZr3l+2l6/FviUfR0J+ PQ2de7Z9BDw6W9XeuxrIRBsHrFbH3uTGzlf5zOtXdf6Jlb/RbkXidnXWe5xdjB+iPc4Oxg9R kruMSOV8XWKRedDaGzfq3/VhK6FRyhiPrsfNjqbQwBPlPeyi9a83BekEoTQJtCKn5PYkN7o+ tA/T7BoCetL38M1xzXYNWqOAQs0uTEP9Yr4KYrsptvPURpm+uN5lp/KL3+RbGFFsyYvU88YH uCPo5d4tK9l4y/2yn1vP8L9cK9VowBEWElfFNX1u2e/9y3qffNLkDw8xkXG0PmQl9F+4tBEt k4oIxK5OoZw6EEmdHwXN13oQ/7caEP9f7+AmdZi4Yh07ZKg4X0X4t+C0nh2uBFGZy1D3fubw BVjUKf2lLaTCM3Zw4vA5juhcyrnwl8i07KYyFijtStz5c+bxH2Xqx8Sqca5D9ruktRBymif7 +OetSluGcSuCSbNSkDY5ozv3kz7hcU4+QgtTUe8HUYx/fTgMuZ3vMBEprdU8uZYak7DUuGg1 zXn9EX4unrHsoiM+fopizJEATmUrS96ta7i/W10c1G2SVJkYybYGrbijRE6OgFrtqgaJmeDj Yjum8+NQ+6Sz9XT/7Rtc/ixn8ieR9leqAix6l/Ne98A6xnKVq+W1Uqf1iCSPXz4a3NkeWM/d yPH1iAfpiyb64jRvnxVsksS/rHENxhlfIobKXyx28BpIXrSkY9QrzUjOjSjk8WT5e/RwuPNe JtZwaPrBzBBDJjwWWI8RvFd89YCimphn41qG+IZVNHlw6trVpPfRvS669mSYi4oCTl7wbI5d QfpjCl1pUCXrxBqXg2zkPc5NR3zyJV1ctV2wWlI2xj/ElJxPBG6dTwx1g1lSQeLWkXt7Fzvy cowxIN+M9ziflskvEf2xnwfgTkdLRGebND4xHI8SjvZI2Xkj4chMInhi7kMI+i0XNC+tkgQG OWzAIG01yvBbSWPw2viK3Yq1fqeQ+L4E3sl633XO/iWvIQRPqiEUPnYrDiWxL2N/Avw6d3ic 9XL13gvhruuBMB1TfSTP+fmfOjr/83vZcQGk+p8H2HJCh4oNX6gf2+nL2fz1OTtL8RrdAxZ5 TPriws+Cv/jiWtQvvExH8cpON9mHMq24sNrH8Vte7Fsr8D2SecvlafIrfeSnV0eqc4odmbZN Om+9wsfvz4ZG729n0pNivrXQcgYzdG2TT+Qxe27v+AosxcvTHrTxL9DMoM3mo3sWKerTCh5F 7uUcK6nrcK/85Su5Znga4wasUnz9IkUdg/Ht8f7kcAjmsV2tusNIBWn/yOVbmyvmnoXeoe9i 6yERmj/oopp6IjfAOJihgpdofEnHtwhncx8IiKGACGdTH+BJtPuDTBkbVOlZqecd7/t0h0X9 aZX+LFoB6g+rdF0wCXQ8E0r1gxakslrjykBj9PXS/TbONmCXjkl04mMrtGjHuAD7WLIfSz5E PqPQvZO3vRY55y+vs3VzJnF2++Q+E0maAOrHP2drpIcv4SmNEWr5JlGIuxkbcA/GeJ5EjvF4 unD1YMt+/OvZh39dbThB5Bt/btdHl/h5uN0JCiH0uYmtMGoangXUxvVQB6Gc2O09a1X4safs uCaQpZqWqGlIxgWBJyLhLy7Z7MNlogSYx0aQ33bXsUskQl0nEOVdwz3Oo+x6QJjubtjy90tM V/CWmZgU+ghyZ9fNhNn5u7SucLfH+RlLT8lm8mR/xCWdPZhbaNF1JTisZMlC8y/Nrv4bMgd3 gbxuyRzWJeChClb5THbz07uCdMAwaoxXU01qav8WF9JKEHcitoN2Iq7iFszlsLOqZ0uC8WOo eMdHtCLiwu+zHQYcEzbovgeFkOT/tGKNS8ABd20EIQaCjUp2e7Dkjn9fltyvEXUglUSgjs9o 2kD17lLUO9vI6v1XqjfiOpHhZ58sUkaMLKDjeBgq7sS/45p3awW/VTIKPQ32um46vpiBy3oT 7T2i5yNqmUbN2+p0Z3uks0fl/Ezo3C4S43icH3GB5FeeoYe+6sCPEDfNU3vmq6YuiLTdI/Zr UUcmiP3cC9Qt6mih4xWIbiEiCR0pl5lIF3eyUiceV2h/3IeGd74DlQYkDudHRR9gDIjrv2WQ iO7rkHmS9C8UPFvaiNn28lzRych5/PQwecqJIHm2UuG7Q/RQKVG4vqcqwVIP8w/dvBqN+LF7 8pU7Vjyv9j1StR8Q+2UH1vv3uN7iYfXsOcbqvVeuq51xngn5aC4b6KI1e7O5HmY/HkRt0bWf 43MH5vBdYrtyvncT5AQSf5JAqoUe0jGeVkP+fNxvZTgrZDApgup1xPmk+1rWn92NBYIKXLQG ZdHMV6UpmKRPOtkA4TrkgOlGoMaKUr0Lz7HC4MHOJKKenWHBc6mb6bNsjj7RQkulU3VbHaC7 tE3VvaxpuJeGpy5PLU7oE+vmq2j5wIVnZt3+e5POmVlOlx2PdjbgLHav8FKEwPobnjZkh2Sn jRmH15nTFLFZmce+aH0LFr7+ct2UAYLjY1BRpuq2M29O77CL1Kd85gu5y/Q+3vHQHxq7YEma gG62856MFXEBMX2OX2GhrofwcdNeVuZNn/mnj1KZA6HMztfkbBpXCqlWPKvGdbMv4Ar4KN50 sv/DUjzUie6n2CduZzcxB97/jmkyebFQTdezgZfUXzoeWOYqTB9Dugzzf0ndw+//EscrpT1D 8Lv7azEX7/EWVakR9gFrb1pGBXwgZqinpqvd59Z9F7iesYxYWJGfHfKGScHRlTT/f5kvkuzD KuD1gyNFp5Fpz6LzNGbOn5h8CESVZnOzu+3eJeH2h5n/RyrP+rJ0ngbFzIMOpihm2K9w/onG ZvS/5s2kIpJexolfNJ3Ei+J3aAQ6F2N8fiLQx5hbtwEZPxsVL8cJ/OqJ5VzyXRTzobjHPLrn 3boG6FG1DW79RlH/2L9eB7KhcizqN6CPjTa340Tyh1dyZCY6Nmp2qZNx9P0NvI43Thu86jo0 225wzv7c51Md87WzGZvH+fkJvkhxh3zHki1ENPx2Ba2qefLVbn2XqG/As24H0jufwZOwjgZP BvZ2MQIvlFIfdBcdVKd3POijc7IQdTKCSNRwMm5/ekcpcSBlyldDKXqQAgfTO3Io9YZkiGsQ HY9x/wjct0CkbwE6nwG6+Vc+YqtJe0/yOGs/k2asNtazovfe3Uc6Ydl4widf3pJQjNIbGzC8 vwU6zwJtT55cDXay/9vGrb6i4FtLnTPy7cP8szNouU0W0tsz8PlhEzOhR4XpNhx6+kkWSEvL ffIxyvxltBoVYi9CvaPzTMD6IE6CdZHeIzZEpelFOs556xXuCtlX7D9GihX+4X42n+nFvxqt P0dRJ4jGjlFD31n8Ih9E6ESZCiro7qdcGAnKH+nPP4HyjwjI32TuPT9ff9ZHen+w0vr3VoGu VB6qkkzR3Eele+EEvAhZ2Z/xvqZc77nMdJXKPgTGK5g6eSHsXGaGSuXohif3fxoa7SOmDbQP mzbYPiRds0uF24Dy91P/anvIM9+XemHlrZpd6T6pLEdM53C+fxohl9/3ntQLq/457oK7zdkY 4dbTwvX2Mt6mLbiSPWkM24Gqr6btQNe5lsx+KgFElL5LOub3dg3Obrqk+Ym0CU769c/vpYYa 4G7N1rjiffIC9gfLldf9PvuZNA88dyK4f/7SQmcsDgWuLz//ANL1kV+j6OSripGtuh4io3Pj ff65BMqjYvxsDz7m0GfHLAnyT1fozaHy7g5fXltgeefvk8u7WBymPH5ebwy1v4Xa/wU6r3c7 Lxim+QbO3+wTSMUhNXKpr/hL9Z+/IQn/Gypu4wuyhM8kp8TyArnae6CayXtryZXPu/L1xSIq cKZUIC1nPX0/ry7x+fGqQD7fKPH3eO5EYQgVcfFXJKGxr6eet9+EbZ9koFkvYjPGIG8WpOra 7VG068A8oWz0m8wmM3khq8Fk13PcIBGf+TsCdOimbOA4x+FklJR3JQfcz+bPT/j/0uCTT+0P xszoOs3d6jgmOt/zBRT962WI72kezrM8ugwHs9OQRee1T8LDTWLtafKHdoOkHD29mOZVZkAL C/fZB7vOOb6Q+ZVTRfxTD/PikCOZiJ3Gj46s4haWPJBWCPoiniz+teW0kUP40aNMOE7PzleC z0Pu/vOb235Bi+BiLtrsg+jf696wYQMI//NfeUtqsLlyn4cWP+o+0PTdoMrW6Otg6guqxflv 3Pubvu0LIxc8HWn6Z193lydmJzHowab2fuPaxrW4ewZ0DUIfGWsFXIlwZCiE9qdBupvmXhon lQvVJ4rCrP/6S+gMKuHjxVIJUfxgMnXAp4rwzNAVhosti5ns+BiGp84nwvoDIfuZKG9RNfH/ c6hXRKIJzRdoQoUEfAdJdv5M07eDKpuRQHjN5gWi0lfuHqKS9/xX9Hu66VQEtBZRCJMAr+hP a1zoAELURctWIEotCrVs9DIy7vy71Fg97svnv1VdaLowqMl307gL0hfPurthXkttp287/y16 G/9E1YQ/uV1NtV19m3puGqfrogTn/6nqbrrQd9wFj3oLfqHpVL9xzeOOuLsgTXLLOJDlh/Gj xSp5BvDQydAZwNJFSPDT7AQ4925wmMhP62HMnwINE8T5gwv9lwoT0c5/o6BXO2JP9OoiOp3g 9DpG9DrG6AVJcDFdfwxXBf9BM4z2QbrD9kpF834exBa7FobDkjDEu0qjRHKVijd/SogaC/yI ojxSF/nf32Xk2I8fCTrTnCt/KJp9iN+GGqm4fWGAomi+f/H6Z3y+EjxTubQgoDzpem59l1TY e/OVhQWdT8f97Jfvp/Pfz7D9bNx7kcoesogEyaQxVAndWVkMehcChuiUuwtkZbW71dmqDtA3 kB6ZelzZG7nqDtCi67gW7XG+fDJofq44j2qU9/vF7ItMiJL2cD+UJN4N3wAZ+BsuWFvKpR1t nsg1X3GBD3z+z4C7O/ti51seZ4+sCkSeDFYFHq8gVSDcfRaFbBHa21CJ9DE/zbrYaFyW+5Dt Pypu2M2aT4t+uhOahkT00w7zGMVR9djlZNEhprh1x5DI79JSNeFwFJiai3MYs2gapzss81PP je4mzSMqyQbz0/bfjhKEyRoXepberta4BsLvb9t9vv6aBpQFYi5MN9pdH7pTNK470HxL1y6d sAtoH3GVmpHzKbpw1zEAekirQDH6s9Db0enKPXhhLNTs7FI2hOm8rsbVOfAD3IZ3W02r9+sn yY3vyEtGjf4VWFofohHz1SU0Svpyve7+zu/Uzlqvz3EAHYDpT7eq6+nDbF/lusWSvZj37yYa sfx3Yx32OD8KZh+6364EF4hpTnQ4DIdhkrtRdXF0oRMzgTTGdk5sVmtnI7pc7Pgat6/10IT7 LjPbKN64i0E786H917GO19i1bOR65NASeTuBtyDQiVYgYfj4XOK54SE8N7JMtvToGEXbirGQ urMt1H61x9u/nPyfbCZlirOU+CbN4BeMdze7aVbP5/lkLc18mLyJwd6v7lMqbP5bc2BSvGBS Z3uIP+Vny/Bjrs10WsJbyEe8QfN8kjqFHH7WnundkIfkPOtu5d2G9Axq6OtKWaayXFLS71Ho Qn8vkTQlULM+5vv1zmOywkTd+L5S2USwzyIfu5tXUulbZFOBxJN8Fj5V1fss/OalSvshuv/K RPdfPSn56/KqfdxBl31Z3UzBvggwLnW3uM919idE7QugUnx9tG8+aWRniL4S8j2B2t6LJfJk JGshOwrCVj7hifItYdaHyec69wSvt9D+F+HXl+HnLb8cRPflMr1BjfXPHZ4rIFJPBZkPE4JR HAHTItoDIn138SI0e7ON4FGPlkiOM4RiNs0i7dfx29BqUUMcMMhtYl4Q0CYbA8+XMPuIIiPp P5vC2EdYlnH7iALvv0sQP++8uaQXJ7NhpW05v8gJRh37mNjkcyBBYshyJlr2YMrtG34TovY5 fzgZtFYsW0VQjjvuQ4sIpT+d10oR0y2/QHrn8KnH/+jRfnskZYIJx0GacOwXdfulMdT7Ohf1 ++0dhCYNuBKb/PMeafMnUcU2q1E/xQ1DEOkvzqUFVRxG+tCqLRm9LlnCyjusaZjATJ1RYv1t Idv6oyTHctgOIlnR4vwXNwF7NH9oaWqPwKxta2s90/ZQs9We4Pqgcv4i1h5z+dbOBsHqbFan 6ttrp4ME3KummBOd12+EQcOjvsF9wdmiBumc2lZ7o5h7GLRCFa1FHVY1ixFuFXJPRKrj2LpP QDSqdO0q3QnIl6pvW7fVe2aBxDFkmhhZLO14ElF+myNb+L5wD9kvSsRs1e0nMfg8Cc2xn0sd fIbUwftdoYNnLMJMd8uSdkGIpH0D+Kmj2BfOf5/zbIVsf4/+iV8wIC+4n8DO5fRGOXsmrRoE mstZWXO5/yTfDeBrZ+/sDNRgpIMxWN+FxNTeT5b6+Ck4CNy3FDuhxoPX0JIiFezcw5sCgnaD 7i2efgy8Tda99dCnGDWconbyqAEUtVOzBU95dr6NCbLuU3wq9T78lPWXGJGojNBSBMvX8RCb knpfn6dI8cI8SvHYvTzycWXk+nmK7NN5iqgcRQrfXEpRP4pHfjdXEXlqriL7ZW7BXItWRbrd mERPtwVX5eIg/J7msaOQYt2gVN1u9zlN/QGWnMsbbzblaqRc+zDXXbk4IjWKtfuSW5KPDrjM v/IM/8qZfN6No/BOXEh/JB+/8pGm/gFIsWpAqm6/pr6Mf2Ol4H2b0rdRerJBfyUfy28Taw93 voAFPpWnqJg7jxEtgX9tjTKyKk9R60ie4u4lihS3LWFE+4Ybq49URg5eosj+IU+xH4UfxR9f dsz7Lrwd1x07/uFnHV+2v6B55AWeapsi1QnvZkp1gqXZ3Kh5rlnbNkmFpdp4euscKf3JZe1e I7yd1LXLpc7mqXIUqbzeGZTKi2k6t9P9BPcokN94D7vyo57GMPtKaSV4O+DScfEiK/C5+cjb u3gWz3zk7V2a+mM8+iGKfptH11D025we7/A0FYsVH12yWEGxpy9KVsud9dwhnk3eplGsb9A6 9deF3qeX0fl/kYyqFIPsXfeiWUDMFz7ZhfDLcwL8QS4g/+qF3gVUQDoVEC0NPT2LMXeKInfZ HH4MqVScvcj1oeNGMasIHQbQ+gzEtWYVkWK6Lxqd/oOGCEr+u/+S7yEu+kISdSe/4nNMyPhA NjRN1iLi1/lYBt1H2Pmyx5nxhSQk//tVsJAUgcM6nwrWRwq9jy0l/1eP8vtIZAlPn7oFauTt 6yMSsONhYe7nuIdKuPNR2T+q8yOup9ojfG0BlltHFgVTKHM2tim6hEDkNQ2v4GiFRNI04GoE ZmrCieGCIilHvJ4UoRRIxauOoUtno8mG1yfTVPq+3wvpRo/T2M4HnI/lAcdP40mnGKWGZPFJ p2RtmlUkrendApze+bDHOa1dIvTcU8GEjr8XHS8q9A/s+Os/GOZG+iwNJA6512bLd+z+l4XB 9BmTzdSG9zQNq5iFUvI53ASGqDXzmCLkcXgV1kbebfNoFZ5bvp2lGnALb/YRFbKpZAtHIUmz 2akNvTe1bW2imNuu2p/avHYMo6eEq6h7L/lQa1o+Y9il7jY2X8s9ixO5/ePaPJZTrnNrr4O5 nKp53Cfug86Wn63ewz9wXSFMZD5Xj3HuU59I07pbT6bFnlg++fiHJ78CobOy/OSx48s+Oq77 6CQdyji5FCg9niRO4wmz9rizCpj5JIqnVbknnavhRZJWTzc2NDoWMzRpb1SkyTvO47Dhl77L tPE2fh/IyeMns6PZJz0nj3eKJ50WKAyLOrdPB8KyodH+ZoA+BWpuJEiWzl8pu1ZJSItPXMQ/ T2eAFP2Dyxt+SDF+MfLB4EekIxuR/oP0e/XovZPanWuY43VccmiCTsvD7HApjo1/moMdh18S pbgZgOhdo/f5lD6hvsjFfqGlOWzWGPYTxX7y2U8R+2Gi5DHlfX3e+xeR/+OH5flUNE5F8NJB yetttNS/y0hptid6qxf45CPmEP5FEaPULdiVZ2uhw39oT/FP+Upk4m4MkVufLlD6GubCmqy8 RmSxNd6syaIu1p01DQeGrDTJ5cAKHBb1sXzZHKYWzNWi33bznrzAK669qUXyXT8xkhP75Q/7 +OUC66ROmcNszP6bLmXP0kolnC8MLaHOIZUgBpXwjr+EMVIJO8OUkF8vlfDUFz7//UNQwioo wZ01lrW+PL16wF8G5O56VMq9lbFXjLKEO6mE8XJThO6H0nmD8gV0/rdB8Pv78A7MJy6IIi7o NzXCfc7PB/flER/M8JqKfPKGyPEC1qKjC2kYT8PD32kB/S34WmIlY4T0OtSHOj8KZIl+mTJJ M4kpZhNT5EjkXVAQSt6JtRKB3gxqoNg0uTT5quGYMCWkeaQSWoIa6MhMJG9sUAO1zZfLiIZm eVzKfZjljlHeu7KZSojraL9M/vOdZxcF3LdysAgb5h3QvJzrxvbh6wh8f8d+i7dsXsBwvhA+ LK5S84O6qbPpkHiwmZKoP+wfs2GKGj9fHpP0bfJ5ljRpAowWuzSCZU3ECONsWkB5XcyahOvy r+Ly5My+9uc8utNQYKyHRqIYD41L0cxaPOpkduzx2lOat3WnygYLUWVk73r4eHX750vHRB6v PgVCm72o4QW/sXU6LQIicr+hGcIxWt/UNKCF0LnsMX0dzG86W2vszmFHYIBAKr6XYo+D7GIE mtkyfzS+jW8Q3U7QIMLNnFn2N3OYaRPOYMXssYCMu18IticQwfsQP1cj1gbfEPXWLLpVTtOg pik/IyzjAsS+NS+gpz4hMcLXSjaCHpvM7u9BpwtZ0QpZT81YH1BIW51UyH/CdPcsKiKGrxCN nckNLDv+y7X+FolfWGO+jWNM1kSW5uglWhOlwWfGLHhmQ4/ySh+G0PfzfHS8V7F7dx9oMR1H +EcMgR8pYB/pOOk/CCjbO7HxEwehr+cjo7eto0uwFPdcNMwL1pi6p9OSStpEGj5vUvpHoLXL oXP4AqXjOzGbMKjLgJDs6NZsuh+yNZvVy7/glz8D42MUITNm+C/NUoz37/jxvZPw1TJ8UWJy +XE4NxjfDORmy0TXOfuYoPULv7XMdTMknDvdPV7UMuDrknP9QPsBvqKMV5+u/2Dr2pD9/sPS 5s5n2HVgllafceX9fpSgUKCRCsyTClTOmhozfYpt81O4UqDY9g+yl4ijcvqv5edZKphH9vFM 4fY42/4uSfzrvvRJe3e0Dn8BeM5N6VmusOf1FkoTtJ15VP9adp/TfXMC5GAeotiKT3odyo8T qDt73sRW4ccCEnN88orii1N9dHwlQGZx19o47vA2uu2eIH0C7ValMpZNleTlSJQEafkoHD9F YdBIdy6xHWrItDmXll5R4vwKa/1Whk86+6k/wQxzv8pkDB6DibYL/Gx67gm0l3Xg2mNuuzh/ sn/fNYq5347EPX01aRq+hWQ71iX5dr5pKhmOTcMhk1lhRkkXWEEeKPaFqeRkxu8hhN0Pk9t+ Lj1NpXEtoBnieM6QtJ6BAoLplh0jfNJ9Mvp2MWMykS03ih3Ip89vpDlgxwraJPEr2q0humAr tEoHrhEF+KdD/x+55P/j54Lfv433wXSZcrQK/tosUknF/uh4d+pEe7S0+PvHLBog0tEELz8a lJll0KoQcB+0MfwUc+833J87O36IBfsOBbuxcm6U54XRfw9GfmAO7UH+xeN8C1KhR+Qbv6T9 IGci/u7n902gP6ueHKzO3x8k5sW7DUB+5Hq9z2T55EtHHpvDSt2cwcJ0Xf5bIi1zgmXMF5OB LdLStkdoXB6B1j57IjQNv8OZXE8fdoIe7xfAC37ivOlpTK+OYV+Kn8MOnbDphKyY/DdNmrin AvqORWxFN/NLPsGuDzPB3vEVw/mNu5Qui7arHQ9To0ycrXGtwQl8/z4MH84RM5E8W+Gd+f3u 0Ev81NqfTpLr/O80UN0pvfv3dx0x3pfn0v73GqUnzxj0e/0kRxCwL5awr5ZvHRlxyq/3sOGt G8r3DuZyI1O6483732xJpqjSA+5/JBY/mR3cJHPvxmsmz7r1x0i2dPFTrFHsRLYsVQ7rfOyy ryI0A/wHU0+w4+NtV1JZmrvY2Sh0iiDmdrk+1DT8DR/1eIaI3Zfh/TU//nArrSJAgflY4Aw8 194426+kT8pWrLGdz6Y1toanKU+UaBnDdp+yRGY7zjJFer/E9QN9+7mMtEhuqZ5RJMmWD+5i xq36dndGkZixiDxnSPwWK1+PAOIGiNhvOh1K88sZGO0ePosiDSvlut3Hto2LZLq6smTlRy2t y8+XsVGhSDsGmSGYk+GZi4xU/X1seniOMChinRr1iWkgYtYwe3/Aj6aPSgyN04Iw9DjbV/qU luVPodi+keamUOX8jl/RpscxaeXpVfn6sDbGPaTH/uoOTNToCCipDfjd+6mOl7SIztNwBaQa mLADj1MCWrTDcy5Dq9a4luHxqoLLfv6X/H/NJv9fK5Xy8d5pgfLx0Rm9yMdfpPvlI907s4wJ RpCP0XjrCmMCpB83SUHZWBAVas+rlI/5IfLxW1p269zvcQpfMflY+2WY/XJ2/j2b7N8dyvo8 OjWwPu9O76U+TTR3sU8meR8J7FzE6qO/SkGvrMbGkGrcnMU9e4dWQ9r/JeT7Oki6e2rPehvT ArSTP+JARQc3357Gl/LI9X6o5oEd9s103j3s5fxmHKjijv/QLEyffEg+fRzlXD1WTT1HH8Uc h7q5e+hPJnCVg3XYocSKW78IwGl6hv8GOug2YgYQbPWL3humkIUAXiKdKfuu+z6Dupa8/lTE nD6/O4mvkmH3M0EP68B1uhB/Cxd15P/BxvRDsYougnGMB83wNJkpEdk3f0mCNEqpH36Wivph FemHVb3ph5x/nqaP1NsC+Gd8IP88OLUX/lk/g/MPXomFixhFQFK65sIRTdYE+mjmWka6BdTX FsQ/Y76S1YTTwfzz91kS//zmS8Y/zVxNID7aH+ovGvWfTNJ/rLQ+g+sC1TMCmu++dFZ42RS+ M6/n4m4YC9B12Wd53beT6A/t/9OZA3fpfQhynHTNqWyA1pkYvNd5zo/frYTfUKuS3iNvD6T3 wCm90HsI+34y0RsVs1xQH4Hf5yF5mQ+fYApL/gH9hM4PIfSDGUToFo8z56sAQofxL1c+i9a/ HpDw9w6eHkDfyzNZmf1SSTVntH0H7wpp8abc5h9daT2ITwk+S8N+djiwn/1tRrC9Q1j+PZpB 8s+ipOeBcUHyb3Jv8m+qgp6RRE8HnuW4JnpuDKHnbekSPQ9/2Qs9d8vzY/QsMJQqcckcoCi9 NSNYUYqfQKPcyQxcJELTO8XKC1sXisZFogy+SBQFLzhVymC+TegaZqnwt2eSWBwcMIBLV1BM kcaPVq7RjZvBKpY+lalEkd4V37HL4okCW9fz9DCHrhknj8w3TySyKzZ1vprOyulATQgkZYv3 prF+Rf6D6T550f/oeKajfUbE/v5LJAXXTqN2z5N10jbSSWW7NcPtbKsWfU3QHJEugZ3Nqp+p qP7qJDKPc7dK65GEAK4/eJ7MX88kqmL3kx8R6k6mczvwtAhbgvvEuCipystlRf9fp7ChjkkC 4QDje2/KlCCNiRNq3ndB4WivAZi2pqlpGUagv2mRqpt15a1pUe7XP/6uNS368ol3n2lNi1lZ lBId7j4xOo82DSnlwhVT0Fe8r89ENnuqGu/zpLA9+NftGkPngClkTpS4LrruT/lf4+HmtBi3 B0/+uveMp8OVE+kopXow6FjNfdxbJtHhw3vhVaQE4hZy+cAcP+zExKIH04y+IO7BT5xvG93F wwcMaPY0DF/98v1HeSYqQLW/af8IVRsLcuueF12Y3e3BVR5WlJimFudEqlrcLi9pgM+7PWfh YXQzPELx0Eufh5I3pyx4u9UrOp5vOhCj6hZ3EvZto4+eb3PvOQbJVQdFqtfo/azUAa2et+7+ 3KId496JDjabPPhXg7Rw4ZOqjZ9RbYECPF1EOMp+RPVXMfd5KCX3+QEtDFnPWzP+eXBPk7gH MzQdHCimRasuszdVk9v1A9K7a/R5wBVw2X+Zvt2g+YPmoX8zVIAAbhdaY6q63Lqt7tbzbeKc mNHnVQfcnh6iwlLCG3MNv63lkWxRv1XcwzLGAOX0W910JlRcF8vv+txzEQvrEfeQ9YurEQth STyNjHL0hm0zgD97Ng+8PmvidjF3a9MBjeoCKx/wdZHTkjZAaV3c6P3uPWhYqro8gIJFD/3l NEhWbcm6BPndO3cT62mbPPgwUNyDP0gINERUHSWb/bbRR26m77r3TMPGaOFYvHXdsWfqKpsO jkACUuOvG6Pqce+JJH6ZRtV5g+gpevAXaTr6PKPn+UyR5/FMY8TxqPu5dXXiurGqC+496JkL aTt6P8sw/I9orquva9qvYSUjKevYaWJWJzFtvKrV7YqmAAxGwi2XCedpmLL36FK3uGc5fW0g 4OlKoy5BmXPrWIxYMFF1xL0lhmJYKYgE50Jk3PghG1eIOzGre8vvkBcPjBDnTFIdEbdQmCeW F+fCh9HdQMou4vs9vISGgU8+8MwlVjirtbhuslvXAJyrewNPT+a+4d6Dh7ihXWsbRne5Xdup 3dIYW/E3Rjl6Tpvm2Tzk8VlrXnFveZnw0UCz7TFizY+6a59xu7RUGcyvApIYCfOtNB1rED1b icXcgB9GMBbDngssNjryrTlNBwYif1Fc7RsqPPcJCI4+MuCgmNvgeatfScLPzoku5OCmg6M8 k1JU0F6j9c+496D5nJj7zIC/ih7M7Gnon/ZmWqO4J5qqPdzteoZ3oQ2qv7qboO9/Qu3U5GlI nX/vfbeIuRua9g8V96BgUUH33eCm4+Oju4A5XBsZT+2pYK0LrYNPAyhcpL+ezdGvte7qEF3Y Jd1bHiO6RKk+wfO3HjxErcLjqKMPsJaJopaBAGjeZdFJR0S63rnpwCjVAVWryD58BD+EnK9l MqQwJjOCYdB0cDhUfPT3yFENhAGd0t6Dz25PHef7AU0iyRbPe6nrv3nxmEhYNP11qHvPQ1jF 8+49VfiZo6r9btdq6sWiZzXL2+XeY5fk0P7/fnpG9FQREaNE6mlAHgpgl0UzClmIQow2s4k2 FsJsNmFmIQoN/+bjr0aLxGruLVWXWYVBtFNZupehT9e+jH2oilMZeTflSP+7PxAdL0MLiltQ zgIdKQFyFt1VvQXvJha30Ic8FawCPaO7ifEfGfy3Hxg+0Laeaf1EJmSgxkYaK14W9S8Du/Ba j75Amf4Rc68OwqG6HnV/dqs261uIaw7VezmXMcsVnxMpJXBx346//1b05PAGhfCzhDYItp1L Kb37MgiZI9i05Mr6rX49L313USSjfPdOckm9k3J78Hk4MgThQK/n21SfgEw7iLlzGGMcjzCX i3tiiDGGqg66cx8DsYSNSE5QUThjL86nCj8mevAhucvzWOqjObd5xD3Ir00fRrk9OYjl98n7 sfepqQNFZ6RegD77WNP+OCAZ3S4NHf1AcndyUzIIpinrzz3wCO9fB4Z5YqKB0bHsT1A4xzGh H2/4VbV7ZxrVKZ/qhM/RIv0AD7YkH1F9knwQahE1+etL4h4v9esBUAv0CYhlQW+hEdIzGcv+ 3tOgyvx2LzROnNs1iTo0cJ9uu+iykBTcLtZuT+5KBia0sCr89q9fzBW3CMQBw1S868HQuWUi yaPtogcfkruR+bZjrQYun/unc00HoqE+ya2g5WDsUdAFLO+9v1fcE0tthA4CRcf2Jg8+DBDp J6AyLWufG8tESdPBOKxMEa+M26OVqnHh1he/BZzcrjgulzayO8XFPaRO5G5M7kKBvBErU8Qq 45r43WFxC8m+/dFYmUhemViqzEbREytXZiNVpu+NG9RNBwbwysRIlUltO3ycsYx7ZzRVZmOT Bx/iRPoJqMzXv/z8G3GPlvhrGPLX71iznKVmiZTq0/PQtpsALRjHpWYhnxmi7neiBx9Ys9hZ TUwLfrdP3GKnZhmA/eo0aZ2LeIY9i6iHo0AZ0MPeMLPAMmfGj/tByjwSMcFH1ffiTkx3/tCA 5mRQ8OJYZ3zad9ssdhF704EbgAyqy+c/GfCJ2yMg2k3Aoa/evPl1986L5JSFknnweYhIP55p A0VSslTfg6Z3ZMDl5COgg6RuffKi6GEdbpBn0t0oT364xCQo/gLSXck9nobIDxYvMYmkHQKi MO5iU5E/pQsi+VViuAKWmz6KekL0RPmx/Kv7e4bn2UuE53uptT98ByKA+sdfh7j3eAm7KdAc O09fohmYB39lHD9Z1uASPeoAHNs5ju1KHPPWbjeLHq1PieMJjuMJJY7t34y/DFS5HIrjMQnH mFmqlwg7dH+DOsFq4mdSUDz4jHx1HodyekNEZ7w4JHKeSAkBUZQc2NtRgBGG0OjR1OiT69cW nufpOJ7njw4AniZvPedF0vlhiLmze8oewM+9BR0SAQfpN4tbCIvazapP3N1QG+hTm6lv/OnQ 0dvYpKfpwBCUevioSo8EZdYTyTjKsXlAm2phdHKX+wiQ6hefPtwp5kU17R+kOggdNjtK1G1W Zces34dTKrYgfyS50aN/y+2aTCMTed3x+ye/Dp1daXYtiHD/tak9UtUKr32cLeqmU9FN7bE4 UEwmCcucJrmn1ac5e6JZUY5mNrXqeKUb7xJ8a3eawD0BcUd0n+Pyxk5K4uxm/sP85xthbr4v me4/LYZ5WSTt32ke/x3tlsCkOFp0RDa192m6cKNqgdoTE5na5r5B88hbEN3U0ce939k+U9Pw CCauhZTRqlanL23twL2IwbgWz7SJ7GLiSGdzLEyK0NVHlDTHzQKknL6Za3X4mVpc/B7XhRyA CNV8D3GXZ65LlenjOmePY7cQ0MKoszEW58ER46RVUNnMDUpyRHdGY9oLzn+mOVvTvFpeWmfn O4SzL0uNaLvmAEE6D0r+Zw6xFebdE5EWL91HK8xQd4/uLJoM6doD7Svcbe5PmnoinF/1EdUP N33V51OvmNu+QT0ww3kh0nFK7Pfu3QId8mzy9hnX7Dw1M8PjjP7aJ5919T5zu8+nuF6hXVrS qLudVmrPKcrPfDiSPrBBPQVKj3aclg/xh94HrjivkXzOezaJ/F8ug9ZZGIVelULtIdGg0fu6 FmWEx1n0NVttGZToQzOEbLLkuozMkxWFRhxZ0WJ2rKvRvlvMjqP1VopSi9laWn+jt8jOZ+X7 paro+wuXcXsFi+z/1+JfY3YOa2UfzRpFriSfJLWEuf/Fi1bkndm7bsY1aszZuZfWRwu9UVT+ +aXM/vprrXxtEtr3jZKMz6X9HNoePj4Bs+yjLFqPs4fXeMANrJJZVGVxPC4vLuZx1T/DuGiP 8wEe8F4CBsR4nHHfsIC/DMOAWDGLqJI7Hm3MiSQZVFAmTzaGCorzOKt4wPUUoBWzonDl6nHs RVmx5LcxC/cpYhGdzDExWC4tHD3zDV842iNIC0fur6W1RNcZVujjsVhxLRrFs2Igf/TeRrZr G8kK2s8LCpd/nj+/x/kcRL/TLEhG9UGp+aZhnD9HiD+W8d7yRFr/XcJcROpOeKffxJdt2SHW F25kG5MZYzxOr1TBojAVtHAE/2c4EnUHb4y8W1EpOOF5UotX2utPi2ljmFkZMQIVITVy0Y1s OzBCxHNZJyill+1fnmafkJr8thvZvn2GWpH0bEBSiRl8cT7yIZ4RqUjaFZBUYpPDccw4ICMK k1q402DkDjyezsXiH+KI2zDFap6iKjCFB1Nkx0AKLgg6broU/vwWWTOduZ3uf14sGR95nFFn OJVfCUPlNziVs7FHdHn3XZTc04pOez8SadQbj41SWj6x8x2F3p/Tt8oWY++ayH1hXXer0rYH sjtX48nboyNw6VS7HSJxzdKdH+N5Mu1V+GZ+LHVirfjkCR/xWBxtJEeTG0RukMySxLybyTby o0R+zGwxlyWPQvu9G8skMPEB4e69/iZk1InIqIr7b26j/Z9FQuB9ps+24tKliOLxMWy3EHvt XTfTVkCZtzrOv0mRfCtpW2ljIMbCpcn0sSgPSDSk0KOW7KxofR7fiR7SzkZjLBXmy48N2gN2 /vlraf/gkzPB+wffjqWRzPnV13Rdp3J8954ZR+2/EIfoSH/N0AWOd8coRc1ipJqdiOeuIDHJ E6P8tSu8Ra6dpuFzWmifKPFSbRhe+pbz0n+vx2qPEanOa4eylzSqr0V6I0lSIr3RJlCR9EZk zJLeYvBt8lClEHjt1gBvzqu5F2TbcE7MGL+9vJ+MEd5gMr50q9I/EhHzsLI/sf3PsbT/uQB4 vDa6Dx3gjWP3dDnKQdvR7MroM0bb0Gifjtso5N7c+9woshFLo92F7PHUm7Jj3bJNpO9IyP1f 2A7GUWRTR8fBoTAHOp0XrdGduz3OkV6pFm0htTgJrdT5+3DygO1/3Ur7X/prwP/zkT8J/5dH XgX+XSH439gr/uQ/fTjhH8Hw70f4xxD+cY7VSvznIf5k3eUdNZLM7eezMbWCjYlFtOmTxSqV xSqVpazU0cAtWRBln45gFfLxCv0BK/RgdOerHucEuULRHcEVykkgV8+9nA/IvoXuPyui+qgD 2uN+ZX3S/O0xdwS1xyyqQfbVNgvtB48IbJI9vEl2epwZcg3yQ2rw6BiqQdj91EcSyP9h4TXw kxj7k/ipKPYq+Gl1CPIf33zF/tA6huR/wTXg/5fhPwn/zcOvAv83QvAffGX8+xP+3fOvAf9B Pw3/wzdcjTwKwT83/or4Z99M/H8t+M+9QcY/+mT2eLy6+Wrwj7ka/M+G4O8ZfUX8H4kn/s+/ Fv4f9tP4f9hV4B/1bQj/a6/M/6OJ//Ouhf9jfhr/x1wF/hND8B98Zfz7E/7d8wj/vgHjwSol /rn+8WBQDI0H+T9pIOD3L8BwsO/6wOHgDT4cbPc4F8j1sYTUB+c/nb/rtT53a+n+93nXMB5M vf6njgeq669iPHgjpAoP/qz38WDVTXT/c+418NPPh/4kfsocehX89LcQ5PfceEX94u2fIf7b cgj//gH8tE6Jv97PT38aQvyEdtxxYtZD/1s1o2pIIF9t53y11eO8369mdAbX6+s4hZrhb48z N5L+P/ca+Kkz+qfy0x+jr0a/CEH9trje+elWwn/o3Gvgp9ujfxI//aC5Cn6yhCBfPeqK8qk8 jtY/7rkG+q/QyPSPOZmdBuPb1dI/WXMV9N8YUoXXRvZO/1dHkf3znGug/+vX+cdnhjjeI3My OxaPp/dOf/t1V6MfhSD/jxFXpP+ZkcT/s68B/87BP4l/3hp8NfpRCP6JveLPzo/94B1DVdDM 5v6i4tiVfj+H+kRoXFvotIK/HjpRFyM+SNPpm1k97kFLc7Joi+Uzed8RVhmaZp+MCbabpPNG Mbg491WUVKVWrNEuXqPfe5xr5Rp9H1KjJbE4wnmcT3pxOcJvT4/rLaI+yls0gvxfZUv1gdq4 DrEiWa0cZmWNZvlrND+KajT7yjWaGxliT8vrMySwPrt5fd5guLL6DDobXB9xOLZQWP/vP4i5 Ud6GWPJ/mCUQ2eQqfcirVAlVUjmWiblQpXRWpUniGrKTXD+I6pPKl14CaqELbhfMkD8ooAKt UKj4QHTn+x7nq3IFEkIqcAA03843w/kjBv1vOOl/OskzOWcx31W1R9PAq2mP/0b11h7rB/54 e0wJqc5/h4Vvj7G8v/xwA/l/zgzoL9DhNQ1OgYlhjetXQd0mz9/9zw6gShX8+PBH51owxBsb UkW8X35AoED4Pa/eK8ruYwmpXtwwdjVUBus+kjxYUOgdRRXrl4krby+j3578i2LaRWePzx7n PhJAD1+bmHXR+U81xDn+hQuerIzCfHLGuGT9B82zBMF7F3xp0ZIPPxCEgox0h7HSbCu1mktK qkzW/CpHeWWNtrKm0l5pqKq0VdaUCxYKS5xhCEipnT5dO0+fk9NrGWWVNVIJ1pLEwMyJrMwJ pb1kFgpM5ZU2u8kKubUsrTbBJiQ5bNakKnOpoSrJVmGwmtizSbBWrLFXVJeYVwv6oqzEyUJg kVqL1VRmsppqSk02ody+IrG0ymwzCQVyphpzopW+ZzXYK801gsVqXr0msdRcU1ZZLlz5n5Xj WWwtKWZ4QmWLAyvLI4qRqEJltaWq2FBqr1xpsJuE3hMz6j1o+rHvX0X+JIPFYkuSaZQUmCHJ YrDZVpmtxh9L57CZrDWGapNQuKamFNvFaLAbtKsq7RVKAkNAjdG8CnErshpKV2htjpLqSpsN 6KotM1RWmYxau9msrTbUrNHaK6uhRQTOL3Myp0Abj9cuMFkpdYJNOzbfarabS81V8DJOyDEb jPjdoNZ9wGFymLRlVnO1Nj7BFg8yocYAEfAZbRXkuEJyY6VtBX4TcE03hisaEbRqxybfqbWZ gB2MgASmDUyEeCYYtaYau7XSZBs3RSjEGtvtWB7gEJiaf04AUldVlhK7Ja1OXLVqVWKZ2Vqd 6LBWARXNRpMR0hQaVvZaXSiYKmuYnmC7xY5/SvBPNf6pmp5gvKUSngYqaWEzrDT1WpZMifkU omizCoNNajeoJLXYVG2pobSCqoctbNNSL6xag/UKyR+UF9MkLE5ISMlMqKa/Rvg7MWF2QsId 6Qm59LfQX06ljZilylxTPkGrnWe2aw2snWxmRlyqAKYvXFFpsRBTmuymUrvJOFVbA8lt/qYo dViBQ+2UVRAq7HbLlKQki9lmnxDI5xNKzdVJQoJtZoVtut3qMN1iQZqW4p+V+McxHVsw32TF BsOCKwzAGBWGFSbWF4JIDJ1mJW/2hSatocpqMhjXQB5oDIN2JXRRo78ApI3NsCTBuIxaVXoo kR6qpYcq9gCtLIUQDfyVlRs2EBvok0BOmxnaZWyNabVd2VAoYauMSkbX1yBm2HrZs0AWaleY 1mgdFuj1JuMU3tUA3ymQk9UDOgL+dWiBMhSvNZdp7WssJu3yBNut+AH8DR0MYBTImwu9u7wc USfhD/jb7Jx3hDnQI6DtSu1aWQT5g2TpNVtuBp5tVlUltjfDWGuFMiutENyLVArlOKobNFuC QwgSsStx0Age0EAE2iaUVxmMJkFCsxhlwhr/a5WhxFQlSBjzWPmVxdrsBrvDxl+oGYtLzY4a uxRNbRwuCLsXDwlClwUGD7SCrcJUVQUDsWENvMxRDPjBTJM8IVmYOCF1wqQJqROh9YKrPoF1 wnmmlVioTFchIfEOo1ZrsNphgCRCaumfoarEUa14t1faq0z+d5B/5fYKeDcKWiYy7IZqC8Vn 64r40OywVgr5eYVFQr7BShhbTTaLucZmGq9l9IO+IRToCvPz5hXqKK8+vygvM71IJ+Rm3qkt rQBxBd8xcTZmHUerL8jhAfp8SpuVPidHl8l/eFRGeqa+UFeAv+n6otnCnHlFuoIF6Tla+Ym+ 5+dGCTUhYWLKavYpxndyhEJm2qFvwVMpDKS2MgfK1PRwAu+W26Fzrqgxr6oRFlZWVZGoM0De aovdL02mCEi+6QlVjqn+wGLs9hgm6DlXMjlpsgso2G6xkTCZFyg6mTQpMZUagJWnCBlVhpoV /r7IXuV+yF6rjXcWy2T29y3EcI3QmzgpyChEnswnltSaS+6HDh4YCG/5yAGzSDfzJ1EEIotY TFb4TBhBM+WOu+8WkOWhWolI00RAEjA0Ckzbk1/D5r0zVchialWYXsJw0Y7mWnFBRvGcwuJ0 feacvMJZBXkZGTm6Au1YlmhcsPCYYbFWrpSzKv+dPn7ZV3bism8mQCzA959f9h0AeAngIQA9 wASAa9AP/bpasQ00uWvWL4PzhyYhRTc0GLWxYsbAoZEwsJMIMzvCZeUxxaUlYXEymov9g2gY lNlgfXX1U5bFvneN9AGRZCqWO3fYNFxk90YL4IYaKfaav68sG/EPkwKUD6n00Nhy7AnFvB+E L0CeW1whCkQ0KgSSwgODvxGLSqwy2Oxl1dD3HNZSE83/ciikkAIEiW7aErNxDUlSm4kNJ4Xs l08TmIBF+eqXljB2wseqi0GJxnEIkKosgY5ZZgUpVQGDvlBigJbBWHqwGOwVAhNAPLCmBnq+ eYVQaCfFXFtmspdWBAtkG4sk0YeoTyirZkMpxJhLVxDlamC81eHoTuqPQAN9Ij0C2eGxGjT8 KvqMg+kYoYSZcscdqWGDU5IFm9lqTwRZC5JDklfzTJXlFSWQSFsAkySzwLKBhotiOinBllQj JbBJWMsimzCQAiWxToE1ZvldCzodvMpinivQq2xh1Ge5MJupxhigIgso4LRM8aFHVi+txQwc j+oD1ExLNdNKNWOCNCe9sCgrt7gwT18wS+eXoyx7kPws88toRgb+FewvjNmmaAtJLffPSPlo bJwip1HEQY+oQdkOj/YKE1fpQZeWn2E6a10BadeYHVqYLzFOGo/04lmRgYUiVIVRJYZ8fLao XVVRWVqhtVWYHaB7l5hwIkYaGbwA81TAkBmIO1IVKFztABmL00eoI806cE4yC8MDg3kWNuvM B8nN5yyzA+csUo1Qn0+yIgMlyU02wVJhmbmSzcmngyo4IfkWwNCOJU2vqqxxrL5FYhFUHST+ gPEfX42mEkf59IkQbLXXmKzTsXyD8X4HYIXF8r5N0yprlSKDUr6xNixmdAD9ZVUx74KKSFAT bYbyMPI6JH+5yV6MFC4BgVCMemRIiuDBhMeGH0RCcqNSYSteWYloAjMXEzMHidPAHEpp2kuM ICwGzoI+ZloFnOGwIKNZQaYagY0YKfIL8rLmoIoBMhencdW4KFGmtY3TmqoMFhv0o9z0grlT tEswHv4bl9GPjQcn3FYaGpUwe0pC7hSYj49NgHKWJFiWYRqMnZJAQmMgCihqMRDkmfhLMzgT rTmAJmiuMZeY+Y9+jqArrTALOhB8pP+xv4kZ0A4gJWz8tQj0ff6sMwrZOZUl9CcxO4+petm5 ZqOjyiRkF1XgwCJkF5LMB+bNNq5ASMyvXF3iKMNH6akKC6kxg7ymv7MMMF+1sed8HGnZIyBI vwuyCuWHxFl5MG3yv1rs/Ks8INdcU7kCuoaQbV/B1xMzMwQIBd0212SsNAiQH3ShexcUCYDF nMwc/KERNtFWWk0vNGPEByxzZZkNn622leUCzqegRLZ+CjqBuayS9BNHtQUDiO6kahVXG2Cc EkxWK8hoSQgyZdjBVjS1tjU2mB1oKYlQyibGUkrUw6VnmAtUlvF1qWJc1MFuIscaK3HKbbb6 08OIC/gVw/wf9Hsp0GSq4lpEQHFWU7V5pam3WND/FFEwH2GFKsLKw4TZgOWAY5gi6g+uhnYB PEM/KUUEfs1Rg/Mf/3ulDahbZnBU2YM+j4NUOWqyMKUNwraXKMzFiRQmU/gYf56wyYNSloFa HVxucJgC9/BoB6UtMZurTIaaoLShoWx9qJixFbInaATCLdNRLOBbIqhFIDZtIB0SbAkT71ok TCiyGmwVpBxK3IKLh8SjUsCECUnCBOoNKUlUqE2OCln/9y9Wg4zUUQeAjoLKGm0cgE5Cy5/6 gjl83fUKJVBPTLpyGhjGkrDzlRpqzDjSQsuZpFEEflDtN1etRPUfhsjKlSYp3LS6EuUaf0P+ krpScE7bmmoYVVdgMNZdSBRWVRqhTbS34hoaztXLzI4aozCtZEaCbVpSyQwBlElonqoymUpA faqLgvyC3JfLHDWkjviLIuWAMhTbKsthxCnmSksxphXKDIFdXnqXtn8mWIAlg5bcK0tp/T4c LTHKlgRaj7nKbE2aNHn1pMls30GxiSM/JdqthjWJmEURBqyYCBqAVRFEHTg4sMYcHGIxG0th gOWKerXDVlmaiNLWYF3Dw2wVjrIyoDp7s5osJoOUHJUG6qg8Jah89kQ5sBqlfaKJxihoOpaG 6opl2o24VBMUTrPkciOUTOMUdTyiis1iAJV4rM1aOg6pnJ05t3hWXk5eQWF++ixdcUF2BtB1 7OignBUGW7GhylJh4BlvuUUblKJGmprY/GXfMU770EPasf9PypqEa8ZB6Uoq7TbUnGDOWW2p UlRqskD7Q5VV2E8TEmhewZRtlC4g6IwOC/6U4cxfwLVoUIYqbTgbS0hIKNUC08PYgXt7V84Y JlBrNINIYbsDFgtOOKAvI6vUGA1Wo9ZkKzWAno6bMPSpqyxDRqiMJko1iTUO0EoqS0PKgxKh +WFsx6U+qVPp8gRDeklGqXH2nPurcy2F+lULVy9as/hegQXg+5rFQpHZaFijTZgDapk2wSIs NuHOY0BQgkHxXIK7LsGvi8NVh8JAu8SpMLEgKJ1G3o4oThz2yiqQIg65l0OiKpwRZS/AAZkk CAox7ApynUBHTJiYYsQZj/QI47EBmhHX1kMipaDgcBYJKJWjNhykecivOO9BCkvvDHflK/Kq f4Xt30t9vk1BELXM//xBUBy+HwUQKhgcK/c/zwwDQxUgKGDoFUAIgm4LfFsBeD+P8v0Dy5Xf JzwQ+F4Z9L496P1M0HuuNfD9haD3k0HvcUH4WYPe34Z3kIGkwxUbrCDai0Hyg/JfjDvJwpWj JPZi62skS00Ga2lFcZm5yshEK+lSMH0GjRinoDCogQSqpp0SWl+g8beyGueJOIvELWAmkAW7 GbRjSW5VV5I6A2nLGT4w34aPmq7IoArWxm5iw5EUp2qcLUFaWmHcxC1lXARgQ7iDLeFfOZGA 83pHlbHmVrsW1YBqU41Dy1UCFDVs8QgmQaZEnHQmVoPWWsmXixKt5lVCQUkRRGbWGAuZ9ohL JURVpb5A+Y01Rujk2UVzccGlqECnK14wR7dQOxYjaUY7TjBaDeVAUppy0jMohKDl0KPRarbw JygdBs9SE2hARqHEYbeDgm8BDcdWDJMamHD5U0E1FG9GU5XJbhLYB9j8YA3PwksBxcqEi3cs kNcN8meCLBRgtIfy/N3cYvY/Z6XnFOqEogK9DnVKIDK0DmKshUSV+DkSYoiKFgYCFsXwmAIz 6crxCZXjBNCy2FpOIP38WPBFzErQkUyJMwJq6UfKYK8IFJQ8OTRWMWYpJyErz7kQoxITGpYU mth2jFzCFFoCWD09oVIowJkObcnTohQJZ9DBKLe0rC63PK6XmVZWmh04z6EuZa9QyMZZuFhB m05SfaW9H+T6gCL56hwxS2ZBenZxpq6wSDuW1RyKJnuJgPqZLcUSxZUbHlLdHBatQQu9s7c6 hJBWYjNFYcE4SYuGlIn1DCVewewXsA+TOCuu89RdI9/nvzPDrL9T94C+Q1sYcs2LuWLAuS2w 5gKbmBbjqmlVlX/fg4dS1YuRzbC0q4xVIKLopbji1EuO3oIZTthacitfcf8htP7SUhinwNXm D9PtGfqoF8M8dbWdjQZh88t0D2Gzq/t+2Py2SuiK15g/jAS8wr/YK5b+4/8Cvi8tYAZI1/9N fi6PrzF/gCD7ke/HXFt1Q/7V/S/zoydN3MoQktgSWRK+FJOVQVKFGcaUMOHE1DBoKs0EYeCc XVSUr6Uw3Ok2VtrYKmhoAVxA5RfkLVoMM7t5WXOy/TsafB86eEc4DBogj4sVhfaaxuCAMaHG zhfawqcLTFOMK/pXk07eDVJWXl+QgwTgG0QJtinTpGQz0nDp2IFrLFdKjylW4ZIm7VT4E5Yq lzQDywiIkreO4J88LoYk1tInfow/2Mrr6jXFLBOftOMegiL0GvKH210NSKDcDQiIwJ0hs633 cGwNq6Ga6dA2mtyHCbsrTNikMGF3hgm7G4Ygu8NaE7TcG5owJUxYcq/0qQaFvsJQVbwgb05m cXFexj26WUXFGXl5Obr0eaHx+py8ednFWTl56UVh8xcWFcyBBIE/+jnz/EVe+fvh8v9ouiu2 f9h8+XlkLtRrPMT2GpeZp8/I0YUpmxfKaNTL96U0EgI/zv/h8yNFr6Ksq8l/xUTXih/nHyye NfoiXSZrf3240n4kf2i8Eu9w+aUP80YKiWfhxVILhcRzLg3XAXjzSzyniOFI819lDKJCJSsD pW9cBROEyxWEYkDH8sE/5e+P/VO2yNZH/c+oF210/3j+TMVz2y7/M150v/WpH8+PTtqkf/kH FM8Alg9/PP8Xj6iEiwB9NqiEKIAhAMMARgHcBnAXwAyAWQD5AIsAlgPcD1ADsAbACbAB4HGA ZwF+A/A/ALsA/gxwBOAMwHN2ldAJvz9sQP/hKqEfwECAIQA/A7gV4A6AqQDzHlMJGwHeekx1 RfxnK57bl/nTjgXoWnLlvNf6D0t76Tb2+xb/3cd/P+G/n/Pfs/z3HPxeB7+xtwsC3r46ySII g+G3waYS0H8QOqTrC3Aaxpd+8BszRBAGwm8upB8kMD7Aq5Hy31YJ2NTaKKZzQjJhOKY3sufH YFoxFH43QKLr4RddtF32+cw5BuJlM+LSBb8pywThAvze8f+UMlf/L2qXv01KgBZWgHqATQDb AHYA4B0HhwBOAXQDRDwAdQOIB0gByADAexlKAKwA9QCbALYB7ABoBjgEcAqgGyACdEG8hyIe IAUgA6AAoATAClAPsAlgGwDep9EMcAjgFEA3QIQN8gPEA6QAZAAUAJQAWAHwTpFNANsAdgA0 AxwCOAXQDRABk5ihAPEAKQAZuO4AUAKA08t6gE0A2wB2ADQDHAI4BdANEOGA/ADxACkAGQAF ACUAVoB6gE0A2wB2AOAdOYcATgF0A0SshPwA8QApABkABQAlAFaAegC8J2gbwA6AZoBDAKcA ugEiVkF+gHiAFIAMgAKAEgArQD3AJoBtADsAmgEOAZwC6AaIWA35AeIBUgAyAAoASgCsAPUA mwC2AewAaAY4BHAKoBsgAiYHQwHiAVIAMgAKAEoArAD1AJsAtgHsAGgGOARwCqAbIOJByA8Q D5ACkAFQAFACYAWoB9gEsA1gB0AzwCGAUwDdABE/h/wA8QApABkABQAlAFaAeoBNANsA8D66 ZoBDAKcAugEiHoL8APEAKQAZAAUAJQBWgHqATQDbAHYANAMcAjgF0A0QUQv5AeIBUgAyAAoA SgCsAPUAmwC2AewAaAY4BHAKoBsgYi3kB4gHSAHIACgAKAGwAtQDbALYBrADoBngEMApgG6A iHWQHyAeIAUgA6AAoATAClAPsAlgG8AOgGaAQwCnALoBIuogP0A8QApABkABQAmAFaAeYBPA NoAdAM0AhwBOAXQDRKyH/ADxACkAGQAFACUAVoB6gE0A2wB2ADQDHAI4BdANEFEP+QHiAVIA MgAKAEoArAD1AJsAtgHsAGgGOARwCqAbIMIJ+QHiAVIAMgAKAEoArAD1AJsAtgHsAGgGOARw CqAbIKIB8gPEA6QAZADgvcolAFaAeoBNANsAdgA0AxwCOAXQDRDhgvwA8QApABkABQAlAFaA eoBNANsAdgA0AxwCOAXQDRDxMOQHiAdIAcgAKAAoAbAC1ANsAtgGsAOgGeAQwCmAboCIRyA/ QDxACkAGQAFACYAVoB5gE8A2gB0AzQCHAE4BdANEbID8APEAKQAZAAUAJQBWgHqATQBVe0AX eVPFdK/sWbOmaMdmz9OP006aMHHCJG3KxIl3Tbxz4t3asRariS+jj9OOzTSVVBpqKM0diXeM EwIzJk9IYRnvSr6jt4zJE5IT7/y/jP+X8f8y/v+e8Vo6Mv0bD8CmOHRDEOnNqO+iHo368VaQ G2MU+mUcpd8mp7fAHOxXfYPjvxkpxWufADmVFBz/8wIpPvp90OPjguMv/1bO/7kg7Akpf8sf pfj2dkH413XB8aOa5fjvBOHx64PjNZ/J+PdRCf+KCI5v6ZDj+6mEgyHxG76X4tMGqIQDkcHx f/qPXL+hKuHFEcHxi+NUPL7xdpXw6xuD483zpfjlc2A+pwmObyqS4xerhMX9g+NHGuXyl6uE B4f648dQ/MfrpPhn+TxpjkXiA/ZvriC1cya0ZfMNVzhJjquddHYhdnjY8+74L1klscWWuwXh yTHhD8Yozz3KZ+BxEfTQ1WRQLJoOSgiXPvDYpTJ95tWkVyJ0wy1hj8awnShcdWU78IK+13RE sWfDRteY6Hg8UZ/1FedCQVh3z49Yu1/GBGTLZizhKPPE8veS5vZi8U6x9oBYhcn8P3LDf5qw bBOkHvs08GEPTKaL/ebIxVXmcqFeLa1zMwvlMqvJJPwxKNBqQhvbz4JC8SPD+gp+e2ab3Wwp BqajNzRMfVIZazUZqoQ7+wWWQQbR7n6KZAqj6BPB4VSnpyIkKfNwtCDY+gkKm1Zm80F1eCEg IsDY9fOAKGZRTZQurzKXAJI/BMSHs4Oe2b/XFGid/HFAtN8e+q5IIaxN9MsB4QF20f8MiAqy jc4ZEC4SMXgtIIbZSKsHCuHtpK0Dg9EKMIj+amBwbQKiFwwKzq20jG4cFJxZGZsQFT6v8HhU +GzCv0JyMHtpvKAunB313sG91E249bpeqiWI1wXnkaynfwjJI8Xgv40qaXz7AaTttEGCZPuE RRgrocfgubNH/eHcTAptkM+HhNIRN2OUHAwNRra4QuNgIawZs+M6OW31Ctz8swiX/EG8B1hN pQ6rrXKlqWqN8Fq0svBV1ko7bfr+JyAYz0xQ8OwhymC/DXTp9XJ4iAW1e5gcx62oTw8LSS1Z TbvYQEaiiVs/++1vnw0TSSLhDyzCaCYSC/v96ahNTIKkU7wNI/UjnHTm6hIzNN3q4oo1lgpT DbQkbnlh5yGz6eGMbMyuusRcZUSbBnYSv1IZtbq6Sha1BSpJOWmG3r+GycqwpsTvhcZRTS71 JfOXwqK8WXOLiwrSFxfPmZU3TxjTTxFcqCuCp/QCYa4yVD9PDrcqw+flscBfKgPz8zJnpRcW CY3KwIyCvIV4Mv4MBGbPy8vVFefqMuekFxfO1mdl5eiE6/oHhhfo8nXpRcKdQcH5OemLc+ZA 4UuDItL1RXn+WGdQrI52Pl7rTwil5+eziuO/YlmluwME4TS1cEVr1w/7hjX4FbT9GdPZy2Bs AGlvrFpTzG2TQQONkLTCF+IF4fAwbheB4wg3txcEzlSGKpsidDwLrXFUVfkDF90gcRiaHRaX 42dAyAsbWTj0HDQ1LOZnkV5joYph67AyJNSY0jec8Q6z9TeUljqqHVXEuMwGgXdzo/B4LNv/ QccSJCWlepMMMoyQe6HCLvPYCI57VRWSt8JgqygmkcC3goVhI3tLsMK0xiYUjBQUxpxUcKnZ skbYyMIpwGgyWVhNu0JTmx5wAKkeHMW3rlaYQD9gZgGS+D+liOOH45jzDB7/aZwQbF6aeaPy O0oT08E/Y21NbcE74Vs/U0o5MkAFag65KUCWK+xShWoWVW5fQUooGlaYLcB8aOspLNUKvdqt zhkthLFTxX/vqKR5yA13wiwAuLI82IzqDVC6SVMKMB3DmO/GXI1h2ycJV2f+tXNsODMpWStd etvVWXG9Pv7qrLXKEq/SKmtYUnjzJRmz+3pJEGhf9a+JV2lFNTTlas2lUuVJYgGo2ypoSnSn Qbw1JoK9sA4ttPJXdjiCMpfLM8jFMFq9MiiMDQpUsKqyBD5voUHf20saIkJiVGikNF65+0iT 0TehTy1U/7g5xz19w6RRmnTc3e8n2XTc0f9qTTkSIn/UmGPogB+32/jiCmnQbuAvA3uP56YB uwf9qAnHb6KuwoLjgcHXaKZRcd1V2mXcq7lyQuGW6Gu3wLh1yI9bXYwY2otlhYRZv+t/3PSi J1wapfnF1zFXYX9xaFhAoiAbjD/fEBAbZIexc3hArN8WY2tsQESIPYZlRPj4K1levCDIK320 RZxUYa42JRkcoEjfkZJkr7YkVd4x+a6kcuj5pYkpE+6YcFdSiaOyyki2/xSHZ+FKk0ptjqRS q71yQuE1FqEMhkJAO9Nr0wu1KROS75qQmiyo6tJGIobRhOGr8HfwE2x9cSoKubHAxQeA3SP2 wZu6f8QXGBgZ0ReD+ke8zwLbMbBfRC309oi+fXDoVPeNWAc5I/tGvAtxkf3VfwQJc/PUBfiR 0fj4xINIlwZIo+6r/hoIdPNGNAzkn+mr/iW+nKFy1efgOWo0Lpmqn4e8UfFoHaFeABIj6mbc 8Feb8XFsAj5GgqCKmkDf2YChScuwoMchW6S6n1o9AfDuMw4LV98DoqDP7YiG+kb4Tp/xefiY DY3UJxFlu3oLZOqTjJ4n1H8DsdInhT7wLxAPfSZNxnH8uRx4V6t/Cdj3ufMURn6LkbM78DEW i5+DV8r3VZfBX6hTNfxEroE/qgH3IC/0Va/DkI1yCAtWo7Y8LP45eB64D/78Fl4jh8UPWgrc OWwshkTcLERVmWqEYePi6U0NRXVizvnw0VHxf8OcUYBVPrz+f8T9B5RUVdYGDN9z61ZXuFW3 q6pTVXd107mbzjkTmtjkJoPkLAiIBMWMGRUFzAEdVHSMIzqoqKgYxoiKOSs65jGggzn9+9n7 3qL7fd9//etb61vrZ60uznPCPmmfuPfZN5AlKbOKR0pK8zEa6VklCKeU5pmTCZUK8hKdZ1H1 bqpvUn42eQbHkVMZ46gt0/OryMM/lX7GEvSmC+H0XoTTS6bqTpEKdNQxQr9GmNpSn5kB2tvQ IXOPB6nr6edqgqn6XHMF5ZNdtUAXUiCc3b7DLaSMCfCedwf9WuN1lKeMCqAveBhE3qKfvgQN fQET0VfbRDTjXeoOfdHHiPUX/bxjItYi8zEw73H1hh1rDdh2sZ94wH8D/awmWKgvNt9B+LfQ XUKBVoLmd62GNNo44lv9+yGMvOajtC/TfxjHKGBuRmv8eASjkHkn0v80mVso1XyVOkT/VWhG zSnEq/pvgjLNThTj90WcLm7eiDX8rwsY5WrGCtRk6T9QRpR7OcFcfWnyYwgPqlulKsk7FtP/ lg2N5ItBP6T2STGT01GFiPpIypnch3YkeooSfgolr8H/GSrITZ6avAUNHLVDo8kNaNi4quPQ OPXqP9GrZyGD/UvQq3+B6kvshHqW/gr43KhFfV9j5yEQfGOVAZY4ln695xhge/w6o+Et5peL ySeEjvDu4Bj4Je+VHHgFUj7K/vh1Ap9CGomxk5xh1FHxiHpUIrwMXw+VnmvEyXwYOz74sYsi Xc8EPkfUukTUR//PqCnkjoA9vdm1KTHyy67DnJHyO7VIdj0ipYykPspuwNyVMpvqnt0I7k95 AL5N++A7hZJnN78B55PUTtktlYiwCb6tA+A8mxohu40bJ3UXebfQX9omDRpY6T+Q28ipy6jD cMh4E7yTkUe/RkY95eDNeJmyDGVA/Tw3Y7aO35fod6+WgS82blCaMZ3I5vQHWQOXxznDTArw 76CfnwiWEs6hmueMfssekZfNIDRW+MEw99AQyhn3g1sGQPJcQt0y7ALmFqQbLyhkXkf/50x6 wh4AXcRHOZNtrjJzqKg5U2bpwvJX0r4+Z6rMaLlmMjVJzjRBhdTiUCOLAhpl6Ka2B1Dc7+in L8GAu42L604UF8Tc425NkuIiI3f3LHuSMzLJ292OvvJfSm0WI8cQd7u5lgrnnvRPm8IaOkC4 p9qzmbl/MKFZg71S4aENhOYd9EiF8+kE4V70jEcq/NlqQovDXqnw/mZCSwRFzT5YDpYv8kqF NzQRWnWSVyq8HtVac7pXKmwMpLZ1999ORP2gPAC85u5vfklbEPdxO5KkjF2zCa3fYTgz7otY Kr70YHjgV/iWmR0pKMKdqLnxI6KhTD2jPdojWgbm94JEBC3cD26Oi36VBPCjuGhBmuuRYs7/ IDlHYuzgTEcgxkmHY9hZHUU+qRfRD/icudujGZ9QbeN9riFf/0H6+Rgw3seM0rQbL7/Trnwy /R+vFA4JmI8CVU21ue5TohOvFpTKvBuvs7mO8kR2xjMEk3MV9XnwaazA1CzwhuZqsDNK3v7p 9EPdroWCnYH1WvBeZS+9x2vB+5Q9ECavoOi7BXnNTcRnwfsFBTTjRuLh4MyFoHUL/ezAchyc aZ5MsayKR2VlCcD4qVUpq4BhLqemsaoEJZlv0VC0qgUR315Aoy44axfoeYjWJoLx4CxuFmuw 0ywX0ZpmDbPLYE6leNbwg6Y0yxsUxxr5oynN8jjV1xo90m4W427KLDgnQgn8I+jnLhdKO8ds JO5Oqa+z7GmA8kppcGq/C6jRrr1m3In6zp0ECvfQzz/oLzc4l8sXetAp371U/NBDTvkGUxeF HhYUMv1Ajyh7sjgNMfcqe7L4jpgg9FjYkhXIOAFtsWAv8vob1ed4gkOCCziv8CgnL5Q9PGaZ JXl1k294rJPX1/R/eNwndlv8QoTC3U5ez1EvhMcLipvzsCJMlP7KNXdSivAkCSs0k5HfZEGl 5o0ImyoxK8zBCJsmYTXmXtCcLqjB3IOwGRKzxcRFZXimhHWYC6je4VmCBmp+LBkYCoHgIq5e pM6unmZ8QTSDS1B/4zds1o6EMx11MoIrMt4hOlrGDVjKNONaIhdctR8ToQHGdhvoIv9mIngG eV6SV5X8ILVhfkCNE8ZMfoy888PqYuHM5DmAERt6k+dTGfJTbBhIfp/I56faMJT8PDVZfpoN U5PnUBny020YTT4RoRk2jCdD4SE/asPc5BWInGnDwmRI+/KzbFiaPIXKnh+3YUWyB6XKUc8H uZGT91A75eeqVxg2JP8DkfPtGrUkL6Qa5xfbsCN5MopRqo5mODD5v9SY+RWqnuGQ5AykrVSd DIclDwHlKvUWUx6eXL+cYJ36gmFX8nSQalenceTRyaehNTrVFwwnJUMxPH+QDaclL6PNbf4Q uxgzkz9F2mHqWyY1V4vNIkf+Tj+qtA+nmfx7zUdpZ51/n1RSM/9CnXdLHQ3zblDbM86eI9wG Rqjb+J3ipKJ0OOvwtApf9HbqXz1968n3X8wUmFHcxgPsvoUZBLNAOga+kVKR8RfWgYwkHzPT lRQrpTqbgtIxuIxwQ8Y1UP/O2IITW8Y8bLAzxpOHK+MCHzYlf8fiphkhjI/2fkiyA7PYug0W 5kb6uQFj3b+OGdwc74xfbDPMaTJKaD5djyWkbhdFz3yQzqvHETyoe+s4kXe4nSiweInmHTUx wmkC8wmMFtBlNiL9GCBXwZnKvJOoe8cK3KsCK5Yu1LzjBP6uzHVlFNotcLduHqAMveMFHtLN l7BBnSBwp8vERZd3EsaVq+Arl3kx9mCTBf7sMnEd6J3iYXimYa5EWp4XXAUbDXC/5p0ucJNh zqZW985YwJS3GKaBtDMF7jDMW1GFWQJ3G+ZG7IdnC9xnmCdilzBH4AHDTEfoXIGHDPMBhM4T uNFtfoSM5gvc5jZ/ROQFkI9RjdzmBWjThQJ3uc1jELp4jeTrNi9H2mVS5n1unlm9ywXud/NU 7V0R5rSvus0upF3pZvim23wENTpaWuNdt9mOGq0+Q8rsNpch8lqs3K6Cj93mA2icdedy6Odu sxANe6yEfkUMtQPBjU9S32TeSWPkBoJDlLeROSK1zWEjrP+p/Z+wl5xTKXXqgKcisgygb1IH ojSYzksoReqgNzisFJyUOliYpwOclDpEwHpmjtSh0v27FDNH6jCBBxV3cGqXNMftOndw6giB O3XzAsDRUqVdunkXsU7qOKkS8RlqmDpe4B496wkqWOpE3veqPsSmumZ8iQbrfAAvKpDjF5Ce eTvN5FTaVN28zl6ndxFv++6UnUPIHNCH0K7tjCLmi5SFb4+gFG4c3xPOBr0/UfM9vzki62AU VF76LCLr4FdULd9rWSnSVG8OIPTOXzLTmqeWEvrgUo7ZoqWCq8D+PMcYWioYB7zkYHS3eRi7 DYxnt7GFr0swH9BWFbcJeyiekVqbMTWAeaWQ55Wv/ZhRvgUXaUYxgdSmqylaKnrtCXU4DxQb 6W1sdKEyG78nHz/qMByj37eRd3C+y+29He/gfFfY+xvNGIed6rlBzGG4xMmsraWU/jvpZ5GC jlatuekY8m5CYZFcp+1+Zos0Q0dWPXFTZht3XihES0xWFTF3Zj/pzWR4/Ayi/dlDD8LDhRgD JEYAHv+kDskcKB4m9gNGJ5UmVvUACqKnQhVO00bHqszTadDFGopTpCDFiNQs1zpDzHZqgVjL bdzjXVntRCzWmihFl2YsoUyilUGi5i+ln8UER0crAzD6Fa27M8XebUQph4xB9Yg1ln4yCI7O GMRdnzESRUEstwEKxlXUurmlc8gZvBJ9F3+fnKW55Rw7t8IZmR5in9zKgD0yq6nQuVX2HsL8 Fy2xudX5NmPqiFkbsDdoqUWE6uwNhJlEDJNbb+8fzF9xOdL4fqpzcpyE8rRRu+Y2LUpFAT+G RwExs6dUS6MC5mPRipeTM+SRAnoSBQQxTxXCsAK5jR+QFjsnT3USeRqziEH6DBgOMnCq+GqQ 6SOt0mdwTzJ9hq5OkOlA2lakHTYmDWVaT7/x7fQTMKo4rVGd2OV1o6dqoHAR/5V+JhlN5keF 5NX8nU39FepfoyOcLp0dwTGmv6AucycSd5YwGm0OpBTGsH6MujWvmY7jGH59Z6TxDmE7lwbZ hJFGgZU5Ak6F6TgJwhfd4PhWpuPiEVvO4behiJsJR1UNV0LVbk+TIkK5R9VtTpeOzsYxsP5S ewp+E1cajWO5w1KJYi0a50jqb9U0lhLE76OfSaqVK63aBqfbzfIHkrVvJ5itzkHbj1A4nOLq +mz7iWJOJEPT3qc6qyMUni2+cq6o3vbB7YGajlB9q5Z7PDHAYzGcAV3/XctT0KVENW8RBat/ JCUoH4DS7XmaNg0UvsUV0wicTh0KNwuFA0Qhvy823SPuwGHdlbuLSBZckiEv29QYpQo70Rqj 4VXUAOfYq+DkS6dx2zO4WVFpt/EdH51R5ZwfyX+5nwuDF5m552vamSgI0xrBp7itWvGHFAvl xj81omQ1nKXfUvwUit/3ZIJ9N3Jw2UjaN96Gg+8N3Mmgt4Bmyp0UVn4maF6PDn6XYAW31g60 1u8gd6IdtQJzn7oFqYsUN/cFUVSYPK9RqyjCVvobSiF9HkU+27i/t2p9PkwB4jl2qyFdsQ15 6Vu9Ws4LRCII9tistlPyv+jvGOUU6QJEuwYUh6AlLgTTEo0iprEFBdRyOqnRf0VLrlYaLbX1 F2raQwkCq0DgC0AmcAwI+Khr85nCGmaIdXMr/rua0NpviSMbKbBiKRpzHZh+BK7S/kFd/4Z0 dngdrtGuIPAYspyrBl4oAhTcNZVjSVZzcNtxru404zzkcYtD5ishk0tkmIe+EzwXZFPBUImN ekQLIZsQLrJTH+sZkq2F7o5h/evpGdRCT8Hzq56eeVroXdDAT76Lhwz42u3aQC2Uf3WCo92u k+Dxhc/hLLfrTPKofIHaLO9CHDyUqjyNIuZtFqBtpXVP16bhUljxRfgjooPOMqRh2bYM6USa p/u+DivSLpHzuESc5BJxkkvESS4RJ7lEnGSIOMkl4iSXiJN0iJPy2udhxoc4KW/zWSAq4iQd 4qS8LUcfzkanNtLyLj9LrsDgL5IlXSf/3NHXyh0y/Sbxdb3Im5rhFHkTPn2ki7ypP5wib0I9 dJE3cUFE3gRpvz47k5wdXFERPXkMHaInf1/OAKInfzmKo0P05K84Ak6InvyVLFm6Dpu7ai4B pFD+2qFwQgrlr+NsIYXyN5yALaVIoXRIofyNuIrWIYXyd+XCGeXbnOt5TruZfr16J5bvCbvY 5wFM409ibPo3yb32Pvi8l/ARb10EUp+T2wzrCYFUQARSYbkvDYpAaqG9c3IbvHCn0nCrzP8a RE7L07TmeCXFNhfSzwaCgeZ4YCVVtTk3Q4gEypMJ5bUIkUA6NWNzfjghm1rGF/T5wJB09ck/ EdTudiRdfaRIfYo32Rd1EEj1KblbrnADkHT1Kb07QW0VXJB0mfmPQ7LEki69ipaW8vxX4VFZ AA8RfYGnTMuVEH0FRPTVM6f0EoRL5d8G7fR82mflcOVXU01qCsso3JxHP8eAP2oKg2vWrtZq +vZswZoyy678dTRP1JRbyiluHxcqv5ub4BmUJsltX920yNVNa0Ad0ePqpjWsbulxddMasaFc 3bSm2FCublpTbShXN61pNpSrm9Z0G8rVTWuGDeXqpjVqQ7m6ac20oVzdtGbZUK5uWuM2lKub 1hw1joUIcnXTmqsmM5SrG9qjHtHj6qa12IZyddNaqk7ocXXTWqH697i6aa1Uo3tc3bRWqRlM Wa5uWuvUUQzl6qa1XW3qcXXT2ql49NhXN62DbChXN61D7GLI1U3rMHUMk5pLHRMgVxLGbQi3 OK07TdSOb3Fa7w3gFqf1PqmvFsAtTutuqa4RwC1O654jErc42Gu7jTXU52EUFNNG5HL7FgfC 1PBpPX3rNR2evpmQ6uiQsPrmXk4e5l63LWH1zQ1AOFpSdZqdPfi3pP1pr3CsDgmrb95zFJjC ElYdElbfgndB5Ce3LWH1LWAivtU2EU2HhNW3SKcKmtlJtoTVtygACavvuPEeOxYkrL7FpYiF a3qWsPoWByBh9X37kfBsAOI733dTPdIekLD6vp/PyBuAhNX3wwqRtwQgYfX9uF7kLQE0gu+n y+WYEICE1fer0IwGIGH1/SYoMwAJq+/3MzhdPAAJq++v2xjlajokrL6l6CoT5WYJq08krL6g elqqwhJWn2VDkbD6QiwYcSSsvojSvDKwIGH1pSgZ3iJh9WWocpEMsYTVF7VDRcLqi6tukQ1R L7+ENoaE1bcfs7UOCavvJXZCwup7BRO3Dgmr7zV2QsLqe+NCFsdcgqreiBXej19nev+JuQo3 DknoCN9jHAO/5L2JA+9Fyg/YH79O4CdIIzFewIUF6qh4ifhAIkAYlgotLq4RJ/NjMfDDj10U aS8TSILIpzsR9YP/M2qtl1mdIqSBSb0ltelY3ErqsDikQ3ZXUo+o6ZCzljRAdpoOOWtJI8ZA Ou4xS5p+JlLpkLOWNLvgCzlrSQusRqSjLiWtGO3pkLOWtHEThd8kEjO99rBSWkYMR//GuijL WaMsZ42ynDXKctYoy1mjLGeNspw1KnLWqC1n1VGaxv4gq0PO2jgMh1zzaZ8tZ20cFoDgsnH0 T/a4xHVM49iwvWbhArRxXMwnwwBy1sZuGXyBAOSsjeMFhQKQszZOknSpAchZGyfbvBWA+LNx yhKXMD5Eo41TZaHODUDO2jhNEE7Lhbg4YAg5q7cNGnVmmt+Ws3rbuLjeRHFBzDvuBZ8UFxl5 uyUjr6ZDzuptz6XE5v1+W87qbQ9Azuqd9JJNAXJW71R76QxAzuqdtcSUCkPO6p2XakqFIWf1 LsL1DyoMOat3caPIbwKQs3qXCIoGIGf1Lj/XlApDzupdtd2UCkPO6l1zkykV1iFn9fZ/AmUE ZZazevsHIGf1Hve0T8oIOat3/WMeZ3n/L0adZWKQ4Fe4l1keKSjCK3yBnok5pfF/RPugR7R2 RBieiKClzoOb46JfJQH8KO79fD+PyL4z/gfJMyTG05wpT2TbD8ews9qMq/d76Qd8ztztoYlE QQb6KOSRtgwUMfS743SEz30T3nfF2ft5eIto9FtymjWBhGg0CNGo7Ni0IESjzu5NRKOCvAER jQoKaLqIRttxv78hkBCNBkQ0+rUsCUERjcr0bQRENCooKSCi0Y/sBVMX0ej5oPd+ICEaDYho 9BW7G0U0apchIKLRpyxhJxGNPm8JO4loVHZ3UWoQFo1+Aeq5wYRoNCCi0aRke+SyaNSpvYhG 7dpruohGyyHd2BRMiEYDIhp1yieiUad8IhoVFAqIaLTFXuZENCooGhDR6Ce2aFQX0ejlyOtY KyEaDYho1MlLRKP9kyUvEY06eYlodI/dFiIadfIS0aigeEBEo9JfuQERjUpYYUBEo4JKAyIa lZgVARGNSlhNQESjghoCIhqVmC0BEY1KWEdARKOCBmrmVishGg2IaNSunqaLaBT110U0CmcG 6mQEV0RZNBoV0aguotG/860zGJuWQpahbWOf99lnK7s3sBsskIFeN1IqoiwXi4pcTBe52HfI CS1rhBuiLBeLslwsynKxKMvFoiwXi4pcTBe5WBidAblY0rpJ5DRPTrblYknruHae8U7nYVnw TJMmosEEuZhRt5GiZ24OO3Ixo44TGcPtRMHFSzRjVAlf5gaC8wmMFtAVgFzMGAMEuVgAcjFj rMC9Kgi5mDFO4O8qANGH0S1wtx6A6MMYL/CQHoBczJggcKcrALmYMQmNCrlYAHIxY7LAn10B yF6MKU+ZIhcLQGxiMFNALgazUpoxXeAmIwC5mDGjOUXkYgHIxYyZAncYAcjFjFkCdxsByMWM 2QL3GQHIxYw5Ag/QuRKhcwUeMgKQixnzBG50ByAXM+YL3OYOQC5mLPiPLRcLQC5mLPyPLRcL QC5mLB4u+boDkIsZy6TM+9w8rIzlAve7eZwaKz6x5WIByMWMlW/ZcrEA5GLG0dIa77oDkIsZ q6dKmd0ByMWMtVgmIRcLQC5mrJuVInKxAKRGxrES+hUxFORiRuNVxAyZELWIXMxoDIhczGEj kYvJLiEQELnY1SkyB4hc7ClZJgMiF7uNw0qDLBcT5ukIslxMwPqAyMWk+3epgMjFBB5UAZGL SXPcrnMHp44QuFMPiFxMqrRLD4hcTKpEfCZyMYEJudhCdVgupkMuZnReCMkScmS5mNEZwCWc ++YR9iQNuZj7Tlk2QgHIxdy79jGKBCAXc+8RlMKN437C2VBBLuZ+fkGKTIKQi7lfejBFJkHI xdyvfStysQDkYu53XrFkMsMtuPuDpRzWooXBVWB/XoANLQzGAS85GN39wWFMy3YYM857fF2D +cBtoD8ztqSwXCzKcrEoy8WiLBeLilxMF7nY0RQtjF5DNZw8UGykt7EOuZh745PkY37ryMXc G3n5dl9uL+y8fLuvsBc3TYdczH3ux+AOyMVyat3UyuYZqbZcLKc2gLvhnKYzIpIccrGcFmkG kYvltHHnHZaL5fRb6EikRC6W0589DsvFcgZIjIRcLGegeLBcTO9kDeILUZDXHblYdlUAcrHs hl9FiBWAXCy7WS6BhgQgF8tueYN7XORi2a2JUnRpOuRi8coPQfJ3Ry4WrwxCLhavO8OWeOn7 iXZGkScNN0n08yLBQEYRj7WMMmdBchugoPvJ6aqpR1w8Q/ARvMJVw63lanRaC6PI1Sys15G1 MZuQXaw+qHp1G3lI86kceMyjs7yrXTyy4eGmXZurQzzi5BG4I4c8+gvbDwrcTEzlGiBoSCAj l9AgYdiuwOJ8QoPzWWwzOnA/nThcQ6TfugO3IR97/zQp0AYJ9nBB0wJvZUHf/X2eL2Zm/Uqs 6hqZKPPcrBp4jE6UeW7WmdQarrGJMs/N6qa5wtWdKPPcrGdBcYJ4ZMHjYTTEJPHIhMdglHyK eMTgsQ3VnCoeUXgcg9pMF48MeFyC6WWGeKTD43qUY6Z4pMEjD5WcxR50/CyYG3iMBoJrtpyQ FgbCKOYcQUcGXs8kNFfQ8sCXID5PWmQV7wdd8wWt5f2ga4Gg9YHbUa5F0gMnBYrRXYsFnRLY jlodCeQq2KAC2LK4lgo8XQUGI/+jZNKktfondOUKe81UgRTqN9dKe81UgQ8QuiqVJ80tRApp V0voJQqiWoqegRftRkNBdCnsoUQn52BGuQ49HsUexhWdh51M9C0KdUd/oQkzKfqcxaeHsZSw of5ByEzOpRo0tPmp6cwi+tkYB8k23mQ29EMGPFB2IsG1NYg1nX7uJOhtuDZ41KLjtYbrbtEO n7Uarke4nLXwLlY/DkpOIdy+mT/QD2BHfohn17JjEssZFats7aOyKwoUUrHLjl1ob2nnUzeX HSdhqYH7aDoqO35kpszmK6i0ZSescMn8DelU2UkSVhq4BGEnS1hDIH8QoVM/jclsrl+WBrU2 jaDZl34AQ/npXKqCNKdU46hBC6IXZtp7tcEF0G5rQJpH6AewMD8zsCFd0yqKtmdKmh+IBSpK 7OvbwG00ECpK7dvbAO4PKsrsy9sAhOQV5U4tL5lOqNK+ug08XUuoyr65DXxDvFBRY1/cBrKQ X/1guQTQMlAloyw3mpMFHrg3HzxwL7osWoXhEF2Qx0vFE1S+smKUOyMAW0Nl46KXFyDFLIhK o58Sd9BCjMfWZRMhyoqjGQNlswI7KVbZ7IBdvSdpLJTNcapXSx1eZo8hWrleJFJl8zIyMWXO ARfcQ4TKrl7MHsvp13dyJg63kzMT8oljaSYqDGwkDwtOOq+ezLHBKm6D82lGG6aymGE1Oevy 7kXsY7I49m0cG4yrG9SH9UWvINCVxoFPkzvjV9S2tjNqwKZP9CUeI/fncG3/TkG1Qz9A1e6l +td2hYioeR/93EOwobaLdyC1sxx+WEXZ1M7bI/wQwOipnf9rpvTfdMRcINyWGsgjLqhdKCga uBwxF72VKf03lnqzdrHcmuQGzj6S0BL7EifwFHF+7ZFyl1waOIN8a5fKUbYicB7QMgmroUq7 qZwZP2O4lhZGFUywRssh4Y/enYXeH4k5PvoJ9vjRSSmYAd5OwwzwK1XCEx2HS5LowXxcZJrU Gv7oZpxbogYVLhBVFD8YHUqNYEXPJWrJ0btScFm2lnzC0VWUVyR6J/2mRD+m/FOjr0JXJ/op 8UZ6dDlYLPoZpYpGryfei0UXU6kyo79Sk2RFc6gR4tFnyZ0d7UvzUk70AvLpE30nigu4PlTa vGhVHEqlD8cx+ALUdIXRd6lsRdFcKn9xdChRK4kOp5KXRrcRhb7RdzF5RO8kmuXRp4lCRbSS fCqjf1JJqqLtVIbqaAWF1kQfQy9HC6i+dZr+CWVcOu0hNNaTlEtToUXUzGb6mURZh5oKeDZo +sHpfSiCNP2U0ceeDS6h+jdVDaLo1rlodn0HZd3UNDGb1XTp17csG8yOX+cSF8T1dVSNpuYT Od5p9Jt6GeKB1XvE1WNU+KaW6zjW3xHrUcTCqPfD1YusC2RPoR5qan2ZE7yJ7P/L2R+ODNGd pIh/SS0wpKmdN8pNHc70fTqN9Kb+thgwsI44oamzK1umroeoh5sGbbLvN2LUpk2Db7Gnrqco TtNQiZkaeBkFH2bfvwQepX5tGn6Lfefw3DBCI1ZlC+vPpqZsGrnJZv0gNXrTqFvsO4dXiZea xlyWLawPhYemsZvsO4cv0PLjbrHvHN5EzPFPccyWwFjEnLDJvnP4GjEn3mLfOehQbWuahHbR r6Aua5qs4RBhoDV0PKVs+g4mBSw4afZIQk8PoFbNai2FN5wqPpGc3VkdzBtZ/V5PPcwbWQMm Mm+MJpLZcHUTnayBVZzHdHhAs6qodB2IiWbVIXKWFpUzsaIKh9GgWVVUOdhuaywaRfZSEOJF o6h6oX2XBM2qotrBdltDs6qozlkmoFlVVG+L97iARY2HuIC4K14GFzSrippO5AL+ykE0KWWW ptNYMfvlQ9GAtriZpQF/LnReFvaR4r3bH7ousrE0AnOITVS3IG/gv8QYarygQOAIcOCEpfax NAcxJwpKDdRi2Zm01D6VlWDun7zUPpWdRSNJTRGUG1hPg19NXWqf0aYghyMW2mxyArpqhi2W DKxGD81caLMJVnx15A8FwiZbMfEvvcW+msLKrpbLHNwROAVryUpBAwMvQvVjlVAZEtg0FPoo 0sRdgd2owxrRzRwduBE3rGsFdQcWYdFZJ2hSYCU1vzphsL3Fvhl1OEnQzMA1CDtVDglzudvU BkELudvUaYKODGxEbU8XtDywBGFnCVoVCGGpP1vQ2kAeWvAcQesDLajDRqnDSYEYDQp17kJl b0u3QVNl00JnHwpzJ+qChc4+9GR02uaFzj60D3K56JJMex/K6jUXu3PtfWh8PgWHMoWDMyt6 TpWZVQgTnTkzF5sBOtdmVoOv4uflQwOzLgC1sMz6NL+9yTyPomU2rEGy2dS01WXbyWnBqfTv qH7FxXeRh/k5/RyE2mhxMedbnMh3FyJVORsslKK49hcuRUjTb6fWKy79L0jeZvEIByG3cRMi bKVaV3Wy2sbJlF/VIOhqmBOoVE9Rl0+rGhpIoZNv1bAJBZLTfGLRquHzGXmDMHNT1bWaUVQL wztUkJBEhVf3xC4tjInW7eABmv4KZVE1IqsAM3MBVPA6pasH2eoF0tWDHckSd/UQW7eC92Bq 6EJ7tvgEnTnMllsGloCxh9sXIZp+Ooh2XUBZZLRBC1HNij6Sh33DC2DdKM4AevRynDSiC7Fr ir6JC5hoJBv7hmt433BxHvYNz0HEq2WvhlbfGGoufbRSrMaT8xw22CMVdus5B3PYfRWRynk/ xG7sXrRsWDNU5+Fa50LFXna6CzhdHy13HyKcg2rWGQrKSEX0h2utvAXgzhrjHlH/y2PdxFoD 8fWtOHIcSS2VC2OG6nrUqcxQNZR0Ef39N5G8tHfyvonkubBqqN7HzJRlqFWU6Eb6g/aGJIz1 Tph5OOHJSPgTmrfAUDsp0Rv0NyqRMK93wvxEwvybKOE5mFSGGOoApRm0hY5IiXSDDYRTOqxS OH3AiuIQdOp4l+qmqJ5LNA0PbguYbrcLdF904VyCyW+CC+35DXArFGImujA0VmLWhwbb5iaM AteGU5VWBA22SwTvxdP2YthhVLOR6kqXwuQboqw+ulTTLjSc7K7g7B4gXLJ+xXJNXeX6i1of Bgm1UthpVBVg2xcU5GEHKeXYyzTtVwrtS8NcKxsF2i9ciYeUrrm7lFbWjTnyBUR2uzZC76/4 DRBJRqsOUwp5dROFa+ivGIpjvCoNUbwsoWUxMw1VmJrQsuUrSzStBdP8uQZvm1QOF3ojt32F D817Hh8wKmGxxXZXbAbXnG9gW10BPQu1Sfwhf1IXGGDWqllEuQKXVepKIQC7Mba7uoI77hru OE3a9XFp11/RruU1NGEdiWJNNBTiqJxh09BVBrpKEk/ixJVUqMmcYcXZWOWmGBhIVY8j869R ytnsUU3Vr/oNnuvRHqcayLeiOzXhrq44IswASkcVF6Sxm8chBf0/T6PVjKIapKA5Wg2lcrjE LVLdmsUUlA4yg1zKbu9OZhKtZisF/YJ6n6acoA3cp9xEb0oTZWzAGaegjMYEWOc7hQ+OhK7R tAlUjjpOdBBpTiFY/wJRBIfgw8fKrxq+ILfW+EepaPk2/UCwSVHDNAfp51pK0Rwjx1NwFJHj Tzeix/pq2s3kaG4irwhN8c2DyDEMD1wbSykMCs5N48hLa/mUIJjq8ys0beLVlOeNRsMGwo2r KMBLBW/aRKjpCmR5Pf0cARUqdDdbiZhuNPQvRfs1noEsyav5nxRpJXJqeYi8MJluv0rT9l6F DYfRcBbhtrYenvpm1bCIcMN0/IxBq2rt1VSQJvw9jbxfLenp9SG8vi7hXquPUKOi56LQhgio hunkbkN/PU1RK7aR5whXw9rSBNP+Q3rk32Da/Csp8RJsyr42FLrjiWs1bVOSMw98xUNqNzDv pL4yMN5eh54HzQrfGNhYwXpnIfPKt8wrEQ+FEocfZLYq8ti5tjdzrgX8Cq+mXNPOwBicrKv9 lOPA7dSgHifX8TpyXUS4Y91qymeCjvF3JsLvQ6KJjK8nnHcvZpZJ+oxMnilKVqxZQsNJxy3E 6xTcrw/lc+BvQr+EJ4PFOvI+5HEawyPFWrOBL/NxYZS/iyJUYpD8oBQSVt1EGxKvU7hDzNoD Icfg3A4p5IZH1Y03UMIa6BTjKkX9woo0hTzCf1VQVL3YKy2jdLTMB16nDLVShgMoQ75VoWlf Yqm/VVc1lPN/6e+vRG63cN3KaVNUoGMc3aLjQDSKcCGX7jZuuqN8NuW4UN4Oyv03wSgY2utd xUXT/k6TN/2dAmo8Vb3DZ1XYMh3QQZOPek9hP+PaeuCUATAQpN5XoKFvnT7gPcAP1LYKBO8+ tXKZpj7k9b59O1F8k/4GztPUl+p2jr9U08KIOlbZO6NkLYyQfAfnauE9FT1U53Qt/0fCOJEr t1uhlONoLD/rc3rBcKOePwLzht9wI36qnw/N4Mr+N1bSCQfpH5BFopvSj7mV5hq/Q+N+Zm5I MGXNeJCn+QG/YnOyx0B6fd2qQl42HuJl42Ro5VxC/t3UeiVrNPWsAb3Rm/wyHJ7jjF8m1L6N KPludcbFCzwuDvoTI3CodMvppzHTXYrzmFFFuyc0aiot/5Sy4XZqWdPp9hQXur3adLo9xYVu 30h4AFcljadiKi6THyjk54J8zUNEeBjqsF53ZufjmEmqplQ5S8vp+uFlQtz2MnG6fniZOF2X ZaJqLdLx0eYMHXxUyYP0THZrVbcnqF7fg+r1Pale34Pq9TZVLvj3MjNNArvW7KJ9+hDsEPYm Cv4IF7xy5dHHaeopHeexqqxqJ7tne2T3bM/snu2R3bNOJSYm0j3XI91zPdM91yPdc0668xPp 9vVIt69nun090u1z0v1G6SqpmV7UwSTYAbzEQRU6qvgKN17FaaD7qrh5hL0hbm7st8TNM+Db 7LZ3JB/pvKmAoTn1hfSCVlVf45TT7TpcTnHb5XS7DpfT7bLLeVQinadHOk/PdJ4e6TxOuhsS 6Xw90vl6pvP1SOdz9ej2JuFXA/zaf0MdAaw1FygetwNvh1SO1lXTGbebeAZ+lXAhH38vVDgi HQI+iPPvZp6IUilq/epaTcMAOBJL40uq4Tlyd15BoPkNckHG2thFUX4mn6bPyafpECKEUCZF HdYUZGv97f+gMtxFf0258Kyo7unVCq+htlX/+n1EDUO5FKolz6mGCLn7/ZM8b7uDFl76aypA NtX0057w6oBXVxUIdHZRwuYZVaIs1byEHH9jkXxjmNrlSARuobzuRuBV5HgHjh3kwM1S005y NO+hn3pCzU+TYxgcr5JjOjReGvsSkZtB5EPyugVJvkbJG48m/zddzi71Gt6+Dly7VlPXKr71 2LqwfcVdGhsBl06+UR3uZHHbffmeDOFGXsv89Zq2FmeufS4Voj58gohBkSivfCx5Pu3CfTw2 +PW4C3nGxSfdrUYBF+JZ12M05X0edHr9OZ7ivDRaGn+h0h50OUV5oQe/iVtKMtJe+8BVg6qo JHVgjteIq/hx1qvwGsIPvV5vqOd14zy+NMCdRe1p5DOJqSt8Ke+F+6g9KOuhnPQFvoTcqg1b Vw/TT3hKAt+GDJDpzCXQlM/fPMtPbdC0r1CbY5TaTzQu261py4lOAT9CWsFKhVcAF2EWWMmM /AI58yBvU0crVm7c6i2A4qNapaA1+A0FV3CLrOZx0O4BTfqrsEDzeKZZ8UWM3UhQcSiT3azC q+XfSkV6CWvIBKW2U7LOB2jcJDtFGsvJcV6TIo3jZLckO0XqVh9IkfK4SOM5B31rQHYfE7lE z1Ds9veJ9Ij7nVIt6VGqJT1KtcQp1SEq1TPgggdo+aMSvU5/36MUv+Dst9uFs19OKLFyMy+M DDmbugdd2NStg7W8/Nca6ViG/dNnLnUAVPbQQgnhQwjd+bHLPlQKk33iwv35rgThT5lwkGar QkhJ1eeuH2h3MRR4AZrjCxem1wXAAbThl4zPAM7GtuE/jG8AHjuCsMtA/R4n3O9uKlc9lWXC nsRE2eNwJm6t/SgKvSARw98jhrjxYSwaYaehIbOV0h7S+FXXr2GnA+Pc0sURZ0OYw11yJOF+ sylhNyVYQ38V/TEsC2TLBs+j4PlNLntCOb1kzpy1cOPQvjXCeDUwpuQ7+RsafNEwRwbZ46fZ Fw0LBb+PQRfGLURiS5evJaHk8oNnCeF/9AxO15KuJRx+vKdnXEv6Jzzf7OmZrSU9DRoc8n3P kBwt6SN4Yk+f8IxpST/BM97TM09LChAO1/b0zNWS8L6MaUgWiMP5cKnDc3rGztSSxiEYP2U/ pDnTgtu16SGlDcejvJYL8Y5EqeF4lNeyWYB26lRsb2E4y1CvE0+F35EPv/CjvAlDezzKK/1/ 7VFe/8OP8vr/r0d5/Xs+ynOz8QbnJd7fOjXNyuUXO3h+Zx1+fmcdfn5nHX5+Zx1+fmcdfn5n 8fM7l2Pukd/cBfoiH72mHyTRTArP7wKHn98FDj+/C4g5KTy/C8jzux9a8FKLs8VLvMDhl3iB wy/xAg14UtDzJV6gEU8P+CVeoAtfXOWXeIERl/M2HC9YPfwSLzDhFva5k369D+KI7ztNxHF4 Mut9OeHjeL8J2R1KZn5Lx+x6vwuPWQPXUlEUP9PLyP+VPIIwvcjP9DLyLdxAZZSKLSwtGY/M MvpOF/mcpj8+hAILYdgxiBiPDUGaQmsvLSoZDbN6pml00rgNxWVGifiBX24+a1DhgV+fOAw7 Bnfq9gO/PnELD/z65No2GS088OuTZ5uttPDAr0++FA2vnu6FOiyb+gspt7EH/njoF8t/EVST XPZDv5hUKlbMRSCqeH4XK0mSNwQWHvrFSpNcDtUnQAcP/YL5GehvfujnZgsAfuYNvPkrya9H 2OE3f9H8IdD6hvid3/xFJdNor0yjJSKeR6u0ujT72aPbCLAbWzN+mGXOxHmUH2aZc68GWYwB fphlzrVWsHDuLJeQRSZF7fuS7A7CwyxzHq5jw4cfZpkLMByDv7nsh1nmAiZirraJyMMsc1ES zZvBPMN+mGUusvAwyzxusvN8Cw+zzMUViPUvw36YZS628DDL/FYUITUL3WF+J6/nDAsPs8zv FzPyWniYZf4g798CFh5mmT+eJC9SLMxf5k8iRU218DDL/FVoRi08zDJ/E5Rp4WGW+fs5nC5u 4WGW+dedjHLlYZa5dD/KiHLzwyxzaQQPs8yg2idVieBhlmnZ0IjgYZYZUt9IMSN4mGVGlMGN GojgYZaZomxjcRE8zDIzVDWHpkbwMMuM2qHRCB5mmXE1iUPxMOs1tDEeZpn7WSiMh1nmS+zE wyzzFYxjfphlvsZOPMwy37iI3z5dganpFszPPvw6w/o35pd78OYDHeF9kmPgF1ZROJCt9/yb /fHrBH6BNBLjZXKmoI6KZ4x/S4RD8O0LX9SIk/kwlH3wYxeGCBPwk0/KpETUf/+fURvZJAEi pIJJvUW1aXiYVVQHzk/Dw6yiekRNw8OsogZYvUzDw6yiRoyBNDzMKmqCOlsaHmYVNUOLPQ0P s4pasINJw8OsotZj4cTDrKI2bqJ0fDFoLv1liDgsmg3N8vK6GD/MivHDrBg/zIrxw6wYP8yK 8cOsGD/MisnDrFjPh1nl/UGWH2aVD4OuenCfx36YVT7Mwkun8tG/2eMSag7lY217kBY08MvH ZcvDPwsPs8q7ZfAFLDzMKh8vKGThYVb5JNsUoYWHWeWTbd6y8F6qfMrxLmF8vKUqnyrTbK6F h1nl0wRB2F5KeWUyxMMsf9tHKG7Maz/M8rdxcf2J4oKYf9zL8mSJM/J3H29Pifwwy99eSImD D3nth1n+dgsPs/yTXrMp4GGWf6o9v1l4mOWfdZS8RLPwMMs/L+qTCuNhln/Rd16pMB5m+Re3 +qTCeJjlXyIoauFhln/5BT6pMB5m+Vft8EmF8TDLv+ZWn1SYH2b5++PtXxCU+WGWv7+Fw4D/ uH3yHtPCScG//km3Mwf/hJkahuKVD7/Cvczy++SZ4hv8PDIHL9Ba/0e0f/eINgARRiUiaCmL 4Oa46FdJsEheVj3ELxUR2XvO/yB5jsTYx5kegxg7Dsews7rYh+eK9AM+z+jxMCuc+y9sM+yH WYjBL7CSO9/FUpbtt19gJXcmr9eS75UlVUs+Xku+z1leocKdvFuQ14IKd/L9tr1MTR8xiODo Un5VVoVVtQvSPn11O3lP5QUdb7SSZ2K3FNzst99oJc+08EYrVCFK01oy3miFKmUmNyy80QpV CUqy8EYrVC3IfqOVPOsq0PvaMV+ZPMviN1CD37B7FDKy0DC7lBbeaIWG3yxvtCy80QqN/Ie8 S7LwRis0WlZj+41W8pyfQR23l/xGK3mOhcNVWv3f8+1BTHmlNTjtA53ctEa7feSNVvLcNjxU u9q032glz+XyRR50yoc3WpGHnPLhjVbkYUEhC2+0Io/YFossvNGK7BUUtfD2I/LYhnxZRXQX LZzJ8/EKMaBDTs2PtpIX3IfMLwvYj7aSF3DmKaOczPnB2ZgfRCXCwuuSlLFO5ni0lTIu124c PNpK6XYyx6OtlPGC4hYebaVMlA7MtfBoK2WSbWjXwqOtlMmCSi082koRZiiosPBoK8U2yVtj 4dFWynRBDRbuWlJmSMwWC4+2UmZKWIeFR1spswQN1IJ3BexHW8mLuHqpdW84D8XxaCt5CerP j7aSj2RnsIucS1/Gq7YrgmBUXBss5bS1lU7TvFBLqCbJnoIvormrtjbJnoLHdRBquitPmiYL MZsfzZPG6ERYy0t5Uv3G4YTaZNKtsL6hg3Rtu5knFf59AKF+HzJqyFpAO+TaAYjJGu4tFs5y tZ3T7TqfCkKDhOxAayPQYEFdmt6PKCUvuwHWbGEErYNgXCUv4xrVVdg14hzqqhI5BCxcldXV 3C2qKNZCOpnU1QJBp8a6kWpcV/+YQN1aQNNuXQMOIa6CS3QtCr4wklfE+OFbrMfDt+RVKEL0 Gg5fFyuvwnJ66WAspzc2YTl9GoLJ2B3VWE6tZiykY/rzQrprCBbS2MZK+k+PdVNbbTBiv9D0 scEbyyECG0KxRmLtDbmxhVT9DfTPiMWI/F+PkEvTt1P5k88t53d1A3gWuh2PB4ZTpmV1j5B3 YBhf8BnQVw/ODtnGLjqqIjB20S9h7CICYxf9wupamYIiMHbRL2JDbwTGLvql2DAQgbGLfqk2 DEVg7KJfmg1TIzB20S/dhtEIjF30y7BhPIJXtv2iNsyNwNhFv0wbFkZg7KJflg1LIzB20S9u w4oIjF30y1HbQsxLERi76JerrmfYEIGxi34JYxcRGLvolzB2EYGxi34JYxcRGLvolzB2EYGx i34JYxcRGLvoV6VuZsrDIzB20a9O7WbYFYGxi34JYxcRTJ79OhUfUAsmRWDsot8gG06LQN2+ X8LYRQTGLvoNUw8zqblaNixc9NsZRJXYwkW/ey1YuOh3n1RSs2Dhot9uqaNhwcJFvx4WLhax xT88JUhH6XAQy3AsXKC301/o6Vuv6Y3EgtV5b5FvcAPl01CNvzweNNXDnWkAevTVo/4Tlmlg Og2h6jGV9gx5FzFl9bgfwzINvEbLXXW3oKi17xhCE5LsndhoarXqiXeEZYZ8sY3QJEGF1ltA kwWVWq/RtFWdmCGxJFXPkCWpRosiklFdGLugHYNqWA0G1UVdGFRpwzGo/tOGQbW+GBdC+gEa R9XlqFn0P5yuKrZ1OAbr8Z1IfUsxUjeU04COldSAxsF+1FSxt0txw6O7aDRVN+/m12LYm+qF lE9VX0+EWquGfmja0bxVfa1AJSRS0+0j7F2UuGrSNZZsn/Q/qUmqytqRZjX9/EEwtaosed2a RVrV9IvlBVXyiqUrtaojjpUlNHnFvPVa1YxjnU3F+wOJQvnJoOCl+O8NxAuEcu6jqrlOH2En XbVA9sAB696lhBb2Ff1O6yjikqpF40S/09JKCC2utFexW2ierDrSWcXuAFp6reh3WpsrIFFy VrEr5hFavkOeK2pREDeqmmNnDER7Dq1Fe17QifbcXwRdOj2VeKmqAyWOjuO4A2LnYa8VW9aA uF5iI52O4rT6Vg1uQKyLOdawWHYlYoVg6i6WVQqKAyCnjs3jqXN7O3roeaKUFLu0kDd249HE 445I4bfGEX4WBk7aQJxQWX4PNObxBu/UNlxFlEew3le61P2iNBvB08JKQwnPGpE/Iehzq9uc /VU2ZVdZgZduwXmptKQQLKysECL+3kTM3kQCDpGIOYxgUL0kO/vIq8RWlZb6K1dmQKgvViYr 20Y/7ZioYSorl8PK40308496FLtSckztnWNa7xzTDxd7D+pedReI/Eo/D2JQVFYJkazeROK9 iWQnio2HnJU56gNHr34wtXlltRtmGR+jn0EEB1ZWC82C3jQLe9MsStDEtXplsZKxHchZr1WW KGH0UM7xWmWpDaIRcGJlX+XOk3WBy1Km7JNb5LoOdC0rJWJdOBeZVCjZVFREqmvRgjapmsjz LT1gi6Z/DdI1z6Me59HM9tUA1KNG6lHXux71vevR0LsejT3r0dSzHs2969HSux6tiXrgGVxl mw3terT3rkdH73p0HK7HAZq9KmthVTE4OEPTPiDYUVkr9ejsXY9BvesxuHc9hvSsx9Ce9RiW qAcXfLhd0txICsrSpVh9mOrBBR9hF7xUCj7STlshBXdgg6ZfPggtjZduwe/o57JBGFN1UvBx vQve3bvg43sXfIJTcCneRLt4oQhm5MpJNkyNQBO3crI9xKIRKMtUTrEvo+KRryB+n6r22VuQ OchomghOC/I1/cQGMMLvKO0QmkhPaMB4rJfSruxd2qN7l3aVU9ocmt4rj7HZ1a/pr5SBmcbB KmMWHb1fJjikskFIzupNcnZvknMSDeCDmtNcOzQg7THPbo8QOnK+3eCp6MgFNohL3yy0YaH0 zaJEV2GpqFyslubKHupHzEVL1OBc2UPdO5TgkUrWjg5p9KV2Kw/U9HNKMSiKYzhT0M/ZpXjo 2yjVOrZ3tY7rXa31iZaigh9vd1QABXdAKIKDd+UJNkyN4ORdeaLTp5q+gnbBlU03IHN/pqYt r4L13SbJfEPvzE/rnfnpiTZdgxF1hsr292jTM502leqe5TCVpn+FxM34yGcQ+p7/qYbZ3WbJ 8bzeOZ7fO8dNiRwfRJNdkMjxJ9ojVV5ow1BkGsqz2YapUp4tdnmike2tBLeqBg6l4++ogZhq bkR5yrI0beRAlKdFynNZ7/Jc3rs8VyTKgzeFlVfaNAORM+mcUnmVOpQr5eHSXt27PNsS5emL YX2NDak872GSbm2kogQvoJ93CaZWtkp5buxdnpt6l+fvvYf5zYlhzvPMLfY8E6LdQxPmzyuQ xV/0M55gaWWbZPGP3lnc2TuLnYksJmB835XoglOwWN+tBttcB8lB5X0qnGd3+s8YAu3+ODbM 9PPTULBZu+T4Zu8c3+qd49uJHAeDk99RS/N6sNl7CTbjAfq+Cth8zgPUgemafgFateN8FODf 9LOJW7VDCvCv3gV4sncBnkoUwEDkp9XNuVKAAoQ+Y0Nq1f/SFrmy3zfIAmZGvx+OLPpJFnt6 Z/FQ7yweTmSBHX3lI+oFOwtsTyv3OkdETT8dimD9x2fDmhH9nFaIZuwvWTzfO4sXemfxYiKL m8Hv++3ZKBAZh0n1JRuGIq8g7ct2Wuq4FtrZVw58nDLrsy9H05r7Yc4dmMs5/ptzzJu3kiac j9WttNnLLcdm5xOFjWNuKdyfKuz/cr/BfvAzhZ1Z7gFMwZ8rbLByeSX/QmFjlFuEBeVLhc1F Ht5hV/5HYYHOvYK2sZVfKawiuTegAb5WWP9yU7BafaOwFOTykP9WYf7M5eF2UGE6y51Ou/bK 7/jJRu5xSPu9wiDPhSpO5X8VBljewpULtcpDCiMhtwRt9YMCj+ZaYLAfFdgl9wC4/Sc2HwvL l/RfFHU3KlfFHqAsTo3dxOejyX2x+95PFdRj84qx+36yHrvvymHYfXf2w+67lPw9scAAnLqG UHa+2C1EwR8bQHHM2I+dECqmt+FC/UZyW7FZuAWNLeJLj9NprgjHuoh+JHYbnbpTYjsaicti kyl+WuwAzULpsT/IPyM2gvKNxgbROIvFphCdzNh4asas2Kt0XovHbqWmy46dQeXJiU0iyn1i 8WG4TtlAqfJi/6HDaX4sTnQKNH02euuyl6nvox9wje+N7S5DXT/mup5DcwedRzZSMSofeIIi RLG5MSofis2pQ6xmjrVFWqSDTzj/QH8+9iXiDua4z8f8HYh7I8fdw3EHN6P1FvdD62U1sWWi LqpG5at4zBddyunejf3JJ6MHq5HulC4uCb5MXHlgLGLdzLG+iN01HOF/tICuWQKKRw1E6x9Z izb9pQE1XzEYF0maHgS/f7cWyV/g5IdiFfjYbmwK5Nqxy9m4sO4Cm/z8T8Q6xLF+i+3m6g5u Ray/WjlWFkbaX2/lgmVwi+s2sF9wGzjQ5rfmYXr4p8qbr1XuUkB5a7TKexQ+2Jy3XKu8V00n l5YOnLh6SNHS4TvRwT4tHdPhWQ6G3AF3FXoJjYHa/BMoLIi7xuJS6AvkW4OI92pnFto30O1A 88YyMqx7cMO4cCUjr5aOS8k3tISQKx03hpgVHIzLx3yVwG7jM/LwH52HCj7FtqlwQeqNQmHI 91Ue3mWT0wczovKTk89j6XtOcQ3fvf2cx7fIlAI5SSp2/a9UZfRfysreMRORKHwSK7V9zXd5 d3FpNrO7mrsBn22J4h7eSKuIsdWsWA+rWWnVF1FQOu4vz863K9jHtnwTxYW3kdIQY1taMbal FWNbWjG2pRVjW1qxHra0UtqfzscsTWPTqFgWu4U5PbsF6e7jc//XdUh3Wx3S3TWQ072D5y/H aHg6N5HTXRp7h9nrvGFI93sHs9deGsQVV7ZQhIKzOdZCFbuSLwHuHoBob4FXY3t5GsppAHOY 31LKimX8DErPhX7FdBYNvgprhmtvJt/ge/TzCsGQdy1f8XvPgxTEuSrxnm8LHZMXat6/jygU XmFDYd51nyN9uNA2FOZdx1ctvvHOVQuugnzT7C0JmrOAOx7Uf0VGJ+ETmoWg6fXekLxY8+7I Zvoa8rpRLrIMLfVDjnBx2u+4C74U6h9pv8F5Ge5m0z6iNcR7ORaztMepdb1XsCT4MTivZEnw 6dQC3qtYEnwanFezJPgd6g/vNpb57ofvNSzznYNZ4lrUOO0zmpS8f0Pl0u6gPvCyfmXaDJoi vTeV4uWKXk/N6Rv9FRTpanE5TrDbN9rCi1DfrJhX2iCbSuqbPxxv4AqGWPuGQ3InqMv6DR9N OXo6o9GaF97Khxx9GYWHRd6g7Z2eCCOfMUgBs2tJdcvIGT+mxDG7llTHXZDk3EgmL16iJY3y 9eUeSJ5PYLSALgtm15LGAOEJrQWza0ljBe5VyTC7ljRO4O/Kgk2gpG6Bu3ULlrWSxgs8pFsw u5Y0QeBOlwVRdtIk3KrD7JoFs2tJkwX+7LLwBjJpynM+ztewYJUricU6MLtm4QY2abrATYaF RwtJM2JMeYthwexa0kyBOwwLZteSZgncbVgwu5Y0W+A+w4LZtaQ5Ag8YFsyuJc0VeMiwoNCQ NE/gRrcFs2tJ8wVuc1swu5a04GyWZ+x0WzC7lrRQ4C63BbNrSYv7Sr5uC2bXkpZJmfe5WTCW tFzgfjeL3pJWbOC0r7otmF1LWrmW4ZtuC2bXko6W1njXbcHsWtLqVimz24LZtaS1EILD7JoF s2tJ6wZw6OduC0bJko6VUMfsWlLjScQM8UWljtm1pEbmiPS2nvef6f2d+0+YXUsfcDLzRIj7 Jn3gcyIEt2B2LX3QBRxWCk5KHyzM0wFOSh8iYD0zR/pQ6f5dipkjfZjAg4o7OL1LmuN2nTs4 fYTAnboFs2vpo6VKu3QLZtfSx0mViM9Qw/TxAm2za+kTbZnUYbNrSZ2rqLpB5Mhm15I6LaiI em5+z57HYHbNc6dcW4QsnE49u+TWImLB7Jpnj6AUbhzPE466BMyueZ4fytWMWjC75nnpUAUf 2iyYXfO8VlopTYX9t+cd2UI3WPwRlw9GcboW2p+RA+xvr9fpYJzEMkMY3X1Cfo/1HOPZbXzL O4c5RfhFf0ZXUzwjvTbGZtdibHYtxmbXYj3MrqU3jado6eg1VMPJ4xrCSG/j6N5y2Eg6N/ZU I1aPIITAsXdZ7nbEYKwen7aA7sdl2MQeX41N7IQh2MQaLI/zYeaLVUC5InbZAGxi/4XtRuy0 Omxin2nAJnYpZMyx/u3YcG0bgk3s663YxEbrsYl9fAA2sXcVYRO7ugOb2PQR2MReiYrGrqnD JvalSmxijf7YxF7bD5vYvmXYxO4Zik1s9VBsYl/vi62cZxA2sfmF2MSOoym2IPbuELya2EAl LIrdSvkWxy6nfEticaJTGvuKGrhvbAF1ZVlsNeVSHrsVr3lii3B+ia3ATXvsvxRaHfNRXWpi 19FvbQyatXWxlZRXfayFStUQWzQU7y+PhkmQWLQVzzOfpS1pS+x1otYa+5BitsVWUqr2WBnV riP2MPn0i62nXPrHrqZUA2LF5SzNnEXN8agWq6D2eIwWc9p4Pq7FcqhdntBiD1FX/EuL7aaa PqnFvqSMn9JideT5tBabSZk+o8WWkOezWux56qjntFgRxdynxfxUiOepb6kHXtBiv1F2L2qx PyiH/bRHp+XxJS02mlr7ZYpJq94rWuwzKvurWqyM0GvECYOoYRoOgHGiRgW45cfYLfgeeezp geCWM5lbvuW9Rt9OcMugKnDLRVgqYpGhLHC4g5q74a/nqJLmh5S2oUJlEamii+jnAOFC8ohg tDTMVvb8FAlRQRvm2neOch5umJfQlsPzzob56ukKOfN/TZ3dsECBm3GxspNapWGhekHGaGQa nQEbFimDYa5m/ovataFKXYsigMIThEPkwQO2sdyZIdcR0cbK2zucbUtyBYYgyhz9Ag3hmRC7 tx8a4s523kHWUrt5Jr+KXPDSxrPxL3IGMTWwNUPPRlaF8VxuK8mwKoznCufj6WzN0HMuyzw+ ooSe8/pTyuAd9PMhwbjnPAvH25pmuXfRLFx91bQIMnjHVtMqyGudQY1X0+boh+BKpqb9X7b+ Cu52azoc/ZA26qyafl/xzUpU00+jFvScv7sSH64lihsILlee83kz4/nyQ9mWWcOAvpF7vW4r RHOH56CgSdYaGlOen5bUAU2zPETJ8+vxjGZajxDHeH4TNNeCor7nd0ELratB5Q9BRyavmLdK 8/wpaLnVl45rnr8ErYosGQaeUgLXRhYBKhuuj9xN48zjUpcxPCkyHDOyW/2zTiyGRIYTH3s8 6tk62e9EdtGQ9vjUh3ViMyRyKxrAtPEmFbmjE2+N1M91ouEQmUlD15OskuvFbEjkRDqhesKq mPEVKrIYTJCi+jHepiLPEm94MtQ0xttV5C4MiEwuLe1dFN8Qe+JqDYffrCIu4kVPrrqQ8e0q 8hCxnydf3cl4p4p0o7aFNt6lIteBVYrVfsa7VeQGlK9Ufcd4j4oomnA8ZSrSIBu6yDX98WEx Gz+hIqXD8WkxVc/4aRXJQP41ahLjfSryX7RHnY33q8hFaL8GtY7xqyryOPGPp8nGb6rIABr2 nhZ1GeN3VSQT7dem7mN8QEWq0M0dNv5YRb5Bd/W3y/O5inwFPNDGX6nIMei/QerNBtlGRF5F eYeoXxgfUpE2akjPMBv/rCLr0R5dNv5dRc7BnctIldnI/a9H3qUR6xlt4zP1SBX6b6xqZ7xR j3yA/LrVTMab9EgR8ptgl2eLHjmI+k5SJzeKTkvkBpr+PEeoHYyv0CMTQX+W2st4mx5ZQtOb Z556g/F2PfIUTbyeBTbeoUdmrCR8pPqD8c165OOjCC+zw2/XI9PQHkerWJNslCLvoD/WqsFN slOKDMSQOt7Gu/XIRkwxG9SaJtkrRWA703OGOpfxXqo/htL5agfjJ/TIp8Cb1QOMn9Yj56D+ F6mXGO/TI9ch/BL1FeP9eqQM4VeoYDP3P5Uf9bla4QRH/a9HcBDxbLPxu3rkeOBrbHyAygd8 rY0/1iOXA//Nxp/TTu4P4lzPFnSr2xiI0+F4PEzyYRclesreJYc9euo3Ip73+EQYjNDDZ8vh 2HBCF5nn8VMReMfhwDskENO129iGwGcPB+KUTd73w/vDw952Pvvh/fNh76Hi/Rm8MVHY3hOF yJ/wLj7sXSnHuzS8q+t32NtWzKzANgmzB9/T9koxGEFr/keQ5DEbQRf2DsIlLgUdj6Bbegfd Iu8BH+PP7l2CCM/2jvCs/WCQPwd3DyL8p3eE/0iEX/nThq8jQqChVwRACrqVdQ5+QoTK3hEq JcK3HCHagOug3hHGSgRcDLuNVkQ4uneEoyXCELa3eAQibOkdYYtEwLWx24CUMuWu3hHukgjf cRbbEOHl3hFelghXMIWHEOG/vSP8VyL42Zbj+4iQ2tgrAiBusbLw+xciNPaO0CgRbuKWzCWQ MqV3hCkS4QKm0IkIx/WOcJxEwE2225jfiJuMxgRbwSnDxr5WqGeGPwPR9v4f0dBnCHvjcBju Hcn7SXj/0dv7f5N/D7Ewe/WMZYe5yDsFM1ePwnM4NifyY8fsg49nrPkfVA7H+l+5jgDlc3tR BuvDd0fv/LCTwx0hgjAJ8pbSSXArsn3pcLbfS833IvJXvenYGb+BILaxcTgIkIKGsT1DPOBj a9Xu2hzyD25rtq1Vu2st2F92N+GMh00WrFW7W+T0KNaq3awT2sNatbufHIIT1qrd/dnjsLVq t60cmrBW7R4oHmKt+gk6N7jr/k45xc+mPfPjBLcrdx1v99xD76iUy6N5Cxdq7q5rWnhJ1q0+ YyhwpMCDuvUVMbF71J0t9iXQN+CncfsZ/qxbf+IGf7xE/l23sKl0T/iU4QaX9Setju5JqpUX Y5eVQoube3oJw40uayyt3e7ZYxhucln9cASeJyvFFpc1GnC+wEtcFhYi9wKBV7gsrEPuhQK3 uTTv5bh39eHX6dwUtK+BanvvTASSzw3w2X84Onckyu08k7mHfFNQBcVa+Hay1+GLmsizlZ45 fQWKqFWPAvxvbX8PRfCO+b9i9Xw6UAkBQw5VLqdyNjmD59BPNsGunEoLRsZz6lAv8I+X/s9p EP4ZoumYCFqqL0IanfaU8xrxzbbq5PlLV2otzRNbJQ3ssbW0yiGry9pKe5mWNkGjLdj8aWkX 1G19Sfuilg5Bk6w0GC/qL3lNs1poT9QyQNBMK0o7wpaBwztk0/8CaHaO6ZBN/0aa5VoGyX3J kRYUSVoGT+yQTf+ZtPNoGSq3Nauy3kfYsAS7r8o6AWSHi4cFjyNQvi7xCMLjURrJLeMS/L8q K4BydSf4f1XW8BB5jGcPlxceOEW1TGAPw4AHjA+02FdNLnjgFX3LJPHQ4ZGPqk8RDwWPRbTj bZkqHlx0GBlvmZ5QoV6b1Uxc3zJTPHLgkUmbqpZZ4pENjyk0/lpmi0ccHo/QIGuZIx5Z8Lif eqxlnhQ9Co/h6JD57OFOgcezNPJaFkqSCDwm4k5ikXiEycPahLoskYPbems7Db6WIwWdZFXQ OaFl6XQlxyZrNYq8TOCZyvqBBnnLcoEblfU3OsS0rLzGkjOTdQzKdjQmSxyZNP0S2jO31Aap XwMXQ7NbH4KS1OFeIwi+GEww1CJX1i2XOMfvy9EXl8nLHxy/weluA7xLYxc8MrcBpiMWggoO 6XMIbm+ewXdwzXPPsTl6G3FR84JRfeW4Zhl0fGpeKPAKZd0AAxJLBG6DKAtPVtmGv1GFk1fQ 3c+24W9U8fAyGpzhBRv+RrPo6g6xYMPfaHmUmVVs+ButCWbtol3tYCjThnB7VUE/vw/GRGtU 80Rr9N8mNMXUv6sSovbghH62qX9XZTJM/bvq7u6wY7mI011Vs0DsePrRS0HMVcXEXM0oMkcb BVFv7ZkgVk29OZLgpOxarkZ2kzPi13ThcwOjbGFAFKhN0Ois64FkidGJT7uzWugwmW0vMXF4 FBJbZA9IsGV31leYjuwlJpOTEI9ld0qSKDzeoFGZPUhiZGAmKSDmyR4i43yCGFnPC7X1x2vQ /raR9bwQX80UH5O4vIYBzLXZ9jsLmHMoPtZWZbNgZL34OAlLtWBkvfj4zIFydwsj68UnnOqS 21oYWS8+ScJKLRhZLz5ZwhosWB0sPvXeAXJ3y0bW89L3o1S/9LeNrOelc6ny05xSwTJTfnT2 QOFYHVbV8zKNAXi5RD9sZD0vk5XD24pWDZQ0MLLeVmI/G7BgZL2t1H41YMFebluZ/WjAgr3c tnKnljCy3lZpPxmwYGS9rcp+MWDByHpbjf1gwIKR9bZ60fLI1aKoklGcG2Mj6zE2sh5jI+sx NrIe62FkvbgY5Y6+yynGxdjIeoyNrMd6GFkvnvgoRShEMwaKZ1lQiCqe/e4AqR4sgxXPcaqH q6fiuVIF28h68bzPBrB4llqVjawXX90EUajRARHcGFwx+ooGOosvG1kvCExDXraR9TEcG6zi NjgfGFlvS+Wn3jCF2n7YFGo7m0IN4t6STaG2D7WgS9w+7Gm7M2AKtX34m4y8yTCF2t71ubCO lg7vswceFoN/3hO7tPSfyX2ig21TqO0jtiI5rCUXllq0MATYWnIh9L5LC8uZfwqdtzYWbNoU VtrqOdz7hXafhrj3C6ttVToL1pILax2VdJhLKqxz+htmdwvr7fchFizHFjaynjk/4HTBBWvJ hU2pnWizi+EBq+FZhXeSM/hmp201PKuAi5f1g1M8tgz90+7BNnvDanhW1b9RqcNWw7OaDjHV X+nXa+Itnw+/CcMByAxWw7Oa44PggWGW0ox4KHCPuGw1PKtlEMfCo8CU+YOcXTVcvcjuANlT 2L71Gk5wPP16L+HsD0eGPQBJUXj+YBgfbWc5T1aHtJVmwfhbVn/bwoAFq+FZnV90yliE1fCs QafZfQOr4VmDr7XHIix2Zw2VmKkWrIZnDbNfBFqwGp41XGLGLVgNzxoRHiR9A6vhWSMlZqEF q+FZoyRmqQWr4VljmjlmhQWr4Vlj7ScdFqyGZ42TmA0WrIZnjT+SY7ZYsBqeNUFidliwGp41 UWIOFKvhWZPQLmw1PGvydYPRWmgNthqe9d3d5AzYVsP/Du/3aHZubXwG3nCqwkPkDLW2MW+0 tvfkjdZ+hwY7i/XDcH1L7dna/0XO41d4/Eh7tviI9CFEDE5V2EnOafHRTCw+5vh+h4nFxyGM 9paU1oTrFdpnxbvjQ0BsODyOoU1yU9ECEINTFW4m546mUibW1Hd6x2FiTeUIw/0rJZ6GxJ9D VlOxlJzRR4dgbcqPTWPdpr0wCR7bUQYOHA4RmKa/g44t2Y5kJzRie/AGOeMdtN86nmCHrndy lvq4CXb5f6DZWJ9w3nDO0mXBgKw+UeAOlzUZU+MkgTe7rHtxIJws8HaXFUPnTLtruC1D/w0Z HjGf4S6XVYkT2YynGO52WafQbkqf+T7DPS5rEvKdfYjhXpd1Lm2I9Dn+Lr7pc1nfoALzhNTT LstEvgsE7nNZY0oILsrjyPtdVhVab7GU6lWX9Qpm5yWDOPRNl3UWmmeppH3XZbWgzMsEHnBZ xSB1lMCPXZYPL46WC/zcZTWhkCsEfuWy3kQFVwo86LIC5NBXSZkPuayNSHuMwJ9d1s/YJ62e zvB3l+WGqGWNFHKDYb1LmzB97SoOPdOwnh2KuUZCNxrWUZANHSdwk2EloQrHS75bDGsf+vhE gZcYVj9U4aSzmdQVhvUq2uoUCd1mWBXI6NTrOHS7YYVRjA0SusOw1mNndbrdv4b1K56Fn2H3 r2EFoQ9ypsCdhnUJloezpIK7DOtktPPZAnfTKowPMOuDsLUPgn4GwdH6IGG3kRX2Rs9tHElh KeuHO/MjXFhB8bwLOSnH5xT43Jbw8S0b6PzcJhFgQcZtbAE5MJlMynbi+5D4/cOJ7VvI5xEZ PKcgGXYifwxf1ENhh+z4/goS4DGbRLaobIXIJ6UD3nzm5SBACrqUx3sJ3o1NP5wuSdJ1wXvV YW87lzkgh75Tj/Yo0bHwRZ8dbiO+N6KgTdAfnEUzWd8Bd5MzAKcqfA+nkr7S2H0H95zo+g5F mEx0f4cLplz7DtvdBWL/hscy2vVmFv3Vhe0i7ZkBh2QW8WFEnSzba836GTdIpwgykhfO19Sp 8wfJauNCOU+bMERWm9MhXzzjssGy2kCHT53p7PxWgcjZzk7gMkzR5zg7AQ+y2+jsBP5DLK7O tR+KWp2YMs+rtFebJcjhfPuZqHUfFs5NlfZqEwaVCyrt1YatcW+WmC0Wm9TfunCgrDZst/qi aztltSnMGalp3ZkyH2f2BTc6DZhZjjD5vsQhtNfYdtjcR1MVDx+JOTWzWpLV7BsiTK5fSkMy s7aaQktOpR+MULVecRfDnFQm/T1Py1vppZjAj1PoX1gb7/vzSFSGzinqTV3lUqz1ezXtF4pZ xqbU3tBRlyLaO5SyMXrB+lajHE8CCSL9khTHVOBbOrYS1xCuHAGaH+lQBNS3TquCWYtnp2Dh dA08m4dRIaWsrh4FKrgs36MUunADZf8o/b0CGi+iFg+xv9u1FpbCa9YiwQQcky/l+6X9FLeN DpZ/UfzagbRxq2Nz45d+PAVptu9SWh2bG78Ukd2uLSDSd9cY9Ce6eJCuBlLq2qc1rRxfn1q9 6BhNderYUk8lXM7mVTt1bBiuJFzPpnyH67jYqeAWGMMt8BKFVVzDFvF0WIP+L+GGpTBVjLe0 jfHRtI4bsHi3UIN9YkTBV8CaNpBnPdt2m8ImQ+vZtpu48UlqSndFIsrkHlHErTWfRzH+/bim HXrcibWwRyxxtzgRxO7mQh0Wq/B1u3q2vbnQtkna/DrRWvCEpq19wqG1rActcbc4EYTWMqY1 M0FrmUMrn1p427807Y5/ObSO7UFL3C1OBKF1LNM6K0HrWIfWSqLV/iS14JMOrVN60BJ3ixNB aJ3CtG5I0DrFptV4A9HaiRZlk+9n65jdhXU3MuvuS3NY9zyHdTXm3Q+Ed2eBd0u+JirYTahV iqf1gcQ+q+kPdt9khB3tjLB65pJjFLhEq26CoctZtEtRRyiOsYFSLX4Gh2dKOcRPAdPVN109 Us7gaJU8d8xUPHmsW6W1nkiEdmEWfEatouSjn9W0MTjIcpqnkdnxBOvYmP2zrMywblX7uWDQ 5zYRS++gQK3jViKyEzpNNyjVj01ZXg+v/mwFc8dOOBdjBN5471heCDD3uI0Ym1LBxNPqHadp 8/ryWOymEtzxnKbdR5QHMK1LeZe9VRv4E6VGeZ824Nu5EcSaDhAYdDE5B10LrA0+i2hhd6dO UWonETpqH3F2utOeJzvtWQo1OoLoOJqGSpf3hN7SJ0sY3saRA5VX4b74VOXGLLlubf270BLe wC+upHVPk34Z/Dxlju2SulCpVZTxh/SXTIe+cs78As68PcMZ85s51QzCQ5Zraguv4SszQGdu t6bBMqsapdRBonHf85q2CXTYGONwNk6zG5itaXZxSb4hXMrWNEcoNpKz1VvO1jRHKlxqW1Gn sKM525YS0KS/ejalOZFp1rMpzYmcoJ5NacrbRSrSj1SkBkjhapXaS8ncL1Kxo06RKjk5Pncm RariZM9EnSJVq39LkUq5SDWcA7WsNEQdl+gLit1ivKBpR7/glKqzR6k6e5Sq0ynVwPGa9gke DjyjqxCVaMuLUJujUrCBz6d0MHo9sDA0T7JzCA/hVelZHenPizFX4sKpZC3hv8DKhxTvykDv Rfq7huJU4BJJ/cCCh2eQZujfKfYujN8dSqlhnMUNXJX6TWCYG5lh6nFrpG5SuDzVhk+eoGmP 0DqkfuGq7Sfaq1/RtO+JXhvbBv0JCww+etZ2DOr1EyraHxAmmtTPsEM0m2Ad5/YrMtPXze3P I+U3jLo6Hv2/8+CnscrfvPgDWZ1Cqbo6KHvUUYNRkBLVeTrcTbmERlxIzq0UZ8RV5NiRyc37 FUXvD9ljjq42UDEHvka8CEvx52O0ZnJz/juTF3ni4CxZ1LMonM1JxxmXEy5lg/rZejkPL20I Wx/vw8vjHApufofyOfiq0JeuqeWuORW3ZzxvFkzleXMv5s2RGRNppsMw+1R6SdXXo0k/466p r4b7c3ZrI1dNtK3T36mzjxrGJun/wUWrZ3P0O3XcKdWzKfq7dCSoZyvZd+sbyN2wTFO7eNof 1TCPdhH6FjwO0dIRBo34DDE8nw5v5eBcLX074cSzEl0b/MQk2hNh3/i0Uqjmh28QV2U5nPkU s80zhCv5e07PcL1c6949Rax0P8v4C3zYcDn64y3GkTh16VFEGP3UjS59QTVOI3wkTjB/TgCF A6cM8lNRxqDNtiDKl6qz70RYdUacRnLBEP/ozonomemjx7DH7lMHTedqai0HX4PJUIq6kGMs xWcoKIe95PXU685C+oo6vJCKuyURgRfSVxRvFngRfUXZxr3Rr5b06/Xo16HNk6mVsZ3aptN4 mgnX1dxRMrauZn5rYF67TjoQ2s/qet5HjZKiXNNjTRf3KCnCNfrhIlxjr+NayYuU5QOYzv8S VjpI3XLlW7RVpaYt5wX9T4UFfTwwL/Z/ssW9awlXcqk0XQbhqvpJONCEuWBdDxNddPmbaPIU vfN9cne+TD9NBzHYviTXq0Ri0I+TEk3xi2wNNqApBmcQwNWn2qbUdirPN/T3GSUo3bCEPK/i 7QKWMWkY5h5axphOizTpAdBpfYDoPAJB+Yfq4FtiFjaFatXGs/YBzAsDcHvLZD4CFXxgsPlK SpX2NpGiv/5s0/cTNFgL/GrgxyZ9P4FVw7Fs0fcTzFq3ZjNcTRDnmKezE1UbI0WKnKO0Ktj3 nSC4grCWju18YqTENT+KnP5BT89Uzf8iYT+sW6b/0jMkT/N/gehgo4Rntub/E54FPT3Dmj+F cHpLT89azV8KzzE9PWOavx9h/ql7qdDZgrhdl9CmfxxM8HZcCEM3So2DCd6OzQK0i7GkabD9 aqg51GbvHaCJ4B3bBO891LS30cFLF4O4utjd1cXuri52d3Wxu6uL3V2X2N3Vxe6uLnZ3Ddjd 9bZT7TQDdne9m9lSkNjdNWB317tloZbIxqC20LyXn8ALHCqoiwnepP66bWLJV+WBiSV/QI3T +AjogYklf8LEkgcmlvwJE0semFjyJ0wseWBiyZ8wseSBiSV/wsSSByaW/AkTSx6YWPInTCzB SpLmT5hY8sDEkj9hYskDE0v+hIklD0ws+RMmljxI7M9RV7FgvMYDE0v+XLWdYYMHJpb8+XaN WjwwseQvtmGHByaW/KXqaIYDPTCx5K9Q9QyHeGBiyV+pOhkO88DEkr9K3cSUh3tgYslfp+4V 0b0HJpb87eo0jjzaAzbxd6r+Iq73wMSSf5ANp3lgYsk/xC7GTA9MLPmHKTZ8WzBX81L/DcPV ObrJ2EasklQ+RXf6zQ8DTP6dSagwG2Dy32vCAJP/PmkCzYQBJv9uaQHDhAEm/x7JCgaYFjAl vFAOoOwgGdzEM6DbmEkegX09fes14wYUYOkoTvYe/VpfYPFMBkXN0LOh3XkxqIv5ZQNXTO4K hBqwreyuhEk3A1aU3bXQYjdgRdldh+lYF9PJBuwlu7vQOKETwKxGc3g7LhHCmzGXhU+nA7oR XkdubzhO7lB4Hrlzw6+PgAp/ODQSBsnCJoWcpBmfkacxFEZ5jRPJx1WMM1fkBJzxjb0gV3sd Hj49Sz+AXr3W3E9J1D+fdUnrQUKhdtk8T1XGdJYCU6EjUKSfFMbxcfT3KT6sOhl+P6KyESj7 pZ2OA0krPN1KbaBYj7xLCwgFpV4Isn8NpDqOJ5h+L6Y9TQEfA/zQLEwczBH42mQ6E9YZ3wV8 HrCL4+MzxOlfARuMc2jnkrFmLc21STwojiKsRW9DSZaO4p3RXipE8nuadi6FpJ6K2n6CYHyo mCp4GdUtii+vqYkIekeFKGon/R1IRH8b0QO5mBHTsIo9h9zvV/Dtpoi3018zhWZy2+0eyJJA LYuTPoBIC5A02h9Jf4TnFWonJTHe17RjcyHiArkr36Bk1yNiysUUcRHi3aJCFGcG/d1DAamw Ka1uBPkPAd2o3U3gGJVHEFal1d8RWgHIK/TNVRQ6Og+594GB23Lk1KDmEsX1H2ja8jynZ2qQ 7gpA7plawN0EM7lj6pCYjiyZUPNX9VLBQDxrJsg1YsC8SXGza1CgpsIk7Jv+fVxOPkKb0SXZ I1Gbli843ULNh24NwKIuxlkfHn2GFj0XJRw8ivd4G6h0Xlo18E5A+uAZNCTe9WbzN0meC7v4 BJr9/iJC+w5hTM7IxQqb5uEVddi5CqJk0NyI9NNUiOjdSn+DiUhqP+QzFTU5mmAe7bOnxykx UygTClOJQvYkxJs3wINV78AukHQj9BiQnKB2HpDF7SqQ/A71HY+j65P5qCAKkphIQpoPCQNl PT1TNF8mPEEeRWHPQs1XTTj7HZDrO5lzXnuP0nyIkd2M8pTB6XZdQatw9iXw+C9a1O3aRh75 WJZ9F2L6Uyofy7JvswDtdDzXFqPYKkrHrFe+JSY/YC/LdWN7LcvOmmvbsf//vUj/H6tzuH2W szqHN2NV4WU5vOWow8uy27iyx1psGDByn1Ra1GM+hTF7V1/E4qnVVVHhTK2uykc0e2p14SmM TK0unloNGKh3Nfz4P2ZZV9d2HvO7EAVG3N3518MJI+5GvJCIemYo24i7EfdiwBm5Ft9Ea14Y cTfyHpGZ0YvhZuR7lbOuzOMrWNiENrp50V2NW3/b6PopWP+4DjC6Hsi/UNmq08qA0XUr/2/I GjZv2ei6le/F8LWK/5CdiBdG162Sp5UzKV/CmS3hX3zp3IC5dd/M15ADLKX7FhwEQVO3LaX7 FnhhKd23+m2pi2bAUrpvESyEe2p121K6b5EXltJ9x9XqjqDnE4pvHmCy2FG1DUeCU3Tb/LK3 zQvzy97RpiTwwvyyd1yzLL1emF/2dr9gN1HgPiyEekFwKXbDwcn4qljwOhirC/anlnUF56F9 g29BazX4C829SUGYSfRoBuxQ6fXI1TgXX0xtex6l+Jx+NuIT7nqbF/cFer/77GIbO5HgWny1 1INBfWcGFrprLVj60K+72G5T3Mbo18ddTps+Bvqr8RX7vEqIkI7J4q7Dh5zdBjIzDBgkKxqJ QBd/08kY4IIwmDm5M2jgqx3Bl7he9+P7rZrxd2ISz9ApiHAvXn92nYPXm1X24tPg6fLyg9FZ HXb74drIM69e1Iy8D1K5PfOPYRTyTkfMBa+KQoY3j1YAz0JBUe/liLmom2PGvWOJWzyLhVty vWcfSWjJAdlMep9KxvOPCtlLesE7nqXCZRXe84CWSVgNbXxoZvGMa4VSrzGAfpOPwCIZwi+m Ui2EXUboD9k6nYSK/ddt76WTq8LYS4cCSqhpYeylQ2EljW+EsZcORWzoDWMvHUqxYSCMvXQo 1YahMPbSoTQbpoaxlw6l2zAaxl46lGHDeBh76VDUhrlh7KVDmTYsDGMvHcqyYWkYe+lQ3IYV YeylQzmqlo3e14Sxlw7lqmaGDWHspUP5do1awthLh4pt2BHGXjpUqo6VvXQYe+lQhb15HhLG XjpUae94h4Wxlw5VqX5MeXgYe+lQnRrDsCuMvXQosZcOYy8d6lTbGU4KYy8dGmTDaWHspUND 7GLMDGMvHRqmJibJXjqC3XJopwdV4t1y6F4vdsuh+6SSmhe75dBuqaPhxW45tKcisVuGMNlt zDVggJmiYApLdXbL6O2UBT1967WUNT1xipaGBlejR2PFVgqLjftD2jvm42n2bF7pMQAjUPTK eAdR78dyNkA9i16kmI/SXz8KjT4L//6YnJcSjOHoPDnEy/Sr55NnprpnNG9twJ37KVHsI037 G8VMw9qqvBBP/aBULvmeT3/PUUj6PKQ4pMDKP0ERh7+Z9SNTGFJo53FSMudxCJuJ+PMgVYtU byhOtoVIHf1vTZtP0bMxu6hX1XqKeSHh9Drk+ZrCYP8HsBcJX1cYL28TzuLs32Q6UK+W7N/i 7PtD3Zpr/LaaJ6IGLs1WKU0EAzWtyYvN7WjeiapVVIrf6W9JkVOS3VySiwn34ZbezS2tbzUk owc4o2cSGT3YK6PLJKNKZBTfgYxmozbXKSaifaxpD9Lf94nMtnNmOcVUDc7seo43t9ip1g2c 27nFTm47euV2teTWydX6BrldgNwuUWov5VLxiab9PUHpUqb0SoLSZTaltUxpp1CazOUejbV3 BBKdpJihaojS/fT3HaVO39ZNASdyubNLHGonO+WSzE7hzCaW2MzwL6G+nKnDYr96FeVcJNT3 EuWJn9J5psShvpCpX5Ogvrg39SVSFYf620L9LG4FA1fXX4L6FKXmEtV/0993JU57T5Zylzqt MlUKWurkNK1X+34rlK/mcq8G5flI1CblPkiUL/mMyl3qUG+VcoM6f5yzneO9Uur0bgf37u+J 3Pr1ys2QYXkb5/YhcksHkxYqhRVpO+U083PI553cCji3YYSzjkHEIo63sa9Tt2Ku203AnFsJ 5/ZEX7vZfJLdXm62UTSZqdVotjA1G2XzA/29mcgqmbMyymhMcFYhhQSJMRHhnNrKnJxSOKcF ZXZOluT0znm87RqPWwbswzL2ItNfkemvXHTtC03bQ3/HUcJczvcXZHsDwTzO9jfE+qTM+Uzf 78jVVU6Qc/0DmeaV25kWSKY/ItP8Isg2HkBOn6m9lMPkL/F83MnlE+Qyj2AB5/KpXTfJ5HNk cnkiky+QyV4nk1LJJISZNONCZLIfkV7ihXEuZZL1H017NZHRfmSk0SKRx+zxMmINqnCq8wpy mkuwkHN6tSdvVEpGZcgonz+f9hKK+qjKpQweor9TKpxMHkEmt+Lt+ycgsxfw2UQmjyETrdLJ 5PGemdRJJgO4NkdAveACZHKb+g9GKf1M/QqvWZyMbgVl6KrLl2hvRyw1Q7K5A9lsSGTzD8lm OWfTLNlM4ro8jGyuQzbb1Fwi/yX9XZvI4iouPMGCYnTe1cgi0TPXcFWqnDyu7VmVDsnjSK5K CUs4QeBsXu4PUh43fE1VqXLyOYurUuV0zDmItanKabONyOjWREbn9syoUzI6iStzPjI6DpU5 Tu2kDDq+0bSnE5msQyb4jGdBKqgeW9GzMuuRR1m1k8fxPfMYJnlcxJU5hDx2oDLzeHYZSHn8 l/7w2VjJZy7yObXaqcx8xHq02qnMAmT0QSKjhT0zGiUZ3cyVmYbJ73vWcVEaHXg30d8fiUy6 kUnfGqrMr6jv+Gd7VmYi8phT4+QxqWce3ZLHw8ij6DjELlVbvpUzNZQIU7BzSGyEsjX/csIp W3t6Zmr+0wj7sYXin5SdPYPTNf92pPlXT8+o5r8Hnm/39EzT/M/C89uensma/wN4YjpOeKZq /kPI8jTnJ6WgZ3BM86eENPuHIx7qVUDO5n/+oJCFOWiBQrSX27X9IaUV4xYi+UJsK5Uqxi1E 8mYB2kEczrQfca+gbqbz20qX0g58a99CFHTbtxD2p/bsSwDD+TqffTkhFxBufMTP9Tqkyb0/ 1OfGZ/MCBSsRYH/PT24n3PhcXqD6HATIRUUS7qdu1PBGHHtQzclBbiTsz/i5cQlh9EU0Ny4h DNhL0dy4hDAqH4YTNw9GHZdErhvcuG4wuviVcjtt+41Jv2uoio6Tfwr9KD+tuxr/kDfuDcx/ shO/blyf+NvXwbmIUvs7UGT3ZUeQc2M11p/PIQU6Dxm6cb/i33w7nLhf8W/BPYYb8g7/5bcz SS44rqqDo/ES1GvgDGGyL+4jrPwrlPMROK9xAbmDzS77JBeqsnCSCwdYlskfgCPvcFgdI5cR Fk5y4YgNvRZOcuEUGwYsnOTCqTYMWTjJhdNsmGrhJBdOt2HUwkkunGHDOD6zqYWjNsy1cJIL Z9qw0MLBIpxlw1ILJ7lw3IYVFk5y4Ry1jk/ENRZOcuFcdSLDBgsnuXC+XaMWCye5cLENOyyc 5MKlqptJDbRwkgtXqJVykrNwkgtXqslykrNwkgtXqdOY8nALJ7lwndrKsMvCSS7crmYwqdEW f7Sz0xawTLLQC+FBNpxm4SQXHmIXY6aFk1x4mLrcJSe5ZJzkwjuDqBKf5ML3hnCSC98nldRC OMmFd0sdjRBOcuE9RfZJzmv0B7sbOyjLJJQuwfLwRW8n/b2nb72WdF9PnEKxngG/jCS+M+tO Qte48DwtqTCiUglFyvEkI3I3PjgcGRmhcRD5hGYRIzIJ7+sjb9MUnhT5FdcbkXExfK3qIJ0B fREzBzK1zcn4UJ2B709GFAz5R4b2IbaMnEvUkiN3peCuYG0f8NkqyisSuZN+UyIf0+SRGnmV 8kqLfApTY5HlRDkj8hmlikauz6P5LLKYSpUZ+TWXtjARqJLEI8+SOzvSlwZDTuQCfIgx8g6s vUb64BO2kSqimR95mH4LIgGaqAoj71LZiiK5afjm61CiVhIZTiUvjWwjCn0j79IMVBa5k2iW R54mChWRSvKpjPxJJamKtFMZqiMVFFoTeYzKXxspoPrW0TjNhPG5p6mFg+dTK/5K3JTrzgvh +sxd8KoMtBD0stzFOTLOQh+NJ9RXkDc0YBrGrqBACK/T3LVb3TzIQtBjdTdczig1NAjvkpuF x6Kh8UAtguJa4I6JPOTP51nWwlkfRXG3svMKmm18/dswmXxJve4bPBTOx6kc3sEPUdHDH4MB vGMj504FA1RNAAPkjsPs7p5C5fNOeAZDtjQJseZHPuBYWdA5iWydBjaZ3g02iU0GmxxzBNjk qOlgk6KpuPZzl1DhvEd9Cxp3Mo1zIl3QEYj8zDktghZG5JGxSL12Cljqr7FglCPQmJHQFAjH Ip4JEI5Fpk7F13oimybiaz2RI8bjaz2Rp6bgaz2Rlyfjaz2RURNYVTZyIgIpyYOT8D9V5etu WHTEc/hwhwfF2BMZP5FTPjOR6Zw7manOmMJ5mFM5x5aJnP+dKIYronejTAenoHw1XNbnqAVa IreMR+nvnIya/AbBS+SyKRgidVwII3JgLP73Rkq4MCHNnYnWf/EBbBZuoZlnlfetEBvLfEcm Pi20B432/p1ynRNis5ofliYJ0/iQ+OMOjzANjGR6P/vYZhrY7fZ+ebPNNKtR5/88zCgeegPp vhG2LExdt3Sh5v1OUGnqEqDvBVWEoB3p/eEhmXVDtx8BMyWCWkLXAv0mMQeG/kZ19v55HJd6 SGgVNb73L0FdVhqYB5tPmTW/mgTutKf2busuQI8NJ1lvA/rUq/YkCnb3Bu05daYFfvdaNpxr zQVMtuFC62jAkA2PtE4BDNtwuZZ2D0oVUcOpwdJh4M/wVqjIN9PAgtfwebHvEei4I6ehE09E OSIl09HFb0+A4lPaiwS8DeoeXOkb1/AYQ6e5Z8dhIilAC0kATpWU7+sx1QYpGiqXsRJ3huo4 PcpqYOv106WLLRbYHa9/p8kCzArVJ+ifykxvTTgC9xr6fXKHrKV9hSF+kl7qg7FW3FlcQ4XT o4aCmqYrc86cNZqeYYB21hiMygz+DHYcykF6zEAkLfYj0t2CdIW90hVIuu7JXBKky2o47BYa RTaNYbgJuA2zQ00vGtU9aFT3oGG7+x92C71am94poLee+FTf5+pJ7zkX0/s3dQe5D6d73iXp HkO6T1CON3qle13S3Yc2eJ3TZX182C003rRp4JtY6izk/XEvGh/1oPFRDxq2+1G4/92D3idC L7uD6L2CG6P9CossdsOlBzVtF50jchZo6kXwxgE8Je1zHnL+jPhKZbh4CNRQvPX016eWWI4Z JZ0LoW/V8s6mWqqo6wfiuVG1OPlTW6qYC8lm14LaT6DmmcQ7a6a2gSh9Rn/HJKh5HGr5eOSb gIYQ9zHxa0D8yCMSeGetc2jzc2aPc2YLcdzfi1r+onNmBymjqcTFrycy+1l3MsNr4wS0M/tV B3G9zslMcFqdk9lvOqiWwqxSn4uQ2XDMqPN0btO5lNEF9NdOwfkbEDDXyUwr2Eu7h/uQxQop 2RaKeOX3mgbDT4VcsuVM+2LCRcUUOUozat6NaM6VOjpnDwpx62EchnHz88Ym8NB6PAOnUfQ4 UT7wHfuXXEm4BEacSx3fvjf6+IRJKcqGUDbffoevDtPeYu2KVZo6msuwEtNTxUYKxagcSKHT v2d6lZXE2afhcyB55LgOjjRyPALzkz5ylDpxq1r94LpizAZHEj7VTv8e4feQDCYBf0MyfImz 1IlS9YWPt4t91uHo7kcH7Zfm2k6hr/2XxkWD01wvctvic6nSNS9x0S8iXFZBqT+gBBWUIG82 +vF9DnwSkRccxm/BsFHRMIpdg8aOg3E+FQ7AI6qyhRQyl2hc/l+nfV7jdLBgpFVDjD88g4/o r+JbzH2+Q6GjmAt36wo71wOU7oZDmjaJ4tccix3FfVzoDYTzuyYzxrxM7Je7etFaQNDQt3pr f8W7nfv1nyzurHKu8QOc+fZGp8YP6sjk4UbeXyMmrWBErW49riNuQmWu09XOQ9ClprAmhymv SYwAnuWvlVl+q5E/Bu39N5nWt3rzedLfLpP+1kCclT2u10E8jnVd3aBjwYpzUXZwUagAWFBo qde0C8HrZ8rAqKH88fH5BipDzV60/6k6zqdzgafjSLhB/41obUIZn0Q7ncYffKZS1HC2p3O2 LyC4GZu7M+xChuI8iM+SUbnLziZvN7LYwp4GHsprBf2pRJeAcFRKFPoR2qDESs1gJ9pfqAwd y3s3ohdcRbFzQDhHYndTzC/oD+ZOC7EbUdkc+yrCtWm0c1F9dKRxbX33pNpGNHwu68K61h04 qXypgx4A7aRbKd4/3fY6vEDr8wsueY7E/DhCMjtIGZ39k6a9SdFruMO6uMOMFqoZN9ZIbqwO wuXMNaO4sRbBZE+fLsygnWj7WiG3hUgV/0xzTYtDrobJ/StBro7J/ZEgV8/kivGZgPobQO4i 1OgW6UmidDf9HUGhOcyUN4PY2QQbmNitoLWHYOPCpatpMUaiFwlW40JriowWC8f/pn1E+ko0 8geKSatMpve+AsFmGmsH2KU1lURgjZAiPKl4KlBZrPr7Lw6O/wYST3FA/F3U+2lxvzfxsHsS /J9hd7M8RWC31rSNSP+Cth/ikGYSg5l01mPTE27h8qEcqSX+6ji+6mPa16D7J4p7Ffwni/t7 uKfwyh2HRRY1VfLUmp6iTPujSQt6VTxfMlqLdIVS9dYFdCx9EH32rlJtTJ034e3TULL32Dmm O+HcgBnlfeTYfuc0x9kRJxrtrFX8b3591tJuoMifY81oT5qScJoJZ8coStJSdQxP4R3TGNzD oKWlym1qMkWfixa5FQX5SxpvL/HF9L807SPq7hruoj+5GlYbcRZXUeMheWkbPmVJVMFcXbiw C+gl95Bb6/czHbrBF/gcuUrWS94nd1EeeW4gj/5fEhrUTg7YVloJh05NeRUcFjmeJEdVJjkG gGN2gsQrqmQouUta6WfgAfKpGh/h0leMJKLo/eN+0bRn6E+NUyX/wFNLx6PqAY5ZdDxF3EiV 6T+b8PfIYhn6D4Y6yjoInQ50If2sg9ncAejcKMSLV6sSXBsMHEig6gNyVX2Jnx8QXaPKXwwj PLgq7J9NaGh/cpSS40Y46snxMTk6saG9/VdN2/8r+qZyEcFxA6g+07HWOgF2R+FfmUmdsuo3 2q7RXxWubrRB/cgLG9mbvUzjFnI+gK/iXEOOmoFEbCs5Bu5FMaWTB62nFNjCvikp8MHjLQPx oRrcYXWSAxK3Y8hR8hqS/oykwhY8ykfLKP8ca2L9x+CSGIbYo7JHIgZ5mf7u6XQmkL3gkQ8J NtwATn8My2/BIJpAeDJ6HImaBtmkxwtpDRNI/Vm4DToZk/pq5r8DRHaqUtqkQQ7pY3ixJdiA 46Vag2vU5wc5U9VaTFVfA45H6DqeAAZTl68lwvgAewNvCc9EgSrJv+F0wLMAxwBuAu+fjVTH DnbqfpQUMB8FHKy+Ad0j1Vwq1EX0d8lgeG5DY8xR28njY/rbOxiW7G9G1bt5uBwkzzW60r6i gHreX/wTgRUcuIECcJkdHUI8swt7hHJ4DxnitFclyrOK4DCqfxUGfFkR0biK0m2nP5kIOooS nbVBCtxKBR6+CBWquRSGIl3r78H1Le7rzAs13Jz5bJiEKiYOkumaiRd1SRt6eno0cxU8QQnF YU9dM88iPPwkNGIxrHe4XTseolxvQ+1Kj2GPm8mjazPtaZPrnkHBlPkC9KqMV+nXXEBUunDn H7oQF5BKdeHOP7RZgPbPZGTyHNTp1H/yaG1NUtoqaiq+88+a0fvOH7f6xutYkA1bd9++3Ic2 XzCvGwEiDjDs9wG47g8WLEWAfd0PPcJgKdOQm3/D1ku0Kcr1viHiBbdhyD2/C/f8et8t2B6w PSe+53fhnl+vvBtOKBvqta+ArsggXLj51+s4J7n5d+HmX+9CuyYZ0Pbw/B0pb8UtQn4Q1+9N 9HMLQW96vg9bqPTSJjna+5cvWqml931b4zM0JeeUUCf05qMQJqsTuiAcyGo/EWG4+8/avB1O 3P1nbRmDC15jC2d+AvqXKwMlw4x8yJC9/1S2kmGGZJ5R/BVnp/mgZJhR8k/lZH4qk+qgX9ez tMRH659FEZ45glvuEQ58FzmgQ1xQQPTMfBpOKCB6FvyEzCKOAqJngQ8KiJ7VH0pNNRcUED2L sqFV2OIoIHoW+aCA6DmuxdbkSzK+oviBt5ks+SW1jUWCsxwFxKQ2HxQQk0ZHJIEPN6hJ4+Sd geGDAmJS9/1yZ0rE8N161zMKWl2XkdOEHJ7qcj68aVhqVucdIP8N/WDWCFmd/vWade/d0kD+ 4zXrPnEbPlhWt3YL8vpgWd26X1BAc91IA8Ga+Qto4dp9B8GANdN3MsVKrlhlU1u9aKGWXDnb prec+CG5SlCS7y1KlVwtyKu5LqBGsWaNAAdvo59NBOPWLB/M1yUPHmxXHXdvycPsMvimQv42 /Cy53fO9Qctr8sjz5XbPh+81J4+Wbo9qrruJpDUH84cXw+ou6DRac3y4O0ytf0rMUPguwyfr G5za7wJqvNsp352o79wvQGEk1J38+KTZXC5f+EGnfPdCcPKQUz74hh8WFPL5gR4RlOo7DTH3 Cor68B2T8GM3eeTK2nUC2mIBZDTeBgo5nuAQawHnFRnl5IWyR8b8JTedPnwYJTLWyetr6vTI uBPstsACGul28nqOUkTGC4r75lEmkYnSX7m+ndR7kUkSVuhLRn6TBZX6bkTYVIlZ4RuMsGkS VuPbC5rTBTX49iBshsRs8V1I5Y3MlLAO3wKqd2SWoIGadxwV8RrIK61FXL2UOrt6musLPGNe gvq78LzEOhLOIOpkWCss/tq9JV+7d2E2t1YtcmMwgbGTDHSRt9BjC/hiVckQ8GUmBHzJEPBl htVKmQiSIeDLjNjQmwwBX2aKDQPJEPBlptowlAwBX2aaDVOTIeDLTLdhNBkCvswMG8aTsS3J jNowNxkCvsxMGxYmQ8CXmWXD0mQI+DLjNqxIhoAvM0fN5y6uSYaALzNXHcmwIRkCvsyEgC8Z Ar7MhIAvGcyTWaqmMamByRDwZVaopRw6JBkCvsxK+0Pzw5Ih4MusUiuZ8vBkCPgy69QpDLuS IeDLbFcL5Ko6GQK+zE77bdakZAj4MgfZcFoyBHyZCQFfMgR8mcPUmUxqrhaCgC9zpxdVYgFf 5r0+7BIz75tvj0EI+DJ3Sx0NHwR8mQkBX5JR7kHnQggURukw70fO5Z1nkoHeDl/S07eefI9g psCMkmSMY3d/dmMWCGLgG6kVFn+zzJJvlrnwzbLU6rs9+JonwiMNFn+dzOKvk1n8dTKLv05m 8dfJLPk6mQtfJ4u0v0xJXPiAl7kuDSsQPnPDH/Ay1zGDB8Y74xd3GIFpq5z5FJ+c8tWNoN+U br/zySlfHSfyDbcT+Rcv0XyjPjc5jX8+gdECunz45JRvDBCMifrwySnfWIF7lR+fnPKNE/i7 8kHs5usWuFv34V2tb7zAQ7oPn5zyTRC40+XDJ6d8kzCuYFzKh09O+SYL/Nnlw2eNfFO26WIg yocvEvl4XoCBKL5N800XuMnw4ZNTvhk/m2IgyodPTvlmCtxh+PDJKd8sgbsNHz455ZstcJ/h wyenfHMEHjB8+OSUb67AQ4YPn5zyzRO40e3DJ6d88wVuc/vwySnfgts9XCO3D5+c8i0UuMvt wyenfIu9Ac7X7cMnp3zLpMz73Dyz+pYL3O/mqdq34iZO+6rbh09O+VZexfBNtw+fnPIdLa3x rtuHT075VkeZ8gG3D5+c8q3F7gOfnPLhk1O+dTkc+rnbhw8y+Y6V0K+IofCExtc4g0qTMsR0 Pjnla2SOSGtz2AiisbT+srkK+PDJqbQBMwOyDKBv0gZu02U6xyen0gYt57BScFLaYGGeDnBS 2hAB65k50oZK9+9SzBxpwwQeVNzBaV3SHLfr3MFpIwTu1H345FTaaKnSLt2HT06ljZMqEZ+h hmnjBe7RU/HJqbSJ2Pg4n5xy4ZNTvs5xeFSBHPmTU75OH14Q+G/2e6XK+OSU/87Z9lqHT075 dw1lFPHhk1P+PYJSuHH8T0jjpPowFv3P87edaB1Er/hfOikg6yA+OeV/bWdAmgrmbv3vXCIz rQ/CZv8HZRzWooXBVWB/nmMMLQzGAS85GIS3H8ZJBsZzEmvF0OyDxz8G+jM4Hgo3abUWf3LK 4mJZ/MkpSz455cInp9KaaqCagl5DNZw8UGykt7EL38bxbzwH4k7Ugb+N49/IOzj/5fbejndw /ivs/Q1tmPEU9tzrwatf0IbXVfIkUpnEXZ8TDLlKfEdlkXezkxz3sa6Wr+zt0ctI0vqVvTl8 D6jtK2cye3AGNrPpRMp8YAbvP0E2ycAq7PouApl/PY4sy+jnYATv/Iq5ld0VDlvjbOmusldg H+xbuWtPDHKPa67boQtQug7kb7OY/DImX4qRkcEWSZDrFeohKhDOYB/Q34W0+01n0y6Xxine A4D3INpl+QTfJpjBd72Xcy22eqNrNHXlWhRg3fpYDRZMtjiwHbqAmWxwgJ2xLgSxzYHtr+PW jk0ObMeapSbQT3wpynM0MlqrDlA5rjSU9ivllr1+xXJNrTkNxlyJX9P5YeUaZDiMYA7s1qt1 YLqTCGaOR+iFYAEtbS8oKngUKyTfThT/pL8bKWIGv20sWCs37Bm1sEZSKMjI4Bv1Irt+fTj/ EhB4CeMl9xw6wF4Nqs1Kcys+v36Mgl0Mv/qfcFgYpml5R89fRvAsXUj+gKNSw09CMgNfcHRQ ID2ChI2IOYsSpi9kiC65mKAUpkkKE805G4HMQP+mwPxFVJbcJClEJnfLEQjTCnBncLnoet98 gdKyZiBd634+vd8OM11hhCa2ADHNg2oV4tgeuxDbCqUKcWyPbRagPczv+O9NwSTkpl7r76Nj e5J9bO+e+f9AVa+3fl5vpTxbE899MpXpTGxX4Pj/oonnkYfUOJ155CF1D507D07KSflYOrx8 UvbgpGy1z0FsnJStzefDiZOytWUvlhDjTP79mn79cHqgD2fm49juZX04n3Enx/gegTjkGjMv ghOHXGNBEU7EA5V9yDUWBHDINVYn24dcDw65xqJRiAXFOz7kGosCOOQaxy22Y/mMTHIFr2Gy mHHaTkICLAV8yHW1BXDIdY0eKAkCOOS6xi2X/XkAh1xXt8s+5HqG4xMSdQ/j9D0MpvrMqY4q X0BU+YK9VfmCYfWhTFusyheM2FBU+YIpNhRVvmCqDUWVL5hmQ1HlC6bbUFT5ghk2FFW+YNSG osoXzLShqPIFs2woqnzBuA1FlS+Yoy7tocoXzFVX91DlC/ZW5Qv2VuULlqrn5EjFqnzBCjVN dvqsyhesZDGAo8oXrFLX9VDlC9apu3qo8gXb1escWVT5gr1V+YK9VfmCvVX5gsPUfT1V+YI7 zUsdVb7gvQHs9IP3SSW1AHb6wd1SRyOAnX4wsdP3GbOxjzSewLhG6RJjBr7obfdTPX3rNfcb PXEKxQJveYxZ+JLW5xh8Lrzy9myiEe0r/AX3ivlU4vMJhnyFAeyp/DW2glHgLWwb6nyy+BCp 9yi65wfy1EvqKZE5k34OEQzpJZxSr3JSYqHSa1YYktJzAGn6LsFh9IMZPNKQ1GeU4gXbHjw1 XEMFUFsVZpz36M81nGYwvAI/ncBG+ovwhelFfGGagskPOjZ4rYXntSEG/VCxWnWAYmPyqiYS qcUgW7cG5Vg3M20pTdigkF4B7wY4Z1CsjAJKPpcYJP1f8B+PBjma/NPZ5NsEtOgNsPOZMZLi baF40cUraSIG0+LbgOks+5zxGcEKPE3OwA79ZuzpKL/VnB8TWgNCI7ucBGuR/sgupz7XS30C m5WWejWK0XSfmx+i4wLYvwKTFrraDd/PnP71a/6/E05tQoLc5znBTpr9fcY3FDeG2T5w4dV8 LxvDbB/YLMD9h7sXl2TeDQIFyUlchkZqU//XIIb3/YloES1zHqIVNkm0EYiWik/HjOoZLVXL 7IueKJol0WYiWjuire4ZLaxlXgdqxWdKtGMQDdOQ+8r/Ee1pcEzJbRLtDESD9QD33qTeVUgD tdKXJdqliAbRk/uzntGCWuYLiNb3F4l2C6LhwsxteXpEC2iZOqKV5Yp1gPsQ7U9Ea+wZzdIy P0K08uES7QlEK8Ij/pme3g2SjAapWCnRXkG00Yh2Rs9oppbZH9QqL5VonyPaGkS7tWc0n5b5 E6Ll75Fo5YiGc5dWjWOB9lcqVnB8MtMfUdpAn72CPzvLXsFx4+55HQpGzqJrr+H2Ov1/reGG vez3WsN1McozD1OVGOU5C0RtIwJilOfow9noYpQHcdy8ztqLvY4LfXcBX8HAxJu7g8smO4wk w/MJIUT3iiV8XdTz4aOLej5MNOminn8QzusgeahuPrxVcBugoUMnPmk0Gx1+kWKvXaFVJJ3p T6KRmXTWEbJI+j+iVko6W5DhPwJh5wjy+pcDbRQU8PcDOldQyB+kbUfSeYJS/RrQ+YKi/i2I uUlQ3B8EukBQrj8daMtZsjb6fwba+qJcglErvYatAdd0NTWMXogH+oE4zKgQDOiFQVhC0ftG Zc4NQqCglz1qF/46PL0of9ReSNwGWwPAhsFVV4k9EW8Y3EYSaO5ztg1+uSA0A8puEb4gNMPq FqHKF4RmxIZyQWim2FAuCM1UG8oFoZlmQ7kgNNNtKBeEZoYN5YLQjNpQLgjNTBvKBaGZZUO5 IDTjNpQLQjNH+Xm5kQtCM1eFGMoFoZlv10guCM1iG8oFoVmqTpBtA18QmhX2jaBcEJqVarRs G/iC0KxS6UxZLgjNOlXMUC4IzXa1SbYNfEFodqpXZNvAF4TmIBvKBaE5xC6GXBCaw1SFoR2+ IDR3BlAl3jaY9/qxbTDvk0pqfmwbzN1SR8OPbYO554hEb7+CpcJohVUElC4xgNj4KFbxjp6+ 9VqYV9C1s/ksBTcmjsWm0mDqOrJm9QKacOANE9YpQxCtAJm9DDgWsBDwT8AzefIHxPeIU2kN LAGYArDMBssIpOFQrkoBTwbEqVzg1YAvzXbgg4A/zXLgO4DjE/A3wC8A+9ZDKkY7vLS1gGWA QwDT5mCSBpwP+CgoVwDCzlJa11GYdFG5jQTTZ5NjElV+Dv1l8Kajmq3mRddQwF5iB/GsYc/0 TeT5PMV8MxG7gQP43diPMkP/fSt2b0Y+ZZgJLflbqHT6SQoD2ZUVp7LpJ8AdX0CTM2YqLexD wrmoxDHM46uoI/6gg8bNVMAUtsuzCrPEq4BXoDarkOIQasN2HleDXvcogoWo+hpEXgR4/2wH nkEwG1ZO1FpYEtG3HikmfdYm4wpv6+cnpt2A/Nch+zeRlBVvGAZoNGTnznaga92rJ6aVAR7L Yu7RiIy0x/1GsAvwndkOnAV4M52m1Xpw3+rRwiHHo9HOIZDzPjE7pBkHcKbb3ucRcvbZBZW2 nJ/tEA1KvVf3COG2/lDa+mJp677Y82LxRia5YPG/lBZ+CXF2oCy/cLNqIcWL5I2Ucco++P+M VxZ4ppr2GGrwK+B3gM8g9DfA8BiqvRfN+jtygdXIvJVHH5eAm07Nnj/7cOiBU9K4w/5Ao9dS 2lQ2X/Un8h9HMKMFkf9C2+SXUs0KoKZmm4r0fOjpMUhTNBMV8PzY0zNLMz/14DnrWNyae6Eo oswg2xhOwVyFb87zod9/IaYK+9Dv3yyAbRnp2v50bBnu6Ktpd5UrmOqQLcM3c/7fM97X97Dx vr7/y3hf357G+3pZCWKLcJ7y23jeYps6sNDmWbpd45tE+xoCugJuWEbVDNlMsP0hqAW42byQ 4cXWrYpLAE0fdzXbKpLdBiJ4MpS8jPRi7s7QfFXoX0M0BDjbkX6spii4IcoCCaNvemU99h7Y dejVXAbRG0jYf9MPGynSG9YhhW2k6EpcHTVCF8YQNYI9cHbS/k2fcA2z8Q3Y+t8JwbUJm5H4 PCCW62wcQMdj4jhTPQmR3/f00z0Hhm/OVMkv045M36hKZVeQfMQC+v9cGxqagc1kXv4fODUV 67ZuQl5+GHdLeaXFcusYwVYir+8cO43bQI5sQ8mf/45m21Aqig+i2KHjdduGUlE8DBtKRbkV QiSM2aUor16IhGFDqShfMvBqxieL8cmhMyEyMs6j3xRY9FOopVQ19UFY4SmsSxu5iFDaK3Mp NO064hM9beNibASNEfOgNopkRjXVvXAwOtF4Fs4h70L88Ax3Yg6lKRz6NTyyF8LjFKTr+hNl r6VRcDLBSYVd4Up4j+onq2v4fJAZPU5W1/CRKOyYRYy84WupLIVjJSwQPkjlKxwnKBSuQW7d xzFKDd8NmuPPZRQNvwU0QVA8/BvSTdrOKDd86XxCU59kVBh+BLlPk5il4ccQc/pHjCrCLSjL ET/LVif8T8ScmcwC7obwelBZ2M2oJTwEMRdNY9QRXoGSLb5G5KDhr1CHJRI2JFxLPFK49GhG XeG/g+YyiTk6PBho+Xkc1q2lq2a8+zWe5I5D+/lRdWXCm3wG038paCjVH11p+2KPla6O4ZQv ccqjkPJcTnmMxDkZPtsTPk7SzSC4N0EwEWTulfAHeKDchFjvIhZ+zItksHzEWe1DGNpLuOtd Sfc5skO7KfZxxtef8B7C3mBs9jYn4ad/4ufBRAAiUiJcC7iNZs4NNgMzaF89hf73H+12hi4n omDsLlLQmFKdw/zuNtbhwnE8Nqf5V5Mz9DL9QGISMGV0msXnyJAOQ3nHLHnZLcx55mRsYAVh 6wdzx2yWLJLPXwC1zZLhbV2gh1myv9y9zJIl54dgLqk1ydYYSpZMk3tlmlzSmuRMCW4800un 9cPK4SkBR5Rg4WQQ2ZRkH1GChRGsdsG+PeeVYNnvcpgI44gSLP89sWkdiWnaeJNb8xBqgTtY 10w0v7ENO425u0D+Pfq5GlOEa26Y72CrrhX7Rlxioz3XZ091E7DDmvc5BUYraJobjyOpa14M 76+91ZiXYiMhYKvB3Bh7AM5aKNnHsKnz1uFiNnY2lrB67iE2tuZa0AxjTxM89jWwawEXwbXa LoIYW3MtwldeQus99jWwa1EY18Cu47xeO9YKxFqK838IfssJ5rqWJj+Gu9+gypVoyTsw01k2 NJIvhrXFkBrklcMXDLq5ImqaVw5ffZYQTFHS1KHkNdh+ZKgzvHL42oLCR+3QaHIDCh1XN3No nNobDeTPxP7BxC/53MK9YWG70Mz++HUC++EySWIUQ1SPQsj4apYIXfA9Gb7IkpOZWE/Mkx0X TKwygdmIenMiavP/GfVc3tMgQib612vUcj8addyPv4MZ6+c4XWo0cJeCsNE4yeldo4l7FyPT aMZbi9iTkDK2LFN2nxutiT432rjPPZB37fLaGwOlZSELw08Tua8AX+4MHeeDuJ3awlcQTl8M ZYI59nj5sR66BLIWGuHpSDLhLp/D6o3kSgU0fLVp3yzA4tY6F4vbWwsgDH2RJnJv2rGLYQtt FE3cuWl3LsYbU5ogkEnryUgJ+UG47SkU40+fLT8It4UhPwiPniB6JGHID8LjamRIhCE/CHdf lOQUAxxqNOO6oiAZCp3Qc26aA2W7gvAcyimp2KkOvr2SVJIpnBjOpLImlc2x5RAG1OyycjF3 +VjNzm2AkDEEbdx5JAhD25nV7GKdkfVa7F7ZFWiR47XYfc4OAefB2G5B3jCOg7H76+27ZwNq drGZu0ALalysZhebGYaaXWbFO5pQg5pdZuV+e3qBml1mlaCkMNTsMqv325ONATW72CyDkoem mraaXWxWGLfYmYP3+KTSULPLHGaXIQw1u8zhA0X4GsatYebIYUFZ6aFmlzla5sqoZkDNLjZn PqhDjYbV7GJzwlBV61N/Z7JQh5pdnwan9lCz69NY7zQp1Oxic3eAAjbcrGYXm8vliz/olA9q dvGHnPJBZBx/WFAoDDW7+COCUsNQs4vvFRQNQ3cj/tjGZBn8BtTsYgtC9Bv6NmCr2cUWcF7Z o5y8UPbsMZ8lS15QBske6+QFNbvscY12W6B/srudvKBmlz1eUDwMNbvsidJfuWGo2WVPkrDC MNTssicLKg1DzS57qsSsCEPNLnuahNWEoWaXPV1QQxhqdtkzJGZLGGp22TMlrCMMNbvsWYIG aiF/0Faziy3i6uXU2dXTDKjZxZag/gbU7GJHwpmKOhmxFWmsZpcmanYG1Oxiq3KDPEv68Ysu MnC5ll83FTo19uXaCOyyf7Tsy7USuVwrTRgd58u10oShRL5cK00YSuTLtdKEoUS+XCtNGErk y7XShKFEvlwrTRhK5Mu10oShRL5cK00YSuTLtdKEoUS+XCtNGErky7XShKFEvlwrzVEN3PNy uVaaq9oYyuVaacLoOF+ulSaMjvPlWmnC6DhfrpUmjI7z5Vppwug4X66VVqmBTFku10rrVDdD uVwrTRhK5Mu10k61h6FcrpUOsqFcrpUmjI7z5VrpMDWFSc3V4rhcK90ZQpX4cq303jAu10rv a7CHJi7XSndLHY0wLtdKe5gV/wNqF8aCIPShk3scHOGL3vYs7ulbj10h4p7U0zeFfDHxuA0/ 89EvzEdXss9oaNxiljD6VKSxTl6a6ORxeJ/qqygoFSPRyG5IY528NNbJS2OdvDTWyUtjnbw0 0ckzoJOX3f4A0hXBUkfBKWn7ISlPOx5HorSy+UhnzUe6/YuR7iD5u9OG0mKUpBkHafEqOPt7 ZAiNvox17UQjtDBka/RlrOOxFB3vTBXQ6ItOkwFJU/d6frl7NEXPxmsd0ehLq+NEacPtRBHo YY3C528oTQR6WKMFdIWh0Zc2BggafWFo9KWNFbhXRaDRlzZO4O8qzEpb3QJ362FW2hov8JAe hkZf2gSBO11haPSlTcIQhkZfGBp9aZMF/uwKs9bYlKl+0egLs8IXT0HQ6MOTHi1tusBNRhga fWkzclJFoy8Mjb60mQJ3GGFo9KXNErjbCEOjL222wH1GGPLCtDkCD9BJGaFzBR4ywtDoS5sn cKM7DI2+tPkCt7nD0OhLW3Bhsmj0haHRl7ZQ4C53GMeltMVVkq87DI2+tGVS5n1unsTTlgvc 7+ZVIW3FxmTR6AtDoy9t5UnJotEXhkZf2tHSGu+6w9DoS1vdX8rsDkOjL20tTgfQ6AtDLSNt 3ZBU0egLs77bsRL6FbHjDgQ3nkbMkL0sxdHoS2tkjshtc9gIikC5/WXHGghDoy93wOmpsuKg b3IHojRYOaDRlzvoIg4rBSflDhbm6QAn5Q4RsJ6ZI3eodP8uxcyRO0zgQcUdnNslzXG7zh2c O0LgTj0Mjb7c0VKlXXoYGn2546RKxGeoYe54gXv0HGj05U7kzaKt0WdAoy+tcx3s2yBH1uhL 6wxDoy/95pqQVBkafel3yiYlFIZGX/qufzGKhKHRl75HUAo3TvoT0jipYWjTpT8/MlWWXCje pb90faosudDoS3/t9VRpKmj0pb+zWGbvMHTN0j/o5rAWzQOuAvvzDGVoHjAOeMnB6O7TD2O3 gfHsNr7nMzjmA7eB/kw9DjLI3No01uhLY42+NNboSxONPgMafblNU2DlGL2Gajh5oNhIb2MD Gn3pG+8gnxDqwBp96Rt5s5h+ub2N5M1i+hX1zh0XNPrSz52FHJcuovLUfYXkaWmaduQiWBuu 44qntjicdjkidRSn2RPWBQvx/gFmgHybFvJCjqRu40NU63aKm1KGx3y+2xbh9HwTTZspw8fi o+3H0c+N82HeeDjnkDLSyQH6ECmjj7NzcBt1THBwGq7VFuAq7kIQTMFBwFgAj9K/geDT9DMf MFTKBEMVPQmGqp5OEDyDCV5Cv300vMe7DJdfpXzLgAvdTPqbPwY273HNVsIb1a0UtwJxFSpZ xXFzKV4J/V2YiFuZiDsNcS/ARVwDH/VqKF4z/T2QiFufiLsFcf+iplAP8yo8kOIdR3+fUtw8 fFAK1zeRsQTm26AWH7LLV60oy3rFhdlACR6nv24KKngVFK9bjJsTl9pPvkaK0k6ikMJj5y3X VD8Xn01g4eELiGF2g065S4Uo1kepSruZYhY9iuRlLkR4FZg/PVbmwv7nEOHiEiZV4cLBVt86 iSDV33UXhty6VaWLVq+mZnKBWVOpTn2fJjKLiPxFRL5sOK7x67kQZdjlkRvDv9yay25kUUeJ Kn4WjAOba92mUytyljAGUde6LadWHLuI8bcZEB5ccmr57MUJWkMpfeULlOEaZDhXIuKMbH9u 6IU8FoGELrE/N/SK4HIxIA8rs56/8IGeJHtwebTqC6FRuAtcF3dxkx8k0selKW0B5VXzMJRE oy6ccalhi75DUWJcxc0UXHQj0mW6cF7/F6IzC2S5hAcClalEpgx/68CKOZyulj+blMPNUcrf TMpxIdvfwCNa9fMozj3gmoBL4d57A6V/mf5i3ZQfjAEp0wX/oYTLWVE0yPgkvEurS41pWjPt VdSjujpAqTLSlXYVhRSy+ce9us2dNWzY1oFGzU0jGCK1vhX7O9yl1c0DRBs/qKtcIjSV/p5M EHugN7EHehN7IEGs+k18xK8YLfeRrkB4LtG5L0Np36NKfyDgQ/0L8s+hbVvpKk39W0eFjgM6 xkHnESrbgcJ8rINTylkY94kOeg9TGHf359Ldw9Dd1Wn4QMgrGAMvS7Z7KcukKLUmRa+5DbvF l/QrmM21Ci7zK0xNX7deq56AxEeg156SxCFKOIX+/kwkfrJ34qcPJ96CxA+jF260K0wJb6e/ sglUYY69g2NPIVwBXR91UyJ1wQNI/TtS/1NXOynVIfo7jWJKw94tMWmU1x2kmLmI+Ded+ENp A+jvDopYuAamNL6QaJLqWrs7DK36BBj6vwbJ1uvM8AMp2UuZSnuLktbTcD+Oc3Djc3jzHTR8 IpociY5nfC7wqRjIJzC+BTgXXXki41eAo0sS+DvCJfwq+CQdeerrlmvVH6EkdTyIdT5rHaBS fJeltGRi86IW6FXX6Rj27YRLWGjYoCOe6i47Hnk36hg0FYsWJtwwUMKfSBF4CQyoVb8Cq1P/ xpgaLvlocZoNc5R2N/Lh76sM43zeT+QreOxkwk/MZYxS49tuQr6LyVtTCHPugtuAuWSCFwNr aLURjC8CPnt+At9NuGzLogRuGEgzVPkzIDCDPV5GgqOBZzKGSbXyGchwFuPQVMKvgsA8xjVT eRLpj8/XnY656QfFN4o7qbKP9VHa2KkwI4CAQwr8cQLSs7z8R4Ur653An4Ltf1Ig8gTh2gXr VjuYR9kfMsqmyaQ6gJJVB/EViJ+RbrNS/6BZbj9lNixfaW8iQ87gQp7NDHKWX42PLF6ksFVE UDnbmRB8xDSnABdzhiuA589L4AsIl5UsTOBS5qlLOM/rKKx0KWymYxf0PFNC0wj+Gvgc4MuY 64PT7epE8rk6S1CdRnUi8j5DqW4q/L30l0fRmnZR9ZajEH2VzCQUcGWB0mClpvxzBJSpF2g+ Op5wxanIo1zJeF5eunQtHswD4ZF+xSrErrRDVzXfQJSn4cKAjQQ0cWfBkEVZMsZSszo5TbOL WSLFPJnntjA+X1kCvpgl+4TtVJr6QqU9TWnrmdZM7uBDiTxnO3lyieYw6jyCyv8CyjuXqcyB 0L16BYhXYex2CfcMJMI/0x80v4T4cCa+6wiH+Ihe1R3J6ABCW0FmlNy5r1ulFewG7dtQ8Cyl tCKl3UZ//6WYRW5UOFNVYPtGq1oRK4hmcj4DCJc/gkRxhY36aYS1lpm5mrYVrPyCUq2sXfr8 JbQxb4M9Jh6My2xH+ygkFSd/00Ocdf0TzpOh6bAfVyLtrJHzEvuyNo44+TPI7Gxj20sv42Tf MSrXMWfyGi/e3E+10k83oZ/6jMBQGTafByJKvpNqe12J0vDYpN9TqPEhjIoPATmPQ7ibqJpJ i3gLJV1PnNF/M5L/htSryL8/1/R31HQL4LVogT8AXyQ4AO27BdohyWrgv/DNlZsJdO4nV+db 9DPoI/r5jSIO+pocUMkc9DM5hsDhotqsgMMixwVwxMhxGxyF5HgGjmpyvDdLS1S2Qip7IVf2 YVQ2CR3exhvenVRRaFN4Z8uGtxXbn4bZsuFlAMWd/ryow2aw9iaNvf4pGNwd6Pbp1G39owl4 +lw70ybJ9AFk6sGOL3GjlKkFUAj+8XzeMySsBfDNLs8fPT0tLfA1PDEDJDzTtACeo3hKenqG tEAG4YCHsgzAtDVTGzwbXVMI4anbteshpQ2JQE59NL7Eo9SQyVTgwmMwrghAO6W4bg2KrgLr 8zFzngKKOOgOgXZKyYW4a6OY0E4p2SxAizTSwNGm4+NL6rgaGqEjlLa33NZO+W3p//+1U/7W iQ8w4v6SdVD8ooOyDaLffCh2szqK/7A6iv+wOor/sDqKn9VRdEfjtedXsKB24jqsduI6rHbi qgwoW+3EdVjtxHVY7aTXt7HGYtfRQ+3E1YhXMPZnsg7BiQ94ukYcy6sapGAe+diUdzN60DdX 8eXmpfC5KeEj3qxRkpF/F7n9UDJljZKMfJMNTpTaH6EKQPKb0bfFPqG7ub2CdLI+oGypt57/ X1CAUIul3rpQ0IvnCgUTAmi9pEwEaiak3nppme7cyX6ubKm3J78d6q0s9WbJdjR/NHn41+m2 ZDsqhKO9CEdL1ulO0TpZkB/gpqjRbTF00kx83JXF0ElzrwFBqECwGDpprgkZcEHVOSLlZvIF 7b+7tcNi6KR50HtIhghasSA5aQG0E/x/6LYgOWkBE0labRPRjB0rCS704j1mLV4gEPQmLZRY JzlZfYVIJ59jl52Fz0mLOpAGj0NY+Jy0yITwOem48w2bMpTKkxbPR6zf6Gc1FMiSFpvvUHjS t49qQnklSv3dVtGAMcfhXeH320QDxny0kNAPfxcNGBMskvTj3aIBw/rKST8dxW2bar6KJ5+/ Cs2oOYUYP+k3QZlmJ4rx+0OiD2PeiOfof30i+jAiIE9amgR1DJSbBeRJS0MQkCcFlc5tq4Ug IE+ybGiEICBPCqlC0YUIQUCeFFFtDAMhCMiTUpRwZCgEAXlShlrEoakhCMjpgCSh0RAE5Elx JXovEJDjk43GWchg/8nghL9QkpfY+Qyq/AqawahFfV9j5yEQfONpVnp5wcDLFyy/Pvw646mW tXT/A4EtOsL7O8f4XTRULmI2PIiUMcidfPh1AvuQOywxvOSMoI6Kx2RMdFLK4AuhENeIk/kw +nzwY1dCi2cgop6XiBpz/19Rj4LiCljaW1CbCsl7QR1GSCok7wX1iJQKyXtBA74GngrJe0Ej RkwqJO8FTW9goEDyXtD8EZyQvBe0DEYESN4LWifDCcl7QRs3TlogSb7cnS6Sd2Mn7U3Kyz5S UJlUtvTb3YabX//sJFv67W4zIf12j66Vt1UmG9kelyFKKyak3+7u0+w5I/ptKa1KftcyCrWu xWfmWY4dyT0RHrYce1WSLcf2dkJq7n8lyZZjezsD6zXvvQF7ejte894nbsPELsq7W5DXxEbK e7+ggGaMGERw9Pus+PAxMuoahJwh3vbO/AFZtHls8bZ3pgnxdrhinwzJAMTb4UoZPoYJ8Xa4 SlCSCfF2uFqQLd72zhoKpY4rPLZ42zvLZCstg+Oiq2Ji0xUeZhfNxGV6ePggU4YxxNvhkV2m DGOIt8OjZcK0xdveOTeA+tseW7ztnWPiOi2t/pcUoQ7xdlqD0ygQb6c12o0i4m3v3E9AYZjX Fm9753L5Uh50ygfxdspDTvkg3k55WFDIhHg75ZGAPc1AvJ2yV1DUhCAj5bE3U2Tosnjbu2A8 VlroQbB427uA80od5eTFFnDGDBf5kwnJSOpYJy+It1PHPeCXvCCpS+128oJ4O3W8oLgJ8Xbq ROmvXBPi7dRJElZoQrydOllQqQnxdupUiVlhQrydOk3CakyIt1OnC2owId5OnSExW0yIt1Nn SliHCfF26ixBAzX/KJ8t3vYu4ur56uKOWhLE294lqD+Lt71HsjNIuxTv0uU+PPMDyxHs9i7l tIWVTtO8UEuoRpbagHkRvpFSKyhkjusg1ORLkabJQszmmDS82Ymwlr4pUv3G4YTaZANQYX5D W7vC9gcjUuHfBxDq18oxG2ILaL9UOIAHueqDOn/URB6dLXadTwWhQUJ2oLkRaLCgLs3oNwCv 6ftBUwNDqmMArju8y7hGRRV2jTiHoqpEDgHzJtorFdUYIlwyF7YQqjVElqfMG6nGRfWpAnVz QTPBBuyfXAWX6FoW+MLwroizikC8h4qAdxWKkNWMRdi7Ll5ehTPcpTR76PEbqUZG/Om+FCl+ RzW+S2gR1dz4mP7Q8onvGgK78vGNlTA0F+9uhM35+C/tsEAfzxkMe/TxxkJYso8vHA5j8Rso OEbk/3qEXJqxncrvPfdfLFH+kmeaYaw9lY8N1meBhDpCqLc6Qqi3OkKotzpCqLc6Qqi3OkKo tzpCqLc6Qqi3OkKotzpCqLc6Qqi3OkKotzpCyFZHKGJlk5qQrY5QzrAh1FsdIdRbHSHUWx0h 1FsdIdRbHSFkqyPUMuXhIVsdoZNhV6i3OkLIVkc4xHBSyFZHEDgt1FsdIWSrIwxnUnO1bFFH 8KNKtjqCKeoIUkn5ynnpbqmjfOW8pzrCNwF07iTIWFE6HBzSHXUE9Hba1J6+9ZrRWI3Dznw8 9fVZdCol2GDk8RgxhjujfgMeBYxaa8mon06NZIzJsCfEu4gHjXGnWjLqXxuErbegqLnvGEIT ZH6Im6Op1YyJTZZMiC/S6cSYJKjQfAtosqBS8zXMUokJEQuOMUMWnBotC5EMozB+QTvG0LAa jKGLujCG0oZjDP2nDWNofTFM8RsHaNgY5ahZ1lpOVxXfiue78eM7kfqWYqRuKIcCZEkNaBzs R00Vf7uUlR1cLVCJ62QVD7CeUUj55PbdQh7+++mnAFNmbl8zUAkRb4t9hriLEudOajbtffif 1CS5ZU8gzW/08wfB1NyywLo1i7Tc6XER9gZWLF2p5R4xWRbIwIp567XcGZOdfcL7A4lCeRId hP34kNR7BCtyy7mPcuc6fcQS8gVv2wvkvXQizl14d7L00VH40smiN5Olj7QSQosz7EXrFpoW c490Fq07gJaWhKSPNlfge1nOonXFPELLKzmsVMsCcSO3OX7GQLTnUBjViF/QifbcX8RK+anE S7kdKHHWmxx3QPw8bJ/iyxoQ10tspBN70GKbO/ghxEJjGLnD4tmViBUqRaysUlAcUIEemscz 5fZ29NDzQ7Anv7SQPxQ8Hk087t/J6Kf7ubfOQmcPHgINGZiZ9v9GP4MIDuxTzR/H6FOgbo3I TAcpeJ9CJTxrhP6kUvcpUtvtmW7sCILFSngxkLNe61OipGNCOcdrfUptEA2h5fr0VfdEZB6D vL5PmRKeKAxdR+tfn3J1rz2P4asbfSqUrHkVoWpqvD6VNqma0PMtPWCLZnwN0jVJNA34H6ef rwagHjVSj7re9ajvXY+G3vVo7FmPpp71aO5dj5be9WhN1OMx2s/2abOhXY/23vXo6F2PjkQ9 slBSo8+q+APEgKfGb+JxOLkvenl/OXp5XjF6+UlML/HKYejlzn7o5dJifNA5gOU8PoRy9MVv IQr++IBhePn5Yydewqa3wXjEjeS24rOIQ5Lji3gtPX0Qvg/VRfQj8dtoRU2J76AlNDU+meKn xQ/QRJMe/4P8M+IjKN9ofNBQTYvFp3TC6Nz4CjDlqzQvxOO3Ek9mx8+g8uTEJ6HW8fgwrNIb YPE//h+aBPPjcaJToBmzKbM+l6Gn3MZkvjn4jXkSU69RQvxcmP9yBPMtbVSKCQYK881BxXi7 cZK9XW4HmndTiszx92B/tPDJFJnj07Cl2qclDkNp2O+g0x2MrROGrI3dxgDyCD/F2hnzYDrF wPbOuwqyB98Q+vXB6TtRd36OTeHlYmQKv2RgLbRuckdQHmYvScWu/5XqdMR8snfMRCQKv52p 4hziNkZxadrYjbNDFo4LRlpFnPXc4j303NKqP6agNOy73k+xq9YH6uI0+WVho26kNsRZ+y3O 2m9x1n6Ls/ZbnLXf4j2031LbMylJnxOQLrtbxXdiExCffjTfqx+DhNccxSvCkZjHonUEsqeo CUizjdPcpeJvwwpD/Edc8mrR31dSjF3q7FRbKy553T9hnOvdVFsrLnkdT9ah8c5kDa240DR7 MGrGSso6+Ti+P5hMi2ROxfdIPi9N0yYRHJhTwclzam9OleTbqZA59fbwNfstI9Rgj18TMuic RkG55r5VhJom2weNoVTcnGZ7eJpfUxVyWpzRSfsDFB8KesG61ZR15vEZjoJesI4LEHQ2BIHF S7TgqHCMix+YT2C0gC4TCnrBMUBQ0DOhoBccK3CvCkBBLzhO4O/KhA5WsFvgbt2EDlZwvMBD ugkFveAEgTtdJhT0gpO+FMUxlwkFveBkgT+7TCiBBaecliQKeib0t4J8iIKCHvaYWnC6wE2G CQW94Iy8mCjomVDQC84UuMMwoaAXnCVwt2FCQS84W+A+w4SCXnCOwAOGCQW94FyBhwwTCnrB eQI3uk0o6AXnC9zmNqGgF1wADoaCngkFveBCgbvc/J4puLhW8nWbUNALLpMy73PzMTS4XOB+ N59rgyveTBEFPRMKesGV+1JEQc+Egl7waGmNd90mFPSCqzulzG4TCnrBtbjkhIKeCQW94Lrh MVHQM6G+FjxWQh0FvWDjmcQMmSuijoJesJE5Ir2t5/Yjvb+z/YCCXvqAs2LCoOib9IGnJck2 Atc06YMu5bBScFL6YGGeDnBS+hAB65k50odK9+9SzBzpwwQeVNzB6V3SHLfr3MHpIwTu1E0o 6KWPlirt0k0o6KWPkyoRn6GG6eMF7tFjUNBLn2ifAA8r6AU711N1/ciRFfSCnSYU9KybnVEI BT3rTrlmCZlYKK1dtzGKmFDQs/YISuHGsZ54276ggIKe9fyYmIxXKOhZL90Yk/0XFPSs196K SVNhSbfekRW9wYTSl/XBxJiM1zRwFdg/XZTj0sA4icmRMLr75cPYbWA8u42beEVawipi6M+s EyiekV4bZwW9OCvoxVlBL95DQS+9aTpFS0Ovva0O54FiI316DwU9a+NO8vGjDqygZ23kWzDr cvt+jG/BrCvsyyBR0LPOPQeXax/Rgmud9y2S40HuhxWwd3ye+SBVPNb8is1pP9GUGGt5xb7H wyYo1irIa+J5dazNuSXC3Xusfax9i1VLE2Osw7klaqMjcqzfEF5Uo1iiWWOxnn8/RovASleg 9kQqhv8X+llEcEig1oQJukATGg5l0emkHmiRLumI4VtxAb7WMEIhOlTG8A34QD/hrGR4/Ayi /dlDD8LDhRj2/UYAHv/Elc1A8TBxkWPADmFWiZFFBRmRZdshzCoxYYcwq9lpU0jqslrm2hds sEOY1TrXvnWEHcKstrnOaWIp1SCrdFIWzAfDnp4Bw4RZZYvgwYYJ3cYRWWiGEfyLyhv30BKY n7cRUXYdxVFORvZ3ZuHwWB4/lRfQvVgM4z+t4G39RbTw5FVfgghzaH3Kq/0XKvBJtqbNJnhS Xi2zc14/ZzCdSInzBky0ZwxsM/MGCko1vdTKeZ0T7QFzK2WWN2iiPWD+JG7IGywolwdM3pBT 7UPlGVS9vKEXZsniV04Fzxs22L50eh/5DW+xl0LaMGp5Xc4t23F0eMobfSenazFHoSxjnFu2 OKjYt4EDza9ph5A3TtAQZvM8+zawy2xFyezbwNHmO2iPCYK6TQ1ooqBJ5jqUc4qgaeZJQFMF zTTzIvgkjEwdc81ZKNkRcqBeaHqR3yypw5GmibDZgpabf0P95giVVeYqlHruNm7rtbHqNnxy KXHltT42H9VYKB458EhD2ReJRzY8RqDAi8UjDo9n0QtLxCMLHr+BxpHikQmP5fBYKh4xeHwB j2XiEYXH46BxlHhkkAee8IJhvif/WNGP+JBtnxxN++5oiD2KTOhvxcaW2dIuXOfHxjlCRKOK uCpWXIbPis6jn8pleNhTLJNFpy145G1XbJCdxsQHJ2KDW+xr6KzTKZlh5sXPWgJm/udKMHPR SsyG/lV8nj2B/jPLQN34Ac76K5Dbo/RziGCXWc8sbbavypTcoJZr9uvfh5lDM8qpt8zGfRTd KoNuhbGMiJtN74EIIi0lmGs2MZF4rbOuYlzEG4f0kRkNs1286QT7bnISwppH9pFRgikgbk8B UfM3ihNvfVf0vqlhUUy3cQEKfzXlHu87uQ88ZtBv5FToouA+wAcXWzj1HYMf9rPlUy8jaccx sKC9BUtdO88dZxLTZfa9DuZmP6WfMwimZvY1V1IWma1/2F31FHV8Zr9tuTIdzVgJW9l7cqVG Hx8F29gSFtKMF5fhDd93yOCFZcjgZnhU6hTun0w/fycYzayUDEY6GWwEGv+ZnUE3spvymZ3B bhR5RiRPmuwb4ofM+YMYpWpZx1IkI7M6fh7yio/hvX/5Kqx9vmW89r2P7BuQc+SyXKeV4PKV yXnmLG7G0xBhz/+O4FuWybGuR/iHiXC4pIXBdE6kT5nUY4gayPvfUZkeAnDK4t78GlE7EBXr n0TFTOh7NOIk6pD4/8nGb5RA7mZik5mqwHwAPFho31kF1muqyF6RA8drqtiRWO3DMChpcbZ1 1LKqtMU+d1y1FIpgLfaCmoR1oazFZr+v0aDlLfat0mtIV9Fin0kioFlp3yiY/8CqUWVfKJjn U/+oakcyUIAjWY1I42vMYcivNsOepN9DzPqOPJmkLwY3Nsj9YYf5L5Sl8dhcmaRnoKbNEnOI ORTpWiRml7kH5WyVu7rR5jKEdbTYk/SzQAOOyZJJehvqMFDCphGDgOj/h7gvAY+qOvu/596Z ZCYzmWQmKySQjQAhZA9bwr4ririggFtCEkIgISELixsgiwIKREQ2F9yKLaJgP6vWpSra4lZx qzt1qdW6134UrVr+7+8998zcE4LVtt/zfx4y3Pes7+/dzjn33nPumMnUaNZBvMvyFOg6IaAl vJfyT/rbVUWj5jhk1AqohN9I701RZwva+lQIY6AwDtDfs1SwDzxdfCLg6ngxPHccWPtMoHxf vNKdVc5v+xRsF0ZfvP3TV9JTtvOEDmrtt5bKvgspPWiy9RyitqMKhOGrJkb48NxfmTxUdtp8 3WdKvlz9l+ADeaz1Tk//pfjMnST82VPlW8yMvDPe6HeMOmFhPCq4k3jqYGCh4Let+/CxtL/h p881ROcyqMcYVB6mceJxgRizvVoBPBABOE0CWqUATpf0TgDst68Prb6BYJ0Q4KyYeuxbLIw7 w72u5V5fIzqPe10vRUn0gOtgcVeJK/g15Wn5BO9qbsQ32zDylygqg6g8fi9uA9NlROfyK90b BaYNeR+imU0C6/LzZisAnRIAGJ4nGb4HDGd9QQyLYzBEr+AixcTtx/S3iar2YWV4BJTxELrl pmK43FtEGwN/m0sJF6P6zyzxJVV7r1QY7hplJzdbAIezOrL5u3+3WGztna5s3HMXt1qojw8G Pg3yNkspE/fgxe0Wm39nvOx2t4Vu11FbBfdSregSYQygv1x+oe8OCw8XCpHYF4mfZ3Ii3lzI 5xf477Dwxskva5huBQ2jeKEGKzKWyntlLJV3trGdPks9BDGqD7yjL8CBnxWEkNAtLxfGF2GE lzDCtFogBJeXWuylCuFlOsJlOsLlOsLLGeH51FbBVuo1tkwYOCtAIlwpESKxsEwhXOlAuJIR XlyrEK5khNtrwwiXSb2/w4a6qJ9h/KIFUdNi9wCq2UOEcV+tUnsfC2p/H7SFVw1yLSx2rDpC yobc16qSfjiABdGfBWF2nDWA3wTNszgidbQM+BpHWA2wMKc2OxoHnIZO8205VA1YMtdBnied b6AF55tWpwyugOVyCdFFh2iRl3cj4u1ZDO/2OsDLeYTQ1COiZAjRQiiSKQy8UKeQ9GYD/j7c XiYbcPocklSjIbIEIncRUUa/PtT92WCwXAaNTGrnOvobO0e1VcJtLSA6m6VSKiAV6JuFUiZs oUivG8Q9oZfB3Mt29JJzKvXyAXo5Q4hd1Pqf6O9OtHgEjnQ6B2cOwndTwaUwlMlCfEmFBg8T xmsoyGehjxeYAoU/RztBsMSJEz4afaJYnCYtjxmbZDPmz00GjJME2sZLN9RX8T8hdQ+k+pCA EY2mfq6lPxcptuQ8uthAf6V5eE782HPleHsycyclTEONh1HBbd2PA7zLJuVRQAXDbwkhytku 3uT4JsXxNotj0GAqJY36HX7AKM3TL80zhc3z7AGGsRBVfiuHiF3EwLpKYRTXK0U8xkPEeaB5 jHicx4hLiB5MofIAjwt3gKIw+gRTB4mSw8STapiQIfh3Jlj8iC7zWJIHTUgynSxzAAv6KZMF 3XHekJbmNkM8bWJeY3bWDmBQz5gAZXZUDe1FTEOUX+KF3hfNYX7CWYQ7uRWpeYBZNJSu8zDX F2+amAsNpy5yW8D9WyYQF26rEMbv6S+XT/g7bGKuxGo6SgwWl+YjFAH8dyyUTSSQC4YLo46a qRyHGl+jQieRw19CL9/YFlHJsegf0DUmuSMYxreYpB0jciRz8D0YKIimLp6kZv9IfyNZRcc4 7CDtTaRx2DmGqDOKo84xthcOOMfA05AGMFyQRe2gjQ8qVfwyHKq+S6q6agdU/SoVfRa+O1/6 XBUh2jNCGNMblKrnsc+taFCqnsfTlHtBs77mseW/TPRgRjZPANrfGtTA3sgmKHXZJJ2mo0Va 5ALpoLwroZm7z5tnj/NH5YBgsj3uGUihFeNqnbTHfcTgntHCmDRPMVnF9tg2TzFZzfa4eZ60 x9lsge/Pk/ZYw5Q1H4dywR5r2R7b5qs5wRw2yJuIlsG03rSDaS5jmMv2mM9YG9gYD6IoA5qn rDEPz6rFfBMjzEfzbUyVUvANwFQ8p4CIkXKOx5gIz6Ixwgg2KnP6COY0olGZ019scxrDPX8s vcBT+TCU9wlWB22Nypo+Y2uaTj18QK0eG62s6Qu2JqR9O1pZ0xcRa/oiYk1fgKU9jWGb+aVk fRdsphi3xcSiJg4vPHoR2yPGCuOpMOuvgvUjYJ1d6TWN9dc11t8A61j2StbfYtbjC/GhSWE8 P0axfphZR9ozYxTrhyOsH46wfhgs1TSxI+RRO2jjlXA7f4z4wUF7RAamnKQiah4R9TtTjCYs Z9FkbkWTMq8jbF57m5R5/Z3N67kmaV5H2aC+aZLm9TVTPchc+zDAb0wgHEZ0Nn+98h92+EuU 1vctkzMXKHf53oy4yz/t0Fc14Cy0dEwZojQ+w4IgV6NmKZgUPCbnZcBYTDk+U55RfAFBEzGw tFN5fKkiaP9Dfwcot+QSurhrnBpfzrDHl+vV+DJVji8PYXwpzsWQOwl+uJf1/ijVWz2e5mOU VLkfHP4Ci9o0qljJg+kexLzTQbIk7oQg1jYrVd+F9gq+Je6OUENx45WK9rGqkeYbr1S9L6Lq fRFV7wMXjzWzqhOpMbSRFG5nf0TVL9ohbydPL68jAef8jcpfAIEnmWIT1SmcQHG3WSk8nhXu a1EKD7LCserPZighVirGd9Zpgq1TeyGUqEY4qdJkVmkeqzSFVYqvwQ1gEaWaA+Run8LDxMS3 49XcMs+MzC3zTEDGl9/l3DLPBO4r8QUso3gP3qk4hKauYaUUE44/09/PWpRSNkEpL7YopXSi Q89CpYXNrIUV1Eod1Vo2QUlvC2sBaRdPUFrYEtHClogWtqDb0QtZCzuoHbSxOtzOdREtvGoH EWghJ1RKqWDPNMWXVLp9Ig2nC9US9JhQS9CRYNJQS1D5bXNh2vO8PEZksQzXLVQydrGMbwBH xU9jx/YvYfztMlZRN4MnCWPfQiWeVojnrYVKPG1oK9SqxNPB4tlFrdxLNZ+fqGAtlvGI6Gcm KvEsjohncUQ8i9Htya0sngeoHbTxSridJRHxvGXHI4inDC+ZnYohZRbmcmyDM3jgLWcuZ/I0 lUeVn8tq43g4fxHVUGCwHClHE1Tsgpnbqiy7jC372la1sCg3a8mS/6dVLSwGmdocegiPaGMf o3arfMpoxyijlSuGsSZWDC+3KvmPY/l/CJoZH8/ac7cZxjio46nJFF2IJ3GWOf5PpTgomcLj a6UsBwC6VgLKBKAkLAzDr6JlGUEATDrqTEw0gh8iETPYcGKSEfwOiVnOxF5GMEg0/yRVOnN6 GsF8JE5zJiYbwdEojp+kec6ckBGchcRlzsQcI9iMxGudidlGcBUSf+5MjDeC29Fws/pJOujM 7mME70cONmQwXkniaoLc+4QX+4SYIPc+2UT/Rj5IIIqJwxTIBjwkCWMq3m033u6FO+jnDTGM s2YKo+oke1fUpwvtXVGdWCGO4aP07Z1Rl6ZTytixSLE/jLucrn8XNIwZ5gR3Au6TTESKmWO4 Z+OFr0lbmfJEze6YY5iTdzOVKr8yi+P1PbgQqjX+8m042TKi76P/chU9yjBfwv6dk05C5g98 asDb3acG7I8K2F8MiMknSxJfwfqHCwHonfSX34YA30QDaaXIF3LN53eBidh/giTzFVeIXVTy qnOEcU4bvpSJ0mtQeCWRcewva1D4ViLjqw2xFnieBTHbJna2E1FjiHUg6jpwDJJNVCwipVKo WA8idAoOAOv04nFz553L4mdQOO+B5/OLDSNhCV5H+RwLYmKkgf7il7QY4gF0XET58Q2G+PVh auTUxbD8xYa4/hTsE7F20TBOkPDmQjIEG40WwxKPo6wMZCElBo/fxcsQ0UQhNlEfO2YIo5ka TGHQE1hEO4lOZdQTBHp/EPS3C5kGA8cW45wzLHeRm7GEHOsazOMnc+4I0Hzr7CSmzwX9Z9Q+ WYCHHUSnvUtdl1LXPXmj/zlc8P4liA28qUkEoJZGWrlTGRjyH5YoFudLLS4llv6IRucLVCgg Op1ZbhNDLF449mjAYICGZ1Bmr5bqWixMJrHIqqTIWFpICdtjtJEMe01GNWM6XpI05mfAo56k iPcAhcyqmbZHnd2qf/rqCc1o7W9n2J/JkKdPnxkxcfsQat6fJw+hxihvG7d9FvXlSLE/i4Wg sYv+onBx3Gex5A7BaJftDrxRMCoP5XmjYFT+PsPeKBjFH7PmjYJRBc8Z9u7AqJLP0Zd0O94k GFXKrGGTYFS5D8soxybBqEEQEW8SjJp8l2FvEoziI5E8rmF4UuFx4TtVMafAIX04JJoyzkBK TThFJcMT+QhpVzY2WvNevZhsfHfaz3v1PC4GgsNpA9nXITlyOG189m5KiMXXzXgLX3x2ADYQ 37cX35o3AtjCF9/vkJAPBj2u65nFdv5dL+wtfN7z3jfsLXzeKjyVj81SW/i8VQHsq/MVvmc3 yAfuVuY4t/B5qwfqW/i8NSPg0jPUFj5vDTfibbUbkdvxvHU1KHWZaW/H89YFsB3Pu/geyy6F 7XjeOWtRKlttx/POCWA7nveLyTIiB7Adz/vX+7mOK4DteN6vDjDlCWA7nvfI75nyB7D5zPv3 15mKD2A7nveoPP07MYDteN5/yDZTA9iO5/1WUj0D2I7n/e5PXC89gO143mN+53Y8b0MB3rAC 37wdzyu343ljRZ7cWcjb8bwBm5Tb8bzxYorcNcjb8bwhUS23DfJ2PG+C/TlduR3PmyKu4ly5 Hc+baufK7XjedLFfbhYkrZaq7XjeQxXC3o7nfYEvsR3P+xJskrfjeV/hS2zH8776BfzMdQRb H7G3UPjwq0wUmvS4QtiOB0XE5HAJ/FLyZ2xMKdiQOJrT8asyJ6KOLFGEUxWAUbD1j5YFTkfq GqQCEVfzHaEc3xp1RYWyuH98JSu0P1x0dLdFr6HrBJinxye34/lK4ea8Hc9XhkK8Hc9X/rhh b8fzDYL183Y832Dc6OXteL4hGGR4O55vKA3mcjueb1hI2NvxfBUsHHcZJd/nsiMTLcvaiXaF SpOhB5H8GuJfchZOk00uw4a35BfhtskUkI3M5AtM/GID7KNGMnbULReGi+KrERqJZl1fUz+h idiBGJtDuUct7DuZGMBWvtApM+Tz3gDepwpNlfbgCuABSOi0drnRMxBXhQ97S7fzBzah3umS ig/cjPn/WTW2A+AjlaHptlUFsCEwdPYfhDR5vF0QOucIu0NmAOfhhmZIqg9JfBn1lQKS7/J6 KnBgR2yL2nnoqWB2PWF20ZjntDz5xhJ35JkmO/IYrp44gqkS+wxjE3HsaBR2pFUG2nGw8Vml dgttNHnznGPHtMChcdjQ93i0BDyBZpCe6uZoCTibJtueusnREjAm6p45m6Il4ENDsO9LUqmB DJho45+iJeDl+Hxgy7fREvASwGoTHgmYd4V6RmbgBUy0PAqkZ2TgY1pteBbnyDcVAnhS5lmS 41Jxdyo29DXgGYUPv9Ju2dhRgwoUArmrA8U2dSk22lHsOhS4JVzACPHHrrgs9CorII3KQoIe FwrHHO7S5GFZIoc7PYgS30ZK2F19jFeRg4Qads7WHW24xuG2X890vBG4m35A9jF7BrAnxsrd 7ZHgj2QS1W+1raA9+EZsf0l5AkXYgT9gtW2RTzZiG7+0pfgA7kJaBattizxIS2yrcLVtkZ9j P3/xatsi09Bf2WuGHYSHoIvEBkSzHWT/0f0fBoO9qavtOHEzun+giuaqouiIPWYMBFUsKVdg EqZaJZLyBM5FXpmk/IEeoMoVg7eg5CBJJRqpW7EvKjo/gJdUogcW2qqPxpGmBa/ZDQBvtI0i nvFG22wkBkyULHnNHnQS8bixVCGMwnGpZZLKDODtmehBW73K5+7BsFrhwqcLgTL1OfqZHD0s 8B62gFS02JxgMRw9/I9ca7wR8zpmEz78Ugs3wKVcqOdajGIj+Lt8eXjVMZiT3NALc8DpOL8n +Wa8Fpg8EsddJldj60ry63iBIvkbmhZGJT8TYLuYSmv8YNmXaG5tOk7fHoUXdmfRz5XpaLIi gLd1giPyYuyxfR8q3FiHUhvo524iPcEbe+AMseDNq0XEi4K3bIhRXlQO9lrTMEG5CbsycZuQ 5kfX4hV+FzpzuZJoJpL7EDKtJM7cj6M930eef0yyKwRcLzCuB3B31nDtxnn8Ew6iwK8ysNMT 21hjd5HA78VJKf7JAbzo6j9fqbeFJkD+6ttjpHofJL79s9+PkeqdiZI1b9kGnEVu4K99yzbg rShZ93iMVO9UMmf/nEO2etfMJareDqmB3+Ekkbm5TPUP4LAJf4Oczw0MrAM1T+YVE+jPsaHz PRxJUwlLfUrgGlP0T+lv0VJsI4DNHoTWb8ESgQ/qeRqlXlvKhgAP71mAx+YGWhgqEEe+pNpT Zwnj71g4bKPCvadgzjn0QIDXW/cKozcO+BVDUdhtPYrbphliHxq4XqCvaVT5YvrLvohGuMuo 9S9a+Xbqckr78Fxq/CLF2p0ofhGRWbgn8lmA74m8gm2imffiDTWUOV18SXWqzxfGXVQwm+tN e12evsfVXpPVHuVq+Kp0K1i5XbRQlcP09waq5U+ltJt3+eT9trIsom5hmXe6smtwNtate2Lk vU7u4DbZgZ87MOO4A+Mm3NKroA6eaJOr7D5jILpKJOWW43IEzkEnuX7ADgZXzMSr7fe2snDf IWY2XSCMqIuJIa46tJdck/fFd5bBOjZHi6H9ctBM/4N4lleISyMzk0AWopn1Ak00XkgrSGom DfYp1iF0X0DkAGb+KjB/LZH5cVTrQSr+xgXqGdlGmM9ApP3hAnUbdiOme+l8S28jdPrwxUy2 Eon49ObF4CALd+9SpCSyIIlM2MOr6K9DtBA7WB9+E2apHSzlXqJYWgSWWonMv4VqbaHi91+o WFrKLCFt34WKpaURlpaCpZ2XKJaWgqUHLmGWoJx0yVIFscQsZkn6DLAYxPrCDfsILx8TjeBB 2PFnzsR4I/g2EqHocGKmEfwKiSnOxFQjGE10cK1h/7gHE3lEZZOvrAPc/L7YgWc9Qa7Re3Ob UrTbOghf4ddpjVVZWFjPHG4YFTTJf7TKXliPX/SjF9ZqNY0ldFThrC5L6KiixsgSutsls1tb Mlt5F6kls5W/Ti2ZrciS2SrYrZbMVsnBLktmK7Jktso/MPQlszVohVoyW5OvhKxcnWqx68lO oLajebEb5eKZGNbQ4h5eoWk/VM2jVq2u8x5Wq1ZXFTbuxFwm7FWrSx484y4cJQcSfvndXXmq aa9a5Xer16LObSL83Wqf/G71KOci1VWHk7hinhbh71b75Hern7ZLRbnQa5TrZP5FsPfjMhZ9 edwlASxB3KUQWwBLEHfZ87jEEsRdDtYDWIK4+aPnASxB3INxozyAJYgbL5EZASxB3EPfwCWW IO5hn+ISSxB3Bcsk7nzq613qJ76NlyCuA2RAZv+5Jl6Sp2KPL8KHiPvzFy/MUS5yEFdcEEfl TiF1m6M5QcQjIZvWPOYYmRCHhE0oMZYT8Iq+EXyTBgRzHCd43EioQsJ4WcWFhKNLKGGCTLCQ MBmNTpIJJhIWIeEkmSCQsA38niwTWF3T0O3pt8s1vTzt6Iyjcn7m24y8s7xyrWy43gWZdxZW pZfSzztEesw8WWeYrGP4MJ83Ky61bPWf204XA6/E7SDXBiyxboJPSCvDJSVDpFEunOgZOsSZ SPdivPZCgV6sWBxm6bocmMreBBvAsYLIRLPMtwnI6s6338wddSr9P0cyFW8kPM89QUO8coqu 6Ik1NBbEvHKKlme2RJ9ym23E0F/0aS65puAzW6KnDbNXTlGuOJywgYWvEARPTHIJBJSF1cJ4 9RKcg78IzzNcgGFdSgPNs6DHungG0ulKmoc641xgadKlOPwc9HgXYNaj+IdLcPPTxbx3xied uRQ3UJm8gbJT/ogAN8WF7lOBUpziet6Fb2fUGOJUF74G1fMOtDCVq7xEVXq+OitM/43oNATu i3rKJyK72JnwpDbEn5xyRIFwUKAC0ExiMu6fjgS76S6xnOCWzBYU9RXkZIY84jIFOUWHnMqQ V1ymIPdgyDdfpiD31CGnMfkqZafcitYyXeheQs5yPe62IWc7IOdwldhlCrKkC5bZkDdKyKMl ZLzoHhoSFYaMsOB9Iww50cIqraSDfj6xxGgCatKKfcoyBfYDC2AXL1Ng/2xpYD+0APbBZQrs RxbAvrlMgf2LpYH9mMngcgJ7HrK/stC9BPs36+4oG+z/WhGwR7jKpOUKrKTrl9tgb5NgqyRY fJozhI2MokuUlz/P6+pOxD5YcQzYH7FEPOF+gv5WL1fY72fs+5cr7A/o2H/N2I8sV9gfZOxJ KxT2h3TsDzM5hbJTXkdrB6xjYexPWHuibexPOrD/lqusWKGwS/rmFTb2ByT2XRK7m6J+KNdz IuwS8V+RvxDdb7bEIUK7olYYv1mhEF/NiD9ZoRBv0BFvZMS4iy4Rb2LEp12uEHfqiK9hcjVl p9wAIW+10L1EvM3C4TmMeLsD8Q6u8uDlCrGk37zcRvx7ifigRHwUiEPeEyA2Eg8j6w2Km2Ku JTYR0DF1NJm8XIGdzWBzVyqwNTrYWgbbsFKBrWOwa1cqsHN0sPVM/oayU/6BLhsdYJusdV4b 7AIH2GaucmSlAivppFU22JckWONm3B/8BV7Nq4UUR1hiGuEQc4RRtkphGcJYLlylsAzVsQxj LLeuUlgqGMuBVQpLpY5lOJPfUHZK60UI8ha6l1jGWmfH2FjGObCM5ypFqxUWSZ+22sbykR2G b2bF7cP9vmdidMXtjihuK9Yr6Wg2RH5JQB+jv6bVCqyfwW5frcDG6mADDPbt1QpsHIP9frUC G6+DDTJZtobAHkLxZAvdS7Ap1jifDTbVAbYHV2lYo8BKeu0aG+xnEuxwCfYG3Pi836eD/TQC dhWWbH/lYGqKQwR0Rb0wdq9RYN81AfalNQrse6YG9n0TYFOuUGD/ZALskCsU2A9MDeyfmWyi 7JRKZH9ionsJ9lOz2G+D/cyMgP2cq9x6hQIr6QNX2GC/kmDPk2DX4V7x7X4d7MMRsAv5iTv8 4yFTbCKgY+YK490rFNhfMdjYKxXY+3Sw9zPY069UYB9gsAuvVGB/rYN9kMndlJ2yF8UfNSMu +ZjZK9YG+7gD7AGu8vaVCqykv7/SBhudxmCXs0uOwB2C3vCPq00xjXAEG4SRtlZhuYKxTFqr sFypY1nLWNavVVjWMZY9axWW9TqWq5h8l7JT9kB8m010L7Fca/5FYdniwHIdV0lZp7BIesg6 G0u6xPKoVNw4ai00N3ACl3RGVXy3STyCSFRlikyC/DL9TV+nYM9i2CvWKdjn6rDPY9hPrlOw z2fYH6xTsC/QYV/IZNp6PKEFXWeiewl7jvlOwIZd74A9l6ucvl7BlvTC9TbsEgnbuIVh4/Tb 0Ky4H4JtJPaNp/zlQDzIFO8Q2s55wti4XiEuYsQPrleIi3XEJYz42HqFuJQRZ1ylEJfpiMuZ nE7ZKblobZgZib0V5otxNuJKB+LhXGX9VQqxpPdcZSMeLBHnAnHiV8ByH2qZpthFOBrmC+Op qxSW7wSwHLlKYfleaFj+KYBl2NUKyzEBLDOvVlgMHYtgcuPVCFCgY0x0L7H4zBvjbSx+B5ZY rvLk1QqLpD+42sYyRWKpktr7mloI9Qt2o72ICp8P/0hl/g3Fb4DXviJEC4Hv0ygMa4MSwPMs gKINSgCHdAG8wAJo26AE8CILYPMGJYCXhCaAl5l8irJTHgD9hkD3UgBvipuCtgDeEhEBvM1V jm1QApB0xkZbANOkAHZJAXxDLYR6hH5IAEbiB8jPR9D4hRDFhPZd+huxUSG+jRE3bFSIb9cR /4wR792oEO9mxM9tVIjv0BH/nElrEyG+Cl3eJdC9RHy36AzZiPc5EO/nKsM2KcSSnrnJRjzd jlMS8SfUQigqIYy4q6/iRAZxOnBcKsSXBPS2JmEs3qTALmawt25SYJfoYJcy2A83KbAXMdjo TgX2Yh3sJUyOoOyU/4VFXS7QvQS7UlyWYINd5QC7mqu0dSqwkt7caYOdJcG+I8Hi+JHQ113A 7u4yf3gCN0azwO0ZQuwjtNULhLG/UyE+hRG/3akQn6ojnsqIs65RiE9jxGOuUYin6YhPZ3Ix ZacsRfGzBbqXiM8RLYk24hkOxDO5yt5rFGJJP3eNjfhCOx7fyoifphZCHySGETPO6yNg9+MJ TDxCcT/yXgKa1SyMT65RYLMYbMpmBTZbB5vDYM/drMD2YbAXb1Zgc3WwfZncT9kpD0O9+QLd S7ADxflJNtgCB9hCrvLhZgVW0tHX2mBrJdhMCfY+aiH0YlIY7D3hHwabfjs+wzQDPf9DFBPO b+kvl5rqxVj/F1BPB8lQjwDpFpAM9e9Aei9IRnoUQD8jsjcD/drG2YtxfgOqZIthuN6HZL9H vxmM8p/jk3HqHYE8FsFoMKb6LQqjpFeDvgv5FPaps1u32JiXSsxjJOY91KDnSQAzxfGTi/Qt KZTjAuTnhNEijAP096stCvLvAPm9LQryQUDue52C/BQgT7xOQX4akFuvU5Cf0SA/C+pXlOma D/IQ+pWQXxiSYkN+EZCzGPJLKP4pFc9ixEzGbMXjC+S+jBts/bfaeC+TeM+VeHdSa557gQqF jsO7Gq/XbQO7t4hDhHXVQmFUblV4rwfe+q0K7w3Au2erwnsj8D6zVeG9CXiPblV4d2l4bwY1 bRvh7UTmbehX4r29X6qN92cRvLtRfM02hZfJ27YpvHcgBD2+zca7WeLtkHjXU2ueXUDVJTKn t/SgxI/ATIfYRDDPbBXGK9sU1Ga+YbpdQW0B1AnbFdSFgFq3XUFtBdTO7Qpqmwa1HdQrlOma gQFoCW6XS6hLQz1sqBdFoF6M4r4dCiqTeTsU1EvgjpN22FC3SajrADV9NBY+/dDjeFFFWPDA ZdYOhWck8KzZofCMAp6ndyg8o4Hn4x0Kzxjgyd6p8IzV8IwDNWMnnpJfTORJ6FfiOfk9hWdK BM8pKL5hp8LD5F07FZ5TgefZnTaevfbQKlU3sSfO8wWqyGOSe4zj41Ic7qnisQ4/HMgw/KgT t9GZmG74lyHxNmdiqeG/FokPOBNzDf/Pkfh7Z2Jvw/8InqFzwx85c9IM/2vIeUT9xGFJFs7O NPxHkZjuTBxo+P1Ex5U4E/sY/iyiJZtTnDlFhr8yze6csx1X3PhSZ+kehr8BpfETt9mZk2j4 VyIH/MbtdebkG/4biDZuhJqNUjwYEg+Npp7nNjfVFVV3tNY1lpUWtTe1FDWUDR1cVN/YMLum oLSwrHBw0eyOhsbagvbWujrOK0BWUU1bR1FNa/uCwjN/YhPOZGrEmDR1euaYMzNLC0sGFw4r oTWPCBrxUZYnzZPrScBZ9yIo4qNC9JsbSPBZgTRsAu9jWAGfbyQew9GlR166kim1wlfpOwnn EcYZPr6IwgUNh32pKU+SEAn98Ham20BeTALRaAm1yCNjww0MxasXRHoiZGwC5Q7HYVgp9kWc Xd4tC8T35UaDshNchlLoUrWeEOtgL5FGrARcJGVRpSIcXuZylE3pT2XTaYGdOojb7KGg0Xhn 8+yWZFqkVZ8v1uf3gZP0BEdbvQqNUX5ZBlwFRUiMjiJ7L+R2ZLJKzHCHWzNxZHs5kScllPtB ZKFCdy1ll2uVcpwNZxIDfdwO4LnlDqJvLypakjA9aoZvJhXs5zZKKLW/T6BpConlTA9wNhjp Nt/BK5EDyzWyIEKO8kNZ3dqR02KsiFG5IkYVsSOp3WhpTh6Yk1eZU4w0J59uTn7dnGJ1cwok nMCKIqoOKiMJKSNJUKaXGDGyJKeRJTuNLMVpUqnKpHpIk/o37Ciifze6hm57u8PMk/XgyL5M vZjSVlakIIwkO6xTR5kcRxki+5RrZK7TGPt2ZUa10a9cStmu1P9ERpvnM6bTfwN02813siUR Dix3ICyItG4YhT4qTBEU79UXOyuiWkl37lWqm2yZw/wp0pVL8x+EZsHbYGn+Q/Afig+VxdGY rDCsl4jUrgARyatUTjTcrQlkBFqXOSN1sIrJUeWapkY7BErkGJ8Ab2O7Ovk4p5OPdzr5BD2m TNR9ftJ/3U9/KN5LH/YlO1TqV34Yq3tvQPfeON1745MMtBtU/hjSnTgh4p6JTvdMcrpnsnLv FOXeqU6H7aEctqd02BN7aMSLe0WCR+/YsN5QMCNFQ5cZ6xBBVqzDqrPD/OK7LS4H0ccZDXId 0qK8vpxnc9Gve8Pqr4eAvO4DxQDdXvP1mDBQjwkFuq0WOkNE0YlCRPGJYkKJjAmlekwocwaA cmcAiHiqdIohEd8aqtxvWHdxoEKPA5X60DW8q2+NcPrWSKdvjdJ9a7TuW2NkQBkr48i47kLu eD1cTugaxiY64/uk7gfiyXoYO0nFq5OPD6ZTECtP4QLE7qnO+DW1POxgqHzaj4oLP2UeqLt3 tO6wHhk1vDJAxETcqOucUPlsrPLZgIoxcTLGxDt9OKh8OKSiTEJ39pCo20NS956RrLtCiq66 VN2qVaUeJzL2nrrppOk2mE6raaOX7gi9nZaXwfjdXeeIESVq88L/kgrt0K5r0qNryKskrYK9 jJ5+p1pilVoCelSPU7qMl7oM6kYSiphFgrKDRGUHP1JpJ1JHqm4CPZxS7dn9DD5Nj4XpJ4p3 vfSI2luPmRl6VM50a26YpZtFdvdGlqPbUh/dbnILja4V+v5Y0/BETEON+dII3E4LiVLaiFba 8CibOW6OLq3iX436tsbjIhqP180s6LSnkLKnBOcQmagbV5Jz1pHsHFhTEhxEqj5u9+hu1t3T 7RiF0pwhOt05WPXqPl731lWccSK7yXRrM78s3dyydbvJ6X7M76PbXq4aMfvqs9VuV35odkBk SM3X493ArrPhArc97hTK8a7I6ULFuhuW6D5Q2r3vlp3IWct1rxikD12Djx/3hjinDUN9XecF KFLhHOQrnaF2uFxnjNCH2ZFqmB3lHEVHy5nIGId4qe2x+rxgnDOehGcC3QeZCXpcmugM8JN0 P5/8U53a6cKuiIe7pYdHKReOli7r0T3Vq/tjjO5sPuXffhn+Y53uGlDu+pOW3vpMO7G72XjS iQwmWZdiih4vUx32A5eXOuzptIE0XdTp3cfhXrpn99bNNEM308zuZiJZbo2V7Ij75Tjdqc9/ Hr+VgKOUgKOd5uBR+vMqK1DD+Q/fY5Ha/oEo3r3gghGcIafYE5ygE3UdJDldIVkXdYqKc6m6 zHt0lVtPZwJa/W8tf5V4PUq8XhacRwkuRhdceFjUpPtv3LI6kQeEdNNM0B0iURdTki7N5Ih2 UpzaSVVS7jJb0kY9xNY0Z2xNdzv01nWKqwfKDDksZaq5blZ5V+9A7znO4P6jPeOnTnq7Uaia 6Kopjk9OcfxSl7HO+UZAX653VaCu9qBuGyHdCpz3NpxRNUlF1WTcG+H7GvImSap+66GH8x5I T+fdkTTpvekRc+qlB93e3QXdjBOZXKYeZbN0C8wOj3fahCWn+6lAH30ulKtPJ/piteS880hF +uvTlbyIDat7jqyYfH1W5by/QY0UqAnRj7yzoc/JSpyGWdrd8r9Mn56VS4Me5BSNKjq4+wne EOWDQ7tOaIY5na7CGSy7nd3oAWGkHgH0OY70yjHlkbsbKDNOd+Xx/1eO+J8/SJJuEYmm6iZi vO6VQenHoYi/JTi9JdHpR0kqPCSr8JAinSnVGQV6dOc/XR8EOH06Xfn0D9xYdK5kMp3rn6wT mekPLR2cDufwi1ynz/R1OsMP3Gx0eGOe7mYDdDfrurToPgYURFy4UPllkfSYH7qlKAt2vanY 9UZbuXMVN0j6xGDdO4foAWaovh4YJr2iQnpFpe5Ow/VQOEIPhfotRaenjtbH5TH67HCs8v1x +mpuvFqJTfiPbu7rPuXWfSpK96luhseIP8d0r0+fbiJ+5eix3U2MA7rI4nT5xutyCjplGNI1 nyBvMidGjClJn1UkS7dP0ZWfqvtDD91ie+rmnabMM1238166Bf2ESbsWEY+futsPRcM3XRAj j5uW/MgHLf+NaOiMYckqhqmI6IxRPXQz6nkiP07T9Z2u67uX1GlvXdMZ3a+ou193OUNatu6t /40H6mBPPU7Xh9b8iCEOVGbz7xpG14W70rgnorQfN2DaM1inggNOBccpE4xXJhjsbmgLKRNM kKpP7D4QJOm+lawPTynOETTVOQ71cM6vurqgU6E/sFx3aKK3rvYMp2IznRGly01Zo+sbM7fy Oz4zkSO+JbmRsFip9O8/eN3HMGpa2xsKz0Q7OGFgVZswrDKRVZSVNSuL+KA+3GY5PquUQ4kj TLdM2XUlpfjsYvX1RUWzsrKyTEGZt/FBl5bVHZsdba1FDQtqGjtq5RtDxFtxUX3z7Hl1Ne3G CXLpwigsLKJ/LY0d9Q0L2roUbJ8vy7XPlxlUPlLbLnWCKrXz9YyW6gX1zQUllMVXdrdtzR2t NXVtippb19hoX4M1ZwN6a7Mb2tsMo3V2QXVHbUNzW01r8+zZjXWtBRJGYQ3kXd++tKWucC6k w5dtdG1yJbvUXAPvbUoJ2eVqq9ur2+rawyX15imZ253f1r60EU27mFrcUFvPdSSJvjraGxrb winhLkDCOJoXzGmoJ9qNLucr5qKYqmlubG6VlJTZnOYFqBvNufU14YKLGto6qhvDZG1r9eLq 2cyWTLDrRTELrTV299WtrdVLJb76tsaGtghWqQsiPVxj7uzmJWEEzmvivr26YQGLQwJSjbCY m5prOxqV3BdVN3ao65bq1uomeY3eoGuivFIjrc1LlhaE5UK+3NZOkqdLClQkMXWpROWXDtWy ljzloCH+YAU9mZ4sMz/BavIUmjkh8wYR8vzmzCua53d4Eq/p7LTaN1lvGAc9nZ4RlUUNVkL7 3hHWgoMjz561YaRZmXLmfnNo8l1WnTlVeLL2Wi2eQk+9Z9bdFYumrFxkzbzTM8Izb68VY44X HWZZkucuT4JnitV0udVgjhWezlm1f/5tsWfRoo5Vng+siw6aReSVK2Pgp9+5/oWf/gtv+3e8 +f/ITdkxj/dALYU6JBNqoXZL1fUJfBkJ9Y3VtXU239XHsbeAYm7BojltXAClkUC0A19NTVFD OQfbBR1LCuoXdBSVF5ZQ193jhWkVlcr/ba5a5y5tn9tUO7s7R+cAQiZIPakIMr9uQXur8pxI CDD1EGAeFwJMPQSYzpBjRaKU5YhSLi0S/X8OGqYjaLgcQUMGg4YmhIO6JTY02Xlj9dLmDtV9 x4KGmuZaO1qeIKSqeECRuXopJ2oxyHTEIPO4GGRGYhD10N7QZAccJSGKMGyXio6x6ba6traG 5gWOlCZKqa6vK1jYUcdRK6a72ORDd7DdJU2NMhKFoxx0GLbc1rq2jkYwFcuWVFs3h64Dek+y j/q51W1zJfec2dHaYGcs7KhunS9zmmoH2Z2He5hbvaCWVRcLtbS3Niyot/UCZgtqGhvqWJlx KqVuAQ17dc4UyK2OxNjmTFRw4hxBG6ew2v5CVDzl1LW2NttDgIrVIhKr7RlP5kYK0Ps9YqS1 6KAny/OQtcATwv+elI7Kva9aGRSRb9q7d+9dK63Vl3naHxm6726zMMEcmGj2S7Iyv7Jmm4XC yjYHCs+sxWbf/8fet8BFdV397rMX6FJjYhjER02C+BaGGTTxwczwEB9BUImiMhozjnDmIQiE eSBUxTCofaQVNElvHwGam9v2axnUJv2+FGJq2tsWzNfWr/0iJk1b22KebWMkTfK7fd21z5nH GWDApPnu797f7ybIzOy1ztprr7X2Wv+9zz5Dcjf2P27Athb0KS98UTIUtsIdl/mi20b9gVS+ SOJpOpiOSe7Vp1efgRQvpX0ckC0412TBIT5fN+wHL2IxdrfA443YhanwAVNqAr8nBb7W1Fq8 Y4jUg8cn8uUS/P5g5jHs9qn/oc5kGRj2k5NusRhkGT490Yu9hYYByw6DlS9NRqvJsDuQuz3r CWzTW1zwnSYz7LscNBmC3SZPThDmdEFFGcwxYwv+Ac8q/5/BRihvpjLkzzAGyWKQhKnBBA4D DWhOkOB/TMDBI0Gox8wgZgWJmEmGgvRmeNAMtzngwVSY2Qeth5upbunQedICvYcwaYgv1kEf kG13+OEHn+RpEpxPMNM7M55dtR/PBeDzE5uxyGR5Gix8tYT5ATffkMw36Ix8mY4vCf1AA18i waQu8DY74TeNeBl3p+di20vcoOOLZ8OUG/g6VJDmcMtlGoWO3OqDTzXhDSyz8HuS8WwveWEX GvCF1bkDLpMvww86ni9hEAdysnOy/f1BYVhuSPYJ3endCl0OPGDGDr5QhwGelkyX6kIsQfUd rKKhWEwdaIQ97ViUk9FJ3Wbo8BUhFKai14engudIKb5oFtajj8+/DQdwHgbJHp42eJNRyClF PdvIF+g6/G9R/Bz2fRI6j2DrImgow1mYXAENqU+1BETELEvBoYGHbQF4ZEIXBvRmA/q+mu3y wZmmy3u2NazsroelXtjVjr2oN5C+fJHOZNgFMzby1TODLWBvP786l8+fbuCmWXypTm/Iwp9R H2/BuUO4Ec1O6iqHQI0YwgLdQEuvPwizsMfigSrH6txXs3M6/J0w6TJfkkJN3la+JBmT+32N 9OE/yMOPrjwHKy4/FYQPpC5XxS50miC7i2fpMOfKlSvQf7jrh8egrg+ekbheosmV/SZaePZM aDTfvRtPkUH7/VgMfzmMzQSGdHIWLMSyNp6eAic4lsEkvkD6Kg75saPQgGnZOYFgAH9q6dXD ZDO3JmfnHMdikykHOg/zeRK8xzEJPneYL6V5/NIVnp6M17hZJ6xvsrQFKQbEtCjOzrGY4BZv th9+Ld0QeibjczgX3mDcKPEV07hR/ED3YfExnXzdD69KPXQl/JIRNKOmi/CtwyKOn0zA9qKd VlOQz9PJ11DEzpUObp4OU7zgb8YVlF+gXsyGKwN8xQz4I80iND8NB3uq/afaTvHCWbxwNuwj lf+71E7WxuRKLk+HRjTD/TiIZmq41whJN3jldEKBQzTVbudmCXwU5iLXTOJ5ElxKQAee7+/n K6YXtUAafbiwpUNkkTv7wNHXZsox5T6TY92ppiEnurJzsO30BnfWJ4NB8N3gq3R8RTLufgat cLKRctju7YO55KIBPo88nG18yY/COskD6n/9YipQ5uq/iL2wrxnuJCNwJNB5THwtK9uWOAoM jV1+/b+CQyOQTf2ooq4PD0NvCj/GRb4anfW17oPiT0HE0Mvt7rqa2CY7XSLGYh9m0jiL2iq7 x+s4EF6QlYcRUnh9Jn04bPT/sap2mZowioVVDBqFN6jwKHhf73fL9SqIFIYk2FpVJVfUu6sr auqj1lc2E3gsKNKCt48bf2oA59hwMow7b4lZc09VzBcKXpJcJ6vQVIv2lAWP70A4KioqZT8Z JOpFd3Wtzxv1TXVFxBMeuYoiRh2ZemmF2yOAfYSbzCjL1epHZbaoYNOuCb1pysc6ucouJKnB NU27UKiTHXKdXF2umHSq0nGF215V49TEedRJYecK05JTD9CCpEp1dCzijqDsMKS9PQppb48u KZJUdDvte4Ru3+dS2g4j/Jo342s4twhu4wYqBn3+bIKN827PQd01Ss4BSthKdfj5YWzHeW37 1+NB+I/DmIkOCAK3EuT4NtXBNdBYhkZu0qFrSCApvno6vs8tovqLOiH2N7x9BGR8L1pgSheB HwvVzuU6evNn2ENw9UXG0yUo6aKSMh0OYiou6IUqTBVQ73mFtKMLjcT9TQJjRmLqxTvwnCK8 41k0cP0MTEMXlUf076Taea9xAP3H+eLkAdiPZdS5bCFeuJXkDsDVwwIVzsXT4EDz5tL5S1/n hhTeOJPG9asjoqDmEbBz4amMFtI7IwV7i47BM009VERv61KB6RAmV0Gjw3Kq7bTskl29vb3P 8ryZVD8LJbiPqu8bUhdm4S5u1InqdhZ7nyMEvButaDo4AE83UU2Nqc12qs29SmmeqpTmOlpp ZJHZB+DzwDdJeL6jny8X1bjzSB+mDWy5lxDi3w6XbYWDZR/gq48sJeLncgmf8ZW64EkDXdpI znhtde7u7dhJxqAaWzCDF5BnXh2Ah6VWePdIpqUSjks8V4L/daSM3vXwhTNWLh/iS1OEH3dj ETcmwzvCGBZ4V8IyrCds7DtpCRBqJADL0wkgk5KvU8127eildpgqINLuoN6AZ9JzDdDahH0U INclB5w74oCfSJfhKeXVgSr6zFTRJ/zLkctQfpnnJ1sLDQIbdVAUkrd9XYTXqKeTBmFBXyBw RUB1nQAxLkzOyHEfx9nwWYmisBH9dUYC/sus8OYR3Eg4G5PhhNQMfzyCmQTKwGuGWzLhQBk3 TodHm/hKsShKTw7C80ea0ZwbBiYC23UEOvEKAZEHm0mJEBD5jvh6B/bOqNvrN4MhPsxeT5ya WiHv8zkjtVT9FNrOdR9QaqUoq6FE6smM3TaWlIRgrwsll9AeA0QTgmYRDNGMAaFF8C8pTbwn kckCemfWM/guTBrkhqTcdPf+Dm6ZcaXFl/MMRSFM5vdKtE4+irugsRn2kOstnZs6ggGooqWo eAs7yVXu8wO+K1+FrTfQjUUeg3WIgqjMacIkCy1bdsGxpkGs4vqZVav44pRAr8nA5yfz7OlC CLRKtPJy5HVuwmS+LhkeaqKZbIbl5gwXvku5apPIL2suz9U7TUFybwK56WHlhoP42zPjOC5m f+1jwIVjQc3RPCzLVfrQJsdBr1wtCqsndBsgZk9j2M2ASMHmmoLNh4EYGLGjImmBUUIUGMWC IT5i30WKVucIUbsFI8VuyodDKjEaUonRmJugRtfVqxRdF0HCos0B+NMhSoLFAZ43vePb4OkD L7+Hwq5z/7og5kEPdOHprV+yFvd+GXbRur1yJc5Ykut3+n2dfOksaDAXtH0SGm9Q5vTy9Nth Tys+6++06g1GPHUMGvrAzhdL+L0Mv9FajMZsY9t90DgI9T20foVKSjfo8luLrwW+BOXEN38p nt3wSWJc9j4VQ9hLa0zsre+khhPvUw2D/Xy5pIgvRkPgf8IenqWKRj8JhkmOE1S+zLsycsCz EWS+jIjF1k3v+CiecQZ4B0WfskiWzwkFs2QfPheAg32wj4rv2Kzf8uFBhbVcYY2O5r0Qr0sM Zf8qc46/o9jagm0BGrpo39eF5xV9jdk5D8OkTGr+JrjFuNRhtNEwykU/UZmR/t3h0QpjqoyL b45xi2Cc+wQGAsr9QvE3Rzj7z3HnY3R3/iPslY+csDe5Lx9m8zR4bnKiK8nY4a6S9YTqasUk CO28i83MZZHMq4JYrpm7MVutKnxLGHX3NaY1smMa06r076521IR2kENdaKaaNILd424My9Gm igmR4jAxOtVB3Z51+KrLQ6qHJ/bE6MSeGJrNb9Ns/pkkzTUNofWutrusHiv8MKH9kVWY0hEw GXaDCx3Kh2smg3VANDjQG9tA8MtLwKwIJreiNYETvsSeflOCBL841HcN55oMe6Chndp/DBTp 2dTeewjL6HMPDAquHx+imvA7RpXiPExqxWM0P0myQU/QgrqA28vgQTS3FAegskdoZG2D6YQw DTq4F1uL9EP4WIDrdXypzmQwFlmosy8fgx2E1VotcEsPHGxfurwAGnoE0jVbKt8IQAkhoNde qKQpfwVqsRkD53IyAtaHLL39QQg0EVj2GqwmQyEB3dfRsR+7M1yvYtpfSTOod9As/PoemNOD jyjz5czzx8A/CJMuQ/1GeEBMxdj2QdH+p0OU+fC54l3ZRpiEZVBvpq53Q+0g/JyLPONu8cOt N6C2HfY2g+sG/I2gXUDKtLQczaG6/MGRZviUVEavZlc37O6CLL5VGngZc4pyxT+48/Jnhp5A SxFcOoI9A2TUVxMJwnXcRXb9CtV00np+65PwRQnNbvTJBivM7goGg2DugpL2EkhDc8dVmNIM vo0wJRMuE9a7zYG5LT+DWy/D/a2YE4D3jgyS1HcSMZVEnmzsUT6YCX7dqXy+3InGJ/iS6ZjX /9UnyMaZ+O1nr1kwcNeuNrjfQcx/T8Qk4mxu7FM+mJX3zep7Am93qjRIJss8KWHfzqJrRavg lhukFBrgt4RlYZW3DV5mhBxS0OKD9qZmeFqipcdfjxAo7EACse8TGBXX29uhdBAfWZpnVCO3 YRCCTfxuCStbrHrLu5RYF3XBni58M2iyBAsN3TDFDJ5M464gpgS6g7gb6luhzgx3tb8G/i64 /wY8qMDOKwPgUW72ZqSItQ3OfXI/hQJflPLw/l7YzhdKMA1br1yDqRupzrgxQIWvseslHAL/ Rn4PJcwUBdJ08Y+ARcc+F/Ghkuy4d0BHBUAf44baqL3dDJBW1Y5J11qcLHaUaHUfXmFzTf6G 2DtnCVoQlRgFUYkxIEr6p3ewhuVnzX7UxJj9qInD9qMwuh81MXY/auLw/aiJ2v2oiaPvR2mx nbLUCJ+TmBStB5Oj9WBytPpMCR12AInBFyRp3nb327R8P41FD0HpjdOrMffZDCOkZPJMyrm0 ygNXH3Q18Uzp9OqXaCV24lfYs+YVPN/i/wLchT1gvwF33ID7+CKaS3on3EnrV/9jfDnNg1eV Vdr+8cH+x7ZBfJNbqnEi0eOtKa/Uu8ujUN9bKT55XXL4HrAzJhJCATYcR0SDDWKCTRptmywh 6l0p0qPDXu6tqQt7OVr2bwrA104gv7aK5WFnCw7YoaNJ+MYCKc1XgsdgJiHCQKEBi1qo0jfD HDNUbHyE62csWb4fe2lFn23c/WmoIJSokmBuK3yC+B5s5otp3d8Nk9tbYEczpPUVDRRBPrbz ReTXHvF3KVjJ+J7+8C4bH/J9xIwZcXu5z6snHKevtdPCSa+cLVC9H7kFPqrjtF6XRq7wQrBN u2ka6yothJOirk2IujZB9WfeJPLnAonQhRkNtAiHO8Q9MFvXe5jD982kYtchCp547cbXhnoH qIzWbIep6CAe/O45sOBGuCUVvJlix0X8RjNP0+mdrgH8MfyaOeDrTZiJOr1h/3urTlDl9vI0 icr2wht8YXLaYySox1P0Pb/JytOStzTADDSXz4MyTIJN2AWTmvGL8DzDHrzwhwFoIIw01zcE eQIAPECIL9mpt5AoQ+v3qGELURMkviAFXqNyL+7a3Wm0vkSETzf1oYvY7sikD+WpRco1ma2w SFzAobuJcBS1zEIzfXISUPkL/IWJm/jffxYs3mWwpm9lPhZhmrCQRQ5g0ZtPW05a254GnwNu J5DUgy8HoIIw4wOwn5T6Kczh8yXYRr+e4/MpVn80QUTv6Q9xCnJk9H7I8voRVlE3t1SKn0s/ WiH/SIlUFM/RKnk0XYa3T0bbGlFommOFkZ2yhDCxXNw0ERkyJMHjdlbbq4btukjRezSaJCoN n9fR40TDC2rE4P6aKh+9PVBT7Vb7TBxeCGLhxbALw2ik0uc+YK+2O+W66K2NUGWYEAtDJoyA IRNiYcj/YdgxYRjsGJELJ8Xc31GUddXJ9ooQf3hTTIqb9cYEKtOSKAEuEndFjqdlGM/SP1oz dZmdVcvm3P8JbJhzP5yR2ufuRF0vPgIXQNwEsQQC4h4DVrpoXYgl0Oh9JciDXIdpRdwwHfbR wrDHUoQ73w8MvIR3geMGbtqELx0ObCakg2anCS1DcBAz1TcLSGLlCZ6lu+vfVy07f8f7RRbK jHduxrmFhqGcjF0GPIU6cG2EOa1BsDVDpdgImlfnx6IzUH0j/G7njXnpmLvpLw2BM0/M1WOZ Ba0BcGNZm+myBX2wswsfOwOz8TK4e4bwH1bTMrTgi1b9MvThvO25QTThT7EDi4LdYvHyRBN6 55f+clve0rMGvaVX78SWi0V82Yy3+apbYQpfJaEj77h1p1W2BIjmTs+tUswQMHgMveKmSwpf oDsHU/lmCezNHSGu1bmULU/w+1KgrBkWN8PBZl4wG2r64HZxAuGhphu4/3jvScuVjBy00tLS yxfPoDqQChmt3TR+RzNU9MFjYkFGedjRInp1Ydb2XD5fB5mkksmiNxyAjeiF3HYfuruxl5TI tugfuRg8A/u7YKOoalOwrxtSsb3tmgmSmuGpJqpFleDg2RI6yRKVVmhshyfFMn7N/S2fzxHl bBomDQSKaDVogwYzTM7EjjNwsAvSuJlWxZb7l+YdRB1WYsdTP7ZCnVecw0DL/Q/nBbGIqmDw 54cE/xrMFLi3V2/I4uum/4CWfVRdzK4A3DUIrq5dGTnLkFb+7mAL3NsV1Ftc/UHZEGghQ1z5 iRUOXv7Vpo5T4Cv7T7i7mc/TfRt8XdDYQ/XuHgmuHeErJHwO3mdUhZ9s4lkSvELlcg+cpKLX CSlUj1p42kx8NvyLG5L5wtl/5/pkPn+WaJmlNi9Mxu9jhnh5pSNI46UQSMIrfP5s+AUjIz3E p1Dd+q1Sye7/pypZvDrxT68gh1ekMQvPyEMPcWqNWBzqxe1itd5o8re29ITvKI91AiE2iUfT Kx+eJocXrYTIKjV0c19N99pzE4kx6T4xNt0njkj3ibHpPjEmwfNhCX5CNMHz2ATPtfmcR/N5 4hjLyNj77YmxNg4/r6BdkSdGWoZdqKkI6id7xX6fx3tAveWhjilyCEBVNXwIgMdYtFyU0ajQ clkcmXB7Q95IZLEHZrXHA1SpkeMBPHo8YGK09mC09mDMKV+6NCSjvKrG46sL9SBK0oV0KkmD XBJVB4fgmNS8aftr2K83GBt8AT8c9PJ0XfCz8IIk7kPMxRZoPiIO4OVfEefuugN4t8l3rMLf Qrlc3F79DuSLBRfB1yt8oY7yC19EUnEeYe/MAZjWA+72/mLfoeDj4nTiJr5oOiXr3eDveRmv wd52GBI5Zt52zHrQjW16A9xKMH9wwEeJVzlLCicTB9GcI26pdmcb4Y6NokjNFQfb5Gacv8ri dHH9TJ6bUprHs8UvSwpfMwOeaaLy+SxfkExZSoeZ4L7B58/E+aWCPcQGp5r4BkLh0LjR15Al zg7QUqBnGTzX1MeX0HriAGY9tZuXzLhyli8UjzmcspgMb6x8dOmz/v0kYulZXjALtlJaJE2l Xo8RllDWhd5Pcr00vxSXrc+jSyyPf/VYts93jWy4iBoz8/AiWl+sr4ckNEeqqAfL9q/CpDwc gLfF3fF5cFs7X5YC7wJVp0llUF/2FlqDog6dPEJdIaV5FwxJXZh3BtuC1/ii2b6WIrxAJfIB cLXDzL6Vy2HocFkA/i7RMudvypHDrxwRd2ZaLejHtg4f/YLGQSctiQPwBmunKo66gMmCr1F5 ntTDl8/gq5Ohrr3I5fs1PNj1/ttwXbqBrkZuTsZAC+Xwihy8SEaHpC488QpfmOLyoaHf19IG ky7jbtjQV99NjY9iEN+CeVQwy/sgiS+gpZOOL5hOmAJ+cQi7wsr4sR8/IVQhwJMabWz7gdL2 lYQuKqrm1WhtqcvBUz5ccA9fNMPXgsVwoLkTnmvkW6SIwS6yqAQaowEa+9Qx/o4TBHoULS0Z xqzujJx78F2elgK/PzQY6a8XVyr9vcVJxCm82I/nsQjeOERAK8RSf17cglOYzpNjRLziu1TC 03iBRNChAa8FMDCALnFONlmc2l4yYyU8fCSTZ82AP0sEID7zg3NclDRZ2WxYMNrNf+W8jVII 1IM3TJ2tewtptvZyyWzpVybED49Q7UzL7nbKTtkCyWao8pqckNxTnVMB6Q6+VCejTvbJFtkl W0xBuc1E0y4oo9U0gAGTQR4yGcgV8oD4ZTU5+UpipuVxunhxmvofMrzoNMi9/G7dd9sIYsgG YrHo2mR0yugzGXBAbpOdJgvP0NELQb8pNHvFUnVKDxaZfLIT51LfA9ghLuyVsVcOmpyEN4hk HSKKU8j0kYZkI9kgO4dkDMhB2WIwiUu4gaTS7DP1El6VrZRIaIy+h5x6A73IO3MoGLzgM8MU B/gyxQFW0XFXEWlOAAZucTj1pFyH3E//G9rkna4iWZwqF/3uktGw8xoKpUM0SlG+0Qg5ykVO mNKnSKdJKF4cpKZgHhBjIFWHyB5OGp36zyn3Rt7TP4oStMiodOwckGl1/zw0OPbKlmsm9Dsp 43XBDJoCOy34EIW9A74s8UXS6dVnsr65Bhoda5yENcX9nKnmILqwf7cpx6Q3GI6/XIRBqG6G qc07nTvB6SV6ei5hsCSkoWMretwCX3XjTpdyyqRVCbRz4+5qjXZC9L/4yMKwAxIjjvWpdz21 pwSlmKNp0jjHE4Y93xh7YpDd9GmFcF0e+QxJ4oizDInjnGVIjD3LEHsMQxDDhw1D22bib9dD n0TZLf0M3EqBPjjw7oDTNwC/EzUiFQbVRzEoy93WRfGlnPdPRl1QeQ36eN7sGr56Rh1PT4bP 0drH7MRT9H6AG1PEISj1J41+Zlg8cA9JdFgoA/hoPp9s6sHMc9+p3OXebjkFk/l6iUo1THZA VRlhdS+eH8ABNPiDwZwdLcRef5nPT4aKHvXYkw4N3SSnXzmILY491TXDraJWe5uVmLSJP9rL fv4hTj79M2erhfMP2Os8Lnt4PyeKhIaffNE8Has9HDM8suI/Hqvgqr3ktB+hgoWgfmMrTDIb LxKwsBXT0r4ekwI56RZa9bVDsXhkZjym9YLpFmLyEtMtYSZumAXevgjTBr5MgsnE5CemyRFJ 74M/ylPEjR+TSv83Mt0rmAgkgI+YpkTMtHgm+DAzluvjsNNaIWgqMXmIaWqkuxWzwdOncV36 x9Pbxo9L7ZsypdLbJIdyCkCwZhKnofMFk+XTxbjsGvgxKZiTbsgBT7sTCsUQxbkDhbfDFeUa VJkUzbKk/wYHzVjd4bpI5NPXoF7obQj1pugtuiMZcUSsE3sOotybVR9n0qvZ2RlS/4NrkblA OvGFlFAe+q/77oLq6HcXfEl8d0GSFP4mAmopFF9cMElSP08jpn/Qf/T+EN6SkPApSfxpFfU/ 8ZR2Cr0W34rH+JqpiTND7a3UXkCv+aH2/ACwOSHaVaKdD9M2TE1cH0jcfjzhBKSG6J2fYeyo 5lqibz6esP6EWO+FZaR+luRLMTz3CRnh/msfZmxunP47iWaLkZ+w+ThEZbPPMbZcI7sgkChE R+h5n2fsJ7H63XcCjifEs9NiehUPSyZqrpkZajdS+z3D9AzTasegnSXaIg1tbWh8gnaVaPu0 +h0HGiKL0EtaGfs3iNE/Mj5Bn/YIYz/XjH+LGFwgMdL39UcZeyCOXiWPMbZpFLsLWifRaido aCdgg+g60u/jjD0txdfrUjsTf5AsQl8jqMQUpud1MvanxBj5a7XyjV9j7Aej+C1MZ1+nsWni sjDUf2p43F8fHjciLjdE4lIZ/zcY+9twHQujOpZ8k7HBOLGljKGLsRdwDN98J9ZGNMaN2jFe +lfG/s5Gyg+P4dK/MfajMeaW4qdnmPIXr+PpWNLD2HGtDBqhCJBwH1eJnsRj6Go3mj5EAuB8 pC/jzaEqulg8kjFZ45/UUHsqtZdp40YZEAkj+swQz9ELRB8lLgXtEtH2x8kHgp73PGPvaOI2 HBdh2Xl94i9rxcoO63aUaK+yGH+RegWKbmH5tf2MvTKKz8L0kouM7YnjD0E/+wJjvZrr1wQS joNW/r8z9mCcmBD060T/cZyYCPNcoIS3ToofN4p/fjYsb4fiImynVqLnxvMB0Z4ANiI3ROz4 C9IhNu4LqP8YO+a9SHHL49vp+gBj/zKKHcP6db7E2OY4+l0n2txRctNo8SrkzZlItvslYztH iQtBO0q0XI284kDiLq09Bc8FCooto8RlWP60XzGWNYq+glZCtPvjxLSgnyV66Rj0ab9mrIhp Yz6WvpfoM+PEpDK+3zD2qbHkX2XsS2ykPcNjO0t0fZi+Vq1v8Wz9KcqX4qT8gmH1MDVEm/Zb xs7FxmUkH4Wvv0Q8haPYUtBSf8dYZZx6KuitRP9NjK0St4m6Eu6/9veMPTxsfilpIDS/BA8b jJ3Dw3Om4LlAPFWj2DQsw3iNsU9rbKaVEea5QDynx9FlLyWswDg814nnyTj6hnk6X2Ps2XF4 9r7O2KPj2eaN8eVceGN8OXvfjG/jME/qW4w9PkYuVPoini+M19cfGPvMeDYknqfG0efsH8eP nbw/jS+HvR1fTngOtL49ErPHm3N/nUJzjvjvDfOvEzlAnTOCZryuoan9lYaxlqAfJbpzDPr1 OPRw33vf0eQHzXwVtFaiTRqOwQpUDCbonTcIV8fihcITEKVfHYrFiVocKehn32XsUKxu92l1 N/6ZKbtCw+tgmD7tvVi8QPN4Szg3CnoJ0b+ooWtzq2Iboj82Rv+t749OTw3r9wFjzWPkGsFz gXi+OCFGRowOe//BWN0oOS9iQ6LXj1IvI/6jZeZwzBSmdRJtbRzadaIF4vj9KK1W/zTKuOPF 8IVbKTeDxGrC12yI1g1Bu0q07w6Tp63RgqczQYpZC5Ev7wvnZEFniRIrj4Ob4ulVdptYJ0ns wCjjFLSrRHtgFJwzmjxxzTfoGnFwcWEcbCTotVMk9rmEaO0oGkZn0yQ2mcf4e8w17xwiiLNC Wrwebk+l9oks2le43RinPY/aV2psMTPUfpTaCzTyI/iHaJeIdnesX6L4Y5ryHe8xa1ztWk/Q rydL7IT2egVsblb8Ful/usS2anjWavq/Oj1W50INZlBskDI2fS/Rd8aZP4J+YYbE1o8yR5Sx zYxP20u0Yo2NtTqfnamZd2tH2ozNkmLwezjWw/Q8orfFWb8rNpktsdulqL+KBfVeNS8q8udI 7Bs8/vVn75RY0hjyL90lMf8Y15ekScwxRkxcIPpLcfKuoHfOk2Kw03B63nyJPTMKPRxTbIHE vjVGPlHGSDzvxMPVgr6IZlqCRkaotsTLJU/qaFzpEssZZZ4IGsuQYmtdKA7D114i+opR8pCg TdNLwmWj6iroxkyJvTcW3SixHo1eZI+ycA0R9OtEvzHK9alh+jKJtQ7LrWFME5Zx9G6J/Y6P tFeYXrtSYl/T6DBcx9RVFFNj0DtXxZ8zio6rYudioWYNJ+h5q6WYdZjWvp1EezPOfpegt5ok 9tM4OEDQ95olVhQHBwn6WYvE/hJnvij0PGn4XlGM/KP5UnQfdxR63hqJJcdZbyv6FcQf+wWi /XAM2a1rJeWPd8fOpRMQia11EvvXMa6/TvSWsca2fuzr8zZI7C4eE7txa7CoYxkzaLyFUsx6 fU6ovZPa/zB1ZC0K01upEEyOk/eU68sk9rQmBsfDA88IXaxS7HpAs1cj6Net0qh7vIJWskti 6aP4TdCOEs2p3ac5ThGXEO33+m6JPRhnLIJeu0di1XFytKBfJfpZDT2815Uaorc+IMXspQ3P CUofNokV3uRejpD7Og1c3Aw9Fyt3q3ZdKHiO2sfnydsnse+PwzOtXOPPODyXysfvq7VifJ4S eXyeaY7xeS7dBE+r8yb0cUns+XF4Ut3j2+eqe/y+OvdLrH8cntrK8fsyVo3f1/Wq8eWcPTC+ nNrq8XmMNRJ7gcXkE1pz3BvDI26kDL8XMsKntSN0Lh3h0wdHyInZnxA8e+sk9nIcfRq8Lnd5 ZbXs8TBb4RbbPp/DJldXsLp9ttjvkrWp3+ttK6+yezw2d7Xbyzy19nJ3tZPZNlRUbpXLvfZq Z5XMNqwtsu0o3LY9v9hWsm3d9rVbbAVbirdsZdU1tjrZ6fZ465RvnWIbbCX5W/M32baV5pcW Ftg2529ax+rKbbV1NbVyndctkz4bdoizE/Tqrdxavk2cF2Zq9+KoBAtxNtjK7eUu6rdAkApJ sfW+6nKmfgmZTf0SMuau9sp1Dnu5bBNfReBhTh+1rGJb1+THDLJEGaMiiPmJ1cvE8Vm7t9yl 0ctW7qKRyhXMVXOgxilXyzU+ErivpqZKtleTSFUI21AijuCsr7I7PcoICsInoFnoiR2bXx2d rdZekaW+LAuNz+Gutle5G2lQFZVrGrzylroKus59oLbKVl4n272yTT1G4quTbeoXczFbiTgG vZ46WSvTeNy1ipGFS+vr3HTBPrtHZvtIlq1GEVYni29ZsImDy2yf0+YsZ16P7SAR3UJ5RTVb rSxX2mprFOPRGLaoh2fCjtu6Ln9t/pridaSzu9bWEL7UtqG0oVYuUF0X5i3ZWrgjv3QdE1qo wVNb4TtwoEF0Xes+eMBea6u2HyBNRLcel9vhZc6KGh/5hNmqKT61UbW2cOu6gtJQVNXWuf3C HuJct62CRj4irgoLisi4NQ7HirttpHxpkW1rgW1N/rZ1wrg7la8xY5ovPKMg9dSKL0Wzle9j ThECthFRovbJNmzenlqQqjymlrrMaFxhXJG1PHUxyaqTKRQ88pLUxWvlfW57tcKTpb9nCTuo mW229ds3F5QWbtlss1Gwhc2sGeiGrfnWbQX5ZGHVHcohb2W2CTezqppqZ6ryy1ctHvqSK1KF uuL7om12u2JKFqFQzNYxe1VVTbk6+2xqeG6rlcspFEIEmQYvjvZ7VCEUE06bOMlEHvPQ7KZ5 VC3LFTY1dESki6NwBUokxjiC2WqqKoTJPbKXpFfYDtg9lUw58O+JejySb5TQrLDXVYoea+pp iii9slDGUZ/lVptsFEnrSkutMbZTjKMEVTTca711obmk6GrzVfs8Ms0vVRgZx16udLdhDXW+ PjTdlMShhK9w+jY1dSixQ5FDn5TkwbSJMDIryAqU2XzlXsWs5E+RYFbcrdFIZFXxyWP3h2bj AXeFUCHyaARdFYp5p0/4VQm/rBVKSGzatsa2vnDrtlLS50GfvYIUUuYSXR83VUeyiDolN6lD V56cEOZX0om93KsGs1PV1ycCv8YnfBgemTJO5SqbQ8lm+5QMYqt3V3hdzO2J5CIlPCvkWmqt pnypRpVaVsTzb+qgh03PNcXbt65RvRBJ3apDy2tqG9QQIVf5atWr1QpCndOg1VGyUICKrC64 D1AcCVMqj33Et40SLqqX4jMpIRdWuGDL5m2lW7cXlKrBQ+G/Tfn60vDcUEVSos+PzrIQTzhh OMWjFyFvFIpQ8rhq6rypY+rglL2h0N+QL55SETVSmUk2cfzTo8oU1i5n4jEgytlkHOe+iNo7 txaWKlma0kZJaN6VUyirz5EosbV+y+ZS5ZcaEhVyJCg0eTGc15VoqHI7Xd6IJsymjEM8D2vb sK2Y1FLrK4UuWViJZFEA711Tc1AlLF+mNKgV3eOloA9dQQFYJfxOWYRC1KvkurWhZ43UTkXA u+xUIWvKfUolpghQv4uSkIiKC/53e28eX1V19Y2fQMAAEQMERUUB5wkkBAg4VEIGSA1JyARY 7OUm9ya5cpN7vQMQB0RxHlCqtdXaFmftoFjHp1bFxw629alabW2rbVHrUDthHeqjfeq7vnut s/c++56Lvu/7e//5fZoPl3XWXmsPZw9rr7X2cPw3b65dGemubW6qr4WgUDmuUKeMvCVN0ma6 ywWqoaOBRtk6JW19IdY7kEjGqCJozqe34zKu08oJXixC8jbTQ2g9yqAHOka9mtRUC7E49aUq SxBqMz13WsKfulqDzHHIQubeCO5HGkrxlKtna942HMmSME/0JUgzUZWpUmvWcqNoD0tH6cVy Uhq1bziSiKktxdmcnpWggbEuw3pWQGTyPb790tKqAyh5kfX6lGbBcmPOJyuVlJUMzWguR1qd FkUxUp8oQfW0pK5Ab6N+1pdMUYfBMaYhMySV7JcJUUl7nv07G1Z2ajkoEwTLjSyGSbeSHWoa OF31KNxCEeFrKKCXFkiESGtL8yoqg6oAXwHkkaKFnxL/aggpzahTdWmaCONJxdPYREN0IK7G 1fqBRE6pfpjmVTF4kKtZFNMpK0hKQZUpRmWBOQ+djhhyGL2+oJG5u99vzH6uK8zYNHQxbFkO BdSITPz0fCKbYFVdlKYl1CugR/C2Zekxa2UepB5SGKVxid2nReb7vdqvaa9HRLluZyWlAvqF L0KhJhhdQ3XIfikI78fsS2Q3pE47Vu4gzvTItdY9qQ3+Z5iODfZBL5rPDVDzoEFiqnrVUJVR oTWf3XwOiVuHG0VNymbipaahyWAtzdbhpoalxKHSVcujo0azvXEZwcG6g07oQc8FWQkW1St6 UrFhEmvdDS2RrjavN0rFGR7qjQzGc1GWiS2tyxoi3Y0dkYb29tZ21d0iDSubOjo7cDqIZEA2 u56m9ZAhOhRfr0wtCAU3meZaUsOWhkTK5nsGE7mIumvZgzIYJdOJxAJ1tDxhHK4MkJwXrJcG XAztUcEHUjFVNOpxZC6RwUXdAxccrVzW7HcGaiicfcR8liXhsIQGZCNEPknOttqm9oLitrRG 6hsaa7uaw6QhaT4Z2CARdTW1VoxgBmA4YbaBraQ04MQglGDMJFaWjc2ttZ3UG2PxPkhj1kti AZbFra3N3uBaei1PVQHLt0gy2kNiIJpLJcKK3NFWW9fg84vpqY0UvnQv46VJvmAGHErlEn3D IjcLEiMbO9LZ2hppbm1Z4imzOSKnG7IRqUzqVIkh6rCJwTimZTcJNr5a21dRyTojDcvaOqk7 DtGYScnA9+sti3qI5pMkynt6Q/0JGerxfk/g7oJMpTIW19ZHujoa2pVboF0N4frFqm/UqlO1 at5RGijqBHLbKSiJaDLxIqJ0OkSkrmR4Q2dDe0cBGZYty3R/XEipQt6C8o5rm9GT6odqRnln q7xgr/JiqUFoLFRbOelnbM97TrJM66MmoblcyVw1iw1GN0QwFkjDRsNnB6Jr4zRAN+TUSFFS P5K1nnM0FZImnIAmo1Lpy0T7cebYIzOvH0yZXGSDdNG65qYG0oCW1rbUk3BoaW1pUCM3l8gl dQvZ/VWfcI70UGihcGhq6UT7NQebD1NSxCPbKr2MrwNernpAWM1K1ReOR6UEwV1QUI+RUGmn StLe1dbZUG+EiMdDJ4RZKY2RrvamTxBsKIqv4atPKxnHgDuIOyMdXW1tre0ogTXyg1XTQSKb 9SlVsxG8fTYgP+hFChKvratr6OggwdbSpF4vt7ZpWR1/Nkr1BN03+X59X6MlUlpJfJNe68lk uLOeWfjiZBqQjhChqDmSM1kvlvf9ePVxsnxTwy2q66PXz0Ef9WKJTARH2OBeyFInSQ9kwoZi Q2sjK/QZNKjqkcFa8WuDxFK8cJijamuNVPL6ognSw4kR3bhjae3JJJdrabKrL5wU4S5CwanO oGM0+8fr7LExXJAhyaTuproGzribklbGVWF9xVIRPUT90aPULzIbnGZXN/Coho9E+GpVNT46 +BMGnzw0ZFJAd/Tfuonke0HHbvV6qC3WhivithGwZDlOQxJ3ai0pNmT+pTC3hNZ9Y2tXS33R Smpd3NHaTDI2bFpb1rAMDUaqRS5FuniwTiKFQoNla4Ita1MFibC5hfpbv10tgz2hbHYbgS10 3GLOVOpSx6qOzoZlvjLAMjDSHxHHL5mDmYinehIr+ChyR2tXW2RxV2NjQ7uazSKtK1qoKxaW RB3gtEusD3v6TjsKTirnAXLggaFuEmIPrl9bquPAAl2c7+uDl/eT1Bwry/aG5V0NHZ3+eIkn o+ksqxqpJIwKGtD8QstI3tQuaVAqaVdHpL2rpaVJ6RMFAwzCOLUunmEPmCop26r2BBDWG+MZ eAC8jq7Fy5p0iUjNU52UpD5LflkG8N9FxrMe18V1l8VdHasKyHWtMkdE6ms7a4MdsC46pKVz YXGtNRE30RXtpGrRKGlfVlsouptbW9tCktPmQ6DH64ajrmzVXh31D3jIGqlvRIZgAoZUiHJJ pOEf8JuVaMmQmbKzaVlDa1enJ1f1F50cl7ZSRwnoZv7cF5gQcRsZvQerWx0dK1rbMUOxwLOV PhFMhU1S21LX0Iy2V92+Th2YbkC3X4rJm1JZhj5lVUeHGp3UaXtTg+l8DrWFOR63kFGy7Sxd I3rpKFQsiO6LMRHW35tIPVJZtvmiK0y5NQsKGBPqBkSSHINpPYLVMFB1wGK+WFW3tpFRt6y1 voGV0UI9a0lDS0N7U53HVlBE9D1W76G4Dofp8RBtbQ3tNLqgkiSGIpj0PDgbcVsMOlQkn0no oUQ63nAuZPqFMbGstmVVpLmp5eQOXC2es0R5RFf8Uta14FSgFCMDcdLBMqypKimek2rhVSNj 3QifdBWl6fJCV3P4a2nNPSCyC6s20tbeuqSd2pUGjbI6clS7uQGlVIoe3NVGYqAhAqlIcqNw jmtuXULpiGgK+8hpcJZ29DjVtp7f06gb+pf4qDpR63RhjUaVTW9EBkx76wqaTzzlO8P6WMGg D+TXUbe0YVlt2LyDBpfBENq4i5tsRaKlaxnTOkLSSqaivmUfyLuzHbNDEX7f0EkNRrIiFnh+ Hcz2qzqBUdsLDwy8M8oIEgMozGipbW4ODe9qaW/o7GrH3BuBJw5isrBA0VhM270hUpmMMdH7 UWg4Aqmp2NMWNrowbkMGVJh9okeRGuvouWH1q/zJXL8RSxwWTnMNbTTP1WIi81fJAooIe5IC bdTc1NHJXtwIfyRWnKYklcVNoDT5wiFQdzKkRzaCa6hIdx2i0RqqdRQ6eGEdK40G/T0XJ8Ho esjYger7ePxWLxwS3MaF3h41Ry2t7QBPbX29jHY49JRVHs5vdNoQ21JGVu/QhqEwbxjmQ2i+ VBbbXA6dRBqbWpo6liqDTc1nfox8JumRGtZl+WkKpFeHZe9IcmS6hU1CqQ3DsjpnK3pak2Ad FqioanDUJXvyg3wTKBwGuCYlki1qiejVqQL3S3trZ2tdazOjXmIw0uvbpCm1xsiTVaonS0/x sFlY9RJMs61YEc4OJNLcKZVGEValqtrClOvs7oQcdBPlfIflzHp1qC+GO+2SpTQO2Hev5EFu IJFVhezKJFzXHxb4wmtMmoTvvPM4fRVHac3mBf0Bq2YxsR3U+njo+9N4bqFeAWHLxqvSrOBC rm+vXRJpgBNET83L8ak2KE9J2b7Tjwauhde+FYK0jvSuCNm2Dc0mcFlDS1ekSU2olOjirs7O 1pZ5mJFO1l6/CN8+6w1GNyQG4d5FtSVIRR02ydQ31TbD7ANHblhl34Cb75Zkoj2Llcmp0q9d SR29maY7T6/1DbGxENjaYyvfA4lYCEPQtI2trcukqDuL6ljAjfbxBwgv7iWGxHViXqGr5eQW ag4y/3JrlSc4QwZSVRCdE0Srg+jcIDoviM4PojVkCWQGo0kyE7OmEGq9sm5paysUAeWzwBoT qo56RztZ33Vd7R009mCg8vimAR1bT7URWRsfVs5s0yatdV3LMGE2wikqNS79k8w2alHT5KQS NTdg/wyvu7IO4S8toXdjrdQacNi90Kr2apBwbWpcBUf3IDcxb+FAB9L9gVoyoi5ChJcPK/2+ y1t3ZCVaqNitnSuaWtRCEwYADQMqVh202Xa22boT8fWmd3WYJmyuXUWjakVT/ZKGTuV78tcP KAdKsr51haS4jPrgsqZTMMWprVdRbEahSTiXiuQymBBVMPsRI3GyShWejUczvQOykUV6rd1X zZ6yQE3ZO8vaFzerTslbUHgiROnUGParEQH0uBQDntLoz2BXkXRmlsm5tfWJDPtolTtCN7ev /ZL0a9dr8yYbNfRWmsdVvBDPN0m2cVMvTaXIYFs/yMOPX8ykT2LJM1vUxCtORYknqDuTtOjF jAKvNA9O00x1fiST2NLOZc0Qbp21TWTooDtikRtWge+Atvoxmq2hvonmRrfDkLJCckddecm7 xVJqi1wWK1B+dFKT60625Bxmjmim3zA0LFvcUF8PawDDrI7CmmnskCRgf3ugrzaQ5tu6qrjA MroQe0il7TAfYNmN64yHgjQ1tXqku6m9s6u22RYDrRDsPMzqq1geB2S2v4zYtLipualzFVY+ OiGD1cICSwbVcTENoYXV6gV18KFsQrlbuIl0kmr4NMCib7EbmUuKhBK9Cax3+mKoobVRtAC/ l0aUIgDHFkmPTGq9GV69+Zw1RFtJlaInJy1S5dtXue/U1dK6uIMEntKo/L4kgt5q39rmhpZ6 6vOWiPAdF6SAsUBTre4IMZ1CZ3tDg9uz1FKJ6hBKAjUpEal8aZ5fFDX8WDrANRnY5OpvSzHj TzpWc0Njp6f84iRx0jS7xTOQLMOBbibdoqmFNIUm6fUNK9toUuA5YTClRogs2avGJukfkS2K VqvBIxTP+aUcoKZJp9L5dPgMqdeLtYxogzyh+pfKaW0zKq4RC10dS2USsVaPAj19KD+I2Snr 9fqNJ8sWMhBia1mQa8HGC7Ky1miWIXkGgyWndhr5manNObo8Us8QgnhhVAy887pPm7drIrWR 3k3VDd6/h3ot1GaK4dXm1rankqwsdMg3jGVfaUHdYTFdZ99eW9/U6teHmV9lCJuJrQXew2a3 x/uzQG5tJ40mUx86+aZlkMK8g6qfV02pWjI07PCierLRS8hGyLX4A4wESlNjE41ELhG65tKm xk5G5WZha7y2tbZ1tYV3GNnCJsOhzR9XqkL9ysyl+vth5fOQQAUuiacG4zRO1WY5p96MlKae vC4e7EZmvGJ5hh5XRJY21NaTnBSlheW16VS8rCW1RAFNuHxZdoBSo0XsaP62tH5/mQ0Vc3LD Kq0YmTHskXijMYQAkhVtDe2m4Syh1NJd2+HF4usSlBn0EWWRZeJ9Yj9m49iVlRMNhdpkjmkP yqWjgzQAbAxZbDUhTYHo1ixjswOZxNBaSxfSE2eWVEZbBigZjI2XkBFpJavNDGSJPFKTqueo Yc7eCkubq2ttWyXSsBPGiA4nO30JSQNkIHtlbTnI2SNr5eKIRXLRBNkmhfO1ecnupoYVWFP1 IhiC8jXrjjgXVhxADd30v9Uli9nEat8OXIAY/UNUO9QPe/K5HMknmRXyQ9iVtCGSSaWsylLf ybGVbnh9tJhg0w7Xdhcql41dzc3USRqI30yivoOUG35dT2qDWlbR5hU0p2ThCIulIurb237d 8U3iSqhF8DExpZcbrUtvaJF5xK8H3mAWKu/9AcvzohrNRoL7pdbDSY0eZV9Z0xmJBjOEzYA0 ultDx8mdNG80ka5H4ybaYzW1CoNErG9q53kRCcMibpeOFWlpWMEBSn7UktYGfmz1U5F4kpYU lMoGca2sVb0DFF52aSRLv2pSiiGbWXrrqS9HSAL2xgcDI4SNHXjF5PAJrgktUOr1XgEzUmSu T8b7crYqzesmvGlRD+GWVMMGmuziXpo9isY6UxOx/ia7dEFpUS2JY3E1vHAsRdaPCmZFpd6Z SaippaOhpaOps6m7obCLBDwssnbki3wYIeqEiq5h6fX6XRpVhepBoxdnMG6sPtDRgC070OzF osc2hli8l6Y0jNaCfsSmLDpShFeyqfPGe9f6xxcKBmTtYtI3lfInKoe5oj/r+zW0WiF93RIs smRpWkKktJnNvKX+YnNXe7M5YVDnOya6sXKTSJIR3KGmGbgzIpiuZfqAMdoJVc/vfFFjeJuR IksLWkIpr3ZKHMf4RI2Oo1l4Aja4WLCWeuk7PNbpIgbn2wjvLuct4L76Le5pbVB2NjV3Qs3G 8aQeOAvQNJyMq9xAOK6KaJVeCXSyAOkNxd+kthMqX6WWYjTglJyM+2Y5KQVwp/KZCl4nicQS sp8zl4cfDa3tu5dIsPl9tNqxojqoRm1RVdfa3LWsxZdgVj2RlGkmK7VWHDJKM+EV9HxQOevE 2luLbcfBZoa6ws74kAm0vgFbKep526SI3MKhaI6O6aFLEqG5acnSTp7C7OleZi/WZvRyZkzr kr68RLEW19advKK23VLn27vgdldCawASxJSFm0RpS0gmDlGF6Q3+K30mQq+Q+qLQxPdFCPZk xNYuE4tfGVEZmefV6Dc+Am6JYZ6dM+zNVNuc2eQxjk0yRFd4/Xm147lQBmCegcZb72qQWIYO axSadQqnIt/0N7m2tTU31fE5BP4Ah21yRXIDwzSZ9nlSXzyXq+0SSX/JNJWxe0pLQzOfexlQ B9Ts04V1QU8MzUgrVHHbG2q9dSzYeqJmlbig7HXNraLBYn2oaQlMuoHCeNgSj+Fv/Ltqn6Cs 4QUFFjYUqOHQE8eWZ57lelI5uAG1tKgdGg41l3QnMmaGL+J0XCM4Sbz091MpSJmJcheGbugf XDRKqn8eEbsEYDLG+fih5QiqbbdmW5lrVZuJF4sXzANO7dYlzhyvcuxqWVbb5uUxT7M8okRb opBTMisY/79dQn+jsnHCKfGJEcmeS+rzzW2RFUtrOzsinUubOrzBoTi+ytZrznTxCS9b/hv5 bU1U1cacEDGGbRcdmGn1+4lWJDWgxKZyz2Z9LZkMd8h0wVjY6gUIUSnalRQympWaoNUBIdmi 4tc31wzPgiTWVS+3ZVFja7sSRZKbbaiItA+m16ZXG9SxI0pWyZKAgtje2WxOhHLWZsTBsGVf Wj9LDp20er/qgO5lK8bi8QybIrQrj4m+18Z3qQY7pCzF5NY2q+VZtxt0trY2dza1kZ7PBrOc VNROdaOxOIYcpT3HVh54y640DXhhV2K7wcmksfHIzahDKmZubGtqsZ0YNH3O5Q7FOpMrgLuw LrisTW0L1DofaxwyZrNeVDRnfwOTKbpxsYkZHfQNUqdtM6kG19ks+Unv317bttRUBtnt3Q3a jpdmzKEPGwFnaZKW1tPB4lxNyv5WPY/luqWTwm3IM4k5th5QoHhW0LqMpWksW9waWdy6UnnG ohuwB0dP7BAVVGzbVMGMrAoqVit/Y8Iqr+q0i9W48UQRjAwoX76laPOmAeJWa691vIZh9cWO TsinJqxHKsEeo3cyqduReEKIaCMlMNt2dDbVnbzKtp6XtXZ1WN0in9BdYm18uCcVhcdR5AAL E2XiRgMLO1BUlrSrNXzlqGG/SqHNQmInq2wMeszk+Fi87RJgvVAvR5kMltU3BTUPtduWpLpq 0E5fkCsnKL0oTSR+P16fyA34/nRnIK6sb6m3a6KhvRYGZ7+6p0CNK5pF+OCnOngitUBGNc76 WV589krks2ornnpVGhiqUFSGeHSQ5yB13rEOq8Zq2ncWeeE6MmOTt9QZqabEus5L3Mao6lq1 sEdwQyLbhTPdviJZ2K87SCHqFBszMKzrmhtq201fOjlOBmWq0E/cEx0aCgyw1iVLCIgcQn37 I8BSuUnmtjY2Wp5D0z9Q5KArWRuJnKbINP+wlOeziXAJiqEW2OpG5LU0LWPdr2AEkFAXXwN3 LfEFqpObrViKUnJU1zxyku67voiHWTvXbI2xlsRCocvEP7vqqIzqeJ72eMC/zLuvI3HWgsxx VDni6LfVslTQxuHVNMguy+/TKq1utVwru+C1f6C+qQOSst7Wrvydu7rHEOc838Buy2X4bLRW llYsbWgIsa1Mr83wAZKAC1X87PYSsVJ6yGSHtZ0LLKHCSjObIdRA5n0Y2Asopw+5SWb1Wt1e seBtw3x45sCAckdioGqlzl/2ZOnOPqhAYfjdguvThbs9fFtLNxrEDstY3u4Vs24PcburCpgT 0HVUT8Xk6c/HopIF15fyQ7gNAAMqaFZ5asOLHPYOaGPNne1OF4F6409YStqFOyqtzXZqyvT3 6hWanbYHvo1ddqp35AOWAja2ms4fVDItLZdaZV3CXihsbWNDw++vsjbAXdY3YrX2vMF/GHbn BXgTG2VBmY9SuDJkRVPnUph5vNsQy9VGYPRSK2Sk0OsHyTpOxu1lALXo4ZudWXuV37IVLSkJ aazXK5fGk+lO38cn6zVqtQNO0lwqnaRsk9JT2W0svh5jTgbHX1eLWsSwKn8ZPHKW9ZlOUY2H 2IlqFd212AM+GiOBGupJM6ht6Yy0Lv4sCRXR1Xw1TKpEsy8hZafDlViQ7usKSpUbiHNfwN0U mRQOqWXkmGgy1a+X2Ygai/fk++UaHGEMBkcGsT/Ei0T6h/K9kXVRPlD4iQec8f0qlIDqFduT aWB2NzRjabjVW9Kc6m9Gg/Ahfp1bNoeTvUOM9Tsx6xsWd2EzWUa/F0fCYPYi5jUjcO/6z7A3 qTOgNqkvZgMJyo61QFhdexOpgSR3B7P9VUJpbKb+31jbCePIBNAc0NXegYFKIlaVhESrOiWu q1DXOxZaubD00hlcckWtSjnM4VA5J++3ieqqwZIqi9gKIHtTnXLp4YM1nDY3k51vLD+YxoAa ikVxapTanY98ZgNc6mBnZElnQVvpfRKqKqUarc2+rGKqBYt4PCnHhvwNSGofqQlm3U32VCst nG+sMBww4/17q3plHYBlazAVCN1+7NhGLzSkwPEUanaLxFe4qNcMcCViXtZJJWsycLLlawqC nG6Y2Ddg70+meqhfBvmlAoKBXA/m4FawVgIFzsQxo4orkTkDdL/awmvMCQ2r/yJ1K34sPjwS TMVvsbAXdZOB7kCaoNM6+SEIpbCewvFhUHBZuU4DdY14M+VzhRty8SHsDM7O6g3JVOrOEBLm ULgkLM3H4yESneP1R6LZ3kRC7roym3XVKhwkWQQ+j2VNOMi+qq0hlKOxqaG5vkPJDPtsN467 +Kdlza04xeM3teDQjcOgEpW9ZEv842DY2J/Iqks4+KYauf8nQrpUNI0dDZG8f2sTeOUgmzrH nFXbC9b1ZZXGIonJiCbrKZ/JJkg2DcMgjaCRsmnqdNUep0xaCSl6NEvQxKDS4LPwg3m+vEa0 yATH7FVR5/i6ZaJwS72qIZjObeogjUcpcqFmoqQzsZKMz0/2ekMRta8hC+ccUkpjPSaKI+Hq dDle0K04tBY90VSUGMLCsFWkKhuptiqU7cdUZrh4vfiUaBo3IPAKPsWk3puIRbK9A/FBPvlO Ki5ErRxHaqTXwZ6SxkQ8GcNVbJnZHr2aHMXKktWNg9cWc5tFDO9R+ja8vhT2XMRju+tay3DO bncMnKhuSLSCk21r59IGPu+kC9qEim1hP6y6xIF3Efhn/uWwm5pZpCkj2YF8jvS2od2VZbGy ROtauwKHz63R0LFqmdKSd/fCesAOKlUC5+MSG/zGkyOmJOwGUW6Pl+4SMavHV1nPcwra0ZMe MQRnXzJJ824qHVocdQOGutlhN4VV5ZSiDa7NqsMpdo6dwQMPqjnU6d6GlQ11LqGjq6l+d5mp Q3gd0Go6dtshuMdIKZbx9Sjcy/u4E7v5LqF89VDPJpU5uLgrk+CjeO1mCNWLMWUNI0sUxTeo a8bCOz1euOsTBanaemFGNQ4DF5Xuja3NzWTZ8HFCt7cqjXlQHdcLNkGh7K6n2PE+uT6KOpha AJL+xa51TEuqhXH4uy9PvUadQmPTbF1B6kp+deDAE67gw16adG6Ofqr2uB/ndEjV7oqH15MR leTb29YVtB/7RqNquFCis/FfVbgUwGzWAG8b+zSK5ysjlU/u+p0JF11QFWGEZebsNnbTKQ3h swV3fGuIdCjnWcgQYYFVPI/6BlwcEP6a6nRfSJrB8IIk69TQIVsqEQucqbTKzxUYlrZLsfrC qmWLW5ub6thDYLo3Jv/kbvtmq4hUVZ/qTFNQvluiVQ2ddTIcY6mcOoQvw8Jj/Up2kkeTuutG 1KrmkNoCFlZyfzNHaCWrpuzllbuQuO0NS7qa4b5S8iMuFzX5arbf+QN9Qa6NCx3scJh2YMAX 1ehUrua8G4YLtAt/TFfpp+rwpkXn8FnCe7d1JVRvdAjONhKrojipmag/ET6ZQxP1Z38sRnR4 fFAV15JpVUiNbagl4W3BPUF6vaiLrMXAi2KrMe5kqQWVbnbVi5yZsVU2TUpkaPq4mEUJCv8+ BfQpJWfBoYSg6sOmP6nyFG/ARqwHmQbkSlCXs3m5wXQV/pvjKQkb0s9VLWC5vbYOZ1ukJiJk KKzD9UWpSI+6QE154/mRhbpfV1RILl9kiVxwqs8zzjGP1cpJ1UlmRhP0QFmZVLVANdOPK4Ei GwaTym2ADaC4Bwd6r6JYii/6SGqwh0qV2hAZGE4P4OI3f3suzSK4vCcnNzjgpEpE7etQKUb7 cuyj4Nx6UsmYuipKncEURwSn0NvDJWNGKatsS2WOBF/IzG/Ep/iwANGJvtTWWl+HU3PYocHH C5roqRNdyDh/rUBpkGUN9U21NLzbGmo7TWL+OfOc4lT3IKqW4MsQhwNxG5Q7jSotm6Nmmqny Vw4aSauDhguWw1AHiiWiWIwO6herURKntxzMmvi4Cq1Tnd2QgM722lW8M5QLFs8FytOxtKux UWsmHNbWXLtKOcspkdo22Wvq59vhJICl6kAMzrarpdibKP0kRlZ7Rm0Vz+A4ItQMeozhGG0u 06cEK1/bSY2q7n/M8j1+bHAjVhr7xtRtbmfEM7jrJBHH9Y2+iS46Wi9lhzuRvKHU+hhvn5rZ m8/NpJ40U+3rmokjftQAucHIIO7JjWaUg5yzzGZ67VISTzauWBPZGE7/DEb6B3OpPtV318Uz WMz2PQRsNcZoglFJ41wwjUPxF6hVbH4m4kCKRPUw9uNkYtFhxQ6IOtH3mCepNs6A0OPtg8Qz rHih5qk3Z+GV6yPRlKAXJ1uYTYh4Rl2CSPGw3IdsVDVAbkaT6YGol8tnhoJViZUR3FpPaVI+ Z8grrFf50VBWmcejGaRJFeT1y7RGE20UvjiMuWV5mrH9q+l51Sk3wDd8no67LNmr1813D+Om d7wlTs+zS4MPt0RQRWDgqL5mi6TVfZGKlIEHjUa7WoqRPJQ48a+/VBfTpqgriDuxLjXEy+Po 1Uq70FulcJybj7vOzOcSSZZk0qDZdDLhXzYmjjulXps7nPl8tug3gxC/MG8phyXYK9Le1cLn dLGLlLtTv36x/lTO30KBVpaqRLboG9QPU+hbkR6uF8plSGni/mtzleSH/ErBqVhZrVKnkyI0 x+Z5E4BOmUrWuVRdBNKGE1F8Vkat7PkNtQFHufmCX5qnUYVZ3EjMu8GbhtaJ+2Ypth3BIabO Jah7pFRxeJLgllX1lVUbFTtV6iRjqUPnhr1MXi6Qxm3L6gIktT6jqo+34Ko7lVWkRnlfXR9R XR+WX056mGpy2Y/sMKjzE7l1aiwrtp5MKhrrJWngiVPO82UdpDjWURAtFo+nuRMFew8pekt4 9U2tzwZoHVShzZpGKSUGsWMTziy5zSPVa25qTeB+SeLARjf1xn5byPWHJKCoaqkVVCpcdozy WGR9VJ27F7WmG7dWq4IrM1B5iX2pwMaP3ytptuD1AmV6KiPPv/pIiRZ/aKsJHVsyqG9R+Do1 hAO5LeOa8ydPPRKh20lbB6tG9gJSO+TREOHJ6UlAtSFvf+ojncDLpWjaE2lIb6mc+r56QAYm yTQVg7UCUrfzg/mk0j7kiB/zOuMTuypautqCgfpe6L5oMmvJGnyiA//hNmv/rdGJVbuppsEI QJOTNIjinnRuUp04r95ZY12a16+701KJIafO1N46TMRdTcuiQ9QHzGWKBaN5KSnbyJ5lVRQy 2J8U/YXhEMHLI9VtqpZ6PZT5UFyPFl66QnDkI0NqW6IHDaq7k38Dot+VCguKvR2RXnNPuH43 PzTrrVN9gp3A6kClEotz9MDhF4rnQvqluQWXWdEofeomTlPxIt08JM16M4swNdhVU6rxladh xwXj8vgKMhk+0YhclqM8xpAW6spTnSu2pEh9DcMR5YkYlQ+fDPn1zvnmMsNKlOuuUt/QyTco FdZeFwkfPrtlrSbZ43tpa+vJHZ5qf0/UMHf+8/clGjHr8RhSI8fz30lNLf5nB5Q08HrUe0f8 b7XIHgXLjLIEOdl3/eom3QwfBVJmR58sDuRwTwiuyOWdctjwoPYm9niKwofDsPUBWwRxpI03 ji1uaMSJU7U1je/qx9vp3XZ66TIYVRa9obkq74L5Ro7sa5N5Q+0hbG3HNr6OuoaWermhicuq rr90jm6qCHqTVsPKTorEl62YOGrXFZRKVcB0Sg6bqfM2UX5Sm+zUs7oxyN3bpdfI2bMhN3+m +HYy+26mgoJyttH+fv4IhTn5rNPM8z29StfkT1cMRod7EKYKBQXXqmunvsLbUbYOUFP61y/L 9hCpCH5J1cHUOruKqQ4heZINn5Fq74EdhzMYvGGvCV8qcnfS+O9hvbW10UPJCbkxw69+Pgld UHQ+LkuFJmUQlJlEYTtN9SMcXpCmjmAfOrai+NcCKpNT2RF8U06epG5GiQIuQJY33SqfluzA ZhsVB+3r+IsThVWJ4qqrdK0CqJulzXCw6wj3zXIN8TU3Uk/q8KLD5glKj5BHXkHTBSpVj00/ VLcAn7XZQDps/5BnnydXZxx15w+8W8iuRXWXuN5rGuDGrgkziLJUsep8SmDULevCHm+5qqiO ulaDf2ecitTn7+woGBzuayt/lL/US7p/oEnQbGpjk0qZ/Xn4pERsrVbqlQjvI0PSH0mSj79X Vx3A1Ifn9GjmU3X+KDZ9l2RrPNo7YDWCv2/e3jRTWFX+Rl6pLHjaEql8lqtQ+YTUkxi+6nWV /0vJEhXoqRZVheTBj/c2o156z1Cs3u3L+nMEakTLMXDpJ26tBPKPJFTPLZSbhS/vSX66s/E5 VX1gU516gO3Em7n73bGnZXytFvFqnsr6p8MKpo3GppX+jm4WEuGTjJqfmlpweqDdn6d23+1Q 1RH3dQolgQwZGiX+peUZ9dET+Y6FfMItrDS1jbgDpfA4iH6DddHYaah9/8sg/gU5HdTsfK6s oEX03Mcp+XpCyDyguyuVHJ+JCpkxscENvqjc2uB12aHtsATHo9UqJbaX+BvGSdFJrXeSVesD 8Q1peku2glU3TtBk1KsuDLBHrVjRRoarD7XgSnnurrtpZK7egICuq23xFZXOFTjOG0uo8+GY 8TYE6ilsR6gymM1wqqcpoM2fsAqmDLJVxVRz07RbWn2nIZ621DCyOuTVtLzzXSUmC6dC2eHJ Vr/6ngoLLagXvuDiWRa7Otx5u0gNoRZ1nm1KLqHrbGAwrK/+9PeSq97ny1LsJch8gp7F9TYk koavVWWDiFoF24i8IXwbCuE00YOq/E1DfKer2tKeSeFyAPXcR8Ssv6vNXJbANxU5gfq0qboc XuY6tc9gpuKbyXyzer3glQvBj8fxPnI3bRbCWXOPqp28c5FD4ZVKDgcuK8HmdTlgrgkFjHrU 61sSTbb4+NNuSsFSvkddmYiVDvvDMruL5t797TIELrBziWKKh1YH7qNeRtbaAN9xEOlubaqP yL5X9S2ShtoWNmcVz6ek17d2YX+tupuygNjVrO67Vp9CWVKXVMd+RdSpL01FB7UhXliyIinT +IkojrA4ba3q0JoPw1j4BlpJvbDIfgpd4W8k9VC8PiT5IOhCoT8pShObt+HFUd96KPoy5lbd orHDq0TiF00g7G12V+/8DjMlEXYsB1NEUfArVv/BrHq5z2ATV2JIrX+G5W53s4jfz3zTnh0u n1R3n1iFfvUNRfrzUTjHQ9/M5yKFHiohlkvVymcge78PaW581pLpKL5f/pAiF23Hos2t2YtV 9CePlE9KQVpyN+XhsfQpmyA4WAKRzNCHolXlrbNcoKFSy+9si1tJleWE8R++g+NvylSnidWG XuW1+1SVauenG9ORDPoNfEY+k4cJSXQ9Oyspr38KobicLvZGnxjD83NWlyWGvUDIyznF+jTy RSeD7z7obm3FdERO8V7Bhe4LLXToG4Yk5TZGJDgLKUuuyDizhFT46C3W4Pgrp98IL1cKOJ6f ywD3Vs/5Mk/+8E3uGcILeLDwAvY6vGn6nS68gBuEF3BmSZB3NuFVJcwLWM3PZYDbHV7g9wgv 4L3CC/jOiELePyr6VgVd+u8o7GX6lXhtrxLYYwQeV4wbwZz06DPuIuo4jpw+ZIROKO3TvZHE PpILBTiSn8sAZ4x0XpbwKuEFrBZewCtDeNeN5BdYF0K/ivCtkhbg1ZIW4BOlhbw/lLR+WIQ+ QYVtLQXcwvRywCck3Oe16LoOxpqwpB/2DOHPlnL5AJ/j5zLAr44K5g/eOaO4fIAufRLh/aPQ LN1DQqZHz/orke5Wwg3CLUBwlNM1K/AGwgs4SXgBGxzeNvotF17ADuEFvMDhvYp+W4UX8Grh BXzQ4d1Bv8eFF/AJ4QU86H9jeLxRWsh7AnfpEwx5jU+eTx23lTtRchPBC+T5doLfkuefEXxO nt8j+KE8T6W0ZkgD1xFcKs+nEUzJM7rItfL8UKnOX3eIU03+6d8buu5Euwh/WzoM4DvSYQD/ c3TwVcG7j3QYQJeOsEO4E3U2G3qn7nCEPztaOifB50ZL5yQ4aw+nWgmv2kOagGD1HtIEBM92 eDcRfq7wAm4WXsBdexbyXj6G3wHQpZ9DYdeOUT39sySdN5erxwf3ZE6r/yMyOFCZgO2Ksx3g QU4z/eaeOn1d31eO0XTdRsjv1LEq9dJxJPTHqccRJvutFOFLwey3mXRWhoSt1u1P6c4vmgpK 9/ae0voE39lTWp/gLXs5rU9he41XHf0yIm3ZSz3a1P0UtR3U6xS13adOJMolKmjF1r04aUvY 30TUi/cKFOwLFHTZXsGq2074PXvJRETw3r1kIiI4fYIzEVHYs1zCZw05aZNf5SKeR8LpmopA aQ11OcA5itptGJcDvFARKPBrxLhJBa24toIztN7wFApCfLzOsxW6PPrVgM+YIPM8wYMnyDxP cPw+jk5AYSdMYIFjyGts8pAitwNMn6gKcnOl5z1VyY+TPW/n5EDx/iiMlM4A4Bc40gDJ5zcm qcefUVz8wAEoCbxC4Nd7B9I6geLeXCmCrVKXT1d9BeET9pG5gOCkfWQuIPic86rgvWQfHqyX 7J5eatHLfXoT4U/tE2innYS+LNkDvinZAz4zJZg8eD9U0ds+FPJIL79zo09HwLNTRJ4RfG6K yDOCx+7rTLYU9uEUTovA0fsGKg3UPylqO8AR+wbKPJvQqn1FFhKs3ldkIcGZ+ztyk8JqVfS2 WkM24oDC4pz3GwTq91OPjfsxp1UiMPbzO6zZRRAseF65n05UdznQP+Aif57I5fsHSr+Rgr6x X2CAzSaOqv3lhQhW7y8vRLDyAOeFKOwb+3MfADxyqionwLFTmRXwNg4G+JYEA44/QAUD7Cbh 0m+YjHXnmU74jANkTBI8+AAZkwT/dKgzJims4QAuZEMIHWFnTOMxf/00TU/b9KWqqMtvIvKH 09TjF0nlv22GenyGwIv86Me5AWU6kAfXjOmeB248I8Yz8vx3MhQeOoSfz6Q8f3FocDDeQ/E/ OjDQXBHKu39aoLn2Jo4ZimvFryUjevTTszoNGKVIq58zRVptZb06hHflSYZ3pcWrJ7Z+or80 PZDVxYT+enqg5Ehxb05xjZV65zZhxfOvTU5rkNOZh5pnyVWrK28R72dmBGpiF7G8fajMlwTf OVTmS4K3HO7MlxS2+jDVJ8oAhV5h069lejngy+o5XwnYdziHA0q8Sj/edsLvOVymQYL3Hi7T IMG7jnCmQcLvOUJ4Cd57hPASXHdkIe8bR3AfBnzvCFW7AKuEFRDRrEq3YpW+YVItD6GXA3ap 6CsAJNVKk6pu3U2EnnukaHQENx8pGh3BGUc7Gh2F3XcklxvweS4gQNVRzAo49ygVDHCzBAPe ycEAu0m49D6TsX61uyjsB1xuZHDjUTy9Eph2dOBtZhNadbSIO4LVR4u4I/iAkyl4bzya3wbw TqHfqXm3ejbvKRxWCpjnbPMmWV3WfsLvPjrQcjsIfVxKBfiElArw5zODpQLvy5IT4MxjVE4A xx3DOQG+zsEAkziFcsADZ6pgAEm43E545jE8SKzUKvzUEA4o8fTg+ROqUeXWDdZFxwRezUpp ZZOJvTKEvrrV0FeH0Nd83tDXhNDTL5iXTQNOUS/bNsW8rJbyOwl/eaboHgRf5ecywFeOdXQP Cps9i9sb8IFjVR0CPCSsgDs5GMBNIUax+mepwiQI3K84ux8l8PtjA7V1PFFPZsYOAitnBRT7 k00QMnz02AAVf7YXoIyfywDHeo625hX3AgyUFPI2evz6gHmVTzfAeZIs4OUcfPnuUygD3KhY V2w0KVScJ9GsobqYfs2Ks83Kq+08eabg75u8dC2kCT9d/AWAWfEXZLXrzBpKhD8uvIBPCC/g UY67bDbhVSNEcBCsHiGCg+CMMYW8XSO4xgBT7FADGC2OHcCqUSywRoWnsAf7q0oBJVo54Als 9peeYOLpMfy8ZEG68ffO8RNWiM/xsSnEIivnRT59gcmt3qLX67Ys9bz9S9VM/OtSZqXHdQSG RwXmZ4txFVHWMfViAl8KMn5hNOmJo1XQCwT+ObpYMvA9nLaHehykmkqXBRjfIcrxKqj7VwRe 5MexVPwJYwLjZDahVWOkJQlWj5GWJNjjtEOa8NOFFzArvIDdY4O8awiPjmVewF5+LgM8YVwh 7zHjuIcAHqf8DCsAXNZxhC8cF5ASiwitHcc5AdbxcxngV8uD0bcRfmM58wLezM9lgJ9zHC5r CI+KCwKwV1wQgM+G8H5tT36Dr4XQLyX86T0DA/rLhF6vgtpuIPCzoP9jJ6EvS+aAr0rmgLeP dyQyhe0znjMHPFR5O7oBLhFWwNvHF+QgsUr3Ga9TLQ+hlwNeoKKvuMCkWmlS1W+1ndB7xote R/De8aLXEXzP8duA9y0pN+Ao9rQAJIUVMMvBAJslGJC9Nt0Au0m49C2TsX61P1DYAHt6khLd egUI6JIKmTkIjuTnMsBNFcGcwLu2gl8BMCv0rOY1ShF4D+ewUsDF7JRZbJLVBZxL+HDQjQOW c6VUgJulVICPOaXaRvitKnrbHQTu58eHCTxcERj8Owh9XBIFfEISBeypdKYHChsziV8JcDf0 UoteHkIvs+hacXqQZt43gs6pB4gtUhmohtso6M1JAa40cZxeKVKJYLZSpBLB2Xs7EozCrlYp tl1tyMlCcjvAzznv/GTPe25yoBhgvFVRlwNk2ekExsvV4/IXCfwt6Mu6hxjBAcXry5N15loJ WzZZJ/Q3IduqOqFVe4ucJli9t8jpvX1XjzVfUtgqFb1tlZBp1vuVdg+dsw/1H3YfXUDgY/W4 ooTYHp0SyPQiQr80JTCx7CT0ZXEtAb4qriXAS/ZzBBOF7b0vdxnAM9m/AzBKWAEPZ18PwJES DHjJfoGyWImVAh7Ofh0AiVVuYumG+iaRH9g38AZXEcfW/fgNAK/m5zLA37lvQPjLwgv4qvAC lkwt5B0l/iDAX7DfCuAF8YUBfszBCjgpLKSwExS57TMEnmd31W8J/CvouaogdDozHrG/7yHT o3q6CUKGvw1S8VdseWyF54g3+pviBaKvoV9UogP2SnTArzsaJXi3eVwj2ww9HUIvtejJEHqZ RR8IoZdb9FgIvQLwj+pVVgBMYdYpgKeypg0wKMGAXw8q4FZilYBvqMS63zCJTQX8nIrV/TmT 2FSTmG5AxNrTcPYFqdsIvVE0ccCbRRMH/JtTx+D9vixsA/6Jk/pTCCuWrt+WZAHfkWQBZ4wo 5N1LlHbAyUppbwNwWXdnC1zu8DYRfvGIwMteRehWiQ54tUQH/IMT/QeE7wxG30Xo2xL9bb0e Ty9F8HhnjRy8x8i6N+Bu6KWANSNVVjWGtTyEtcxKqiKEXm7Rta9sEeG1slwPWCfL9YArnYVc 8HbzsruCYfSTZFn+JEPXZb1U062hR3hUVlcBe2V1FfBNJ33wni/5A/5BGSDdfwhh3d2i7aWj CnknyKIt4D7KEGoDcFmvInzrKOkjBL/Iz2WAj4TwflOS/WYIHX/F5N+hXiHvvh6nBThDxW2b EcI6m35VkixgtSQL+HII73JJFvBBlewKgIeF9WGJZu88od/bkgPgO5ID4EJnqC8ivFaGOmCd DHXAb4bwfl4kCGCMJQiA77oA3MzBABdJ8EWSmjUcIevO5k0HoF5REpg8drdj58qQHTsvSbFe KkJ/lemlgD1MLwdkXrNJBbwzOawMcC7zVgDWSzjgaglfbdLQ+R1i6GsuIHiRPPv0tyiPReza 8JOixx7htNpxdwJvqrurh8IeFTEM+C4nBfCB1McHEs3K4YkRLCqp5n9E4FX12A7G/UYGVKHp elNSrhTwYJFCgC86RQHvUhGegAnOM6H3HeXLAB/h4EdCUgDruUy+QGJZnFb5lxEaU0Ft9xN4 eGSgE+0k9GUpNOCrUmjAZkcejSR871JWlAjMKg2k1EbocpFWgF0irQB/7aQE3qwIQcC7VVIr AO4V1nslmvUm58gmGMoU1P8I5r+T0Jclf8BXJX/ArCO2wDtexBpgE7vLAJYJK2B2VCB/7JSa zXIV1I5Rgfw3EXquiFXAzSJWAUc6W2jAe5fkD/giZwTwe8n/9xLNyv9eCvoJZwrqa8H8K4h5 gmy7AZwk224A73PyB++C0Zw/YBdnBLBFWLdINFtpIzSngrovFU56vFYzarmFdNZz3DM1o05m B6GPS0EBn5CCAp7l7PkB78tSUMCJyke3AmCOsAJ+noMB3BTAOitItsryOqW5pwpq6yaweo9A lZaYbPRcv7tdSJPLnGamsNv34NID/oUzB3hbivm2RLPK9C0KuosLsp3AS+yWBOOkoFvyMZOO 2WJCLDPKRAgRPLhMhBDBl5zigbe2jIsHmOFyAHxBWAEf5eBHQ1IA65Yg2XqRRkIHVVDbAwS+ Vxao3KjJxiydEP6ylB7wVSk9YN7xn4J3D9niBbhMuWJXACwXVsD8mECZygkdz07bCgInqMf2 5eJ/tSr3EJOOaXvCzxWXLeBmcdkCHu+4bMF7hxQP8MdcDoC3pXiAB6gNYSsA3BTA+pcxAbL1 It8myvf5RSYTZf+xgcpdRGitOIwB68RhDPhbJx/wnj6WS3r67umlgN/mggDcw6zl90g0q3xn EHoDF+oXBF4Mlm8noS9L+QBflfIBrne81OAdLw5twHp2aAMsFVbA9eOCwprQo1RQWweBVeOC wprQc8XNDbhZ3NyAYx03N3jvkvwBX+GMAF6X/F+XaLawpqBnOVNQ/xzMv4KYJ4jrHHCSuM4B n3DyB++CchHWBFdxRgDDwgp4KwffGpICWPNBslXSEwntVEFtXxUvvlXSZwh9VkoK+JyUFHC1 45gH77+kpIBz2UkPsEBYAVcHffcjCR3Fvvs9CBysHtvBeMqegSG5uzWESY4bH7wXyxoC4J2c J8CPpSiA73HweyEpgPUHQbJV6CuwdZIL/RfZUWk7jYh5hjjuAQ8Wxz3gt5x8wNsijnvA8zkj gIuF9WKJZuXfQWgXb9NcQSDLezLB+I3xgUrb3RrCO05R8Gdbc6P5uQxwqVfIu5/ibwM4SD0u BzhcPbYDHM+hx0t8q1i72//9ZSer9R7v/7Y0jPPpd40XqJFt9LtRUgS8WVIE3MOx0n7kscVn pfgi/UYGnVTvSH3YvkJCJ4jNBThJbC7A9U4mNYT3BqOfLKvGVibgSAe5NhF6rmRyrhiLSjgR /LaTye6MwP8IMfKeZxsSYA77fuaNYE6rAKB+yIz/IjCWrR8wfp4fewmcxo/D2gnVdhmBL/Dj 1wncOiIwJn5PKb2pEm2fJ4vY9Ijo5/Aj4twzItBLTiC0WQUtB+NZ/GgY9S65UeIqsyoWJZ/H NZBsJTgszzad32x5u5CtBA21vUtT20PiokxfLxr3HE3VcXcQ+rhYrIBPiMUK+J5j5IH3dbFY ASeyDw3gc8IKeCkHAzwowYDvjQy06hJCV7BtuJHAJn5EpFuZcZeOoytxohyksZKZRugRzAUw k+1JMHUGGQcIzTH1QW3L6u5w3Ej+YWsPgcWc4pd0aVbcKm9jH0aBxScmHuBIMfFGlhYeu/H0 iYmtCrr00cbsvIfA40FT80pCv8D25TUErmcnHcBXORTgLg69x9iiADtKA2Xe3VGdZscsbSN8 uZiQy8XCVEKR4EGjC3l/LCYk4POS1vOa1yyWgne9bO0AvITP+ADcKbs/AH/Nwb82uZWHpFAO eCsbrLeaFCrvlGhWLVoZpN82qWp9ejbhVWIJAlaLJQjY47wveFtV8m0AK4MWZ5rQ0yUlwKyk BDjGsQjBezWndLWQR3r5l87y6fdT4D/4Rf6bwB5Bi7GC0Ali/wFOEvsP8DYnJ/AuF/sP8Dyh A14o4ReGxDtWTsVgXBEYVI/dOeG0XvtUQtNcvk2SPlQHSZ4eb9FxzKYCQu+RFwC8V14AsNGx 77ZrC3OrggcLHfBwsRwB3XhPE++z/ALPEdhTWX7dlcJpvcD/ELWCrUbfWqXHQyV5aPk6jn6B NkKXi5EI2CFGIuDPnYKA93QpKOD1nBTAXcJ6l0SzcjiT0NuDBUWMbwS5dmesDjubKMD7sZQD 8EC26wCmizUIeCjbUACXi2kB+DRbHAAXiMoGuI1VQoDnJRjwAN6BAeAWY29YnHzs6SQCaT6N dCGBS3gb0EMEHuHHnxL4GT/CjpnKp4sWa2Oh+4sEHuPH1wgcwHtuLiJwBz/+mcC+vE/mJAKL +XGjLnk3Svs6P06R0lpVvniMroVOlOB1fsdO68X0Ju4uw9tm8bZZvHrmWWt4my3eZou3WfcE w7vU4l1q8S71ef9heFc/a5pqtdU+q614ehvqKFQ/G9JJwKu4EwB8iYNXAt7PFvTelPIUNian 6FNkbYcROIzzHvCfKQ2ASzl4JYo0hg3DJOB4fh6A+bdYnhfLM3bSEHiRg1cCvsZmIc4vj2O7 A/uY9uX3GkD7fpa7I8yRjfy40ex02iatDmbrOQl4Bz+vvEMqSjpvM9dTEnA5Pw8sl2diWW6q Uu/4Rd49XLondWK64b9kajQNeLOq0fbfjPWrsR31JU2YRgUMysk/wC/yyb+vE/gRP6JKDmcT 9RECf+bH/4E5yzYYKmsCP27SVdFu9Ye0eZ926330BIk2f4nb/Q0Cf+bHciphBbc7CrmSWwbl +yo/Ygx+kS1SFOojfjStoWvk+5Tgb7gW/NelR0R/hF8G0f/Gj4i+KWhbohJ/rqIvL9d9cTlS 6lUpLTdlWo5E71UpLTdlWl423hcRy9GFlvCjKelyOysr/aaC9O/Q7bIc7fLP8k+X/ula7iwP eatdobn2/r/KVY6ELv4/F6ycfvfyQmn6iW/1iXV5r+7j/1+84CdOIv8nLzidx+4aaxyvQWYi itdYQ2+NNd7W+GlsIvxcOXt6rt4imVNbJP/uzKXgvXEvntIB7+RzqABPCSvgzzn45yEpfJPw HwRf4iFCn2T59rzE+JSbKdc7R2PBO002TQJ28Q5IgDWywxEww8EATZIC4PoJgWJZsWIpw6r3 Bh1pwgZC4iSt5JOZCbqwyRDetMWbtumf5x2eINfwzsaFE5jTqqEbKnjDJtX4TQS+42z7JOZz 5fwt4GY5fwv4Haf+dhD+uPACPiG8gKUTHT2f8AkTxSYgOGmi2AQEr3Z4txF+o/AC3iy8gFsm FfK+OJHbEHCV0AG3TAraeKC/rA70dv9VWHdzjUMZP6sDHCnP6Tn0V+dx6nW7p5dadG0rotXs G0qykhfgkY77Crw3SV437Z5eCvgL9R7dACOYtRzwyKAD7Qb6fU1xtm0j8C/1uMIwmn2gJcVv gNjiFCVB+KXBfK4idKtEB7xaogO6d6KA91HZgQFYwd4qgAOEFfAkDgZYIcErRhTcm2IlVgG4 N/vv9jaJTTlAxwoU9y2OVfmWFIFYp5oybK0EPFrCAR+U8Af1brD8VD89bHWT7NL/RfBPI4Kj 1u109uagQa+woYt1mp85Vfkb+t3u5PUm/f7MTf5XAsdzQ2Hj3XiuhAkE9g3WB9JZyB0iqn21 bfESPr1Dof6+PXpE9H5+TIzg7K32QEp/5a45t0TnfnFo7oi+rrBhbuPcQT096DhdRWiUgy6W HS4WFdtj+ji5dbpgn+r6lsOcasXf4R730MOL0H8ge4QAn5UBCMi8Zo+QxVtm8VZYvGHpllu8 lRavli0bSvydlsb2Q9iu4MDM0O9M9eorDizhfZpWa4F6tseWw7EmwZUh9NWVhr46hL7mOENf E0KPnWzoMZt+hsfTMZEu4bI/W/gaQyJTcL0Fgd+WBFr+ckJfKAko5H71WGqXVZiBkaYwepp2 N5zOE3c04COuD47CzhR39JlF6I/Llk/Ad2WfJ2CL7KkEfF72VAKewL7KUsAh8ToCPjI62KO+ TWlfM1q56p450w/EtrLr2RX5+iimW+38LFGf49HyixF6AyruUzqIfbTVpVwuuCIIfMSPeaTE rlAk+vdRQaFBqfyNN34hapzPj51B4Nv8eLe8oNUsP6QkXuVkbpBXs1KEY/wVdo4jxVXBbU0P m/f+1ZkhgS+FBb6qAy+ihG8ZyT2ilC+TsjrH7rbi/MRxpYF3lziWd4XQEfaxOHhH7aHp6RB6 Es7Q68uCOiDof2e37O+I/EFwKw4o740OBOGvmE7zSYdSJwsv4D4O73QveBvbocILeLjDu7uN qv0hvCd5XIEnCd2+LcOQSw1ZN5U7Qdr3vt3r5LTDK34J1rsOL6qwRHQYwJGiwwD+3J0BKOzL Mv4Bw+gXygxxoYmvpfd5euGuG1spnw7OVSspxneCAhDCbyQvrgFsCq6z7ST0ZRFdgK+K6ALs d1bSwFsqoqnULIStMCtp5YD9weUvK1ZZqVnh6jSxKkwsXWrsCz2MBzSo8eDCV5rQ02XHJWBW dlwC/qdTavBeIttEAe8SOuBDnOxDIdHAusWQHwsW4BlCn5UCAD4nBQDcw1klwxHZCbJ6BThJ Vq8Al4Rs6rQ3gHYIL+Dt7kpXqX+32VYFN7PA3CwLbGAFvIWDAc6VFABv5lO+AG7C64n1nOC2 TewVfYHlHsArnOYIYqpUjMuXEoiOCnStjSZHLcC2E36PrM4B3iurc4Dvu/viIapEsAKOFMEK 2Oiu5BG+XHiXy2ZMtXGW4A0hvGtFCANexieaLwth3Ub4jZIs4K2SLOAfHF7I3reFF/Ad4QU8 9n/jyrbHywp5u2T9qEuudKOWAThHkgV8lIMf3X0KpV16/2b3WSaFcsBDebUGQFLQQucSWWJC U1YYutbGkOtRvLIDUM3kgRVl/uZF3ZGqTdBDkpBFnUfo/VwMQzXLwIQ+K4tFgL+SxSLAl52d jeA9TrYOAp6qVmyWA5wtrIBf52CAhyQY8AUOBnATnkL4Ol7+OVvI9uEfvTWROgHBd2R3I+CX nR1l4J0oewYBL+KVJIAlsnAF+Bf29wHskmDA/+FgAM9PmOBS9gMC7Ca/UsDNvEay2eRXDvhX Xvb4q8mvHPBfHPwvk1+5px2fK5pMfuV2fmdxfmVnmUwqAK/kvYBlV5pcKnbppLeqV5H09Amm PpPGyoyJt9Li1ebHoOFdfZrhXW3xalMkZ3jXnGJ411i8a3zexWM1PWbR9UA4ztAHLLq2FFDZ F3C9X6T3exqfiylJ8mQTW6t3Dxp62qJr6fqHsf7Ozu6T9WqLOcRXXvyqge84uxC3iUsZfRPw DU4K4HJhBfxO8I6AFwxZl/ktE6bLuYPwx2UTIuATsgkRcL5zdBy8v5dNiIDv80IMgOezEhzN DksAN4Wp4zWr7h+vjvfXjHThPzIprraS0d3kWIryO8fX/RyFdXJY7KO9dPwYfLmzKoJd40nD O/C24dVdY75JP/mBoeuKPNHQdUUuIp5acWYD1okzG/A2pxq2E36P8ALeK7yAlziO2x9T2LMV AY3nDUKXs0e7cwLHsCpvNKET+KZFUE+ZEIh7FaFbxQ8MeLX4gQEPdny74L13Arc34Hi+YBGg QlgBD+BggGkSDHjwxMB88iglsJNLCuqMiYFCg7InB00hMJUfZ+hkzK2ChFaJvxmwWvzNgG86 5QdvXvzNgA8K/UHNa/zNqwh/PVjiXYS+LVkBviNZAX7FcW2D9yBxYQPuhl4KeCT7swFyzFoO uJmDN5sUtAifSviBitw2nUA133PQTyDNjzmJZO8hJfTGSSJmCN48ScQMwa2THTFDYf8pbwD4 G04K4CV5GcAmvo4T4EhJAXDr5IKMJbFSwGf5vZ41iZUryHcoAEhx9OtarEtfN8VdatN/zan+ C1cx8b0NSGk1J7qLwGF8MYMpYHdI8s2TiHMeJ9982mSdld40ETPvqoXW+XLHAyQQ4N2c/wME fsyPvyfwSmVg7F2vGdsfIvA0P4LxT5UB23m+ybHTKpF2EaL2z+CGwGseHqx8VMA3uBJ+byrB p55u0tYFO18KBnkG+IB5G2HVYm4b4TdOli5F8ObJ0qUQ7tweCt4fTeYuBXgo31oBMEfu3gA8 i6+YALhCrkoFfImDAX4nwYA3Bu8gRR7T9+aeNt0kXA64TMIBhyQc8CIJB7xTwgF/KOGAb0o4 4Ci5rBXwcLmsFbBJwptMycsB75bwu03RywE/knDAA/hajnLA46ZwOOBqCQc8T8IBvyPhgL+S cMB/SDhgpdyAAXgkt0U54FIJB5Q20uMMjXEEXweSlGqix1ukZujxVakMejxI3h+ee3llbNuZ wm+DrfvyAvT4bSkzPeJC1iRf7noJgS37BgYFCnC0Sr+7RMpNj1v29Vtad1y81SEcF9Rrg8ng r5j37DNesF8uol+t8ALWCS/gyJJC3pgXyGp3m+YbnehthC8XXsAO4QVMjijkzcqSGuD/sJsf 4GNJ9mOJZg2A/6SgnwQ96WlZdFEuGYJZcSQB9jlejrTesr1VQZcOn/KCoAv378R2XGlQI/pv E2Zc8SPp3dmVFB3J98PDShrJnFbLfpaC2s3Z34vZv4Od3B9xqIljLvYh9HTxzgBuEO8M4FGO 9wK8D4h35oEQ+nYK+w6/430EHuXS/UA4beVjFF9Fp5QPgtXiMgE8yPUrjOJtxsi0Ta4loPJ/ UW51AyvgYxwM8LgEA77Crn8AN+EL9Y7ntsuMax+RpgV303ZTUB8znkYgFTxf22eCUI6vBqm7 84rsCPFpdItXBPAadn8AfFvKDriZ/QsAbgpXmK3Az0sG1nvgFOsQu88zBNYHPelDJgi5PBCk 7tAeEjJvCD4hfgrAm5yDeeA9TPwUgGH0t8tYlALuy5teAQ6TywUBL2GbEuBAMdoBbwqe59vH xFr5mzGadeXmcTrjlTbvNHZutMoxThwDHOMnqmvKKsrqMSb/1Vai2obaTvg9cmQQ8CE5MgjY 7bgrwPsr3qH3K0PWOgEOA/L+J3PWiII6gjbvGkKjYvMCDojNC/hLJ8M12j7equDznPrzIazY 4/VcMKedhL4sOQG+JjkBHuJY17MJrxL7F7Ba7F/AdQ7vJsLPFV7AzcIL+LzDu7s7+n7i7qbe 0782b6uCYfTxvDWrFPBkubIO8CcSHpJWmZVWRQi93KLru2fwrYT/4k2rSD7OO7b6CZzJjzdL plZjY6Nrv5jD4LrZMY1R5qVs4Z9KIMaPXxNO26u4F3//QHkVCT4n+9UAv+bY0OAdJxvCAE/h /VSnyNYqsAJ+rSJQVMSazbHKZhvWCsAtEr6lQudWYcerYXp5jYlXCXithF9r4unq3J/wg9h6 B2tf0JDH1q4bxQ8AeLP4AQD/5PgBwPt9jg5wGJvS1xK4nx8fmcCRbDeTjtP+fZNkspC83CIP 2OQxYv4DXsN70wCulcJdq/M0JznFqUDFQMEeCZZoF6Fvi/sB8B1xPwD+ybk0ELw/FDMdMIxu Xyp4r1iWgBWVHA44Uy4bBOyS8K5KnV55SH5lVn4VIfRywKPY/DzKZF0JOJlNr8km50rAdg5u 14XIV3ZpM677DFOeSju/2/j9Km4zmUwBZN6tumy9VJ572GIHuYONQ/8treb5rEkoiUyfrwz2 iROJtn2SLtPzXLyXdEKmJQl9W25WBHxHblYEfMDxLYD3aDEEAdezwQpwprACPhC0YxGrjWOV txnWSsC7JPyuyTo3XW/HE75YJdUG1gsnBzUCQh8XAxbwCTFgAc92boQE70dSbsA6NmABlggr 4NnB2xh3GJO0fLphrQTMS3h+b52bLvc4wieypbVErFf7iD+h58odj4Cb5Y5HwGucL4yAdyfn pGAY/e9i7AIuESMV8Jp9ghOKlVaZlVZFCL3colfa9OWcZsVynX5+ik0/iOlTAKUs062yaF6r rMluk1bSpo9RVmn7RUK2vCrb4D3YR6QtwZv3EWlL8F2nhnCzYYncZAk4Um6yBPzBlELe49kk V3Az35MJcJGwXiTR7M3PhK4RQ36NYS0HvF/C7ze5ldvx+ple1m/iVQA+IuGPmHi6nU4mvIsN crBeMSXQu3b3UZihkI/ClMvNnYBh9APF5QAYFZdDVPOa3jWa8DK25McSOC3o3DlUPudiiZ3j CT2ZI/jp2ZYvoafLN2cAs/LNGcDDnOs7wftNeQ3A1zhvgD/KG/1Rotl2JwU9Iy/xjGEtBzxw P3np/XRuutkeJvoPuLBgfT9Y7tnEXSVXiQJWy1WigPc55c4T/u3gRaYDhG4PlnMHoY9LioBP SIqA65yv74D3o/1EzBGcx7eQAiwUVsB1+xfkMF2+RDPdsJYDDkn40P46N10T4wifzNeOgrUx eAPpJkLPlY/sAF4sH9kB/LrzLRzwjpkqCsrU3dJLLbouyYkUdvHUQE0C3UN90qb7ogP4azUW dQyhFxwQqAUwnx/kwl+xTaq8uerTuaKOGV/I26XSbusSMj7sdLZNf1jR23GVxzf5nNOY8Xx3 hyUIsYdydImKfctGPOCLloTccA4e9hqpkG3n4OEldtrgRPqH7BbZRzstut8gcD3v2MBlVg/w yeNbzsHDgLLh288h8L56bMNBzYf5jv07zsHD0bziehmBfcap8G+dg4db2NJ8Ypy/hN7WT2AX P+5Fb3Vh8HaSLfR7il/njo14+CZvxPqIwJP8Mt/biIe3ShWyYyMeNvCmG7zKl3mX4fc3flmu 7CLkyY14uKBMIU9txMNfGXlmIx4+z/b44wROGqvCn9+Ih7v5+NmbBK4fJ1cr42Eam6ifIfAk P/6hnC1Mq+fgCpAv8pt8ayMeLuWGeWkjHk7lbZqXjeSNROqjXnjA9wII+cNGPHTzu7y5EQ/1 /C5/3livdyCuOKLMP/nb/S6BDLfIro0Z2SJBOVRQ4a/gs3kPygVGxPLuxvX64p8Vk6nwV7FR /hCBz++pWD7Y+Hl9j4zubdfT77P8Uts34mGiap72RQRWcvP8cyMelvNLbToHD5/llzr/HDxU 8EtdfE6F3J+GVR8CT7HP6Gg4c7hxLj8HD1P4PeoIPMHOklcIXMztdNU5eDicPSeNBP6LD0vi zU5Xr9SON9vL3NtzC7/dNfrLEHd6OvC+jaXj9Vi8T9+ifbfHt7JQFrcR45jxgXa+28R/aOM9 QleIzzGbAqrkmhvAarnmBvA4xz0A3k5xH3QWoT/M9FLAD1mulANWiPsA8HBxKwAe57gVrDzK rDy0dvE4hY1mr8A4ScoSkj8Zry/wH6+pujY2EPUWPsj5AoE3+BGlm8SHzabrOG3HSNms4Y9D shs4DpiOCVIvGs/ZU34fmlJokUlorTgcABvE4QD4rlON4O2RA3KAb3NSb++etbTHnHv7u2HV c1Ad4V/kE7M/E7I1djyv+FRyueeoofR3mMflA6xScVcAzBPWeZ7/8RndNNDTZ3FHNVRzksMr /qnavzr57/KKX0G7v7MsMp3wGbIsAniwLIsAXjSikJdPoLQBTGLhjsumD+FHXGhzgXMCZUTx a1RL/jf2hG50eDdhH6Xwniv7PJURVsoOf3cBoNhiQbl70oDCPieLBZ8rfoFmefBAwBUU9B2e in9O4Fdmk395cEs+fP38VZm2M0b5G0r1EFlngpDJ65/+Hs5V7gUhFDZPtnMCHspTDsDhwgrY ysGt+jqRfBngquDFHtgPeggL+JkEWvjRMJpBPJo3klKhcY3KqcFt9W0mCHnPDK4PeF7xAXaP 08HxxxvityoYETpgUsIBr5DwK3QaW+0k/EFadpjJoyKEXg44oMq3YkBnka9MSjTbljSxKgHj itwdN7Gmmli63k4w5PQmU27ttm3w9FelNgvZ9qN4xTfln+4Md/C+IzUBOE3ogMfIiifgMgkH PL0kWHNI43WpuddNHhUh9HLAI3j19AidRb7yGEnWNmJMrErAQ3nD/qEm1lQTS9fcPz1NTi8y 5dY1N4rwchZZdUK2TZyS4vehLXaEH3jvlZoAfFdqCLBElm0BD5R4gItHBGsOadzGaZTdZvKo CKGXA/JVad0f6izylSWSrFUHVqzK24Kr1RJrqoml6/t7hpyeYMqtaw4H5p7i6qoUsj2WCV0u Yh2wQ8R6hz7XYK2mU9hmqQnAB6SGHnAWvHdK+E5zNsKz01gnx/vWmTwqQujlgI/xyz6ms8hX PiHR7At/TKxKwO9xxX7PxJpqYun6vtyQ08+Zcuua+yLhN3B1/XKE/yUEI8UpsQlySAJwkhyS AHzcqTnw1klNAKaEDniWhAN+VcK/qtMwNYc05stJk/kmj4oQejngBq6iDTqLfOVZEs2qOStW JWCeqyhvYk01sXTNNRty+ipTbl1zXYSv5j0HVwv5Ux4vOddRD8A7UjYaAB4rdMATJBzwVAk/ VasTpuaQxvtSc++bPCpC6OWAvDljxQKdRb7yBEnWXvcysSoB57ExP8/Emmpi6ZorN+R0mym3 rrnJhE/ljRMdQra3mhK6VZQlwKtFWQKsdZQl8D4hNQH4N6khwH9KOOABEg+wdlSw5q4y2zzK HjB5VITQywE/4Cr6QGeRr/ynRLPPpptYlYDvcRW9Z2JNNbF0zT1lyOmKUbrcuuZ+QbSXuLom CdmWc6OKX5xX4h6hGeXfzb5VwbulhgC/J+GAv5Xw3+o0ghfqrRslcs7kURFCLwd8iKvoIZ1F vvJ7Es2WcyZWJeD9XEX3m1hTTSwj5ww5/Ywpt5Fzo/wDU23PCflTaquPOzUH3jqpCcCU0AHP knDAr0r4V3UalpwjfP5okXMmj4oQejngBq6iDToLknMSzZZzJlYlYJ6rKG9iTTWxjJwz5PRV ptxGzhG+mjXhq4VsyzlCn5WaA3xOag7wXEfPB+9I2fED6J+pAjxBwgFPlXDAc/dw5Byl8b7U 3Psmj4oQejngArYOFugsSM5JsracM7EqAeexqTDPxJpqYhk5Z8jpNlNuI+cIn8qGQ4eQbTlH 6FbZKwV4teyVAlzu7HQC7xNSE4D/IzUEOJb3Fik4U+IBLi9z5Jxsc1JyzuRREUIvVz5Z9vYB cBb5yrGSrG0ym1iVgKN5u9ZoE2uqiaXr+yld7nx6uim3kXN7+Df+tx0sZKvm1pTxvflqSxDB XtmdBVjpHPYC79VSE4A/lBoCfE7CAXdJ+C6dhqk5pHEh85ZdaPKoCKGXAz7NL/u0ziJf+ZxE s+rAilUJ+BRX7FMm1lQTyxwwMuT0q6bcuuZuJfxbXF2vC9mqOdyuOEMOtwEeLIfbAJ91ag68 HVITgOcIHfByCQf8toR/W6dhag5pNHJYWaPJoyKEXg54MVfRxTqLfOXlEs2qOStWJeAFXEUX mFhTTSyzH9CQ09tMuXXNxQlPstv3ZiFbNbdTHyTMlQK+KjUHeKfzqQDwTpJjgYCfEzrggIQP yDEyhAPeOTZYc0hjtBy9G63p1oYsQy8fLd/FxY5ZnUW+ckCi2VvcTKxKwBhvOoyZWFNNLF3f Uw05vcGUW9ccLuo8hh3/Z+rTcbrmtusvJORKAe+VjxwAxpy9ktv1RxC2Kri30AEP5gOHCi6S cMDYuGDNIY1fSs390uRREUIvB5zGSxPTdBb5yoMlWasOrFiVgFN5IWCqiTXVxNL1jasKhZyu NuXWNfce0f/J1TVfyPayNJYWZK8lYFb2WgLOcPYzgvdmqQnAp6WGAF+S8Jfk0KmaOXQapuaQ xrVyrPNak0dFCL38Wr23c8WvdBb5ypckmr30bWJVAv6Cq+gXJtZUE0vX3LcMOb3LlFvX3P2E f4+r6x19ltYsjFNiVbKVE7BatnIC/sGpOfD2Sk0AXiv0a/UBy60K7pDwHToNU3NIo1sOvnab PCpC6OWAX+cq+rrOIl95s0Szas6KVQl4A1fRDSbWVBNL11zSkNP3mnLrmsMiwmZeFX1AyFbN Yb30bak5wHek5gBvdDargvdgOdgJ2Cr01j39j2JsVfBsCQe8cc9gzSGNvTmsbG9Nt3bPGXo5 4Er+FsVKnUW+crVEs/eAmViVgF28YNplYk01sXTNHWPI6bQpt665eYSfwIvIWSHbco7Qe2Tr 7j1yzaeScwSjzpr8dr21d6uCewkdcKqsyQGeKOGA0fGOnKN4v5Sa+6XJoyKEXg44hbfnTtFZ 5CunSrK2nDOxKgEn8yLYZBNrqoll5Nyempyebcpt5BzR/8nVVS1kW84RerqsWgJmZdUS8Hhn jQy835SaAPy91BDgnyUccC+JB3j8Xo6cI/o1srJ5jcmj3KZ/TVYtv2bSqgCs5rTKqnW6lnwk 3kdkk/QjpmyVgHtwvHJASa/SKlt5SNkqAV/jin5Nv15+6p+lyFb945Mmb3JDjpAMrDZFWX7E VT5KU40FR5QXgg3irm/Wyfom4EhnQzV4z5YKBrxHKh7wUQkH/L2E/16nYRoEaZwmC5+nmTzK bXpaKh7wNan410xagfJcKZV6pSlPJeALEv6CKU+lVZ7ykPJUAj7Itf2gfqX81EclmtUIuB71 u1zzP5cMrEZAWa7jmv+Fpuoav2kvfXWqH1RBqU+QXd6Ak2SX9yTZfh3wSRDeJpUKuF7ogOdL OOA2Cd+m07B8EoSfyGGlJ5o8ym16nVS2dTq94jaTVllIWuWAn+Pd5J/TxclXAl7OwZebklUC /icH/6cpRGVIwpWAZ3MTnG0Snnp+hb89XbdMRwV/7J6a4+oK/2pU3TIRQgdUUNu1mqqbAZRU MOiZCj5br3weBJ+TlgG82tl/D949ZTc8YK3QAVskHDAl4Sl9uN7yeVAaH0rLfGjyKLfp3gRp AYJ5plfkTVqB8kzjsPJppjyVgP0S3m/KU2mVpzykPJWAS3iz/hL9SvmpLWY7vx9rEqGf5U3/ PZKB1Qgoy5F850BcU3WNzyF0YTBoG6E3ypEAwJvlSADgGe5tsxT2ilQq4CFCP0TfCrBVwRYJ BzzDOemPNH7KaZT+1ORRbtN/IZUNKGlVAGbkeEBGp2smDSvdcsCZfJvATF20fGWVRLPPL5tY lYBH8XUHR5lYU00s3QQ4cyHkdK15Xz1Nv0v0j7ia64Vs1fj+E7nmrCAsUbbTr7+Evyh+Cv1w iaj/9+fRfGfdB6P585P+34f0/E/4v0gn2EW/D6mp2s1eZe9oslOr6feY0LEZ6sE9mf9L9Hts DPN/l+D3xDcBm/4MuRxoHv1iY0x6lws9LJ3PWun4fz7u8p9Qzh+KQ7z5Vnl/iaN2ZMd9OI5t DVguf6Pfo+P483fYAodP4eFymiT9TqRfK/1wU/fR49iaxKk7XP9SSvBJgs/Q71v0u08+hvDl sXzRDS7iwccI19DvEGxJG1tYDjfcj4fyjfi/LB/uTS9WPv8PbXMc1deJ9Fu0pwm/FAMVNxxM 9rzx+1Aa9PybyYbeuB9pSvt7Xjn99t/fhPcdQPr8gZ535qE0yOj394M976FDqH1mUBr0q5ju eV+c8en5EzOYv5l+p9CvkX5N9HuT0vkL/bbR7yX6XU+/r07n9OdNN+knKf0M/dbLNt5PCo9T WTZNo5ngUC7T8oO5TP7fn4j+V/rtMY35dtHzRwcaul8O/30+bfn9v18LniSezG7i+X+vU1jN wZzXnw414fWHkbSn3zL6tR9mwp8+3PNepN/L9LvtCBP+JuEjCd90BIfX0K/Zor9MsuKNEr6a 9qgRJnzBSN5gVTqa/ZUnjPK8/6bfMRQ2elSQ73j6NdKvdaQJx6pjeyl/fXllqQmHAx93l+G+ sRnWeI9Q3+6h38A4vnPJ/8P3YD6iX6qcww+j3/EWHVeq4F6WM+nXSH35NIKpSYaO8HPp95lK pu9Nvzn0e1NuMfkRwVctfhzeWUjjYoecq7DDO/Y24YPCFyXYv3chH+hH74b+HfodsA/zbdm7 kG/xvp73AP1G0Xicsl8w/BQr/Abh+xL9rt/X8P2QN0d5/lf1/L81I/mLa/532fy/I6gtFozh rxVgH7f/h7DzxvHHfPCVAv/jM/7fidhHPaaQfqbEw9dsN4z5dPzdu+E/XvgPkC2lP5AvKOBL CrC98E2GLfRrHc8bSxfQD59sOJR+R9LvaOoz+MLlnyiPfco53xfoh33EyPcz4/jar3Pk6w1w 466l31z6Laffvggfy+X845jCcvr0T1POC/4fltP/2yZ0/+sSfr6LJf1P4hsxnvmO35N9CziC PW1P9pvhMrPF5cFxepfMSxcJv0vHMfM14uf7NOFfpjRuFR8O0sMXR7bv+enpMDYmi86KbzP4 fzifsRzjwOMPBnxS+E76HUJjyb8t/VWRl7hefSf9Dqff0Za+tbaEv2/p8/t/2DMVlbDbrXAS z16Tx9dh4/57HAq5wsp/ykj+yiHW5HEhNLYv7GfJX2z6/Bg7CUbzpcu4svo8+uHiz4mjrfrY g7+whvXKudbOSOgkJ1H7t8m5AP9vF9XfvlRv/j1lB9JvhlWPuIPpwMl8zdBWS384rJLPf57m hFdRWLUVHhM+3Jh0QqXhw5UJuA3Bv/ngNbliwf/rEe+Mf5odx9fxBRT/7xyinRtC3yzx/D98 dvYzQgPvGtn5DWdLo5Xe3lNJpyU9AoeKvmDpE9jwf4HHpwFwiACHJe622u1b9PsO/R7yeMO1 //c1ar9vlPLVJUda7Xg/4Q/Tb+IoDsfXG5+y5k1vVnZ4MBftIZjLMBzwnwai2QFvVmx4iFgY 5jLerP6h/Kx18Uw2kRoKIBGiZeJJ8PFDOpnzZiWGEvR/Lr6B/u8jhEipWDQX9WbFByJ9mehg 3JvVm0tlspQBg9N6KSGwqEQyKZVzdDDRS7mlcuo/TpqT6clSnN7U4GB8CGHxnnx/JJqJDvXH sz6azvdQAgZPDPWlNGtPTya+zseSiaG4/yyFY0S9ufCkev1HyeZT/0HvRdtgnN4nP/4sDP+V yg/67jjhq5zAv2em82bkcuGBmXmk529QJgW+in/Ljjb5+fIDW/4//vjjFPjmnMq//UpNviPk h3uR/iV8zVH+LZI8SiRf/C2j3xiJc3mUfxePCL4HZEG3xVcZ49/0csbHWHwRSR9yZW6af/tY 9ebne4rF15zmX9uUIB9+cYtv28X8+8Nbhs830ddafOdnS9TP0ol0vqcLH8q9jXjwa55t+KYL HLb4/kxWM372WPOfNwsf6nXXvSXeLuIrC+G71OL7gPg+KMK31eLz7qOnW8Lzvdbim05804nv z9Yk47/HzVInqr89UOJhF/AHfvqeabdvWemVPkh53l6iNojb+eJ3j8XXRnxtxDd1dCHfdy2+ 5CMlXvLbJV65kx7+dkj+4NtAfBuIrzOE7weeGQP4A98Iq2J82s8cvk33lHhTrMnUr/PfOnxf pjb5uTV5+bS/OHyn/aDES20qKeD7b4fv1w0jvcWW8ejT9igJ8u2fGOnV1hbyTXL4Vn9jpLd6 qsH9V58ufH4XfuiHI736Mw1fifyOdtL7Z22p9/uvFOY73+F78bel3pvjCvlQVZZt4D3xx1Kv vqSQzx9D/t8du0q9tnmeh6rpLDHyb4yT3geHjvIOayhML+zvPoEjhatygo9zzpCljHMOkJmM cy1CNjLOs+3lGueODVnHOHvH5qZ9nHtTs8ZZ24eMYpy1bcgixrkit2mcRwRkC+OsnUKOMM7a yAcaF63jPh9n6Tdd4/ziGOeMT1QQ45lxtmLbNM5aFcYn46yNbdC4ZW0qfB8Hn+Lg+zr4fg6+ v4NPdfADHPxAB5/m4NMdfIaDH+TgBwf6Uan39sflDt7qmfYbQe0XceineaZ9Sqh98E2LDzS+ l3chHu7z8Qp1qg71yeNwb/WFsPQjPn2yOm76jJXfYwRnX1I8/58SfNfK/1cE/2nl/5pn+lMJ 9ad3nPJ8THCR9D+k79bH5JIgvtLBEXXTIzwn4X3wLbGrLvEPt4/17ib8nVyJajlIfFxhuJPw SYL/gvCzrPhvlnD/PUThE7x/EL6NJstNkt5BNITPt/iXEr5oi+f9l9BPwxC/wv8c2lhvA+Hb LvcPcI1Vusz0y6h8Qr+V8PTl/ldTxnqPED4hX6JGGsr3AuFrCD9I8LcQ38JLRwbrA8bXzivJ MJD05sAQu8r/uP1YdQBhxzklSt4hPr40v8nCzyP8Yuv9riN8jVUf3yF827X8JXCk92PCX6X4 +0h8HOL/kPADBMf3fvbZZOofc+Qimtx/WsbxpxFecT93CeCLgX/V4GsIP/hcEz9L+DNfo/yF fgXh2U2sW4G+DelvIwNmFNPxcfqdRJ8hdHxeaPZt/hGysd77hG/bZOpzDETu7XzCFPS9CN91 u2m/uYS33cFHkIBjy/x555r3jYH+DZLxQscNimvONelfRzhOYk0T/FuEd24yOO4ImLfJpIfD ltvONe3zGuHPPMAf5kP6Y6gdLrfa6whMEY8QbQTTsdl8G1l0N0p58G34Zx70vB9K/HMJ3/ld PigP/GYccCT8QqH/F+G/o/z3l/x3Ev6EhX9I+Fy94DVWfabogasNXkpT1JUWjk/GD1j4eMJr LRzfgt/PwqcQ/s4XDH4A4U9ZOG6svNXCce5yo4UfYy0gYXycRHjFY/5Xjsaq86GLLjT13UN4 TtfnZA9fjr/Kqt/LCN9mjQd8Jf7UC0vUTIX4DyK9J2lOl/R/Snj6x573kuAvE972E4oj7VFK 4+AaK/2DsP/21/6J5bHeCYQ/87Tn3STjdxXhO0jYNAh9Pfif4gsAgH+R8PRT/veOxno3Er79 p3xZB/B7CK942sgzbAu+6mn/80lj1aWT2yj/FsGxyXfXC553p+TXQPim5/gzf8BXEL6D3n+i vP9phC/6BfU36U/YlXvThWb8fgXxLzTj4S7CdxI+R3BccjHxIjOenyf8GAv/65hge/434dNf 9NQiJ/Irp4a9warP/bHIZOFY4Kr4needLPzVWCC736dP8OoJb7ykRGkuyK+b8J3U3tcIHd99 X0H0SqGfNzZYnusIf/4yIw+xYXWblf+PsPD1NzM/4RPS715i6uddwideasbXeFLRZl5q8juC 8FoLX0x416Umv9VYjCN8X8HXEX7BpSVKcwJ+FeFfubREaWrAv0H4Ny81/ff7hO+w8v8d4S9a +AeEv3+paY+JpLBUXGbwYwg/6jKTXiPhJ1k4HKedl5nyn0H4gIVfQ/hZl5ny3kX4FywcF5rc YeGvEP6ohf+zPNge40mF3Un1vVTq+wjCr3qb9Hu/PxP+/OUmf+wRnP2e5/1c+POEV7xvxvNG wtsIv05wOI/HX2HiY3fgm5TeFMEfhgp9hZnPf0H4QVeY9sIXwm+x+gc2vd1h4fgk+ob72VZF /8PtHQuvYFsdoQePD74vPieBM8G98n5thH/LSi9C+B1XmPYaduJfSvh2i/8LhL+7xbzPtwjf SeU5RsrzEOHlV5r3/7mT3luE305K2VShjyST4eqthn/qXkH+wwi/z8ofu6qOvsb0v1MIr7Dw QcJ3kpJYI+1xDuHT9zY4dlA1XmPkE/ZLefuWaHn3AOErrylRlgzouHyz/xrTn94ifMdBJd6v hR+f+zj7GiMfJtNA2nKNqZ9jscnpGvN+TYR/18q/l/CGSl+JHat2Cr0yyeCDFbhU3+D4ZvMk C8fmrMMt/Cxs4ppm8PMIP8LCLyb8SgvHhaM9Fn4N4YuPMPj1KM/hBsfGpoVHGxwbtyZZ/N8i fKOF47PR/2HhDxH+gYU/SnjNkQbHpquvWvhPCP+rhWPb0MyjDP5LwpMW/hK2fln4K4TvYZX3 Tb1nhvvX+8CPKdH6H2zzmdcZ+Xs44SdbOLY4PUP884X/c4RXzKT+LOMLn+Q+/zozni8g/CsW /nXCZ88q8d4Xfnwr+zvXGfvjKcJ3ftnMh68Tvv3EEu8jmT9LqONsW1giHx8e6+1H+KLF1L98 /YDwndf5+gjNV4RvmlvivSLxNxB+VX2J+qaz0g8I30XKw/mC34/0lpD+Kfy/Inz6ghJvndD/ SXi6psS7TfByKvg2otcLvj/huwhvFHwm4Q9Z4/cEwqd/xZTvZML3uc6Mrzjha6439HOAn1Di nSzvdw0Wva8z88fthCeuM+P/uyiPFf95wncSfqjgfyX8e7Y8RXluMPzlNFDXfMXUPxaDtn3F xF9E+E6Lfgrh0683+vgg4XXXG3mwyVoYQn+7EOk1lagFP7zPF4Df4JeH7AHkT/giwW9y4t9H +A6r/D9B/PuN/onPfmw6pURtpkL6uBL1F18z5RlFFbfrcyVyhQX1H8J3fM3U5zH0kCZldEja bxkIXzf2UoTw71v54x7VncS/XfivI/xJi44LUtOREq9J8vsZ4Vd9vkTrv28QPuPrRj9BRzju 60Z+4lLSdgs/eu9gfSwgfPq2EuVpAX353rD3jP5+GuFrCK8WHFeWbiP8MMFvIPzJbcbeuh/p 32jS+xnSv9HMV28QfsKNhh8De7WF70v4phtNfc3BRgzCZ/r9HYLgJtOfYoQfepMp79mEryF8 tuDXEr7tJlMefNdjh8X/JOE7LfrLSP9mQ/+Q8Ok3m/JMooqsvdnSzwj/nIU3EJ6/2fSHzxN+ 6c3m/dcTvuNmf74n/ZHwPa/k9hgxYqx3+xTj3ysZ8fbH26cY/13JiMnqmtD4JYb/+SnG3wf+ t6bgU50lagF7IvWPPaljXPUPXk8APl1ceAconGQp4Wvq2CcP+jLLxQfRjps4Z39ANrnQL8Ad mn0lap0A+C0OPzaipF/ly6hA/4lDfwX5ZUrUZ8pBH08Vt+iv/N1Y4IeIS/E4Kd+8/YLxlzp4 1MG3OPitgp8v6d3r0P/Lwf8gOHVpxf93wX8j+GgSlIse509UorzYIFcxsUTZv8CPERfojyS/ JYS3XcvrcKCfun8wvzThu+aUqO+ug36NQ3+I8DU0+Ksk/uOEz9vC+tAEyGeH/w+CnyT5v+PQ S6cG8WmC98v7VRG+K1mifO7Ib7nDnyR8534l6iMqoJ/v0O908B87+O8In72L7QfE/7tDHysu 4q9J+SsPCNIPdvATCZ/+Cq8PIr3PEb79t57uz3nC2whfLfgFTnx/QX8Pef9bwU/6aZ/w30/4 Dur/10l7/5fwz5fy/U7wnOB/d9KfeGAQP5TwHTTefiDpL3HoEQc/28GvBv5HmoMl/reFfqXk /7DD/4yDv+Xg/3DwCdOC+OEOfty04Pu3OvQE8DTrgyjfZsJP38L6OvrrNQ7/HYLXSXrfJXzN 7zxvivSvJ4V+x0ipbyf++4JHJP7I6dQ/R5d4nx/B8feZHuQ/ivDvb2H7BOU5yaGvEHyDpNfn 0M928C85+F2C10r8/yB8TQn7Y1Cenzv8bzr4vwjf9CKNX3n/8bLkcaqkd9iMIP8iwf3xHnPo mx3c36D7iPT32wX/rV9ewjc1lngPSHlfFPqDQv+L4FcI/g/C17xJ6Qr/RFmSmTqC6UcK7rfv Z6wlG5TnVMF/KvSU4FnBzyO84mVPzzfXOfHvEvxWeZ/vEp5ea+TXb4QOfQo63JuCpyX995z0 ykgR3UTyvE7i70f4okNK1CYe4FWEb/+Lmd+WHByMfyrhbQMl6no10C916Nsc/HuEb1tpyvsj oeMaFZTvVYe/9JAgXkn4M1TeuRL/IIde7eBLHHyVgw85+CbBq6W+vujQbxf8PKHfR/i2Uhp/ Up4fEL4pavSFV5z4JbKx+XqJP/HQIP1owW8W+iKHfqqDr3fwix38Vge/x8Efc/DngB9a4n1T yv9nwt/cwv4jyI9/Cf8EKd9YUoynP8ZfkAf/4YcF08Pmbe9vpv+cIvTzpP9mCN9UW4IlB0X/ EuG7aHD59fkdwtNDpj6fk/jrJf+3CL+q39DHHR7M/xAHryb8mWklalMi+JuEfpikt1LwFinf aYL74+l8wne97nm3SH7XEV6x029Pmp+Ev0vSe9jJ/ykHf01wX//7h0Mfd0QQP5Tw6dT/95D8 ahx6l4OfLvgsSf/cI8x6/0SvzLvI4f+K4FhHA/89hG+n/vC2tO+PCV/zFq8HAP+d8J8g6f/V SW/skUH8AAef6eC1Dt7u4L2CHy35nS74YTJfXiG4L09vJPwq0pd+L+X9npPe0w7+V8FXSfwR RwXpEwhfs3eJt0Lq42DCty8qUethSj4SvmgM2YvSv3ol/uuSXlZwfz65kPAKy764VehfEPrd yO9tT9mDoD8m9EOE/pTglwq+0ynvuw6+h+zB20/4Jx8dpB/h4AsJn5005es+Oli/CYf/Mge/ RXDfPniY8G1/J51e6u9ph//3hH/R0vd3Eb7zYxrvwr/HMUH+GYQfvYXtEfDPJHzNx3xvPPiP d/hbBN8h5ekRvFTGe57wXauMPN9yTLC+r3fSu8PBf0z49p2mvV4Q+kLRD94SfLKkV0qMz21h +xnlP3CmSQv0WYRv2uHrV2Svzgzm1zMTm4pLvIuEfpFDv0nwp/z6F/x38r5POvyvzMSnPniv HNJ7n/Cd73havx01K8i/j4PPdfBWBz/dwa9z8Dsd/IeEP0Pvf5rkv1PoD8j7vOfwjziWn339 a7zgl8v7HnAs9h6UeIOS3rxjg/GXCB4T/lWC3y3prXX4LxbcH09fInzRQuNf+I7QX5H0HnHi Py/4XRL/DYf+seDfFHm892xq7/eNf+PI2UyfIfHnCz5Z8mslfOfIEu8/hL9P6L582yz4ZsEv nx3M/3bC2+Jm/D/h0H9J+PZBQ39H6BslvY8Jv+r4ErWPUcnLqmD8Exx8ueC+fIkC/4OZb/JC /4bQz3Pif8nB768K1u9PCN+ZMOV9Q+hHSn39t+C+/j+ODJk1f/bl61hv2pxg+p9x8FMI3/FH Yx/khN4u6Z3v8F8L/qNL1P5m8N8u9LOE/2HkT/LI159eFPqZUt63nPRGVAfxSuAVJB9lPjrS oZ9A+J1beH0R8qdN6H7/76s2++cqvLc/zhA+/U+e91Upz0XCH5fyXiX4yYJvI3zN637/Gutt d/L/keB+f/mV4E8K/obgPxT8fcJXW/Jy7NxgegcRftXpxh7/DOHpS5SbWOFrHP6NhO/Yh9cf QP+KQ7+L8OkJY688J/RGKc8f5uLb7UYfe0/o04Q+ah6Njyv50Avoc+Yx3e9fn5kXzG+Ng5/u 4OcSvuvPxn/4JaH79spdgvv97REn/kuCDwt9l0P/2MH3nx/E5zp4g4OfIviXJf0NDv0rDv5t wh/cUqJ2iqI9dwi9XOL/fL7ZbzrRG+f9yon/Pw4+sYaf/fY5pCZIP4Hw9JX8mQHU34BDHxb8 Rol/uUO/SfD/kPFxv0P/ieC+Pv8rh/6ag38g+NnCX7aA8VsEnwR8aol3h4zfY4V+g9AXET47 VSL+BLKvFgTTH3LwjQ5+g+CYT+EaeMih/5jwRfuWqH2RSt936O8Svv3AEm+i0EcuZBrmP9hL BwteJ/X1mYXB+Csd/CwHv9bB7xfcl+c/Irxiihm/rzj8Hzn41OOC+AIHb3XwzHHwjfN6pZJ3 Dv1mwrcfXqK+1KD8p0L3+++TDv+fHHzU8fzsj999jg/Sj3Hwkwjf8Rp/3QL5dQnd95d9/vig vI478TcS/kzayLOrCX/K4v+y8Pv21dcI33mJp+3ze5z0fip4t/D/lvBduzyvX/h3OfwwFJ/p NfPvNMK3TzH1W3VCkL+e8G1vGP9vhPBNI0rUATPg/Q7/OQ5+o4Pf4+CPOfhzDv6mg484keYX Mv7GSn/f80SmPSvvP/3EIP8Cwpu28Ho95NtnHfppgvv6zhmE7/gDf+wA6W8V+hKh3yb4i4I/ Rvgu6p/+/PoTwqdfyWe5gP9D+H8g/GNI0Wg7pUTad6x3wGeC5TnBwbsFXyTxT3PoZwnurwdc Lrhv39wt+CbRXx8lfOdOT61nqvnUSe8VB//oM7jMr0Tt0wX/XicF6QcJfpXkV+3Qlzr4KYIv E/4E4RWTSryf++s7Ql8q9trXnfiPCO7rK88Rvv1dX18b6/2F8B0vkRwR/F/Cf6zwl1NFbjut xPux0E9YFEy/jfDZs0vUeSOlrzv0c0G35q9vO/QfCj5X8vu14L5/5k3Bj5X3G1nL+PFCHy+4 3x+nEf7My3xgV9nTtcH8umvh4y3R8miA8Irfenr97gzh3yTpfZnwTZNLRD8h+wi4JS++76T/ ooVPp9/fBJ8j6X0kuN/+4xdT/TQYf371YqYvFvpxgr8s89EpgncIPrQ4mP+FhO+i9vi79I87 CF80kfeHKX+Sw/8Lwjf9nuxCob9O+A7Sl78k+IcO/151QfxgBz+B8B1rjLxc7dBThG+21ps2 OfRbBF8o73c34VfFTHpPE17Ra+aD9whf1FPi/afgR5Bg3vSk778a651YH0z/VMJn03x0idDX OfQtDn6ngz8gOK8/et7TFn06/X7n8P+Z8IprPD1eKxqCdA+nenGad1avd+xAajB+bDSfiSer 5xybG0wfm6heMP/Y/mSip3fmnFnVs+Yf25NPJGMzc5l4XNFmgnRsbzZ/bG8ml5jV4fVGk8lI /2BqKJLNRTM5j4KzuXxfH6UeidR1trZHmps6OiMRwuoD2GfrNNKbGkwn47l4bNa8+VXzvTTA XGKJpSL9yVRPNBlRx4sj0fwGT53sjcTyg4PDfgYNLfUmfR9pbK9d1qAxZOY/m1R7dar/lxUx RBWR6ZkZzccSqWxvJtXTk4xnZqaT+f7EEFVEpicSJEWYFMkNp+PFqer4Nb1JV0tdZ1NrSyQy q3r+gqrZblDNwrmexBhMxfLJOCebymfUYWnFUV08l95kNJslzlw8I1kWZU1HM/GhHMcozkV9 K5pMnBH3EtSqkWhvLrEumhMsFg/ivZk4PUd6U0N9iX6q/UgsEU2m+r10Jt4Xp8x649lIJp5N p4ayxNVDr97W3tDZucqplOqFhfU0rxhz1YLCtqJGcl6GXjQzHOmj5g57U6t42eGh3mDuc6uq Zs8OzZ0oVdVeP1UDVRK3UyQRmzV3dvXcGjcYTUeEebND8i/sGcQ5f6FbjHluvcydPY/M68L0 conBeCqfQw0XEvvROpHeAZyXj4WzpDPUfyKn5+P5uFuG+bPDMkzHM32pzKBbupqq0I4azVDr +93AjTN/3pyQODTIqcCx7EB0rXScQKQFVTXe4NrBWFjZ0Ob8LqoTJOJhfT0bXRcPf+F5NWEt ls33DCakigrLUzV7/vyCItZUFVRPdU1BexYEVc2ZHVaATzXMdz++9cAOeb14jjpBipo1NxzW hXZPzqaG+j+pg6U2DIuYsDndMbBgYfi4m129cI43q5mEAv03H//V4L8F+G8h/TdnNv6rwn/g m1ON/+ZCTlBd5PoGZ2ZJnPbGSUwosYWuRXI2nsoWdPf5NR5HUcMY7UjNETLi5y6YGz7i5y4o aOSFc+dwvqhHFkzrEvH1qCfJi4un2zUYGtr0QRa35YNUu+GdpFO4VySPibSQ6HaKIDXQJ2Ry gBJg3pQUilzeLk6xXhCadj5Lr4tbQArLRd0tq2qQHjO5SCoTwwD5hPTSyehwT7R3bSSfSdhl CpdkC+csKEzGFkoFw312gaxeWBhUU1MgJ+bNLdbn582FIJiprjuhnku115egXhuNxagXxHDl ih8kKF+MMhjN9Q54NAtLN89IeHxdPDOcG0gM9QeLUFNVM8ejthqKRTOxCOLFUoPRxFCWKNVz Xd7qBV48npypJpWZ8Q25+BDun8kqdbHwJaoWVtGEJeqaTETJBMrqq3AK43k6PIG5ReqHKNVV xShVxSjVC+cWoyyoLkapKZravPnFKHOLplYdrlsQpapYnDkLi9XBnAVzilHmLyhGmVesBHOq i5agqtibzpldrHaqFhSr66qaYiUgnacYhZQhGg3o7zMH4kkat+h0CRIEJNtikWzvQJwMC5IC GVJRqdPHs71RksrURTPRSP8Q2QeRdX1ZxeBI/erq+TR10GgnyeBPDZl4bz6TTayLJ4chUQag LuQTMX7op4dQ5bR6TpHiV1fPLdJVKM78Iqpu9RwSQnjfrBdL5Ui1znjpaG4gS5QqNcmExala qIRGfzIas+tJ4ZFson8Igy41NBTvpVGXJ9WXbA6S9Mm+WdVzFs4NbxZQ1GSazaV6185M9PKA 74ti3hguEmUBGS2JXHwwi+ciY5goSvub2ZvPzaSKn5kmeRuf2ZuKxYsIlAVzi3TRBfNm1yCl fC6RVMJSWSkR6h/0OBilKTc3QMZKkYZbUK3GkRNUQ5ZtMolkqI/lyVagnuCHrI0PZ4taNAvm LJjtJRNZmpFT6eHibLNrwkdvdc1CGvGYtQZTeRKP6RTN/tlirLOL9KyaBUWTX1AdPjSra2rm KS1KKVVQr6qhWVVDqaquVsoXq2BKB5uvlLD5CxSv0rsWqMgLlPq1YJ76f776v0b9z5wq7YVK Y1vImam4C1Usks/4H4q9MtZnxoZiMMHjg6l1UEmS6LipoUgsE+337Z5gy0G8hI8OUOZjoCPh CCXMqSTjGNTUSJ8y9blFxdrcKg86bzIZyaTWW/FDmYvYmFUL51XVFBZyMJXDPW+s3QRJMdLC wgnRXBSSLE5yLFasF9Js6VRKTz6Xo6zISCa1k7SGoVzx1NFHixJZIXTp8iZDBPqGw9OXEmQo fpRMR81D8ifN6ZO0712rxGFEjTOlQHD7IXFS6eJR0oLgRFF6fNWCBdRPtU8FaLEptWp+kSlo wUKS7iSPc7BPUefpVDaB7NweMnt+jRuEcVAk0aoiBVlAZbRfoIbKZb1Azfwi3XDBgrlFdIIF 7H0Ko9TULCwo8tzZBS9GQWR003ik/6HO91IX8dbPqqqB2y8aI5b5aqJQmv5M1vQx+7j204L5 s0PNJwqv8cSy0KZCsBQLaqqVfRwwJgodKgvms6ckwFbgCnFSDonCU2a2IDzUKAtwuDZZgBhL ZKn3xAvCtakWOsfNXzDXfcsiCseC+Txj08xH5kqyyGxaU2zGp0klPN0aaqEihKpwfbOmZkGR GDVFdOSamiIzWs38IoOWhkZ4l6+ZtzBcuaqZNy98+ND8V6RUc2uKJDW3iEZfU11ES6upLqIP 1VQXGaA1c4pM5TVzqouUioZiEcK8IqWqmlMk89lFjIya2cpBmZi/YP4sNWh7ScnKD62d1bvB i9Svaqld1lQHh302JWp1KHMPMS9pbl1c2xxpbWzsaOiMdNYubm6IYGz0pgZ7UpGe1IbIwHB6 ID5ECgANqyipnay8itKegJc5Gov2UBbqvtBYPs1OzT4zr2DasPwByslu7IJ1qWR+kCni4sY8 Ir4CyYM08DirvBQmIyvS3dpUT5XT2tTS2dAe6WpubVni9efWRgbjQ3mTEdnMIn3gVVHqpNfv 6uOpntMI2Ikvbm1tbqiluvYfHGili6x6UimaMYe8wbVU1EWLljQ3La6LzJk1WxWIHU/IXt0I iyBo8tQKMJySqWhM4YV1Mpgi8ZZiL6DSR0l2MimrUlmfiIFE0g5+GE4DjZAY6ud52aSIioym 08QZwdzt2S4BVbQ+KgeVTZR1ZZgQls/1LYjkUpF8b3ZupI9sBMs3Q6XIRvuNlpGPq66h5mVq 7jSlkVVX5LLvVthDfJRD8MgNDOcGBmM9UllD7KTTeglcL3Y/yubT6VSG61IxGQ2En6imfFUE M6aaJ9oXRzo6W+tOjnS2166KNNW1tqj4Kl2s62UHUH1iPQz1ojpiayPpxIaefF8kP5SJ91kV SjpaPplD3XCFk4qU6R0ItH1BX6Weqn71rV00ztyOgKakeTlKyXLUtViuy/B4kEycakqnYr3U GNCHctbYCqaLusMaXA4rY6qP+HSxI/3aRh9RhUhQm8AB6CQ0EM1anSyWWj9kVxASCR3VzjBU 6meil1+LrQtk7t84TNodlVNh/fGMTNOwxbmf9PMQVuadp+4ijqUGoQ3wtcSq06genNW6AV6L WiuVXAfvAtmQpJRTVLUsGUHK/K6SsPK9ppR6UVhRYgz5rWTHiaXyEIJhQi+gtAdHHntrVdPq rqz8q0pQQ8mOqta1KxqkgXiifyDnCCEZ+ejAPADx5iwH7DzVWEpkrMbS4pXyJsWa3osFIl7M liFD4trxS+zKEJUzWozXM3XjJ1O90SSMMlcyJgYhQJT4yVAz8gva46Z18Wcb6jojAs0Ibmml h9p2WwpmB8jyiyaTaiAOpp2BKFdXx6PJQumvrtTO9FgLBKpIgykyo4g7nsmkMnpBU3liVK+Q HuZ3gn7TCZa0tC5riCxrqG+qjbQ1167Caj1EK7RtZs5hxoyk4/G1ELJDCTjHZPCqSjVJhg98 m0JlGoiT5SvinTsdj1EUeh04lLNanFLEns/x6PW7nOpp2ExAmnNhB1XNGjEjEa5qM9FItvIS dosMJGJxZdPz8kRgTohi9Rcjmpgp71Qa4iDrvmYiE6WZwpJsVsXkkyn0QT2C1TRFWgM3rtP8 BWMSbgLg/UZ1wcskhrLxDIl/DukdyPc7CgQEA8klrpN+3wzBgkui12+RWC+VD1N9oLsHB3BP IpfFEkgkG8UWDjPkVDdCh+wv7ASmKP46GrqmuBg3DPLiD1e+VAxpHNlc4UQkw0rmI+KNZnsT Ce6VpihK3ga6iD8ISCXDQoXv2bPmDsttFl5zhd0LulNxvQ5l9J8Fur1E+heKCoU1jbUmtafG F9RZpQOYKZ6HvyzSwCIUSWDGEtas/OVXekTXgPwyOePufZ5euJVYzFpNpgcDluqi/fBcKm+K UTlMS/vTTJbsTxpcqbX5dCAtqjqy7umpP0NjKOtKUYqao9ag8pJoN31ZZnXTOyQgWM9Kb440 NrfWdoZMQZgPetgrn+OUlRaAbRyJDc7szzIcvc7DClh2QKScr4eZ14znDL/I/GA/45eOJXqh 6FoVoYa80/qZeD+NxbgvPlnKGvVFzTC6J0czvkDT1UPBUdYc06k0SSiYDwEJ3qCmHp5X1bpn 4fok3kbJgIAWL7OleqOCEZy1rAYptHKtiX+jV3RtI7hiNJJDvItFNg34G6SCje0aMSyS1Wox 9/WBTDQbEs8dgMGOglfBok0qYzp3D7XKEM+XqjNm08kEyaZUJpb1qzKDddFs3J4AU8nUeogI rcP1p3Jqlk0o30zMqj9YhUZZ9j9xQXnwKiyP14zsrXNljipnNHZaPpsb9JUXNg2jvfCsBUaY nrJJHxdDMaj5QFNF1xhmu7gvmsxappDurrEUBZJsIXMIqjv25sS4wtTWLTMZshM2a0ayGNSi bwRsOjFLePWY60OvPkNQ+92fB5tSXkK1Rm356NEaZjpaqqoeyVwCqE9KT5J9aPqt+W0LxCMN skEtsa35XWRzfFBpVuKfxBq53vjAm+DstHx1vYiNAaHoyAxHrw0zEKA9hamsyrugJIU/7alq U80ZMmBZz2CXtRKlqpR6914ylUG/1lJQei0VIo3eMRgfhMGxW6Oyo7O9iSS4b1MSNUn69mzL e6LUb9PA3BTw5lCHSMd7dac2XTFc4ZJpiF+YlK7+HAv1ZLQnnrTi0Kzgj98k+luoHaxFiZWD XxA9Y0lviOap3+qlU1LxQ7RhXx00lgvLSeanCTs6lCIxQ3KEBif0RGvyUsakti0Wt7eu6ICW ETQds8ODycTQWleRU22YJZ0jjhRq29rYsSCR4xuorrKWF6hfe4HsKdKZ87Nx2yUVdKSblrFa MzDFWxq45VIQI09JJFte+k4ea3nV66G5F4Xk7Sh277PnxdquzlZj3rhjxWkimS9D/H++TRln 9UtavLc3P5hPKn+jtChLtVjABRONIXl6MVY71HTmu6WyyjNG4kcp6pKuqp9gAw6pZYmhOC81 WDY0dwtpyMG1pGMMph2pEfR5KIUp4LlzrEp0pYw2LAPx2FQnEa0GK/votDaqVRxOS0lFktPa 1IvJpCv7vgrcFsriN5Nl4RatwFiHVWpcIBIoXYXFEztilE8QRhd1H9cyNiamLUCUTkw1TP/s rkIoSRNX0AYVUeqS1KmHKE0tyEQCFcpcezqhzKB5qDri+IEpA0ZeNh3MO9DCxr8ns5FuC7b5 LDG7PpPwDSiRtJSf1u2UVoeG8GcwrZr3pJIxLMgqMepFkB8pQmJaBi1ZX7qbCsL8ovdUh2v4 MkEoQ09rxMV1RJ5IIuxOj6zLDoW58wvmNl6Odb1UZCpEk+mBqEsg8ZRTlpgY4+wFDOolvqte hr9Sc1yHE6zMwqkd+qSy4yEtbDGLUmdSu1lEYGMYM2A2bvSogknFUePZde5oPGqQK82LxEZu 2O8HctAgaLQEkwt141HzUoKOPFHjUM1BQxDXQb+BbWCEzSLJRI+funlDUScLhp/vCzODWV66 B8OfJBc1SSw5zEayM9vhDe15o2NpV2OjUlVEvaN6IEkl7rBIpIcGCqvtYfUCZwW9rCWN/FY1 3PmhbJij1V/ioJEIJ8/6aGaIE1R9FaNeuUUD86FRC7pasELGXkctImQTaF/KHXp6/Uj7LIqd +jAjsVCpMfKe1+R4irZ6NG+PMg3Gva4/HuLzCXGoeJkoaUOOdjkEG0VbL74sI4sfFkDIa/jb haWw/jEVLAuxE42XUlx9QGk8kZ5hNeE5hjOrx5B2PFpI9SIh6cgH35+kncuR4MKbFJwtFyvx wYRea6GXSKT91wx4M2luUTKLN8CwkhUucpkWFG/EgeRi8QKJVbhCwuZbb28ylcUxnmCb4X9L xVZe6WgGFacMxcGhOBSNXmN2K7mMfOwB197Q1gDvTjyXT8TsOlIusWJrSn1xsksKO6dlvcI8 6U0Ph07cuiMWO6rldBtra4htPwQ87LYQCFY4PUJ/I6K7BufHjWYy0WHdGXiI84pdwPXqVLZo 6oG+4buGU4NpvUwn9poSSHo90FZGHekgU7JAx4hiPcAaDUnsVwnxzRkHBknN3g1RvYfFVEDV rOrAioJZxTBqLunIMA/dudV3y2bjUXpb0jeTMbM87MuHrNJDcdoPDRp0ZGm7nXQjdnLmSY+O DkX7xUfle6oL13CVy4yi+Wu5BR5f5bYKLptxj0tgUoVKn0jGaIAqbTOo34ULUuwqLZwx9EKf S8Dww7kvS6u25mURIr0Y4UMhLecPCSuK8sT4K9fW6anAwg2PhoLkdL0pndJfH5XFnDhJyeCo t0Qh+q6qazUStYls5IlSsnrVGo7UxGDoOp5jbQQrjKdjI739bQ3aW03N6UXi/jKcv2rKexhz A8NqL4I1ejCDsWiM8HhUDidfo9Lrj45UhDYuDmAILiqS0ysKtkjoeoJmH6IpyyiWQQzDCsMp Fo+nzYwhhnihjmJNYXrdlH3n7kAsuj6slXB/jTi49Gbmz1Q6biwx5cf00wzYOr6zIkS76SU1 MqNWUUQIUgJDruy3Cy6bTNHEWoPS+pMzmfBWimy418lZSLJ9rQEnljFYLXuLTVm1HVB5PWQz f4guRtxwTocqMf3s31abCiV6QJtmc1g8DGoHQ3wwwcucpN/wUkRInfqu26x4w9XWAnYxBfTs aH82MAWiRnpUZ9YumgiMg0CPnqMX9ZQ5aXvO7QUrreLIfgpLfDPbAIn9rIosm7t8v2hgms4P KUdfP3sv4gGvgHWkTTs5gy3k+7IsHbNw0vaNm7AJRi2WuH05h+MoaC/Z3mEJe+UPF79g+NGT wL4T8Zj6Z32VP3n3K6qk/q9sqI904RH/GVeOv6JIPVWtVgT2b6s3DBlFZpfM7rtt8CRewUqm GltZNueDOlLQ80/DkpRMf8XAXtnWK4ADBZ5hq4NZ8yQfNguueUqPkNnf+E9kh1ug6jPo1YV+ vYFcLh3xP8eOtvB1em2I+gcYLaGuDN3AcqmulMhn10XaZQKpQ7+My+qLrxz5HVvVid+1d7PR x1+S9vuOaJj+3mWqVTSNf4gz0DnZdeG4B7XUCN8Vx2q/7Inj3ZuQepF+9Nl1dgPwyMG4zWJo Byo7lieVNjhDicnsNmtC1rEtN7PZeRa25FRsvPgLkUZQ6LT0tNHWWl9X2+GuTkvWJGlUWG9K lhZV945nMkWna8sg3810bs3qn8zFA916l4LV4ZAV04AfLUQ7kkEfqHt//1mCV1rtiYnFuPa/ rMO6Gk9MGbL7sFW+jzS0RFK7PSLW5SORiB7PrKyFLyrLfGfp7X4HyERJe0n15rPev//+/ffv v3///fvv33///vv337///v33779///3/5+9/AcKVrSIA0AwA --------------060407080808030906030006-- From jjrussell@gmail.com Tue Jun 20 09:45:46 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 286303B017D for ; Tue, 20 Jun 2006 09:45:46 -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 18045-10 for ; Tue, 20 Jun 2006 09:45:44 -0400 (EDT) Received: from ug-out-1314.google.com (ug-out-1314.google.com [66.249.92.172]) by menubar.gnome.org (Postfix) with ESMTP id DDF3E3B01B0 for ; Tue, 20 Jun 2006 09:45:43 -0400 (EDT) Received: by ug-out-1314.google.com with SMTP id o2so2994482uge for ; Tue, 20 Jun 2006 06:45:12 -0700 (PDT) Received: by 10.78.47.15 with SMTP id u15mr2704279huu; Tue, 20 Jun 2006 06:45:11 -0700 (PDT) Received: by 10.78.124.12 with HTTP; Tue, 20 Jun 2006 06:45:11 -0700 (PDT) Message-ID: <46cb18130606200645v26a76091w98fec72b69db943c@mail.gmail.com> Date: Tue, 20 Jun 2006 09:45:11 -0400 From: "John Russell" To: doclivingston@gmail.com In-Reply-To: <1150767859.5180.33.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: <46cb18130606191233w68f08b35t5b4a360a592e8971@mail.gmail.com> <1150767859.5180.33.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@gnome.org 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 13:45:46 -0000 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@gnome.org > http://mail.gnome.org/mailman/listinfo/rhythmbox-devel > From jjrussell@gmail.com Tue Jun 20 10:35: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 2D1423B0460 for ; Tue, 20 Jun 2006 10:35:45 -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 20209-03 for ; Tue, 20 Jun 2006 10:35:44 -0400 (EDT) Received: from ug-out-1314.google.com (ug-out-1314.google.com [66.249.92.175]) by menubar.gnome.org (Postfix) with ESMTP id E4D933B048C for ; Tue, 20 Jun 2006 10:35:43 -0400 (EDT) Received: by ug-out-1314.google.com with SMTP id o2so3019711uge for ; Tue, 20 Jun 2006 07:34:40 -0700 (PDT) Received: by 10.78.51.16 with SMTP id y16mr2736730huy; Tue, 20 Jun 2006 07:34:39 -0700 (PDT) Received: by 10.78.124.12 with HTTP; Tue, 20 Jun 2006 07:34:39 -0700 (PDT) Message-ID: <46cb18130606200734w36f36216u73313119f680968b@mail.gmail.com> Date: Tue, 20 Jun 2006 10:34:39 -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=-1.819 tagged_above=-999 required=2 tests=[AWL=-0.777, BAYES_00=-2.599, RCVD_IN_BL_SPAMCOP_NET=1.558, SPF_PASS=-0.001] X-Spam-Score: -1.819 X-Spam-Level: Subject: [Rhythmbox-devel] rb on pause doesn't seem to release the audio device 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 14:35:45 -0000 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@gmail.com Tue Jun 20 11:01: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 D5B553B00E9 for ; Tue, 20 Jun 2006 11:01: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 21722-01 for ; Tue, 20 Jun 2006 11:01:17 -0400 (EDT) Received: from wx-out-0102.google.com (wx-out-0102.google.com [66.249.82.196]) by menubar.gnome.org (Postfix) with ESMTP id A61983B00E7 for ; Tue, 20 Jun 2006 11:01:16 -0400 (EDT) Received: by wx-out-0102.google.com with SMTP id t12so482372wxc for ; Tue, 20 Jun 2006 08:00:34 -0700 (PDT) Received: by 10.70.78.15 with SMTP id a15mr8472903wxb; Tue, 20 Jun 2006 08:00:34 -0700 (PDT) Received: from ?192.168.1.120? ( [67.86.206.80]) by mx.gmail.com with ESMTP id i38sm6240778wxd.2006.06.20.08.00.31; Tue, 20 Jun 2006 08:00:33 -0700 (PDT) Message-ID: <44980D88.4050504@gmail.com> Date: Tue, 20 Jun 2006 11:00:24 -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="------------040908010102090809000004" X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.586 tagged_above=-999 required=2 tests=[AWL=0.014, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.586 X-Spam-Level: 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: Tue, 20 Jun 2006 15:01:19 -0000 This is a multi-part message in MIME format. --------------040908010102090809000004 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit 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 --------------040908010102090809000004 Content-Type: application/x-gzip; name="lastfm.tar.gz" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="lastfm.tar.gz" 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 DLoAoAAA --------------040908010102090809000004-- From adam_zimmerman@sfu.ca Tue Jun 20 12:08: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 A3C493B107C for ; Tue, 20 Jun 2006 12:08: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 25447-03 for ; Tue, 20 Jun 2006 12:07:48 -0400 (EDT) Received: from pobox.sfu.ca (pobox.sfu.ca [142.58.101.28]) by menubar.gnome.org (Postfix) with ESMTP id 7D3293B0FA8 for ; Tue, 20 Jun 2006 12:04:05 -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 k5KG3uN0008689 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NOT) for ; Tue, 20 Jun 2006 09:03:57 -0700 (PDT) From: Adam Zimmerman To: rhythmbox-devel@gnome.org 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> Content-Type: text/plain Date: Tue, 20 Jun 2006 09:03:55 -0700 Message-Id: <1150819435.17540.17.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.487 tagged_above=-999 required=2 tests=[AWL=0.112, BAYES_00=-2.599] X-Spam-Score: -2.487 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: Tue, 20 Jun 2006 16:08:03 -0000 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@users.sourceforge.net Tue Jun 20 17:30:27 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 563AF3B0A36 for ; Tue, 20 Jun 2006 17:30:27 -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 15439-03 for ; Tue, 20 Jun 2006 17:30:23 -0400 (EDT) Received: from allele2.biol.berkeley.edu (allele2.Biol.Berkeley.EDU [128.32.118.82]) by menubar.gnome.org (Postfix) with ESMTP id 9F59C3B02F3 for ; Tue, 20 Jun 2006 17:30:23 -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 k5KLUMe7024086 for ; Tue, 20 Jun 2006 14:30:22 -0700 Received: (from alex@localhost) by allele2.biol.berkeley.edu (8.13.6/8.13.4/Submit) id k5KLUMRe024085; Tue, 20 Jun 2006 14:30:22 -0700 X-Authentication-Warning: allele2.biol.berkeley.edu: alex set sender to alexl@users.sourceforge.net using -f 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> <44980D88.4050504@gmail.com> From: Alex Lancaster Organization: Sourceforge Date: Tue, 20 Jun 2006 14:30:22 -0700 In-Reply-To: <44980D88.4050504@gmail.com> (Matt's message of "Tue, 20 Jun 2006 11:00:24 -0400") Message-ID: <75sllzh5w1.fsf@allele2.biol.berkeley.edu> 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: 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: Tue, 20 Jun 2006 21:30:27 -0000 >>>>> "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@users.sourceforge.net Tue Jun 20 17:36: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 406FC3B0C15 for ; Tue, 20 Jun 2006 17:36: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 15849-09 for ; Tue, 20 Jun 2006 17:36: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 6A8D13B0A73 for ; Tue, 20 Jun 2006 17:36: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 k5KLaJsV024116 for ; Tue, 20 Jun 2006 14:36:19 -0700 Received: (from alex@localhost) by allele2.biol.berkeley.edu (8.13.6/8.13.4/Submit) id k5KLaJOt024115; Tue, 20 Jun 2006 14:36: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: <46cb18130606200734w36f36216u73313119f680968b@mail.gmail.com> From: Alex Lancaster Organization: Sourceforge Date: Tue, 20 Jun 2006 14:36:19 -0700 In-Reply-To: <46cb18130606200734w36f36216u73313119f680968b@mail.gmail.com> (John Russell's message of "Tue, 20 Jun 2006 10:34:39 -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: Re: [Rhythmbox-devel] rb on pause doesn't seem to release the audio device 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 21:36:22 -0000 >>>>> "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@bigpond.com Tue Jun 20 21:35: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 ADDF23B0553 for ; Tue, 20 Jun 2006 21:35: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 29876-04 for ; Tue, 20 Jun 2006 21:35:32 -0400 (EDT) Received: from smtp.felicity.net.au (203-214-122-19.dyn.iinet.net.au [203.214.122.19]) by menubar.gnome.org (Postfix) with ESMTP id A4B553B03BC for ; Tue, 20 Jun 2006 21:35:31 -0400 (EDT) Received: from [203.33.109.252] ([203.33.109.252]) by smtp.felicity.net.au (8.13.6/8.13.6) with ESMTP id k5L1cXX8004967; Wed, 21 Jun 2006 11:38:34 +1000 From: Gawain Lynch To: doclivingston@gmail.com In-Reply-To: <1150764803.5180.14.camel@localhost.localdomain> References: <1150735119.6206.2.camel@ubuntu> <1150764803.5180.14.camel@localhost.localdomain> Content-Type: text/plain Date: Wed, 21 Jun 2006 11:34:54 +1000 Message-Id: <1150853695.21424.3.camel@legolas.felicity.net.au> Mime-Version: 1.0 X-Mailer: Evolution 2.6.2 (2.6.2-1.fc5.5) Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=0.165 tagged_above=-999 required=2 tests=[AWL=-0.486, BAYES_00=-2.599, FORGED_RCVD_HELO=0.135, RCVD_IN_SORBS_DUL=2.046, SPF_NEUTRAL=1.069] X-Spam-Score: 0.165 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: Wed, 21 Jun 2006 01:35:35 -0000 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 gawain.lynch@bigpond.com Wed Jun 21 06:05:24 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 DD7763B0DF2 for ; Wed, 21 Jun 2006 06:05: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 27724-02 for ; Wed, 21 Jun 2006 06:05:23 -0400 (EDT) Received: from smtp.felicity-group.com (203-214-122-19.dyn.iinet.net.au [203.214.122.19]) by menubar.gnome.org (Postfix) with ESMTP id 913893B0F3F for ; Wed, 21 Jun 2006 06:05:23 -0400 (EDT) Received: from [203.33.109.249] (unknown [203.33.109.249]) by smtp.felicity-group.com (Postfix) with ESMTP id 1297224060; Wed, 21 Jun 2006 20:08:57 +1000 (EST) From: Gawain Lynch To: Karsten.Schmiedecke@gmx.de In-Reply-To: <4498E8F9.1070308@gmx.de> References: <1150735119.6206.2.camel@ubuntu> <1150764803.5180.14.camel@localhost.localdomain> <1150853695.21424.3.camel@legolas.felicity.net.au> <4498E8F9.1070308@gmx.de> Content-Type: text/plain; charset=UTF-8 Date: Wed, 21 Jun 2006 20:02:31 +1000 Message-Id: <1150884151.6040.2.camel@legolas.felicity.net.au> Mime-Version: 1.0 X-Mailer: Evolution 2.6.2 (2.6.2-1.fc5.5) Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=0.17 tagged_above=-999 required=2 tests=[AWL=-0.481, BAYES_00=-2.599, FORGED_RCVD_HELO=0.135, RCVD_IN_SORBS_DUL=2.046, SPF_NEUTRAL=1.069] X-Spam-Score: 0.17 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: Wed, 21 Jun 2006 10:05:25 -0000 On Wed, 2006-06-21 at 08:36 +0200, Karsten Schmiedecke wrote: > Gawain Lynch wrote: > > 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... > > But aren't "Volumes" separate Albums, too? Like for "Caf del Mar, > Volumen 1" there's a different artwork than "Caf del Mar, Volumen 2". > > -karsten Yes, but if I have ripped it and named it "Volume 2" but the database has it listed as "Vol. 2" I won't get the album art. Gawain From alexl@users.sourceforge.net Wed Jun 21 07:34: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 DAA173B0BF9 for ; Wed, 21 Jun 2006 07:34: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 00421-03 for ; Wed, 21 Jun 2006 07:34:30 -0400 (EDT) Received: from allele2.biol.berkeley.edu (allele2.Biol.Berkeley.EDU [128.32.118.82]) by menubar.gnome.org (Postfix) with ESMTP id 0F6D13B0DE3 for ; Wed, 21 Jun 2006 07:34:29 -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 k5LBYSd0029779 for ; Wed, 21 Jun 2006 04:34:28 -0700 Received: (from alex@localhost) by allele2.biol.berkeley.edu (8.13.6/8.13.4/Submit) id k5LBYSDu029778; Wed, 21 Jun 2006 04:34: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: <1150735119.6206.2.camel@ubuntu> <1150764803.5180.14.camel@localhost.localdomain> <1150853695.21424.3.camel@legolas.felicity.net.au> <4498E8F9.1070308@gmx.de> <1150884151.6040.2.camel@legolas.felicity.net.au> From: Alex Lancaster Organization: Sourceforge Date: Wed, 21 Jun 2006 04:34:28 -0700 In-Reply-To: <1150884151.6040.2.camel@legolas.felicity.net.au> (Gawain Lynch's message of "Wed, 21 Jun 2006 20:02:31 +1000") 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.589 tagged_above=-999 required=2 tests=[AWL=0.010, BAYES_00=-2.599] X-Spam-Score: -2.589 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: Wed, 21 Jun 2006 11:34:33 -0000 >>>>> "GL" =3D=3D Gawain Lynch writes: [...] >> But aren't "Volumes" separate Albums, too? Like for "Caf=E9 del Mar, >> Volumen 1" there's a different artwork than "Caf=E9 del Mar, Volumen >> 2". GL> Yes, but if I have ripped it and named it "Volume 2" but the GL> database has it listed as "Vol. 2" I won't get the album art. The most robust and exhaustive way to deal with might be: 1. If an exact match is found, use that. 2. Flag any album that ends with a variant of "volume", i.e. with a regular expression resembling: [Vv]ol\(.|ume\)? ?[0-9]+$ That would catch: Volume 2 Volume2 Vol 2 Vol. 2 Vol.2 Note: "volume X" must be the last part of the string to avoid false positive matches. 3. Substitute the original pattern for each of the possible variants and search the db for that (new) pattern. e.g. as in the example above, you originally had "Volume 2", you would try substituting "Vol 2", then "Vol. 2", etc. Likewise if you had originally had "Vol. 2" and it didn't match exactly, you would try "Volume 2". 4. Take the first hit that works. ("Vol. 2" in the above example). It's not pretty, but that's tagging for you. Ideally every CD would have a unique MusicBrainz ID and associated cover art. Alex From adam_zimmerman@sfu.ca Wed Jun 21 14:03: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 644563B0535 for ; Wed, 21 Jun 2006 14:03: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 27004-07 for ; Wed, 21 Jun 2006 14:03:43 -0400 (EDT) Received: from pobox.sfu.ca (pobox.sfu.ca [142.58.101.28]) by menubar.gnome.org (Postfix) with ESMTP id A40FF3B00EE for ; Wed, 21 Jun 2006 14:03:43 -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 k5LI3dEq019040 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NOT) for ; Wed, 21 Jun 2006 11:03:40 -0700 (PDT) From: Adam Zimmerman To: rhythmbox-devel@gnome.org In-Reply-To: <1150819435.17540.17.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> <1150766634.5180.22.camel@localhost.localdomain> <1150819435.17540.17.camel@midnight> Content-Type: multipart/mixed; boundary="=-DhT/CPZa8gskKxzJv76l" Date: Wed, 21 Jun 2006 11:03:34 -0700 Message-Id: <1150913014.28266.17.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.457 tagged_above=-999 required=2 tests=[AWL=0.065, BAYES_00=-2.599, TW_GT=0.077] X-Spam-Score: -2.457 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: Wed, 21 Jun 2006 18:03:48 -0000 --=-DhT/CPZa8gskKxzJv76l Content-Type: text/plain Content-Transfer-Encoding: 7bit Alright, status update. On Tue, 2006-20-06 at 09:03 -0700, Adam Zimmerman wrote: > 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. Done. John says he'll post a zip version sometime soon. > > > 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. OK, I've written the code that checks this and downloads the file if it has changed. It just does a basic string comparison on the last-modified header gotten from a HTTP HEAD request, which seems to work. I've added a call to gobject.timeout_add to set a timer, which also seems to work. The albums are stored in zip files, so track-transfer isn't really an option. Instead, I'm using gnomevfs.xfer_uri (maybe switched to async if it doesn't crash) to download the zip file and extract it (untested, not even hooked up to ui, almost certainly doesn't work yet, as it doesn't create the directories). > > 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. well, it seems the source does, which is good enough, since I can get the entry view, and then the selected entries from that. -- 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/ -- "Engineering without management is art." -- Jeff Johnson --=-DhT/CPZa8gskKxzJv76l 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, gnome from gettext import gettext as _ import xml.sax, xml.sax.handler import urllib, httplib import datetime import zipfile magnatune_partner_id = "zimmerman" user_dir = gnome.user_dir_get() magnatune_dir = user_dir + "rhythmbox/magnatune/" magnatune_dir_uri = gnomevfs.URI(magnatune_dir) magnatune_song_info_uri = gnomevfs.URI("http://magnatune.com/info/song_info.xml") local_song_info_uri = gnomevfs.URI(magnatune_dir + "song_info.xml") lc_uri = gnomevfs.URI(magnatune_dir + "info_last_changed") ################################################ # 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 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'])) # entry.data['sku'] = self._track['albumsku'] 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']) # TODO: 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): _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) ev = self.source.get_entry_view() ev.connect_object("show_popup", self.show_popup_cb, self.source, 0) 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)) check_info() gobject.timeout_add(60 * 60 * 1000, self.check_info_updates) # every hour. ###gnomevfs.async.open(user_dir + "rhythmbox/magnatune/song_info.xml", self.open_callback) self.parser.parse(user_dir + "rhythmbox/magnatune/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 show_popup_cb(self, source, some_int, some_bool): # FIXME: find out what the int and bool are/do entry_view = source.get_entry_view() client = gconf.client_get_default() cc = {} cc['number'] = client.get_string("/apps/rhythmbox/plugins/magnatune/cc") cc['year'] = client.get_string("/apps/rhythmbox/plugins/magnatune/yy") cc['month'] = client.get_string("/apps/rhythmbox/plugins/magnatune/mm") name = client.get_string("/apps/rhythmbox/plugins/magnatune/name") email = client.get_string("/apps/rhythmbox/plugins/magnatune/email") #sku = entry_view.get_selected_entries()[0].data['sku'] # just use the sku for the first track selected. #attach action: buy_track(sku, amount, cc, name, email, format) #source.show_popup("/MagnatuneSourcePopup") def check_info_updates(self): if check_info(): # FIXME: is there a better way of doing this? self.db.entry_delete_by_type(self.entry_type) self.db.commit() self.parser.parse(user_dir + "rhythmbox/magnatune/song_info.xml") return True # keep running the method every hour class MagnatuneSource(rb.BrowserSource): def __init__(self): rb.Source.__init__(self) gobject.type_register(MagnatuneSource) ################################################ # Methods for downloading the song info # ################################################ def download_info(): gnomevfs.xfer_uri(magnatune_song_info_uri, local_song_info_uri, xfer_options=gnomevfs.XFER_DEFAULT, error_mode=gnomevfs.XFER_ERROR_MODE_ABORT, overwrite_mode=gnomevfs.XFER_OVERWRITE_MODE_REPLACE, progress_callback=progress_info_cb, data=0x1234) def progress_info_cb(info, data): assert data == 0x1234 try: print "%s: %f %%\r" % (info.target_name, info.bytes_copied/float(info.bytes_total)*100), except Exception, ex: # Sometimes the method throws an exception, for no apparent reason pass return True def check_info(): # returns whether or not info has changed if not gnomevfs.exists(magnatune_dir_uri): gnomevfs.make_directory(magnatune_dir_uri, 0755) if not gnomevfs.exists(lc_uri): t = gnomevfs.create(lc_uri, open_mode=gnomevfs.OPEN_WRITE) t.write("never") # there needs to be something in the file, otherwise it throws an exception when read from t.close() conn = httplib.HTTPConnection("magnatune.com") conn.request("HEAD", "/info/song_info.xml") resp = conn.getresponse() headers = resp.getheaders() resp.close() conn.close() for header in headers: if header[0] == "last-modified": modified_header = header[1] lc_file = gnomevfs.open(lc_uri) last_changed = lc_file.read(100) # file should be less than 100 chars lc_file.close() if not last_changed.strip() == modified_header.strip(): download_info() lc_file = gnomevfs.open(lc_uri, open_mode=gnomevfs.OPEN_WRITE) lc_file.write(modified_header) lc_file.close() return True return False ################################################ # Purchasing code. # ################################################ class BuyAlbumHandler(xml.sax.handler.ContentHandler): # Class to download the track, etc. format_map = { 'ogg' : 'URL_OGGZIP', 'flac' : 'URL_FLACZIP', 'wav' : 'URL_WAVZIP', 'mp3-cbr' : 'URL_128KMP3ZIP', 'mp3-vbr' : 'URL_VBRZIP' } def __init__(self, format): xml.sax.handler.ContentHandler.__init__(self) self._format_tag = format_map[format] # format of audio to download def startElement(self, name, attrs): self._text = "" def endElement(self, name): if name == "ERROR": # Something went wrong. Display error message to user. raise MagnatuneError(self._text) elif name == "DL_USERNAME": self.username = self._text elif name == "DL_PASSWORD": self.password = self._text elif name == self._format_tag: self.url = self._text def characters(self, content): self._text = self._text + content def buy_track(sku, amount, cc, name, email, format): # 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': sku, 'amount': amount, 'cc': cc['number'], 'yy': cc['year'], 'mm': cc['month'], 'name': name, 'email':email }) buy_album_handler = BuyAlbumHandler(format) # so we can get the url and auth info xml.sax.parse(url, buy_album_handler) audio_dl_uri = gnomevfs.URI(buy_album_handler.url.replace(" ", "%20")) # some parts of the returned url are escaped, some aren't. TODO: Properly quote just the filename part of the path audio_dl_uri.user_name = buy_album_handler.username audio_dl_uri.password = buy_album_handler.password # Download the album and unzip it into the library library_location = client.get_list("/apps/rhythmbox/library_locations")[0] # Just use the first library location to_file = gnomevfs.URI(library_location + "/" + audio_dl_uri.short_name) out_file = to_file.__str__() gnomevfs.xfer_uri(audio_dl_uri, to_file, xfer_options=gnomevfs.XFER_DEFAULT, error_mode=gnomevfs.XFER_ERROR_MODE_ABORT, overwrite_mode=gnomevfs.XFER_OVERWRITE_MODE_ABORT, progress_callback=progress_info_cb, data=0x1234) # this will take a LONG time. album = zipfile.ZipFile(out_file) for track in album.namelist(): out = gnomevfs.open(gnomevfs.URI(library_location + "/" + track), open_mode=gnomevfs.OPEN_MODE_WRITE) # FIXME: directories will need to be created first out.write(album.read(track)) out.close() album.close() gnomevfs.unlink(to_file) class MagnatuneError(Exception): pass ################################################ # Magnatune Logo. # ################################################ # (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 "................................", "................................", "................................", "................................", "................................", "................................", "............++@@@@++............", "..........+@@@@@@@@@@+..........", ".........+@@@+....+@@@+.........", "........+@@+...++...+@@+........", ".......+@@+....@@....+@@+.......", ".......@@+.....@@.....+@@.......", "......+@@......@@......@@+......", "......+@+......@@......+@+......", "......@@...@@..@@..@@...@@......", "......@@...@@+.@@.+@@...@@......", "......@@...@@+.@@.+@@...@@......", "......@@...@@+.@@.+@@...@@......", "......+@+..@@+.@@.+@@..+@+......", "......+@@..@@+.@@.+@@..@@+......", ".......@@+.@@+.@@.+@@.+@@.......", ".......+@@+.+..+...+.+@@+.......", "........+@@+........+@@+........", ".........+@@@+....+@@@+.........", "..........+@@@@@@@@@@+..........", "............++@@@@++............", "................................", "................................", "................................", "................................", "................................", "................................" ] ### ### Async callbacks ### # 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) ### ### preferences, ugly and gross. Someone else who knows what they're doing should probably fix this. Should probably be glade too. ### # 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) --=-DhT/CPZa8gskKxzJv76l-- From brent@heyes.co.uk Wed Jun 21 15:19: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 9F12F3B041B for ; Wed, 21 Jun 2006 15:19: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 32127-03 for ; Wed, 21 Jun 2006 15:19:34 -0400 (EDT) Received: from ns.thishost.net (ns.thishost.net [217.199.169.69]) by menubar.gnome.org (Postfix) with ESMTP id 1DC313B035A for ; Wed, 21 Jun 2006 15:19:33 -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 k5LJKLs29773 for ; Wed, 21 Jun 2006 20:20:21 +0100 Message-ID: <44999BBF.1070208@heyes.co.uk> Date: Wed, 21 Jun 2006 20:19:27 +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.597 tagged_above=-999 required=2 tests=[AWL=-0.857, BAYES_20=-0.74] X-Spam-Score: -1.597 X-Spam-Level: Subject: [Rhythmbox-devel] Change Rhythmbox gstreamer 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, 21 Jun 2006 19:19:35 -0000 Hey guys, Is there any way to customise the gstreamer pipeline for Rhythmbox only without affecting the global setting? Thanks, - Brent From brent@heyes.co.uk Thu Jun 22 03:52: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 A1D093B02DB for ; Thu, 22 Jun 2006 03:52: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 06020-07 for ; Thu, 22 Jun 2006 03:52:36 -0400 (EDT) Received: from ns.thishost.net (ns.thishost.net [217.199.169.69]) by menubar.gnome.org (Postfix) with ESMTP id E9EDF3B0563 for ; Thu, 22 Jun 2006 03:52:35 -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 k5M7rEs30277 for ; Thu, 22 Jun 2006 08:53:24 +0100 Message-ID: <449A4C33.6090501@heyes.co.uk> Date: Thu, 22 Jun 2006 08:52:19 +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=-2.512 tagged_above=-999 required=2 tests=[AWL=0.087, BAYES_00=-2.599] X-Spam-Score: -2.512 X-Spam-Level: Subject: [Rhythmbox-devel] Cannot import M4A with chapters 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, 22 Jun 2006 07:52:38 -0000 Hey guys, Is there anyway to get Rhythmbox to import and play m4a files with chapters? Thanks, -Brent From doclivingston@gmail.com Thu Jun 22 04:24: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 A656E3B02D2 for ; Thu, 22 Jun 2006 04:24: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 08348-04 for ; Thu, 22 Jun 2006 04:24:21 -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 AE3673B01E2 for ; Thu, 22 Jun 2006 04:24:21 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id s49so245017pyc for ; Thu, 22 Jun 2006 01:24:21 -0700 (PDT) Received: by 10.35.9.15 with SMTP id m15mr818663pyi; Thu, 22 Jun 2006 01:24:21 -0700 (PDT) Received: from alyrion.local ( [144.134.101.144]) by mx.gmail.com with ESMTP id s72sm672424pyc.2006.06.22.01.24.19; Thu, 22 Jun 2006 01:24:20 -0700 (PDT) From: "James \"Doc\" Livingston" To: rhythmbox-devel@gnome.org In-Reply-To: <449A4C33.6090501@heyes.co.uk> References: <449A4C33.6090501@heyes.co.uk> Content-Type: text/plain Date: Thu, 22 Jun 2006 18:24:15 +1000 Message-Id: <1150964655.5178.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=-1.74 tagged_above=-999 required=2 tests=[AWL=-0.698, BAYES_00=-2.599, RCVD_IN_BL_SPAMCOP_NET=1.558, SPF_PASS=-0.001] X-Spam-Score: -1.74 X-Spam-Level: Subject: Re: [Rhythmbox-devel] Cannot import M4A with chapters 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: Thu, 22 Jun 2006 08:24:22 -0000 On Thu, 2006-06-22 at 08:52 +0100, Brent Heyes wrote: > Is there anyway to get Rhythmbox to import and play m4a files with chapters? Rhythmbox should be able to import them if GStreamer can read them, although without the actual chapter support. Can you try running the following from a terminal and seeing if it works? (using the actual path to your file) gst-launch playbin uri=file:///path/to/my/file/m4a Cheers, James "Doc" Livingston -- "can't go mucking with a `void *'" -- MPW C error message From doclivingston@gmail.com Thu Jun 22 05:38: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 62C723B00ED for ; Thu, 22 Jun 2006 05:38: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 13368-01 for ; Thu, 22 Jun 2006 05:38:09 -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 B0C4D3B021B for ; Thu, 22 Jun 2006 05:38:08 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id 39so267310pyu for ; Thu, 22 Jun 2006 02:38:08 -0700 (PDT) Received: by 10.35.20.14 with SMTP id x14mr884844pyi; Thu, 22 Jun 2006 02:38:07 -0700 (PDT) Received: from alyrion.local ( [144.139.19.209]) by mx.gmail.com with ESMTP id i72sm776509pye.2006.06.22.02.38.04; Thu, 22 Jun 2006 02:38:07 -0700 (PDT) From: "James \"Doc\" Livingston" To: Rhythmbox-devel list In-Reply-To: <449A5F41.7000803@heyes.co.uk> References: <449A4C33.6090501@heyes.co.uk> <1150964655.5178.6.camel@localhost.localdomain> <449A5F41.7000803@heyes.co.uk> Content-Type: text/plain Date: Thu, 22 Jun 2006 19:37:58 +1000 Message-Id: <1150969078.5186.5.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.315 tagged_above=-999 required=2 tests=[AWL=0.285, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.315 X-Spam-Level: Subject: Re: [Rhythmbox-devel] Cannot import M4A with chapters 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: Thu, 22 Jun 2006 09:38:10 -0000 On Thu, 2006-06-22 at 10:13 +0100, Brent Heyes wrote: > (gst-launch-0.10:21703): GStreamer-CRITICAL **: gst_uri_get_protocol: > assertion `gst_uri_is_valid (uri)' failed > ERROR: Pipeline doesn't want to pause. > ERROR: from element /playbin0: Invalid URI "/home/brent/Test.m4a". > Additional debug info: > gstplaybasebin.c(1480): setup_source (): /playbin0 > Setting pipeline to NULL ... > FREEING pipeline ... Sorry, I should have mentioned that the "file://" at the start was important, "/home/brent/..." isn't a URI (it's a path) > BTW... /home/brent/Test.m4a is a valid M4A file with chapters. > > I can play the file in totem-gstreamer. If it works in totem-gstreamer, then it's not a gstreamer problem. Could you run "GST_DEBUG=*:4 GST_DEBUG_NO_COLOR=1 rhythmbox -d >rb.log 2>&1; bzip2 rb.log" and then file a bug and attach the file "rb.log.bz2" that it created? Cheers, James "Doc" Livingston -- Networks are like sewers ... My job is to make sure your data goes away when you flush, and to stop the rats climbing into your toilet through the pipes. (Tanuki, describing network administration.) From gawain.lynch@bigpond.com Thu Jun 22 08:51:01 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 A7F8D3B0606 for ; Thu, 22 Jun 2006 08:51:01 -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 27073-09 for ; Thu, 22 Jun 2006 08:50:58 -0400 (EDT) Received: from mail-ihug.icp-qv1-irony4.iinet.net.au (ihug-mail.icp-qv1-irony4.iinet.net.au [203.59.1.198]) by menubar.gnome.org (Postfix) with ESMTP id 581833B025B for ; Thu, 22 Jun 2006 08:50:57 -0400 (EDT) Received: from 203-214-122-19.dyn.iinet.net.au (HELO smtp.felicity-group.com) ([203.214.122.19]) by mail-ihug.icp-qv1-irony4.iinet.net.au with ESMTP; 22 Jun 2006 20:50:54 +0800 X-BrightmailFiltered: true X-Brightmail-Tracker: AAAAAA== X-IronPort-AV: i="4.06,166,1149436800"; d="scan'208"; a="786608449:sNHT33720348" Received: from [203.33.109.249] (unknown [203.33.109.249]) by smtp.felicity-group.com (Postfix) with ESMTP id C779024059; Thu, 22 Jun 2006 22:54:37 +1000 (EST) From: Gawain Lynch To: Alex Lancaster In-Reply-To: References: <1150735119.6206.2.camel@ubuntu> <1150764803.5180.14.camel@localhost.localdomain> <1150853695.21424.3.camel@legolas.felicity.net.au> <4498E8F9.1070308@gmx.de> <1150884151.6040.2.camel@legolas.felicity.net.au> Content-Type: text/plain; charset=utf-8 Date: Thu, 22 Jun 2006 22:50:22 +1000 Message-Id: <1150980623.2998.0.camel@legolas.felicity.net.au> Mime-Version: 1.0 X-Mailer: Evolution 2.6.2 (2.6.2-1.fc5.5) Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=0.197 tagged_above=-999 required=2 tests=[AWL=-0.454, BAYES_00=-2.599, FORGED_RCVD_HELO=0.135, RCVD_IN_SORBS_DUL=2.046, SPF_NEUTRAL=1.069] X-Spam-Score: 0.197 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: Thu, 22 Jun 2006 12:51:01 -0000 On Wed, 2006-06-21 at 04:34 -0700, Alex Lancaster wrote: > >>>>> "GL" == Gawain Lynch writes: > [...] > > >> But aren't "Volumes" separate Albums, too? Like for "Caf del Mar, > >> Volumen 1" there's a different artwork than "Caf del Mar, Volumen > >> 2". > > GL> Yes, but if I have ripped it and named it "Volume 2" but the > GL> database has it listed as "Vol. 2" I won't get the album art. > > The most robust and exhaustive way to deal with might be: > > 1. If an exact match is found, use that. > > 2. Flag any album that ends with a variant of "volume", i.e. with a > regular expression resembling: > > [Vv]ol\(.|ume\)? ?[0-9]+$ > > That would catch: > > Volume 2 > Volume2 > Vol 2 > Vol. 2 > Vol.2 > > Note: "volume X" must be the last part of the string to avoid false > positive matches. > > 3. Substitute the original pattern for each of the possible variants > and search the db for that (new) pattern. > > e.g. as in the example above, you originally had "Volume 2", you would > try substituting "Vol 2", then "Vol. 2", etc. Likewise if you had > originally had "Vol. 2" and it didn't match exactly, you would try > "Volume 2". > > 4. Take the first hit that works. ("Vol. 2" in the above example). > > It's not pretty, but that's tagging for you. Ideally every CD would > have a unique MusicBrainz ID and associated cover art. > > Alex That would work for me :-) From adam_zimmerman@sfu.ca Fri Jun 23 19:16: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 83F553B0524 for ; Fri, 23 Jun 2006 19:16: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 10791-04 for ; Fri, 23 Jun 2006 19:16:23 -0400 (EDT) Received: from pobox.sfu.ca (pobox.sfu.ca [142.58.101.28]) by menubar.gnome.org (Postfix) with ESMTP id 053E33B0971 for ; Fri, 23 Jun 2006 19:16:22 -0400 (EDT) Received: from [192.168.1.106] (d154-20-165-140.bchsia.telus.net [154.20.165.140]) (authenticated bits=0) by pobox.sfu.ca (8.13.6/8.13.5/SFU-6.0G) with ESMTP id k5NNGJGN017682 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NOT) for ; Fri, 23 Jun 2006 16:16:20 -0700 (PDT) From: Adam Zimmerman To: rhythmbox-devel@gnome.org In-Reply-To: <1150913014.28266.17.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> <1150766634.5180.22.camel@localhost.localdomain> <1150819435.17540.17.camel@midnight> <1150913014.28266.17.camel@midnight> Content-Type: multipart/mixed; boundary="=-nh4eusBO2ao1XrEAH8+9" Date: Fri, 23 Jun 2006 16:16:18 -0700 Message-Id: <1151104578.24807.39.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.461 tagged_above=-999 required=2 tests=[AWL=0.061, BAYES_00=-2.599, TW_GT=0.077] X-Spam-Score: -2.461 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, 23 Jun 2006 23:16:26 -0000 --=-nh4eusBO2ao1XrEAH8+9 Content-Type: text/plain Content-Transfer-Encoding: 7bit Sweet! Why didn't I come across this[1] blog post sooner? The reading code is now fully non-blocking thanks to gobject.add_idle, except for check_info() which doesn't seem to take very long (using gnomevfs.get_file_info instead of httplib helped). I'm not sure whether I want to keep it so that the source is added to as song_info.xml is being downloaded. It seems like it takes a long time to add all the tracks (though it may just be my perception as to whether it's slower than adding after downloading), but on the other hand, the source doesn't sit empty for 2 minutes. The amounts read in each of the idle methods (64KB while downloading, 128KB when loading from disk) can probably be tweaked as well, to give the best balance between a fully responsive UI and being efficient when doing I/O. I'm not quite certain how to associate an action with a popup menu. I can see that I need to add some glade bits to rhythmbox-ui.xml and then call source.show_popup("mygladestuff") in the show_popup callback, right? So how do I associate a method call with that popup menu item? And how do I pass arguments to it? Is it like gobject.add_idle, where I just add arguments after the method? Thanks so much. -Adam PS: does anyone know what the int and bool passed to the show_popup callback are? [1] http://gnomerocksmyworld.blogspot.com/2006/05/getting-off-my-lazy-arse.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/ -- In Pocatello, Idaho, a law passed in 1912 provided that "The carrying of concealed weapons is forbidden, unless same are exhibited to public view." --=-nh4eusBO2ao1XrEAH8+9 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, gnome from gettext import gettext as _ import xml.sax, xml.sax.handler import urllib import datetime import zipfile magnatune_partner_id = "zimmerman" user_dir = gnome.user_dir_get() magnatune_dir = user_dir + "rhythmbox/magnatune/" magnatune_dir_uri = gnomevfs.URI(magnatune_dir) magnatune_song_info_uri = gnomevfs.URI("http://magnatune.com/info/song_info.xml") local_song_info_uri = gnomevfs.URI(magnatune_dir + "song_info.xml") lc_uri = gnomevfs.URI(magnatune_dir + "info_last_changed") ################################################ # 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 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'])) # entry.data['sku'] = self._track['albumsku'] 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']) # TODO: 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): info_file = None remote_info_file = 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) ev = self.source.get_entry_view() ev.connect_object("show_popup", self.show_popup_cb, self.source, 0) 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)) if check_info(): gobject.idle_add(self.idle_download_info) else: gobject.idle_add(self.idle_load_info) gobject.timeout_add(6 * 60 * 60 * 1000, self.check_info_updates) # every 6 hours. 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 show_popup_cb(self, source, some_int, some_bool): # FIXME: find out what the int and bool are entry_view = source.get_entry_view() client = gconf.client_get_default() cc = {} cc['number'] = client.get_string("/apps/rhythmbox/plugins/magnatune/cc") cc['year'] = client.get_string("/apps/rhythmbox/plugins/magnatune/yy") cc['month'] = client.get_string("/apps/rhythmbox/plugins/magnatune/mm") name = client.get_string("/apps/rhythmbox/plugins/magnatune/name") email = client.get_string("/apps/rhythmbox/plugins/magnatune/email") #sku = entry_view.get_selected_entries()[0].data['sku'] # just use the sku for the first track selected. #attach action: buy_track(sku, amount, cc, name, email, format) #source.show_popup("/MagnatuneSourcePopup") def check_info_updates(self): # TODO: if possible, make it so that the updated file is downloaded first, then the entries are switched if check_info(): self.db.entry_delete_by_type(self.entry_type) self.db.commit() gobject.idle_add(self.idle_download_info) return True def idle_load_info(self): if self.info_file == None: self.info_file = gnomevfs.open(local_song_info_uri) try: data = self.info_file.read(128 * 1024) self.parser.feed(data) return True except gnomevfs.EOFError: self.info_file.close() self.info_file = None return False def idle_download_info(self): if self.info_file == None: self.remote_info_file = gnomevfs.open(magnatune_song_info_uri) self.info_file = gnomevfs.create(local_song_info_uri, open_mode=gnomevfs.OPEN_WRITE) try: data = self.remote_info_file.read(64 * 1024) self.parser.feed(data) self.info_file.write(data) return True except gnomevfs.EOFError: self.remote_info_file.close() self.info_file.close() self.remote_info_file = None self.info_file = None return False class MagnatuneSource(rb.BrowserSource): def __init__(self): rb.Source.__init__(self) gobject.type_register(MagnatuneSource) ################################################ # Methods for downloading the song info # ################################################ def check_info(): # returns whether or not info has changed if not gnomevfs.exists(magnatune_dir_uri): gnomevfs.make_directory(magnatune_dir_uri, 0755) if not gnomevfs.exists(lc_uri): t = gnomevfs.create(lc_uri, open_mode=gnomevfs.OPEN_WRITE) t.write("never") # there needs to be something in the file, otherwise it throws an exception when read from t.close() modified = str(gnomevfs.get_file_info(magnatune_song_info_uri).mtime) lc_file = gnomevfs.open(lc_uri) last_changed = lc_file.read(100) # file should be less than 100 chars lc_file.close() if not last_changed.strip() == modified.strip(): lc_file = gnomevfs.open(lc_uri, open_mode=gnomevfs.OPEN_WRITE) lc_file.write(modified) lc_file.close() return True return False ################################################ # Purchasing code. # ################################################ class BuyAlbumHandler(xml.sax.handler.ContentHandler): # Class to download the track, etc. format_map = { 'ogg' : 'URL_OGGZIP', 'flac' : 'URL_FLACZIP', 'wav' : 'URL_WAVZIP', 'mp3-cbr' : 'URL_128KMP3ZIP', 'mp3-vbr' : 'URL_VBRZIP' } def __init__(self, format): xml.sax.handler.ContentHandler.__init__(self) self._format_tag = format_map[format] # format of audio to download def startElement(self, name, attrs): self._text = "" def endElement(self, name): if name == "ERROR": # Something went wrong. Display error message to user. raise MagnatuneError(self._text) elif name == "DL_USERNAME": self.username = self._text elif name == "DL_PASSWORD": self.password = self._text elif name == self._format_tag: self.url = self._text def characters(self, content): self._text = self._text + content def buy_track(sku, amount, cc, name, email, format): # 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': sku, 'amount': amount, 'cc': cc['number'], 'yy': cc['year'], 'mm': cc['month'], 'name': name, 'email':email }) buy_album_handler = BuyAlbumHandler(format) # so we can get the url and auth info xml.sax.parse(url, buy_album_handler) audio_dl_uri = gnomevfs.URI(buy_album_handler.url.replace(" ", "%20")) # some parts of the returned url are escaped, some aren't. TODO: Properly quote just the filename part of the path audio_dl_uri.user_name = buy_album_handler.username audio_dl_uri.password = buy_album_handler.password # Download the album and unzip it into the library library_location = client.get_list("/apps/rhythmbox/library_locations")[0] # Just use the first library location to_file = gnomevfs.URI(library_location + "/" + audio_dl_uri.short_name) out_file = to_file.__str__() gnomevfs.xfer_uri(audio_dl_uri, to_file, xfer_options=gnomevfs.XFER_DEFAULT, error_mode=gnomevfs.XFER_ERROR_MODE_ABORT, overwrite_mode=gnomevfs.XFER_OVERWRITE_MODE_ABORT, progress_callback=progress_info_cb, data=0x1234) # this will take a LONG time. album = zipfile.ZipFile(out_file) for track in album.namelist(): out = gnomevfs.open(gnomevfs.URI(library_location + "/" + track), open_mode=gnomevfs.OPEN_MODE_WRITE) # FIXME: directories will need to be created first out.write(album.read(track)) out.close() album.close() gnomevfs.unlink(to_file) class MagnatuneError(Exception): pass def progress_info_cb(info, data): assert data == 0x1234 try: print "%s: %f %%\r" % (info.target_name, info.bytes_copied/float(info.bytes_total)*100), except Exception, ex: # Sometimes the method throws an exception, for no apparent reason pass return True ################################################ # Magnatune Logo. # ################################################ # (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. Should probably be glade too. ### # 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) --=-nh4eusBO2ao1XrEAH8+9-- From alexl@users.sourceforge.net Fri Jun 23 19:50: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 F24EB3B0181 for ; Fri, 23 Jun 2006 19:50:01 -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 12182-10 for ; Fri, 23 Jun 2006 19:49:59 -0400 (EDT) Received: from allele2.biol.berkeley.edu (allele2.Biol.Berkeley.EDU [128.32.118.82]) by menubar.gnome.org (Postfix) with ESMTP id C70A03B011B for ; Fri, 23 Jun 2006 19:49:58 -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 k5NNnwif018504 for ; Fri, 23 Jun 2006 16:49:58 -0700 Received: (from alex@localhost) by allele2.biol.berkeley.edu (8.13.6/8.13.4/Submit) id k5NNnvvJ018503; Fri, 23 Jun 2006 16:49:57 -0700 X-Authentication-Warning: allele2.biol.berkeley.edu: alex set sender to alexl@users.sourceforge.net using -f 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> <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> <1150819435.17540.17.camel@midnight> <1150913014.28266.17.camel@midnight> <1151104578.24807.39.camel@midnight> From: Alex Lancaster Organization: Sourceforge Date: Fri, 23 Jun 2006 16:49:57 -0700 In-Reply-To: <1151104578.24807.39.camel@midnight> (Adam Zimmerman's message of "Fri, 23 Jun 2006 16:16:18 -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.589 tagged_above=-999 required=2 tests=[AWL=0.010, BAYES_00=-2.599] X-Spam-Score: -2.589 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, 23 Jun 2006 23:50:02 -0000 >>>>> "AZ" == Adam Zimmerman writes: AZ> Sweet! Why didn't I come across this[1] blog post sooner? The AZ> reading code is now fully non-blocking thanks to gobject.add_idle, AZ> except for check_info() which doesn't seem to take very long AZ> (using gnomevfs.get_file_info instead of httplib helped). It's time to transfer detailed technical discussion on this plugin to Bugzilla, IMHO. Will save bandwidth on sending multiple versions of the file to the mailing list, can be easily tracked and provide a centralised point of access for all the info. I've opened a bug and transferred the latest Python file there: http://bugzilla.gnome.org/345783 Thanks, Alex From doclivingston@gmail.com Sat Jun 24 03:19:41 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 C1E943B01AD for ; Sat, 24 Jun 2006 03:19:41 -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 29560-10 for ; Sat, 24 Jun 2006 03:19:40 -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 7053F3B0160 for ; Sat, 24 Jun 2006 03:19:40 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id f28so878776pyf for ; Sat, 24 Jun 2006 00:19:39 -0700 (PDT) Received: by 10.35.20.14 with SMTP id x14mr3236792pyi; Sat, 24 Jun 2006 00:19:39 -0700 (PDT) Received: from alyrion.local ( [144.134.101.25]) by mx.gmail.com with ESMTP id h41sm934606pyh.2006.06.24.00.19.37; Sat, 24 Jun 2006 00:19:39 -0700 (PDT) From: "James \"Doc\" Livingston" To: rhythmbox-devel@gnome.org In-Reply-To: <1151104578.24807.39.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> <1150766634.5180.22.camel@localhost.localdomain> <1150819435.17540.17.camel@midnight> <1150913014.28266.17.camel@midnight> <1151104578.24807.39.camel@midnight> Content-Type: text/plain Date: Sat, 24 Jun 2006 17:19:33 +1000 Message-Id: <1151133573.5031.46.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.404 tagged_above=-999 required=2 tests=[AWL=-0.004, BAYES_00=-2.599, DNS_FROM_RFC_ABUSE=0.2, SPF_PASS=-0.001] X-Spam-Score: -2.404 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: Sat, 24 Jun 2006 07:19:42 -0000 On Fri, 2006-06-23 at 16:16 -0700, Adam Zimmerman wrote: > I'm not sure whether I want to keep it so that the source is added to as > song_info.xml is being downloaded. It seems like it takes a long time to > add all the tracks (though it may just be my perception as to whether > it's slower than adding after downloading), but on the other hand, the > source doesn't sit empty for 2 minutes. One option would be to hide entry entry view while this is happening, and have some "downloading music store info, please wait screen instead". Something like that may be useful anyway, if we wanted/needed to show some info about what MagnaTune is, tell people to be careful with their CC details, etc. > I'm not quite certain how to associate an action with a popup menu. I > can see that I need to add some glade bits to rhythmbox-ui.xml and then > call source.show_popup("mygladestuff") in the show_popup callback, > right? So how do I associate a method call with that popup menu item? > And how do I pass arguments to it? Is it like gobject.add_idle, where I > just add arguments after the method? Take a look at plugins/pythonconsole/pythonconsole.py, it adds a menu item to show the console. The only real difference is the UI data, e.g.: Then add an action "MagnaTuneDownload". > PS: does anyone know what the int and bool passed to the show_popup > callback are? With the current code: ev.connect_object("show_popup", self.show_popup_cb, self.source, 0) The int is the number 0 that you're passing, and the boolean is: true = right mouse button clicked on an entry, or menu button pressed false = rmb clicked on "empty space" in the entry view Usually you'd treat the case of it being false by showing the same menu as if you'd right-clicked on the source in the source list. I've got a patch for python entry-data working, and it's on bug 345795[0]. With that applied, you should be able to do "entry.data['sku'] = whatever" for any entry whose entry-type was registered from Python. The only issue I've noticed is overhead - it created a dictionary for every entry that you have accessed the "data" attribute on. For the number of tracks currently in MagnaTune, that would mean just under 1Mb of overhead. Another option would be to create you own diction for SKUs, and then do "sku_dict[entry] = whatever". That would only need one dictionary, instead of 6000. [0] http://bugzilla.gnome.org/show_bug.cgi?id=345795 Cheers, James "Doc" Livingston -- If USENET is anarchy, IRC is a paranoid schizophrenic after 6 days on speed. -- Chris "Saundo" Saunderson in asr. From doclivingston@gmail.com Sat Jun 24 08:26: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 0CD3A3B00A8 for ; Sat, 24 Jun 2006 08:26: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 13145-02 for ; Sat, 24 Jun 2006 08:26:37 -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 DC5F23B000F for ; Sat, 24 Jun 2006 08:26:36 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id f28so920430pyf for ; Sat, 24 Jun 2006 05:26:36 -0700 (PDT) Received: by 10.35.63.2 with SMTP id q2mr3473556pyk; Sat, 24 Jun 2006 05:26:36 -0700 (PDT) Received: from alyrion.local ( [144.134.102.10]) by mx.gmail.com with ESMTP id 55sm1466207pyf.2006.06.24.05.26.32; Sat, 24 Jun 2006 05:26:36 -0700 (PDT) From: "James \"Doc\" Livingston" To: rhythmbox-devel@gnome.org In-Reply-To: <1151104578.24807.39.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> <1150766634.5180.22.camel@localhost.localdomain> <1150819435.17540.17.camel@midnight> <1150913014.28266.17.camel@midnight> <1151104578.24807.39.camel@midnight> Content-Type: text/plain Date: Sat, 24 Jun 2006 22:26:29 +1000 Message-Id: <1151151989.5031.60.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.406 tagged_above=-999 required=2 tests=[AWL=-0.006, BAYES_00=-2.599, DNS_FROM_RFC_ABUSE=0.2, SPF_PASS=-0.001] X-Spam-Score: -2.406 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: Sat, 24 Jun 2006 12:26:38 -0000 On Fri, 2006-06-23 at 16:16 -0700, Adam Zimmerman wrote: > I'm not sure whether I want to keep it so that the source is added to as > song_info.xml is being downloaded. It seems like it takes a long time to > add all the tracks (though it may just be my perception as to whether > it's slower than adding after downloading), but on the other hand, the > source doesn't sit empty for 2 minutes. One idea would be to have the entry view hidden until it has been downloaded at least once, and have some kind of "MagnaTune intro" displayed instead. Displaying an empty track list probably isn't useful, so maybe we could have something displayed instead which said what MagnaTune was, a download progress indicator, and a "continue to track list" button (which would only be enabled once the download had finished). > I'm not quite certain how to associate an action with a popup menu. I > can see that I need to add some glade bits to rhythmbox-ui.xml and then > call source.show_popup("mygladestuff") in the show_popup callback, > right? So how do I associate a method call with that popup menu item? > And how do I pass arguments to it? Is it like gobject.add_idle, where I > just add arguments after the method? For Python plugins, it's easier to embed the GtkUIManager XML directly into the .py file, see plugins/pythonconsole/pythonconsole.py for an example of how to do it. You'd probably want something like the following (which I've based on BrowserSourceViewPopup) The "MagnatunePurchase" action would get the list of selected tracks from the entry view, and then do the purchasing stuff. > PS: does anyone know what the int and bool passed to the show_popup > callback are? The int is the 0 that you passed to connect_object(), and the boolean is "over_entry" which indicates whether the context menu is for an entry, or a click in "empty space". Basically if it's false you pop up the same menu you would for the impl_show_popup virtual function, and if it's true you pop up the "track context menu". Cheers, James "Doc" Livingston -- In God we Trust. All others must submit an X.509 certificate. 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, -- Loc 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. -- Loc 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 Frcinaux 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? :) -- Loc 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, Loc 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, -- Loc 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 Garca 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, Loc 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. -- Loc 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 Grundstrm, 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 Grundstrm 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 Grundstrm 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 Grundstrm ________________________________________ \ | 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, Dchern Und Hnden 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 iE6iPPF9HH5/h9+z8KPzK2MMz91OfnuIZwh1PkSaznsp3wAL56OXzVG+scSz5O+ghf0usnC+ BuhO5OtGPhprcPbnOemNc4R4EvYtsNOc7s4B8rgMpPNxQ54A+K2s6XjZGCvEYGKF/D1G+ljw fvBxssuDiLetHH+nleN/beXy6biVynfTDA2Vsh2JVXy8SnFprghDHuRPgG6w8fLOt/FyLSJO FGI5UZ603oT8t8P/cRuXQ7PhOeUJEk104Bwo25koT9M+I79Jsp0Rx2lwPb0G17OvpHOQEEGD 400knitEiChPWLuJNUL8A/ZdyP8J8v9M6VOEGCqPf5z09gh6zb488aKplMifjsvIv8XO/hvI b7DsD3Zul912Xh56UaYhT9D8KZyvFzg6hfPTXDiUfxKlT5PHgUhfivSHKF2e0L1EvECI3qls 75fK9lNpPoHpcvmI8sRuFvEiIZ6CXw/8XobfN/CzONhvpoP9Gh3sR++FJb8uB/vdBb91ks4h Mq6D2/85YoE8Xia73Hi+RZyfEIfeEescKrczJ6+fUcSQEJXEmbK/k12e6DY4uZ+0Obm99sP/ V5DeP23MksfJ4PQ07s9XQq9P4zg94GgXx6tycTtPBevAOeAC8Cpwg4vLe9bF9fuKOFtuJ27m eDfHv8PN5W8DdxDlTmNAOuuR6ay70tn/EOkGeR7gkfo02R89XO8ZHvZvBW/xoHzYP4D+mvLJ k9MfPdzuRz3c7oaX2z3Ny+2c4WV/mpeG6rvCy+vjZi/6kZe3v78RG+V25eXt8DUvr9ddXo7/ hZfj70P8dB/HCfg4Tj8f948SH/ePSh/3j8k+Lr8BvM7H5d3u4/X6CHGO3N583N494Gs+3t/t 9HF9vgC/JzbL8yk/lzPAz+WcA07yc71r/VzvkJ/r3eTnenf6sd/0Y7/p533E3WSfK88DoR/1 cz3+Cf+X4b9D0ibTPyPOk+1BbJX7c/JvE+II8mdlcL68DM6Xn8HphSC9gNSQPyZnky6U9SYO E+LiDN4vXAq/dtLyJLETegXpBTyDEsVfh/jPwP422Tvk/o90L7k9B7jfZwY4Tv8ALxe9dJbs YwK8XtTcdTL/FNILZT1IFwkRDnA7LgrwfvbaALfnDeR3OV+XsdgxbpfKv58WK8YJrRgf7Mtj W8RTwNPBUvBMcBw4CbwArAMbwDZwIbgUvB68D1wDPg5uBLeAL4HvgJ+AX4E/ggMtzCJwDFgJ TgEvAZvAReBN4B3gI+B6sAd8HfwI/BY8CtI4F7E3WACWgVXgBWAYjIDLwD+B94PrwC3ga+Bu cB/4C5hmY/YCh4BlYAU4CbwQbAL/D3wTfA/cDX4OfgN+D/4M/gJaDGYqmA4GwF5gX3AgeCpY DI4EzwQrwIlgDVgLXgzOApvAeeACcDF4NdgJdoN/BG8D7wEfAB8B/wb+A3wafBbcDr4Kvg3u BD8GvwT3gj+Ah8BjoGFHO4J5YAE4EhwPng/OAtvApeCN4L3gI+BGcAv4Fvg++BH4JXgY/BU0 UtAfQR+YDfYB+4MF4BngWHACOBmcBl4EzgQbwXlgBLwSvBbsAleBt4H3gWvBdeA28CXwTfB9 8GPwX+C34AHwCEiXjogpoBvMAHPBk8F88DQwCJ4JngfOAFvAK8DrwVvBB8EN4IfgHvBwtH4O ZibYHywGzwFrwBngPHAJ2A3eCT4KbgH/Cb4Mvgm+B+4GPwf3gFYnMx0sB88DQ2AbeA14J7gG 3Ay+BX4E7gGPgtlpaAewEBwNVoONYDu4HLwXfBTcBL4AfgZ+Bx4BU1zMHJBmeKPf7UHgUGKe 3N7BsfCbDPtU8ALYL4W9A/oK6E7oVdB3I9+fwQdh3wz7dvAtpL8H/Rn0V9A/Qh+DVpMhyHjp oN/N9oFu9G/wbKSPg66BngYdgr4UeiHiXQFeBfsy2G8DH4B9LfhX+D0N0oRslpOFeBH+O5C+ E/oL6G+gD0AfQzyaUo4YAHPAU8FhoJrhQeY7F3oKWIf0RrANXAz7UnAF+EfwHvitAdchfSP4 fDrWF/S74C747wG/h98RaJuH/VJBtwf90cP2PtCDoWleRWq/UqSXI30S8teAIaSH4UfTIlrk weiV0NfBrxtcCf/VsN8H/SD0VvBDpH8KvQ/a5mXt8nI8Lxjwsj0X9sFgKTgenAbOBFvAZeBK xLsZvA1x74Z9LfRj0E9APwP9Mvgu0j+A3gMeRNwj4G9IT/Oxf5aP9Sk+tg8EC2AfBVbArwb2 88H/gr0JbIHfEvAWpK+Dfgb5esDnYH8R9h3QO6G/gD4A/oZ0lx/rAwz4sT78bB8APQR6BHQF OBnpFyJ/HTgL9vlgB/yuhr4JvBnp9/q5/z0M/Sb4MbgXPATaMphe8DRwNFgJTgVD4FzwcnAZ uBK8H3wafAV8B/wE3AseBOk8kugHTwYLwCDYDHYEuJ0Wg0sD3B7Xwr4C+h7w0QBv1z3gm+Au 2D8H94E/gzTfCPllgUMzubxCcAx4NlgDv+mZnL8RjIBXwd4NPoD0h6HXQz8FbgNfQfw3wA+Q /iX0N+Ax0JLFzMziuH2z0A/B4UivBKcg/SKwHpwH++IsbtflWdzPVkLfiXLuBf+CfOvBTfDr gX4d3IH0jxFvD/TPiPNv8Bj83dlMfzb75UH3gx4KPQx6FPTYbK5/FdKnIP0C6JnQYeg26A7o a7K5ftdB35TN9foTeCv874b9AaSvBf8K+3rYn0F6D/gc7K/BvhPpu8FPYf8X7Puhf4u2Rw77 ZYG9c9hvEFicw/UvhR5L7CXEXdBrifKc7DHozdD/C70L/Ar81MLl0B/NCqfur3LhPioXxmN6 81tkyC8IXQY9DXo6dAR6EfRq6Nuh10FvhH4Degf0fugD0HTPDelM1LMIOgh9HvQ06PnQEehV 0Kuh10FvhH4Degf0AejD0JlW1rlWLD90GfQ06OnQ86Ej0DdCr4J+GPoxaDUelhJndDxsWHHx 8H6mv+LikqKRwbJRI4rk96Ii82dpMChZUjo8qDxnpl09vrqSZ7XBelV3WMX/DgxmBtXnEHGS 6K3s0bvWap+iGQa6vjx/2b78FeMPd43Ldxf3yE9H93j310el6b/pJdKia1q+T6Ya3eMdXUa+ MnSfe7i4p/PFSJZ3k9+7ie79EAVbI16Z9pZ3dc+y5/IvrtvWddC7aYpFWi3KuvezVbVdXy7b N6Sr7oCMZI7fcbi7w9219KiM3hXJN5Sps6dre2Sm+tp1Rn7X+P1UA5aoAyWsUEXHUqTj891m VxktZgyi6rJ4WaAsbV/dNs7/JK0MWm6Ei+S7u6rjOfe+smLjINVeVP/crrrDev2PFh+MtUyt W+Z3yDaLlyzr5JPFcwnUUeMV3N8to3WounQdVPHLZPvojZMrG6d7qaNbVa+zx7uc7r5coRYU iV1L4uV19kRqOw96l78q07tr+3S+FSndbOEl9FHr0OKplYy16o7VPaFpForNVuTa+8KqFZFB YkW0KPcWrcVMpe99UvUhY7uhblOMrkzl5+2skgqNfg6CI4TsfLFv0fVanR/rcVR+9/g+ctmC 0YXJVAXJRepHmbvRHMct1TcD5Ydyzdz7qrD4Lb6UDPk50BNw2Tx59GKjfGFzuFz0HiVbtjzx GO0a46Jhb7kANg+n273C5VITpbmUKXWQGhh3BCyWAPlQFnmOmR7LXSZPo9OkdMSlKyCtZ8jT NXeJypxuyMzRrJ4h0tiH5l9FDDtn8kUrRPMESH/KmHGKzD9MpgRQvJ0dMuPFu1zpLreLAmQV Sp+z3WwY7J4Y8FsyLHQRMdse87ZKmWOSMltuMFZ3kr1cllrp1Dtoap68YEKOPokFRYs5yR4P JOXJwYRS+wYTrP0K1QIlRjjFnlCV/i7pQzZ5jE7BJgaCbkrPj0c+203NLP7ujb0QTe0Vf8LP n9rl0zhzO13zpCeEDLuNnlUw3qU7Zw0PXSJONQbQyFmK7c8yKf0UugXVeID25Q7jBbr0a7c9 b5eGAc1koEEha6rtHUoZomLYZI0cdoPe1+9IjUYcSmOoKcZrdprDzG4Yp9LvsN1GLzSzFqyS 2Ww0oYH1NDVX6Cvyw3r6Bvp6QGa3Fr9NcctVJJuHaj5clfQ+Xdg3bF/Q9dQJNLNainGMhvvW Uk5653x2/3S657jUwherHdn9nXTxNXsIpVgHiDS6QSm7gG7Mtg4wZHaVk67DOPpX0d3IM6gh bHQRKG8M3d5go2vteSupYWxbpUPeqnMtVOwqVfgV8nuqWphf5UdO/xuocLqLl6Z2d+Rw4TmD 9qnihJNevp4zWE0zoQq/WoWiu55tG6Vj7oiXqAoj1K+msUUZP6QSaIXYaAK61EteoK/9ZYuk 1tPdv44MOhyhy+ip9c4l9Mb19k95SYVtjVyI1DDd0+CgH/Z36GJ0athJkw6nXk4p5JVi7JP+ bmoQG93wnTJ6MmXotPLVG3fKaOcb9ItencEZnBOoWjVnKWU498uapJyn7rMY4JDBKmS67RJZ kq/frVaaOs+iloVmt7BZZTU95XTvhOM7Kz/U5POUpy0Snk0buIHSFgvPE/zdcF4rq+/ZzMrh LJMxPU+ycgvbevnFc8m/KRbdTEEX9t2eS5wF0st72nxEaw83CO/pMxBvq4znLWSV4ryXToeH sXIIWx+qW91EGcpxt/y4xUmDLnXOdyW9FRVY9JXSyVuJOjjpwSpvVSfd6jDA51xI0f/QrVSm 0ynXhLeaV3uusNF1NU+IVqCD5mi+TA3xhJz0m5c5YnsqR+8tt6LMYHTpafbLzJIN0fpVyIp4 /p+7K4GOqkrT71W9SuplqSIroQwYCZuKQBYVNAIBQqBZAiTstEWlUknKrCYVFhuxbVDBtRlA bA86iE6PZ9o5Og6jqGg7Pfa497HVtnEb0e5ptcXWQQ/SZ7Sd+937vVfvPSLS3efMOTN1TvK9 /919X979v7sW34GC3xEhdWSCnm6tjF/eY1b8sE2e97gVP0wa855Q0hBzCaSfKqnQ3AKbTyqp xIwIH/N+Jon0y0tFRUNs4/jGE6wOKMq/WaG4DCt/nhUW4p6/4OtMFdZ0YTl/oRUWjvXnN1zB vMDhivxFVlhh8TZ/sZJKTVyDmN+oyqvMBMl8fpMyG2W+iPCWKmmcCbL6/OXK5njzdzBbocwm mfhsk79SSdXmQpFz+auVzcnmTYjLGmVWY/bhYPN3lTRdCzaIyHyG77ahhExeQSWTp/k7UCHa kH4/vkKG2vGYizQZoa5QIXRTQvLzm+YPwLwXN2JnGKjYGQaKKIiPChNFrHcNmxBeIJ4jOfpo VTHDh8TrSJ7erTqCcCnEfIrB8GzhOlJAMScMpYpIIcUhYXw7jBRRLAzj02GkmGJJeDzEoRRL w1BRiJRQLAu/A9MIxVFhfL6LnEFxXBgXg0ZKKY4Pv444j9CbZRFPCteK9EXK9HYpVod/Dssj maLJ4TpYHkOxJoyGGRmnr5BeTQ8PwO14PSlNZ4Ux0EXO06dKcXYYX78iE/Ru6XN9eDdyo1Lf LMU54SkwvViPS6/mh3+DFNXq8lbN8qYwTpJFZlBcEcZ9N5FZjMaaMG7HjMzWt0qv1mpDTogy jjwQRJI6RNpzIg+Z+/Hq4Wa2wS8Q9kGVRsO8Ar4dGq1ZnRuOE2UYO0SE8hA79Pv52+Uom2Gg tPN2Od9WiberZKVAj5JhNMjnqfIZvUAuGr5ROD50NU6RhybKWzP8dSIGhRPx4SgXjcvIrw7h unkthHt2dNEMwU1Zg946dAtOPYVuExkjJg3voZVd/HImNs2EF9kDRUH0jbirAQuw7AFZwXMW W+33beFFzopeqz+txomjStyDXbAoSx3Q+tRnVkpHZj0dZbW2aea8D7Klm6xmIcxXwhxzH054 LYDkL9+qmw/C2UIlPqlndSVbxOCnxC9187iIpblIiQd95kScRlusxM99JsYNc4kSH/CbuD/e bEK78pcf9ZvTcLRqqRJP+M1tMF22V4pbDbMWbmW/4C/fZkiVQHOlEm80zGkId/UJ6fMPDROr fHONEu8RlnGfyXeVeNAwp+As3aVKfMEwP4YYVeIRw3wGAa1V4ueGiXvQzZgStwXMv0dAzUrc GzDvhNv4fZkyRQEzD6exWpR4IGCOhGlrMEeGGzCb4PYyFecXArJnNTuV+FJAdtVm14+l21cD Jg4kmN23S/FwwJS6bz0qN94KmD9BofSVSJ+PBMwzEFAKsw9/+W8DJmY35sAIafpBwPQjY9cp 06OiQuHMhXn+ahHXAhCu4qjJLN08X9aIoousavQyTvlMVZOrHHOzwKJpa3LUMICyKZq+16e6 c5w1LJrRKc3GoSYVzVSVpwY1qWiWEjbIylFUp4r/gC4rR9FsJX6qywIumqOy4z6fLOCiuUp8 wGeugjhfJemAz/wAbhtUkkQ9QwqLFivxkK8QH5GLGt+QM+YzRTX1af49yPvaBuwUIcQSYaPG rDV/hGOP92YFVZIfFqFm3X8px7oBkalZB+qklG8+iwN+h5RUIDMn6ymVOYUmDrNmvTgqR42D RfDll5ty1DiIG7myfvVAjsqqQ5De3KV6WrMJvrxzjjSbrOWhVqH6yz7G0PJQcVCXLBnFvS8t ZxhozxmGT84m0R9kGCjP3MU4m1dUEVqJb6+hs2S/8lP0OKEXMK8Uk2IUxAWThLU8lBqSYYWB aMM9Zf+1SMy268SbINIwV4jBrG1yBpe1h3M7OYPLuo3zGzHhheH2/airT6L8xv47nGeLVeG5 2CHzjzWPCW/8F1rO74U0+SinR9fDyZSjnBzuhnTRUasz+y+I5xQLr+SqUMw/4W2Ggc+P/l+L cANjqsSL4GXiXxvmYIExMpcD461qjdlxYAJHYPOYiHmg4nu5ssQ1/z0Qxw3A+3EB6f1l0vtx udjhxKewOXh9m/64WoLJtoNf8aOY2e/GyhdaosVf4TP7rSOFOB+rB6wV9D0yFTuCJf2a/iPs 9/kGNkjFwggOm+r74DByqW49DsP2VuTHCG/fa1ie/AvmJPukgj80IUuTiI+8kSmlo7c/W1cq jMM3dHVqev/VuWoXsxh1Ve9HgAeFOKIc4gAqHXSVIvIgyM2oAlrRk/ARJ5P1MTqcY/MSB7uG 4u9KuCuX8d6hDX0f8RqlJGMoSlAfzfSdKcMfCw9mwtuy68Lq7iD9Qh27Rli/LhNY/N84K1EF TWtc9n1WT/NlQsTyBF4ewaBY/YXycugjGWkpp3g3ong+bOI4WfGLMDwfRYL77lRkLlCRKRkh D2rICoQL60YmwuosGCIRkcWyCmZaeaOfHx3V/d1n4ACyPgXbrbw1PA+m9hRgmJaJZI26S3g/ 7GZMK3R9lOhctWG3KEGeDPepfdNTXtx9qsu3Ux3KJNXxl17tjRu7cU8sQ4h989XfIvtBdnd6 t3ino9bS4TbojXW39ZxXIYzk0+ChuW8EP/kec2jDqWi7Lglvc97OnepI9SUSoGDtVDeF27eG +3FFNxyLisgbu1Xi1BXf0hc+gnykP5GyvexPbZS3hfuktD7Z0iYNlQh3A6lkZ7/9xvbWd/Kt 4CJnrOhmSine09nTpySVSa093XAblKZtcdviumT/QKzTFlv6Yuuh3mG/oLtMGYW+OIOP9fXF NjIh/Z3JfitRIocGpGMzfQt5VvoW8qz0nedS65kXku/R9fKlyU/uD07aGZx3tb/p2M4pwWmH xk/yF0/wTSi4eGJwYIu//Rn/fVf5Jug7p7wePBy87u3gozPeCj6+dd0e/5nBR/2xY/7hx/yL fWP14FnntflH+Kbp6271VYl2cJ6mMrZs7Oj+sWXdPamy1p6B7hbHhcs1zVNH99dMbJ6qdYG4 K9HZal+pPEjNiMc6O8HPWAZeZ3lPs+3nRbhGWdqPguwo1hkVRdQtyiwqOaC//X5idPDyPtj6 3MCsLX6tjO/R4T6iue+KvdaYfR36CvueXl3xjjju6V2Me3otP9AZYvHj8GOh5YemugrNunM2 qJ6DQcbJe+fsTPluh8RTmBsOc5uGBGm5nGEB+xlWPwcV1y2B4m8/w9p/anMDKM8da8sAPmU1 Bwhnjns49oq/O6XNRfsE/Ek+Lk9btC8yQZZW6CqqwCr1HKziSOWMSlLI17vDQY7voHPgTjrf yWHJ6Rx2n9BVSoFDfDImgOG0CpymXgOW8/Vyji+OeDs8GwIslsbLitOelQy3Xbmi+3vlqvD3 jIKwWpqOw45C4Ll8D3yY7x/22Umy71T+TLeD631R4Ed8tswTsuDww/Ga63hrSY9oklHRKqPt G3vbE91RmzNTtaGh6sYS1ciaezpbkq0bo52x5kSnlnQaic5Yai7iN9gdH9a2tlVbcUPSWi09 xTrVe9FvJOMd3Yn+ftcFCPUNakyL1rd0LBEPotcFjafk8Y3WL5AdoxDnRZfNbVxaOz+6qLFu 6ayG6MyG+Q1LtOa2aFtc64tHe/t6REeTSqZvDojWpzqWxBsxVmg03RiNx+LtiTSFWWX6sUoR Nk7WRDSWyb4dTzMxHGhy/NKEf01iMJsL5W6bwl/Ymd0D/nFJN+hmsKeDBcp143zR3cP+jI2p RENfi/AlughDDNzPSvTH+5K9iiPczWzfLKxHe6R9OfA5uONT/dENwijZBvrWaH8lrh4Q6WaG xjuTvdGNlrnIqd7khq5Yr9KBbu4cEL1te7I15cxbxfvGvO3tS66LibAxkkGpMu7ghK9vmhdd MjM6o7axjvzwImHLk90tPesVU7wj8/8CPvioM69tldwNjgqkWN3TMa9fUruycWbt/DrhFjV5 xYL5skbJwjkV67rk64zFZIZ4eNSl0rDibV+vkib5i6ULUevaJJ0x9DlTYK/TOHbJqDrzzkWC 3pdoiXbF+jvcJOiyYPvTZeRmL2+J9XUgwNPjH3cTh4u4pRJp+vCTGjpG2igm9c2dYnBGKPWK ftzLzj3IkO5myHZzYnclW2QeDSDSsqAWNM6Izp67pLEpzTktCb2FLTnpQrLVlENxUUtvpAm5 RFsSvan2wdmiveTPDr5nNU+TlQje434Ruz7X12I6pnFSLXNAJX+uVaaiHtama0GbqJLdJ3Ex p6ub8k70RrI8o51KMxqOoKIf11w9HObQUZGT0b62ZrurkWVv+bhIVSIvUfNpdPfCu0WsSE5W Z1EKsxsWNsl/ipY5KpM7szMm2lRnsq0dBd5fYSfBQbMcZQfmoVuWYlWlbLGquff19KQsNmW0 wFmcGSv/UdyqMYF5v0V18inRdciCd3EaO2PbCPptN0mxJKOEAndrUjQ74YsaMZy8w7KTkzmv 2io6TLtDdHQeTUuW1rHTs6ayMlbsSNmwVWTJRCzbTawV/ZPsZ+1+ONEt/ouutTcRT7YmEy3f NOySHlhEYr7dMByFIftPxWEr20C/1iqHOg+/biyVEiMah4OoPWDhqX7m6ZHnOnJfstmyQ0Rg ikvBqlOqy2+qW9FkN1gSY1pUt/bQKbuQy2WGSYrKeLPqFpMi26KtMZAYYKROZ7GLnlb0gSKD bALa9oSsmOvbRU9jjbcyANWyZG866ECKvlYNcd+8uFA8s6j0cvD0Nj1r/uHiikX9ArWHbJvu /sKmkZVpxyhANtckXg5C6dqXuHwABBSIrzWo1qfZXO1WRVpXWaxyZnOyu9n1zjrd2FTbNHcm a3XUMalxu426eh4PwSsGnvRQJitcWzQu6yfyVrYs1QOnR0FVKCrbxauuXidvqpsrVZYo6lms P57oTg0Se4zq9mRAzaPQccOybNuy7P+fMKz+H6ZSLdYH51EFH2oZ1w/4w5EDrJOdPKrOFYXF mOflUQWhFM5k4r2Pfg3Go1rt11w/a93i5VGFPWMQe5Pon+aw95HjhfU4w2PvzIBajHnteXlU F1Vp2gpTpeNUPKqvFWpaxJEWy+wkHtWadD6fikf106Fa+t5kmuHPy6M6vcTN72nQ3MujulbY c7IPWvHbprnTsalE7W47/cNvqycdD9SouoB0OHlUd3v8KxymaQOO+mKZ3eOxt114lBwkfvs8 4X7qyL88R7gHPf4dO2Nw3tMDHv9O1Kg6DP+cPKpPe/zLL01zmzr9+xWfLbMZpYpTwmkPf0c8 /t0+ZnDe0w/5bPGevjLGXe8texm6279fj9FcP8vMy3sKe8MHaR/OuoLfpvGi/vnVjgL6AMQB +eTlPX1hoqZVDFK+3p/z/f8G76lbzpa8Ata+4GA8pxPsuGmSV/QSyhEp/7U8onke+dt4RIs9 spdHdJjjkmb8srU14v9IhxzTnOWZrbVqzv3XbK3D5T5H7i+Od5gPaJqdByfzdnp5TnXJA4sf do/A03eHwzzfVyLbnfVD7jznkXG4wtr7hfvPPeam7pZLPfKFHnmeR17tkTd75Gs8MviRrH1m xGevx/wej/ygR37VI//WI3/pkbM8Y+oZ3jF2kMX8N0+RrSXRhKrKKdWTBqf9EybVNu1flZv7 7wIH999prF3/PLK/lJhWirmh3A/qBEfXN6637G0P+MyNBjiXxvKlXCJyVyfenhAzVmtWG43H +r226a2Xls62I9aocmEkzNYnU+3Rru5EF7jvLCo+zO/aTt6QsXnEXG/TEksoNpDqSZdSJyKi viGBZU2kHBFzlyV3OWx7Pb3gCvSykJ3kTM5QNXLYl2laOerXWYozxRCdxFyBZrHisAVeSXtb aA/jP07n3w0UEzacJzDEuIFv8cZYTXsK7kQXgCPIxjjVdmGOscs4W9NwmMA4Rx2rBgdMga44 Y8BVZoiJ3SW6Cg9fsREe5onGeapvNkRHPKArjiy0UUOML7fT/j7aR1vDceOnia/AnhiAc4Qb o0LMjXDER3TcdT4VLjh7ES44TQwxceryKXcbgWLg3+aTZ/Mlt4kpBry9dAcdHUPM/94DVp8m Z00BOWsKyFlTQM6aAupKCZxGnE1cTFxBjBIvI15O3ETcQryeuIN4G/Eu4r3EfyY+QXyW+Crx TeLviB8T/brCfGKEeAlxDnEhcSWxhfh94i3EPcS/Iz5JfJ74HvFj4pdEw6ewgDiSeA5xFrGR uJqYJK4n3kjcQ7yb+CDxZeIR4ifEPxEz/AyfOIk4jbiQuIzYQuwjfp94M/EO4n3EA8SfEV8i vkP8A/E40TBYPsQy4gRiDXEecRWxmdhL3Ey8kXg78V7iQ8SniC8TjxD/QPySmBVQWEIcQ5xC rCUuIq4mdhNTxO8RbyXeSfxH4iHi88Q3iB8STxAzMxQWE0cTq4kziUuIMWIv8SrizcQ7iPcR HyM+R3yd+AHxC6LkVhFYRBxNnEScTJxNbCI+RvxX4jPEN4nvEt8nfkz8jPhHIhY2wGxihDiS OIk4jbiQuJx4FfFm4n3Ex4jPEV8nfkD8gphhMv3EUcQq4gziYuJaYg9xM/Em4l7iT4iPEp8l Hia+TzxODGQpLCSWEyuJtcTFxLXEJHE98RriTuJdxGeJh4nvE48TA9kMn1hOrCTWEZuIa4iX ETcQryXuIu4nPkB8gvgC8Q3ilByWM7GOOI+4hHgl8UbiLuJ+4j8RDxGfJ75CfJf4CfErYk6u wqHEs4mTidOJC4lriB3EdcSbiLeRM2QvcR8wLMYZmt9P+QDlJyj/G+W3gfli/KH8MfEE339F ORhSOJw4ihwg44jjQ8rfi4nTae87lBsor6R8KeUe4hX0ZzPxB7R3Hc13E+8mPkbzn1N+ge5e Ir5K89dp/hvKxymD8xGYTywNK/OzKJ9LeRLlqcQ5fL+YnB9Liato3kq8HCjybh3lHwDFGHEH 5X8gPuLT0vOnkEfHPJTWMV9BeQ3lDZQ3Uf5mHeqqP0+HuuL8yaerQ32UV1hYOtRnitjD3Npr W7r9Pxsd6rpbjhZaWrqp8ywN1IPY6JNaqW51ZeKWpwpXW6rISqf2Wc2lBmtp1r520zqEt3yZ O8Qa5VvdW7Z+8DW5Pmrebnf5oLS7leIwFHSx0aO0a5W1uiM3bRkvH179aNVND8l3Nba2dRCK zIcHSUe1J5m2G0uvuO7VLXVHjCl1R8JbDwk7N9Qdqfi64vgNIpzD2zeNGgKNZFt9VwVQ91Za m3n70+FrBhD7Zx1qwdLS4bSKddp6eOsvhaWKl10q2NWjtj+tzL8OXzNOxumwUmKG6rJT9zjo znRH3K+ZBdnWUXbFMRXc8lTN6kujVjlWHHfoZiuFa09pKqVzqJnbcZ+TGisiWnHclauWv5b8 4QwEeDz1DlNYbUfhRZWBn55cQh896Ezeu4PWrg8vFv+0b9OPTqtEG0olOmBpJWdYWsmZTh3q oKX0bFqq01lKdTrbrTqd41adzlUq0iG3MnQ4rQw9ZHBt47y0cnC+U1e5wKkpXOhWXC5K6yCL KaRbP3ko/IPmc4lbUXmYV9k44nwBX7UnMu2jWrI/+QU3fP4WnQzOpf8R55ypfYyj0kHDMPwj sCQK+pfrUs13owLo3egZ/l04dRbwPwf140w/iBeDAX+mDg3jAJb42MLPwMNQzfJgtE+6fNuA onGmH0f4K3AWLPN14WWgUipN3YAoGplY5GaMxBZA8EqEl1kqbIcuxlo18xfCt9AtsJh5tfgX +uGTGlbY8puBgdVkFh4zcUdP9khoHwclTaRp3C9tgCs18yHEaM3f4BHrHSMO5tTs6eLff2D5 bcRzduB1X1hX6oaZ3XidwD5fNi4hkgTcRiLnKHB9K22ZBhatudiNzMSy3X/RJjiARgtOqeb4 L8rBEX3//OnKQQ7uMvI3dErJyMFKyL/Iryt1tswxKIZKnDMMxpFz2cvFix4DM6MJoWNQULMV FkNYVOXm6e9K0QhhzZWbTzEYukg4zy34H+6uPTqKIt13dc9kJjOT6UBmkhAeBpJAwAzh6QIJ uwQY3gpCwoKiMSa8hUAyQVkRxGSUOERgV9ZVj69d36+r18tjFRA8irqLe9HlCsfr9eJZH2Rl d6O7Iu5KcutX9XVPT88E0f3jnnvnnOSbX9VXX3VVV1dPV3+/+gj6/HgTkBEgmOl/AMccJBjw fwqYTTDXj8frjByCfcTSc0YuwXz/l8jNI1jon4aKehMs9oOEkNGHYIl/Lo6qH4Pfv1owzP8a lPPZvQKO8u+FsklY9GNr9AyTsOhHz2cUs98KOMF/BGVL2AIBJ/uxb2tGiM0QcIof279mDGUP CctT/Teg3hHseQGn+fcjt4y9K5Rn+fHuL6OCjRSw0o9XXRkTCS7wnwE0CYv+Z3AYU9geTRIW 9UyQTp/zoknYi8WXsdv3CWrbIxup+PAUm7FXttHh+wbWTMJiuuNqML4cr3KjThydec0gFWfb +bo1daTiPG7FWVwLY8v1CIjkl5zCeHlLXC3PYk2pENe0dwDPA5c6M73Q9zdQeoatpcE3D5fK CBGKrcDHTWFTW9dBHOmgkVzRu8ghF3sy1UGipDrUKAnKnzoMm8iipOthlBmMvWXdYK7wKw1F 0x3F/H/mPjymb8D43SFmHiO8Yo+nQApW5O+wnmJx5afoGCULi+H34Yp1avjpoWQK8BzsDBcU GUxe+GEQwC8lNgKb2KpNi4LLFTYSFrJLkDwKXzE+cgrofU62WEG5HB2Cw8wWm+PORY8+iOyc GU75Yi13yWqFXYFBC/Jqttg7+UrstAwvZiUH6wSYW1BfQ5FpqBGGsEOBLBBB+cXMaM8vZXuQ GDiBtl6yx2lyUjzoEw9OtROpnxrn16N4HuM4gG5n+W+ZBdIdWJvp1Q8M2TswtBjrdREXvm0S OM85E0ZJHsIcsAI9TTF4MZ4/wRiiG5lqPZU8vBVghZdY1AL8u3OmVS2g5P0QzS26yqJWBrUG q1oPJe+PsDawxaJ2LdTutqmJV16DnrKoYVNa58G0xCZ8DLXidyxq2JPW+alVLUPJC6Olg7+2 qB2HGnaoMNV8Sh7iXbAhiEJgqHVCbbRVza/kLYO1i6da1LCI4lzkSuyQQnRIyWqL2iyoNVvV vErePpzG0E6LWiPUnrSqpSt5iCHBBuyzqIE+qnwiXiWugI3zE5HsbKPzc4S+C3+pbmVozfIb 4Kx0AcSfxkh97coQ/LlM2s9KoAiiYBGpJYF4Q3we1UIQ0hK4PVoCt4cJEg0dUKi2vmExkYSI TMPMGqU7mUGqQaAVacyg0TjjNBpnnEYjXvoSjWY7Y+7+D7a4j9doD2wCFWa8ln3LiWeiWq46 kjVPL3XPbNGWuG/R+pRrdTPuVEM5g0eucL/U3Hxi3LArW7U6tZjJLK3/dq0311t7i1qcta30 Wc1zf4s2/xZtwBszj8/UKtz3q4P4eaXjNbkycUKNkTOecoauWb1UqVoNp8f8SH3+dfU1dflo MegyRAFDtJ7SxmU1DYtLxbkoXbZc+OaVjhpzw6gxpTVr1jSWKqa/X/xbKNJQs16cPksaPw/w /2mwJDWtTpG4ut6esqa+TrwhE6OielVT4/LaEO/0hpqG9ZTWuKxpyZLrFhNqWLxmcY2hvua6 mvVwlTU0V9U0REJm4qrFdctrQiKKPd6NSR3R1nj4H1u6CPTzz36+jXOESd3gBFU0ayafCHew q9V43qRm560OYgvhija4Qpr87tbIlp2f0x3X53c2BgwI1I/ZKCKnFCOG7hzQR0WYAGV+B35Y S+4KAu70SqSxwM5YofhjhOWsFV/n4BZ3UKaiuC4JMyi+VH7Fa5HHEmk0sPRnUft8bKhHtW9J WTuKr0vm0zwqa0fuWpFrei8t5LBGJuFN288Sc/HyZok0t848MNPyXGY8Jb3ikpvidzeg9iXn iUGFO+/cidXzKmdPmlldObdiYfX0SbMvE3EEzWS8nZ5XWTFXRM0xU6suM9MbrOmXzZaJd1sT 58yePKliXqVy0Jo4ce7sH88Lz1VwT5Sx7C8NT55eUT1vWtWUKbPCCm6C1vS54TnhikpltC15 zqyKhbOmc+OLbBkVVZWz47nNttzwjPCkSgU3M35AFXPmyIbjk4omZDx/4nOS/xUy+QINJ+UP /DseQjA2TvK/QfzvYssq2EomN1Q09I1PDzrzxok1Pqm4RNIXPKk/E+k5Np7N1Gn81lEpPNXF GbfwbKrjHKXIyuk8sxJ3OdM932TFSCZMgtL3Yb+kOItJo0ASYASxRdxyu6O3JDJahP+18Nm2 k1dExDcrUSWRZ2Klo9Bt6nvRUUwiimSZJI8wg3eS9BPjfGQTYpkkX4Im00S0vnppNdG2qtfV NFTbqCTn4ZBUSz4Ffholunt3N3/EKSLGYJhCnWaDNmqHla3Bm7qqMYGgkTRpxNkZxMZIMTcR EyPeAjkG7GSLFBOKjW+RchJJxbogroV1nkh52RCTIuFqMbpr3uKIwZCIt9/GfbggdoPkNHQ/ z6WaoE0+A/0cTiAnmLQEYg5YiQE2MsDaOAnA0qxU9xXJEUhBDzB95aVrvuF9b3e6r7ZMXt26 2/8/8ZNHBr401P/fd5xX5O0vle88/H76K+f3nbfeZrvznV8wUFEeZ+S/pXTvO595gb7zmRfo Ow+96ZYE4+tEm95Ch/w5Ztez+84rxdKHBO04n+98b5+kY9vtJfnOl8T7+Xy+806/9K2y2sOf 3Xd+ll/2lfHpznf+eq73pc0ePobvvNHPiMtdYtHLJ5nkO18i18HQDqvv/N1KYr8gJoOVA2Cc t502e+6QrAv2Mi32HrXZ+4bba07Rz7tseohFMD+F3vO2eotD8fORZan3TZs9xAjIt2Aj7zWb vWEhefywF7TYO2Gz92VPyVS32/uEvhu++FVZMu6UVQ9/n9vsbcxN7Yv/d/pu+OLvyU3ti5/D Eu29lOiu3a0vPvSGpuhn69jD59V+fO7gFXMh+rE7X3xHAb+2LAnWY0p1PKLM/4Ivfk+zbkX4 2mPBEWNGvP9P8q330bt1eW0xfsVM4FKs26bU/66++T1tOMuG7b75dt93u29+ng33Vq5ISPEK /85MC67j/4dYMHgwpRa8OqG8T6wt5FnyE+vrZcNM+Engg/kPvuzbLfk91TzlMQvGce234f+y 4bM27GKJOJ/F11RQ3yhb/mwbrrPhzTb8cxt+wYbfsOH/tOG/2bBiuwe7bbi/DRfb8FDCeI3b g4+3cbb8uTZ8tQ1vVGXZAJXfocprO4sw/FKHK3IOBMaWI7if9ST8BvnCGBixlFdY7GGdf6Mi 7y3A8F/dqijiygDuocl7jU4YrzUft9Q3QZNjwEc4+cnOeJ5MTSwYM3akfBTC91Fju9MaPcKk Hww3OQhEOhBEhO4e1b4z3cDCYV7Pf/ojJnp13eIlNdgk4XzkAXLAp0Dv54vgnvR4YFYrHvUF +8Cs0X5Egi1gT6ypq0suIfZJMSKUm4nctoh/jmDw9PyTylxiCWpT4mFivVpgSZLgX2prInF+ Q91Ksh+vjwKoW+gR1odIm/llNY2G9XgsdpsO2n1t0/LrIstXS90UD8jJqwapngmTnr2TFpeS lmhSPVOnWNpJ+Vzd/QNr8pKJIu6ian85e3sGyGsXnIR8Rd7HSwmLPdwLJWcAXAzEtwWnogrS L7kC4CqAywEOxvVk9yayG1UkR+MOsnevIjkaDxF+QpFcjVcUyZHAZunpfGJ4m+RHSOc33q9I Hz8WwNXAnA+uRi6Tx4c5H8d3FZOcjXomORjYgRDcjK1McjN+ySQH42kmuRXYvh0cDPCl0A5s 3g6uxRdcaqOl/57jEun7D3sXqTI9pEquxmhV2oefA+JDYzNC2L2K5CqSLaqs924q/xDwGN5+ 2OE/OF9QZX/CFQHHAVcI9OcFcT6CxPkIEucjSJyPIMUpDlKc4iDFKQ5SnOIgPQtxuZDkNSSX ktxIMkpyK8mfkbyf5BMknyP5EslDJI+QPE7yryQ7SYr4Olz2JjmE5AiSFSTnkFxAsoHkZpKt JO8i+QjJfyP5Msk3Sb5N8iTJv5DsJAlPRcg+JC8mOY7kdJILSC4luY5klOSdJH9F8l9JHiJ5 lOR/k/wzyXMkxQt79A/JISTHkpxGcgHJWpIrSa4neRvJD0i2k/wLyU6SaQ4pAyQHkxxDcgLJ y0heRXIZyU0kb3XIcXo7yTsge1DcYI7vJfkg6T9Ncg8kvx5eIfwm6b1F8m2y8y7l/4nkV5SO CY7xi8TplOnYxB7pAcL9CBeT3iWEyyg/THg25V9F6Usp/TrC6whvIHybUx73VsK/gOTz2H7C b0LyYzxG+EOSnSS9YntS4ohg/EOOU5RZhBdClilKI+GbIcsV5R7CIj4vv9gPEf4d5A+JC8Lx l5B8MtddNK4hJ/D2E54EWcHbS3gF5EQ+fxHeATlJUZ4ivBeSz2fXMyUev2ssPVuNo/hdZTR/ jaf5q5zmrx/R/DWBfK4r5P0H9RUqsp5iRR6/0Mu0+WZnxn2zu/e9Hj3sO/lej+K5F+h7XVkk Zbfxq1L4QluCVMERup0hBpK7NWB6yU5NgHr0Sa5h9Y4NKKm8Y18P4wWuEgufMvxxLRU1n9Wa nrCYbT7r1qOIg2KNmMWzw0cMjdbwUVtewHBQhpO1JecIom/Fqo62bih0UzgrnuIjK6fsNbxv 1vC6PetEvPKTvB3xvFOt4Y/MvMTaT0Tf0e9wIb3pdGu44/UwKIXKdoqHFe3aeGns0tPDz8Sq OhCfSd+t6v8S9h06697C9N0TGQeZABVAavMrGk8IiAS1+ZAWC7/PT4eLF5q4hVVMGftV08td 4WOxqo9Y1ekYP8SqYyzcMbbqRNMvuut1hx6d2NnV1b65U8aHkqesfVSn4dDePhhf1ylt+0Qk tKrhB1s/Hv4OHzObTyMsgjXMlhn7bG8XxRZDVYh8FvdDjx4719WltyB0vM1JfD9y2nDPVtra Ovj31p1v4H/bq/gfPXrOcByPKa3RIxyJeFp7i5REh3lex2G95R5+QIPPCmduURIu6m0bmVGZ vnsKKw/pLdjGU9/m5v9bDuot8GgsL9JbsP7MGxI9cU64+0ffxyHvzjGPVz/wxZadfzgnY6OZ HvPY33zqzT9S9JYXeXn9wA9M/QS157nazftRWjkc7ihqakCUGwVF+Ll3bZmc0dEW7jg8OdjB rzlfTDZ+sgiG5nsRD+XCYd1ntLXJdTiKvlJiu3C03l041thOlGqKyKZPtTrxtx/pRFuiqB+U EuVFrIVtCX/+2S2Sq1BerUfhINK2URUHNvxMq7Dc2gbL7V/y4jJ2mOgdrmV0UPt7PKv1TLft /nfRbhzrMHl8kTExURCZczEAokiN7cL/wa/sxSTLj1ywFAwH/dYv2sE7mMjHe/mwyNlY2xFx Zg7qexwVzSfdzWdZ83vKZ4/HxMCJT0h7M40xQldobJcYTZc52i5nZfPdjTNiaYcd7qJYWut8 x2FHptL+KM8+LDpJaR/RKU60L7YrbtWMdifIBwaroAidU2RUal4DcgAaJ2AmajbHpDn6dx4V g+0AlcocjpEXkbwKzFsx1SQ9iO7n9cbahBVfYethaUNcW4ba5ldxebZ2yEtemKdmzzCavTaW NjWx3c/ykrE2S+/xdh8w2xqJj7z2mTI0YKZ+YGpXIvfD7O1Y9A1rw7s4EJ3yYpGpYIxPc0Jq L/nGqFvSP5Li2RmKfbrEtMTvX5tPY2ObpJB/rTd9Y42fx+fv6DtN+vCDiRH6MKvzK+4gbh7R RXTKJJ8nfKeoNtwR57EcKQs/2OSLhY+WhR/WW64Qt6eOtptO88kndPPlTGkNn26LLoOV6DVW WygZjWDiaXlZAcmc/8SW1xsvH9t5jQy8OLiDl8fVmlgmsmDzYRjf3HnzuHSl6a1Y+FhZ+HG9 ZQ8GIp6REyk9iUED9RaPGF6LJJfItC6uZDQkegNHTffBaHQDvv70gMVmJNnmZ0+axfToCEnv kUX1aAEoTE7zd4Bx6qzF29E9L1uq2JBcRftkMsubGb2n89ttBrrl3ViJNFbmTZyP4zRYNWmS jeMy2Dhug42TLng2boNn40nk2XglGceXSMbJSAxc6Dc4POeJTdhdlMGeieH/shKDDgYSWTXB RPJNdpzMk2Ml8+QapJxeVlZPnjV24PSsfH5UvZ2WUn2cFppP30QKUL++vOxwbnOBd6FX7B02 nCvliz7kZ6//KHsEQtReQKlOGEyOPog4V+SDJX7T/obcA7EgwUYzucouFFzv4oWW1qEKyg4o M8ytYc1bdWlY6uaJD+CpK02bB797p4NIQ/C8cju1tSAhuFQ8ULvLamAUe9e4t2FFQbsS9TvV IJgC2+vj1aiPoNRd0HEKlo4mHnjT1FuRUiDiUP2WF3KWi2OD+6HbkeZwwSkc6u67FPEuCY+l jsFIUfHE6CjBuxD1dtQRQohfdRMOoBSrXNoHgsHjdMAGuDtK2iysbqTj7hpZpZSktXiwapQW vUIqeERYwVslcnjK+AGm3SaR23Mp0BaJfB7sQJbWKlGmB8+sabdLFPC8ABSTKNezDeW2StTH gzcNaW0S5XtcsLI9KlChB2yJtB04OLWgmPfSf/BvXtFSODyqhR9z7MOyBbzgfGphBlwU1MG5 ooCSga0r1SGH6ODvAmHjYonc3Nh70MLagzYCK11+bNnFnA7s+uU7oslXu3d6hup9QSjxMeoR HdGPvT3YE9KqiIPm7UnQreMZ3JtF0Ke7UDZAMFP/NWCQYEAHQcSbTTBXbwL/JIdgHx2e895c gvk6Qj158wgW6iBOeHsTLNaxm5W3D8ESvQym+jGPIKsM07dAOZ9lCjhKxyn3DqAWjdGxF4h3 IMFyHcs/3mL2EwEn6PcBllBYtMn6DMAQmyXgFB38D+9Qli0sT9Xxis07gg0UcJqOXTG8ZWyr UJ6lu9E5Fez3AlbqiL3knUhwgQ4qrHcyHcYiHSQr7xRW4pCko8xlwM/50KRnQfvw7vZ8BAN7 ZCMVz2tAe2UbHZ6XgPZdYZ7t34No4hirInCsw3IBIRVn21VuTR2p9BD8mypckQPZffRCdiA9 /fdsbKhV2AAk44VplvC3LUBl6JesUpQqBMRrwSy8e2RFgA/zv8ByhQ0CQDjuwAoCWAMO1sNM MSCWgoN9nQYM8rYHERtOQkxdwZ3MgFVM7ndBEFv7BG9D7uCR3CD0gmJJdAggmHXBP8LUxYBY Cw6WCCoHIJYGgyKAYAiNU3lS9tVOuZQBV5sczF+sVLxtzW2kXpGJw0RiNhaF2hS5UY7MGCUy er3PbZ2R/I6A7HbsMZOHxSIsmKobGC5krffnOIE/wfc+tYp6I2YqpUc6CgpfmrVijA/j2fvT 5DY1WThhbA1mCQQJzfoQh78GJUBfDCKWDWuAvd8AdgraEpSxDBksNCFmgr4XAUaw4aC6Y1nf yQJhGUnbcerGINbrWROqhwdAsFA1IAJj9M0zodZ07MbgDwDX4acqiGJBvOtj1/9DkTvPBBGD SkJcQEG8OWA3YPSd1uQIWY9OwyJavw94M3/lpFWjBy/CT5+LEJtQ6XeWciYg515LjujrD+Nc Gt7XYHG5QP1BJfnosS6m9HgbOljHYl+LboVnNW6S6Iasr5F+FmxYXMZBES3+74AYiMFa5P4D EKzQvgcBv0Et2o69m/qvrr/ehFs39Z2kxXNPbgyKE3YOnY4JPoBJm3WifqyA5mBLKdaFvhmA iMAFvDfymXy/7/rQZblIsxQvGuA6Y03srXg/4bgQvN30EYg5wpg3A7GxHFmIQIhfzYWNPNNz B6YKxgrxqsizTQLxIK3KFfh/OvKRjTn0rYGJvm+cJJN9VNsUCdWsrgutqWmMLA7V1tctJhIS 7+Hlq5d2xx9SbdGJrMGA+ImLLF9FLCMzSlEiYwjmsUcdlTcYRo44w0j4txCtqIhp6e5yd6la nK31VQuYVv30GfcP1Wtznykb/wD/ewbyWfenf33puHt8U32VluFewnXcv35eG++eofnytchQ zTdU/HeXqwOyQkuXHXe/rn2gLNEe2+Qe6s4Kla44M+Y2h6pF1AHMwbSBX6gDAwN+zg292Djz 5XVlC9UBgdnrtRx3eW2BtsDdU7vU/fT/cHctwFWUWbrvK7khydzIBAUEiZoAUUQuCY9oUBNp 8UEUgYvggDEmATJLHpvcC/KIOLmJ0tukDDWM4ziWOpZOjTs1OlM8RFYxQUzAEgwah+gGNzoo CclqZGZCJkbunvP/p7v/7nQeTlm1tZsqOH3+x+n/P/+jz9+3v3NcMVXeX7kaJO9Bb333Kddm 5zWOK0N/dd1SBWIe8J73Jq67bgGIur7uLUi4B3LdDmfKpa6zkjfJeW2i94pZqz6GDGX7Ue96 KDZ5JjD5SXexOjPrXNOwgtP1ynbnbGzQBG8mcOuS3I5vXd9KzhkO7+E3XAuCs13ZR+dlee/y XoUaWlAY9t51bu+CJ1bt2usKrXVdUuWKOej9JOwq8K71PuD6KTTqhGuSM9nhWgb/HXIm4/QV fz/G38O5k/SyvPzCpOnwzEpFEBX6k2b+r5ctybpVzl26KBuGZfqVlpr4O3LehrL1eVRx6tQk S4kS/Dq7pKRwQ4UhOy01adu2pOk/iKz0VGlQf/ToABV5xWUbhE7hO/Ll5XlFsGDWJaWkJJWh A78CxIcVotNB7owQ5ynOZnxmwvwuKapYD2VSUlLyk4pLC9AvfflIFW0SkwpKCytY2KaKUFkZ fqtcUlqCH76WFOSVFyQVVuTnlRUm4WpktxqlDL1Ba0vLmcCSUHFheVH+IHkg0cDKwbrdWFge hA5oODpJvkfKy3ooO7/g9jt+WpxTtiyw6b6HV25edb/EE5DfvEpaXlqQtzkp5Y4bUnKSUsqk VYWwg5SbklLyhOuHklIKBrGr7HrG0vLLC9FXOpuNRVvQRzrfF+3xZHrMH7K4rJgxPUYV5NW6 KX9hvOcuSz4+zcYI9e8Ie+593PUY24xwU7fDnE11mnFk+DeN5e9i1C7/HQfLdyM9ya5DcUh5 2V1um7JeoWyCUNZObpxQNlEoq8fAetjBwyNB/nIxDaFpAs6rHP5tZV2/Dx/b37Dc+8Rc5qRS Cq283hC40iZ/daKRv9om/8EbjPwHbfIL7jLyC8T8Lax1K9CeVXjbTw7uBoa//DlLWoK5p/ml lovfQJxiSUut6nEwJ5DWxqx3GY1Zr+XjzPI7+QxBOodfe+eQ2SnOACy7lY8Io3b5DS4+E5D+ zcVnCFL8ZRnTkba4eTrSzCiejrSEy4tD+maUeUZh1PrdUTiDQ81btcQnIPFpDxvcLz08Xxjn k5D7oZPp7CMg81xMuXiGQhcBcIleEO7ml9iUb/klxsrezYSuQKHnPaYx+cRFv65LS7FqIauz dAuQP/DLV6mDwrA0goi/cDHPUNcEiW+CtM+ZxCUocZXbNMr/YfS7datNYptd4l/0RPxA4EUX nxEgeIzbNDlw22iI4oOP9G1+7X2bjGNxcLFsDx8URq35mBbhA1jmidbzy2zyN9wL+U/z/A1i /nmmmSWfQnZftEkNmPP3KFNSrqS98krzcu+Uw+2/ePiy27PxoFD+UG4ouDZ3bXlRYUnBhs25 9OC0Rza+K2xcuE2i+1tcVBjtDRdarZEtjQfNT3dx15Q4rf4OYiYKXzzj/IrAv3AUHzqc+FX4 mze+yxS+hH4UGrkH/n0H/9KF+1Ogs4KKYG556SbsVFFBoRmLhX3BKE4Mq2SnAB61Jm9DLgu6 UqHBxXTQEAuzsTEPg2NZ4XPrQgw6pgUE0p7j0loMJhLU8V06YMoMRcTWluWCtAIMBLSlsLwU 8VaFGEEkl1vxuXllZdCH3PzcohKGEoKzVgEix0YF/BIweyb81lCnh2BxbnFRiRnPRag6AVHF 4WToNTm/qCiX4eOkYF45+3qUFFiebxoNwjOC+IpCdpeiChgwE2p1KNyXGVupgd80BKWObQSZ 64qDcBuM0cQ0Z1hHEkXvEpGdpF0YnHXB9dBH0KwV6kdiLOFaWPQs1JMpSB2D/Gnh8DAsDM0W MfDUPxEBzgZKatKHeXgFHC/vngYS5DhZPlFZZBreOujF+tJQubRZM/9Yv5AOt4sMgbEl8CZI 2IwSKGwcVGPh+HK1NSjgSc2YWCvwVEd1sppsUVRYEK8F+LGr7cZloJFxYktwhGDhcqAHrI6G fdYgjnCbtdgibW7owFUecAj0w5acfrAxQ4HZF8ymNZwbLM1lx7AKE74UdLMFJxrQTagjDbhc QtDHdRyUzALygRoLoQqBqRnuEVqPLyLpeC+xJpUXFoPWWRhFgnWb4LwUNer/CugxfQgM5P8L jONw8YGukYbHOIoP3KEwjjP83O/6SPGB4szwoSExjkOVs2IcsdxJIUG7zLaUOz2GWynWclaM 4940/o3hSPGBEtDvrHOwPCvGcXHG6OIDNeO3hMIN3JRvxTi+cxmcVwT59MJwEMbx7vH28W2s 8YEehXKipxZNz9WWfizP4PJGig/0N5DXJpxCtbwXLeWaJ3OPfdZyz1vuWy3ob7j4QGlX2GMS rfGBdmaMLj7QMpD3qI28j+ha0+2HUC7ZBpPYbpF34erRxQealTy6+EDpyZLpT8uzYhKx3Gji A7WlQn/d3ODGd2HYBjtM4uqZkvS+zby3/onp/xuYRDMfx1B0+FMQ+95VitfX0w+DOfzh4wEh nmC+nhJrwg3j178BEx8raT/yaTyezSYJ5fHdx2SBR0xiksAjJnGuwOOeMCDI2wz/P+gwePyd f7rA437xosBjLAsjbFac9IQkrqc4tm8UCjziWJYK/G8k7n9J4xHTeKvAi3928Yv+QNf4/gox i8eEfIxf1C7wOJq9Fj7BYeZTLXy2hV9t4bda+F0W/rcWfp+FP2HhMd6Q9g4S+9NnyY91mvnx Fn6qhb/OwmdZ+Dst/P0WPs/Cr7Pwmy38v1n4pyz8c07jHSr2b68l/3UL/46FH/JQaQdWnJ+e lmafMWfWPD1okt8cTYmBGFluBsv164GV/KzQfHY5Wwc9+llZP6vm5ym8dNqwB5zvB4Yc6hcY a45xeBgS9TjkryQj/C4y6Fbc6rek8pOrGXFoLQNndjqyWzLoXG/38oRZ4XlwbmboRTiLzTde XrBbmN4TIAZyffmg1xt4SBQkmjKl4sJiPJZxMKSeWVTCYjblGw2AU5f59oShZMT2nMj+Y7XZ KbNcKsiH3rITDXvCOa/hGN8x13J7BXF7GNcO8XoLiDL84DjCD8YRfpBiQSGeD/dlxO/tljiu DnHBiNvDn6YRP3eE0k+SvE/pPrj3I85ujIOnM1wglEcvzlg/zcFxfVlEEQPunsP3QaT9Dn7f sU4eW2qyk+MccZ/Bfi1y8n6hizHE+VU6OU4P8V2I40MMNfbjVfxOAwyn45h+gySdR3oj7F8u jh/MdvH0NS6OOywiHr9+cmdKUhdSUFbAzfGFeW6e/zLSm7itinhB/BLEfTPY2WB6xIBNt8jD ecQluW+RpLCHy3kFaRbYi0jhkPERUngwTYS9KwYOT2lRvN6dyCfBM454NYrLeRLTr5SkF6L4 eGHMGezn3ig+XsejuH4+jOL6+QLTZTi/wYRw3wbPXKIPEX2SaCPQmKsk6RPkF4EdHs1xlhgT JgZsz5lenr4GebAJi4mvRB4OabuI/xPyUyWpgfhR4SXHEl5yLOElgU4l6ic6n+jNRG8jmkN0 OdGHiBYRLSO6lehjRGuJPkX0OaJ/JPoa0cNEjxP9kug3RAeIIv4V6ViiU4jOIXor0XuJ5hIt JrqVqEL0l0RfIrqHaAPR/yR6jijzywj0aqIzid5E9DaiAaIFRCuIVhHdRfR5oq8SPUT0ONE2 ol1E+4nGuDgdT3Qa0blEZaLLieYTLSf6M6J1RJ8j+grRN4keJ9pKtJ3oV0QHiGa7aZ64+Xy7 lyiuZ8QFFhAtonIVxD9MfBXxjxO/i/hnif6e6B8p/yDxbxF/jPgTxLcSf5r4s8R3E99L/LfE ewi/yGJojSW8JPATiL+a+OnEzyZ+HvFZxKPrbOz33USXUX4+4SXXE/8w5W8j+jNKryXK8JOw mH9H/D6i7xP9hOp9SvRzuv9Zyv+G+F7icYNA3hPFeR/xicRfQfzVxF9H/GzibyF6D9FVlP8A 8euJLyZ+G9HHKF0l/hfEP038i8S/TPwe4uuJ4j6LejtL9B9Uzh3N9TM1mvP+aK6HOUQzonn9 myj/duJziL+P+NXEryX+X4hXiD5F9AXK/xPR/ZTOYoNBuwaIn+DldCpRxOXr+2+8geOcT3wm 8SuJ12LsDIXrBPM5FCzaMLP0+tHhOtPnzZ472pg62yiYrIbrvAKsGczXPNsEOErrizVvc5wJ w+2teVvpFXF8Iq98oebEqQGv6shwBmMembKGCXhbzXbfmOVWerd/TYBFKr+GQXmE+gf5/cxQ UoqhonprjgUn6vFU+EVkySz/B+E+h2/3YaX5/p9oDTXaE+4er6zpM4F6BtSQVweDEVXX9Kkh DubhAt6i+gyjiJ8uCyJq5QRF7lHluCa5DYs1ye2cnGFtY3ifNgKqNsndLFHeoQOAQm3aXRkC bEBdAuJ21srPKHK1v16trFYCdWpg519/D2rDgDZqYIeSmBxpVkJt/mPme5lvoobqfPvdfkQh vgTsjILM+E0/8u2vV6uZrhytkXYGrUyoDeO3E4i4OpDmsmJirGF3emqXuJVAjxqoViH13ayu p1TgQtW12Yh6Up3qUrfiPqEsP+HO6tzCMFI9kHXayVRUfXrS0azOfC4IKy1xg5RAD9TI6lzM Su/wQ161GtrJYHCJyco2FqXHG1mRiCDYHRoEVIN/9gav1xsbpyOMEg7Nc2ntx289GOhIR7Hh APKgQKb5R/MjBGOfYIF+VQ6olXFwr9Xhm5YExxkRlYwoP9nC9VwNOKpGwZWO2GLgvHQt5JMJ M8Zxpzjdu86K62cZBq6SvUJTaupD00aALvHAVUqvEAbpOAWzsukvTFy2CBIsCwP1HKUHaooy loTYPlbf+8/Xh/UU7p4EW4TYww981Wje0do+1ST3sOkMq6bDtJ59+6PVnI7ehVkOR/CS2o3S IjXQAWm9C7MdjtB5uFL+UV0fnJA5JjguMz54SZZvv6O6PtSj3z/j/YpttfdGMvo3TvPtz4po skKJXZfVEW5al++5M6N/01ep/UpzuN6pBLr1juGYwrzshoG9BYeElkl3TW/jwiiHBFsUTO+g gROFdaDhtA+M0aaRjjMOxihNi3w1V/EVYkQimyTEsOID/4rDbn3667s+MM0f09aZXCsz/HKT zFyJ1YabXVrMLANcDkX02ybjnNkojVoefjD9PeTh8wLGP9k6/sFrSXBtGD92YfOb30JH2w6S CuPF5A21wyPYND3ZCBM2uv2eSzOvQCYwTp8AQ87zOm1+z1ArvVBDEAE7NK71jAvBKXpQNrld aw3t3xlyezAOZlL4yAw2+nU1EVoKQT/fL3Q4cLSpNQK6dLu7BmdcqMWPO+Vcf0Tsn1HfaL+w Xakb3TW9SlOoVYytpotW5DOULlYJnYEqckcwHabyLLXyDCyNaPVSESQK+1cpNAuFR4LxNb2h T/X5SlpR0YeO5D/GwKfb8KZn9On9AQP2skTDU4KRb0rVFUf67PptV3yd+Bc48M6eF3bhIE9X c7ywx8PWf0jZsWMHbP4XPhNH/JTybsPXsUVNCWD5pYJpceFL5WjDOQ88ueDqzw1feZSe2sR9 TBsnGtqjUptTG5W+mJ5YucdXjZ6EaiKh7BE2bb5NeEVgvRlVvFEalYQ4tiMJ8OeuAyPU0ws+ YdUPzd/F8OwTtAGrqSbiq/4Uxoop8HVU2YWzDediiw6jgpRAi9LPtPSZ0se01HHhM0bPNHzu hNFiGsIiMFcCZ3w1XShUTmiSW/ksEK0oRBtjHPPUCwfZYPUpFy+cc/Q39Mc2RKak9mt37FbO px4+wMYu0HzhnCo3KycdDUhyehoqezwNfVNS5R5W4MJXjvMN/Z7U/lo3/rghNXwelXo49c9K D5TxN6bCXt6CN8UXByMgodXAGVD0ePTUsTw5UYVuo/qZX5AeHAGVPSb0mR8+sphNR6a0C18K +mrH1jN99TA9tZG+Wpm+Wrm+oAgoCRLRO8p/M6R1e6zcEiwacVpYW8la2IreH9RAG29ou11D jVCHnD8oqGP5UOpI4DeK43fw4h1sRNcZfkEYbtsOsS3I4wsjDvVqK4w/Tw17ImR6nvT6qvG1 kigbNpL0ZNYJuVvfBvldZ8F+CXtlsdIUbnKb7A1dH30TN6WBFc3OcGBF2/gpMD+VqX3qogG+ ierWgzoP7gF74EvCxspscrGQ9vTXDymLBrr2iqZA/VCmwDuD7D2mn0yrRemrRteb/mMHmSYW m3ehmnpFbvNV4w9RKpxjuBINdQXa1NmK3IpKxuMateEUTGrazuGZxY5xcouhv8lKg+9xPIky k/fD9pcvhxOxr2aWAx1X+2rwZfbL7ZFItK8a9wI1B44b7TXHlNm+GnyfjYE/6UloGh91k5ur 80lQJzxnYmCF4PcC6GqoG1Y7/np9J+xG4iNM7qipf3gxEJhtaqi1NrPKsE/89a/T1Ehgg0Ke aJifDP2JCQ+ySE6HEh3+2h2u7IiE3oWRA1lN7ip2YyMWKq4E3Xo5ozvOCbQM41SkM5VVHK6I GoLZyv2rYHe5snmvw/VusCo6v4C9IiMAQ3iEbRqt4uBGYJrJrZ3/Djkwsl5teRgHST50Z5gn FnHOvW875+gc2nl5RCvd1WyyH+2sM5pS6h78P7JihnKYR8fVPPPASE48xNqxx9gbdCuLv5Pg ComsSO9qN93P6odqkumJR5MIZ3h3cCGps1tpomXD7AzDNDJOU3dazSxmKYGZdZzPENFg6hYM EuEUPcikh1P4F9op/EbH8Kdw035n7h+Ymh1ubCWafcE1j94sBVdCi/OVRqW3K5o1NLgCOrVN XOChs0y/gxsvuCkRDyPkAQauWL2fKD3I+nu73rS+bxms/3UXLXp/UNc3mLGWw3198EbY8+FA cLloeTYa9m5GY8UEsZmGIQzHLGb9hl7+3mMiPE/ANARj0Gr/96H9D2aZyR2R0hRcSu3TTGm/ 8VjB37kw+HEweby/F3aQRLBv0YsVvt0Iks8fW7NPe6Nh+MzRk/QaXe+x56mNvhcLR4/bQxNZ Jf3AcVSVj2rPUH2rPxrsZM1kD1zzNEEnWNc5jGmIjtO0A5T8Hj5GEDcDl+Kjo8VXjb7W0WOa 4ALtPWNXxHRNZbA59flebWxod2LV5kcqazPf7MOMyjayB8Xzi1rZWhN55HbYWMOH3RmB9soF sAMecrOctq4f18FDo9Z9qdIfbnTD7pzRXDlZzWkBq9DB3kW1OA6rTsWBs8eZEWrdfhK2Rofc 7pDboF5GoHn788KJ6qjZ85sxVkJPDGU2yUfZNviMuGnCAu/VFnjUSAtc2GnxFycbX0W5OO6D 7PVw93r2rsoLsxbmqWi1R4c74sJ96ZtiwXJhX/kxywXB8swrEr07e32fuUFBmKOLjcOEPnka 8bWRvgh9tYtddJ40zV6t+A55r1B+vrx324dG1j5T1j7fL+p9++u7XhviVuW/GqoNrF7ntmFa ufP+YTJ59QXDlKi6fMTqFy8KJeQDWCTwhl4q8IZv5ykosT02Qz6g9Pqq3uXFab+hWvWs1hHj BXG9WnnE3+g/FXOR7vKU6S5HWfn3jLu856v6VyixKSZDPuqrWkv32KjJb2blWwz5zWplS9ez Qyot5eJIvfYOU6Lqy+9Gqn5MKMHzP17TyriP5daPj33S+V/tz/oef9amVBuVauNldtf7fn04 qTndgVIrBpU/vaadcafldl3q7TalOqhUB5bp+p1t49HerWLPsOBG8U1w58CAIXCHvN80t/f7 qlpN2a+Zsl8jfbw+MJLGfjmg21dVtcwq6qyIoLuqoeLE/8iIE08uqtyiF6vR+KsiZ1NjxkHW NLiI9XAfVdxVVfylug8q9Exl+K3yDPZPZfZqdYnZ9dVYs5OrH/PbodREN1xqtcZNh1qT4iXp 0nESz74MLyRp/GUm6RPihW5OvEyQcDmPZT/J8JY1mRrm4ewVRtXY2PjYuFhsz5ShPGoleUyu q640O9i6aqZElTxipasFaZChJSd7dBdWKCvFo+sPZU3F3xKnpZuKTBdYKJJquOi6Jl0YmGvT TZJmCCwIuS7WwevMFB14XW9uo9H4WR5Tbb/od2u27vVL6Faax9TIdO6va46oGq3oXLG+cct5 moux+aJXMfQpliH6FLshXfApdqPooywTBUjSArO/s5vMDs5unuwgp2PoSIU7HctKZyQbCZa5 1eypbOEgP2NPX2X2M/Yb+hWVAUvxq81nfVDAG8W8fkXjr/ReZ9pYdC7m3M0TV8bjT7/Oz8ag czEXdy7m/A4X5f+w9+bxURVZG/C9fTtJh3RIOkkHwhogQCCBkIV9kUBCCIQthE3BJiSdhax0 ulkURAEVXgRBnBkdHXQUfV1AHXGUQVQcHEXHXWeEEdydwRl3HZdxHL/z1Dm3+/Yl8L7v98/3 zwe/9HOfqlOntlN1696qWxXjeN+JzcWcX9AT25Dx+EDWiY2Jh1yrNmhaivnxGOcxuiUP2YUF xRJNjBOnTzgGxUOvs4W6hricezXsggJ35xGKKK7xVg2bYDumurGzmPM9ePfDfkbOQjd2IMNp 8M5luMzGJyPOvqQsZrhKwe1wzVuGy49wOQECcTikB+pdmHTrptaYaboziJwOUdHGoRxykHDn v/AZdO4cXGItvGOYWr2Gb/AdeSoNN+NT2PxxuLwHPVuBSsNTHroswhZHjpNYRuZ0YjTiGPk4 PB+F5/QjuPweuxdV/kpHjm+n3y73Y3I+AdsikQtW9roRbWI3KkrHFv1puu6K/fAvR/LJIQmb 6zi26lhPjV2/FlLeaQTJ1Kk5PyXer/+PRJOxjNdIQP/Z3zOZBu79stUH+gO0FKxh7DfEJ2Fi VEadj7twasCbSCR2EBrYawr9JmNt7jYqKPfAXh7snz4wM5eVePB8P7BfISvx3ESlPbA/R+Ci bFKQrDxsvB/jxHLeVGxcqyOXnNU0fP/szCrwurFc3ostsnTvFtLh8J7xqFX+T1FBZY1GMOfP sIneVFSi85+UvawSLEiKP4aCc8aRdFbpJ3CoT4DDz8his6bj2JPkfNI6iYqrKmu6B2tesmZO dHLaSyhsVsUcJ6f9cuiY5VfM5YFM1mz2c3uuIcvImsMs2XMHRZE1d41iaR7s/501b5ti3T34 XDqrklkvDxZLZFXdqlimBzv8ZC16WrEsD3ayy1rMktmeHMSw5D3Fcj2/QrgLv1NshOdGSC7F 3m2OAUWeF7B/UO1cxcZ47oakf7FiEzx9qeyy6n6lamOyZzByW89+JR4HCq2xTbHpnmboXMmS FR7YcVbzfym/uVq6PtqJKntaVRzKrwuyrifAmVymEqSqr+gnoSrFFeur0vVVKuQrKiR2Yuqy TYVcxTIb4HJr2MUMei0UHg0rDHslHGX/w6qh3AkprL7U8ZNwHTeW91RUz8MP5cXWdYrDnUF0 at955WK2L2yy1aVEOcOwlXOC2jhvUvjn0bAHBCkQllPFOEer2LwxOPIrxrmQsEtbjNl0VSDy xpZkqShMzk7E3mOc+KLciZWvCf1vosvkV+knMQn7xXHrTBh0NTdpz2/JghMGvxrDxrnTg13v mGG/uF3Qg5WPKf2xS0H8S+ihY5yfYd2l6suwTZ67Pz5Uj38mFS0CywqT+idjAc9Y+slBr5rE kSZFRZo0GP7cJWCNlnMqxlF9VJdwkjrmxCzc9pKvoZ+nSdydmJWCzxITh1j7lcShWCaJlF9J ZpeYwwwpxzLXGOcJVZpfqyWy2MBsKYrfeQ01EGM5FrYmn47llZppxnLPJ4lY6bo3ltOIFDvH Z8ZLV4cpOqMam+t3zyVNf6FEuIzqDPQTrjz0SxnXUADXCPSNGWupGF35WNGZsYfichWsh2sb bmGFqoacT1NPZNSMxrrVSvp5DeNTo0YlwQhIEjRnLyoHw48d+pPX0s9+D6T8nh3YhnUNdvVS Up+ANuJQ5mS4HaN0ZBqNSX8gLUainsliSYdBuwp1Ju2hjBnJ+hRFXUmXo/tO0Rcr6k4agG4x VeeiTk7aQGk2uumblW9a0r1UqUZ38e2edBiJ7qXfpXx7UXmjgLpgfa+egF9yuVvVRld0+qOV O35Nz4kEbpbAIrJUJILb12gWmA5XrAdWUapgCbifJGwwr0jotFJwMUTvCouO7lR0m9oIDQI9 UL8uZ76qR2eBqsc34nHv95lV6ixSVTrejeXjVWbtOkep2q1IxSJxLNnNOJaE9eErdalz59hw nTvHqTqPG0GKH3LJwEDXeiIKJ45LiR8wmbyS19APegF3/ABPFcUcP9cn7QUh4+fxvdDpwdYQ 8ZW/iTdNfSRdpYE64/O9n3fBzS0JwwHvU3Tt9C5FlN5XKNHJ3g/JzjK9SXS/PIoHInKLH7sh nhdUa55xzyAZ/6Gfe9CsPeM8WygqTwUsFMmoIlfPnBHcJDx/pNCeudfFmsmAhTr7kerYAUl4 6JnWhQ+ncccO8GBryNhBZnb+QsYfO7gHW6IHC39jh7If3cznk9qemfMocDyO7KHeBoqcxXi0 KW6A4ru78Krs5IzilLVaxsM8KtBS1mkZj5gjhLcokRmHmLk8+Awu43fM3JoTR9JkLH0Iur6n n03oGDOWer6gMu+R+6bG2gL+Wq3HsJele7lPbezLLNbjoGLpkfeydDbOi5C2ZU76TV6E5yw8 ZGUs89yBB7CpR+I500fIp8c0SYNnNMXZo2xyIt/pXyaZHjOmJfKdPpuwRwX3ld01Zy7syLcC 2m+kHxw/787wedZgo8PC+5NYe1oasSIz90vARhaaRXoJlmku3wcNMWTGv6AwmRnLVfp6PWqm bztVSq/HzPThlKJejzNL9uBcuV5PMEvzDIXkUWbdPekUvtfvtyZx43fis9GMmmSKJvkz+jlG UZdk1Ki4es8040Lae8/6WxLHtZJce8824zIort5zRkpZdKE66T3XjGs2nlnnMevlwckqvedz fWV6GqiOe1exX5bnZsS3gFm2Zzr8FrFkrue38FvMfiM8udC5hFmRp5pKrvdFLDnGU4wtLZey 3wTP+5Sm3suYTdaSuxA95EZl+FX2+hRI9jTnVTCIeuTf+TmpyGjAZRry5Mxo8T7Ao1B0Uprz YdRue2ai6iW74BdV5HSTQ/+CRfQb7+miWgHOy03+hoJ+S0Vy/eDhSbVUfNlufQ7ba9IenHHj 0fewwSY9TFLZKUJdSe2UtOxUoe4kHIKUnSY0OellasTZXqFpSZ9TS85OF9o9CSues7sJ7ZWE T1izuwvNTPoPhHsIzUrai4h6Cs1O+jPlILuX0FwaGBDtoxepmh+RtI50ZWfq4xQtSlqE5eb9 JUdjkpYig4OETkjCrH92tt6m6OSkXQibqxcqWpJ0JyIahoNl1I68MMDs4fpkpbksKYDCKdDn Kjo9aRXCjtevUMIVSdtRGsX6EUWrkjDiy54idHHSOmpw2SWSjKVJXZHfafpCpWq51us1qvrs B5KRpT9Q3t3ZD3uK4PRIkTTNYdQEsg9xHqljgrYjc8LjlB+xRN1ZQ6mPQ+rCD45wRW3H1Vld CzEqhOx6q2squaLjiXF2UXb0vbKjG5VLBbmkoZdw9s313oe6825JVJZXQGXSN++X5JWGlujs XeTNwccz3hvU89G9eGD1YjMwwzuqK24k2w0ctuTMQZMcfxjhBuL+OOAyL97Ya94ZboRbg5uF 9yKMtrwf4Lncm45EeUfHY223E58JDbjqS0S4h0J3C42n3+TaZD4kOblbSLWl7vPMrgLboHVf zA2Suu4m0ugtaEMSVtPlJRTl5w5vgQrkLZNAKXX1mndm1zQVJmUFkQom0z1v403aLDBjwBbd g4N7vbOZHtVTWhprNe8cpv/WPXMoGu9cpoccnhzS7p3H9GuH519UTN5Kpg8YngQqdG8VmrAx 4GPDk0yl613A9DvD8wHCLlyk6BanZwbCqi7IGLDVqT7S9i5heo3TU0Kl472oj9K8y+kZRaXr Xcp0n9PzB8qzdxnTQ04PBsjei5k+7/S4qVvx+pi+4/TgawvvcqZfOz3/gm81060xnvcR0Qqm N8d4iuKwpe3OJJWjGE8CuXtrmT5EvoiobjjHG+MJIexKTvPzMaoT9zYzfTlG3RW8LVtV2Ndj PPciGa3rFT0R47kd2/22cWmcivHEIUeBSZzmGM8gRBTE04Ex4IMYz34UTqhE+Z6J8axGpaxm 34/JHH+CrpFXkDH0XpnK2zSU6N6RyiIyx5lm9A+KK3MSj1jdnr8RZl6wKY3vOKibzMlIDe4c F4NNuU75ZcOSMqey8UyAJWWWMFmrjCOzlKv/IV0ZR+Y0pp/rqoIzp3Nx7HeoCs4sZ/qAw4Nv 0DMrOEsPOTy9MSqbw1kiO0MOM+cxPeLocyO1i8z5arCo9yUzdWjOP6Lsi0OUw2TEOAufVXiL PU7KQvpdI5I5yxeSd/r9PEhJ9mCXtPSH/qBYiudWSlH6EWapqnDSn+LCSfNMIEx/YUYa33Kn UcGmv3JbGt9y8USa/qc/p3FRZYK9Wce9t+cyKoH0t+cqvzFaHKwK5q96KKcWB8OBLZkc1b0p wmOcaM8xzi/VMzj6gxgn6jNtDck5M/O9v05B71KpeqWv0X148aUWjW7OoHxGLSSxONQasmHG gWQjvHAnzgdP33qAXJKRh91EXelb1WAx/RcyjFSDxfQbCs13XJeicLYtwxgUrx7SCj5GcK9X 03zosNIKVMbTxpiW9hW+MZowyCsdFvYSTyvKJBrvd6sbOYLGON9FtmIog6lDJ8IzLQlPzwPw +FI2G8ckrsGZcC5MHpSpGFJnmDG8TwlMrVgjMcQ4C5TCqfTrfB2d6aCdUPgaxhfOHCqj5Oxb oPA4/dyHAX5ytlKYnGtVmDz8eFjhZqXwei823UknLRdhHJ6t3jLgn7l7QuanSPNgNVDdTbK5 kMVkij5cySar95+8OTzLDgvLLobs2/iUrkg96mVqvGXe4rBsYVh2F2RvR3YeV3dh7HCCr4jx BXG/ak1/DK9v8HllvxVCXkLy+utPIi1rdZUYfK6JeaNP6W/A69CIj5X0SYZOT0La1/TXA6+q Vlc3a/pEQz2bUNwDPqIM6C+i4nIMHd8GvUrmNY1woB/BhxoQwNGUAzGmJY5ndwwgBg1WqnIN PNg6dlcRpfwbONneEWrP9gcCVEwGjPVBkh5yvBvvYI+vJYeqT9EKVSKG1qqyMND8c9QRkoUq ipeJ5xbGKI4HNiN0zcbcnmmKq1exoV0bc9d3Vfyzbthx/PqNOZM8YV3v098wrGWpQYT9WXCD 2oZo+AoqwRf7wVYNfEky/E6K7zXme/gBGh1N3E+kFg/dqnHFaXk7u5PINgxWexmqyN8h1fUG f8U1Apr07gaecalgB2bjZVGGyiLW2Q1sRrgeBp7XkaIRygR6GmwD7mFOUtOD/oYOgpo+Kly+ zxfENYoj2+cL4BrR3qgmIfJeQHLwekN3Gzree7cbvO08DrkeWIEpgQQD7u8Tz0EXqCcqjni0 grQM0oTyfdKh46OBOCqUMYRZTf51mn7UIdY5YjQGUyZ1joB9EkVox26M7/AuraCa6EQIPupQ x0+U0V9tWNnhaGWHo5UdDivLO0EXOrpG/T2HDsVzSc9/x/A3rQPHoUjfdXxE/Ag2l2zX9Pcd yBDOXMleZbJsJ/bVQvF+4ICl5NwMq/rQAX1LnVLdZ7i68cmFluftQQRPMPqrHO0DMfyZZTuJ j7gcjewVxw3KzDU1l6G/prQ5Qmu1vEoEVt8yP8OB8YHfNPq7ORz46ejAxyOBdyEwtv7X75AM IyD9HafAA5X0PiX9NfHcHkjineHQAw4jtDrm8qBDv5VCfRCrjtTRuGAfZElq5QWfk+RFqOxb HDq+v8ijQDPxVrtD0/eqEkXtqFB7pTqcWt4lPYk3IXVrHcrgR8Tx5+noCgqpua9RMeBwgsIV JvuQ/nKQDX2d4oPxkvS3aCWXKF4GfjHq+FLFV4E/mRrm1xIfHPCT5a93IE5HqFnLew8p+RrG U+hQz1ovUyreJRM/QNIDTyNnBQ40+5MIrU4aKHKog33nDn1TnevpQOZy8UpErqmTynkrNUwL sO1D3mu9yKEdbaqM4/mc4riBin0ueQ8ci9DTVDzr48x4mX8MrnbBnaZSjXdSrH66Ur8fXMXO /AS4ShlzJ8WTo05sLVcc76By1NkOzOcSH/pu1zBXH3TmlKIYL1IOeP7NuRTFvFTxneD/hPUt Uxw3xpwZaBXVir+oNm7Km9QbnTrS9U9dvVG8lTL7IBX0x+Q/8Ad0Il/rsI/uJJPzV2ToGx0j 8tngmNPSv9WhZAXmi2tCAZOrVvYjt7Kj3KleAMNL7ENOKxHuWl2/j0rhKEU2ivKxGtPiKoKd qje7DRFciRxfp2Oo+AH4n5LC/LtwAvaoCHFfzsF7e+E5xIfenBDm2cqmrldxXoDH40ZN/5mO UVATQjZBM/Pt4K8g5p8rq783QbKT0l9lBwtltZF0Xye2WdfxHv1O+nuCxEY9RNnzwviH6NyT kMc2uiv9Azqx364+VH+Rxh3dqJhzH0ccOTq35+bsRkpfrmJD4au+8x8mvu2jb+/DnxxnhwKU 8lGqsqaT3NCxMILR+gbsdKWSOZiT+aHq2zx9UWUopmU8TthFqRmAz6MpbKHStVRV8HXhOC82 41Qp8in2NvnmTEIZLVdaflQHb7VA+RTclKez9YwgxWfwrXSiqbxMKa9MNJWXR2V3hmKXwbcB VT+T37mH2rUBh6Bbnb3cU9c/J503kcBukhzYHRnuoedShh8DVxtW91DxnCaeEwDvpWOg3hdv osYspcHXYtj4i7o+9kqEfuF6yso4St5LaAvjVsrF+H5IIl8WdwlfLogLXz6CvuHlZRTNeAyq 9VeUK0bUcnkkwbwcF2yhO9SreLKfMJNSMH46NP5pjmbWUz7Xk3q30LccTWVPnGqISPmtyC3l cD7lYOLlGIp9jVaxEVTF8TXeTTyP/QrG9OOPzyf9HcF/QOiulL1JKqf/Rk6Hg74IJT+CttDf BShffPSqJ+mT/0DXRXgTUvwyXRWfpJ8p79HPjSQ45RO6OICL7+jiPVwYlJsEUj6lK13gbcmU DLoox0UWXdTjIo8uLuXN2lRmczmzWC+p9X0cmb0UFT5ODXhv9fJqCjQjDHjHYvjzajIPeBUZ 5cGGkbC/8QiAR6lJo1EME1Dt34JOCNPMVIl0FEeKFZFaHEZ84TdKPTQ3EqF+4s5YfTya+wQc f7Q6dtXcn8ARPUDY0au5HcTjBlsdkzV3N+Ju7GribsaLd2ibih2s9SxMnvJZPSW1mFhv+woN Uy+pxlBpFdoVEewDOqigA0nX3Wv7o+e8DBrxoFtymjQO3ol3bSQZpHwOvpaJ9jSGGNoeGPD/ 6yNtwl5tK1b6a4L/04E2//czbOpb21r8w1bXdShlFF45ED/H2TrBpnMeuhPt0V7dWt82LJ+8 1NX/7qie8x+zozZlUBtlRh2bg2s5TUftpizXttN02K86EKhexwIdwdrqQD0fksOeNW3NzVTI bQHRgB2Dq5uFrApVB5rCB/V0BOWyobqjQS6jDvsJtTaqTdfEyxIiXOCrsRu1f1hLW2sjx0kN RepZ4sSOux3+cwSUAMGmUGNLdWt1vT8gpwIFmzqC65r9YbamsbZeKWGK4kJJdoRdwnHGqnNf zLKNU0zto8aMq7SurRWyLuVbXxMWXN3YEVKlxbQ2UL0G+4yFHSRcnIoyUCPRmRWid3ZAUryS 9beGWsKJbcCWyiJPT7Qqafo5j0LqEjkKqUvk6CS1I6acijRY779wxFX9c0c8QH/GVn3/hPrm gl5Le7rW9VpKz2Z7+y1ypT7qut44ariGu+ombt5srHQtdjU1GJdMcM01LgmeOuA44Eh19Z/p yPMaK1ybXIcnznQt+nbzGyddfY26L12zZrlObtg829i/0TWhfrxr4lfGWtdwvhhIGpuuduSn 9n1+TMFjvb+dOdExKK3PbFe/8ryvJuVemOe6zpVqNMwweu06YPg2GU2OPN01ILDaNfN+o/VL 82rRlwNyXBfM+mHd5vtv6zfMtXiia8lmo9G1ePf4P090hYxF+10/v5+eXf9sNB7+yvXTkvEF romuPy0ZVuAKuQYsuOCAa7zrRdctrpkH7jNW7zdu2+gKZlW9OX/y0Afyhk18dFi9a8tzMx0F 3T5zjOlqJDjG6K66yVctWbTEP3Ez+TXmXNCsimFzXkfeo/6JjoHpjoGpvzESHbN1o3rTLSI1 9gLDs+lqx7x0Y/EmI3uTsXaTY2oPo+244XFM1o0rNn7pWnnVo9dOPJE7ybXE6O8KOrK7GYtd mUburvso/3WbjNrjxs83OopwfFXdFsTa4MpfcIEjK9UYTkkaP3FYXosxwxU0LtgbcjXe53qU EjFu4rDrnztwv7FyvzEDR10luI7fZ2S69u7+cLyRssk4uNHRX28y6hzjdFc9lUTTEuOSvca+ ja69rilLt+ychDOukl0pb2yeaaz7wGesm2B0Ge665X5j7X66c03QXRMmLh06ea0r1dXkuuXg M0uMQJCqPsU1cek1kw+4Zjr6px54dT3kp7iG7xnruuDRYXn5jlLvMWMBjpya0LDZ6PuB0bD/ wtxJBa4lw/IaD2wxpu8/MGxiw7MH/Hmbt1BBnHhhibH2z6dn3XKdEVr8ulG0yTEg9UEjtN+4 5LAxxzFSNz68zDFKdz1ufKu5ZlDCHfm6cUpzHV5mXLvxuOtWI931pWuLo3931xHzx5GX5hjU 4z+OYWmOrAy4ZLDzoDTX7125gFO3HKD8kgmkuE44snoYr2lUSFc4Eui+Fel7IycehVrRunFe k3SbmWUL0YmOyxzYoS1obWptW9Oq0YDTh64vfCrSwNpxA0cU1JoYRTLb6jLNS95NHVsxnu0Z Fdjizp7mCRLhKLlbDlPpmCM80Bi+5t7HSnEwVvhEp///3/83/wIr+JgEn7pZmBtVqu3oz+9l mp+vvTrQoTae7KARQE2Dr66tuVZR3p2yo725Mehb0xao7dCwx2ZLW6iVArU1ttLIg8ToBlvv xxaavLNmRxDHlwTbgv4Wc2fOlkbciyDLQwlfTVsLReo/r61arBzNqUNOKDAtFCcVVNcE/YFM 3Lgy6yhRtSSnWtb5hejf1LZQc23r4GAm5SezhW6hmTwMUMeaUQvt7PyvNEuZ4427Or+rLDHG dEeYOC1y7pfpnnkOd7w1H61FzgEzd3bGi/GpFv3Fmy1nh2n8KsUMM22zczaO+Qzv34wX4nrU 2WLq7LFM8cYb4Kut4a9yTtscMxsnD4V3lsZr2UqLTIklfrx4taa5/CqDkhCJH+9Sz+eP96OL dGv6OX1m3HiROc0SHnkP73gde24/vL+rsJSxNc140Vhi8bOXGd4vXhBdpvOs/niJuLuTNIfL hMZ6Hj1SXxXwnb45Jqyfxml3Oc4dHm+wUs6jHy+cVp8nPN7n1J3HJvBK56TF335eHV6w7DmP P96RHOrE37QpvOu4Nyr+mHlkVsqmwnlM5ZPdzhUHHqhxrGxYx9VG+VVO7KSqRZ2J5+JrrKpU bdB6qBXan0dkgV6RBXazySLt/UQWOFBkgYNtsmin+SILLBRZYH0nshcot90K61X6Kzvxdka8 w0d8oeWvkpiAayUm4EFbTEfp70mRBR4TWeDXNln1UK1LKWLKm69dhkyf2WVvcHAOgJ35X6Vz Fq6KhA9vs475st/gLYG28BkHHwBgOT9tsc7TaxYnzGAZSmoe4HJHVJGgw3rXwUkHvs/Xrvdl KsuaNMg6DU4acBHeLWiLABexqBtYz86dhHIB1Vs/bWFVJFRyJFQ41ZiTGqSc5sLXz5fhiiS6 ypCKJOzga1eHzHhZUw3ZbRy/wvvEH3iI1R7qJBhEd0a8n4hOAPrpVyQBwNckAa/JxFlUuyHu cUq7wXJ6vnalyryYVRb99zyRBc4X2fky72WXbXNyxoC4D1BbAPxK1AL3sTPgCtFwhUzSkDPA rhgfYGyMiarEg+T0hlI0D/Ae68SqULWLqjZvOkF1TJRpXRaJMXw+Du4/v4nh/AEP8rXroEyw RbUEvDaPlVaFtSGx0qpkPi2qLIjPE1ngApFdINNndtmmWC43oNq3VKvc3okobm2/FrXAO0Tt HTK3Zj/z7wuRBX4lsl/J9FpUNxbH25mqLo+wME66PJlPs8suiOPkAjfEqZoBbBS1wMfZ+fHz a3AC1yvRhesjGtzAgWp95kKAaAh3OtvUUnuuyuSIf63pj1iHquCLAIXs3bDIxbtbWwypMOJ0 SBRZfEcS/S0nI+Ib7hMwEHjFJY3OxXNmKLUTMvdnzTNkx8VzqQGXxSvbBGwQUeAt7Aw4JM7A N9gZYFfcnfhq5b1wg3hbkoixyBfxYgSEX8WLEci0YZTBkFtKF04i8OouShWgLIFFgZ8kKGfA 5+IM/JGdAZqp2M0zQOQMOE98TuBmFd+izZH43MBPleJFn0bicwP/w87/icTnBpar+BaVR+Jz W+Nbz/G51kciSQZem8Du10ZiSf48rHq3yoroCx/wUhfRsTgQCbfYIhs+trYlIrt0ZUR2qUU2 fIRtMCK7/MKI7HKL7HJTdkqXsH+txT/cEMZF/Bss/g2mPwr7Si531PPpLlHWc3MkJc0zI6HD x4I+EvFvt/iHe1dMiZawXcD7Z+4o7RgH/9otnRnh7Xztul1meKM6PnJ7gutC4d9YFeAaEQU+ mBgVwxsR73Ca/x5xC6cTI+4nE2VsRXgsUcZWMvUbNQ4jt7cTOSXAb1SUcwGaKUoYm6ycAXYN vbqGRcP28T65zUuKSvwPEY1LLWrCZpJHQd5KijaH18itit1qf0gKh68dQjg8Odo0jkdkG76I yIZNY1REf/N3Ef9wQU6M+IcLEo8mxclckMCpfO2aKlPQ1mLAY8pvRBZ4UGQPyoy0VfZZcnsl OWrE8zei8zw8dPNwCEvhxeLTGOU0F74XeqLC4glot4ejBu7ha9cemXq2Rg3Zgx6ub2DXFNVa AMkiCuzNzoC+4gwckBJ1P3mcFLzDKYVvv5SoRMMnkZ26E/Tiy35hNWFBPKHlp8jtmrAwRW7X MrsddbMlHkrh9AMfEf9HwrK7TVFtCfG/RqcYD3tfSFTArySqr2TCO6pDJ7f+qawSeB5/J3BI qsoVIMiibuBmdt4c0RDuwnvhKw/lPRdzqIXqclE9QTtfBiWQJQd4FP11qnQzhLenSjcjE9hR 3Qy5/V5yAPwLqwKckswAy9P4JkMwRDQAoc0WsShzAl/hfL0SUeZWqJQtBEhywtm1iE7/ayS5 063+J1nrfwg0pWkuNC1lpZ9jOa6XSzmcwIWdqK9IJcmRrL5ipTccVfg1b20kr+FOawu53ZHG PRDwfo7/YYJn+fJtgvfSotreL8OClYcIXuJLCP4jLerZeVQkxipLisJHy6P0L+GKQDYHRxc+ CuAeLoS3I4Vg+q6K6A4nbIskDP0Z8OFIbkQ03M2p5QBeMSnC271iUrJMIMqkyO0ZL5sUcGC6 SiegIJ1Fgeu7KWfAjm7sDDzFzoC3xBmISKyWRnoz09nSMiOK3cBZ4g5sFXfg1eIOvFvcgU+L O/CMuANjurE7cDAnxQ0sF/fySMrdwPvF/f5I0t3AH8Qd2Ls7uwPHdWd34FJxB24Sd+CD4g48 Ie7Ab8UdqBYHkjtwCNeFGzhd3IFSR+F2hsrIVvUyt1mKiS73ScnQ5ftSGHTZX/JPl1sly3TZ vTvnhi4XSQbo8oCkmS7rKcpmVWtztxHszIhqFEhAjtK/UJd00+XODLOmw4aLXGVxWPj+PFrN TvWyBP/29te0171qriAYCPl9mAwONra1alhOTo511c0dFtdcdm0NNTdHHBezo7y699XjJCos qd7F7o0dPryu9/EctHZPumVmQh1s9Xr6eecqsHoZcw5qVYGvuqYm1BJqrg62BXw8Ae9rqG6t bfbXaljWTIItOAgL0xHhk7JwpK6Glb1nz22cyJC0NzfjKDUsS+Bzvjg5HRqW1HYu0ORf16FV srd5GDcU17S1r9N2sbtyqPX72zmnn58t7V8VoqLCAlUkvbrJ76sNBapRriKmvWfx8zdXt3f4 a/kwavHHUk/bFE1Jb+0c0zRYtYi6VnXR4WtsbQxqD/UJlwzqCpM4VJpYbyeutrkdrYW96oNN VB0qqe1t7aF2H+ZLNKxRO9fcD9aGnT3Xg3943ytb0phGGt6WBv/wHIbFjnOpLe5yR9w/p9Fd Bg2HzKFdH/rrZzlKE7etPl7umXdbjtAcRL017gYrbe755FZoca8VOdxkJlgmetYFGxprmlr9 HR1RZ8D7ymaFgv61tiPjfDzFWwzT1rjopd7L5vD6JJiCOuu+klh1az0FKiuB8ZeVzPQtLJ+/ oLjCN3d+6YKSOb6pcyrmVJJsFZkAqdUCNb72QFu7PxBsxPniHBVhsKmyZj4WtGjivc5XU13T QIqr1rX7p7KYOly8bL5qWuWtq3HgOVXndHVyeIh+x+CA9oVqhQqupmJRy/maw2qfCmqeI+9D K0LAaW2twbPsrgVFhaPvmrSyChQAn/V+VlckJdbhb67TGqBfZs7NI+rl3HA+Er090LgaKcN5 e2XzldqaNupKVPujlExZF/TPCajzxsumtqHK5mJ5DhJY4u+oCTS2qzhtp9FTaS4on8XLheZy DNoK0uRrU6rKqmb6yqfOme2bX35hqa989sLiivISraxUTW6WTadCqlKGsKLeV1+jqWVG5oS6 ZYFWwF9HBRvC4ekdvrU+npE/RzvmFtTu9zdxm6REtJpdVsDfEWoOarVt6HYpm2JjNc2N7b51 plrpbjH7SSHbqYRx3r0fJmyxD0pwe+Palup27kPP7iXqQ+pg+DLKedlsMtLKBbN9FcXzq7TI QYxlWIC1cNr8hWr51SxetqWtQOwdDY11OOaxLYTSiZo+rg/bSn1bUNlLY3UzDrnUwrO/voa2 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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 NDPZvDb9mO7sp2pb4izpWbv3/dZXvCnFRS/NRcT1TZLmgrPzn4XGcZx/pLnSjfpmF7oLdh2+ 2irvnNseDzQbjcdUZzl7xrM8Hvxh3CpPnL7lzeakLNdVmQPNzbHgHC2iObJEuZvDoUjQcFRc pW5zTAfdxWaaa3XQqTUcbXHbOrqaI8ba6c4z1/ZIW3B7HKZiq7wl2t4uKzYngi1Ps4h2uXnP g+XmRSozZ7n54VreFosmb4q/Tvq7leiA2Z5k3SnpfTC/4q1afpDLNsSS22ddC0vSRM9PdKdX QKax5rnqa5hnWVNztL4M6pL696A+Z0z6/a663DcCe1F+Z+UqqM9ylbvdleHsTvKUO7mv9gB4 y33f047F3Wbro+3IdbVjmqe+3UwgLcm7mO22wzz1FS9Jvs55rvqm41NFuW7zhqxw+TEf2GpH M8ifaN6spzKT5fzoXE98BWMtK+4q54Ta5Ylv4BId8SzxFbriO8dTX/c+Jn9Iz/Yu9ZRbfIJl XZjZs9ylnuP+ZGnydSl2Hfennvr6NSXb6K7vZk99y5ZqPVJfqau+X+NTQblaU99Wl6PzOq/2 HHdkyLLGpjjuU+zn8IYEQu6b2WS5dz31BUPWDsmxyWcy01suxfnsPgcS7Y1YifWgB1v6WZYY pP15nvo2dOr4OG993uTOz7I+/NJty9zhyMJZHs72cI6Hcz2c5+F8q4h9fyKWAmsE+7vBEy29 FlXDxxnttnR2iHDM0vWSh8AXGN3gqm85jdwVlkfTyXP6nPJ/NLqPi2UN5Rk2az4blkdFL7NZ +9nwULO/wXaubwWJp8TKzHcnXlnLfWKGc70qSKzh3p2RjGeRrQ9XdcpfZ+s6xY79HluHujv2 NVxEnXjeldgy9f0XlrXcx7t4lwwd/90PrjEsj69w2i/PlJbHP+wN7/h+eLnQw709XOzhUg/3 9XB/Dw9IrCmfTPnW7AzL5ZWfWPN5dxd3ZSSvncLzDB/gYlkb+ngXn2044uLzMnTdbYdlDekr XLxjfP08bCceqi5Jph6Vms/Hna74SzP6W0+4WF6dDR7+xMNFmcl5jlLfXpnJOY3C0zOT8xeF z85MzlUUljWm17h4dWZyDqLw+szkfEPhLzKTcwuFd8tKziMUlqfZOnMGhWdnJecHCkvdzlxA 4ZVZyXl/wq9lJef4CX+elZzPJzw4Ozl3T1jWuHfm6Qkfk52ckycsz5p15t8JX5a94+sna9w7 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 zn0of/hl+p//TdumJbTtI/wjeIb8/RRzaULai77r/lf+JiQpL0eu+UaPf+bOVz79L7PNL/Xx 3xGatiUh/Wb5u1aPL5T0b0XOlb/35G9qQln4auNsy/wqOtl/h9rmF/dHJEnLt8xbUPAf7nLh 1/8nJuE98b9LEo43qbzHd0254Gl6jLc+4JdWBxRPluOz5S+s1+yWvx/I8fnyd5Wew7ciD9fj RXpdfUIdp+jx7SqzLPMrZfw30deW3wv+b/k7Vs8X2uZO3ROaPi+JjnjTwgm2ecPJIpGvJJTZ qscdKpf56tsrf72Wuct4h8if6flfqXxc5ZuW+WXBU4rPlfyfiXRfYYOn7hfa5o0bbSKj8rc7 oa5H5PgF+cNbHvr/DWdHIZ6Sv8ds87aGg/03ViseYpk38LYsc7HZjVxaZys2bwJoiWHj0Xsf cLGxtL4nXGzeY9Efw+rdV7nYzOxZMWy8fcVzLjZvGlgUw8dZ38pEWSNBPtaRR0v7xkuW5q+M 7wbeP8RUcaJl1nr3y8KmSBYVszR9Vfy1Cax9ulyf02/GHNKnyuKpSxb8jysu/b43P94hXvOB 8V9IfzrNm77wDKlPAuW3Nf0haUTup8bmgDfqRH+Btm/DEO/1rx/uxZW+9n7oa898fZnIUi1v 9THe9HG+txW9o68WgT0g6W/qUN9W/FN81mSd2OOhpr3HCsWZsoAapu0/5VCTv0Pru0ri04Lf mTGP9JnDvPVdIIviPjHwZtukTzjVm75Vyiu62GZMjfROCcx+eIfNufAosa+6U7z5m1Tfn2n9 6Vne9Ed8bzI4VnGZ6udIINoni6pVWt8zvv7+lfRHtziAo7S93z3Mm75yhBfvOd6LD5f+z+kz e0+4vtmXf6bW90dt//QTvOm/9/H9ktSf9b6JuVDeTcJf67tWzJ4DggveNfMD8DEjvdffqEHF UNX/HCm/4GSbMQXyl4j9t4v936N8d+nLbH6k7XtYg7ag4nafvn/38b1W+GqX8bZRy3/hKG/6 NT/w4myf/ncjf4/ZI8D1S9Xe7tT6N2Z68z8y3Iu3+Mbjcb70G33tecDy4i1HevXPyfKm78FC RhbA67V99ndkrhZ7RV7Ya2LMgPw9aq8XaXnYryt6z+zz4folmn/lEJP+9hHe6xvVZRbq9d3H 49esNn8hhesPP8mbH08ObZD2ZGh7Vn7Xm75Ox/siLe+rod70gM/eb0nx4ok6nibo9Rcch/1a m2sYtKcn25v/Ml9/44nshndMbER70/ZcreX91td/Rcq/O973+fj97ywv3qn2+5za+x+Uz3f1 +kPxVFi+zbU96t+h9veUpt+j9UUUl0r7i6Jmb43jTcsfmWLSL9f2uvwe4rPnEuXnH5r+PcV1 in8pRGXutGLzzfdSvdc/rfPFQ6rPmWJ/NdfE/dd+9e+4DF29XK+v0fLrffZxnthDg/jzi/T6 AfEHudk2992B8Xa71n/G57dnffPH7TI/Fji2vglnmHV3ujd9nM9+o9KfLXPi7f2Ljn98+xNF r/TZ30afP7nxu3h62OY+Fa6vyPKmr/f5k3t89veQz78/7rv+JfUP52l/vemzv/O1fTdrOn5B 35Jqcz2N9syVgLGhOB4vBE/2Xj9Gx8vv9fprfPPBU+qvH9D0U33pYd98eYev/Xt8/RX0jY83 ffHCcF9/HYd0Caof1vbjCcLoHeYdWPAfv9TxeZS2b7jUl7XW3B9A/hy//0Wmf8XtZ7em3az2 e5nMDw0TbN5/Qfol0p99d1ux/nwI9l0V789HdTwudPtP7K+5LJ4+xNffAV9/fSPt75JFxQL1 l2Ht71O1vKjqd5m2L0/9pTue9kshfR+ZtTbjIYzXbpfPYdYV6l9ma3njffPT4772naj53fjv yDO86aW+64ek49fONt8Zh/pW+sZXkc9e89Vez9by3zw0Ht8fLfH9dF98uFLbMzHV5G8Ue2gV e/hM+S0U+y36xNyPAv5W+Riv5df7ypvjs9/6DC/e5Gv/G1lefJov/VPl80ytr0X926k6X65V /+P605ulvc3vmz0QtPdq3/i3j/PiFeqvr9TrF/jGiyP2UnSczX1dlHeG2G9rrs31L/C9Ml5y D7OtU9W+DlF9P9LyntKXpbnzyVliv5kJ64uR6h9+q+lvSH8WfWb2RDi/K5/Zmn6kju/bFK/3 8b/e158/Ufs+QfO/6Vtv/LdvfrhUxl9ORbx996R5+9fxxX/3+OKFoPLlrg9SxD+0fG7uZ6C8 fb7+/YH0390J8f4n0l/dA2b9i/xt3/HmXyr2deYdZj2C/B2Sv2jArIWR/wSffq8p3+3anltU n1Qd7xPx0dUr4/58pPaX29+Zvvn4Pl/78WGv1u44X5fq9edrfODeDz1Wy8OHIl6T9h+r7d8w NF4W0l8XxRra3fhqmPWRb3y9Lv6pb7jN/TKkf+FrX7qOz81a3gmnGfye6rvb158fw74lGJ2q 5dUIEd1fWLH49vu++gt865PPfeM1cqwX1/jG3wm+9dxhPn9xlOTvajd7Jqh/srb/SdVnvm++ q1f/5cZfWdq+21XflWKvNRIvV2p5uT57X6PXl2r+Q7T/HtPyRvr8d4eOV3c8HSmGknt+fH/h VE1/X8s733f9Wu2fR/X63/j6d4ny+bD64x3CR9/e+P7GL3X+Pkmvv0rt+Vit7zy8eXCIzXu/ yD9N2+P6t+t0/gsp/sIXDxyF+C4QH/8nZnnTl4l/aK2Mp2/U/rtBy9so/dF8oc19baS/6rO3 C3zx8W71H65/GYWTu+LzzSOq3181vdkXj97is4eZx3n79z3Rp7s83t7T1T+frv3Vrfy48T8+ mFTU6/rXYVa5z76ftLz4MQkS2nvi64MVOp5naHkf+uLjGUJc+5k271dy/a3z/xLNn4v9EPFH bvx0tK6/fq3tPd0X336d5cVB1J9p85kdXP+4zx+OFT7+R/wPaIP/CWl5rv0PPTO+35ZpfTaA N2Rk7Tb39VFeh/ZfQNv7Q+X/UsV4A0zRR659DbOO8PF1n+rj2stfla9OxWN0fG5S/E/xD3MT /OXnvnhzsvRf87Xx9Tj2TGuazP004Pd88fDvR2IPw+b+N9dbvvnsabGXrPL4euV+1S9f23Ok +N+chHgsU/3N9zW9Svqr9U6zj8z9D7UH177G+Ox1hG/9c5uvPdPlor7e+P5hisan7nrlPh3f rr1d4Nv/WaXjbbGmr/CN9zd9+Je+8Xm8Lx7d5vP/+3S+X6Hl5/naP8pX/hSxv6eETwwr8LlJ +UzX6znH6/7y0dbhElt5r5/lG4+/VX/t8nOhb7xNFD5q7jTPoaH/fuZrf53y8Se9fqFP/8fU Xz+t46Pdt59ypPa/G8+f5Nsv+cQ3/jq1/Os1/wPa/gcV34z4YaTNN9ugvW9o+fdq+ibEZ9W2 7icMs8b4+vt0nz0t980/bvgLP4akab74fJTUn/sdm8+loPyPfeP3j5Le+j2bz9RwfaD9gfkP 66W/K18XufuNvnhps2/+vdHH70wff9/q/Oj6881i35kj4uP3UV/7j/btN33lK2+Zr/5aX7pz HPbGbd7rRvmtvvyXZIn+p9mWnWrS3/TZ7zSff3rItx7tU37c8XuRL/75xDfeHpN/2j80z16i vtUaH7j7ZZbPX3/tWw+cLP6xqybuz46R/JsT8jeof3TXV3jesbvJiq3PH/bNN9vUfi/X/P8j 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 v3///fvv33///vv337///v33779///3/5+9/AcKVrSIA0AwA --------------060407080808030906030006-- From jjrussell@gmail.com Tue Jun 20 09:45:46 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 286303B017D for ; Tue, 20 Jun 2006 09:45:46 -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 18045-10 for ; Tue, 20 Jun 2006 09:45:44 -0400 (EDT) Received: from ug-out-1314.google.com (ug-out-1314.google.com [66.249.92.172]) by menubar.gnome.org (Postfix) with ESMTP id DDF3E3B01B0 for ; Tue, 20 Jun 2006 09:45:43 -0400 (EDT) Received: by ug-out-1314.google.com with SMTP id o2so2994482uge for ; Tue, 20 Jun 2006 06:45:12 -0700 (PDT) Received: by 10.78.47.15 with SMTP id u15mr2704279huu; Tue, 20 Jun 2006 06:45:11 -0700 (PDT) Received: by 10.78.124.12 with HTTP; Tue, 20 Jun 2006 06:45:11 -0700 (PDT) Message-ID: <46cb18130606200645v26a76091w98fec72b69db943c@mail.gmail.com> Date: Tue, 20 Jun 2006 09:45:11 -0400 From: "John Russell" To: doclivingston@gmail.com In-Reply-To: <1150767859.5180.33.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: <46cb18130606191233w68f08b35t5b4a360a592e8971@mail.gmail.com> <1150767859.5180.33.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@gnome.org 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 13:45:46 -0000 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@gnome.org > http://mail.gnome.org/mailman/listinfo/rhythmbox-devel > From jjrussell@gmail.com Tue Jun 20 10:35: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 2D1423B0460 for ; Tue, 20 Jun 2006 10:35:45 -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 20209-03 for ; Tue, 20 Jun 2006 10:35:44 -0400 (EDT) Received: from ug-out-1314.google.com (ug-out-1314.google.com [66.249.92.175]) by menubar.gnome.org (Postfix) with ESMTP id E4D933B048C for ; Tue, 20 Jun 2006 10:35:43 -0400 (EDT) Received: by ug-out-1314.google.com with SMTP id o2so3019711uge for ; Tue, 20 Jun 2006 07:34:40 -0700 (PDT) Received: by 10.78.51.16 with SMTP id y16mr2736730huy; Tue, 20 Jun 2006 07:34:39 -0700 (PDT) Received: by 10.78.124.12 with HTTP; Tue, 20 Jun 2006 07:34:39 -0700 (PDT) Message-ID: <46cb18130606200734w36f36216u73313119f680968b@mail.gmail.com> Date: Tue, 20 Jun 2006 10:34:39 -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=-1.819 tagged_above=-999 required=2 tests=[AWL=-0.777, BAYES_00=-2.599, RCVD_IN_BL_SPAMCOP_NET=1.558, SPF_PASS=-0.001] X-Spam-Score: -1.819 X-Spam-Level: Subject: [Rhythmbox-devel] rb on pause doesn't seem to release the audio device 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 14:35:45 -0000 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@gmail.com Tue Jun 20 11:01: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 D5B553B00E9 for ; Tue, 20 Jun 2006 11:01: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 21722-01 for ; Tue, 20 Jun 2006 11:01:17 -0400 (EDT) Received: from wx-out-0102.google.com (wx-out-0102.google.com [66.249.82.196]) by menubar.gnome.org (Postfix) with ESMTP id A61983B00E7 for ; Tue, 20 Jun 2006 11:01:16 -0400 (EDT) Received: by wx-out-0102.google.com with SMTP id t12so482372wxc for ; Tue, 20 Jun 2006 08:00:34 -0700 (PDT) Received: by 10.70.78.15 with SMTP id a15mr8472903wxb; Tue, 20 Jun 2006 08:00:34 -0700 (PDT) Received: from ?192.168.1.120? ( [67.86.206.80]) by mx.gmail.com with ESMTP id i38sm6240778wxd.2006.06.20.08.00.31; Tue, 20 Jun 2006 08:00:33 -0700 (PDT) Message-ID: <44980D88.4050504@gmail.com> Date: Tue, 20 Jun 2006 11:00:24 -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="------------040908010102090809000004" X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.586 tagged_above=-999 required=2 tests=[AWL=0.014, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.586 X-Spam-Level: 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: Tue, 20 Jun 2006 15:01:19 -0000 This is a multi-part message in MIME format. --------------040908010102090809000004 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit 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 --------------040908010102090809000004 Content-Type: application/x-gzip; name="lastfm.tar.gz" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="lastfm.tar.gz" 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 DLoAoAAA --------------040908010102090809000004-- From adam_zimmerman@sfu.ca Tue Jun 20 12:08: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 A3C493B107C for ; Tue, 20 Jun 2006 12:08: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 25447-03 for ; Tue, 20 Jun 2006 12:07:48 -0400 (EDT) Received: from pobox.sfu.ca (pobox.sfu.ca [142.58.101.28]) by menubar.gnome.org (Postfix) with ESMTP id 7D3293B0FA8 for ; Tue, 20 Jun 2006 12:04:05 -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 k5KG3uN0008689 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NOT) for ; Tue, 20 Jun 2006 09:03:57 -0700 (PDT) From: Adam Zimmerman To: rhythmbox-devel@gnome.org 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> Content-Type: text/plain Date: Tue, 20 Jun 2006 09:03:55 -0700 Message-Id: <1150819435.17540.17.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.487 tagged_above=-999 required=2 tests=[AWL=0.112, BAYES_00=-2.599] X-Spam-Score: -2.487 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: Tue, 20 Jun 2006 16:08:03 -0000 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@users.sourceforge.net Tue Jun 20 17:30:27 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 563AF3B0A36 for ; Tue, 20 Jun 2006 17:30:27 -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 15439-03 for ; Tue, 20 Jun 2006 17:30:23 -0400 (EDT) Received: from allele2.biol.berkeley.edu (allele2.Biol.Berkeley.EDU [128.32.118.82]) by menubar.gnome.org (Postfix) with ESMTP id 9F59C3B02F3 for ; Tue, 20 Jun 2006 17:30:23 -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 k5KLUMe7024086 for ; Tue, 20 Jun 2006 14:30:22 -0700 Received: (from alex@localhost) by allele2.biol.berkeley.edu (8.13.6/8.13.4/Submit) id k5KLUMRe024085; Tue, 20 Jun 2006 14:30:22 -0700 X-Authentication-Warning: allele2.biol.berkeley.edu: alex set sender to alexl@users.sourceforge.net using -f 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> <44980D88.4050504@gmail.com> From: Alex Lancaster Organization: Sourceforge Date: Tue, 20 Jun 2006 14:30:22 -0700 In-Reply-To: <44980D88.4050504@gmail.com> (Matt's message of "Tue, 20 Jun 2006 11:00:24 -0400") Message-ID: <75sllzh5w1.fsf@allele2.biol.berkeley.edu> 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: 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: Tue, 20 Jun 2006 21:30:27 -0000 >>>>> "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@users.sourceforge.net Tue Jun 20 17:36: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 406FC3B0C15 for ; Tue, 20 Jun 2006 17:36: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 15849-09 for ; Tue, 20 Jun 2006 17:36: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 6A8D13B0A73 for ; Tue, 20 Jun 2006 17:36: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 k5KLaJsV024116 for ; Tue, 20 Jun 2006 14:36:19 -0700 Received: (from alex@localhost) by allele2.biol.berkeley.edu (8.13.6/8.13.4/Submit) id k5KLaJOt024115; Tue, 20 Jun 2006 14:36: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: <46cb18130606200734w36f36216u73313119f680968b@mail.gmail.com> From: Alex Lancaster Organization: Sourceforge Date: Tue, 20 Jun 2006 14:36:19 -0700 In-Reply-To: <46cb18130606200734w36f36216u73313119f680968b@mail.gmail.com> (John Russell's message of "Tue, 20 Jun 2006 10:34:39 -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: Re: [Rhythmbox-devel] rb on pause doesn't seem to release the audio device 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 21:36:22 -0000 >>>>> "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@bigpond.com Tue Jun 20 21:35: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 ADDF23B0553 for ; Tue, 20 Jun 2006 21:35: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 29876-04 for ; Tue, 20 Jun 2006 21:35:32 -0400 (EDT) Received: from smtp.felicity.net.au (203-214-122-19.dyn.iinet.net.au [203.214.122.19]) by menubar.gnome.org (Postfix) with ESMTP id A4B553B03BC for ; Tue, 20 Jun 2006 21:35:31 -0400 (EDT) Received: from [203.33.109.252] ([203.33.109.252]) by smtp.felicity.net.au (8.13.6/8.13.6) with ESMTP id k5L1cXX8004967; Wed, 21 Jun 2006 11:38:34 +1000 From: Gawain Lynch To: doclivingston@gmail.com In-Reply-To: <1150764803.5180.14.camel@localhost.localdomain> References: <1150735119.6206.2.camel@ubuntu> <1150764803.5180.14.camel@localhost.localdomain> Content-Type: text/plain Date: Wed, 21 Jun 2006 11:34:54 +1000 Message-Id: <1150853695.21424.3.camel@legolas.felicity.net.au> Mime-Version: 1.0 X-Mailer: Evolution 2.6.2 (2.6.2-1.fc5.5) Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=0.165 tagged_above=-999 required=2 tests=[AWL=-0.486, BAYES_00=-2.599, FORGED_RCVD_HELO=0.135, RCVD_IN_SORBS_DUL=2.046, SPF_NEUTRAL=1.069] X-Spam-Score: 0.165 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: Wed, 21 Jun 2006 01:35:35 -0000 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 gawain.lynch@bigpond.com Wed Jun 21 06:05:24 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 DD7763B0DF2 for ; Wed, 21 Jun 2006 06:05: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 27724-02 for ; Wed, 21 Jun 2006 06:05:23 -0400 (EDT) Received: from smtp.felicity-group.com (203-214-122-19.dyn.iinet.net.au [203.214.122.19]) by menubar.gnome.org (Postfix) with ESMTP id 913893B0F3F for ; Wed, 21 Jun 2006 06:05:23 -0400 (EDT) Received: from [203.33.109.249] (unknown [203.33.109.249]) by smtp.felicity-group.com (Postfix) with ESMTP id 1297224060; Wed, 21 Jun 2006 20:08:57 +1000 (EST) From: Gawain Lynch To: Karsten.Schmiedecke@gmx.de In-Reply-To: <4498E8F9.1070308@gmx.de> References: <1150735119.6206.2.camel@ubuntu> <1150764803.5180.14.camel@localhost.localdomain> <1150853695.21424.3.camel@legolas.felicity.net.au> <4498E8F9.1070308@gmx.de> Content-Type: text/plain; charset=UTF-8 Date: Wed, 21 Jun 2006 20:02:31 +1000 Message-Id: <1150884151.6040.2.camel@legolas.felicity.net.au> Mime-Version: 1.0 X-Mailer: Evolution 2.6.2 (2.6.2-1.fc5.5) Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=0.17 tagged_above=-999 required=2 tests=[AWL=-0.481, BAYES_00=-2.599, FORGED_RCVD_HELO=0.135, RCVD_IN_SORBS_DUL=2.046, SPF_NEUTRAL=1.069] X-Spam-Score: 0.17 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: Wed, 21 Jun 2006 10:05:25 -0000 On Wed, 2006-06-21 at 08:36 +0200, Karsten Schmiedecke wrote: > Gawain Lynch wrote: > > 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... > > But aren't "Volumes" separate Albums, too? Like for "Caf del Mar, > Volumen 1" there's a different artwork than "Caf del Mar, Volumen 2". > > -karsten Yes, but if I have ripped it and named it "Volume 2" but the database has it listed as "Vol. 2" I won't get the album art. Gawain From alexl@users.sourceforge.net Wed Jun 21 07:34: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 DAA173B0BF9 for ; Wed, 21 Jun 2006 07:34: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 00421-03 for ; Wed, 21 Jun 2006 07:34:30 -0400 (EDT) Received: from allele2.biol.berkeley.edu (allele2.Biol.Berkeley.EDU [128.32.118.82]) by menubar.gnome.org (Postfix) with ESMTP id 0F6D13B0DE3 for ; Wed, 21 Jun 2006 07:34:29 -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 k5LBYSd0029779 for ; Wed, 21 Jun 2006 04:34:28 -0700 Received: (from alex@localhost) by allele2.biol.berkeley.edu (8.13.6/8.13.4/Submit) id k5LBYSDu029778; Wed, 21 Jun 2006 04:34: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: <1150735119.6206.2.camel@ubuntu> <1150764803.5180.14.camel@localhost.localdomain> <1150853695.21424.3.camel@legolas.felicity.net.au> <4498E8F9.1070308@gmx.de> <1150884151.6040.2.camel@legolas.felicity.net.au> From: Alex Lancaster Organization: Sourceforge Date: Wed, 21 Jun 2006 04:34:28 -0700 In-Reply-To: <1150884151.6040.2.camel@legolas.felicity.net.au> (Gawain Lynch's message of "Wed, 21 Jun 2006 20:02:31 +1000") 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.589 tagged_above=-999 required=2 tests=[AWL=0.010, BAYES_00=-2.599] X-Spam-Score: -2.589 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: Wed, 21 Jun 2006 11:34:33 -0000 >>>>> "GL" =3D=3D Gawain Lynch writes: [...] >> But aren't "Volumes" separate Albums, too? Like for "Caf=E9 del Mar, >> Volumen 1" there's a different artwork than "Caf=E9 del Mar, Volumen >> 2". GL> Yes, but if I have ripped it and named it "Volume 2" but the GL> database has it listed as "Vol. 2" I won't get the album art. The most robust and exhaustive way to deal with might be: 1. If an exact match is found, use that. 2. Flag any album that ends with a variant of "volume", i.e. with a regular expression resembling: [Vv]ol\(.|ume\)? ?[0-9]+$ That would catch: Volume 2 Volume2 Vol 2 Vol. 2 Vol.2 Note: "volume X" must be the last part of the string to avoid false positive matches. 3. Substitute the original pattern for each of the possible variants and search the db for that (new) pattern. e.g. as in the example above, you originally had "Volume 2", you would try substituting "Vol 2", then "Vol. 2", etc. Likewise if you had originally had "Vol. 2" and it didn't match exactly, you would try "Volume 2". 4. Take the first hit that works. ("Vol. 2" in the above example). It's not pretty, but that's tagging for you. Ideally every CD would have a unique MusicBrainz ID and associated cover art. Alex From adam_zimmerman@sfu.ca Wed Jun 21 14:03: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 644563B0535 for ; Wed, 21 Jun 2006 14:03: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 27004-07 for ; Wed, 21 Jun 2006 14:03:43 -0400 (EDT) Received: from pobox.sfu.ca (pobox.sfu.ca [142.58.101.28]) by menubar.gnome.org (Postfix) with ESMTP id A40FF3B00EE for ; Wed, 21 Jun 2006 14:03:43 -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 k5LI3dEq019040 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NOT) for ; Wed, 21 Jun 2006 11:03:40 -0700 (PDT) From: Adam Zimmerman To: rhythmbox-devel@gnome.org In-Reply-To: <1150819435.17540.17.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> <1150766634.5180.22.camel@localhost.localdomain> <1150819435.17540.17.camel@midnight> Content-Type: multipart/mixed; boundary="=-DhT/CPZa8gskKxzJv76l" Date: Wed, 21 Jun 2006 11:03:34 -0700 Message-Id: <1150913014.28266.17.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.457 tagged_above=-999 required=2 tests=[AWL=0.065, BAYES_00=-2.599, TW_GT=0.077] X-Spam-Score: -2.457 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: Wed, 21 Jun 2006 18:03:48 -0000 --=-DhT/CPZa8gskKxzJv76l Content-Type: text/plain Content-Transfer-Encoding: 7bit Alright, status update. On Tue, 2006-20-06 at 09:03 -0700, Adam Zimmerman wrote: > 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. Done. John says he'll post a zip version sometime soon. > > > 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. OK, I've written the code that checks this and downloads the file if it has changed. It just does a basic string comparison on the last-modified header gotten from a HTTP HEAD request, which seems to work. I've added a call to gobject.timeout_add to set a timer, which also seems to work. The albums are stored in zip files, so track-transfer isn't really an option. Instead, I'm using gnomevfs.xfer_uri (maybe switched to async if it doesn't crash) to download the zip file and extract it (untested, not even hooked up to ui, almost certainly doesn't work yet, as it doesn't create the directories). > > 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. well, it seems the source does, which is good enough, since I can get the entry view, and then the selected entries from that. -- 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/ -- "Engineering without management is art." -- Jeff Johnson --=-DhT/CPZa8gskKxzJv76l 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, gnome from gettext import gettext as _ import xml.sax, xml.sax.handler import urllib, httplib import datetime import zipfile magnatune_partner_id = "zimmerman" user_dir = gnome.user_dir_get() magnatune_dir = user_dir + "rhythmbox/magnatune/" magnatune_dir_uri = gnomevfs.URI(magnatune_dir) magnatune_song_info_uri = gnomevfs.URI("http://magnatune.com/info/song_info.xml") local_song_info_uri = gnomevfs.URI(magnatune_dir + "song_info.xml") lc_uri = gnomevfs.URI(magnatune_dir + "info_last_changed") ################################################ # 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 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'])) # entry.data['sku'] = self._track['albumsku'] 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']) # TODO: 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): _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) ev = self.source.get_entry_view() ev.connect_object("show_popup", self.show_popup_cb, self.source, 0) 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)) check_info() gobject.timeout_add(60 * 60 * 1000, self.check_info_updates) # every hour. ###gnomevfs.async.open(user_dir + "rhythmbox/magnatune/song_info.xml", self.open_callback) self.parser.parse(user_dir + "rhythmbox/magnatune/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 show_popup_cb(self, source, some_int, some_bool): # FIXME: find out what the int and bool are/do entry_view = source.get_entry_view() client = gconf.client_get_default() cc = {} cc['number'] = client.get_string("/apps/rhythmbox/plugins/magnatune/cc") cc['year'] = client.get_string("/apps/rhythmbox/plugins/magnatune/yy") cc['month'] = client.get_string("/apps/rhythmbox/plugins/magnatune/mm") name = client.get_string("/apps/rhythmbox/plugins/magnatune/name") email = client.get_string("/apps/rhythmbox/plugins/magnatune/email") #sku = entry_view.get_selected_entries()[0].data['sku'] # just use the sku for the first track selected. #attach action: buy_track(sku, amount, cc, name, email, format) #source.show_popup("/MagnatuneSourcePopup") def check_info_updates(self): if check_info(): # FIXME: is there a better way of doing this? self.db.entry_delete_by_type(self.entry_type) self.db.commit() self.parser.parse(user_dir + "rhythmbox/magnatune/song_info.xml") return True # keep running the method every hour class MagnatuneSource(rb.BrowserSource): def __init__(self): rb.Source.__init__(self) gobject.type_register(MagnatuneSource) ################################################ # Methods for downloading the song info # ################################################ def download_info(): gnomevfs.xfer_uri(magnatune_song_info_uri, local_song_info_uri, xfer_options=gnomevfs.XFER_DEFAULT, error_mode=gnomevfs.XFER_ERROR_MODE_ABORT, overwrite_mode=gnomevfs.XFER_OVERWRITE_MODE_REPLACE, progress_callback=progress_info_cb, data=0x1234) def progress_info_cb(info, data): assert data == 0x1234 try: print "%s: %f %%\r" % (info.target_name, info.bytes_copied/float(info.bytes_total)*100), except Exception, ex: # Sometimes the method throws an exception, for no apparent reason pass return True def check_info(): # returns whether or not info has changed if not gnomevfs.exists(magnatune_dir_uri): gnomevfs.make_directory(magnatune_dir_uri, 0755) if not gnomevfs.exists(lc_uri): t = gnomevfs.create(lc_uri, open_mode=gnomevfs.OPEN_WRITE) t.write("never") # there needs to be something in the file, otherwise it throws an exception when read from t.close() conn = httplib.HTTPConnection("magnatune.com") conn.request("HEAD", "/info/song_info.xml") resp = conn.getresponse() headers = resp.getheaders() resp.close() conn.close() for header in headers: if header[0] == "last-modified": modified_header = header[1] lc_file = gnomevfs.open(lc_uri) last_changed = lc_file.read(100) # file should be less than 100 chars lc_file.close() if not last_changed.strip() == modified_header.strip(): download_info() lc_file = gnomevfs.open(lc_uri, open_mode=gnomevfs.OPEN_WRITE) lc_file.write(modified_header) lc_file.close() return True return False ################################################ # Purchasing code. # ################################################ class BuyAlbumHandler(xml.sax.handler.ContentHandler): # Class to download the track, etc. format_map = { 'ogg' : 'URL_OGGZIP', 'flac' : 'URL_FLACZIP', 'wav' : 'URL_WAVZIP', 'mp3-cbr' : 'URL_128KMP3ZIP', 'mp3-vbr' : 'URL_VBRZIP' } def __init__(self, format): xml.sax.handler.ContentHandler.__init__(self) self._format_tag = format_map[format] # format of audio to download def startElement(self, name, attrs): self._text = "" def endElement(self, name): if name == "ERROR": # Something went wrong. Display error message to user. raise MagnatuneError(self._text) elif name == "DL_USERNAME": self.username = self._text elif name == "DL_PASSWORD": self.password = self._text elif name == self._format_tag: self.url = self._text def characters(self, content): self._text = self._text + content def buy_track(sku, amount, cc, name, email, format): # 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': sku, 'amount': amount, 'cc': cc['number'], 'yy': cc['year'], 'mm': cc['month'], 'name': name, 'email':email }) buy_album_handler = BuyAlbumHandler(format) # so we can get the url and auth info xml.sax.parse(url, buy_album_handler) audio_dl_uri = gnomevfs.URI(buy_album_handler.url.replace(" ", "%20")) # some parts of the returned url are escaped, some aren't. TODO: Properly quote just the filename part of the path audio_dl_uri.user_name = buy_album_handler.username audio_dl_uri.password = buy_album_handler.password # Download the album and unzip it into the library library_location = client.get_list("/apps/rhythmbox/library_locations")[0] # Just use the first library location to_file = gnomevfs.URI(library_location + "/" + audio_dl_uri.short_name) out_file = to_file.__str__() gnomevfs.xfer_uri(audio_dl_uri, to_file, xfer_options=gnomevfs.XFER_DEFAULT, error_mode=gnomevfs.XFER_ERROR_MODE_ABORT, overwrite_mode=gnomevfs.XFER_OVERWRITE_MODE_ABORT, progress_callback=progress_info_cb, data=0x1234) # this will take a LONG time. album = zipfile.ZipFile(out_file) for track in album.namelist(): out = gnomevfs.open(gnomevfs.URI(library_location + "/" + track), open_mode=gnomevfs.OPEN_MODE_WRITE) # FIXME: directories will need to be created first out.write(album.read(track)) out.close() album.close() gnomevfs.unlink(to_file) class MagnatuneError(Exception): pass ################################################ # Magnatune Logo. # ################################################ # (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 "................................", "................................", "................................", "................................", "................................", "................................", "............++@@@@++............", "..........+@@@@@@@@@@+..........", ".........+@@@+....+@@@+.........", "........+@@+...++...+@@+........", ".......+@@+....@@....+@@+.......", ".......@@+.....@@.....+@@.......", "......+@@......@@......@@+......", "......+@+......@@......+@+......", "......@@...@@..@@..@@...@@......", "......@@...@@+.@@.+@@...@@......", "......@@...@@+.@@.+@@...@@......", "......@@...@@+.@@.+@@...@@......", "......+@+..@@+.@@.+@@..+@+......", "......+@@..@@+.@@.+@@..@@+......", ".......@@+.@@+.@@.+@@.+@@.......", ".......+@@+.+..+...+.+@@+.......", "........+@@+........+@@+........", ".........+@@@+....+@@@+.........", "..........+@@@@@@@@@@+..........", "............++@@@@++............", "................................", "................................", "................................", "................................", "................................", "................................" ] ### ### Async callbacks ### # 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) ### ### preferences, ugly and gross. Someone else who knows what they're doing should probably fix this. Should probably be glade too. ### # 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) --=-DhT/CPZa8gskKxzJv76l-- From brent@heyes.co.uk Wed Jun 21 15:19: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 9F12F3B041B for ; Wed, 21 Jun 2006 15:19: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 32127-03 for ; Wed, 21 Jun 2006 15:19:34 -0400 (EDT) Received: from ns.thishost.net (ns.thishost.net [217.199.169.69]) by menubar.gnome.org (Postfix) with ESMTP id 1DC313B035A for ; Wed, 21 Jun 2006 15:19:33 -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 k5LJKLs29773 for ; Wed, 21 Jun 2006 20:20:21 +0100 Message-ID: <44999BBF.1070208@heyes.co.uk> Date: Wed, 21 Jun 2006 20:19:27 +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.597 tagged_above=-999 required=2 tests=[AWL=-0.857, BAYES_20=-0.74] X-Spam-Score: -1.597 X-Spam-Level: Subject: [Rhythmbox-devel] Change Rhythmbox gstreamer 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, 21 Jun 2006 19:19:35 -0000 Hey guys, Is there any way to customise the gstreamer pipeline for Rhythmbox only without affecting the global setting? Thanks, - Brent From brent@heyes.co.uk Thu Jun 22 03:52: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 A1D093B02DB for ; Thu, 22 Jun 2006 03:52: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 06020-07 for ; Thu, 22 Jun 2006 03:52:36 -0400 (EDT) Received: from ns.thishost.net (ns.thishost.net [217.199.169.69]) by menubar.gnome.org (Postfix) with ESMTP id E9EDF3B0563 for ; Thu, 22 Jun 2006 03:52:35 -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 k5M7rEs30277 for ; Thu, 22 Jun 2006 08:53:24 +0100 Message-ID: <449A4C33.6090501@heyes.co.uk> Date: Thu, 22 Jun 2006 08:52:19 +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=-2.512 tagged_above=-999 required=2 tests=[AWL=0.087, BAYES_00=-2.599] X-Spam-Score: -2.512 X-Spam-Level: Subject: [Rhythmbox-devel] Cannot import M4A with chapters 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, 22 Jun 2006 07:52:38 -0000 Hey guys, Is there anyway to get Rhythmbox to import and play m4a files with chapters? Thanks, -Brent From doclivingston@gmail.com Thu Jun 22 04:24: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 A656E3B02D2 for ; Thu, 22 Jun 2006 04:24: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 08348-04 for ; Thu, 22 Jun 2006 04:24:21 -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 AE3673B01E2 for ; Thu, 22 Jun 2006 04:24:21 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id s49so245017pyc for ; Thu, 22 Jun 2006 01:24:21 -0700 (PDT) Received: by 10.35.9.15 with SMTP id m15mr818663pyi; Thu, 22 Jun 2006 01:24:21 -0700 (PDT) Received: from alyrion.local ( [144.134.101.144]) by mx.gmail.com with ESMTP id s72sm672424pyc.2006.06.22.01.24.19; Thu, 22 Jun 2006 01:24:20 -0700 (PDT) From: "James \"Doc\" Livingston" To: rhythmbox-devel@gnome.org In-Reply-To: <449A4C33.6090501@heyes.co.uk> References: <449A4C33.6090501@heyes.co.uk> Content-Type: text/plain Date: Thu, 22 Jun 2006 18:24:15 +1000 Message-Id: <1150964655.5178.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=-1.74 tagged_above=-999 required=2 tests=[AWL=-0.698, BAYES_00=-2.599, RCVD_IN_BL_SPAMCOP_NET=1.558, SPF_PASS=-0.001] X-Spam-Score: -1.74 X-Spam-Level: Subject: Re: [Rhythmbox-devel] Cannot import M4A with chapters 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: Thu, 22 Jun 2006 08:24:22 -0000 On Thu, 2006-06-22 at 08:52 +0100, Brent Heyes wrote: > Is there anyway to get Rhythmbox to import and play m4a files with chapters? Rhythmbox should be able to import them if GStreamer can read them, although without the actual chapter support. Can you try running the following from a terminal and seeing if it works? (using the actual path to your file) gst-launch playbin uri=file:///path/to/my/file/m4a Cheers, James "Doc" Livingston -- "can't go mucking with a `void *'" -- MPW C error message From doclivingston@gmail.com Thu Jun 22 05:38: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 62C723B00ED for ; Thu, 22 Jun 2006 05:38: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 13368-01 for ; Thu, 22 Jun 2006 05:38:09 -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 B0C4D3B021B for ; Thu, 22 Jun 2006 05:38:08 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id 39so267310pyu for ; Thu, 22 Jun 2006 02:38:08 -0700 (PDT) Received: by 10.35.20.14 with SMTP id x14mr884844pyi; Thu, 22 Jun 2006 02:38:07 -0700 (PDT) Received: from alyrion.local ( [144.139.19.209]) by mx.gmail.com with ESMTP id i72sm776509pye.2006.06.22.02.38.04; Thu, 22 Jun 2006 02:38:07 -0700 (PDT) From: "James \"Doc\" Livingston" To: Rhythmbox-devel list In-Reply-To: <449A5F41.7000803@heyes.co.uk> References: <449A4C33.6090501@heyes.co.uk> <1150964655.5178.6.camel@localhost.localdomain> <449A5F41.7000803@heyes.co.uk> Content-Type: text/plain Date: Thu, 22 Jun 2006 19:37:58 +1000 Message-Id: <1150969078.5186.5.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.315 tagged_above=-999 required=2 tests=[AWL=0.285, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.315 X-Spam-Level: Subject: Re: [Rhythmbox-devel] Cannot import M4A with chapters 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: Thu, 22 Jun 2006 09:38:10 -0000 On Thu, 2006-06-22 at 10:13 +0100, Brent Heyes wrote: > (gst-launch-0.10:21703): GStreamer-CRITICAL **: gst_uri_get_protocol: > assertion `gst_uri_is_valid (uri)' failed > ERROR: Pipeline doesn't want to pause. > ERROR: from element /playbin0: Invalid URI "/home/brent/Test.m4a". > Additional debug info: > gstplaybasebin.c(1480): setup_source (): /playbin0 > Setting pipeline to NULL ... > FREEING pipeline ... Sorry, I should have mentioned that the "file://" at the start was important, "/home/brent/..." isn't a URI (it's a path) > BTW... /home/brent/Test.m4a is a valid M4A file with chapters. > > I can play the file in totem-gstreamer. If it works in totem-gstreamer, then it's not a gstreamer problem. Could you run "GST_DEBUG=*:4 GST_DEBUG_NO_COLOR=1 rhythmbox -d >rb.log 2>&1; bzip2 rb.log" and then file a bug and attach the file "rb.log.bz2" that it created? Cheers, James "Doc" Livingston -- Networks are like sewers ... My job is to make sure your data goes away when you flush, and to stop the rats climbing into your toilet through the pipes. (Tanuki, describing network administration.) From gawain.lynch@bigpond.com Thu Jun 22 08:51:01 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 A7F8D3B0606 for ; Thu, 22 Jun 2006 08:51:01 -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 27073-09 for ; Thu, 22 Jun 2006 08:50:58 -0400 (EDT) Received: from mail-ihug.icp-qv1-irony4.iinet.net.au (ihug-mail.icp-qv1-irony4.iinet.net.au [203.59.1.198]) by menubar.gnome.org (Postfix) with ESMTP id 581833B025B for ; Thu, 22 Jun 2006 08:50:57 -0400 (EDT) Received: from 203-214-122-19.dyn.iinet.net.au (HELO smtp.felicity-group.com) ([203.214.122.19]) by mail-ihug.icp-qv1-irony4.iinet.net.au with ESMTP; 22 Jun 2006 20:50:54 +0800 X-BrightmailFiltered: true X-Brightmail-Tracker: AAAAAA== X-IronPort-AV: i="4.06,166,1149436800"; d="scan'208"; a="786608449:sNHT33720348" Received: from [203.33.109.249] (unknown [203.33.109.249]) by smtp.felicity-group.com (Postfix) with ESMTP id C779024059; Thu, 22 Jun 2006 22:54:37 +1000 (EST) From: Gawain Lynch To: Alex Lancaster In-Reply-To: References: <1150735119.6206.2.camel@ubuntu> <1150764803.5180.14.camel@localhost.localdomain> <1150853695.21424.3.camel@legolas.felicity.net.au> <4498E8F9.1070308@gmx.de> <1150884151.6040.2.camel@legolas.felicity.net.au> Content-Type: text/plain; charset=utf-8 Date: Thu, 22 Jun 2006 22:50:22 +1000 Message-Id: <1150980623.2998.0.camel@legolas.felicity.net.au> Mime-Version: 1.0 X-Mailer: Evolution 2.6.2 (2.6.2-1.fc5.5) Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=0.197 tagged_above=-999 required=2 tests=[AWL=-0.454, BAYES_00=-2.599, FORGED_RCVD_HELO=0.135, RCVD_IN_SORBS_DUL=2.046, SPF_NEUTRAL=1.069] X-Spam-Score: 0.197 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: Thu, 22 Jun 2006 12:51:01 -0000 On Wed, 2006-06-21 at 04:34 -0700, Alex Lancaster wrote: > >>>>> "GL" == Gawain Lynch writes: > [...] > > >> But aren't "Volumes" separate Albums, too? Like for "Caf del Mar, > >> Volumen 1" there's a different artwork than "Caf del Mar, Volumen > >> 2". > > GL> Yes, but if I have ripped it and named it "Volume 2" but the > GL> database has it listed as "Vol. 2" I won't get the album art. > > The most robust and exhaustive way to deal with might be: > > 1. If an exact match is found, use that. > > 2. Flag any album that ends with a variant of "volume", i.e. with a > regular expression resembling: > > [Vv]ol\(.|ume\)? ?[0-9]+$ > > That would catch: > > Volume 2 > Volume2 > Vol 2 > Vol. 2 > Vol.2 > > Note: "volume X" must be the last part of the string to avoid false > positive matches. > > 3. Substitute the original pattern for each of the possible variants > and search the db for that (new) pattern. > > e.g. as in the example above, you originally had "Volume 2", you would > try substituting "Vol 2", then "Vol. 2", etc. Likewise if you had > originally had "Vol. 2" and it didn't match exactly, you would try > "Volume 2". > > 4. Take the first hit that works. ("Vol. 2" in the above example). > > It's not pretty, but that's tagging for you. Ideally every CD would > have a unique MusicBrainz ID and associated cover art. > > Alex That would work for me :-) From adam_zimmerman@sfu.ca Fri Jun 23 19:16: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 83F553B0524 for ; Fri, 23 Jun 2006 19:16: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 10791-04 for ; Fri, 23 Jun 2006 19:16:23 -0400 (EDT) Received: from pobox.sfu.ca (pobox.sfu.ca [142.58.101.28]) by menubar.gnome.org (Postfix) with ESMTP id 053E33B0971 for ; Fri, 23 Jun 2006 19:16:22 -0400 (EDT) Received: from [192.168.1.106] (d154-20-165-140.bchsia.telus.net [154.20.165.140]) (authenticated bits=0) by pobox.sfu.ca (8.13.6/8.13.5/SFU-6.0G) with ESMTP id k5NNGJGN017682 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NOT) for ; Fri, 23 Jun 2006 16:16:20 -0700 (PDT) From: Adam Zimmerman To: rhythmbox-devel@gnome.org In-Reply-To: <1150913014.28266.17.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> <1150766634.5180.22.camel@localhost.localdomain> <1150819435.17540.17.camel@midnight> <1150913014.28266.17.camel@midnight> Content-Type: multipart/mixed; boundary="=-nh4eusBO2ao1XrEAH8+9" Date: Fri, 23 Jun 2006 16:16:18 -0700 Message-Id: <1151104578.24807.39.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.461 tagged_above=-999 required=2 tests=[AWL=0.061, BAYES_00=-2.599, TW_GT=0.077] X-Spam-Score: -2.461 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, 23 Jun 2006 23:16:26 -0000 --=-nh4eusBO2ao1XrEAH8+9 Content-Type: text/plain Content-Transfer-Encoding: 7bit Sweet! Why didn't I come across this[1] blog post sooner? The reading code is now fully non-blocking thanks to gobject.add_idle, except for check_info() which doesn't seem to take very long (using gnomevfs.get_file_info instead of httplib helped). I'm not sure whether I want to keep it so that the source is added to as song_info.xml is being downloaded. It seems like it takes a long time to add all the tracks (though it may just be my perception as to whether it's slower than adding after downloading), but on the other hand, the source doesn't sit empty for 2 minutes. The amounts read in each of the idle methods (64KB while downloading, 128KB when loading from disk) can probably be tweaked as well, to give the best balance between a fully responsive UI and being efficient when doing I/O. I'm not quite certain how to associate an action with a popup menu. I can see that I need to add some glade bits to rhythmbox-ui.xml and then call source.show_popup("mygladestuff") in the show_popup callback, right? So how do I associate a method call with that popup menu item? And how do I pass arguments to it? Is it like gobject.add_idle, where I just add arguments after the method? Thanks so much. -Adam PS: does anyone know what the int and bool passed to the show_popup callback are? [1] http://gnomerocksmyworld.blogspot.com/2006/05/getting-off-my-lazy-arse.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/ -- In Pocatello, Idaho, a law passed in 1912 provided that "The carrying of concealed weapons is forbidden, unless same are exhibited to public view." --=-nh4eusBO2ao1XrEAH8+9 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, gnome from gettext import gettext as _ import xml.sax, xml.sax.handler import urllib import datetime import zipfile magnatune_partner_id = "zimmerman" user_dir = gnome.user_dir_get() magnatune_dir = user_dir + "rhythmbox/magnatune/" magnatune_dir_uri = gnomevfs.URI(magnatune_dir) magnatune_song_info_uri = gnomevfs.URI("http://magnatune.com/info/song_info.xml") local_song_info_uri = gnomevfs.URI(magnatune_dir + "song_info.xml") lc_uri = gnomevfs.URI(magnatune_dir + "info_last_changed") ################################################ # 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 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'])) # entry.data['sku'] = self._track['albumsku'] 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']) # TODO: 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): info_file = None remote_info_file = 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) ev = self.source.get_entry_view() ev.connect_object("show_popup", self.show_popup_cb, self.source, 0) 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)) if check_info(): gobject.idle_add(self.idle_download_info) else: gobject.idle_add(self.idle_load_info) gobject.timeout_add(6 * 60 * 60 * 1000, self.check_info_updates) # every 6 hours. 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 show_popup_cb(self, source, some_int, some_bool): # FIXME: find out what the int and bool are entry_view = source.get_entry_view() client = gconf.client_get_default() cc = {} cc['number'] = client.get_string("/apps/rhythmbox/plugins/magnatune/cc") cc['year'] = client.get_string("/apps/rhythmbox/plugins/magnatune/yy") cc['month'] = client.get_string("/apps/rhythmbox/plugins/magnatune/mm") name = client.get_string("/apps/rhythmbox/plugins/magnatune/name") email = client.get_string("/apps/rhythmbox/plugins/magnatune/email") #sku = entry_view.get_selected_entries()[0].data['sku'] # just use the sku for the first track selected. #attach action: buy_track(sku, amount, cc, name, email, format) #source.show_popup("/MagnatuneSourcePopup") def check_info_updates(self): # TODO: if possible, make it so that the updated file is downloaded first, then the entries are switched if check_info(): self.db.entry_delete_by_type(self.entry_type) self.db.commit() gobject.idle_add(self.idle_download_info) return True def idle_load_info(self): if self.info_file == None: self.info_file = gnomevfs.open(local_song_info_uri) try: data = self.info_file.read(128 * 1024) self.parser.feed(data) return True except gnomevfs.EOFError: self.info_file.close() self.info_file = None return False def idle_download_info(self): if self.info_file == None: self.remote_info_file = gnomevfs.open(magnatune_song_info_uri) self.info_file = gnomevfs.create(local_song_info_uri, open_mode=gnomevfs.OPEN_WRITE) try: data = self.remote_info_file.read(64 * 1024) self.parser.feed(data) self.info_file.write(data) return True except gnomevfs.EOFError: self.remote_info_file.close() self.info_file.close() self.remote_info_file = None self.info_file = None return False class MagnatuneSource(rb.BrowserSource): def __init__(self): rb.Source.__init__(self) gobject.type_register(MagnatuneSource) ################################################ # Methods for downloading the song info # ################################################ def check_info(): # returns whether or not info has changed if not gnomevfs.exists(magnatune_dir_uri): gnomevfs.make_directory(magnatune_dir_uri, 0755) if not gnomevfs.exists(lc_uri): t = gnomevfs.create(lc_uri, open_mode=gnomevfs.OPEN_WRITE) t.write("never") # there needs to be something in the file, otherwise it throws an exception when read from t.close() modified = str(gnomevfs.get_file_info(magnatune_song_info_uri).mtime) lc_file = gnomevfs.open(lc_uri) last_changed = lc_file.read(100) # file should be less than 100 chars lc_file.close() if not last_changed.strip() == modified.strip(): lc_file = gnomevfs.open(lc_uri, open_mode=gnomevfs.OPEN_WRITE) lc_file.write(modified) lc_file.close() return True return False ################################################ # Purchasing code. # ################################################ class BuyAlbumHandler(xml.sax.handler.ContentHandler): # Class to download the track, etc. format_map = { 'ogg' : 'URL_OGGZIP', 'flac' : 'URL_FLACZIP', 'wav' : 'URL_WAVZIP', 'mp3-cbr' : 'URL_128KMP3ZIP', 'mp3-vbr' : 'URL_VBRZIP' } def __init__(self, format): xml.sax.handler.ContentHandler.__init__(self) self._format_tag = format_map[format] # format of audio to download def startElement(self, name, attrs): self._text = "" def endElement(self, name): if name == "ERROR": # Something went wrong. Display error message to user. raise MagnatuneError(self._text) elif name == "DL_USERNAME": self.username = self._text elif name == "DL_PASSWORD": self.password = self._text elif name == self._format_tag: self.url = self._text def characters(self, content): self._text = self._text + content def buy_track(sku, amount, cc, name, email, format): # 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': sku, 'amount': amount, 'cc': cc['number'], 'yy': cc['year'], 'mm': cc['month'], 'name': name, 'email':email }) buy_album_handler = BuyAlbumHandler(format) # so we can get the url and auth info xml.sax.parse(url, buy_album_handler) audio_dl_uri = gnomevfs.URI(buy_album_handler.url.replace(" ", "%20")) # some parts of the returned url are escaped, some aren't. TODO: Properly quote just the filename part of the path audio_dl_uri.user_name = buy_album_handler.username audio_dl_uri.password = buy_album_handler.password # Download the album and unzip it into the library library_location = client.get_list("/apps/rhythmbox/library_locations")[0] # Just use the first library location to_file = gnomevfs.URI(library_location + "/" + audio_dl_uri.short_name) out_file = to_file.__str__() gnomevfs.xfer_uri(audio_dl_uri, to_file, xfer_options=gnomevfs.XFER_DEFAULT, error_mode=gnomevfs.XFER_ERROR_MODE_ABORT, overwrite_mode=gnomevfs.XFER_OVERWRITE_MODE_ABORT, progress_callback=progress_info_cb, data=0x1234) # this will take a LONG time. album = zipfile.ZipFile(out_file) for track in album.namelist(): out = gnomevfs.open(gnomevfs.URI(library_location + "/" + track), open_mode=gnomevfs.OPEN_MODE_WRITE) # FIXME: directories will need to be created first out.write(album.read(track)) out.close() album.close() gnomevfs.unlink(to_file) class MagnatuneError(Exception): pass def progress_info_cb(info, data): assert data == 0x1234 try: print "%s: %f %%\r" % (info.target_name, info.bytes_copied/float(info.bytes_total)*100), except Exception, ex: # Sometimes the method throws an exception, for no apparent reason pass return True ################################################ # Magnatune Logo. # ################################################ # (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. Should probably be glade too. ### # 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) --=-nh4eusBO2ao1XrEAH8+9-- From alexl@users.sourceforge.net Fri Jun 23 19:50: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 F24EB3B0181 for ; Fri, 23 Jun 2006 19:50:01 -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 12182-10 for ; Fri, 23 Jun 2006 19:49:59 -0400 (EDT) Received: from allele2.biol.berkeley.edu (allele2.Biol.Berkeley.EDU [128.32.118.82]) by menubar.gnome.org (Postfix) with ESMTP id C70A03B011B for ; Fri, 23 Jun 2006 19:49:58 -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 k5NNnwif018504 for ; Fri, 23 Jun 2006 16:49:58 -0700 Received: (from alex@localhost) by allele2.biol.berkeley.edu (8.13.6/8.13.4/Submit) id k5NNnvvJ018503; Fri, 23 Jun 2006 16:49:57 -0700 X-Authentication-Warning: allele2.biol.berkeley.edu: alex set sender to alexl@users.sourceforge.net using -f 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> <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> <1150819435.17540.17.camel@midnight> <1150913014.28266.17.camel@midnight> <1151104578.24807.39.camel@midnight> From: Alex Lancaster Organization: Sourceforge Date: Fri, 23 Jun 2006 16:49:57 -0700 In-Reply-To: <1151104578.24807.39.camel@midnight> (Adam Zimmerman's message of "Fri, 23 Jun 2006 16:16:18 -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.589 tagged_above=-999 required=2 tests=[AWL=0.010, BAYES_00=-2.599] X-Spam-Score: -2.589 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, 23 Jun 2006 23:50:02 -0000 >>>>> "AZ" == Adam Zimmerman writes: AZ> Sweet! Why didn't I come across this[1] blog post sooner? The AZ> reading code is now fully non-blocking thanks to gobject.add_idle, AZ> except for check_info() which doesn't seem to take very long AZ> (using gnomevfs.get_file_info instead of httplib helped). It's time to transfer detailed technical discussion on this plugin to Bugzilla, IMHO. Will save bandwidth on sending multiple versions of the file to the mailing list, can be easily tracked and provide a centralised point of access for all the info. I've opened a bug and transferred the latest Python file there: http://bugzilla.gnome.org/345783 Thanks, Alex From doclivingston@gmail.com Sat Jun 24 03:19:41 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 C1E943B01AD for ; Sat, 24 Jun 2006 03:19:41 -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 29560-10 for ; Sat, 24 Jun 2006 03:19:40 -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 7053F3B0160 for ; Sat, 24 Jun 2006 03:19:40 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id f28so878776pyf for ; Sat, 24 Jun 2006 00:19:39 -0700 (PDT) Received: by 10.35.20.14 with SMTP id x14mr3236792pyi; Sat, 24 Jun 2006 00:19:39 -0700 (PDT) Received: from alyrion.local ( [144.134.101.25]) by mx.gmail.com with ESMTP id h41sm934606pyh.2006.06.24.00.19.37; Sat, 24 Jun 2006 00:19:39 -0700 (PDT) From: "James \"Doc\" Livingston" To: rhythmbox-devel@gnome.org In-Reply-To: <1151104578.24807.39.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> <1150766634.5180.22.camel@localhost.localdomain> <1150819435.17540.17.camel@midnight> <1150913014.28266.17.camel@midnight> <1151104578.24807.39.camel@midnight> Content-Type: text/plain Date: Sat, 24 Jun 2006 17:19:33 +1000 Message-Id: <1151133573.5031.46.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.404 tagged_above=-999 required=2 tests=[AWL=-0.004, BAYES_00=-2.599, DNS_FROM_RFC_ABUSE=0.2, SPF_PASS=-0.001] X-Spam-Score: -2.404 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: Sat, 24 Jun 2006 07:19:42 -0000 On Fri, 2006-06-23 at 16:16 -0700, Adam Zimmerman wrote: > I'm not sure whether I want to keep it so that the source is added to as > song_info.xml is being downloaded. It seems like it takes a long time to > add all the tracks (though it may just be my perception as to whether > it's slower than adding after downloading), but on the other hand, the > source doesn't sit empty for 2 minutes. One option would be to hide entry entry view while this is happening, and have some "downloading music store info, please wait screen instead". Something like that may be useful anyway, if we wanted/needed to show some info about what MagnaTune is, tell people to be careful with their CC details, etc. > I'm not quite certain how to associate an action with a popup menu. I > can see that I need to add some glade bits to rhythmbox-ui.xml and then > call source.show_popup("mygladestuff") in the show_popup callback, > right? So how do I associate a method call with that popup menu item? > And how do I pass arguments to it? Is it like gobject.add_idle, where I > just add arguments after the method? Take a look at plugins/pythonconsole/pythonconsole.py, it adds a menu item to show the console. The only real difference is the UI data, e.g.: Then add an action "MagnaTuneDownload". > PS: does anyone know what the int and bool passed to the show_popup > callback are? With the current code: ev.connect_object("show_popup", self.show_popup_cb, self.source, 0) The int is the number 0 that you're passing, and the boolean is: true = right mouse button clicked on an entry, or menu button pressed false = rmb clicked on "empty space" in the entry view Usually you'd treat the case of it being false by showing the same menu as if you'd right-clicked on the source in the source list. I've got a patch for python entry-data working, and it's on bug 345795[0]. With that applied, you should be able to do "entry.data['sku'] = whatever" for any entry whose entry-type was registered from Python. The only issue I've noticed is overhead - it created a dictionary for every entry that you have accessed the "data" attribute on. For the number of tracks currently in MagnaTune, that would mean just under 1Mb of overhead. Another option would be to create you own diction for SKUs, and then do "sku_dict[entry] = whatever". That would only need one dictionary, instead of 6000. [0] http://bugzilla.gnome.org/show_bug.cgi?id=345795 Cheers, James "Doc" Livingston -- If USENET is anarchy, IRC is a paranoid schizophrenic after 6 days on speed. -- Chris "Saundo" Saunderson in asr. From doclivingston@gmail.com Sat Jun 24 08:26: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 0CD3A3B00A8 for ; Sat, 24 Jun 2006 08:26: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 13145-02 for ; Sat, 24 Jun 2006 08:26:37 -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 DC5F23B000F for ; Sat, 24 Jun 2006 08:26:36 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id f28so920430pyf for ; Sat, 24 Jun 2006 05:26:36 -0700 (PDT) Received: by 10.35.63.2 with SMTP id q2mr3473556pyk; Sat, 24 Jun 2006 05:26:36 -0700 (PDT) Received: from alyrion.local ( [144.134.102.10]) by mx.gmail.com with ESMTP id 55sm1466207pyf.2006.06.24.05.26.32; Sat, 24 Jun 2006 05:26:36 -0700 (PDT) From: "James \"Doc\" Livingston" To: rhythmbox-devel@gnome.org In-Reply-To: <1151104578.24807.39.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> <1150766634.5180.22.camel@localhost.localdomain> <1150819435.17540.17.camel@midnight> <1150913014.28266.17.camel@midnight> <1151104578.24807.39.camel@midnight> Content-Type: text/plain Date: Sat, 24 Jun 2006 22:26:29 +1000 Message-Id: <1151151989.5031.60.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.406 tagged_above=-999 required=2 tests=[AWL=-0.006, BAYES_00=-2.599, DNS_FROM_RFC_ABUSE=0.2, SPF_PASS=-0.001] X-Spam-Score: -2.406 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: Sat, 24 Jun 2006 12:26:38 -0000 On Fri, 2006-06-23 at 16:16 -0700, Adam Zimmerman wrote: > I'm not sure whether I want to keep it so that the source is added to as > song_info.xml is being downloaded. It seems like it takes a long time to > add all the tracks (though it may just be my perception as to whether > it's slower than adding after downloading), but on the other hand, the > source doesn't sit empty for 2 minutes. One idea would be to have the entry view hidden until it has been downloaded at least once, and have some kind of "MagnaTune intro" displayed instead. Displaying an empty track list probably isn't useful, so maybe we could have something displayed instead which said what MagnaTune was, a download progress indicator, and a "continue to track list" button (which would only be enabled once the download had finished). > I'm not quite certain how to associate an action with a popup menu. I > can see that I need to add some glade bits to rhythmbox-ui.xml and then > call source.show_popup("mygladestuff") in the show_popup callback, > right? So how do I associate a method call with that popup menu item? > And how do I pass arguments to it? Is it like gobject.add_idle, where I > just add arguments after the method? For Python plugins, it's easier to embed the GtkUIManager XML directly into the .py file, see plugins/pythonconsole/pythonconsole.py for an example of how to do it. You'd probably want something like the following (which I've based on BrowserSourceViewPopup) The "MagnatunePurchase" action would get the list of selected tracks from the entry view, and then do the purchasing stuff. > PS: does anyone know what the int and bool passed to the show_popup > callback are? The int is the 0 that you passed to connect_object(), and the boolean is "over_entry" which indicates whether the context menu is for an entry, or a click in "empty space". Basically if it's false you pop up the same menu you would for the impl_show_popup virtual function, and if it's true you pop up the "track context menu". Cheers, James "Doc" Livingston -- In God we Trust. All others must submit an X.509 certificate. From shrift@gmail.com Mon Jun 26 15:57: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 99CDB3B02DF for ; Mon, 26 Jun 2006 15:57: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 11745-03 for ; Mon, 26 Jun 2006 15:57:10 -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 51F473B0227 for ; Mon, 26 Jun 2006 15:57:10 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id c30so1645621pyc for ; Mon, 26 Jun 2006 12:57:09 -0700 (PDT) Received: by 10.35.103.12 with SMTP id f12mr6348374pym; Mon, 26 Jun 2006 12:57:08 -0700 (PDT) Received: from shrift.evanston.gov ( [66.158.65.137]) by mx.gmail.com with ESMTP id y21sm942258pyd.2006.06.26.12.57.06; Mon, 26 Jun 2006 12:57:07 -0700 (PDT) From: Brendan Martens To: rhythmbox-devel@gnome.org In-Reply-To: References: Content-Type: text/plain Date: Mon, 26 Jun 2006 15:00:18 -0500 Message-Id: <1151352018.5823.19.camel@shrift.local.cityofevanston.org> 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.862 tagged_above=-999 required=2 tests=[AWL=0.538, BAYES_00=-2.599, DNS_FROM_RFC_ABUSE=0.2, SPF_PASS=-0.001] X-Spam-Score: -1.862 X-Spam-Level: Subject: [Rhythmbox-devel] using iPod as a normal DAP 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, 26 Jun 2006 19:57:11 -0000 RB supports normal daps, correct? I would like it to treat my iPod, that I have upgraded with Rockbox, as a normal DAP. Is this possible? From jonathan@kaolin.wh9.net Mon Jun 26 18:42: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 D72203B028E for ; Mon, 26 Jun 2006 18:42: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 20702-05 for ; Mon, 26 Jun 2006 18:42:19 -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 3C6CF3B01DC for ; Mon, 26 Jun 2006 18:42:18 -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 k5QMgFLO049650 for ; Tue, 27 Jun 2006 08:12:16 +0930 (CST) (envelope-from jonathan@kaolin.wh9.net) Received: from jonathan by stapler.kaolin.wh9.net with local (Exim 4.50) id 1FuzmZ-0002OI-Go for rhythmbox-devel@gnome.org; Tue, 27 Jun 2006 08:42:15 +1000 Date: Tue, 27 Jun 2006 08:42:15 +1000 To: rhythmbox-devel@gnome.org Message-ID: <20060626224215.GA9162@kaolin.wh9.net> Mail-Followup-To: rhythmbox-devel@gnome.org References: <1151352018.5823.19.camel@shrift.local.cityofevanston.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1151352018.5823.19.camel@shrift.local.cityofevanston.org> 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] using iPod as a normal DAP 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, 26 Jun 2006 22:42:22 -0000 On Mon, Jun 26, 2006 at 03:00:18PM -0500, Brendan Martens wrote: > RB supports normal daps, correct? I would like it to treat my iPod, that > I have upgraded with Rockbox, as a normal DAP. Is this possible? Yes, just disable the ipod plugin and it should be detected as a generic audio player. From jonathan@kaolin.wh9.net Mon Jun 26 18:55: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 12BCA3B0011 for ; Mon, 26 Jun 2006 18:55: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 21136-08 for ; Mon, 26 Jun 2006 18:55:41 -0400 (EDT) Received: from ash25e.internode.on.net (ash25e.internode.on.net [203.16.214.182]) by menubar.gnome.org (Postfix) with ESMTP id 32D543B0002 for ; Mon, 26 Jun 2006 18:55:41 -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 k5QMtb78028052 for ; Tue, 27 Jun 2006 08:25:39 +0930 (CST) (envelope-from jonathan@kaolin.wh9.net) Received: from jonathan by stapler.kaolin.wh9.net with local (Exim 4.50) id 1FuzzV-0002P1-Oz for rhythmbox-devel@gnome.org; Tue, 27 Jun 2006 08:55:37 +1000 Date: Tue, 27 Jun 2006 08:55:37 +1000 To: rhythmbox-devel@gnome.org Message-ID: <20060626225537.GA9215@kaolin.wh9.net> Mail-Followup-To: rhythmbox-devel@gnome.org References: <1150010929.16530.4.camel@localhost> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1150010929.16530.4.camel@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.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] [ANNOUNCE] gaim-rhythmbox 2.0beta 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, 26 Jun 2006 22:55:43 -0000 On Sun, Jun 11, 2006 at 03:28:48AM -0400, Jon Oberheide wrote: > Gaim-Rhythmbox has been ported to work with Gaim 2.0.0 and Rhythmbox > 0.9. > > http://gaim-rhythmbox.sourceforge.net This will no longer build with Rhythmbox 0.9.5 or newer as we removed the .pc file. Rhythmbox doesn't install any files useful for developing or building clients, so there's no need to check the installed version at build time. From pclouds@gmail.com Tue Jun 27 05:44: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 524893B010D for ; Tue, 27 Jun 2006 05:44: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 20903-07 for ; Tue, 27 Jun 2006 05:44:32 -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 692093B006C for ; Tue, 27 Jun 2006 05:44:32 -0400 (EDT) Received: by wx-out-0102.google.com with SMTP id t5so727713wxc for ; Tue, 27 Jun 2006 02:44:31 -0700 (PDT) Received: by 10.70.30.10 with SMTP id d10mr10066855wxd; Tue, 27 Jun 2006 02:44:31 -0700 (PDT) Received: by 10.70.45.11 with HTTP; Tue, 27 Jun 2006 02:44:31 -0700 (PDT) Message-ID: Date: Tue, 27 Jun 2006 16:44:31 +0700 From: "=?UTF-8?Q?Nguy=E1=BB=85n_Th=C3=A1i_Ng=E1=BB=8Dc_Duy?=" To: rhythmbox-devel@gnome.org 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.369 tagged_above=-999 required=2 tests=[AWL=0.031, BAYES_00=-2.599, DNS_FROM_RFC_ABUSE=0.2, SPF_PASS=-0.001] X-Spam-Score: -2.369 X-Spam-Level: Subject: [Rhythmbox-devel] tag writing with utf-8 and taglib 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, 27 Jun 2006 09:44:33 -0000 Hi, When writing utf-8 tags, taglib will not try to change frame encoding. If frame encoding is iso-8859-1, then the string will be converted (lossily) to iso-8859-1. Although I think the behaviour is ok for taglib itself, it's ruining my songs. I would like to have an option to allow rhythmbox (more accurate id3v2mux) to change id3v2 tag frame encoding from iso-8859-1 to utf-8 if necessary. Do you have any idea? From teuf@gnome.org Tue Jun 27 06:05: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 60E513B03BD for ; Tue, 27 Jun 2006 06:05:45 -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 22143-10 for ; Tue, 27 Jun 2006 06:05:42 -0400 (EDT) Received: from vds19s01.yellis.net (ns1019.yellis.net [213.246.41.159]) by menubar.gnome.org (Postfix) with ESMTP id F3A1F3B0171 for ; Tue, 27 Jun 2006 06:05:41 -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 4F2B0905EE for ; Tue, 27 Jun 2006 12:05:47 +0200 (CEST) Received: from plouf.anevia.com (plouf.anevia.com [10.0.1.37]) by goliath.anevia.com (Postfix) with ESMTP id 81A97130005B for ; Tue, 27 Jun 2006 12:05:38 +0200 (CEST) From: Christophe Fergeau To: rhythmbox-devel@gnome.org In-Reply-To: References: Content-Type: text/plain; charset=utf-8 Date: Tue, 27 Jun 2006 12:05:44 +0200 Message-Id: <1151402744.5360.37.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.352 tagged_above=-999 required=2 tests=[AWL=0.112, BAYES_00=-2.599, FORGED_RCVD_HELO=0.135] X-Spam-Score: -2.352 X-Spam-Level: Subject: Re: [Rhythmbox-devel] tag writing with utf-8 and taglib 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, 27 Jun 2006 10:05:45 -0000 Le mardi 27 juin 2006 à 16:44 +0700, Nguyễn Thái Ngọc Duy a écrit : > Hi, > When writing utf-8 tags, taglib will not try to change frame encoding. > If frame encoding is iso-8859-1, then the string will be converted > (lossily) to iso-8859-1. Although I think the behaviour is ok for > taglib itself, it's ruining my songs. I would like to have an option > to allow rhythmbox (more accurate id3v2mux) to change id3v2 tag frame > encoding from iso-8859-1 to utf-8 if necessary. Do you have any idea? Hmm, maybe the gstreamer taglib element (gst-plugins-good/ext/taglib/gstid3v2mux.c) is missing a call to TagLib::ID3v2::FrameFactory::instance()->setDefaultTextEncoding(TagLib::String::UTF8); (or explicit calls to frame->setTextEncoding (String::UTF8); for each handled tags). I don't have time to investigate more than that atm though... Christophe From shrift@gmail.com Tue Jun 27 13:23: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 E17E93B0246 for ; Tue, 27 Jun 2006 13:23: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 09704-09 for ; Tue, 27 Jun 2006 13:23:35 -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 F2F2F3B0075 for ; Tue, 27 Jun 2006 13:23:34 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id c30so1973900pyc for ; Tue, 27 Jun 2006 10:22:52 -0700 (PDT) Received: by 10.35.94.2 with SMTP id w2mr7420102pyl; Tue, 27 Jun 2006 10:22:52 -0700 (PDT) Received: from shrift.evanston.gov ( [66.158.65.137]) by mx.gmail.com with ESMTP id w54sm8039pye.2006.06.27.10.22.51; Tue, 27 Jun 2006 10:22:51 -0700 (PDT) From: Brendan Martens To: rhythmbox-devel@gnome.org In-Reply-To: References: Content-Type: text/plain Date: Tue, 27 Jun 2006 12:26:04 -0500 Message-Id: <1151429165.11410.15.camel@shrift.local.cityofevanston.org> 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.144 tagged_above=-999 required=2 tests=[AWL=0.256, BAYES_00=-2.599, DNS_FROM_RFC_ABUSE=0.2, SPF_PASS=-0.001] X-Spam-Score: -2.144 X-Spam-Level: Subject: Re: [Rhythmbox-devel] using iPod as a normal DAP 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, 27 Jun 2006 17:23:36 -0000 > Yes, just disable the ipod plugin and it should be detected as a generic > audio player. Ok! Thanks a lot! From adam_zimmerman@sfu.ca Wed Jun 28 16:41: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 5367F3B040C for ; Wed, 28 Jun 2006 16:41: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 00611-09 for ; Wed, 28 Jun 2006 16:41:22 -0400 (EDT) Received: from pobox.sfu.ca (pobox.sfu.ca [142.58.101.28]) by menubar.gnome.org (Postfix) with ESMTP id BD4A13B021D for ; Wed, 28 Jun 2006 16:41:21 -0400 (EDT) Received: from [192.168.1.106] (d154-20-165-140.bchsia.telus.net [154.20.165.140]) (authenticated bits=0) by pobox.sfu.ca (8.13.6/8.13.5/SFU-6.0G) with ESMTP id k5SKepFh008833 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NOT) for ; Wed, 28 Jun 2006 13:40:53 -0700 (PDT) From: Adam Zimmerman To: rhythmbox-devel@gnome.org Content-Type: text/plain Date: Wed, 28 Jun 2006 13:40:44 -0700 Message-Id: <1151527244.10453.17.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.503 tagged_above=-999 required=2 tests=[AWL=0.096, BAYES_00=-2.599] X-Spam-Score: -2.503 X-Spam-Level: Subject: [Rhythmbox-devel] Magnatune 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, 28 Jun 2006 20:41:25 -0000 Hi everyone, For anyone who hasn't been watching the bug[1], I figured I'd let you know that the plugin's basically in a usable state for both previewing music as well as purchasing. The only known bug at the moment is related to the popup menu (see comment #4). There are 2 files you need to download. The code itself[2], and the glade files[3]. The glade files need to be untarred into /usr/share/rhythmbox/glade/ (or wherever sys.prefix in python points to, if not /usr), and the python file can go either in ~/.gnome2/rhythmbox/plugins or /usr/lib/rhythmbox/plugins. If anyone feels like helping out with testing the purchasing code, email me and I can send you the test credit card number that Magnatune gave me. Any feedback is much appreciated. -Adam oh, p.s. You'll also need a magnatune.rb-plugin file in the plugins directory. Its contents are: [RB Plugin] Loader=python Module=magnatune IAge=1 Name=Magnatune support Description=Adds support to Rhythmbox for playing and purchasing from the Magnatune catalog Authors=Adam Zimmerman Copyright=(C) 2006 Adam Zimmerman Website=http://www.rhythmbox.org [1] http://bugzilla.gnome.org/show_bug.cgi?id=345783 [2] http://bugzilla.gnome.org/attachment.cgi?id=68132 [3] http://bugzilla.gnome.org/attachment.cgi?id=68133 -- 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/ -- Rocky's Lemma of Innovation Prevention: Unless the results are known in advance, funding agencies will reject the proposal. From john.a.redd@boeing.com Thu Jun 29 13:26: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 4708F3B00D5 for ; Thu, 29 Jun 2006 13:26: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 30224-02 for ; Thu, 29 Jun 2006 13:26:08 -0400 (EDT) Received: from slb-smtpout-01.ns.cs.boeing.com (slb-smtpout-01.boeing.com [130.76.64.48]) by menubar.gnome.org (Postfix) with ESMTP id 4153D3B0196 for ; Thu, 29 Jun 2006 13:26:08 -0400 (EDT) Received: from stl-av-01.boeing.com (stl-av-01.boeing.com [192.76.190.6]) by slb-smtpout-01.ns.cs.boeing.com (8.13.6/8.13.6/TEST_SMTPIN) with ESMTP id k5THPtqE005727 for ; Thu, 29 Jun 2006 10:25:55 -0700 (PDT) Received: from xch-mwbh-02.mw.nos.boeing.com (localhost [127.0.0.1]) by stl-av-01.boeing.com (8.11.3/8.11.3/MBS-AV-LDAP-01) with ESMTP id k5THQ7307196 for ; Thu, 29 Jun 2006 12:26:07 -0500 (CDT) Received: from XCH-MW-2V1.mw.nos.boeing.com ([130.247.200.29]) by xch-mwbh-02.mw.nos.boeing.com with Microsoft SMTPSVC(6.0.3790.1830); Thu, 29 Jun 2006 12:25:52 -0500 Received: from 130.38.164.172 ([130.38.164.172]) by XCH-MW-2V1.mw.nos.boeing.com ([130.247.200.49]) via Exchange Front-End Server owa.web.boeing.com ([192.42.209.170]) with Microsoft Exchange Server HTTP-DAV ; Thu, 29 Jun 2006 17:25:06 +0000 Received: from ubuntu606lts by owa.web.boeing.com; 29 Jun 2006 12:24:14 -0500 From: John Redd To: rhythmbox-devel@gnome.org Content-Type: multipart/alternative; boundary="=-ced/NAAygWu8XvdLnlba" Organization: Boeing IDS CIDS Date: Thu, 29 Jun 2006 12:24:14 -0500 Message-Id: <1151601854.5360.3.camel@ubuntu606lts> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 X-OriginalArrivalTime: 29 Jun 2006 17:25:53.0215 (UTC) FILETIME=[12AF34F0:01C69BA1] X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=1.502 tagged_above=-999 required=2 tests=[BAYES_50=0.001, HTML_MESSAGE=0.001, RCVD_NUMERIC_HELO=1.5, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001] X-Spam-Score: 1.502 X-Spam-Level: * X-Mailman-Approved-At: Fri, 30 Jun 2006 03:05:40 -0400 Subject: [Rhythmbox-devel] program suggestion 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, 29 Jun 2006 17:26:09 -0000 --=-ced/NAAygWu8XvdLnlba Content-Type: text/plain Content-Transfer-Encoding: 7bit You guys need an equalizer. I started using Amarok because they have an equalizer built in. Other than that, I'd rather use rhythmbox. --=-ced/NAAygWu8XvdLnlba Content-Type: text/html; charset=utf-8 You guys need an equalizer.  I started using Amarok because they have an equalizer built in.  Other than that, I'd rather use rhythmbox.

--=-ced/NAAygWu8XvdLnlba-- 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, -- Loc 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. -- Loc 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 /9j/4AAQSkZJRgABAQEASABIAAD/4QAWRXhpZgAATU0AKgAAAAgAAAAAAAD/2wBDABALDA4MChAO DQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/ 2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2Nj Y2NjY2NjY2NjY2P/wAARCACIAZADASIAAhEBAxEB/8QAGwABAAIDAQEAAAAAAAAAAAAAAAEEAwUG BwL/xABCEAACAgECAQULCgQGAwAAAAAAAQIDBAURMQYSIUFRIjI1YWJxgYKhsbITFTM2QlJykcHR NHN0kxQWIyRUkkNTov/EABkBAQADAQEAAAAAAAAAAAAAAAABAgMEBf/EACERAQEAAgICAwEBAQAA AAAAAAABAgMRMUFREjIzBBMh/9oADAMBAAIRAxEAPwD0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAJBgyczHxIc/JuhVHyntuaDO5ZYtW8cOqd8vvS7 mP7lpjcukXKTt0xivyaMaPOvurqj2zkkef5nKjU8rdK5UQfVUtvbxNRZZO2TlZOU5Pi5Pdms03yz u2eHoOTyq0qjdRtnc11Vx/V7I1d/LdbtY+F6bJ/ov3OQBpNWMUuzJv7uWGp2d58jUvJhv7ypZyj1 azjmTX4Ul7kasF5hjPCvyvtdlrGpS452R/cZ8/Omof8ANyP7sv3KgJ4iOaux1jUo8M7I/uMz18ot Wr4Zs3+JJ+9GrA+M9HNb+rlhqdff/I2fiht7jYUct+CyML01z/RnIArdeN8LTPL29CxuVelX7KVk 6X2WQ/Vbm1x8vGylvj312ryJJnlBMZSjJSi2muDTM7pnhabb5euEnmmLyg1TF2UMucor7Nnde82+ Ly2ujssrFhPx1y5vse5ndOU6XmyO0Bo8XlXpd+ynZOiXZZH9VubajKx8mPOx767V5EkzO42dryy9 MwIJISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADX6nrOHpcN8izezborj0yZxercpc3UW4Qk8e j7kH0vzs085ysm5zk5Sb3bb3bPk68dUxc+Wdr6nOU3vOTk+1vc+QDVmAAAAAAAAAAAAAAAAAAAAA BMZShJSjJxa4NPYgAbPF5Qapi7KGXOUV1Wd17zb4vLa6OyysWE/HXJx9j3OVBS4Y3uLTKx6NpnKP B1K+FFfykLp77QnHjst+K8xuDzjkn9YsX1/gkejnNsxmN4jfDK5T/oADNcAAAAoalq+HpkN8m1c/ borj0yfoJkt6LeF8rZeoYmFHfJyK6/E30v0cTitS5WZuW3DG/wBtV5L3k/T+xoJzlOTlOTlJ8W3u 2bY6b5ZXbPDusnllgVtqiu259u3NXt6fYa+zlva3/p4UIrypt/ocoDWasYzuzJ0/+dcz/i0e39zJ DlvcvpMKD/DNr9DlAT/nj6Pnl7dtTy2xZfTYt0PwtS/Yv0cqNJu2X+Idb7LIte3gedArdOKZsyes UZePkrei+q38EkzKeRqTi94tprrRfxtc1PF2+SzLGl1TfOXtKXR6q02+3pwOHxuWmXDZZOPVau2L cX+puMXlhpt2yuVtD8qO69hndeU8LzPGugBWxtQw8tf7fJqsfZGS3/IsGfS6QAAAAHkIAPQcYAAA AAAEpNvZJvzAQDLHGvlwqn+RkWBkv/xfm0TxUcxWBb+bsn7i/wCyHzbk/dj+Y+NPlFQFp6fkr7C/ 7I+XhZK41P0DinMVwZJUXR76qa9UxtNcSEgAAAAAAAAAA2/JP6xYvr/BI9HPOOSf1ixfX+CR6Ocu 77OjV0AHxZZCqtzsnGEIrdyk9kjFo+zBl5mPhUu3JtjXBdbfHzdpzmrcsKqudVp0VbPh8rJdyvMu s5HLy8jNuduTbKyb65Ph5uw2x1W9s8tknTotW5X23c6rTouqHD5SXfPzdhzNk52Tc7JOcpPdyk92 z5B0Y4zHpjcrewAFlQAJNvZLdgAZ4YeRPhVL09B9/N+T/wCv/wCkTxUcxVBnlhZEeNUvR0mKUJQe 0ouL8aI4TzHyAAAAAJ7PdF/F1rUcTb5HMtSX2ZPnL8mUARZL2nnh02Ly0y69lk0VWrtj3LNvi8sN Ou2VytoflR3XsOCBS6satNmUeqY2oYeX/D5NVj7IyW/5Fk8i4F7F1nUcTb5HMtSX2ZPnL8mZ3R6q 82+1EAHQxADNRi23vuI7R+8+A45LeGEs4+Ddfs9ubHtZscfAqp2clz59rLRpMPbO7PSrTp9Fa6Y8 99sizGMYraMUl4kfQNOJGdtoAAgAAAAACJQjLvop+dEkgV54WPPjUl5ugrWaVW/o7JR8/SbEEfGV aZWNJbp2RDpSU15LMVWLda5KMe6jxT6GdAQV+EW+dc7ZVZU9pwlHzo+DpWk1s1uvGV7cDHs+xzX2 x6Ctw9Jmz20QNlbpL41WJ+KSKluHkVd9W2u1dJW42LzKVsOSf1ixfX+CR6MedclPrHi+v8EjutX8 D5v9PZ8LOXd9o6Nf1a3VuVGHgc6uhrJvXVF9yvO/2ON1LVszU587JtbiuFceiK9BRBtjrmLPLO5A ALqAAAExi5NKKbb6kWsfT7btpT7iHj4s2lGNVQtq49PW3xZeYWqXORQx9MlLaVz5q+6uJsaqKqVt XBLx9ZkBpMZGVytAASgDSa2aTXjAAwWYWPZxqSfbHoKtmkxf0djXiktzZAi4yrTKxo7NPyK+Eeeu 2LK0oyg9pRafY0dKfMoRmtpxUl40UuC02e3Ng3dmnY8+EXB+SyrZpU1012KXifQVuNXmca4GazEv q7+uW3aulGEqsAAAZKaLLpbVxb8fUi9j6Zwle/VRsIQjCKjFJJdSNJh7Z3OTpTx9Orr2lb3cuzqL ySS2XQgDSSTplbb2EkEkgAAAAIAAAAAAJIJAAAAAAAAAAAC5o1cHq9E+aucuds9unvWdBrHgfO/p 7PhZodF8KU+t8LN9rHgfO/p7PhZw/wBH6R26PpXloANmYD7qpsulza4t/obPH06Fe0re7l2dSLTG 1W5SKGPiW3vuVtH7z4G0x8KqjZ7c6f3mWEklsuhEmsxkZZZ2hJBJZUAAAAEAAAJAAAAAAAAMdmPT b39cW+3bpMgISoWaVVL6OUoPx9KKtmmXw73mzXiZugVuMWmdj4ABozAAAJIJCQAAAAQAAAAACQAA AAAAAAAAAAF7RfClPrfCzfax4Hzv6ez4WaHRfClPrfCzoNSip6ZlwfCVM17GcP8AR+kdmj6V5ZGM pyUYptvqRsMfTW9pXvbyUXqaK6I7Vx27X1synXMOO3Nlst6fMIRriowiopdSPoA0ZgAAEkEhIAAA AIAAkAAAAAAAAAASEgAIHwACyoAABJBISAAAACAAAAAASAAAAAAAAAAAAAvaL4Up9b4WdFn/AMBk /wAqXuZzui+FKfW+FnRZ/wDAZP8AKl7mcO/9I7NP51xhJBJ3uIAAAAACSCQkAAAAEASQSAAAAAAA AAJIJISAAD4ABZUAAAkAJAAAABAAAAAAJAAAAAAAAAAAAAXtF8KU+t8LOiz/AOAyf5UvcwDh3/pH Zp/OuMJAO9xAAAAAASAEgAAAAgCQAAAAAAAAABIBCQAAf//Z ------=_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 Frcinaux 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? :) -- Loc 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, Loc 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, -- Loc 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 Garca 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, Loc 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. -- Loc 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 Grundstrm, 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 Grundstrm 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 Grundstrm 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 Grundstrm ________________________________________ \ | 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, Dchern Und Hnden 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 iE6iPPF9HH5/h9+z8KPzK2MMz91OfnuIZwh1PkSaznsp3wAL56OXzVG+scSz5O+ghf0usnC+ BuhO5OtGPhprcPbnOemNc4R4EvYtsNOc7s4B8rgMpPNxQ54A+K2s6XjZGCvEYGKF/D1G+ljw fvBxssuDiLetHH+nleN/beXy6biVynfTDA2Vsh2JVXy8SnFprghDHuRPgG6w8fLOt/FyLSJO FGI5UZ603oT8t8P/cRuXQ7PhOeUJEk104Bwo25koT9M+I79Jsp0Rx2lwPb0G17OvpHOQEEGD 400knitEiChPWLuJNUL8A/ZdyP8J8v9M6VOEGCqPf5z09gh6zb488aKplMifjsvIv8XO/hvI b7DsD3Zul912Xh56UaYhT9D8KZyvFzg6hfPTXDiUfxKlT5PHgUhfivSHKF2e0L1EvECI3qls 75fK9lNpPoHpcvmI8sRuFvEiIZ6CXw/8XobfN/CzONhvpoP9Gh3sR++FJb8uB/vdBb91ks4h Mq6D2/85YoE8Xia73Hi+RZyfEIfeEescKrczJ6+fUcSQEJXEmbK/k12e6DY4uZ+0Obm99sP/ V5DeP23MksfJ4PQ07s9XQq9P4zg94GgXx6tycTtPBevAOeAC8Cpwg4vLe9bF9fuKOFtuJ27m eDfHv8PN5W8DdxDlTmNAOuuR6ay70tn/EOkGeR7gkfo02R89XO8ZHvZvBW/xoHzYP4D+mvLJ k9MfPdzuRz3c7oaX2z3Ny+2c4WV/mpeG6rvCy+vjZi/6kZe3v78RG+V25eXt8DUvr9ddXo7/ hZfj70P8dB/HCfg4Tj8f948SH/ePSh/3j8k+Lr8BvM7H5d3u4/X6CHGO3N583N494Gs+3t/t 9HF9vgC/JzbL8yk/lzPAz+WcA07yc71r/VzvkJ/r3eTnenf6sd/0Y7/p533E3WSfK88DoR/1 cz3+Cf+X4b9D0ibTPyPOk+1BbJX7c/JvE+II8mdlcL68DM6Xn8HphSC9gNSQPyZnky6U9SYO E+LiDN4vXAq/dtLyJLETegXpBTyDEsVfh/jPwP422Tvk/o90L7k9B7jfZwY4Tv8ALxe9dJbs YwK8XtTcdTL/FNILZT1IFwkRDnA7LgrwfvbaALfnDeR3OV+XsdgxbpfKv58WK8YJrRgf7Mtj W8RTwNPBUvBMcBw4CbwArAMbwDZwIbgUvB68D1wDPg5uBLeAL4HvgJ+AX4E/ggMtzCJwDFgJ TgEvAZvAReBN4B3gI+B6sAd8HfwI/BY8CtI4F7E3WACWgVXgBWAYjIDLwD+B94PrwC3ga+Bu cB/4C5hmY/YCh4BlYAU4CbwQbAL/D3wTfA/cDX4OfgN+D/4M/gJaDGYqmA4GwF5gX3AgeCpY DI4EzwQrwIlgDVgLXgzOApvAeeACcDF4NdgJdoN/BG8D7wEfAB8B/wb+A3wafBbcDr4Kvg3u BD8GvwT3gj+Ah8BjoGFHO4J5YAE4EhwPng/OAtvApeCN4L3gI+BGcAv4Fvg++BH4JXgY/BU0 UtAfQR+YDfYB+4MF4BngWHACOBmcBl4EzgQbwXlgBLwSvBbsAleBt4H3gWvBdeA28CXwTfB9 8GPwX+C34AHwCEiXjogpoBvMAHPBk8F88DQwCJ4JngfOAFvAK8DrwVvBB8EN4IfgHvBwtH4O ZibYHywGzwFrwBngPHAJ2A3eCT4KbgH/Cb4Mvgm+B+4GPwf3gFYnMx0sB88DQ2AbeA14J7gG 3Ay+BX4E7gGPgtlpaAewEBwNVoONYDu4HLwXfBTcBL4AfgZ+Bx4BU1zMHJBmeKPf7UHgUGKe 3N7BsfCbDPtU8ALYL4W9A/oK6E7oVdB3I9+fwQdh3wz7dvAtpL8H/Rn0V9A/Qh+DVpMhyHjp oN/N9oFu9G/wbKSPg66BngYdgr4UeiHiXQFeBfsy2G8DH4B9LfhX+D0N0oRslpOFeBH+O5C+ E/oL6G+gD0AfQzyaUo4YAHPAU8FhoJrhQeY7F3oKWIf0RrANXAz7UnAF+EfwHvitAdchfSP4 fDrWF/S74C747wG/h98RaJuH/VJBtwf90cP2PtCDoWleRWq/UqSXI30S8teAIaSH4UfTIlrk weiV0NfBrxtcCf/VsN8H/SD0VvBDpH8KvQ/a5mXt8nI8Lxjwsj0X9sFgKTgenAbOBFvAZeBK xLsZvA1x74Z9LfRj0E9APwP9Mvgu0j+A3gMeRNwj4G9IT/Oxf5aP9Sk+tg8EC2AfBVbArwb2 88H/gr0JbIHfEvAWpK+Dfgb5esDnYH8R9h3QO6G/gD4A/oZ0lx/rAwz4sT78bB8APQR6BHQF OBnpFyJ/HTgL9vlgB/yuhr4JvBnp9/q5/z0M/Sb4MbgXPATaMphe8DRwNFgJTgVD4FzwcnAZ uBK8H3wafAV8B/wE3AseBOk8kugHTwYLwCDYDHYEuJ0Wg0sD3B7Xwr4C+h7w0QBv1z3gm+Au 2D8H94E/gzTfCPllgUMzubxCcAx4NlgDv+mZnL8RjIBXwd4NPoD0h6HXQz8FbgNfQfw3wA+Q /iX0N+Ax0JLFzMziuH2z0A/B4UivBKcg/SKwHpwH++IsbtflWdzPVkLfiXLuBf+CfOvBTfDr gX4d3IH0jxFvD/TPiPNv8Bj83dlMfzb75UH3gx4KPQx6FPTYbK5/FdKnIP0C6JnQYeg26A7o a7K5ftdB35TN9foTeCv874b9AaSvBf8K+3rYn0F6D/gc7K/BvhPpu8FPYf8X7Puhf4u2Rw77 ZYG9c9hvEFicw/UvhR5L7CXEXdBrifKc7DHozdD/C70L/Ar81MLl0B/NCqfur3LhPioXxmN6 81tkyC8IXQY9DXo6dAR6EfRq6Nuh10FvhH4Degf0fugD0HTPDelM1LMIOgh9HvQ06PnQEehV 0Kuh10FvhH4Degf0AejD0JlW1rlWLD90GfQ06OnQ86Ej0DdCr4J+GPoxaDUelhJndDxsWHHx 8H6mv+LikqKRwbJRI4rk96Ii82dpMChZUjo8qDxnpl09vrqSZ7XBelV3WMX/DgxmBtXnEHGS 6K3s0bvWap+iGQa6vjx/2b78FeMPd43Ldxf3yE9H93j310el6b/pJdKia1q+T6Ya3eMdXUa+ MnSfe7i4p/PFSJZ3k9+7ie79EAVbI16Z9pZ3dc+y5/IvrtvWddC7aYpFWi3KuvezVbVdXy7b N6Sr7oCMZI7fcbi7w9219KiM3hXJN5Sps6dre2Sm+tp1Rn7X+P1UA5aoAyWsUEXHUqTj891m VxktZgyi6rJ4WaAsbV/dNs7/JK0MWm6Ei+S7u6rjOfe+smLjINVeVP/crrrDev2PFh+MtUyt W+Z3yDaLlyzr5JPFcwnUUeMV3N8to3WounQdVPHLZPvojZMrG6d7qaNbVa+zx7uc7r5coRYU iV1L4uV19kRqOw96l78q07tr+3S+FSndbOEl9FHr0OKplYy16o7VPaFpForNVuTa+8KqFZFB YkW0KPcWrcVMpe99UvUhY7uhblOMrkzl5+2skgqNfg6CI4TsfLFv0fVanR/rcVR+9/g+ctmC 0YXJVAXJRepHmbvRHMct1TcD5Ydyzdz7qrD4Lb6UDPk50BNw2Tx59GKjfGFzuFz0HiVbtjzx GO0a46Jhb7kANg+n273C5VITpbmUKXWQGhh3BCyWAPlQFnmOmR7LXSZPo9OkdMSlKyCtZ8jT NXeJypxuyMzRrJ4h0tiH5l9FDDtn8kUrRPMESH/KmHGKzD9MpgRQvJ0dMuPFu1zpLreLAmQV Sp+z3WwY7J4Y8FsyLHQRMdse87ZKmWOSMltuMFZ3kr1cllrp1Dtoap68YEKOPokFRYs5yR4P JOXJwYRS+wYTrP0K1QIlRjjFnlCV/i7pQzZ5jE7BJgaCbkrPj0c+203NLP7ujb0QTe0Vf8LP n9rl0zhzO13zpCeEDLuNnlUw3qU7Zw0PXSJONQbQyFmK7c8yKf0UugXVeID25Q7jBbr0a7c9 b5eGAc1koEEha6rtHUoZomLYZI0cdoPe1+9IjUYcSmOoKcZrdprDzG4Yp9LvsN1GLzSzFqyS 2Ww0oYH1NDVX6Cvyw3r6Bvp6QGa3Fr9NcctVJJuHaj5clfQ+Xdg3bF/Q9dQJNLNainGMhvvW Uk5653x2/3S657jUwherHdn9nXTxNXsIpVgHiDS6QSm7gG7Mtg4wZHaVk67DOPpX0d3IM6gh bHQRKG8M3d5go2vteSupYWxbpUPeqnMtVOwqVfgV8nuqWphf5UdO/xuocLqLl6Z2d+Rw4TmD 9qnihJNevp4zWE0zoQq/WoWiu55tG6Vj7oiXqAoj1K+msUUZP6QSaIXYaAK61EteoK/9ZYuk 1tPdv44MOhyhy+ip9c4l9Mb19k95SYVtjVyI1DDd0+CgH/Z36GJ0athJkw6nXk4p5JVi7JP+ bmoQG93wnTJ6MmXotPLVG3fKaOcb9ItencEZnBOoWjVnKWU498uapJyn7rMY4JDBKmS67RJZ kq/frVaaOs+iloVmt7BZZTU95XTvhOM7Kz/U5POUpy0Snk0buIHSFgvPE/zdcF4rq+/ZzMrh LJMxPU+ycgvbevnFc8m/KRbdTEEX9t2eS5wF0st72nxEaw83CO/pMxBvq4znLWSV4ryXToeH sXIIWx+qW91EGcpxt/y4xUmDLnXOdyW9FRVY9JXSyVuJOjjpwSpvVSfd6jDA51xI0f/QrVSm 0ynXhLeaV3uusNF1NU+IVqCD5mi+TA3xhJz0m5c5YnsqR+8tt6LMYHTpafbLzJIN0fpVyIp4 /p+7K4GOqkrT71W9SuplqSIroQwYCZuKQBYVNAIBQqBZAiTstEWlUknKrCYVFhuxbVDBtRlA bA86iE6PZ9o5Og6jqGg7Pfa497HVtnEb0e5ptcXWQQ/SZ7Sd+937vVfvPSLS3efMOTN1TvK9 /919X979v7sW34GC3xEhdWSCnm6tjF/eY1b8sE2e97gVP0wa855Q0hBzCaSfKqnQ3AKbTyqp xIwIH/N+Jon0y0tFRUNs4/jGE6wOKMq/WaG4DCt/nhUW4p6/4OtMFdZ0YTl/oRUWjvXnN1zB vMDhivxFVlhh8TZ/sZJKTVyDmN+oyqvMBMl8fpMyG2W+iPCWKmmcCbL6/OXK5njzdzBbocwm mfhsk79SSdXmQpFz+auVzcnmTYjLGmVWY/bhYPN3lTRdCzaIyHyG77ahhExeQSWTp/k7UCHa kH4/vkKG2vGYizQZoa5QIXRTQvLzm+YPwLwXN2JnGKjYGQaKKIiPChNFrHcNmxBeIJ4jOfpo VTHDh8TrSJ7erTqCcCnEfIrB8GzhOlJAMScMpYpIIcUhYXw7jBRRLAzj02GkmGJJeDzEoRRL w1BRiJRQLAu/A9MIxVFhfL6LnEFxXBgXg0ZKKY4Pv444j9CbZRFPCteK9EXK9HYpVod/Dssj maLJ4TpYHkOxJoyGGRmnr5BeTQ8PwO14PSlNZ4Ux0EXO06dKcXYYX78iE/Ru6XN9eDdyo1Lf LMU54SkwvViPS6/mh3+DFNXq8lbN8qYwTpJFZlBcEcZ9N5FZjMaaMG7HjMzWt0qv1mpDTogy jjwQRJI6RNpzIg+Z+/Hq4Wa2wS8Q9kGVRsO8Ar4dGq1ZnRuOE2UYO0SE8hA79Pv52+Uom2Gg tPN2Od9WiberZKVAj5JhNMjnqfIZvUAuGr5ROD50NU6RhybKWzP8dSIGhRPx4SgXjcvIrw7h unkthHt2dNEMwU1Zg946dAtOPYVuExkjJg3voZVd/HImNs2EF9kDRUH0jbirAQuw7AFZwXMW W+33beFFzopeqz+txomjStyDXbAoSx3Q+tRnVkpHZj0dZbW2aea8D7Klm6xmIcxXwhxzH054 LYDkL9+qmw/C2UIlPqlndSVbxOCnxC9187iIpblIiQd95kScRlusxM99JsYNc4kSH/CbuD/e bEK78pcf9ZvTcLRqqRJP+M1tMF22V4pbDbMWbmW/4C/fZkiVQHOlEm80zGkId/UJ6fMPDROr fHONEu8RlnGfyXeVeNAwp+As3aVKfMEwP4YYVeIRw3wGAa1V4ueGiXvQzZgStwXMv0dAzUrc GzDvhNv4fZkyRQEzD6exWpR4IGCOhGlrMEeGGzCb4PYyFecXArJnNTuV+FJAdtVm14+l21cD Jg4kmN23S/FwwJS6bz0qN94KmD9BofSVSJ+PBMwzEFAKsw9/+W8DJmY35sAIafpBwPQjY9cp 06OiQuHMhXn+ahHXAhCu4qjJLN08X9aIoousavQyTvlMVZOrHHOzwKJpa3LUMICyKZq+16e6 c5w1LJrRKc3GoSYVzVSVpwY1qWiWEjbIylFUp4r/gC4rR9FsJX6qywIumqOy4z6fLOCiuUp8 wGeugjhfJemAz/wAbhtUkkQ9QwqLFivxkK8QH5GLGt+QM+YzRTX1af49yPvaBuwUIcQSYaPG rDV/hGOP92YFVZIfFqFm3X8px7oBkalZB+qklG8+iwN+h5RUIDMn6ymVOYUmDrNmvTgqR42D RfDll5ty1DiIG7myfvVAjsqqQ5De3KV6WrMJvrxzjjSbrOWhVqH6yz7G0PJQcVCXLBnFvS8t ZxhozxmGT84m0R9kGCjP3MU4m1dUEVqJb6+hs2S/8lP0OKEXMK8Uk2IUxAWThLU8lBqSYYWB aMM9Zf+1SMy268SbINIwV4jBrG1yBpe1h3M7OYPLuo3zGzHhheH2/airT6L8xv47nGeLVeG5 2CHzjzWPCW/8F1rO74U0+SinR9fDyZSjnBzuhnTRUasz+y+I5xQLr+SqUMw/4W2Ggc+P/l+L cANjqsSL4GXiXxvmYIExMpcD461qjdlxYAJHYPOYiHmg4nu5ssQ1/z0Qxw3A+3EB6f1l0vtx udjhxKewOXh9m/64WoLJtoNf8aOY2e/GyhdaosVf4TP7rSOFOB+rB6wV9D0yFTuCJf2a/iPs 9/kGNkjFwggOm+r74DByqW49DsP2VuTHCG/fa1ie/AvmJPukgj80IUuTiI+8kSmlo7c/W1cq jMM3dHVqev/VuWoXsxh1Ve9HgAeFOKIc4gAqHXSVIvIgyM2oAlrRk/ARJ5P1MTqcY/MSB7uG 4u9KuCuX8d6hDX0f8RqlJGMoSlAfzfSdKcMfCw9mwtuy68Lq7iD9Qh27Rli/LhNY/N84K1EF TWtc9n1WT/NlQsTyBF4ewaBY/YXycugjGWkpp3g3ong+bOI4WfGLMDwfRYL77lRkLlCRKRkh D2rICoQL60YmwuosGCIRkcWyCmZaeaOfHx3V/d1n4ACyPgXbrbw1PA+m9hRgmJaJZI26S3g/ 7GZMK3R9lOhctWG3KEGeDPepfdNTXtx9qsu3Ux3KJNXxl17tjRu7cU8sQ4h989XfIvtBdnd6 t3ino9bS4TbojXW39ZxXIYzk0+ChuW8EP/kec2jDqWi7Lglvc97OnepI9SUSoGDtVDeF27eG +3FFNxyLisgbu1Xi1BXf0hc+gnykP5GyvexPbZS3hfuktD7Z0iYNlQh3A6lkZ7/9xvbWd/Kt 4CJnrOhmSine09nTpySVSa093XAblKZtcdviumT/QKzTFlv6Yuuh3mG/oLtMGYW+OIOP9fXF NjIh/Z3JfitRIocGpGMzfQt5VvoW8qz0nedS65kXku/R9fKlyU/uD07aGZx3tb/p2M4pwWmH xk/yF0/wTSi4eGJwYIu//Rn/fVf5Jug7p7wePBy87u3gozPeCj6+dd0e/5nBR/2xY/7hx/yL fWP14FnntflH+Kbp6271VYl2cJ6mMrZs7Oj+sWXdPamy1p6B7hbHhcs1zVNH99dMbJ6qdYG4 K9HZal+pPEjNiMc6O8HPWAZeZ3lPs+3nRbhGWdqPguwo1hkVRdQtyiwqOaC//X5idPDyPtj6 3MCsLX6tjO/R4T6iue+KvdaYfR36CvueXl3xjjju6V2Me3otP9AZYvHj8GOh5YemugrNunM2 qJ6DQcbJe+fsTPluh8RTmBsOc5uGBGm5nGEB+xlWPwcV1y2B4m8/w9p/anMDKM8da8sAPmU1 Bwhnjns49oq/O6XNRfsE/Ek+Lk9btC8yQZZW6CqqwCr1HKziSOWMSlLI17vDQY7voHPgTjrf yWHJ6Rx2n9BVSoFDfDImgOG0CpymXgOW8/Vyji+OeDs8GwIslsbLitOelQy3Xbmi+3vlqvD3 jIKwWpqOw45C4Ll8D3yY7x/22Umy71T+TLeD631R4Ed8tswTsuDww/Ga63hrSY9oklHRKqPt G3vbE91RmzNTtaGh6sYS1ciaezpbkq0bo52x5kSnlnQaic5Yai7iN9gdH9a2tlVbcUPSWi09 xTrVe9FvJOMd3Yn+ftcFCPUNakyL1rd0LBEPotcFjafk8Y3WL5AdoxDnRZfNbVxaOz+6qLFu 6ayG6MyG+Q1LtOa2aFtc64tHe/t6REeTSqZvDojWpzqWxBsxVmg03RiNx+LtiTSFWWX6sUoR Nk7WRDSWyb4dTzMxHGhy/NKEf01iMJsL5W6bwl/Ymd0D/nFJN+hmsKeDBcp143zR3cP+jI2p RENfi/AlughDDNzPSvTH+5K9iiPczWzfLKxHe6R9OfA5uONT/dENwijZBvrWaH8lrh4Q6WaG xjuTvdGNlrnIqd7khq5Yr9KBbu4cEL1te7I15cxbxfvGvO3tS66LibAxkkGpMu7ghK9vmhdd MjM6o7axjvzwImHLk90tPesVU7wj8/8CPvioM69tldwNjgqkWN3TMa9fUruycWbt/DrhFjV5 xYL5skbJwjkV67rk64zFZIZ4eNSl0rDibV+vkib5i6ULUevaJJ0x9DlTYK/TOHbJqDrzzkWC 3pdoiXbF+jvcJOiyYPvTZeRmL2+J9XUgwNPjH3cTh4u4pRJp+vCTGjpG2igm9c2dYnBGKPWK ftzLzj3IkO5myHZzYnclW2QeDSDSsqAWNM6Izp67pLEpzTktCb2FLTnpQrLVlENxUUtvpAm5 RFsSvan2wdmiveTPDr5nNU+TlQje434Ruz7X12I6pnFSLXNAJX+uVaaiHtama0GbqJLdJ3Ex p6ub8k70RrI8o51KMxqOoKIf11w9HObQUZGT0b62ZrurkWVv+bhIVSIvUfNpdPfCu0WsSE5W Z1EKsxsWNsl/ipY5KpM7szMm2lRnsq0dBd5fYSfBQbMcZQfmoVuWYlWlbLGquff19KQsNmW0 wFmcGSv/UdyqMYF5v0V18inRdciCd3EaO2PbCPptN0mxJKOEAndrUjQ74YsaMZy8w7KTkzmv 2io6TLtDdHQeTUuW1rHTs6ayMlbsSNmwVWTJRCzbTawV/ZPsZ+1+ONEt/ouutTcRT7YmEy3f NOySHlhEYr7dMByFIftPxWEr20C/1iqHOg+/biyVEiMah4OoPWDhqX7m6ZHnOnJfstmyQ0Rg ikvBqlOqy2+qW9FkN1gSY1pUt/bQKbuQy2WGSYrKeLPqFpMi26KtMZAYYKROZ7GLnlb0gSKD bALa9oSsmOvbRU9jjbcyANWyZG866ECKvlYNcd+8uFA8s6j0cvD0Nj1r/uHiikX9ArWHbJvu /sKmkZVpxyhANtckXg5C6dqXuHwABBSIrzWo1qfZXO1WRVpXWaxyZnOyu9n1zjrd2FTbNHcm a3XUMalxu426eh4PwSsGnvRQJitcWzQu6yfyVrYs1QOnR0FVKCrbxauuXidvqpsrVZYo6lms P57oTg0Se4zq9mRAzaPQccOybNuy7P+fMKz+H6ZSLdYH51EFH2oZ1w/4w5EDrJOdPKrOFYXF mOflUQWhFM5k4r2Pfg3Go1rt11w/a93i5VGFPWMQe5Pon+aw95HjhfU4w2PvzIBajHnteXlU F1Vp2gpTpeNUPKqvFWpaxJEWy+wkHtWadD6fikf106Fa+t5kmuHPy6M6vcTN72nQ3MujulbY c7IPWvHbprnTsalE7W47/cNvqycdD9SouoB0OHlUd3v8KxymaQOO+mKZ3eOxt114lBwkfvs8 4X7qyL88R7gHPf4dO2Nw3tMDHv9O1Kg6DP+cPKpPe/zLL01zmzr9+xWfLbMZpYpTwmkPf0c8 /t0+ZnDe0w/5bPGevjLGXe8texm6279fj9FcP8vMy3sKe8MHaR/OuoLfpvGi/vnVjgL6AMQB +eTlPX1hoqZVDFK+3p/z/f8G76lbzpa8Ata+4GA8pxPsuGmSV/QSyhEp/7U8onke+dt4RIs9 spdHdJjjkmb8srU14v9IhxzTnOWZrbVqzv3XbK3D5T5H7i+Od5gPaJqdByfzdnp5TnXJA4sf do/A03eHwzzfVyLbnfVD7jznkXG4wtr7hfvPPeam7pZLPfKFHnmeR17tkTd75Gs8MviRrH1m xGevx/wej/ygR37VI//WI3/pkbM8Y+oZ3jF2kMX8N0+RrSXRhKrKKdWTBqf9EybVNu1flZv7 7wIH999prF3/PLK/lJhWirmh3A/qBEfXN6637G0P+MyNBjiXxvKlXCJyVyfenhAzVmtWG43H +r226a2Xls62I9aocmEkzNYnU+3Rru5EF7jvLCo+zO/aTt6QsXnEXG/TEksoNpDqSZdSJyKi viGBZU2kHBFzlyV3OWx7Pb3gCvSykJ3kTM5QNXLYl2laOerXWYozxRCdxFyBZrHisAVeSXtb aA/jP07n3w0UEzacJzDEuIFv8cZYTXsK7kQXgCPIxjjVdmGOscs4W9NwmMA4Rx2rBgdMga44 Y8BVZoiJ3SW6Cg9fsREe5onGeapvNkRHPKArjiy0UUOML7fT/j7aR1vDceOnia/AnhiAc4Qb o0LMjXDER3TcdT4VLjh7ES44TQwxceryKXcbgWLg3+aTZ/Mlt4kpBry9dAcdHUPM/94DVp8m Z00BOWsKyFlTQM6aAupKCZxGnE1cTFxBjBIvI15O3ETcQryeuIN4G/Eu4r3EfyY+QXyW+Crx TeLviB8T/brCfGKEeAlxDnEhcSWxhfh94i3EPcS/Iz5JfJ74HvFj4pdEw6ewgDiSeA5xFrGR uJqYJK4n3kjcQ7yb+CDxZeIR4ifEPxEz/AyfOIk4jbiQuIzYQuwjfp94M/EO4n3EA8SfEV8i vkP8A/E40TBYPsQy4gRiDXEecRWxmdhL3Ey8kXg78V7iQ8SniC8TjxD/QPySmBVQWEIcQ5xC rCUuIq4mdhNTxO8RbyXeSfxH4iHi88Q3iB8STxAzMxQWE0cTq4kziUuIMWIv8SrizcQ7iPcR HyM+R3yd+AHxC6LkVhFYRBxNnEScTJxNbCI+RvxX4jPEN4nvEt8nfkz8jPhHIhY2wGxihDiS OIk4jbiQuJx4FfFm4n3Ex4jPEV8nfkD8gphhMv3EUcQq4gziYuJaYg9xM/Em4l7iT4iPEp8l Hia+TzxODGQpLCSWEyuJtcTFxLXEJHE98RriTuJdxGeJh4nvE48TA9kMn1hOrCTWEZuIa4iX ETcQryXuIu4nPkB8gvgC8Q3ilByWM7GOOI+4hHgl8UbiLuJ+4j8RDxGfJ75CfJf4CfErYk6u wqHEs4mTidOJC4lriB3EdcSbiLeRM2QvcR8wLMYZmt9P+QDlJyj/G+W3gfli/KH8MfEE339F ORhSOJw4ihwg44jjQ8rfi4nTae87lBsor6R8KeUe4hX0ZzPxB7R3Hc13E+8mPkbzn1N+ge5e Ir5K89dp/hvKxymD8xGYTywNK/OzKJ9LeRLlqcQ5fL+YnB9Liato3kq8HCjybh3lHwDFGHEH 5X8gPuLT0vOnkEfHPJTWMV9BeQ3lDZQ3Uf5mHeqqP0+HuuL8yaerQ32UV1hYOtRnitjD3Npr W7r9Pxsd6rpbjhZaWrqp8ywN1IPY6JNaqW51ZeKWpwpXW6rISqf2Wc2lBmtp1r520zqEt3yZ O8Qa5VvdW7Z+8DW5Pmrebnf5oLS7leIwFHSx0aO0a5W1uiM3bRkvH179aNVND8l3Nba2dRCK zIcHSUe1J5m2G0uvuO7VLXVHjCl1R8JbDwk7N9Qdqfi64vgNIpzD2zeNGgKNZFt9VwVQ91Za m3n70+FrBhD7Zx1qwdLS4bSKddp6eOsvhaWKl10q2NWjtj+tzL8OXzNOxumwUmKG6rJT9zjo znRH3K+ZBdnWUXbFMRXc8lTN6kujVjlWHHfoZiuFa09pKqVzqJnbcZ+TGisiWnHclauWv5b8 4QwEeDz1DlNYbUfhRZWBn55cQh896Ezeu4PWrg8vFv+0b9OPTqtEG0olOmBpJWdYWsmZTh3q oKX0bFqq01lKdTrbrTqd41adzlUq0iG3MnQ4rQw9ZHBt47y0cnC+U1e5wKkpXOhWXC5K6yCL KaRbP3ko/IPmc4lbUXmYV9k44nwBX7UnMu2jWrI/+QU3fP4WnQzOpf8R55ypfYyj0kHDMPwj sCQK+pfrUs13owLo3egZ/l04dRbwPwf140w/iBeDAX+mDg3jAJb42MLPwMNQzfJgtE+6fNuA onGmH0f4K3AWLPN14WWgUipN3YAoGplY5GaMxBZA8EqEl1kqbIcuxlo18xfCt9AtsJh5tfgX +uGTGlbY8puBgdVkFh4zcUdP9khoHwclTaRp3C9tgCs18yHEaM3f4BHrHSMO5tTs6eLff2D5 bcRzduB1X1hX6oaZ3XidwD5fNi4hkgTcRiLnKHB9K22ZBhatudiNzMSy3X/RJjiARgtOqeb4 L8rBEX3//OnKQQ7uMvI3dErJyMFKyL/Iryt1tswxKIZKnDMMxpFz2cvFix4DM6MJoWNQULMV FkNYVOXm6e9K0QhhzZWbTzEYukg4zy34H+6uPTqKIt13dc9kJjOT6UBmkhAeBpJAwAzh6QIJ uwQY3gpCwoKiMSa8hUAyQVkRxGSUOERgV9ZVj69d36+r18tjFRA8irqLe9HlCsfr9eJZH2Rl d6O7Iu5KcutX9XVPT88E0f3jnnvnnOSbX9VXX3VVV1dPV3+/+gj6/HgTkBEgmOl/AMccJBjw fwqYTTDXj8frjByCfcTSc0YuwXz/l8jNI1jon4aKehMs9oOEkNGHYIl/Lo6qH4Pfv1owzP8a lPPZvQKO8u+FsklY9GNr9AyTsOhHz2cUs98KOMF/BGVL2AIBJ/uxb2tGiM0QcIof279mDGUP CctT/Teg3hHseQGn+fcjt4y9K5Rn+fHuL6OCjRSw0o9XXRkTCS7wnwE0CYv+Z3AYU9geTRIW 9UyQTp/zoknYi8WXsdv3CWrbIxup+PAUm7FXttHh+wbWTMJiuuNqML4cr3KjThydec0gFWfb +bo1daTiPG7FWVwLY8v1CIjkl5zCeHlLXC3PYk2pENe0dwDPA5c6M73Q9zdQeoatpcE3D5fK CBGKrcDHTWFTW9dBHOmgkVzRu8ghF3sy1UGipDrUKAnKnzoMm8iipOthlBmMvWXdYK7wKw1F 0x3F/H/mPjymb8D43SFmHiO8Yo+nQApW5O+wnmJx5afoGCULi+H34Yp1avjpoWQK8BzsDBcU GUxe+GEQwC8lNgKb2KpNi4LLFTYSFrJLkDwKXzE+cgrofU62WEG5HB2Cw8wWm+PORY8+iOyc GU75Yi13yWqFXYFBC/Jqttg7+UrstAwvZiUH6wSYW1BfQ5FpqBGGsEOBLBBB+cXMaM8vZXuQ GDiBtl6yx2lyUjzoEw9OtROpnxrn16N4HuM4gG5n+W+ZBdIdWJvp1Q8M2TswtBjrdREXvm0S OM85E0ZJHsIcsAI9TTF4MZ4/wRiiG5lqPZU8vBVghZdY1AL8u3OmVS2g5P0QzS26yqJWBrUG q1oPJe+PsDawxaJ2LdTutqmJV16DnrKoYVNa58G0xCZ8DLXidyxq2JPW+alVLUPJC6Olg7+2 qB2HGnaoMNV8Sh7iXbAhiEJgqHVCbbRVza/kLYO1i6da1LCI4lzkSuyQQnRIyWqL2iyoNVvV vErePpzG0E6LWiPUnrSqpSt5iCHBBuyzqIE+qnwiXiWugI3zE5HsbKPzc4S+C3+pbmVozfIb 4Kx0AcSfxkh97coQ/LlM2s9KoAiiYBGpJYF4Q3we1UIQ0hK4PVoCt4cJEg0dUKi2vmExkYSI TMPMGqU7mUGqQaAVacyg0TjjNBpnnEYjXvoSjWY7Y+7+D7a4j9doD2wCFWa8ln3LiWeiWq46 kjVPL3XPbNGWuG/R+pRrdTPuVEM5g0eucL/U3Hxi3LArW7U6tZjJLK3/dq0311t7i1qcta30 Wc1zf4s2/xZtwBszj8/UKtz3q4P4eaXjNbkycUKNkTOecoauWb1UqVoNp8f8SH3+dfU1dflo MegyRAFDtJ7SxmU1DYtLxbkoXbZc+OaVjhpzw6gxpTVr1jSWKqa/X/xbKNJQs16cPksaPw/w /2mwJDWtTpG4ut6esqa+TrwhE6OielVT4/LaEO/0hpqG9ZTWuKxpyZLrFhNqWLxmcY2hvua6 mvVwlTU0V9U0REJm4qrFdctrQiKKPd6NSR3R1nj4H1u6CPTzz36+jXOESd3gBFU0ayafCHew q9V43qRm560OYgvhija4Qpr87tbIlp2f0x3X53c2BgwI1I/ZKCKnFCOG7hzQR0WYAGV+B35Y S+4KAu70SqSxwM5YofhjhOWsFV/n4BZ3UKaiuC4JMyi+VH7Fa5HHEmk0sPRnUft8bKhHtW9J WTuKr0vm0zwqa0fuWpFrei8t5LBGJuFN288Sc/HyZok0t848MNPyXGY8Jb3ikpvidzeg9iXn iUGFO+/cidXzKmdPmlldObdiYfX0SbMvE3EEzWS8nZ5XWTFXRM0xU6suM9MbrOmXzZaJd1sT 58yePKliXqVy0Jo4ce7sH88Lz1VwT5Sx7C8NT55eUT1vWtWUKbPCCm6C1vS54TnhikpltC15 zqyKhbOmc+OLbBkVVZWz47nNttzwjPCkSgU3M35AFXPmyIbjk4omZDx/4nOS/xUy+QINJ+UP /DseQjA2TvK/QfzvYssq2EomN1Q09I1PDzrzxok1Pqm4RNIXPKk/E+k5Np7N1Gn81lEpPNXF GbfwbKrjHKXIyuk8sxJ3OdM932TFSCZMgtL3Yb+kOItJo0ASYASxRdxyu6O3JDJahP+18Nm2 k1dExDcrUSWRZ2Klo9Bt6nvRUUwiimSZJI8wg3eS9BPjfGQTYpkkX4Im00S0vnppNdG2qtfV NFTbqCTn4ZBUSz4Ffholunt3N3/EKSLGYJhCnWaDNmqHla3Bm7qqMYGgkTRpxNkZxMZIMTcR EyPeAjkG7GSLFBOKjW+RchJJxbogroV1nkh52RCTIuFqMbpr3uKIwZCIt9/GfbggdoPkNHQ/ z6WaoE0+A/0cTiAnmLQEYg5YiQE2MsDaOAnA0qxU9xXJEUhBDzB95aVrvuF9b3e6r7ZMXt26 2/8/8ZNHBr401P/fd5xX5O0vle88/H76K+f3nbfeZrvznV8wUFEeZ+S/pXTvO595gb7zmRfo Ow+96ZYE4+tEm95Ch/w5Ztez+84rxdKHBO04n+98b5+kY9vtJfnOl8T7+Xy+806/9K2y2sOf 3Xd+ll/2lfHpznf+eq73pc0ePobvvNHPiMtdYtHLJ5nkO18i18HQDqvv/N1KYr8gJoOVA2Cc t502e+6QrAv2Mi32HrXZ+4bba07Rz7tseohFMD+F3vO2eotD8fORZan3TZs9xAjIt2Aj7zWb vWEhefywF7TYO2Gz92VPyVS32/uEvhu++FVZMu6UVQ9/n9vsbcxN7Yv/d/pu+OLvyU3ti5/D Eu29lOiu3a0vPvSGpuhn69jD59V+fO7gFXMh+rE7X3xHAb+2LAnWY0p1PKLM/4Ivfk+zbkX4 2mPBEWNGvP9P8q330bt1eW0xfsVM4FKs26bU/66++T1tOMuG7b75dt93u29+ng33Vq5ISPEK /85MC67j/4dYMHgwpRa8OqG8T6wt5FnyE+vrZcNM+Engg/kPvuzbLfk91TzlMQvGce234f+y 4bM27GKJOJ/F11RQ3yhb/mwbrrPhzTb8cxt+wYbfsOH/tOG/2bBiuwe7bbi/DRfb8FDCeI3b g4+3cbb8uTZ8tQ1vVGXZAJXfocprO4sw/FKHK3IOBMaWI7if9ST8BvnCGBixlFdY7GGdf6Mi 7y3A8F/dqijiygDuocl7jU4YrzUft9Q3QZNjwEc4+cnOeJ5MTSwYM3akfBTC91Fju9MaPcKk Hww3OQhEOhBEhO4e1b4z3cDCYV7Pf/ojJnp13eIlNdgk4XzkAXLAp0Dv54vgnvR4YFYrHvUF +8Cs0X5Egi1gT6ypq0suIfZJMSKUm4nctoh/jmDw9PyTylxiCWpT4mFivVpgSZLgX2prInF+ Q91Ksh+vjwKoW+gR1odIm/llNY2G9XgsdpsO2n1t0/LrIstXS90UD8jJqwapngmTnr2TFpeS lmhSPVOnWNpJ+Vzd/QNr8pKJIu6ian85e3sGyGsXnIR8Rd7HSwmLPdwLJWcAXAzEtwWnogrS L7kC4CqAywEOxvVk9yayG1UkR+MOsnevIjkaDxF+QpFcjVcUyZHAZunpfGJ4m+RHSOc33q9I Hz8WwNXAnA+uRi6Tx4c5H8d3FZOcjXomORjYgRDcjK1McjN+ySQH42kmuRXYvh0cDPCl0A5s 3g6uxRdcaqOl/57jEun7D3sXqTI9pEquxmhV2oefA+JDYzNC2L2K5CqSLaqs924q/xDwGN5+ 2OE/OF9QZX/CFQHHAVcI9OcFcT6CxPkIEucjSJyPIMUpDlKc4iDFKQ5SnOIgPQtxuZDkNSSX ktxIMkpyK8mfkbyf5BMknyP5EslDJI+QPE7yryQ7SYr4Olz2JjmE5AiSFSTnkFxAsoHkZpKt JO8i+QjJfyP5Msk3Sb5N8iTJv5DsJAlPRcg+JC8mOY7kdJILSC4luY5klOSdJH9F8l9JHiJ5 lOR/k/wzyXMkxQt79A/JISTHkpxGcgHJWpIrSa4neRvJD0i2k/wLyU6SaQ4pAyQHkxxDcgLJ y0heRXIZyU0kb3XIcXo7yTsge1DcYI7vJfkg6T9Ncg8kvx5eIfwm6b1F8m2y8y7l/4nkV5SO CY7xi8TplOnYxB7pAcL9CBeT3iWEyyg/THg25V9F6Usp/TrC6whvIHybUx73VsK/gOTz2H7C b0LyYzxG+EOSnSS9YntS4ohg/EOOU5RZhBdClilKI+GbIcsV5R7CIj4vv9gPEf4d5A+JC8Lx l5B8MtddNK4hJ/D2E54EWcHbS3gF5EQ+fxHeATlJUZ4ivBeSz2fXMyUev2ssPVuNo/hdZTR/ jaf5q5zmrx/R/DWBfK4r5P0H9RUqsp5iRR6/0Mu0+WZnxn2zu/e9Hj3sO/lej+K5F+h7XVkk Zbfxq1L4QluCVMERup0hBpK7NWB6yU5NgHr0Sa5h9Y4NKKm8Y18P4wWuEgufMvxxLRU1n9Wa nrCYbT7r1qOIg2KNmMWzw0cMjdbwUVtewHBQhpO1JecIom/Fqo62bih0UzgrnuIjK6fsNbxv 1vC6PetEvPKTvB3xvFOt4Y/MvMTaT0Tf0e9wIb3pdGu44/UwKIXKdoqHFe3aeGns0tPDz8Sq OhCfSd+t6v8S9h06697C9N0TGQeZABVAavMrGk8IiAS1+ZAWC7/PT4eLF5q4hVVMGftV08td 4WOxqo9Y1ekYP8SqYyzcMbbqRNMvuut1hx6d2NnV1b65U8aHkqesfVSn4dDePhhf1ylt+0Qk tKrhB1s/Hv4OHzObTyMsgjXMlhn7bG8XxRZDVYh8FvdDjx4719WltyB0vM1JfD9y2nDPVtra Ovj31p1v4H/bq/gfPXrOcByPKa3RIxyJeFp7i5REh3lex2G95R5+QIPPCmduURIu6m0bmVGZ vnsKKw/pLdjGU9/m5v9bDuot8GgsL9JbsP7MGxI9cU64+0ffxyHvzjGPVz/wxZadfzgnY6OZ HvPY33zqzT9S9JYXeXn9wA9M/QS157nazftRWjkc7ihqakCUGwVF+Ll3bZmc0dEW7jg8OdjB rzlfTDZ+sgiG5nsRD+XCYd1ntLXJdTiKvlJiu3C03l041thOlGqKyKZPtTrxtx/pRFuiqB+U EuVFrIVtCX/+2S2Sq1BerUfhINK2URUHNvxMq7Dc2gbL7V/y4jJ2mOgdrmV0UPt7PKv1TLft /nfRbhzrMHl8kTExURCZczEAokiN7cL/wa/sxSTLj1ywFAwH/dYv2sE7mMjHe/mwyNlY2xFx Zg7qexwVzSfdzWdZ83vKZ4/HxMCJT0h7M40xQldobJcYTZc52i5nZfPdjTNiaYcd7qJYWut8 x2FHptL+KM8+LDpJaR/RKU60L7YrbtWMdifIBwaroAidU2RUal4DcgAaJ2AmajbHpDn6dx4V g+0AlcocjpEXkbwKzFsx1SQ9iO7n9cbahBVfYethaUNcW4ba5ldxebZ2yEtemKdmzzCavTaW NjWx3c/ykrE2S+/xdh8w2xqJj7z2mTI0YKZ+YGpXIvfD7O1Y9A1rw7s4EJ3yYpGpYIxPc0Jq L/nGqFvSP5Li2RmKfbrEtMTvX5tPY2ObpJB/rTd9Y42fx+fv6DtN+vCDiRH6MKvzK+4gbh7R RXTKJJ8nfKeoNtwR57EcKQs/2OSLhY+WhR/WW64Qt6eOtptO88kndPPlTGkNn26LLoOV6DVW WygZjWDiaXlZAcmc/8SW1xsvH9t5jQy8OLiDl8fVmlgmsmDzYRjf3HnzuHSl6a1Y+FhZ+HG9 ZQ8GIp6REyk9iUED9RaPGF6LJJfItC6uZDQkegNHTffBaHQDvv70gMVmJNnmZ0+axfToCEnv kUX1aAEoTE7zd4Bx6qzF29E9L1uq2JBcRftkMsubGb2n89ttBrrl3ViJNFbmTZyP4zRYNWmS jeMy2Dhug42TLng2boNn40nk2XglGceXSMbJSAxc6Dc4POeJTdhdlMGeieH/shKDDgYSWTXB RPJNdpzMk2Ml8+QapJxeVlZPnjV24PSsfH5UvZ2WUn2cFppP30QKUL++vOxwbnOBd6FX7B02 nCvliz7kZ6//KHsEQtReQKlOGEyOPog4V+SDJX7T/obcA7EgwUYzucouFFzv4oWW1qEKyg4o M8ytYc1bdWlY6uaJD+CpK02bB797p4NIQ/C8cju1tSAhuFQ8ULvLamAUe9e4t2FFQbsS9TvV IJgC2+vj1aiPoNRd0HEKlo4mHnjT1FuRUiDiUP2WF3KWi2OD+6HbkeZwwSkc6u67FPEuCY+l jsFIUfHE6CjBuxD1dtQRQohfdRMOoBSrXNoHgsHjdMAGuDtK2iysbqTj7hpZpZSktXiwapQW vUIqeERYwVslcnjK+AGm3SaR23Mp0BaJfB7sQJbWKlGmB8+sabdLFPC8ABSTKNezDeW2StTH gzcNaW0S5XtcsLI9KlChB2yJtB04OLWgmPfSf/BvXtFSODyqhR9z7MOyBbzgfGphBlwU1MG5 ooCSga0r1SGH6ODvAmHjYonc3Nh70MLagzYCK11+bNnFnA7s+uU7oslXu3d6hup9QSjxMeoR HdGPvT3YE9KqiIPm7UnQreMZ3JtF0Ke7UDZAMFP/NWCQYEAHQcSbTTBXbwL/JIdgHx2e895c gvk6Qj158wgW6iBOeHsTLNaxm5W3D8ESvQym+jGPIKsM07dAOZ9lCjhKxyn3DqAWjdGxF4h3 IMFyHcs/3mL2EwEn6PcBllBYtMn6DMAQmyXgFB38D+9Qli0sT9Xxis07gg0UcJqOXTG8ZWyr UJ6lu9E5Fez3AlbqiL3knUhwgQ4qrHcyHcYiHSQr7xRW4pCko8xlwM/50KRnQfvw7vZ8BAN7 ZCMVz2tAe2UbHZ6XgPZdYZ7t34No4hirInCsw3IBIRVn21VuTR2p9BD8mypckQPZffRCdiA9 /fdsbKhV2AAk44VplvC3LUBl6JesUpQqBMRrwSy8e2RFgA/zv8ByhQ0CQDjuwAoCWAMO1sNM MSCWgoN9nQYM8rYHERtOQkxdwZ3MgFVM7ndBEFv7BG9D7uCR3CD0gmJJdAggmHXBP8LUxYBY Cw6WCCoHIJYGgyKAYAiNU3lS9tVOuZQBV5sczF+sVLxtzW2kXpGJw0RiNhaF2hS5UY7MGCUy er3PbZ2R/I6A7HbsMZOHxSIsmKobGC5krffnOIE/wfc+tYp6I2YqpUc6CgpfmrVijA/j2fvT 5DY1WThhbA1mCQQJzfoQh78GJUBfDCKWDWuAvd8AdgraEpSxDBksNCFmgr4XAUaw4aC6Y1nf yQJhGUnbcerGINbrWROqhwdAsFA1IAJj9M0zodZ07MbgDwDX4acqiGJBvOtj1/9DkTvPBBGD SkJcQEG8OWA3YPSd1uQIWY9OwyJavw94M3/lpFWjBy/CT5+LEJtQ6XeWciYg515LjujrD+Nc Gt7XYHG5QP1BJfnosS6m9HgbOljHYl+LboVnNW6S6Iasr5F+FmxYXMZBES3+74AYiMFa5P4D EKzQvgcBv0Et2o69m/qvrr/ehFs39Z2kxXNPbgyKE3YOnY4JPoBJm3WifqyA5mBLKdaFvhmA iMAFvDfymXy/7/rQZblIsxQvGuA6Y03srXg/4bgQvN30EYg5wpg3A7GxHFmIQIhfzYWNPNNz B6YKxgrxqsizTQLxIK3KFfh/OvKRjTn0rYGJvm+cJJN9VNsUCdWsrgutqWmMLA7V1tctJhIS 7+Hlq5d2xx9SbdGJrMGA+ImLLF9FLCMzSlEiYwjmsUcdlTcYRo44w0j4txCtqIhp6e5yd6la nK31VQuYVv30GfcP1Wtznykb/wD/ewbyWfenf33puHt8U32VluFewnXcv35eG++eofnytchQ zTdU/HeXqwOyQkuXHXe/rn2gLNEe2+Qe6s4Kla44M+Y2h6pF1AHMwbSBX6gDAwN+zg292Djz 5XVlC9UBgdnrtRx3eW2BtsDdU7vU/fT/cHctwFWUWbrvK7khydzIBAUEiZoAUUQuCY9oUBNp 8UEUgYvggDEmATJLHpvcC/KIOLmJ0tukDDWM4ziWOpZOjTs1OlM8RFYxQUzAEgwah+gGNzoo CclqZGZCJkbunvP/p7v/7nQeTlm1tZsqOH3+x+n/P/+jz9+3v3NcMVXeX7kaJO9Bb333Kddm 5zWOK0N/dd1SBWIe8J73Jq67bgGIur7uLUi4B3LdDmfKpa6zkjfJeW2i94pZqz6GDGX7Ue96 KDZ5JjD5SXexOjPrXNOwgtP1ynbnbGzQBG8mcOuS3I5vXd9KzhkO7+E3XAuCs13ZR+dlee/y XoUaWlAY9t51bu+CJ1bt2usKrXVdUuWKOej9JOwq8K71PuD6KTTqhGuSM9nhWgb/HXIm4/QV fz/G38O5k/SyvPzCpOnwzEpFEBX6k2b+r5ctybpVzl26KBuGZfqVlpr4O3LehrL1eVRx6tQk S4kS/Dq7pKRwQ4UhOy01adu2pOk/iKz0VGlQf/ToABV5xWUbhE7hO/Ll5XlFsGDWJaWkJJWh A78CxIcVotNB7owQ5ynOZnxmwvwuKapYD2VSUlLyk4pLC9AvfflIFW0SkwpKCytY2KaKUFkZ fqtcUlqCH76WFOSVFyQVVuTnlRUm4WpktxqlDL1Ba0vLmcCSUHFheVH+IHkg0cDKwbrdWFge hA5oODpJvkfKy3ooO7/g9jt+WpxTtiyw6b6HV25edb/EE5DfvEpaXlqQtzkp5Y4bUnKSUsqk VYWwg5SbklLyhOuHklIKBrGr7HrG0vLLC9FXOpuNRVvQRzrfF+3xZHrMH7K4rJgxPUYV5NW6 KX9hvOcuSz4+zcYI9e8Ie+593PUY24xwU7fDnE11mnFk+DeN5e9i1C7/HQfLdyM9ya5DcUh5 2V1um7JeoWyCUNZObpxQNlEoq8fAetjBwyNB/nIxDaFpAs6rHP5tZV2/Dx/b37Dc+8Rc5qRS Cq283hC40iZ/daKRv9om/8EbjPwHbfIL7jLyC8T8Lax1K9CeVXjbTw7uBoa//DlLWoK5p/ml lovfQJxiSUut6nEwJ5DWxqx3GY1Zr+XjzPI7+QxBOodfe+eQ2SnOACy7lY8Io3b5DS4+E5D+ zcVnCFL8ZRnTkba4eTrSzCiejrSEy4tD+maUeUZh1PrdUTiDQ81btcQnIPFpDxvcLz08Xxjn k5D7oZPp7CMg81xMuXiGQhcBcIleEO7ml9iUb/klxsrezYSuQKHnPaYx+cRFv65LS7FqIauz dAuQP/DLV6mDwrA0goi/cDHPUNcEiW+CtM+ZxCUocZXbNMr/YfS7datNYptd4l/0RPxA4EUX nxEgeIzbNDlw22iI4oOP9G1+7X2bjGNxcLFsDx8URq35mBbhA1jmidbzy2zyN9wL+U/z/A1i /nmmmSWfQnZftEkNmPP3KFNSrqS98krzcu+Uw+2/ePiy27PxoFD+UG4ouDZ3bXlRYUnBhs25 9OC0Rza+K2xcuE2i+1tcVBjtDRdarZEtjQfNT3dx15Q4rf4OYiYKXzzj/IrAv3AUHzqc+FX4 mze+yxS+hH4UGrkH/n0H/9KF+1Ogs4KKYG556SbsVFFBoRmLhX3BKE4Mq2SnAB61Jm9DLgu6 UqHBxXTQEAuzsTEPg2NZ4XPrQgw6pgUE0p7j0loMJhLU8V06YMoMRcTWluWCtAIMBLSlsLwU 8VaFGEEkl1vxuXllZdCH3PzcohKGEoKzVgEix0YF/BIweyb81lCnh2BxbnFRiRnPRag6AVHF 4WToNTm/qCiX4eOkYF45+3qUFFiebxoNwjOC+IpCdpeiChgwE2p1KNyXGVupgd80BKWObQSZ 64qDcBuM0cQ0Z1hHEkXvEpGdpF0YnHXB9dBH0KwV6kdiLOFaWPQs1JMpSB2D/Gnh8DAsDM0W MfDUPxEBzgZKatKHeXgFHC/vngYS5DhZPlFZZBreOujF+tJQubRZM/9Yv5AOt4sMgbEl8CZI 2IwSKGwcVGPh+HK1NSjgSc2YWCvwVEd1sppsUVRYEK8F+LGr7cZloJFxYktwhGDhcqAHrI6G fdYgjnCbtdgibW7owFUecAj0w5acfrAxQ4HZF8ymNZwbLM1lx7AKE74UdLMFJxrQTagjDbhc QtDHdRyUzALygRoLoQqBqRnuEVqPLyLpeC+xJpUXFoPWWRhFgnWb4LwUNer/CugxfQgM5P8L jONw8YGukYbHOIoP3KEwjjP83O/6SPGB4szwoSExjkOVs2IcsdxJIUG7zLaUOz2GWynWclaM 4940/o3hSPGBEtDvrHOwPCvGcXHG6OIDNeO3hMIN3JRvxTi+cxmcVwT59MJwEMbx7vH28W2s 8YEehXKipxZNz9WWfizP4PJGig/0N5DXJpxCtbwXLeWaJ3OPfdZyz1vuWy3ob7j4QGlX2GMS rfGBdmaMLj7QMpD3qI28j+ha0+2HUC7ZBpPYbpF34erRxQealTy6+EDpyZLpT8uzYhKx3Gji A7WlQn/d3ODGd2HYBjtM4uqZkvS+zby3/onp/xuYRDMfx1B0+FMQ+95VitfX0w+DOfzh4wEh nmC+nhJrwg3j178BEx8raT/yaTyezSYJ5fHdx2SBR0xiksAjJnGuwOOeMCDI2wz/P+gwePyd f7rA437xosBjLAsjbFac9IQkrqc4tm8UCjziWJYK/G8k7n9J4xHTeKvAi3928Yv+QNf4/gox i8eEfIxf1C7wOJq9Fj7BYeZTLXy2hV9t4bda+F0W/rcWfp+FP2HhMd6Q9g4S+9NnyY91mvnx Fn6qhb/OwmdZ+Dst/P0WPs/Cr7Pwmy38v1n4pyz8c07jHSr2b68l/3UL/46FH/JQaQdWnJ+e lmafMWfWPD1okt8cTYmBGFluBsv164GV/KzQfHY5Wwc9+llZP6vm5ym8dNqwB5zvB4Yc6hcY a45xeBgS9TjkryQj/C4y6Fbc6rek8pOrGXFoLQNndjqyWzLoXG/38oRZ4XlwbmboRTiLzTde XrBbmN4TIAZyffmg1xt4SBQkmjKl4sJiPJZxMKSeWVTCYjblGw2AU5f59oShZMT2nMj+Y7XZ KbNcKsiH3rITDXvCOa/hGN8x13J7BXF7GNcO8XoLiDL84DjCD8YRfpBiQSGeD/dlxO/tljiu DnHBiNvDn6YRP3eE0k+SvE/pPrj3I85ujIOnM1wglEcvzlg/zcFxfVlEEQPunsP3QaT9Dn7f sU4eW2qyk+MccZ/Bfi1y8n6hizHE+VU6OU4P8V2I40MMNfbjVfxOAwyn45h+gySdR3oj7F8u jh/MdvH0NS6OOywiHr9+cmdKUhdSUFbAzfGFeW6e/zLSm7itinhB/BLEfTPY2WB6xIBNt8jD ecQluW+RpLCHy3kFaRbYi0jhkPERUngwTYS9KwYOT2lRvN6dyCfBM454NYrLeRLTr5SkF6L4 eGHMGezn3ig+XsejuH4+jOL6+QLTZTi/wYRw3wbPXKIPEX2SaCPQmKsk6RPkF4EdHs1xlhgT JgZsz5lenr4GebAJi4mvRB4OabuI/xPyUyWpgfhR4SXHEl5yLOElgU4l6ic6n+jNRG8jmkN0 OdGHiBYRLSO6lehjRGuJPkX0OaJ/JPoa0cNEjxP9kug3RAeIIv4V6ViiU4jOIXor0XuJ5hIt JrqVqEL0l0RfIrqHaAPR/yR6jijzywj0aqIzid5E9DaiAaIFRCuIVhHdRfR5oq8SPUT0ONE2 ol1E+4nGuDgdT3Qa0blEZaLLieYTLSf6M6J1RJ8j+grRN4keJ9pKtJ3oV0QHiGa7aZ64+Xy7 lyiuZ8QFFhAtonIVxD9MfBXxjxO/i/hnif6e6B8p/yDxbxF/jPgTxLcSf5r4s8R3E99L/LfE ewi/yGJojSW8JPATiL+a+OnEzyZ+HvFZxKPrbOz33USXUX4+4SXXE/8w5W8j+jNKryXK8JOw mH9H/D6i7xP9hOp9SvRzuv9Zyv+G+F7icYNA3hPFeR/xicRfQfzVxF9H/GzibyF6D9FVlP8A 8euJLyZ+G9HHKF0l/hfEP038i8S/TPwe4uuJ4j6LejtL9B9Uzh3N9TM1mvP+aK6HOUQzonn9 myj/duJziL+P+NXEryX+X4hXiD5F9AXK/xPR/ZTOYoNBuwaIn+DldCpRxOXr+2+8geOcT3wm 8SuJ12LsDIXrBPM5FCzaMLP0+tHhOtPnzZ472pg62yiYrIbrvAKsGczXPNsEOErrizVvc5wJ w+2teVvpFXF8Iq98oebEqQGv6shwBmMembKGCXhbzXbfmOVWerd/TYBFKr+GQXmE+gf5/cxQ UoqhonprjgUn6vFU+EVkySz/B+E+h2/3YaX5/p9oDTXaE+4er6zpM4F6BtSQVweDEVXX9Kkh DubhAt6i+gyjiJ8uCyJq5QRF7lHluCa5DYs1ye2cnGFtY3ifNgKqNsndLFHeoQOAQm3aXRkC bEBdAuJ21srPKHK1v16trFYCdWpg519/D2rDgDZqYIeSmBxpVkJt/mPme5lvoobqfPvdfkQh vgTsjILM+E0/8u2vV6uZrhytkXYGrUyoDeO3E4i4OpDmsmJirGF3emqXuJVAjxqoViH13ayu p1TgQtW12Yh6Up3qUrfiPqEsP+HO6tzCMFI9kHXayVRUfXrS0azOfC4IKy1xg5RAD9TI6lzM Su/wQ161GtrJYHCJyco2FqXHG1mRiCDYHRoEVIN/9gav1xsbpyOMEg7Nc2ntx289GOhIR7Hh APKgQKb5R/MjBGOfYIF+VQ6olXFwr9Xhm5YExxkRlYwoP9nC9VwNOKpGwZWO2GLgvHQt5JMJ M8Zxpzjdu86K62cZBq6SvUJTaupD00aALvHAVUqvEAbpOAWzsukvTFy2CBIsCwP1HKUHaooy loTYPlbf+8/Xh/UU7p4EW4TYww981Wje0do+1ST3sOkMq6bDtJ59+6PVnI7ehVkOR/CS2o3S IjXQAWm9C7MdjtB5uFL+UV0fnJA5JjguMz54SZZvv6O6PtSj3z/j/YpttfdGMvo3TvPtz4po skKJXZfVEW5al++5M6N/01ep/UpzuN6pBLr1juGYwrzshoG9BYeElkl3TW/jwiiHBFsUTO+g gROFdaDhtA+M0aaRjjMOxihNi3w1V/EVYkQimyTEsOID/4rDbn3667s+MM0f09aZXCsz/HKT zFyJ1YabXVrMLANcDkX02ybjnNkojVoefjD9PeTh8wLGP9k6/sFrSXBtGD92YfOb30JH2w6S CuPF5A21wyPYND3ZCBM2uv2eSzOvQCYwTp8AQ87zOm1+z1ArvVBDEAE7NK71jAvBKXpQNrld aw3t3xlyezAOZlL4yAw2+nU1EVoKQT/fL3Q4cLSpNQK6dLu7BmdcqMWPO+Vcf0Tsn1HfaL+w Xakb3TW9SlOoVYytpotW5DOULlYJnYEqckcwHabyLLXyDCyNaPVSESQK+1cpNAuFR4LxNb2h T/X5SlpR0YeO5D/GwKfb8KZn9On9AQP2skTDU4KRb0rVFUf67PptV3yd+Bc48M6eF3bhIE9X c7ywx8PWf0jZsWMHbP4XPhNH/JTybsPXsUVNCWD5pYJpceFL5WjDOQ88ueDqzw1feZSe2sR9 TBsnGtqjUptTG5W+mJ5YucdXjZ6EaiKh7BE2bb5NeEVgvRlVvFEalYQ4tiMJ8OeuAyPU0ws+ YdUPzd/F8OwTtAGrqSbiq/4Uxoop8HVU2YWzDediiw6jgpRAi9LPtPSZ0se01HHhM0bPNHzu hNFiGsIiMFcCZ3w1XShUTmiSW/ksEK0oRBtjHPPUCwfZYPUpFy+cc/Q39Mc2RKak9mt37FbO px4+wMYu0HzhnCo3KycdDUhyehoqezwNfVNS5R5W4MJXjvMN/Z7U/lo3/rghNXwelXo49c9K D5TxN6bCXt6CN8UXByMgodXAGVD0ePTUsTw5UYVuo/qZX5AeHAGVPSb0mR8+sphNR6a0C18K +mrH1jN99TA9tZG+Wpm+Wrm+oAgoCRLRO8p/M6R1e6zcEiwacVpYW8la2IreH9RAG29ou11D jVCHnD8oqGP5UOpI4DeK43fw4h1sRNcZfkEYbtsOsS3I4wsjDvVqK4w/Tw17ImR6nvT6qvG1 kigbNpL0ZNYJuVvfBvldZ8F+CXtlsdIUbnKb7A1dH30TN6WBFc3OcGBF2/gpMD+VqX3qogG+ ierWgzoP7gF74EvCxspscrGQ9vTXDymLBrr2iqZA/VCmwDuD7D2mn0yrRemrRteb/mMHmSYW m3ehmnpFbvNV4w9RKpxjuBINdQXa1NmK3IpKxuMateEUTGrazuGZxY5xcouhv8lKg+9xPIky k/fD9pcvhxOxr2aWAx1X+2rwZfbL7ZFItK8a9wI1B44b7TXHlNm+GnyfjYE/6UloGh91k5ur 80lQJzxnYmCF4PcC6GqoG1Y7/np9J+xG4iNM7qipf3gxEJhtaqi1NrPKsE/89a/T1Ehgg0Ke aJifDP2JCQ+ySE6HEh3+2h2u7IiE3oWRA1lN7ip2YyMWKq4E3Xo5ozvOCbQM41SkM5VVHK6I GoLZyv2rYHe5snmvw/VusCo6v4C9IiMAQ3iEbRqt4uBGYJrJrZ3/Djkwsl5teRgHST50Z5gn FnHOvW875+gc2nl5RCvd1WyyH+2sM5pS6h78P7JihnKYR8fVPPPASE48xNqxx9gbdCuLv5Pg ComsSO9qN93P6odqkumJR5MIZ3h3cCGps1tpomXD7AzDNDJOU3dazSxmKYGZdZzPENFg6hYM EuEUPcikh1P4F9op/EbH8Kdw035n7h+Ymh1ubCWafcE1j94sBVdCi/OVRqW3K5o1NLgCOrVN XOChs0y/gxsvuCkRDyPkAQauWL2fKD3I+nu73rS+bxms/3UXLXp/UNc3mLGWw3198EbY8+FA cLloeTYa9m5GY8UEsZmGIQzHLGb9hl7+3mMiPE/ANARj0Gr/96H9D2aZyR2R0hRcSu3TTGm/ 8VjB37kw+HEweby/F3aQRLBv0YsVvt0Iks8fW7NPe6Nh+MzRk/QaXe+x56mNvhcLR4/bQxNZ Jf3AcVSVj2rPUH2rPxrsZM1kD1zzNEEnWNc5jGmIjtO0A5T8Hj5GEDcDl+Kjo8VXjb7W0WOa 4ALtPWNXxHRNZbA59flebWxod2LV5kcqazPf7MOMyjayB8Xzi1rZWhN55HbYWMOH3RmB9soF sAMecrOctq4f18FDo9Z9qdIfbnTD7pzRXDlZzWkBq9DB3kW1OA6rTsWBs8eZEWrdfhK2Rofc 7pDboF5GoHn788KJ6qjZ85sxVkJPDGU2yUfZNviMuGnCAu/VFnjUSAtc2GnxFycbX0W5OO6D 7PVw93r2rsoLsxbmqWi1R4c74sJ96ZtiwXJhX/kxywXB8swrEr07e32fuUFBmKOLjcOEPnka 8bWRvgh9tYtddJ40zV6t+A55r1B+vrx324dG1j5T1j7fL+p9++u7XhviVuW/GqoNrF7ntmFa ufP+YTJ59QXDlKi6fMTqFy8KJeQDWCTwhl4q8IZv5ykosT02Qz6g9Pqq3uXFab+hWvWs1hHj BXG9WnnE3+g/FXOR7vKU6S5HWfn3jLu856v6VyixKSZDPuqrWkv32KjJb2blWwz5zWplS9ez Qyot5eJIvfYOU6Lqy+9Gqn5MKMHzP17TyriP5daPj33S+V/tz/oef9amVBuVauNldtf7fn04 qTndgVIrBpU/vaadcafldl3q7TalOqhUB5bp+p1t49HerWLPsOBG8U1w58CAIXCHvN80t/f7 qlpN2a+Zsl8jfbw+MJLGfjmg21dVtcwq6qyIoLuqoeLE/8iIE08uqtyiF6vR+KsiZ1NjxkHW NLiI9XAfVdxVVfylug8q9Exl+K3yDPZPZfZqdYnZ9dVYs5OrH/PbodREN1xqtcZNh1qT4iXp 0nESz74MLyRp/GUm6RPihW5OvEyQcDmPZT/J8JY1mRrm4ewVRtXY2PjYuFhsz5ShPGoleUyu q640O9i6aqZElTxipasFaZChJSd7dBdWKCvFo+sPZU3F3xKnpZuKTBdYKJJquOi6Jl0YmGvT TZJmCCwIuS7WwevMFB14XW9uo9H4WR5Tbb/od2u27vVL6Faax9TIdO6va46oGq3oXLG+cct5 moux+aJXMfQpliH6FLshXfApdqPooywTBUjSArO/s5vMDs5unuwgp2PoSIU7HctKZyQbCZa5 1eypbOEgP2NPX2X2M/Yb+hWVAUvxq81nfVDAG8W8fkXjr/ReZ9pYdC7m3M0TV8bjT7/Oz8ag czEXdy7m/A4X5f+w9+bxURVZG/C9fTtJh3RIOkkHwhogQCCBkIV9kUBCCIQthE3BJiSdhax0 ulkURAEVXgRBnBkdHXQUfV1AHXGUQVQcHEXHXWeEEdydwRl3HZdxHL/z1Dm3+/Yl8L7v98/3 zwe/9HOfqlOntlN1696qWxXjeN+JzcWcX9AT25Dx+EDWiY2Jh1yrNmhaivnxGOcxuiUP2YUF xRJNjBOnTzgGxUOvs4W6hricezXsggJ35xGKKK7xVg2bYDumurGzmPM9ePfDfkbOQjd2IMNp 8M5luMzGJyPOvqQsZrhKwe1wzVuGy49wOQECcTikB+pdmHTrptaYaboziJwOUdHGoRxykHDn v/AZdO4cXGItvGOYWr2Gb/AdeSoNN+NT2PxxuLwHPVuBSsNTHroswhZHjpNYRuZ0YjTiGPk4 PB+F5/QjuPweuxdV/kpHjm+n3y73Y3I+AdsikQtW9roRbWI3KkrHFv1puu6K/fAvR/LJIQmb 6zi26lhPjV2/FlLeaQTJ1Kk5PyXer/+PRJOxjNdIQP/Z3zOZBu79stUH+gO0FKxh7DfEJ2Fi VEadj7twasCbSCR2EBrYawr9JmNt7jYqKPfAXh7snz4wM5eVePB8P7BfISvx3ESlPbA/R+Ci bFKQrDxsvB/jxHLeVGxcqyOXnNU0fP/szCrwurFc3ostsnTvFtLh8J7xqFX+T1FBZY1GMOfP sIneVFSi85+UvawSLEiKP4aCc8aRdFbpJ3CoT4DDz8his6bj2JPkfNI6iYqrKmu6B2tesmZO dHLaSyhsVsUcJ6f9cuiY5VfM5YFM1mz2c3uuIcvImsMs2XMHRZE1d41iaR7s/501b5ti3T34 XDqrklkvDxZLZFXdqlimBzv8ZC16WrEsD3ayy1rMktmeHMSw5D3Fcj2/QrgLv1NshOdGSC7F 3m2OAUWeF7B/UO1cxcZ47oakf7FiEzx9qeyy6n6lamOyZzByW89+JR4HCq2xTbHpnmboXMmS FR7YcVbzfym/uVq6PtqJKntaVRzKrwuyrifAmVymEqSqr+gnoSrFFeur0vVVKuQrKiR2Yuqy TYVcxTIb4HJr2MUMei0UHg0rDHslHGX/w6qh3AkprL7U8ZNwHTeW91RUz8MP5cXWdYrDnUF0 at955WK2L2yy1aVEOcOwlXOC2jhvUvjn0bAHBCkQllPFOEer2LwxOPIrxrmQsEtbjNl0VSDy xpZkqShMzk7E3mOc+KLciZWvCf1vosvkV+knMQn7xXHrTBh0NTdpz2/JghMGvxrDxrnTg13v mGG/uF3Qg5WPKf2xS0H8S+ihY5yfYd2l6suwTZ67Pz5Uj38mFS0CywqT+idjAc9Y+slBr5rE kSZFRZo0GP7cJWCNlnMqxlF9VJdwkjrmxCzc9pKvoZ+nSdydmJWCzxITh1j7lcShWCaJlF9J ZpeYwwwpxzLXGOcJVZpfqyWy2MBsKYrfeQ01EGM5FrYmn47llZppxnLPJ4lY6bo3ltOIFDvH Z8ZLV4cpOqMam+t3zyVNf6FEuIzqDPQTrjz0SxnXUADXCPSNGWupGF35WNGZsYfichWsh2sb bmGFqoacT1NPZNSMxrrVSvp5DeNTo0YlwQhIEjRnLyoHw48d+pPX0s9+D6T8nh3YhnUNdvVS Up+ANuJQ5mS4HaN0ZBqNSX8gLUainsliSYdBuwp1Ju2hjBnJ+hRFXUmXo/tO0Rcr6k4agG4x VeeiTk7aQGk2uumblW9a0r1UqUZ38e2edBiJ7qXfpXx7UXmjgLpgfa+egF9yuVvVRld0+qOV O35Nz4kEbpbAIrJUJILb12gWmA5XrAdWUapgCbifJGwwr0jotFJwMUTvCouO7lR0m9oIDQI9 UL8uZ76qR2eBqsc34nHv95lV6ixSVTrejeXjVWbtOkep2q1IxSJxLNnNOJaE9eErdalz59hw nTvHqTqPG0GKH3LJwEDXeiIKJ45LiR8wmbyS19APegF3/ABPFcUcP9cn7QUh4+fxvdDpwdYQ 8ZW/iTdNfSRdpYE64/O9n3fBzS0JwwHvU3Tt9C5FlN5XKNHJ3g/JzjK9SXS/PIoHInKLH7sh nhdUa55xzyAZ/6Gfe9CsPeM8WygqTwUsFMmoIlfPnBHcJDx/pNCeudfFmsmAhTr7kerYAUl4 6JnWhQ+ncccO8GBryNhBZnb+QsYfO7gHW6IHC39jh7If3cznk9qemfMocDyO7KHeBoqcxXi0 KW6A4ru78Krs5IzilLVaxsM8KtBS1mkZj5gjhLcokRmHmLk8+Awu43fM3JoTR9JkLH0Iur6n n03oGDOWer6gMu+R+6bG2gL+Wq3HsJele7lPbezLLNbjoGLpkfeydDbOi5C2ZU76TV6E5yw8 ZGUs89yBB7CpR+I500fIp8c0SYNnNMXZo2xyIt/pXyaZHjOmJfKdPpuwRwX3ld01Zy7syLcC 2m+kHxw/787wedZgo8PC+5NYe1oasSIz90vARhaaRXoJlmku3wcNMWTGv6AwmRnLVfp6PWqm bztVSq/HzPThlKJejzNL9uBcuV5PMEvzDIXkUWbdPekUvtfvtyZx43fis9GMmmSKJvkz+jlG UZdk1Ki4es8040Lae8/6WxLHtZJce8824zIort5zRkpZdKE66T3XjGs2nlnnMevlwckqvedz fWV6GqiOe1exX5bnZsS3gFm2Zzr8FrFkrue38FvMfiM8udC5hFmRp5pKrvdFLDnGU4wtLZey 3wTP+5Sm3suYTdaSuxA95EZl+FX2+hRI9jTnVTCIeuTf+TmpyGjAZRry5Mxo8T7Ao1B0Uprz YdRue2ai6iW74BdV5HSTQ/+CRfQb7+miWgHOy03+hoJ+S0Vy/eDhSbVUfNlufQ7ba9IenHHj 0fewwSY9TFLZKUJdSe2UtOxUoe4kHIKUnSY0OellasTZXqFpSZ9TS85OF9o9CSues7sJ7ZWE T1izuwvNTPoPhHsIzUrai4h6Cs1O+jPlILuX0FwaGBDtoxepmh+RtI50ZWfq4xQtSlqE5eb9 JUdjkpYig4OETkjCrH92tt6m6OSkXQibqxcqWpJ0JyIahoNl1I68MMDs4fpkpbksKYDCKdDn Kjo9aRXCjtevUMIVSdtRGsX6EUWrkjDiy54idHHSOmpw2SWSjKVJXZHfafpCpWq51us1qvrs B5KRpT9Q3t3ZD3uK4PRIkTTNYdQEsg9xHqljgrYjc8LjlB+xRN1ZQ6mPQ+rCD45wRW3H1Vld CzEqhOx6q2squaLjiXF2UXb0vbKjG5VLBbmkoZdw9s313oe6825JVJZXQGXSN++X5JWGlujs XeTNwccz3hvU89G9eGD1YjMwwzuqK24k2w0ctuTMQZMcfxjhBuL+OOAyL97Ya94ZboRbg5uF 9yKMtrwf4Lncm45EeUfHY223E58JDbjqS0S4h0J3C42n3+TaZD4kOblbSLWl7vPMrgLboHVf zA2Suu4m0ugtaEMSVtPlJRTl5w5vgQrkLZNAKXX1mndm1zQVJmUFkQom0z1v403aLDBjwBbd g4N7vbOZHtVTWhprNe8cpv/WPXMoGu9cpoccnhzS7p3H9GuH519UTN5Kpg8YngQqdG8VmrAx 4GPDk0yl613A9DvD8wHCLlyk6BanZwbCqi7IGLDVqT7S9i5heo3TU0Kl472oj9K8y+kZRaXr Xcp0n9PzB8qzdxnTQ04PBsjei5k+7/S4qVvx+pi+4/TgawvvcqZfOz3/gm81060xnvcR0Qqm N8d4iuKwpe3OJJWjGE8CuXtrmT5EvoiobjjHG+MJIexKTvPzMaoT9zYzfTlG3RW8LVtV2Ndj PPciGa3rFT0R47kd2/22cWmcivHEIUeBSZzmGM8gRBTE04Ex4IMYz34UTqhE+Z6J8axGpaxm 34/JHH+CrpFXkDH0XpnK2zSU6N6RyiIyx5lm9A+KK3MSj1jdnr8RZl6wKY3vOKibzMlIDe4c F4NNuU75ZcOSMqey8UyAJWWWMFmrjCOzlKv/IV0ZR+Y0pp/rqoIzp3Nx7HeoCs4sZ/qAw4Nv 0DMrOEsPOTy9MSqbw1kiO0MOM+cxPeLocyO1i8z5arCo9yUzdWjOP6Lsi0OUw2TEOAufVXiL PU7KQvpdI5I5yxeSd/r9PEhJ9mCXtPSH/qBYiudWSlH6EWapqnDSn+LCSfNMIEx/YUYa33Kn UcGmv3JbGt9y8USa/qc/p3FRZYK9Wce9t+cyKoH0t+cqvzFaHKwK5q96KKcWB8OBLZkc1b0p wmOcaM8xzi/VMzj6gxgn6jNtDck5M/O9v05B71KpeqWv0X148aUWjW7OoHxGLSSxONQasmHG gWQjvHAnzgdP33qAXJKRh91EXelb1WAx/RcyjFSDxfQbCs13XJeicLYtwxgUrx7SCj5GcK9X 03zosNIKVMbTxpiW9hW+MZowyCsdFvYSTyvKJBrvd6sbOYLGON9FtmIog6lDJ8IzLQlPzwPw +FI2G8ckrsGZcC5MHpSpGFJnmDG8TwlMrVgjMcQ4C5TCqfTrfB2d6aCdUPgaxhfOHCqj5Oxb oPA4/dyHAX5ytlKYnGtVmDz8eFjhZqXwei823UknLRdhHJ6t3jLgn7l7QuanSPNgNVDdTbK5 kMVkij5cySar95+8OTzLDgvLLobs2/iUrkg96mVqvGXe4rBsYVh2F2RvR3YeV3dh7HCCr4jx BXG/ak1/DK9v8HllvxVCXkLy+utPIi1rdZUYfK6JeaNP6W/A69CIj5X0SYZOT0La1/TXA6+q Vlc3a/pEQz2bUNwDPqIM6C+i4nIMHd8GvUrmNY1woB/BhxoQwNGUAzGmJY5ndwwgBg1WqnIN PNg6dlcRpfwbONneEWrP9gcCVEwGjPVBkh5yvBvvYI+vJYeqT9EKVSKG1qqyMND8c9QRkoUq ipeJ5xbGKI4HNiN0zcbcnmmKq1exoV0bc9d3Vfyzbthx/PqNOZM8YV3v098wrGWpQYT9WXCD 2oZo+AoqwRf7wVYNfEky/E6K7zXme/gBGh1N3E+kFg/dqnHFaXk7u5PINgxWexmqyN8h1fUG f8U1Apr07gaecalgB2bjZVGGyiLW2Q1sRrgeBp7XkaIRygR6GmwD7mFOUtOD/oYOgpo+Kly+ zxfENYoj2+cL4BrR3qgmIfJeQHLwekN3Gzree7cbvO08DrkeWIEpgQQD7u8Tz0EXqCcqjni0 grQM0oTyfdKh46OBOCqUMYRZTf51mn7UIdY5YjQGUyZ1joB9EkVox26M7/AuraCa6EQIPupQ x0+U0V9tWNnhaGWHo5UdDivLO0EXOrpG/T2HDsVzSc9/x/A3rQPHoUjfdXxE/Ag2l2zX9Pcd yBDOXMleZbJsJ/bVQvF+4ICl5NwMq/rQAX1LnVLdZ7i68cmFluftQQRPMPqrHO0DMfyZZTuJ j7gcjewVxw3KzDU1l6G/prQ5Qmu1vEoEVt8yP8OB8YHfNPq7ORz46ejAxyOBdyEwtv7X75AM IyD9HafAA5X0PiX9NfHcHkjineHQAw4jtDrm8qBDv5VCfRCrjtTRuGAfZElq5QWfk+RFqOxb HDq+v8ijQDPxVrtD0/eqEkXtqFB7pTqcWt4lPYk3IXVrHcrgR8Tx5+noCgqpua9RMeBwgsIV JvuQ/nKQDX2d4oPxkvS3aCWXKF4GfjHq+FLFV4E/mRrm1xIfHPCT5a93IE5HqFnLew8p+RrG U+hQz1ovUyreJRM/QNIDTyNnBQ40+5MIrU4aKHKog33nDn1TnevpQOZy8UpErqmTynkrNUwL sO1D3mu9yKEdbaqM4/mc4riBin0ueQ8ci9DTVDzr48x4mX8MrnbBnaZSjXdSrH66Ur8fXMXO /AS4ShlzJ8WTo05sLVcc76By1NkOzOcSH/pu1zBXH3TmlKIYL1IOeP7NuRTFvFTxneD/hPUt Uxw3xpwZaBXVir+oNm7Km9QbnTrS9U9dvVG8lTL7IBX0x+Q/8Ad0Il/rsI/uJJPzV2ToGx0j 8tngmNPSv9WhZAXmi2tCAZOrVvYjt7Kj3KleAMNL7ENOKxHuWl2/j0rhKEU2ivKxGtPiKoKd qje7DRFciRxfp2Oo+AH4n5LC/LtwAvaoCHFfzsF7e+E5xIfenBDm2cqmrldxXoDH40ZN/5mO UVATQjZBM/Pt4K8g5p8rq783QbKT0l9lBwtltZF0Xye2WdfxHv1O+nuCxEY9RNnzwviH6NyT kMc2uiv9Azqx364+VH+Rxh3dqJhzH0ccOTq35+bsRkpfrmJD4au+8x8mvu2jb+/DnxxnhwKU 8lGqsqaT3NCxMILR+gbsdKWSOZiT+aHq2zx9UWUopmU8TthFqRmAz6MpbKHStVRV8HXhOC82 41Qp8in2NvnmTEIZLVdaflQHb7VA+RTclKez9YwgxWfwrXSiqbxMKa9MNJWXR2V3hmKXwbcB VT+T37mH2rUBh6Bbnb3cU9c/J503kcBukhzYHRnuoedShh8DVxtW91DxnCaeEwDvpWOg3hdv osYspcHXYtj4i7o+9kqEfuF6yso4St5LaAvjVsrF+H5IIl8WdwlfLogLXz6CvuHlZRTNeAyq 9VeUK0bUcnkkwbwcF2yhO9SreLKfMJNSMH46NP5pjmbWUz7Xk3q30LccTWVPnGqISPmtyC3l cD7lYOLlGIp9jVaxEVTF8TXeTTyP/QrG9OOPzyf9HcF/QOiulL1JKqf/Rk6Hg74IJT+CttDf BShffPSqJ+mT/0DXRXgTUvwyXRWfpJ8p79HPjSQ45RO6OICL7+jiPVwYlJsEUj6lK13gbcmU DLoox0UWXdTjIo8uLuXN2lRmczmzWC+p9X0cmb0UFT5ODXhv9fJqCjQjDHjHYvjzajIPeBUZ 5cGGkbC/8QiAR6lJo1EME1Dt34JOCNPMVIl0FEeKFZFaHEZ84TdKPTQ3EqF+4s5YfTya+wQc f7Q6dtXcn8ARPUDY0au5HcTjBlsdkzV3N+Ju7GribsaLd2ibih2s9SxMnvJZPSW1mFhv+woN Uy+pxlBpFdoVEewDOqigA0nX3Wv7o+e8DBrxoFtymjQO3ol3bSQZpHwOvpaJ9jSGGNoeGPD/ 6yNtwl5tK1b6a4L/04E2//czbOpb21r8w1bXdShlFF45ED/H2TrBpnMeuhPt0V7dWt82LJ+8 1NX/7qie8x+zozZlUBtlRh2bg2s5TUftpizXttN02K86EKhexwIdwdrqQD0fksOeNW3NzVTI bQHRgB2Dq5uFrApVB5rCB/V0BOWyobqjQS6jDvsJtTaqTdfEyxIiXOCrsRu1f1hLW2sjx0kN RepZ4sSOux3+cwSUAMGmUGNLdWt1vT8gpwIFmzqC65r9YbamsbZeKWGK4kJJdoRdwnHGqnNf zLKNU0zto8aMq7SurRWyLuVbXxMWXN3YEVKlxbQ2UL0G+4yFHSRcnIoyUCPRmRWid3ZAUryS 9beGWsKJbcCWyiJPT7Qqafo5j0LqEjkKqUvk6CS1I6acijRY779wxFX9c0c8QH/GVn3/hPrm gl5Le7rW9VpKz2Z7+y1ypT7qut44ariGu+ombt5srHQtdjU1GJdMcM01LgmeOuA44Eh19Z/p yPMaK1ybXIcnznQt+nbzGyddfY26L12zZrlObtg829i/0TWhfrxr4lfGWtdwvhhIGpuuduSn 9n1+TMFjvb+dOdExKK3PbFe/8ryvJuVemOe6zpVqNMwweu06YPg2GU2OPN01ILDaNfN+o/VL 82rRlwNyXBfM+mHd5vtv6zfMtXiia8lmo9G1ePf4P090hYxF+10/v5+eXf9sNB7+yvXTkvEF romuPy0ZVuAKuQYsuOCAa7zrRdctrpkH7jNW7zdu2+gKZlW9OX/y0Afyhk18dFi9a8tzMx0F 3T5zjOlqJDjG6K66yVctWbTEP3Ez+TXmXNCsimFzXkfeo/6JjoHpjoGpvzESHbN1o3rTLSI1 9gLDs+lqx7x0Y/EmI3uTsXaTY2oPo+244XFM1o0rNn7pWnnVo9dOPJE7ybXE6O8KOrK7GYtd mUburvso/3WbjNrjxs83OopwfFXdFsTa4MpfcIEjK9UYTkkaP3FYXosxwxU0LtgbcjXe53qU EjFu4rDrnztwv7FyvzEDR10luI7fZ2S69u7+cLyRssk4uNHRX28y6hzjdFc9lUTTEuOSvca+ ja69rilLt+ychDOukl0pb2yeaaz7wGesm2B0Ge665X5j7X66c03QXRMmLh06ea0r1dXkuuXg M0uMQJCqPsU1cek1kw+4Zjr6px54dT3kp7iG7xnruuDRYXn5jlLvMWMBjpya0LDZ6PuB0bD/ wtxJBa4lw/IaD2wxpu8/MGxiw7MH/Hmbt1BBnHhhibH2z6dn3XKdEVr8ulG0yTEg9UEjtN+4 5LAxxzFSNz68zDFKdz1ufKu5ZlDCHfm6cUpzHV5mXLvxuOtWI931pWuLo3931xHzx5GX5hjU 4z+OYWmOrAy4ZLDzoDTX7125gFO3HKD8kgmkuE44snoYr2lUSFc4Eui+Fel7IycehVrRunFe k3SbmWUL0YmOyxzYoS1obWptW9Oq0YDTh64vfCrSwNpxA0cU1JoYRTLb6jLNS95NHVsxnu0Z Fdjizp7mCRLhKLlbDlPpmCM80Bi+5t7HSnEwVvhEp///3/83/wIr+JgEn7pZmBtVqu3oz+9l mp+vvTrQoTae7KARQE2Dr66tuVZR3p2yo725Mehb0xao7dCwx2ZLW6iVArU1ttLIg8ToBlvv xxaavLNmRxDHlwTbgv4Wc2fOlkbciyDLQwlfTVsLReo/r61arBzNqUNOKDAtFCcVVNcE/YFM 3Lgy6yhRtSSnWtb5hejf1LZQc23r4GAm5SezhW6hmTwMUMeaUQvt7PyvNEuZ4427Or+rLDHG dEeYOC1y7pfpnnkOd7w1H61FzgEzd3bGi/GpFv3Fmy1nh2n8KsUMM22zczaO+Qzv34wX4nrU 2WLq7LFM8cYb4Kut4a9yTtscMxsnD4V3lsZr2UqLTIklfrx4taa5/CqDkhCJH+9Sz+eP96OL dGv6OX1m3HiROc0SHnkP73gde24/vL+rsJSxNc140Vhi8bOXGd4vXhBdpvOs/niJuLuTNIfL hMZ6Hj1SXxXwnb45Jqyfxml3Oc4dHm+wUs6jHy+cVp8nPN7n1J3HJvBK56TF335eHV6w7DmP P96RHOrE37QpvOu4Nyr+mHlkVsqmwnlM5ZPdzhUHHqhxrGxYx9VG+VVO7KSqRZ2J5+JrrKpU bdB6qBXan0dkgV6RBXazySLt/UQWOFBkgYNtsmin+SILLBRZYH0nshcot90K61X6Kzvxdka8 w0d8oeWvkpiAayUm4EFbTEfp70mRBR4TWeDXNln1UK1LKWLKm69dhkyf2WVvcHAOgJ35X6Vz Fq6KhA9vs475st/gLYG28BkHHwBgOT9tsc7TaxYnzGAZSmoe4HJHVJGgw3rXwUkHvs/Xrvdl KsuaNMg6DU4acBHeLWiLABexqBtYz86dhHIB1Vs/bWFVJFRyJFQ41ZiTGqSc5sLXz5fhiiS6 ypCKJOzga1eHzHhZUw3ZbRy/wvvEH3iI1R7qJBhEd0a8n4hOAPrpVyQBwNckAa/JxFlUuyHu cUq7wXJ6vnalyryYVRb99zyRBc4X2fky72WXbXNyxoC4D1BbAPxK1AL3sTPgCtFwhUzSkDPA rhgfYGyMiarEg+T0hlI0D/Ae68SqULWLqjZvOkF1TJRpXRaJMXw+Du4/v4nh/AEP8rXroEyw RbUEvDaPlVaFtSGx0qpkPi2qLIjPE1ngApFdINNndtmmWC43oNq3VKvc3okobm2/FrXAO0Tt HTK3Zj/z7wuRBX4lsl/J9FpUNxbH25mqLo+wME66PJlPs8suiOPkAjfEqZoBbBS1wMfZ+fHz a3AC1yvRhesjGtzAgWp95kKAaAh3OtvUUnuuyuSIf63pj1iHquCLAIXs3bDIxbtbWwypMOJ0 SBRZfEcS/S0nI+Ib7hMwEHjFJY3OxXNmKLUTMvdnzTNkx8VzqQGXxSvbBGwQUeAt7Aw4JM7A N9gZYFfcnfhq5b1wg3hbkoixyBfxYgSEX8WLEci0YZTBkFtKF04i8OouShWgLIFFgZ8kKGfA 5+IM/JGdAZqp2M0zQOQMOE98TuBmFd+izZH43MBPleJFn0bicwP/w87/icTnBpar+BaVR+Jz W+Nbz/G51kciSQZem8Du10ZiSf48rHq3yoroCx/wUhfRsTgQCbfYIhs+trYlIrt0ZUR2qUU2 fIRtMCK7/MKI7HKL7HJTdkqXsH+txT/cEMZF/Bss/g2mPwr7Si531PPpLlHWc3MkJc0zI6HD x4I+EvFvt/iHe1dMiZawXcD7Z+4o7RgH/9otnRnh7Xztul1meKM6PnJ7gutC4d9YFeAaEQU+ mBgVwxsR73Ca/x5xC6cTI+4nE2VsRXgsUcZWMvUbNQ4jt7cTOSXAb1SUcwGaKUoYm6ycAXYN vbqGRcP28T65zUuKSvwPEY1LLWrCZpJHQd5KijaH18itit1qf0gKh68dQjg8Odo0jkdkG76I yIZNY1REf/N3Ef9wQU6M+IcLEo8mxclckMCpfO2aKlPQ1mLAY8pvRBZ4UGQPyoy0VfZZcnsl OWrE8zei8zw8dPNwCEvhxeLTGOU0F74XeqLC4glot4ejBu7ha9cemXq2Rg3Zgx6ub2DXFNVa AMkiCuzNzoC+4gwckBJ1P3mcFLzDKYVvv5SoRMMnkZ26E/Tiy35hNWFBPKHlp8jtmrAwRW7X MrsddbMlHkrh9AMfEf9HwrK7TVFtCfG/RqcYD3tfSFTArySqr2TCO6pDJ7f+qawSeB5/J3BI qsoVIMiibuBmdt4c0RDuwnvhKw/lPRdzqIXqclE9QTtfBiWQJQd4FP11qnQzhLenSjcjE9hR 3Qy5/V5yAPwLqwKckswAy9P4JkMwRDQAoc0WsShzAl/hfL0SUeZWqJQtBEhywtm1iE7/ayS5 063+J1nrfwg0pWkuNC1lpZ9jOa6XSzmcwIWdqK9IJcmRrL5ipTccVfg1b20kr+FOawu53ZHG PRDwfo7/YYJn+fJtgvfSotreL8OClYcIXuJLCP4jLerZeVQkxipLisJHy6P0L+GKQDYHRxc+ CuAeLoS3I4Vg+q6K6A4nbIskDP0Z8OFIbkQ03M2p5QBeMSnC271iUrJMIMqkyO0ZL5sUcGC6 SiegIJ1Fgeu7KWfAjm7sDDzFzoC3xBmISKyWRnoz09nSMiOK3cBZ4g5sFXfg1eIOvFvcgU+L O/CMuANjurE7cDAnxQ0sF/fySMrdwPvF/f5I0t3AH8Qd2Ls7uwPHdWd34FJxB24Sd+CD4g48 Ie7Ab8UdqBYHkjtwCNeFGzhd3IFSR+F2hsrIVvUyt1mKiS73ScnQ5ftSGHTZX/JPl1sly3TZ vTvnhi4XSQbo8oCkmS7rKcpmVWtztxHszIhqFEhAjtK/UJd00+XODLOmw4aLXGVxWPj+PFrN TvWyBP/29te0171qriAYCPl9mAwONra1alhOTo511c0dFtdcdm0NNTdHHBezo7y699XjJCos qd7F7o0dPryu9/EctHZPumVmQh1s9Xr6eecqsHoZcw5qVYGvuqYm1BJqrg62BXw8Ae9rqG6t bfbXaljWTIItOAgL0xHhk7JwpK6Glb1nz22cyJC0NzfjKDUsS+Bzvjg5HRqW1HYu0ORf16FV srd5GDcU17S1r9N2sbtyqPX72zmnn58t7V8VoqLCAlUkvbrJ76sNBapRriKmvWfx8zdXt3f4 a/kwavHHUk/bFE1Jb+0c0zRYtYi6VnXR4WtsbQxqD/UJlwzqCpM4VJpYbyeutrkdrYW96oNN VB0qqe1t7aF2H+ZLNKxRO9fcD9aGnT3Xg3943ytb0phGGt6WBv/wHIbFjnOpLe5yR9w/p9Fd Bg2HzKFdH/rrZzlKE7etPl7umXdbjtAcRL017gYrbe755FZoca8VOdxkJlgmetYFGxprmlr9 HR1RZ8D7ymaFgv61tiPjfDzFWwzT1rjopd7L5vD6JJiCOuu+klh1az0FKiuB8ZeVzPQtLJ+/ oLjCN3d+6YKSOb6pcyrmVJJsFZkAqdUCNb72QFu7PxBsxPniHBVhsKmyZj4WtGjivc5XU13T QIqr1rX7p7KYOly8bL5qWuWtq3HgOVXndHVyeIh+x+CA9oVqhQqupmJRy/maw2qfCmqeI+9D K0LAaW2twbPsrgVFhaPvmrSyChQAn/V+VlckJdbhb67TGqBfZs7NI+rl3HA+Er090LgaKcN5 e2XzldqaNupKVPujlExZF/TPCajzxsumtqHK5mJ5DhJY4u+oCTS2qzhtp9FTaS4on8XLheZy DNoK0uRrU6rKqmb6yqfOme2bX35hqa989sLiivISraxUTW6WTadCqlKGsKLeV1+jqWVG5oS6 ZYFWwF9HBRvC4ekdvrU+npE/RzvmFtTu9zdxm6REtJpdVsDfEWoOarVt6HYpm2JjNc2N7b51 plrpbjH7SSHbqYRx3r0fJmyxD0pwe+Palup27kPP7iXqQ+pg+DLKedlsMtLKBbN9FcXzq7TI QYxlWIC1cNr8hWr51SxetqWtQOwdDY11OOaxLYTSiZo+rg/bSn1bUNlLY3UzDrnUwrO/voa2 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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 NDPZvDb9mO7sp2pb4izpWbv3/dZXvCnFRS/NRcT1TZLmgrPzn4XGcZx/pLnSjfpmF7oLdh2+ 2irvnNseDzQbjcdUZzl7xrM8Hvxh3CpPnL7lzeakLNdVmQPNzbHgHC2iObJEuZvDoUjQcFRc pW5zTAfdxWaaa3XQqTUcbXHbOrqaI8ba6c4z1/ZIW3B7HKZiq7wl2t4uKzYngi1Ps4h2uXnP g+XmRSozZ7n54VreFosmb4q/Tvq7leiA2Z5k3SnpfTC/4q1afpDLNsSS22ddC0vSRM9PdKdX QKax5rnqa5hnWVNztL4M6pL696A+Z0z6/a663DcCe1F+Z+UqqM9ylbvdleHsTvKUO7mv9gB4 y33f047F3Wbro+3IdbVjmqe+3UwgLcm7mO22wzz1FS9Jvs55rvqm41NFuW7zhqxw+TEf2GpH M8ifaN6spzKT5fzoXE98BWMtK+4q54Ta5Ylv4BId8SzxFbriO8dTX/c+Jn9Iz/Yu9ZRbfIJl XZjZs9ylnuP+ZGnydSl2Hfennvr6NSXb6K7vZk99y5ZqPVJfqau+X+NTQblaU99Wl6PzOq/2 HHdkyLLGpjjuU+zn8IYEQu6b2WS5dz31BUPWDsmxyWcy01suxfnsPgcS7Y1YifWgB1v6WZYY pP15nvo2dOr4OG993uTOz7I+/NJty9zhyMJZHs72cI6Hcz2c5+F8q4h9fyKWAmsE+7vBEy29 FlXDxxnttnR2iHDM0vWSh8AXGN3gqm85jdwVlkfTyXP6nPJ/NLqPi2UN5Rk2az4blkdFL7NZ +9nwULO/wXaubwWJp8TKzHcnXlnLfWKGc70qSKzh3p2RjGeRrQ9XdcpfZ+s6xY79HluHujv2 NVxEnXjeldgy9f0XlrXcx7t4lwwd/90PrjEsj69w2i/PlJbHP+wN7/h+eLnQw709XOzhUg/3 9XB/Dw9IrCmfTPnW7AzL5ZWfWPN5dxd3ZSSvncLzDB/gYlkb+ngXn2044uLzMnTdbYdlDekr XLxjfP08bCceqi5Jph6Vms/Hna74SzP6W0+4WF6dDR7+xMNFmcl5jlLfXpnJOY3C0zOT8xeF z85MzlUUljWm17h4dWZyDqLw+szkfEPhLzKTcwuFd8tKziMUlqfZOnMGhWdnJecHCkvdzlxA 4ZVZyXl/wq9lJef4CX+elZzPJzw4Ozl3T1jWuHfm6Qkfk52ckycsz5p15t8JX5a94+sna9w7 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 zn0of/hl+p//TdumJbTtI/wjeIb8/RRzaULai77r/lf+JiQpL0eu+UaPf+bOVz79L7PNL/Xx 3xGatiUh/Wb5u1aPL5T0b0XOlb/35G9qQln4auNsy/wqOtl/h9rmF/dHJEnLt8xbUPAf7nLh 1/8nJuE98b9LEo43qbzHd0254Gl6jLc+4JdWBxRPluOz5S+s1+yWvx/I8fnyd5Wew7ciD9fj RXpdfUIdp+jx7SqzLPMrZfw30deW3wv+b/k7Vs8X2uZO3ROaPi+JjnjTwgm2ecPJIpGvJJTZ qscdKpf56tsrf72Wuct4h8if6flfqXxc5ZuW+WXBU4rPlfyfiXRfYYOn7hfa5o0bbSKj8rc7 oa5H5PgF+cNbHvr/DWdHIZ6Sv8ds87aGg/03ViseYpk38LYsc7HZjVxaZys2bwJoiWHj0Xsf cLGxtL4nXGzeY9Efw+rdV7nYzOxZMWy8fcVzLjZvGlgUw8dZ38pEWSNBPtaRR0v7xkuW5q+M 7wbeP8RUcaJl1nr3y8KmSBYVszR9Vfy1Cax9ulyf02/GHNKnyuKpSxb8jysu/b43P94hXvOB 8V9IfzrNm77wDKlPAuW3Nf0haUTup8bmgDfqRH+Btm/DEO/1rx/uxZW+9n7oa898fZnIUi1v 9THe9HG+txW9o68WgT0g6W/qUN9W/FN81mSd2OOhpr3HCsWZsoAapu0/5VCTv0Pru0ri04Lf mTGP9JnDvPVdIIviPjHwZtukTzjVm75Vyiu62GZMjfROCcx+eIfNufAosa+6U7z5m1Tfn2n9 6Vne9Ed8bzI4VnGZ6udIINoni6pVWt8zvv7+lfRHtziAo7S93z3Mm75yhBfvOd6LD5f+z+kz e0+4vtmXf6bW90dt//QTvOm/9/H9ktSf9b6JuVDeTcJf67tWzJ4DggveNfMD8DEjvdffqEHF UNX/HCm/4GSbMQXyl4j9t4v936N8d+nLbH6k7XtYg7ag4nafvn/38b1W+GqX8bZRy3/hKG/6 NT/w4myf/ncjf4/ZI8D1S9Xe7tT6N2Z68z8y3Iu3+Mbjcb70G33tecDy4i1HevXPyfKm78FC RhbA67V99ndkrhZ7RV7Ya2LMgPw9aq8XaXnYryt6z+zz4folmn/lEJP+9hHe6xvVZRbq9d3H 49esNn8hhesPP8mbH08ObZD2ZGh7Vn7Xm75Ox/siLe+rod70gM/eb0nx4ok6nibo9Rcch/1a m2sYtKcn25v/Ml9/44nshndMbER70/ZcreX91td/Rcq/O973+fj97ywv3qn2+5za+x+Uz3f1 +kPxVFi+zbU96t+h9veUpt+j9UUUl0r7i6Jmb43jTcsfmWLSL9f2uvwe4rPnEuXnH5r+PcV1 in8pRGXutGLzzfdSvdc/rfPFQ6rPmWJ/NdfE/dd+9e+4DF29XK+v0fLrffZxnthDg/jzi/T6 AfEHudk2992B8Xa71n/G57dnffPH7TI/Fji2vglnmHV3ujd9nM9+o9KfLXPi7f2Ljn98+xNF r/TZ30afP7nxu3h62OY+Fa6vyPKmr/f5k3t89veQz78/7rv+JfUP52l/vemzv/O1fTdrOn5B 35Jqcz2N9syVgLGhOB4vBE/2Xj9Gx8vv9fprfPPBU+qvH9D0U33pYd98eYev/Xt8/RX0jY83 ffHCcF9/HYd0Caof1vbjCcLoHeYdWPAfv9TxeZS2b7jUl7XW3B9A/hy//0Wmf8XtZ7em3az2 e5nMDw0TbN5/Qfol0p99d1ux/nwI9l0V789HdTwudPtP7K+5LJ4+xNffAV9/fSPt75JFxQL1 l2Ht71O1vKjqd5m2L0/9pTue9kshfR+ZtTbjIYzXbpfPYdYV6l9ma3njffPT4772naj53fjv yDO86aW+64ek49fONt8Zh/pW+sZXkc9e89Vez9by3zw0Ht8fLfH9dF98uFLbMzHV5G8Ue2gV e/hM+S0U+y36xNyPAv5W+Riv5df7ypvjs9/6DC/e5Gv/G1lefJov/VPl80ytr0X926k6X65V /+P605ulvc3vmz0QtPdq3/i3j/PiFeqvr9TrF/jGiyP2UnSczX1dlHeG2G9rrs31L/C9Ml5y D7OtU9W+DlF9P9LyntKXpbnzyVliv5kJ64uR6h9+q+lvSH8WfWb2RDi/K5/Zmn6kju/bFK/3 8b/e158/Ufs+QfO/6Vtv/LdvfrhUxl9ORbx996R5+9fxxX/3+OKFoPLlrg9SxD+0fG7uZ6C8 fb7+/YH0390J8f4n0l/dA2b9i/xt3/HmXyr2deYdZj2C/B2Sv2jArIWR/wSffq8p3+3anltU n1Qd7xPx0dUr4/58pPaX29+Zvvn4Pl/78WGv1u44X5fq9edrfODeDz1Wy8OHIl6T9h+r7d8w NF4W0l8XxRra3fhqmPWRb3y9Lv6pb7jN/TKkf+FrX7qOz81a3gmnGfye6rvb158fw74lGJ2q 5dUIEd1fWLH49vu++gt865PPfeM1cqwX1/jG3wm+9dxhPn9xlOTvajd7Jqh/srb/SdVnvm++ q1f/5cZfWdq+21XflWKvNRIvV2p5uT57X6PXl2r+Q7T/HtPyRvr8d4eOV3c8HSmGknt+fH/h VE1/X8s733f9Wu2fR/X63/j6d4ny+bD64x3CR9/e+P7GL3X+Pkmvv0rt+Vit7zy8eXCIzXu/ yD9N2+P6t+t0/gsp/sIXDxyF+C4QH/8nZnnTl4l/aK2Mp2/U/rtBy9so/dF8oc19baS/6rO3 C3zx8W71H65/GYWTu+LzzSOq3181vdkXj97is4eZx3n79z3Rp7s83t7T1T+frv3Vrfy48T8+ mFTU6/rXYVa5z76ftLz4MQkS2nvi64MVOp5naHkf+uLjGUJc+5k271dy/a3z/xLNn4v9EPFH bvx0tK6/fq3tPd0X336d5cVB1J9p85kdXP+4zx+OFT7+R/wPaIP/CWl5rv0PPTO+35ZpfTaA N2Rk7Tb39VFeh/ZfQNv7Q+X/UsV4A0zRR659DbOO8PF1n+rj2stfla9OxWN0fG5S/E/xD3MT /OXnvnhzsvRf87Xx9Tj2TGuazP004Pd88fDvR2IPw+b+N9dbvvnsabGXrPL4euV+1S9f23Ok +N+chHgsU/3N9zW9Svqr9U6zj8z9D7UH177G+Ox1hG/9c5uvPdPlor7e+P5hisan7nrlPh3f rr1d4Nv/WaXjbbGmr/CN9zd9+Je+8Xm8Lx7d5vP/+3S+X6Hl5/naP8pX/hSxv6eETwwr8LlJ +UzX6znH6/7y0dbhElt5r5/lG4+/VX/t8nOhb7xNFD5q7jTPoaH/fuZrf53y8Se9fqFP/8fU Xz+t46Pdt59ypPa/G8+f5Nsv+cQ3/jq1/Os1/wPa/gcV34z4YaTNN9ugvW9o+fdq+ibEZ9W2 7icMs8b4+vt0nz0t980/bvgLP4akab74fJTUn/sdm8+loPyPfeP3j5Le+j2bz9RwfaD9gfkP 66W/K18XufuNvnhps2/+vdHH70wff9/q/Oj6881i35kj4uP3UV/7j/btN33lK2+Zr/5aX7pz HPbGbd7rRvmtvvyXZIn+p9mWnWrS3/TZ7zSff3rItx7tU37c8XuRL/75xDfeHpN/2j80z16i vtUaH7j7ZZbPX3/tWw+cLP6xqybuz46R/JsT8jeof3TXV3jesbvJiq3PH/bNN9vUfi/X/P8j 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 v3///fvv33///vv337///v33779///3/5+9/AcKVrSIA0AwA --------------060407080808030906030006-- From jjrussell@gmail.com Tue Jun 20 09:45:46 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 286303B017D for ; Tue, 20 Jun 2006 09:45:46 -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 18045-10 for ; Tue, 20 Jun 2006 09:45:44 -0400 (EDT) Received: from ug-out-1314.google.com (ug-out-1314.google.com [66.249.92.172]) by menubar.gnome.org (Postfix) with ESMTP id DDF3E3B01B0 for ; Tue, 20 Jun 2006 09:45:43 -0400 (EDT) Received: by ug-out-1314.google.com with SMTP id o2so2994482uge for ; Tue, 20 Jun 2006 06:45:12 -0700 (PDT) Received: by 10.78.47.15 with SMTP id u15mr2704279huu; Tue, 20 Jun 2006 06:45:11 -0700 (PDT) Received: by 10.78.124.12 with HTTP; Tue, 20 Jun 2006 06:45:11 -0700 (PDT) Message-ID: <46cb18130606200645v26a76091w98fec72b69db943c@mail.gmail.com> Date: Tue, 20 Jun 2006 09:45:11 -0400 From: "John Russell" To: doclivingston@gmail.com In-Reply-To: <1150767859.5180.33.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: <46cb18130606191233w68f08b35t5b4a360a592e8971@mail.gmail.com> <1150767859.5180.33.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@gnome.org 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 13:45:46 -0000 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@gnome.org > http://mail.gnome.org/mailman/listinfo/rhythmbox-devel > From jjrussell@gmail.com Tue Jun 20 10:35: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 2D1423B0460 for ; Tue, 20 Jun 2006 10:35:45 -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 20209-03 for ; Tue, 20 Jun 2006 10:35:44 -0400 (EDT) Received: from ug-out-1314.google.com (ug-out-1314.google.com [66.249.92.175]) by menubar.gnome.org (Postfix) with ESMTP id E4D933B048C for ; Tue, 20 Jun 2006 10:35:43 -0400 (EDT) Received: by ug-out-1314.google.com with SMTP id o2so3019711uge for ; Tue, 20 Jun 2006 07:34:40 -0700 (PDT) Received: by 10.78.51.16 with SMTP id y16mr2736730huy; Tue, 20 Jun 2006 07:34:39 -0700 (PDT) Received: by 10.78.124.12 with HTTP; Tue, 20 Jun 2006 07:34:39 -0700 (PDT) Message-ID: <46cb18130606200734w36f36216u73313119f680968b@mail.gmail.com> Date: Tue, 20 Jun 2006 10:34:39 -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=-1.819 tagged_above=-999 required=2 tests=[AWL=-0.777, BAYES_00=-2.599, RCVD_IN_BL_SPAMCOP_NET=1.558, SPF_PASS=-0.001] X-Spam-Score: -1.819 X-Spam-Level: Subject: [Rhythmbox-devel] rb on pause doesn't seem to release the audio device 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 14:35:45 -0000 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@gmail.com Tue Jun 20 11:01: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 D5B553B00E9 for ; Tue, 20 Jun 2006 11:01: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 21722-01 for ; Tue, 20 Jun 2006 11:01:17 -0400 (EDT) Received: from wx-out-0102.google.com (wx-out-0102.google.com [66.249.82.196]) by menubar.gnome.org (Postfix) with ESMTP id A61983B00E7 for ; Tue, 20 Jun 2006 11:01:16 -0400 (EDT) Received: by wx-out-0102.google.com with SMTP id t12so482372wxc for ; Tue, 20 Jun 2006 08:00:34 -0700 (PDT) Received: by 10.70.78.15 with SMTP id a15mr8472903wxb; Tue, 20 Jun 2006 08:00:34 -0700 (PDT) Received: from ?192.168.1.120? ( [67.86.206.80]) by mx.gmail.com with ESMTP id i38sm6240778wxd.2006.06.20.08.00.31; Tue, 20 Jun 2006 08:00:33 -0700 (PDT) Message-ID: <44980D88.4050504@gmail.com> Date: Tue, 20 Jun 2006 11:00:24 -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="------------040908010102090809000004" X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.586 tagged_above=-999 required=2 tests=[AWL=0.014, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.586 X-Spam-Level: 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: Tue, 20 Jun 2006 15:01:19 -0000 This is a multi-part message in MIME format. --------------040908010102090809000004 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit 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 --------------040908010102090809000004 Content-Type: application/x-gzip; name="lastfm.tar.gz" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="lastfm.tar.gz" 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 DLoAoAAA --------------040908010102090809000004-- From adam_zimmerman@sfu.ca Tue Jun 20 12:08: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 A3C493B107C for ; Tue, 20 Jun 2006 12:08: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 25447-03 for ; Tue, 20 Jun 2006 12:07:48 -0400 (EDT) Received: from pobox.sfu.ca (pobox.sfu.ca [142.58.101.28]) by menubar.gnome.org (Postfix) with ESMTP id 7D3293B0FA8 for ; Tue, 20 Jun 2006 12:04:05 -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 k5KG3uN0008689 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NOT) for ; Tue, 20 Jun 2006 09:03:57 -0700 (PDT) From: Adam Zimmerman To: rhythmbox-devel@gnome.org 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> Content-Type: text/plain Date: Tue, 20 Jun 2006 09:03:55 -0700 Message-Id: <1150819435.17540.17.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.487 tagged_above=-999 required=2 tests=[AWL=0.112, BAYES_00=-2.599] X-Spam-Score: -2.487 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: Tue, 20 Jun 2006 16:08:03 -0000 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@users.sourceforge.net Tue Jun 20 17:30:27 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 563AF3B0A36 for ; Tue, 20 Jun 2006 17:30:27 -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 15439-03 for ; Tue, 20 Jun 2006 17:30:23 -0400 (EDT) Received: from allele2.biol.berkeley.edu (allele2.Biol.Berkeley.EDU [128.32.118.82]) by menubar.gnome.org (Postfix) with ESMTP id 9F59C3B02F3 for ; Tue, 20 Jun 2006 17:30:23 -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 k5KLUMe7024086 for ; Tue, 20 Jun 2006 14:30:22 -0700 Received: (from alex@localhost) by allele2.biol.berkeley.edu (8.13.6/8.13.4/Submit) id k5KLUMRe024085; Tue, 20 Jun 2006 14:30:22 -0700 X-Authentication-Warning: allele2.biol.berkeley.edu: alex set sender to alexl@users.sourceforge.net using -f 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> <44980D88.4050504@gmail.com> From: Alex Lancaster Organization: Sourceforge Date: Tue, 20 Jun 2006 14:30:22 -0700 In-Reply-To: <44980D88.4050504@gmail.com> (Matt's message of "Tue, 20 Jun 2006 11:00:24 -0400") Message-ID: <75sllzh5w1.fsf@allele2.biol.berkeley.edu> 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: 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: Tue, 20 Jun 2006 21:30:27 -0000 >>>>> "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@users.sourceforge.net Tue Jun 20 17:36: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 406FC3B0C15 for ; Tue, 20 Jun 2006 17:36: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 15849-09 for ; Tue, 20 Jun 2006 17:36: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 6A8D13B0A73 for ; Tue, 20 Jun 2006 17:36: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 k5KLaJsV024116 for ; Tue, 20 Jun 2006 14:36:19 -0700 Received: (from alex@localhost) by allele2.biol.berkeley.edu (8.13.6/8.13.4/Submit) id k5KLaJOt024115; Tue, 20 Jun 2006 14:36: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: <46cb18130606200734w36f36216u73313119f680968b@mail.gmail.com> From: Alex Lancaster Organization: Sourceforge Date: Tue, 20 Jun 2006 14:36:19 -0700 In-Reply-To: <46cb18130606200734w36f36216u73313119f680968b@mail.gmail.com> (John Russell's message of "Tue, 20 Jun 2006 10:34:39 -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: Re: [Rhythmbox-devel] rb on pause doesn't seem to release the audio device 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 21:36:22 -0000 >>>>> "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@bigpond.com Tue Jun 20 21:35: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 ADDF23B0553 for ; Tue, 20 Jun 2006 21:35: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 29876-04 for ; Tue, 20 Jun 2006 21:35:32 -0400 (EDT) Received: from smtp.felicity.net.au (203-214-122-19.dyn.iinet.net.au [203.214.122.19]) by menubar.gnome.org (Postfix) with ESMTP id A4B553B03BC for ; Tue, 20 Jun 2006 21:35:31 -0400 (EDT) Received: from [203.33.109.252] ([203.33.109.252]) by smtp.felicity.net.au (8.13.6/8.13.6) with ESMTP id k5L1cXX8004967; Wed, 21 Jun 2006 11:38:34 +1000 From: Gawain Lynch To: doclivingston@gmail.com In-Reply-To: <1150764803.5180.14.camel@localhost.localdomain> References: <1150735119.6206.2.camel@ubuntu> <1150764803.5180.14.camel@localhost.localdomain> Content-Type: text/plain Date: Wed, 21 Jun 2006 11:34:54 +1000 Message-Id: <1150853695.21424.3.camel@legolas.felicity.net.au> Mime-Version: 1.0 X-Mailer: Evolution 2.6.2 (2.6.2-1.fc5.5) Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=0.165 tagged_above=-999 required=2 tests=[AWL=-0.486, BAYES_00=-2.599, FORGED_RCVD_HELO=0.135, RCVD_IN_SORBS_DUL=2.046, SPF_NEUTRAL=1.069] X-Spam-Score: 0.165 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: Wed, 21 Jun 2006 01:35:35 -0000 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 gawain.lynch@bigpond.com Wed Jun 21 06:05:24 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 DD7763B0DF2 for ; Wed, 21 Jun 2006 06:05: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 27724-02 for ; Wed, 21 Jun 2006 06:05:23 -0400 (EDT) Received: from smtp.felicity-group.com (203-214-122-19.dyn.iinet.net.au [203.214.122.19]) by menubar.gnome.org (Postfix) with ESMTP id 913893B0F3F for ; Wed, 21 Jun 2006 06:05:23 -0400 (EDT) Received: from [203.33.109.249] (unknown [203.33.109.249]) by smtp.felicity-group.com (Postfix) with ESMTP id 1297224060; Wed, 21 Jun 2006 20:08:57 +1000 (EST) From: Gawain Lynch To: Karsten.Schmiedecke@gmx.de In-Reply-To: <4498E8F9.1070308@gmx.de> References: <1150735119.6206.2.camel@ubuntu> <1150764803.5180.14.camel@localhost.localdomain> <1150853695.21424.3.camel@legolas.felicity.net.au> <4498E8F9.1070308@gmx.de> Content-Type: text/plain; charset=UTF-8 Date: Wed, 21 Jun 2006 20:02:31 +1000 Message-Id: <1150884151.6040.2.camel@legolas.felicity.net.au> Mime-Version: 1.0 X-Mailer: Evolution 2.6.2 (2.6.2-1.fc5.5) Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=0.17 tagged_above=-999 required=2 tests=[AWL=-0.481, BAYES_00=-2.599, FORGED_RCVD_HELO=0.135, RCVD_IN_SORBS_DUL=2.046, SPF_NEUTRAL=1.069] X-Spam-Score: 0.17 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: Wed, 21 Jun 2006 10:05:25 -0000 On Wed, 2006-06-21 at 08:36 +0200, Karsten Schmiedecke wrote: > Gawain Lynch wrote: > > 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... > > But aren't "Volumes" separate Albums, too? Like for "Caf del Mar, > Volumen 1" there's a different artwork than "Caf del Mar, Volumen 2". > > -karsten Yes, but if I have ripped it and named it "Volume 2" but the database has it listed as "Vol. 2" I won't get the album art. Gawain From alexl@users.sourceforge.net Wed Jun 21 07:34: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 DAA173B0BF9 for ; Wed, 21 Jun 2006 07:34: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 00421-03 for ; Wed, 21 Jun 2006 07:34:30 -0400 (EDT) Received: from allele2.biol.berkeley.edu (allele2.Biol.Berkeley.EDU [128.32.118.82]) by menubar.gnome.org (Postfix) with ESMTP id 0F6D13B0DE3 for ; Wed, 21 Jun 2006 07:34:29 -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 k5LBYSd0029779 for ; Wed, 21 Jun 2006 04:34:28 -0700 Received: (from alex@localhost) by allele2.biol.berkeley.edu (8.13.6/8.13.4/Submit) id k5LBYSDu029778; Wed, 21 Jun 2006 04:34: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: <1150735119.6206.2.camel@ubuntu> <1150764803.5180.14.camel@localhost.localdomain> <1150853695.21424.3.camel@legolas.felicity.net.au> <4498E8F9.1070308@gmx.de> <1150884151.6040.2.camel@legolas.felicity.net.au> From: Alex Lancaster Organization: Sourceforge Date: Wed, 21 Jun 2006 04:34:28 -0700 In-Reply-To: <1150884151.6040.2.camel@legolas.felicity.net.au> (Gawain Lynch's message of "Wed, 21 Jun 2006 20:02:31 +1000") 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.589 tagged_above=-999 required=2 tests=[AWL=0.010, BAYES_00=-2.599] X-Spam-Score: -2.589 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: Wed, 21 Jun 2006 11:34:33 -0000 >>>>> "GL" =3D=3D Gawain Lynch writes: [...] >> But aren't "Volumes" separate Albums, too? Like for "Caf=E9 del Mar, >> Volumen 1" there's a different artwork than "Caf=E9 del Mar, Volumen >> 2". GL> Yes, but if I have ripped it and named it "Volume 2" but the GL> database has it listed as "Vol. 2" I won't get the album art. The most robust and exhaustive way to deal with might be: 1. If an exact match is found, use that. 2. Flag any album that ends with a variant of "volume", i.e. with a regular expression resembling: [Vv]ol\(.|ume\)? ?[0-9]+$ That would catch: Volume 2 Volume2 Vol 2 Vol. 2 Vol.2 Note: "volume X" must be the last part of the string to avoid false positive matches. 3. Substitute the original pattern for each of the possible variants and search the db for that (new) pattern. e.g. as in the example above, you originally had "Volume 2", you would try substituting "Vol 2", then "Vol. 2", etc. Likewise if you had originally had "Vol. 2" and it didn't match exactly, you would try "Volume 2". 4. Take the first hit that works. ("Vol. 2" in the above example). It's not pretty, but that's tagging for you. Ideally every CD would have a unique MusicBrainz ID and associated cover art. Alex From adam_zimmerman@sfu.ca Wed Jun 21 14:03: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 644563B0535 for ; Wed, 21 Jun 2006 14:03: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 27004-07 for ; Wed, 21 Jun 2006 14:03:43 -0400 (EDT) Received: from pobox.sfu.ca (pobox.sfu.ca [142.58.101.28]) by menubar.gnome.org (Postfix) with ESMTP id A40FF3B00EE for ; Wed, 21 Jun 2006 14:03:43 -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 k5LI3dEq019040 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NOT) for ; Wed, 21 Jun 2006 11:03:40 -0700 (PDT) From: Adam Zimmerman To: rhythmbox-devel@gnome.org In-Reply-To: <1150819435.17540.17.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> <1150766634.5180.22.camel@localhost.localdomain> <1150819435.17540.17.camel@midnight> Content-Type: multipart/mixed; boundary="=-DhT/CPZa8gskKxzJv76l" Date: Wed, 21 Jun 2006 11:03:34 -0700 Message-Id: <1150913014.28266.17.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.457 tagged_above=-999 required=2 tests=[AWL=0.065, BAYES_00=-2.599, TW_GT=0.077] X-Spam-Score: -2.457 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: Wed, 21 Jun 2006 18:03:48 -0000 --=-DhT/CPZa8gskKxzJv76l Content-Type: text/plain Content-Transfer-Encoding: 7bit Alright, status update. On Tue, 2006-20-06 at 09:03 -0700, Adam Zimmerman wrote: > 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. Done. John says he'll post a zip version sometime soon. > > > 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. OK, I've written the code that checks this and downloads the file if it has changed. It just does a basic string comparison on the last-modified header gotten from a HTTP HEAD request, which seems to work. I've added a call to gobject.timeout_add to set a timer, which also seems to work. The albums are stored in zip files, so track-transfer isn't really an option. Instead, I'm using gnomevfs.xfer_uri (maybe switched to async if it doesn't crash) to download the zip file and extract it (untested, not even hooked up to ui, almost certainly doesn't work yet, as it doesn't create the directories). > > 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. well, it seems the source does, which is good enough, since I can get the entry view, and then the selected entries from that. -- 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/ -- "Engineering without management is art." -- Jeff Johnson --=-DhT/CPZa8gskKxzJv76l 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, gnome from gettext import gettext as _ import xml.sax, xml.sax.handler import urllib, httplib import datetime import zipfile magnatune_partner_id = "zimmerman" user_dir = gnome.user_dir_get() magnatune_dir = user_dir + "rhythmbox/magnatune/" magnatune_dir_uri = gnomevfs.URI(magnatune_dir) magnatune_song_info_uri = gnomevfs.URI("http://magnatune.com/info/song_info.xml") local_song_info_uri = gnomevfs.URI(magnatune_dir + "song_info.xml") lc_uri = gnomevfs.URI(magnatune_dir + "info_last_changed") ################################################ # 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 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'])) # entry.data['sku'] = self._track['albumsku'] 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']) # TODO: 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): _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) ev = self.source.get_entry_view() ev.connect_object("show_popup", self.show_popup_cb, self.source, 0) 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)) check_info() gobject.timeout_add(60 * 60 * 1000, self.check_info_updates) # every hour. ###gnomevfs.async.open(user_dir + "rhythmbox/magnatune/song_info.xml", self.open_callback) self.parser.parse(user_dir + "rhythmbox/magnatune/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 show_popup_cb(self, source, some_int, some_bool): # FIXME: find out what the int and bool are/do entry_view = source.get_entry_view() client = gconf.client_get_default() cc = {} cc['number'] = client.get_string("/apps/rhythmbox/plugins/magnatune/cc") cc['year'] = client.get_string("/apps/rhythmbox/plugins/magnatune/yy") cc['month'] = client.get_string("/apps/rhythmbox/plugins/magnatune/mm") name = client.get_string("/apps/rhythmbox/plugins/magnatune/name") email = client.get_string("/apps/rhythmbox/plugins/magnatune/email") #sku = entry_view.get_selected_entries()[0].data['sku'] # just use the sku for the first track selected. #attach action: buy_track(sku, amount, cc, name, email, format) #source.show_popup("/MagnatuneSourcePopup") def check_info_updates(self): if check_info(): # FIXME: is there a better way of doing this? self.db.entry_delete_by_type(self.entry_type) self.db.commit() self.parser.parse(user_dir + "rhythmbox/magnatune/song_info.xml") return True # keep running the method every hour class MagnatuneSource(rb.BrowserSource): def __init__(self): rb.Source.__init__(self) gobject.type_register(MagnatuneSource) ################################################ # Methods for downloading the song info # ################################################ def download_info(): gnomevfs.xfer_uri(magnatune_song_info_uri, local_song_info_uri, xfer_options=gnomevfs.XFER_DEFAULT, error_mode=gnomevfs.XFER_ERROR_MODE_ABORT, overwrite_mode=gnomevfs.XFER_OVERWRITE_MODE_REPLACE, progress_callback=progress_info_cb, data=0x1234) def progress_info_cb(info, data): assert data == 0x1234 try: print "%s: %f %%\r" % (info.target_name, info.bytes_copied/float(info.bytes_total)*100), except Exception, ex: # Sometimes the method throws an exception, for no apparent reason pass return True def check_info(): # returns whether or not info has changed if not gnomevfs.exists(magnatune_dir_uri): gnomevfs.make_directory(magnatune_dir_uri, 0755) if not gnomevfs.exists(lc_uri): t = gnomevfs.create(lc_uri, open_mode=gnomevfs.OPEN_WRITE) t.write("never") # there needs to be something in the file, otherwise it throws an exception when read from t.close() conn = httplib.HTTPConnection("magnatune.com") conn.request("HEAD", "/info/song_info.xml") resp = conn.getresponse() headers = resp.getheaders() resp.close() conn.close() for header in headers: if header[0] == "last-modified": modified_header = header[1] lc_file = gnomevfs.open(lc_uri) last_changed = lc_file.read(100) # file should be less than 100 chars lc_file.close() if not last_changed.strip() == modified_header.strip(): download_info() lc_file = gnomevfs.open(lc_uri, open_mode=gnomevfs.OPEN_WRITE) lc_file.write(modified_header) lc_file.close() return True return False ################################################ # Purchasing code. # ################################################ class BuyAlbumHandler(xml.sax.handler.ContentHandler): # Class to download the track, etc. format_map = { 'ogg' : 'URL_OGGZIP', 'flac' : 'URL_FLACZIP', 'wav' : 'URL_WAVZIP', 'mp3-cbr' : 'URL_128KMP3ZIP', 'mp3-vbr' : 'URL_VBRZIP' } def __init__(self, format): xml.sax.handler.ContentHandler.__init__(self) self._format_tag = format_map[format] # format of audio to download def startElement(self, name, attrs): self._text = "" def endElement(self, name): if name == "ERROR": # Something went wrong. Display error message to user. raise MagnatuneError(self._text) elif name == "DL_USERNAME": self.username = self._text elif name == "DL_PASSWORD": self.password = self._text elif name == self._format_tag: self.url = self._text def characters(self, content): self._text = self._text + content def buy_track(sku, amount, cc, name, email, format): # 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': sku, 'amount': amount, 'cc': cc['number'], 'yy': cc['year'], 'mm': cc['month'], 'name': name, 'email':email }) buy_album_handler = BuyAlbumHandler(format) # so we can get the url and auth info xml.sax.parse(url, buy_album_handler) audio_dl_uri = gnomevfs.URI(buy_album_handler.url.replace(" ", "%20")) # some parts of the returned url are escaped, some aren't. TODO: Properly quote just the filename part of the path audio_dl_uri.user_name = buy_album_handler.username audio_dl_uri.password = buy_album_handler.password # Download the album and unzip it into the library library_location = client.get_list("/apps/rhythmbox/library_locations")[0] # Just use the first library location to_file = gnomevfs.URI(library_location + "/" + audio_dl_uri.short_name) out_file = to_file.__str__() gnomevfs.xfer_uri(audio_dl_uri, to_file, xfer_options=gnomevfs.XFER_DEFAULT, error_mode=gnomevfs.XFER_ERROR_MODE_ABORT, overwrite_mode=gnomevfs.XFER_OVERWRITE_MODE_ABORT, progress_callback=progress_info_cb, data=0x1234) # this will take a LONG time. album = zipfile.ZipFile(out_file) for track in album.namelist(): out = gnomevfs.open(gnomevfs.URI(library_location + "/" + track), open_mode=gnomevfs.OPEN_MODE_WRITE) # FIXME: directories will need to be created first out.write(album.read(track)) out.close() album.close() gnomevfs.unlink(to_file) class MagnatuneError(Exception): pass ################################################ # Magnatune Logo. # ################################################ # (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 "................................", "................................", "................................", "................................", "................................", "................................", "............++@@@@++............", "..........+@@@@@@@@@@+..........", ".........+@@@+....+@@@+.........", "........+@@+...++...+@@+........", ".......+@@+....@@....+@@+.......", ".......@@+.....@@.....+@@.......", "......+@@......@@......@@+......", "......+@+......@@......+@+......", "......@@...@@..@@..@@...@@......", "......@@...@@+.@@.+@@...@@......", "......@@...@@+.@@.+@@...@@......", "......@@...@@+.@@.+@@...@@......", "......+@+..@@+.@@.+@@..+@+......", "......+@@..@@+.@@.+@@..@@+......", ".......@@+.@@+.@@.+@@.+@@.......", ".......+@@+.+..+...+.+@@+.......", "........+@@+........+@@+........", ".........+@@@+....+@@@+.........", "..........+@@@@@@@@@@+..........", "............++@@@@++............", "................................", "................................", "................................", "................................", "................................", "................................" ] ### ### Async callbacks ### # 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) ### ### preferences, ugly and gross. Someone else who knows what they're doing should probably fix this. Should probably be glade too. ### # 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) --=-DhT/CPZa8gskKxzJv76l-- From brent@heyes.co.uk Wed Jun 21 15:19: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 9F12F3B041B for ; Wed, 21 Jun 2006 15:19: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 32127-03 for ; Wed, 21 Jun 2006 15:19:34 -0400 (EDT) Received: from ns.thishost.net (ns.thishost.net [217.199.169.69]) by menubar.gnome.org (Postfix) with ESMTP id 1DC313B035A for ; Wed, 21 Jun 2006 15:19:33 -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 k5LJKLs29773 for ; Wed, 21 Jun 2006 20:20:21 +0100 Message-ID: <44999BBF.1070208@heyes.co.uk> Date: Wed, 21 Jun 2006 20:19:27 +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.597 tagged_above=-999 required=2 tests=[AWL=-0.857, BAYES_20=-0.74] X-Spam-Score: -1.597 X-Spam-Level: Subject: [Rhythmbox-devel] Change Rhythmbox gstreamer 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, 21 Jun 2006 19:19:35 -0000 Hey guys, Is there any way to customise the gstreamer pipeline for Rhythmbox only without affecting the global setting? Thanks, - Brent From brent@heyes.co.uk Thu Jun 22 03:52: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 A1D093B02DB for ; Thu, 22 Jun 2006 03:52: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 06020-07 for ; Thu, 22 Jun 2006 03:52:36 -0400 (EDT) Received: from ns.thishost.net (ns.thishost.net [217.199.169.69]) by menubar.gnome.org (Postfix) with ESMTP id E9EDF3B0563 for ; Thu, 22 Jun 2006 03:52:35 -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 k5M7rEs30277 for ; Thu, 22 Jun 2006 08:53:24 +0100 Message-ID: <449A4C33.6090501@heyes.co.uk> Date: Thu, 22 Jun 2006 08:52:19 +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=-2.512 tagged_above=-999 required=2 tests=[AWL=0.087, BAYES_00=-2.599] X-Spam-Score: -2.512 X-Spam-Level: Subject: [Rhythmbox-devel] Cannot import M4A with chapters 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, 22 Jun 2006 07:52:38 -0000 Hey guys, Is there anyway to get Rhythmbox to import and play m4a files with chapters? Thanks, -Brent From doclivingston@gmail.com Thu Jun 22 04:24: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 A656E3B02D2 for ; Thu, 22 Jun 2006 04:24: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 08348-04 for ; Thu, 22 Jun 2006 04:24:21 -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 AE3673B01E2 for ; Thu, 22 Jun 2006 04:24:21 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id s49so245017pyc for ; Thu, 22 Jun 2006 01:24:21 -0700 (PDT) Received: by 10.35.9.15 with SMTP id m15mr818663pyi; Thu, 22 Jun 2006 01:24:21 -0700 (PDT) Received: from alyrion.local ( [144.134.101.144]) by mx.gmail.com with ESMTP id s72sm672424pyc.2006.06.22.01.24.19; Thu, 22 Jun 2006 01:24:20 -0700 (PDT) From: "James \"Doc\" Livingston" To: rhythmbox-devel@gnome.org In-Reply-To: <449A4C33.6090501@heyes.co.uk> References: <449A4C33.6090501@heyes.co.uk> Content-Type: text/plain Date: Thu, 22 Jun 2006 18:24:15 +1000 Message-Id: <1150964655.5178.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=-1.74 tagged_above=-999 required=2 tests=[AWL=-0.698, BAYES_00=-2.599, RCVD_IN_BL_SPAMCOP_NET=1.558, SPF_PASS=-0.001] X-Spam-Score: -1.74 X-Spam-Level: Subject: Re: [Rhythmbox-devel] Cannot import M4A with chapters 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: Thu, 22 Jun 2006 08:24:22 -0000 On Thu, 2006-06-22 at 08:52 +0100, Brent Heyes wrote: > Is there anyway to get Rhythmbox to import and play m4a files with chapters? Rhythmbox should be able to import them if GStreamer can read them, although without the actual chapter support. Can you try running the following from a terminal and seeing if it works? (using the actual path to your file) gst-launch playbin uri=file:///path/to/my/file/m4a Cheers, James "Doc" Livingston -- "can't go mucking with a `void *'" -- MPW C error message From doclivingston@gmail.com Thu Jun 22 05:38: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 62C723B00ED for ; Thu, 22 Jun 2006 05:38: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 13368-01 for ; Thu, 22 Jun 2006 05:38:09 -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 B0C4D3B021B for ; Thu, 22 Jun 2006 05:38:08 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id 39so267310pyu for ; Thu, 22 Jun 2006 02:38:08 -0700 (PDT) Received: by 10.35.20.14 with SMTP id x14mr884844pyi; Thu, 22 Jun 2006 02:38:07 -0700 (PDT) Received: from alyrion.local ( [144.139.19.209]) by mx.gmail.com with ESMTP id i72sm776509pye.2006.06.22.02.38.04; Thu, 22 Jun 2006 02:38:07 -0700 (PDT) From: "James \"Doc\" Livingston" To: Rhythmbox-devel list In-Reply-To: <449A5F41.7000803@heyes.co.uk> References: <449A4C33.6090501@heyes.co.uk> <1150964655.5178.6.camel@localhost.localdomain> <449A5F41.7000803@heyes.co.uk> Content-Type: text/plain Date: Thu, 22 Jun 2006 19:37:58 +1000 Message-Id: <1150969078.5186.5.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.315 tagged_above=-999 required=2 tests=[AWL=0.285, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.315 X-Spam-Level: Subject: Re: [Rhythmbox-devel] Cannot import M4A with chapters 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: Thu, 22 Jun 2006 09:38:10 -0000 On Thu, 2006-06-22 at 10:13 +0100, Brent Heyes wrote: > (gst-launch-0.10:21703): GStreamer-CRITICAL **: gst_uri_get_protocol: > assertion `gst_uri_is_valid (uri)' failed > ERROR: Pipeline doesn't want to pause. > ERROR: from element /playbin0: Invalid URI "/home/brent/Test.m4a". > Additional debug info: > gstplaybasebin.c(1480): setup_source (): /playbin0 > Setting pipeline to NULL ... > FREEING pipeline ... Sorry, I should have mentioned that the "file://" at the start was important, "/home/brent/..." isn't a URI (it's a path) > BTW... /home/brent/Test.m4a is a valid M4A file with chapters. > > I can play the file in totem-gstreamer. If it works in totem-gstreamer, then it's not a gstreamer problem. Could you run "GST_DEBUG=*:4 GST_DEBUG_NO_COLOR=1 rhythmbox -d >rb.log 2>&1; bzip2 rb.log" and then file a bug and attach the file "rb.log.bz2" that it created? Cheers, James "Doc" Livingston -- Networks are like sewers ... My job is to make sure your data goes away when you flush, and to stop the rats climbing into your toilet through the pipes. (Tanuki, describing network administration.) From gawain.lynch@bigpond.com Thu Jun 22 08:51:01 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 A7F8D3B0606 for ; Thu, 22 Jun 2006 08:51:01 -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 27073-09 for ; Thu, 22 Jun 2006 08:50:58 -0400 (EDT) Received: from mail-ihug.icp-qv1-irony4.iinet.net.au (ihug-mail.icp-qv1-irony4.iinet.net.au [203.59.1.198]) by menubar.gnome.org (Postfix) with ESMTP id 581833B025B for ; Thu, 22 Jun 2006 08:50:57 -0400 (EDT) Received: from 203-214-122-19.dyn.iinet.net.au (HELO smtp.felicity-group.com) ([203.214.122.19]) by mail-ihug.icp-qv1-irony4.iinet.net.au with ESMTP; 22 Jun 2006 20:50:54 +0800 X-BrightmailFiltered: true X-Brightmail-Tracker: AAAAAA== X-IronPort-AV: i="4.06,166,1149436800"; d="scan'208"; a="786608449:sNHT33720348" Received: from [203.33.109.249] (unknown [203.33.109.249]) by smtp.felicity-group.com (Postfix) with ESMTP id C779024059; Thu, 22 Jun 2006 22:54:37 +1000 (EST) From: Gawain Lynch To: Alex Lancaster In-Reply-To: References: <1150735119.6206.2.camel@ubuntu> <1150764803.5180.14.camel@localhost.localdomain> <1150853695.21424.3.camel@legolas.felicity.net.au> <4498E8F9.1070308@gmx.de> <1150884151.6040.2.camel@legolas.felicity.net.au> Content-Type: text/plain; charset=utf-8 Date: Thu, 22 Jun 2006 22:50:22 +1000 Message-Id: <1150980623.2998.0.camel@legolas.felicity.net.au> Mime-Version: 1.0 X-Mailer: Evolution 2.6.2 (2.6.2-1.fc5.5) Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=0.197 tagged_above=-999 required=2 tests=[AWL=-0.454, BAYES_00=-2.599, FORGED_RCVD_HELO=0.135, RCVD_IN_SORBS_DUL=2.046, SPF_NEUTRAL=1.069] X-Spam-Score: 0.197 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: Thu, 22 Jun 2006 12:51:01 -0000 On Wed, 2006-06-21 at 04:34 -0700, Alex Lancaster wrote: > >>>>> "GL" == Gawain Lynch writes: > [...] > > >> But aren't "Volumes" separate Albums, too? Like for "Caf del Mar, > >> Volumen 1" there's a different artwork than "Caf del Mar, Volumen > >> 2". > > GL> Yes, but if I have ripped it and named it "Volume 2" but the > GL> database has it listed as "Vol. 2" I won't get the album art. > > The most robust and exhaustive way to deal with might be: > > 1. If an exact match is found, use that. > > 2. Flag any album that ends with a variant of "volume", i.e. with a > regular expression resembling: > > [Vv]ol\(.|ume\)? ?[0-9]+$ > > That would catch: > > Volume 2 > Volume2 > Vol 2 > Vol. 2 > Vol.2 > > Note: "volume X" must be the last part of the string to avoid false > positive matches. > > 3. Substitute the original pattern for each of the possible variants > and search the db for that (new) pattern. > > e.g. as in the example above, you originally had "Volume 2", you would > try substituting "Vol 2", then "Vol. 2", etc. Likewise if you had > originally had "Vol. 2" and it didn't match exactly, you would try > "Volume 2". > > 4. Take the first hit that works. ("Vol. 2" in the above example). > > It's not pretty, but that's tagging for you. Ideally every CD would > have a unique MusicBrainz ID and associated cover art. > > Alex That would work for me :-) From adam_zimmerman@sfu.ca Fri Jun 23 19:16: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 83F553B0524 for ; Fri, 23 Jun 2006 19:16: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 10791-04 for ; Fri, 23 Jun 2006 19:16:23 -0400 (EDT) Received: from pobox.sfu.ca (pobox.sfu.ca [142.58.101.28]) by menubar.gnome.org (Postfix) with ESMTP id 053E33B0971 for ; Fri, 23 Jun 2006 19:16:22 -0400 (EDT) Received: from [192.168.1.106] (d154-20-165-140.bchsia.telus.net [154.20.165.140]) (authenticated bits=0) by pobox.sfu.ca (8.13.6/8.13.5/SFU-6.0G) with ESMTP id k5NNGJGN017682 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NOT) for ; Fri, 23 Jun 2006 16:16:20 -0700 (PDT) From: Adam Zimmerman To: rhythmbox-devel@gnome.org In-Reply-To: <1150913014.28266.17.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> <1150766634.5180.22.camel@localhost.localdomain> <1150819435.17540.17.camel@midnight> <1150913014.28266.17.camel@midnight> Content-Type: multipart/mixed; boundary="=-nh4eusBO2ao1XrEAH8+9" Date: Fri, 23 Jun 2006 16:16:18 -0700 Message-Id: <1151104578.24807.39.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.461 tagged_above=-999 required=2 tests=[AWL=0.061, BAYES_00=-2.599, TW_GT=0.077] X-Spam-Score: -2.461 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, 23 Jun 2006 23:16:26 -0000 --=-nh4eusBO2ao1XrEAH8+9 Content-Type: text/plain Content-Transfer-Encoding: 7bit Sweet! Why didn't I come across this[1] blog post sooner? The reading code is now fully non-blocking thanks to gobject.add_idle, except for check_info() which doesn't seem to take very long (using gnomevfs.get_file_info instead of httplib helped). I'm not sure whether I want to keep it so that the source is added to as song_info.xml is being downloaded. It seems like it takes a long time to add all the tracks (though it may just be my perception as to whether it's slower than adding after downloading), but on the other hand, the source doesn't sit empty for 2 minutes. The amounts read in each of the idle methods (64KB while downloading, 128KB when loading from disk) can probably be tweaked as well, to give the best balance between a fully responsive UI and being efficient when doing I/O. I'm not quite certain how to associate an action with a popup menu. I can see that I need to add some glade bits to rhythmbox-ui.xml and then call source.show_popup("mygladestuff") in the show_popup callback, right? So how do I associate a method call with that popup menu item? And how do I pass arguments to it? Is it like gobject.add_idle, where I just add arguments after the method? Thanks so much. -Adam PS: does anyone know what the int and bool passed to the show_popup callback are? [1] http://gnomerocksmyworld.blogspot.com/2006/05/getting-off-my-lazy-arse.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/ -- In Pocatello, Idaho, a law passed in 1912 provided that "The carrying of concealed weapons is forbidden, unless same are exhibited to public view." --=-nh4eusBO2ao1XrEAH8+9 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, gnome from gettext import gettext as _ import xml.sax, xml.sax.handler import urllib import datetime import zipfile magnatune_partner_id = "zimmerman" user_dir = gnome.user_dir_get() magnatune_dir = user_dir + "rhythmbox/magnatune/" magnatune_dir_uri = gnomevfs.URI(magnatune_dir) magnatune_song_info_uri = gnomevfs.URI("http://magnatune.com/info/song_info.xml") local_song_info_uri = gnomevfs.URI(magnatune_dir + "song_info.xml") lc_uri = gnomevfs.URI(magnatune_dir + "info_last_changed") ################################################ # 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 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'])) # entry.data['sku'] = self._track['albumsku'] 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']) # TODO: 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): info_file = None remote_info_file = 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) ev = self.source.get_entry_view() ev.connect_object("show_popup", self.show_popup_cb, self.source, 0) 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)) if check_info(): gobject.idle_add(self.idle_download_info) else: gobject.idle_add(self.idle_load_info) gobject.timeout_add(6 * 60 * 60 * 1000, self.check_info_updates) # every 6 hours. 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 show_popup_cb(self, source, some_int, some_bool): # FIXME: find out what the int and bool are entry_view = source.get_entry_view() client = gconf.client_get_default() cc = {} cc['number'] = client.get_string("/apps/rhythmbox/plugins/magnatune/cc") cc['year'] = client.get_string("/apps/rhythmbox/plugins/magnatune/yy") cc['month'] = client.get_string("/apps/rhythmbox/plugins/magnatune/mm") name = client.get_string("/apps/rhythmbox/plugins/magnatune/name") email = client.get_string("/apps/rhythmbox/plugins/magnatune/email") #sku = entry_view.get_selected_entries()[0].data['sku'] # just use the sku for the first track selected. #attach action: buy_track(sku, amount, cc, name, email, format) #source.show_popup("/MagnatuneSourcePopup") def check_info_updates(self): # TODO: if possible, make it so that the updated file is downloaded first, then the entries are switched if check_info(): self.db.entry_delete_by_type(self.entry_type) self.db.commit() gobject.idle_add(self.idle_download_info) return True def idle_load_info(self): if self.info_file == None: self.info_file = gnomevfs.open(local_song_info_uri) try: data = self.info_file.read(128 * 1024) self.parser.feed(data) return True except gnomevfs.EOFError: self.info_file.close() self.info_file = None return False def idle_download_info(self): if self.info_file == None: self.remote_info_file = gnomevfs.open(magnatune_song_info_uri) self.info_file = gnomevfs.create(local_song_info_uri, open_mode=gnomevfs.OPEN_WRITE) try: data = self.remote_info_file.read(64 * 1024) self.parser.feed(data) self.info_file.write(data) return True except gnomevfs.EOFError: self.remote_info_file.close() self.info_file.close() self.remote_info_file = None self.info_file = None return False class MagnatuneSource(rb.BrowserSource): def __init__(self): rb.Source.__init__(self) gobject.type_register(MagnatuneSource) ################################################ # Methods for downloading the song info # ################################################ def check_info(): # returns whether or not info has changed if not gnomevfs.exists(magnatune_dir_uri): gnomevfs.make_directory(magnatune_dir_uri, 0755) if not gnomevfs.exists(lc_uri): t = gnomevfs.create(lc_uri, open_mode=gnomevfs.OPEN_WRITE) t.write("never") # there needs to be something in the file, otherwise it throws an exception when read from t.close() modified = str(gnomevfs.get_file_info(magnatune_song_info_uri).mtime) lc_file = gnomevfs.open(lc_uri) last_changed = lc_file.read(100) # file should be less than 100 chars lc_file.close() if not last_changed.strip() == modified.strip(): lc_file = gnomevfs.open(lc_uri, open_mode=gnomevfs.OPEN_WRITE) lc_file.write(modified) lc_file.close() return True return False ################################################ # Purchasing code. # ################################################ class BuyAlbumHandler(xml.sax.handler.ContentHandler): # Class to download the track, etc. format_map = { 'ogg' : 'URL_OGGZIP', 'flac' : 'URL_FLACZIP', 'wav' : 'URL_WAVZIP', 'mp3-cbr' : 'URL_128KMP3ZIP', 'mp3-vbr' : 'URL_VBRZIP' } def __init__(self, format): xml.sax.handler.ContentHandler.__init__(self) self._format_tag = format_map[format] # format of audio to download def startElement(self, name, attrs): self._text = "" def endElement(self, name): if name == "ERROR": # Something went wrong. Display error message to user. raise MagnatuneError(self._text) elif name == "DL_USERNAME": self.username = self._text elif name == "DL_PASSWORD": self.password = self._text elif name == self._format_tag: self.url = self._text def characters(self, content): self._text = self._text + content def buy_track(sku, amount, cc, name, email, format): # 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': sku, 'amount': amount, 'cc': cc['number'], 'yy': cc['year'], 'mm': cc['month'], 'name': name, 'email':email }) buy_album_handler = BuyAlbumHandler(format) # so we can get the url and auth info xml.sax.parse(url, buy_album_handler) audio_dl_uri = gnomevfs.URI(buy_album_handler.url.replace(" ", "%20")) # some parts of the returned url are escaped, some aren't. TODO: Properly quote just the filename part of the path audio_dl_uri.user_name = buy_album_handler.username audio_dl_uri.password = buy_album_handler.password # Download the album and unzip it into the library library_location = client.get_list("/apps/rhythmbox/library_locations")[0] # Just use the first library location to_file = gnomevfs.URI(library_location + "/" + audio_dl_uri.short_name) out_file = to_file.__str__() gnomevfs.xfer_uri(audio_dl_uri, to_file, xfer_options=gnomevfs.XFER_DEFAULT, error_mode=gnomevfs.XFER_ERROR_MODE_ABORT, overwrite_mode=gnomevfs.XFER_OVERWRITE_MODE_ABORT, progress_callback=progress_info_cb, data=0x1234) # this will take a LONG time. album = zipfile.ZipFile(out_file) for track in album.namelist(): out = gnomevfs.open(gnomevfs.URI(library_location + "/" + track), open_mode=gnomevfs.OPEN_MODE_WRITE) # FIXME: directories will need to be created first out.write(album.read(track)) out.close() album.close() gnomevfs.unlink(to_file) class MagnatuneError(Exception): pass def progress_info_cb(info, data): assert data == 0x1234 try: print "%s: %f %%\r" % (info.target_name, info.bytes_copied/float(info.bytes_total)*100), except Exception, ex: # Sometimes the method throws an exception, for no apparent reason pass return True ################################################ # Magnatune Logo. # ################################################ # (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. Should probably be glade too. ### # 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) --=-nh4eusBO2ao1XrEAH8+9-- From alexl@users.sourceforge.net Fri Jun 23 19:50: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 F24EB3B0181 for ; Fri, 23 Jun 2006 19:50:01 -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 12182-10 for ; Fri, 23 Jun 2006 19:49:59 -0400 (EDT) Received: from allele2.biol.berkeley.edu (allele2.Biol.Berkeley.EDU [128.32.118.82]) by menubar.gnome.org (Postfix) with ESMTP id C70A03B011B for ; Fri, 23 Jun 2006 19:49:58 -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 k5NNnwif018504 for ; Fri, 23 Jun 2006 16:49:58 -0700 Received: (from alex@localhost) by allele2.biol.berkeley.edu (8.13.6/8.13.4/Submit) id k5NNnvvJ018503; Fri, 23 Jun 2006 16:49:57 -0700 X-Authentication-Warning: allele2.biol.berkeley.edu: alex set sender to alexl@users.sourceforge.net using -f 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> <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> <1150819435.17540.17.camel@midnight> <1150913014.28266.17.camel@midnight> <1151104578.24807.39.camel@midnight> From: Alex Lancaster Organization: Sourceforge Date: Fri, 23 Jun 2006 16:49:57 -0700 In-Reply-To: <1151104578.24807.39.camel@midnight> (Adam Zimmerman's message of "Fri, 23 Jun 2006 16:16:18 -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.589 tagged_above=-999 required=2 tests=[AWL=0.010, BAYES_00=-2.599] X-Spam-Score: -2.589 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, 23 Jun 2006 23:50:02 -0000 >>>>> "AZ" == Adam Zimmerman writes: AZ> Sweet! Why didn't I come across this[1] blog post sooner? The AZ> reading code is now fully non-blocking thanks to gobject.add_idle, AZ> except for check_info() which doesn't seem to take very long AZ> (using gnomevfs.get_file_info instead of httplib helped). It's time to transfer detailed technical discussion on this plugin to Bugzilla, IMHO. Will save bandwidth on sending multiple versions of the file to the mailing list, can be easily tracked and provide a centralised point of access for all the info. I've opened a bug and transferred the latest Python file there: http://bugzilla.gnome.org/345783 Thanks, Alex From doclivingston@gmail.com Sat Jun 24 03:19:41 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 C1E943B01AD for ; Sat, 24 Jun 2006 03:19:41 -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 29560-10 for ; Sat, 24 Jun 2006 03:19:40 -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 7053F3B0160 for ; Sat, 24 Jun 2006 03:19:40 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id f28so878776pyf for ; Sat, 24 Jun 2006 00:19:39 -0700 (PDT) Received: by 10.35.20.14 with SMTP id x14mr3236792pyi; Sat, 24 Jun 2006 00:19:39 -0700 (PDT) Received: from alyrion.local ( [144.134.101.25]) by mx.gmail.com with ESMTP id h41sm934606pyh.2006.06.24.00.19.37; Sat, 24 Jun 2006 00:19:39 -0700 (PDT) From: "James \"Doc\" Livingston" To: rhythmbox-devel@gnome.org In-Reply-To: <1151104578.24807.39.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> <1150766634.5180.22.camel@localhost.localdomain> <1150819435.17540.17.camel@midnight> <1150913014.28266.17.camel@midnight> <1151104578.24807.39.camel@midnight> Content-Type: text/plain Date: Sat, 24 Jun 2006 17:19:33 +1000 Message-Id: <1151133573.5031.46.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.404 tagged_above=-999 required=2 tests=[AWL=-0.004, BAYES_00=-2.599, DNS_FROM_RFC_ABUSE=0.2, SPF_PASS=-0.001] X-Spam-Score: -2.404 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: Sat, 24 Jun 2006 07:19:42 -0000 On Fri, 2006-06-23 at 16:16 -0700, Adam Zimmerman wrote: > I'm not sure whether I want to keep it so that the source is added to as > song_info.xml is being downloaded. It seems like it takes a long time to > add all the tracks (though it may just be my perception as to whether > it's slower than adding after downloading), but on the other hand, the > source doesn't sit empty for 2 minutes. One option would be to hide entry entry view while this is happening, and have some "downloading music store info, please wait screen instead". Something like that may be useful anyway, if we wanted/needed to show some info about what MagnaTune is, tell people to be careful with their CC details, etc. > I'm not quite certain how to associate an action with a popup menu. I > can see that I need to add some glade bits to rhythmbox-ui.xml and then > call source.show_popup("mygladestuff") in the show_popup callback, > right? So how do I associate a method call with that popup menu item? > And how do I pass arguments to it? Is it like gobject.add_idle, where I > just add arguments after the method? Take a look at plugins/pythonconsole/pythonconsole.py, it adds a menu item to show the console. The only real difference is the UI data, e.g.: Then add an action "MagnaTuneDownload". > PS: does anyone know what the int and bool passed to the show_popup > callback are? With the current code: ev.connect_object("show_popup", self.show_popup_cb, self.source, 0) The int is the number 0 that you're passing, and the boolean is: true = right mouse button clicked on an entry, or menu button pressed false = rmb clicked on "empty space" in the entry view Usually you'd treat the case of it being false by showing the same menu as if you'd right-clicked on the source in the source list. I've got a patch for python entry-data working, and it's on bug 345795[0]. With that applied, you should be able to do "entry.data['sku'] = whatever" for any entry whose entry-type was registered from Python. The only issue I've noticed is overhead - it created a dictionary for every entry that you have accessed the "data" attribute on. For the number of tracks currently in MagnaTune, that would mean just under 1Mb of overhead. Another option would be to create you own diction for SKUs, and then do "sku_dict[entry] = whatever". That would only need one dictionary, instead of 6000. [0] http://bugzilla.gnome.org/show_bug.cgi?id=345795 Cheers, James "Doc" Livingston -- If USENET is anarchy, IRC is a paranoid schizophrenic after 6 days on speed. -- Chris "Saundo" Saunderson in asr. From doclivingston@gmail.com Sat Jun 24 08:26: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 0CD3A3B00A8 for ; Sat, 24 Jun 2006 08:26: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 13145-02 for ; Sat, 24 Jun 2006 08:26:37 -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 DC5F23B000F for ; Sat, 24 Jun 2006 08:26:36 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id f28so920430pyf for ; Sat, 24 Jun 2006 05:26:36 -0700 (PDT) Received: by 10.35.63.2 with SMTP id q2mr3473556pyk; Sat, 24 Jun 2006 05:26:36 -0700 (PDT) Received: from alyrion.local ( [144.134.102.10]) by mx.gmail.com with ESMTP id 55sm1466207pyf.2006.06.24.05.26.32; Sat, 24 Jun 2006 05:26:36 -0700 (PDT) From: "James \"Doc\" Livingston" To: rhythmbox-devel@gnome.org In-Reply-To: <1151104578.24807.39.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> <1150766634.5180.22.camel@localhost.localdomain> <1150819435.17540.17.camel@midnight> <1150913014.28266.17.camel@midnight> <1151104578.24807.39.camel@midnight> Content-Type: text/plain Date: Sat, 24 Jun 2006 22:26:29 +1000 Message-Id: <1151151989.5031.60.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.406 tagged_above=-999 required=2 tests=[AWL=-0.006, BAYES_00=-2.599, DNS_FROM_RFC_ABUSE=0.2, SPF_PASS=-0.001] X-Spam-Score: -2.406 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: Sat, 24 Jun 2006 12:26:38 -0000 On Fri, 2006-06-23 at 16:16 -0700, Adam Zimmerman wrote: > I'm not sure whether I want to keep it so that the source is added to as > song_info.xml is being downloaded. It seems like it takes a long time to > add all the tracks (though it may just be my perception as to whether > it's slower than adding after downloading), but on the other hand, the > source doesn't sit empty for 2 minutes. One idea would be to have the entry view hidden until it has been downloaded at least once, and have some kind of "MagnaTune intro" displayed instead. Displaying an empty track list probably isn't useful, so maybe we could have something displayed instead which said what MagnaTune was, a download progress indicator, and a "continue to track list" button (which would only be enabled once the download had finished). > I'm not quite certain how to associate an action with a popup menu. I > can see that I need to add some glade bits to rhythmbox-ui.xml and then > call source.show_popup("mygladestuff") in the show_popup callback, > right? So how do I associate a method call with that popup menu item? > And how do I pass arguments to it? Is it like gobject.add_idle, where I > just add arguments after the method? For Python plugins, it's easier to embed the GtkUIManager XML directly into the .py file, see plugins/pythonconsole/pythonconsole.py for an example of how to do it. You'd probably want something like the following (which I've based on BrowserSourceViewPopup) The "MagnatunePurchase" action would get the list of selected tracks from the entry view, and then do the purchasing stuff. > PS: does anyone know what the int and bool passed to the show_popup > callback are? The int is the 0 that you passed to connect_object(), and the boolean is "over_entry" which indicates whether the context menu is for an entry, or a click in "empty space". Basically if it's false you pop up the same menu you would for the impl_show_popup virtual function, and if it's true you pop up the "track context menu". Cheers, James "Doc" Livingston -- In God we Trust. All others must submit an X.509 certificate. From shrift@gmail.com Mon Jun 26 15:57: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 99CDB3B02DF for ; Mon, 26 Jun 2006 15:57: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 11745-03 for ; Mon, 26 Jun 2006 15:57:10 -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 51F473B0227 for ; Mon, 26 Jun 2006 15:57:10 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id c30so1645621pyc for ; Mon, 26 Jun 2006 12:57:09 -0700 (PDT) Received: by 10.35.103.12 with SMTP id f12mr6348374pym; Mon, 26 Jun 2006 12:57:08 -0700 (PDT) Received: from shrift.evanston.gov ( [66.158.65.137]) by mx.gmail.com with ESMTP id y21sm942258pyd.2006.06.26.12.57.06; Mon, 26 Jun 2006 12:57:07 -0700 (PDT) From: Brendan Martens To: rhythmbox-devel@gnome.org In-Reply-To: References: Content-Type: text/plain Date: Mon, 26 Jun 2006 15:00:18 -0500 Message-Id: <1151352018.5823.19.camel@shrift.local.cityofevanston.org> 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.862 tagged_above=-999 required=2 tests=[AWL=0.538, BAYES_00=-2.599, DNS_FROM_RFC_ABUSE=0.2, SPF_PASS=-0.001] X-Spam-Score: -1.862 X-Spam-Level: Subject: [Rhythmbox-devel] using iPod as a normal DAP 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, 26 Jun 2006 19:57:11 -0000 RB supports normal daps, correct? I would like it to treat my iPod, that I have upgraded with Rockbox, as a normal DAP. Is this possible? From jonathan@kaolin.wh9.net Mon Jun 26 18:42: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 D72203B028E for ; Mon, 26 Jun 2006 18:42: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 20702-05 for ; Mon, 26 Jun 2006 18:42:19 -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 3C6CF3B01DC for ; Mon, 26 Jun 2006 18:42:18 -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 k5QMgFLO049650 for ; Tue, 27 Jun 2006 08:12:16 +0930 (CST) (envelope-from jonathan@kaolin.wh9.net) Received: from jonathan by stapler.kaolin.wh9.net with local (Exim 4.50) id 1FuzmZ-0002OI-Go for rhythmbox-devel@gnome.org; Tue, 27 Jun 2006 08:42:15 +1000 Date: Tue, 27 Jun 2006 08:42:15 +1000 To: rhythmbox-devel@gnome.org Message-ID: <20060626224215.GA9162@kaolin.wh9.net> Mail-Followup-To: rhythmbox-devel@gnome.org References: <1151352018.5823.19.camel@shrift.local.cityofevanston.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1151352018.5823.19.camel@shrift.local.cityofevanston.org> 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] using iPod as a normal DAP 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, 26 Jun 2006 22:42:22 -0000 On Mon, Jun 26, 2006 at 03:00:18PM -0500, Brendan Martens wrote: > RB supports normal daps, correct? I would like it to treat my iPod, that > I have upgraded with Rockbox, as a normal DAP. Is this possible? Yes, just disable the ipod plugin and it should be detected as a generic audio player. From jonathan@kaolin.wh9.net Mon Jun 26 18:55: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 12BCA3B0011 for ; Mon, 26 Jun 2006 18:55: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 21136-08 for ; Mon, 26 Jun 2006 18:55:41 -0400 (EDT) Received: from ash25e.internode.on.net (ash25e.internode.on.net [203.16.214.182]) by menubar.gnome.org (Postfix) with ESMTP id 32D543B0002 for ; Mon, 26 Jun 2006 18:55:41 -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 k5QMtb78028052 for ; Tue, 27 Jun 2006 08:25:39 +0930 (CST) (envelope-from jonathan@kaolin.wh9.net) Received: from jonathan by stapler.kaolin.wh9.net with local (Exim 4.50) id 1FuzzV-0002P1-Oz for rhythmbox-devel@gnome.org; Tue, 27 Jun 2006 08:55:37 +1000 Date: Tue, 27 Jun 2006 08:55:37 +1000 To: rhythmbox-devel@gnome.org Message-ID: <20060626225537.GA9215@kaolin.wh9.net> Mail-Followup-To: rhythmbox-devel@gnome.org References: <1150010929.16530.4.camel@localhost> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1150010929.16530.4.camel@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.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] [ANNOUNCE] gaim-rhythmbox 2.0beta 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, 26 Jun 2006 22:55:43 -0000 On Sun, Jun 11, 2006 at 03:28:48AM -0400, Jon Oberheide wrote: > Gaim-Rhythmbox has been ported to work with Gaim 2.0.0 and Rhythmbox > 0.9. > > http://gaim-rhythmbox.sourceforge.net This will no longer build with Rhythmbox 0.9.5 or newer as we removed the .pc file. Rhythmbox doesn't install any files useful for developing or building clients, so there's no need to check the installed version at build time. From pclouds@gmail.com Tue Jun 27 05:44: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 524893B010D for ; Tue, 27 Jun 2006 05:44: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 20903-07 for ; Tue, 27 Jun 2006 05:44:32 -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 692093B006C for ; Tue, 27 Jun 2006 05:44:32 -0400 (EDT) Received: by wx-out-0102.google.com with SMTP id t5so727713wxc for ; Tue, 27 Jun 2006 02:44:31 -0700 (PDT) Received: by 10.70.30.10 with SMTP id d10mr10066855wxd; Tue, 27 Jun 2006 02:44:31 -0700 (PDT) Received: by 10.70.45.11 with HTTP; Tue, 27 Jun 2006 02:44:31 -0700 (PDT) Message-ID: Date: Tue, 27 Jun 2006 16:44:31 +0700 From: "=?UTF-8?Q?Nguy=E1=BB=85n_Th=C3=A1i_Ng=E1=BB=8Dc_Duy?=" To: rhythmbox-devel@gnome.org 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.369 tagged_above=-999 required=2 tests=[AWL=0.031, BAYES_00=-2.599, DNS_FROM_RFC_ABUSE=0.2, SPF_PASS=-0.001] X-Spam-Score: -2.369 X-Spam-Level: Subject: [Rhythmbox-devel] tag writing with utf-8 and taglib 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, 27 Jun 2006 09:44:33 -0000 Hi, When writing utf-8 tags, taglib will not try to change frame encoding. If frame encoding is iso-8859-1, then the string will be converted (lossily) to iso-8859-1. Although I think the behaviour is ok for taglib itself, it's ruining my songs. I would like to have an option to allow rhythmbox (more accurate id3v2mux) to change id3v2 tag frame encoding from iso-8859-1 to utf-8 if necessary. Do you have any idea? From teuf@gnome.org Tue Jun 27 06:05: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 60E513B03BD for ; Tue, 27 Jun 2006 06:05:45 -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 22143-10 for ; Tue, 27 Jun 2006 06:05:42 -0400 (EDT) Received: from vds19s01.yellis.net (ns1019.yellis.net [213.246.41.159]) by menubar.gnome.org (Postfix) with ESMTP id F3A1F3B0171 for ; Tue, 27 Jun 2006 06:05:41 -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 4F2B0905EE for ; Tue, 27 Jun 2006 12:05:47 +0200 (CEST) Received: from plouf.anevia.com (plouf.anevia.com [10.0.1.37]) by goliath.anevia.com (Postfix) with ESMTP id 81A97130005B for ; Tue, 27 Jun 2006 12:05:38 +0200 (CEST) From: Christophe Fergeau To: rhythmbox-devel@gnome.org In-Reply-To: References: Content-Type: text/plain; charset=utf-8 Date: Tue, 27 Jun 2006 12:05:44 +0200 Message-Id: <1151402744.5360.37.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.352 tagged_above=-999 required=2 tests=[AWL=0.112, BAYES_00=-2.599, FORGED_RCVD_HELO=0.135] X-Spam-Score: -2.352 X-Spam-Level: Subject: Re: [Rhythmbox-devel] tag writing with utf-8 and taglib 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, 27 Jun 2006 10:05:45 -0000 Le mardi 27 juin 2006 à 16:44 +0700, Nguyễn Thái Ngọc Duy a écrit : > Hi, > When writing utf-8 tags, taglib will not try to change frame encoding. > If frame encoding is iso-8859-1, then the string will be converted > (lossily) to iso-8859-1. Although I think the behaviour is ok for > taglib itself, it's ruining my songs. I would like to have an option > to allow rhythmbox (more accurate id3v2mux) to change id3v2 tag frame > encoding from iso-8859-1 to utf-8 if necessary. Do you have any idea? Hmm, maybe the gstreamer taglib element (gst-plugins-good/ext/taglib/gstid3v2mux.c) is missing a call to TagLib::ID3v2::FrameFactory::instance()->setDefaultTextEncoding(TagLib::String::UTF8); (or explicit calls to frame->setTextEncoding (String::UTF8); for each handled tags). I don't have time to investigate more than that atm though... Christophe From shrift@gmail.com Tue Jun 27 13:23: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 E17E93B0246 for ; Tue, 27 Jun 2006 13:23: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 09704-09 for ; Tue, 27 Jun 2006 13:23:35 -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 F2F2F3B0075 for ; Tue, 27 Jun 2006 13:23:34 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id c30so1973900pyc for ; Tue, 27 Jun 2006 10:22:52 -0700 (PDT) Received: by 10.35.94.2 with SMTP id w2mr7420102pyl; Tue, 27 Jun 2006 10:22:52 -0700 (PDT) Received: from shrift.evanston.gov ( [66.158.65.137]) by mx.gmail.com with ESMTP id w54sm8039pye.2006.06.27.10.22.51; Tue, 27 Jun 2006 10:22:51 -0700 (PDT) From: Brendan Martens To: rhythmbox-devel@gnome.org In-Reply-To: References: Content-Type: text/plain Date: Tue, 27 Jun 2006 12:26:04 -0500 Message-Id: <1151429165.11410.15.camel@shrift.local.cityofevanston.org> 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.144 tagged_above=-999 required=2 tests=[AWL=0.256, BAYES_00=-2.599, DNS_FROM_RFC_ABUSE=0.2, SPF_PASS=-0.001] X-Spam-Score: -2.144 X-Spam-Level: Subject: Re: [Rhythmbox-devel] using iPod as a normal DAP 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, 27 Jun 2006 17:23:36 -0000 > Yes, just disable the ipod plugin and it should be detected as a generic > audio player. Ok! Thanks a lot! From adam_zimmerman@sfu.ca Wed Jun 28 16:41: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 5367F3B040C for ; Wed, 28 Jun 2006 16:41: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 00611-09 for ; Wed, 28 Jun 2006 16:41:22 -0400 (EDT) Received: from pobox.sfu.ca (pobox.sfu.ca [142.58.101.28]) by menubar.gnome.org (Postfix) with ESMTP id BD4A13B021D for ; Wed, 28 Jun 2006 16:41:21 -0400 (EDT) Received: from [192.168.1.106] (d154-20-165-140.bchsia.telus.net [154.20.165.140]) (authenticated bits=0) by pobox.sfu.ca (8.13.6/8.13.5/SFU-6.0G) with ESMTP id k5SKepFh008833 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NOT) for ; Wed, 28 Jun 2006 13:40:53 -0700 (PDT) From: Adam Zimmerman To: rhythmbox-devel@gnome.org Content-Type: text/plain Date: Wed, 28 Jun 2006 13:40:44 -0700 Message-Id: <1151527244.10453.17.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.503 tagged_above=-999 required=2 tests=[AWL=0.096, BAYES_00=-2.599] X-Spam-Score: -2.503 X-Spam-Level: Subject: [Rhythmbox-devel] Magnatune 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, 28 Jun 2006 20:41:25 -0000 Hi everyone, For anyone who hasn't been watching the bug[1], I figured I'd let you know that the plugin's basically in a usable state for both previewing music as well as purchasing. The only known bug at the moment is related to the popup menu (see comment #4). There are 2 files you need to download. The code itself[2], and the glade files[3]. The glade files need to be untarred into /usr/share/rhythmbox/glade/ (or wherever sys.prefix in python points to, if not /usr), and the python file can go either in ~/.gnome2/rhythmbox/plugins or /usr/lib/rhythmbox/plugins. If anyone feels like helping out with testing the purchasing code, email me and I can send you the test credit card number that Magnatune gave me. Any feedback is much appreciated. -Adam oh, p.s. You'll also need a magnatune.rb-plugin file in the plugins directory. Its contents are: [RB Plugin] Loader=python Module=magnatune IAge=1 Name=Magnatune support Description=Adds support to Rhythmbox for playing and purchasing from the Magnatune catalog Authors=Adam Zimmerman Copyright=(C) 2006 Adam Zimmerman Website=http://www.rhythmbox.org [1] http://bugzilla.gnome.org/show_bug.cgi?id=345783 [2] http://bugzilla.gnome.org/attachment.cgi?id=68132 [3] http://bugzilla.gnome.org/attachment.cgi?id=68133 -- 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/ -- Rocky's Lemma of Innovation Prevention: Unless the results are known in advance, funding agencies will reject the proposal. From john.a.redd@boeing.com Thu Jun 29 13:26: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 4708F3B00D5 for ; Thu, 29 Jun 2006 13:26: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 30224-02 for ; Thu, 29 Jun 2006 13:26:08 -0400 (EDT) Received: from slb-smtpout-01.ns.cs.boeing.com (slb-smtpout-01.boeing.com [130.76.64.48]) by menubar.gnome.org (Postfix) with ESMTP id 4153D3B0196 for ; Thu, 29 Jun 2006 13:26:08 -0400 (EDT) Received: from stl-av-01.boeing.com (stl-av-01.boeing.com [192.76.190.6]) by slb-smtpout-01.ns.cs.boeing.com (8.13.6/8.13.6/TEST_SMTPIN) with ESMTP id k5THPtqE005727 for ; Thu, 29 Jun 2006 10:25:55 -0700 (PDT) Received: from xch-mwbh-02.mw.nos.boeing.com (localhost [127.0.0.1]) by stl-av-01.boeing.com (8.11.3/8.11.3/MBS-AV-LDAP-01) with ESMTP id k5THQ7307196 for ; Thu, 29 Jun 2006 12:26:07 -0500 (CDT) Received: from XCH-MW-2V1.mw.nos.boeing.com ([130.247.200.29]) by xch-mwbh-02.mw.nos.boeing.com with Microsoft SMTPSVC(6.0.3790.1830); Thu, 29 Jun 2006 12:25:52 -0500 Received: from 130.38.164.172 ([130.38.164.172]) by XCH-MW-2V1.mw.nos.boeing.com ([130.247.200.49]) via Exchange Front-End Server owa.web.boeing.com ([192.42.209.170]) with Microsoft Exchange Server HTTP-DAV ; Thu, 29 Jun 2006 17:25:06 +0000 Received: from ubuntu606lts by owa.web.boeing.com; 29 Jun 2006 12:24:14 -0500 From: John Redd To: rhythmbox-devel@gnome.org Content-Type: multipart/alternative; boundary="=-ced/NAAygWu8XvdLnlba" Organization: Boeing IDS CIDS Date: Thu, 29 Jun 2006 12:24:14 -0500 Message-Id: <1151601854.5360.3.camel@ubuntu606lts> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 X-OriginalArrivalTime: 29 Jun 2006 17:25:53.0215 (UTC) FILETIME=[12AF34F0:01C69BA1] X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=1.502 tagged_above=-999 required=2 tests=[BAYES_50=0.001, HTML_MESSAGE=0.001, RCVD_NUMERIC_HELO=1.5, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001] X-Spam-Score: 1.502 X-Spam-Level: * X-Mailman-Approved-At: Fri, 30 Jun 2006 03:05:40 -0400 Subject: [Rhythmbox-devel] program suggestion 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, 29 Jun 2006 17:26:09 -0000 --=-ced/NAAygWu8XvdLnlba Content-Type: text/plain Content-Transfer-Encoding: 7bit You guys need an equalizer. I started using Amarok because they have an equalizer built in. Other than that, I'd rather use rhythmbox. --=-ced/NAAygWu8XvdLnlba Content-Type: text/html; charset=utf-8 You guys need an equalizer.  I started using Amarok because they have an equalizer built in.  Other than that, I'd rather use rhythmbox.

--=-ced/NAAygWu8XvdLnlba-- From tombreit@gmail.com Fri Jun 30 10:47: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 794533B028E for ; Fri, 30 Jun 2006 10:47: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 26368-07 for ; Fri, 30 Jun 2006 10:47:15 -0400 (EDT) Received: from nf-out-0910.google.com (nf-out-0910.google.com [64.233.182.187]) by menubar.gnome.org (Postfix) with ESMTP id 1C55D3B021F for ; Fri, 30 Jun 2006 10:47:15 -0400 (EDT) Received: by nf-out-0910.google.com with SMTP id c29so304388nfb for ; Fri, 30 Jun 2006 07:47:14 -0700 (PDT) Received: by 10.48.254.3 with SMTP id b3mr379982nfi; Fri, 30 Jun 2006 07:47:13 -0700 (PDT) Received: from noname ( [217.233.49.40]) by mx.gmail.com with ESMTP id i1sm1601801nfe.2006.06.30.07.47.12; Fri, 30 Jun 2006 07:47:13 -0700 (PDT) From: tombreit To: rhythmbox-devel@gnome.org Content-Type: text/plain Date: Fri, 30 Jun 2006 16:47:13 +0200 Message-Id: <1151678833.2383.12.camel@localhost> Mime-Version: 1.0 X-Mailer: Evolution 2.6.2 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.4 tagged_above=-999 required=2 tests=[BAYES_00=-2.599, DNS_FROM_RFC_ABUSE=0.2, SPF_PASS=-0.001] X-Spam-Score: -2.4 X-Spam-Level: Subject: [Rhythmbox-devel] Proposal for ipod-plugin (ogg-mp3-conversion) 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, 30 Jun 2006 14:47:16 -0000 Hi, new to this list, new to my ipod - so perhaps someone else posted this wired proposal... because i own some ogg-file and some more mp3-files and an ipod, i'd like to listen to both of these. tradically, my ipod won't play - you guess - ogg's. further i would like to keep the apple-firmware on the ipod. conclusion: i would like to have my rhythmbox-ipod-plugin to do some one-the-fly-conversion from ogg to mp3 when copying files from the notebook to the ipod. perhaps this would be helpful for quite a lot of ipod-/mp3-player owners. any chance something like this will/could be implemented? Greetings, thanks for this really nice app, thomas -- _____________________________________________ Thomas Breitner mail@tombreit.de | http://www.tombreit.de From rhythmbox-devel@maubp.freeserve.co.uk Fri Jun 30 15:52: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 F1C473B043F for ; Fri, 30 Jun 2006 15:52: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 10090-01 for ; Fri, 30 Jun 2006 15:52:33 -0400 (EDT) Received: from smtp2.freeserve.com (smtp2.wanadoo.co.uk [193.252.22.157]) by menubar.gnome.org (Postfix) with ESMTP id 20F683B03B3 for ; Fri, 30 Jun 2006 15:52:32 -0400 (EDT) Received: from me-wanadoo.net (localhost [127.0.0.1]) by mwinf3111.me.freeserve.com (SMTP Server) with ESMTP id 3F376200008C for ; Fri, 30 Jun 2006 21:52:31 +0200 (CEST) Received: from [10.0.0.8] (user-7539.l2.c4.dsl.pol.co.uk [81.79.189.115]) by mwinf3111.me.freeserve.com (SMTP Server) with ESMTP id D4F85200008B for ; Fri, 30 Jun 2006 21:52:30 +0200 (CEST) X-ME-UUID: 20060630195230872.D4F85200008B@mwinf3111.me.freeserve.com Message-ID: <44A58106.8080406@maubp.freeserve.co.uk> Date: Fri, 30 Jun 2006 20:52:38 +0100 From: Peter User-Agent: Thunderbird 1.5.0.4 (X11/20060615) 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.264 tagged_above=-999 required=2 tests=[BAYES_00=-2.599, DNS_FROM_RFC_ABUSE=0.2, FORGED_RCVD_HELO=0.135] X-Spam-Score: -2.264 X-Spam-Level: Subject: [Rhythmbox-devel] Audioscrobbler plugin and MBID 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: Fri, 30 Jun 2006 19:52:36 -0000 Hello list I've been looking at the Audioscrobbler plugin source code to see how it handles the MusicBrainz ID or MBID tag: /rhythmbox/plugins/audioscrobbler/rb-audioscrobbler.c There is an AudioscrobblerEntry structure with a string field mbid, which is used when writing to the queue and for submission's to last.fm However, as far as I can tell, the MBID field is never populated. Other fields like the artist, title, length and timestamp get copied from object audioscrobbler->priv which is a _RBAudioscrobblerPrivate structure. The _RBAudioscrobblerPrivate structure DOES NOT have an MBID field. The other fields get updated by rb_audioscrobbler_song_changed_cb using RHYTHMDB_PROP_TITLE, RHYTHMDB_PROP_ARTIST, RHYTHMDB_PROP_ALBUM, RHYTHMDB_PROP_DURATION etc for the currently playing track. These properties are defined in the enum RhythmDBPropType in: /rhythmbox/rhythmdb/rhythmdb.h There is currently no such entry for the MBID. Have I read the code correctly so far? If so I was wondering about extending things... Some people might have the MBID in their mp3 ID3 tags from using some analysis program (Picard, MusicTagger etc) so it would a good start if rhythmbox could extract this field and pass it to the Audioscrobbler plugin. [Should I file a "little" bug on just this?] Could the MBID track tag even be included in the database (what about the album and artist tags if known?). Then a plugin could be written to lookup the MBID using the track/album/artist tags and record the ID in the database. It could then optionally standardise the artist/album/track names according MusicBrainz. A further option would be to write the MBID (and "corrected" track/album/artist names) back into the mp3 ID3 data I've had a look at the python library musicbrainz2 and it looks writing such a plugin for rhythmbox would be an interesting project - but I think it would be easier with a little built in infrastructure. Peter From mail@tombreit.de Fri Jun 30 10:45:28 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 B50333B02A5 for ; Fri, 30 Jun 2006 10:45: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 26191-08 for ; Fri, 30 Jun 2006 10:45:27 -0400 (EDT) Received: from quimby.ehbuehl.net (nomeata.de [83.133.81.20]) by menubar.gnome.org (Postfix) with ESMTP id 3545C3B021F for ; Fri, 30 Jun 2006 10:45:27 -0400 (EDT) Received: from pd9e93128.dip0.t-ipconnect.de ([217.233.49.40] helo=noname) by quimby.ehbuehl.net with esmtpsa (TLS-1.0:RSA_ARCFOUR_MD5:16) (Exim 4.50) id 1FwKFJ-0006u4-KE for rhythmbox-devel@gnome.org; Fri, 30 Jun 2006 16:45:26 +0200 From: Thomas Breitner To: rhythmbox-devel@gnome.org Content-Type: text/plain Date: Fri, 30 Jun 2006 16:45:26 +0200 Message-Id: <1151678726.2383.11.camel@localhost> Mime-Version: 1.0 X-Mailer: Evolution 2.6.2 Content-Transfer-Encoding: 7bit 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-Mailman-Approved-At: Sun, 02 Jul 2006 07:01:10 -0400 Subject: [Rhythmbox-devel] Proposal for ipod-plugin (ogg-mp3-conversion) 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, 30 Jun 2006 14:45:28 -0000 Hi, new to this list, new to my ipod - so perhaps someone else posted this wired proposal... because i own some ogg-file and some more mp3-files and an ipod, i'd like to listen to both of these. tradically, my ipod won't play - you guess - ogg's. further i would like to keep the apple-firmware on the ipod. conclusion: i would like to have my rhythmbox-ipod-plugin to do some one-the-fly-conversion from ogg to mp3 when copying files from the notebook to the ipod. perhaps this would be helpful for quite a lot of ipod-/mp3-player owners. any chance something like this will/could be implemented? Greetings, thanks for this really nice app, thomas -- _____________________________________________ Thomas Breitner mail@tombreit.de | http://www.tombreit.de From slyngaas@gmail.com Fri Jun 30 17:40: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 2F9E03B03CD for ; Fri, 30 Jun 2006 17:40: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 16668-04 for ; Fri, 30 Jun 2006 17:40:33 -0400 (EDT) Received: from nf-out-0910.google.com (nf-out-0910.google.com [64.233.182.190]) by menubar.gnome.org (Postfix) with ESMTP id B34443B029B for ; Fri, 30 Jun 2006 17:40:32 -0400 (EDT) Received: by nf-out-0910.google.com with SMTP id y25so368355nfb for ; Fri, 30 Jun 2006 14:40:31 -0700 (PDT) Received: by 10.78.139.5 with SMTP id m5mr1751143hud; Fri, 30 Jun 2006 14:40:31 -0700 (PDT) Received: from b196c.studby.ntnu.no ( [129.241.146.196]) by mx.gmail.com with ESMTP id 18sm659725hue.2006.06.30.14.40.30; Fri, 30 Jun 2006 14:40:30 -0700 (PDT) From: =?ISO-8859-1?Q?St=E5le?= Lyngaas To: rhythmbox-devel@gnome.org In-Reply-To: <44A58106.8080406@maubp.freeserve.co.uk> References: <44A58106.8080406@maubp.freeserve.co.uk> Content-Type: text/plain; charset=utf-8 Date: Fri, 30 Jun 2006 23:40:28 +0200 Message-Id: <1151703628.5106.19.camel@localhost> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 8bit Sender: =?UTF-8?B?U3TDpWxlIEx5bmdhYXM=?= X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.4 tagged_above=-999 required=2 tests=[BAYES_00=-2.599, DNS_FROM_RFC_ABUSE=0.2, SPF_PASS=-0.001] X-Spam-Score: -2.4 X-Spam-Level: X-Mailman-Approved-At: Sun, 02 Jul 2006 07:01:10 -0400 Subject: Re: [Rhythmbox-devel] Audioscrobbler plugin and MBID 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, 30 Jun 2006 21:40:34 -0000 I've attached two patches to the following bug: http://bugzilla.gnome.org/show_bug.cgi?id=343491 See comments below. On Fri, 2006-06-30 at 20:52 +0100, Peter wrote: > Hello list > > I've been looking at the Audioscrobbler plugin source code to see how it > handles the MusicBrainz ID or MBID tag: > > /rhythmbox/plugins/audioscrobbler/rb-audioscrobbler.c > > There is an AudioscrobblerEntry structure with a string field mbid, > which is used when writing to the queue and for submission's to last.fm > > However, as far as I can tell, the MBID field is never populated. Other > fields like the artist, title, length and timestamp get copied from > object audioscrobbler->priv which is a _RBAudioscrobblerPrivate structure. > > The _RBAudioscrobblerPrivate structure DOES NOT have an MBID field. Added in my audioscrobbler_mbid patch. > The other fields get updated by rb_audioscrobbler_song_changed_cb using > RHYTHMDB_PROP_TITLE, RHYTHMDB_PROP_ARTIST, RHYTHMDB_PROP_ALBUM, > RHYTHMDB_PROP_DURATION etc for the currently playing track. These > properties are defined in the enum RhythmDBPropType in: > > /rhythmbox/rhythmdb/rhythmdb.h > > There is currently no such entry for the MBID. I've added RHYTHMDB_PROP_MUSICBRAINZ_TRACKID, as well as RB_METADATA_MUSICBRAINZ_TRACKID in the musicbrainz_trackid patch. > Have I read the code correctly so far? If so I was wondering about > extending things... > > Some people might have the MBID in their mp3 ID3 tags from using some > analysis program (Picard, MusicTagger etc) so it would a good start if > rhythmbox could extract this field and pass it to the Audioscrobbler > plugin. [Should I file a "little" bug on just this?] > > Could the MBID track tag even be included in the database (what about > the album and artist tags if known?). In the musicbrainz_trackid patch, the track id is included in the database. You'll need to rebuild the database for it to be added. I'm currently working on a patch that will extract the track id from e.g. playing DAAP sources as well. Please provide feedback on the bug page (http://bugzilla.gnome.org/show_bug.cgi?id=343491) -- Stle Lyngaas 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, -- Loc 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. -- Loc 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 Frcinaux 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? :) -- Loc 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, -- Loc 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, Loc 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. -- Loc 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 Grundstrm, 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 Grundstrm 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 Grundstrm 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 Grundstrm ________________________________________ \ | 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, Dchern Und Hnden 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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 NDPZvDb9mO7sp2pb4izpWbv3/dZXvCnFRS/NRcT1TZLmgrPzn4XGcZx/pLnSjfpmF7oLdh2+ 2irvnNseDzQbjcdUZzl7xrM8Hvxh3CpPnL7lzeakLNdVmQPNzbHgHC2iObJEuZvDoUjQcFRc pW5zTAfdxWaaa3XQqTUcbXHbOrqaI8ba6c4z1/ZIW3B7HKZiq7wl2t4uKzYngi1Ps4h2uXnP g+XmRSozZ7n54VreFosmb4q/Tvq7leiA2Z5k3SnpfTC/4q1afpDLNsSS22ddC0vSRM9PdKdX QKax5rnqa5hnWVNztL4M6pL696A+Z0z6/a663DcCe1F+Z+UqqM9ylbvdleHsTvKUO7mv9gB4 y33f047F3Wbro+3IdbVjmqe+3UwgLcm7mO22wzz1FS9Jvs55rvqm41NFuW7zhqxw+TEf2GpH M8ifaN6spzKT5fzoXE98BWMtK+4q54Ta5Ylv4BId8SzxFbriO8dTX/c+Jn9Iz/Yu9ZRbfIJl XZjZs9ylnuP+ZGnydSl2Hfennvr6NSXb6K7vZk99y5ZqPVJfqau+X+NTQblaU99Wl6PzOq/2 HHdkyLLGpjjuU+zn8IYEQu6b2WS5dz31BUPWDsmxyWcy01suxfnsPgcS7Y1YifWgB1v6WZYY pP15nvo2dOr4OG993uTOz7I+/NJty9zhyMJZHs72cI6Hcz2c5+F8q4h9fyKWAmsE+7vBEy29 FlXDxxnttnR2iHDM0vWSh8AXGN3gqm85jdwVlkfTyXP6nPJ/NLqPi2UN5Rk2az4blkdFL7NZ +9nwULO/wXaubwWJp8TKzHcnXlnLfWKGc70qSKzh3p2RjGeRrQ9XdcpfZ+s6xY79HluHujv2 NVxEnXjeldgy9f0XlrXcx7t4lwwd/90PrjEsj69w2i/PlJbHP+wN7/h+eLnQw709XOzhUg/3 9XB/Dw9IrCmfTPnW7AzL5ZWfWPN5dxd3ZSSvncLzDB/gYlkb+ngXn2044uLzMnTdbYdlDekr XLxjfP08bCceqi5Jph6Vms/Hna74SzP6W0+4WF6dDR7+xMNFmcl5jlLfXpnJOY3C0zOT8xeF z85MzlUUljWm17h4dWZyDqLw+szkfEPhLzKTcwuFd8tKziMUlqfZOnMGhWdnJecHCkvdzlxA 4ZVZyXl/wq9lJef4CX+elZzPJzw4Ozl3T1jWuHfm6Qkfk52ckycsz5p15t8JX5a94+sna9w7 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 zn0of/hl+p//TdumJbTtI/wjeIb8/RRzaULai77r/lf+JiQpL0eu+UaPf+bOVz79L7PNL/Xx 3xGatiUh/Wb5u1aPL5T0b0XOlb/35G9qQln4auNsy/wqOtl/h9rmF/dHJEnLt8xbUPAf7nLh 1/8nJuE98b9LEo43qbzHd0254Gl6jLc+4JdWBxRPluOz5S+s1+yWvx/I8fnyd5Wew7ciD9fj RXpdfUIdp+jx7SqzLPMrZfw30deW3wv+b/k7Vs8X2uZO3ROaPi+JjnjTwgm2ecPJIpGvJJTZ qscdKpf56tsrf72Wuct4h8if6flfqXxc5ZuW+WXBU4rPlfyfiXRfYYOn7hfa5o0bbSKj8rc7 oa5H5PgF+cNbHvr/DWdHIZ6Sv8ds87aGg/03ViseYpk38LYsc7HZjVxaZys2bwJoiWHj0Xsf cLGxtL4nXGzeY9Efw+rdV7nYzOxZMWy8fcVzLjZvGlgUw8dZ38pEWSNBPtaRR0v7xkuW5q+M 7wbeP8RUcaJl1nr3y8KmSBYVszR9Vfy1Cax9ulyf02/GHNKnyuKpSxb8jysu/b43P94hXvOB 8V9IfzrNm77wDKlPAuW3Nf0haUTup8bmgDfqRH+Btm/DEO/1rx/uxZW+9n7oa898fZnIUi1v 9THe9HG+txW9o68WgT0g6W/qUN9W/FN81mSd2OOhpr3HCsWZsoAapu0/5VCTv0Pru0ri04Lf mTGP9JnDvPVdIIviPjHwZtukTzjVm75Vyiu62GZMjfROCcx+eIfNufAosa+6U7z5m1Tfn2n9 6Vne9Ed8bzI4VnGZ6udIINoni6pVWt8zvv7+lfRHtziAo7S93z3Mm75yhBfvOd6LD5f+z+kz e0+4vtmXf6bW90dt//QTvOm/9/H9ktSf9b6JuVDeTcJf67tWzJ4DggveNfMD8DEjvdffqEHF UNX/HCm/4GSbMQXyl4j9t4v936N8d+nLbH6k7XtYg7ag4nafvn/38b1W+GqX8bZRy3/hKG/6 NT/w4myf/ncjf4/ZI8D1S9Xe7tT6N2Z68z8y3Iu3+Mbjcb70G33tecDy4i1HevXPyfKm78FC RhbA67V99ndkrhZ7RV7Ya2LMgPw9aq8XaXnYryt6z+zz4folmn/lEJP+9hHe6xvVZRbq9d3H 49esNn8hhesPP8mbH08ObZD2ZGh7Vn7Xm75Ox/siLe+rod70gM/eb0nx4ok6nibo9Rcch/1a m2sYtKcn25v/Ml9/44nshndMbER70/ZcreX91td/Rcq/O973+fj97ywv3qn2+5za+x+Uz3f1 +kPxVFi+zbU96t+h9veUpt+j9UUUl0r7i6Jmb43jTcsfmWLSL9f2uvwe4rPnEuXnH5r+PcV1 in8pRGXutGLzzfdSvdc/rfPFQ6rPmWJ/NdfE/dd+9e+4DF29XK+v0fLrffZxnthDg/jzi/T6 AfEHudk2992B8Xa71n/G57dnffPH7TI/Fji2vglnmHV3ujd9nM9+o9KfLXPi7f2Ljn98+xNF r/TZ30afP7nxu3h62OY+Fa6vyPKmr/f5k3t89veQz78/7rv+JfUP52l/vemzv/O1fTdrOn5B 35Jqcz2N9syVgLGhOB4vBE/2Xj9Gx8vv9fprfPPBU+qvH9D0U33pYd98eYev/Xt8/RX0jY83 ffHCcF9/HYd0Caof1vbjCcLoHeYdWPAfv9TxeZS2b7jUl7XW3B9A/hy//0Wmf8XtZ7em3az2 e5nMDw0TbN5/Qfol0p99d1ux/nwI9l0V789HdTwudPtP7K+5LJ4+xNffAV9/fSPt75JFxQL1 l2Ht71O1vKjqd5m2L0/9pTue9kshfR+ZtTbjIYzXbpfPYdYV6l9ma3njffPT4772naj53fjv yDO86aW+64ek49fONt8Zh/pW+sZXkc9e89Vez9by3zw0Ht8fLfH9dF98uFLbMzHV5G8Ue2gV e/hM+S0U+y36xNyPAv5W+Riv5df7ypvjs9/6DC/e5Gv/G1lefJov/VPl80ytr0X926k6X65V /+P605ulvc3vmz0QtPdq3/i3j/PiFeqvr9TrF/jGiyP2UnSczX1dlHeG2G9rrs31L/C9Ml5y D7OtU9W+DlF9P9LyntKXpbnzyVliv5kJ64uR6h9+q+lvSH8WfWb2RDi/K5/Zmn6kju/bFK/3 8b/e158/Ufs+QfO/6Vtv/LdvfrhUxl9ORbx996R5+9fxxX/3+OKFoPLlrg9SxD+0fG7uZ6C8 fb7+/YH0390J8f4n0l/dA2b9i/xt3/HmXyr2deYdZj2C/B2Sv2jArIWR/wSffq8p3+3anltU n1Qd7xPx0dUr4/58pPaX29+Zvvn4Pl/78WGv1u44X5fq9edrfODeDz1Wy8OHIl6T9h+r7d8w NF4W0l8XxRra3fhqmPWRb3y9Lv6pb7jN/TKkf+FrX7qOz81a3gmnGfye6rvb158fw74lGJ2q 5dUIEd1fWLH49vu++gt865PPfeM1cqwX1/jG3wm+9dxhPn9xlOTvajd7Jqh/srb/SdVnvm++ q1f/5cZfWdq+21XflWKvNRIvV2p5uT57X6PXl2r+Q7T/HtPyRvr8d4eOV3c8HSmGknt+fH/h VE1/X8s733f9Wu2fR/X63/j6d4ny+bD64x3CR9/e+P7GL3X+Pkmvv0rt+Vit7zy8eXCIzXu/ yD9N2+P6t+t0/gsp/sIXDxyF+C4QH/8nZnnTl4l/aK2Mp2/U/rtBy9so/dF8oc19baS/6rO3 C3zx8W71H65/GYWTu+LzzSOq3181vdkXj97is4eZx3n79z3Rp7s83t7T1T+frv3Vrfy48T8+ mFTU6/rXYVa5z76ftLz4MQkS2nvi64MVOp5naHkf+uLjGUJc+5k271dy/a3z/xLNn4v9EPFH bvx0tK6/fq3tPd0X336d5cVB1J9p85kdXP+4zx+OFT7+R/wPaIP/CWl5rv0PPTO+35ZpfTaA N2Rk7Tb39VFeh/ZfQNv7Q+X/UsV4A0zRR659DbOO8PF1n+rj2stfla9OxWN0fG5S/E/xD3MT /OXnvnhzsvRf87Xx9Tj2TGuazP004Pd88fDvR2IPw+b+N9dbvvnsabGXrPL4euV+1S9f23Ok +N+chHgsU/3N9zW9Svqr9U6zj8z9D7UH177G+Ox1hG/9c5uvPdPlor7e+P5hisan7nrlPh3f rr1d4Nv/WaXjbbGmr/CN9zd9+Je+8Xm8Lx7d5vP/+3S+X6Hl5/naP8pX/hSxv6eETwwr8LlJ +UzX6znH6/7y0dbhElt5r5/lG4+/VX/t8nOhb7xNFD5q7jTPoaH/fuZrf53y8Se9fqFP/8fU Xz+t46Pdt59ypPa/G8+f5Nsv+cQ3/jq1/Os1/wPa/gcV34z4YaTNN9ugvW9o+fdq+ibEZ9W2 7icMs8b4+vt0nz0t980/bvgLP4akab74fJTUn/sdm8+loPyPfeP3j5Le+j2bz9RwfaD9gfkP 66W/K18XufuNvnhps2/+vdHH70wff9/q/Oj6881i35kj4uP3UV/7j/btN33lK2+Zr/5aX7pz HPbGbd7rRvmtvvyXZIn+p9mWnWrS3/TZ7zSff3rItx7tU37c8XuRL/75xDfeHpN/2j80z16i vtUaH7j7ZZbPX3/tWw+cLP6xqybuz46R/JsT8jeof3TXV3jesbvJiq3PH/bNN9vUfi/X/P8j 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 v3///fvv33///vv337///v33779///3/5+9/AcKVrSIA0AwA --------------060407080808030906030006-- From jjrussell@gmail.com Tue Jun 20 09:45:46 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 286303B017D for ; Tue, 20 Jun 2006 09:45:46 -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 18045-10 for ; Tue, 20 Jun 2006 09:45:44 -0400 (EDT) Received: from ug-out-1314.google.com (ug-out-1314.google.com [66.249.92.172]) by menubar.gnome.org (Postfix) with ESMTP id DDF3E3B01B0 for ; Tue, 20 Jun 2006 09:45:43 -0400 (EDT) Received: by ug-out-1314.google.com with SMTP id o2so2994482uge for ; Tue, 20 Jun 2006 06:45:12 -0700 (PDT) Received: by 10.78.47.15 with SMTP id u15mr2704279huu; Tue, 20 Jun 2006 06:45:11 -0700 (PDT) Received: by 10.78.124.12 with HTTP; Tue, 20 Jun 2006 06:45:11 -0700 (PDT) Message-ID: <46cb18130606200645v26a76091w98fec72b69db943c@mail.gmail.com> Date: Tue, 20 Jun 2006 09:45:11 -0400 From: "John Russell" To: doclivingston@gmail.com In-Reply-To: <1150767859.5180.33.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: <46cb18130606191233w68f08b35t5b4a360a592e8971@mail.gmail.com> <1150767859.5180.33.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@gnome.org 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 13:45:46 -0000 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@gnome.org > http://mail.gnome.org/mailman/listinfo/rhythmbox-devel > From jjrussell@gmail.com Tue Jun 20 10:35: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 2D1423B0460 for ; Tue, 20 Jun 2006 10:35:45 -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 20209-03 for ; Tue, 20 Jun 2006 10:35:44 -0400 (EDT) Received: from ug-out-1314.google.com (ug-out-1314.google.com [66.249.92.175]) by menubar.gnome.org (Postfix) with ESMTP id E4D933B048C for ; Tue, 20 Jun 2006 10:35:43 -0400 (EDT) Received: by ug-out-1314.google.com with SMTP id o2so3019711uge for ; Tue, 20 Jun 2006 07:34:40 -0700 (PDT) Received: by 10.78.51.16 with SMTP id y16mr2736730huy; Tue, 20 Jun 2006 07:34:39 -0700 (PDT) Received: by 10.78.124.12 with HTTP; Tue, 20 Jun 2006 07:34:39 -0700 (PDT) Message-ID: <46cb18130606200734w36f36216u73313119f680968b@mail.gmail.com> Date: Tue, 20 Jun 2006 10:34:39 -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=-1.819 tagged_above=-999 required=2 tests=[AWL=-0.777, BAYES_00=-2.599, RCVD_IN_BL_SPAMCOP_NET=1.558, SPF_PASS=-0.001] X-Spam-Score: -1.819 X-Spam-Level: Subject: [Rhythmbox-devel] rb on pause doesn't seem to release the audio device 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 14:35:45 -0000 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@gmail.com Tue Jun 20 11:01: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 D5B553B00E9 for ; Tue, 20 Jun 2006 11:01: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 21722-01 for ; Tue, 20 Jun 2006 11:01:17 -0400 (EDT) Received: from wx-out-0102.google.com (wx-out-0102.google.com [66.249.82.196]) by menubar.gnome.org (Postfix) with ESMTP id A61983B00E7 for ; Tue, 20 Jun 2006 11:01:16 -0400 (EDT) Received: by wx-out-0102.google.com with SMTP id t12so482372wxc for ; Tue, 20 Jun 2006 08:00:34 -0700 (PDT) Received: by 10.70.78.15 with SMTP id a15mr8472903wxb; Tue, 20 Jun 2006 08:00:34 -0700 (PDT) Received: from ?192.168.1.120? ( [67.86.206.80]) by mx.gmail.com with ESMTP id i38sm6240778wxd.2006.06.20.08.00.31; Tue, 20 Jun 2006 08:00:33 -0700 (PDT) Message-ID: <44980D88.4050504@gmail.com> Date: Tue, 20 Jun 2006 11:00:24 -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="------------040908010102090809000004" X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.586 tagged_above=-999 required=2 tests=[AWL=0.014, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.586 X-Spam-Level: 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: Tue, 20 Jun 2006 15:01:19 -0000 This is a multi-part message in MIME format. --------------040908010102090809000004 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit 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 --------------040908010102090809000004 Content-Type: application/x-gzip; name="lastfm.tar.gz" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="lastfm.tar.gz" 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 DLoAoAAA --------------040908010102090809000004-- From adam_zimmerman@sfu.ca Tue Jun 20 12:08: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 A3C493B107C for ; Tue, 20 Jun 2006 12:08: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 25447-03 for ; Tue, 20 Jun 2006 12:07:48 -0400 (EDT) Received: from pobox.sfu.ca (pobox.sfu.ca [142.58.101.28]) by menubar.gnome.org (Postfix) with ESMTP id 7D3293B0FA8 for ; Tue, 20 Jun 2006 12:04:05 -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 k5KG3uN0008689 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NOT) for ; Tue, 20 Jun 2006 09:03:57 -0700 (PDT) From: Adam Zimmerman To: rhythmbox-devel@gnome.org 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> Content-Type: text/plain Date: Tue, 20 Jun 2006 09:03:55 -0700 Message-Id: <1150819435.17540.17.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.487 tagged_above=-999 required=2 tests=[AWL=0.112, BAYES_00=-2.599] X-Spam-Score: -2.487 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: Tue, 20 Jun 2006 16:08:03 -0000 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@users.sourceforge.net Tue Jun 20 17:30:27 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 563AF3B0A36 for ; Tue, 20 Jun 2006 17:30:27 -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 15439-03 for ; Tue, 20 Jun 2006 17:30:23 -0400 (EDT) Received: from allele2.biol.berkeley.edu (allele2.Biol.Berkeley.EDU [128.32.118.82]) by menubar.gnome.org (Postfix) with ESMTP id 9F59C3B02F3 for ; Tue, 20 Jun 2006 17:30:23 -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 k5KLUMe7024086 for ; Tue, 20 Jun 2006 14:30:22 -0700 Received: (from alex@localhost) by allele2.biol.berkeley.edu (8.13.6/8.13.4/Submit) id k5KLUMRe024085; Tue, 20 Jun 2006 14:30:22 -0700 X-Authentication-Warning: allele2.biol.berkeley.edu: alex set sender to alexl@users.sourceforge.net using -f 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> <44980D88.4050504@gmail.com> From: Alex Lancaster Organization: Sourceforge Date: Tue, 20 Jun 2006 14:30:22 -0700 In-Reply-To: <44980D88.4050504@gmail.com> (Matt's message of "Tue, 20 Jun 2006 11:00:24 -0400") Message-ID: <75sllzh5w1.fsf@allele2.biol.berkeley.edu> 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: 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: Tue, 20 Jun 2006 21:30:27 -0000 >>>>> "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@users.sourceforge.net Tue Jun 20 17:36: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 406FC3B0C15 for ; Tue, 20 Jun 2006 17:36: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 15849-09 for ; Tue, 20 Jun 2006 17:36: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 6A8D13B0A73 for ; Tue, 20 Jun 2006 17:36: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 k5KLaJsV024116 for ; Tue, 20 Jun 2006 14:36:19 -0700 Received: (from alex@localhost) by allele2.biol.berkeley.edu (8.13.6/8.13.4/Submit) id k5KLaJOt024115; Tue, 20 Jun 2006 14:36: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: <46cb18130606200734w36f36216u73313119f680968b@mail.gmail.com> From: Alex Lancaster Organization: Sourceforge Date: Tue, 20 Jun 2006 14:36:19 -0700 In-Reply-To: <46cb18130606200734w36f36216u73313119f680968b@mail.gmail.com> (John Russell's message of "Tue, 20 Jun 2006 10:34:39 -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: Re: [Rhythmbox-devel] rb on pause doesn't seem to release the audio device 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 21:36:22 -0000 >>>>> "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@bigpond.com Tue Jun 20 21:35: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 ADDF23B0553 for ; Tue, 20 Jun 2006 21:35: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 29876-04 for ; Tue, 20 Jun 2006 21:35:32 -0400 (EDT) Received: from smtp.felicity.net.au (203-214-122-19.dyn.iinet.net.au [203.214.122.19]) by menubar.gnome.org (Postfix) with ESMTP id A4B553B03BC for ; Tue, 20 Jun 2006 21:35:31 -0400 (EDT) Received: from [203.33.109.252] ([203.33.109.252]) by smtp.felicity.net.au (8.13.6/8.13.6) with ESMTP id k5L1cXX8004967; Wed, 21 Jun 2006 11:38:34 +1000 From: Gawain Lynch To: doclivingston@gmail.com In-Reply-To: <1150764803.5180.14.camel@localhost.localdomain> References: <1150735119.6206.2.camel@ubuntu> <1150764803.5180.14.camel@localhost.localdomain> Content-Type: text/plain Date: Wed, 21 Jun 2006 11:34:54 +1000 Message-Id: <1150853695.21424.3.camel@legolas.felicity.net.au> Mime-Version: 1.0 X-Mailer: Evolution 2.6.2 (2.6.2-1.fc5.5) Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=0.165 tagged_above=-999 required=2 tests=[AWL=-0.486, BAYES_00=-2.599, FORGED_RCVD_HELO=0.135, RCVD_IN_SORBS_DUL=2.046, SPF_NEUTRAL=1.069] X-Spam-Score: 0.165 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: Wed, 21 Jun 2006 01:35:35 -0000 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 gawain.lynch@bigpond.com Wed Jun 21 06:05:24 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 DD7763B0DF2 for ; Wed, 21 Jun 2006 06:05: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 27724-02 for ; Wed, 21 Jun 2006 06:05:23 -0400 (EDT) Received: from smtp.felicity-group.com (203-214-122-19.dyn.iinet.net.au [203.214.122.19]) by menubar.gnome.org (Postfix) with ESMTP id 913893B0F3F for ; Wed, 21 Jun 2006 06:05:23 -0400 (EDT) Received: from [203.33.109.249] (unknown [203.33.109.249]) by smtp.felicity-group.com (Postfix) with ESMTP id 1297224060; Wed, 21 Jun 2006 20:08:57 +1000 (EST) From: Gawain Lynch To: Karsten.Schmiedecke@gmx.de In-Reply-To: <4498E8F9.1070308@gmx.de> References: <1150735119.6206.2.camel@ubuntu> <1150764803.5180.14.camel@localhost.localdomain> <1150853695.21424.3.camel@legolas.felicity.net.au> <4498E8F9.1070308@gmx.de> Content-Type: text/plain; charset=UTF-8 Date: Wed, 21 Jun 2006 20:02:31 +1000 Message-Id: <1150884151.6040.2.camel@legolas.felicity.net.au> Mime-Version: 1.0 X-Mailer: Evolution 2.6.2 (2.6.2-1.fc5.5) Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=0.17 tagged_above=-999 required=2 tests=[AWL=-0.481, BAYES_00=-2.599, FORGED_RCVD_HELO=0.135, RCVD_IN_SORBS_DUL=2.046, SPF_NEUTRAL=1.069] X-Spam-Score: 0.17 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: Wed, 21 Jun 2006 10:05:25 -0000 On Wed, 2006-06-21 at 08:36 +0200, Karsten Schmiedecke wrote: > Gawain Lynch wrote: > > 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... > > But aren't "Volumes" separate Albums, too? Like for "Café del Mar, > Volumen 1" there's a different artwork than "Café del Mar, Volumen 2". > > -karsten Yes, but if I have ripped it and named it "Volume 2" but the database has it listed as "Vol. 2" I won't get the album art. Gawain From alexl@users.sourceforge.net Wed Jun 21 07:34: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 DAA173B0BF9 for ; Wed, 21 Jun 2006 07:34: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 00421-03 for ; Wed, 21 Jun 2006 07:34:30 -0400 (EDT) Received: from allele2.biol.berkeley.edu (allele2.Biol.Berkeley.EDU [128.32.118.82]) by menubar.gnome.org (Postfix) with ESMTP id 0F6D13B0DE3 for ; Wed, 21 Jun 2006 07:34:29 -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 k5LBYSd0029779 for ; Wed, 21 Jun 2006 04:34:28 -0700 Received: (from alex@localhost) by allele2.biol.berkeley.edu (8.13.6/8.13.4/Submit) id k5LBYSDu029778; Wed, 21 Jun 2006 04:34: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: <1150735119.6206.2.camel@ubuntu> <1150764803.5180.14.camel@localhost.localdomain> <1150853695.21424.3.camel@legolas.felicity.net.au> <4498E8F9.1070308@gmx.de> <1150884151.6040.2.camel@legolas.felicity.net.au> From: Alex Lancaster Organization: Sourceforge Date: Wed, 21 Jun 2006 04:34:28 -0700 In-Reply-To: <1150884151.6040.2.camel@legolas.felicity.net.au> (Gawain Lynch's message of "Wed, 21 Jun 2006 20:02:31 +1000") 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.589 tagged_above=-999 required=2 tests=[AWL=0.010, BAYES_00=-2.599] X-Spam-Score: -2.589 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: Wed, 21 Jun 2006 11:34:33 -0000 >>>>> "GL" =3D=3D Gawain Lynch writes: [...] >> But aren't "Volumes" separate Albums, too? Like for "Caf=E9 del Mar, >> Volumen 1" there's a different artwork than "Caf=E9 del Mar, Volumen >> 2". GL> Yes, but if I have ripped it and named it "Volume 2" but the GL> database has it listed as "Vol. 2" I won't get the album art. The most robust and exhaustive way to deal with might be: 1. If an exact match is found, use that. 2. Flag any album that ends with a variant of "volume", i.e. with a regular expression resembling: [Vv]ol\(.|ume\)? ?[0-9]+$ That would catch: Volume 2 Volume2 Vol 2 Vol. 2 Vol.2 Note: "volume X" must be the last part of the string to avoid false positive matches. 3. Substitute the original pattern for each of the possible variants and search the db for that (new) pattern. e.g. as in the example above, you originally had "Volume 2", you would try substituting "Vol 2", then "Vol. 2", etc. Likewise if you had originally had "Vol. 2" and it didn't match exactly, you would try "Volume 2". 4. Take the first hit that works. ("Vol. 2" in the above example). It's not pretty, but that's tagging for you. Ideally every CD would have a unique MusicBrainz ID and associated cover art. Alex From adam_zimmerman@sfu.ca Wed Jun 21 14:03: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 644563B0535 for ; Wed, 21 Jun 2006 14:03: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 27004-07 for ; Wed, 21 Jun 2006 14:03:43 -0400 (EDT) Received: from pobox.sfu.ca (pobox.sfu.ca [142.58.101.28]) by menubar.gnome.org (Postfix) with ESMTP id A40FF3B00EE for ; Wed, 21 Jun 2006 14:03:43 -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 k5LI3dEq019040 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NOT) for ; Wed, 21 Jun 2006 11:03:40 -0700 (PDT) From: Adam Zimmerman To: rhythmbox-devel@gnome.org In-Reply-To: <1150819435.17540.17.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> <1150766634.5180.22.camel@localhost.localdomain> <1150819435.17540.17.camel@midnight> Content-Type: multipart/mixed; boundary="=-DhT/CPZa8gskKxzJv76l" Date: Wed, 21 Jun 2006 11:03:34 -0700 Message-Id: <1150913014.28266.17.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.457 tagged_above=-999 required=2 tests=[AWL=0.065, BAYES_00=-2.599, TW_GT=0.077] X-Spam-Score: -2.457 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: Wed, 21 Jun 2006 18:03:48 -0000 --=-DhT/CPZa8gskKxzJv76l Content-Type: text/plain Content-Transfer-Encoding: 7bit Alright, status update. On Tue, 2006-20-06 at 09:03 -0700, Adam Zimmerman wrote: > 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. Done. John says he'll post a zip version sometime soon. > > > 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. OK, I've written the code that checks this and downloads the file if it has changed. It just does a basic string comparison on the last-modified header gotten from a HTTP HEAD request, which seems to work. I've added a call to gobject.timeout_add to set a timer, which also seems to work. The albums are stored in zip files, so track-transfer isn't really an option. Instead, I'm using gnomevfs.xfer_uri (maybe switched to async if it doesn't crash) to download the zip file and extract it (untested, not even hooked up to ui, almost certainly doesn't work yet, as it doesn't create the directories). > > 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. well, it seems the source does, which is good enough, since I can get the entry view, and then the selected entries from that. -- 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/ -- "Engineering without management is art." -- Jeff Johnson --=-DhT/CPZa8gskKxzJv76l 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, gnome from gettext import gettext as _ import xml.sax, xml.sax.handler import urllib, httplib import datetime import zipfile magnatune_partner_id = "zimmerman" user_dir = gnome.user_dir_get() magnatune_dir = user_dir + "rhythmbox/magnatune/" magnatune_dir_uri = gnomevfs.URI(magnatune_dir) magnatune_song_info_uri = gnomevfs.URI("http://magnatune.com/info/song_info.xml") local_song_info_uri = gnomevfs.URI(magnatune_dir + "song_info.xml") lc_uri = gnomevfs.URI(magnatune_dir + "info_last_changed") ################################################ # 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 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'])) # entry.data['sku'] = self._track['albumsku'] 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']) # TODO: 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): _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) ev = self.source.get_entry_view() ev.connect_object("show_popup", self.show_popup_cb, self.source, 0) 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)) check_info() gobject.timeout_add(60 * 60 * 1000, self.check_info_updates) # every hour. ###gnomevfs.async.open(user_dir + "rhythmbox/magnatune/song_info.xml", self.open_callback) self.parser.parse(user_dir + "rhythmbox/magnatune/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 show_popup_cb(self, source, some_int, some_bool): # FIXME: find out what the int and bool are/do entry_view = source.get_entry_view() client = gconf.client_get_default() cc = {} cc['number'] = client.get_string("/apps/rhythmbox/plugins/magnatune/cc") cc['year'] = client.get_string("/apps/rhythmbox/plugins/magnatune/yy") cc['month'] = client.get_string("/apps/rhythmbox/plugins/magnatune/mm") name = client.get_string("/apps/rhythmbox/plugins/magnatune/name") email = client.get_string("/apps/rhythmbox/plugins/magnatune/email") #sku = entry_view.get_selected_entries()[0].data['sku'] # just use the sku for the first track selected. #attach action: buy_track(sku, amount, cc, name, email, format) #source.show_popup("/MagnatuneSourcePopup") def check_info_updates(self): if check_info(): # FIXME: is there a better way of doing this? self.db.entry_delete_by_type(self.entry_type) self.db.commit() self.parser.parse(user_dir + "rhythmbox/magnatune/song_info.xml") return True # keep running the method every hour class MagnatuneSource(rb.BrowserSource): def __init__(self): rb.Source.__init__(self) gobject.type_register(MagnatuneSource) ################################################ # Methods for downloading the song info # ################################################ def download_info(): gnomevfs.xfer_uri(magnatune_song_info_uri, local_song_info_uri, xfer_options=gnomevfs.XFER_DEFAULT, error_mode=gnomevfs.XFER_ERROR_MODE_ABORT, overwrite_mode=gnomevfs.XFER_OVERWRITE_MODE_REPLACE, progress_callback=progress_info_cb, data=0x1234) def progress_info_cb(info, data): assert data == 0x1234 try: print "%s: %f %%\r" % (info.target_name, info.bytes_copied/float(info.bytes_total)*100), except Exception, ex: # Sometimes the method throws an exception, for no apparent reason pass return True def check_info(): # returns whether or not info has changed if not gnomevfs.exists(magnatune_dir_uri): gnomevfs.make_directory(magnatune_dir_uri, 0755) if not gnomevfs.exists(lc_uri): t = gnomevfs.create(lc_uri, open_mode=gnomevfs.OPEN_WRITE) t.write("never") # there needs to be something in the file, otherwise it throws an exception when read from t.close() conn = httplib.HTTPConnection("magnatune.com") conn.request("HEAD", "/info/song_info.xml") resp = conn.getresponse() headers = resp.getheaders() resp.close() conn.close() for header in headers: if header[0] == "last-modified": modified_header = header[1] lc_file = gnomevfs.open(lc_uri) last_changed = lc_file.read(100) # file should be less than 100 chars lc_file.close() if not last_changed.strip() == modified_header.strip(): download_info() lc_file = gnomevfs.open(lc_uri, open_mode=gnomevfs.OPEN_WRITE) lc_file.write(modified_header) lc_file.close() return True return False ################################################ # Purchasing code. # ################################################ class BuyAlbumHandler(xml.sax.handler.ContentHandler): # Class to download the track, etc. format_map = { 'ogg' : 'URL_OGGZIP', 'flac' : 'URL_FLACZIP', 'wav' : 'URL_WAVZIP', 'mp3-cbr' : 'URL_128KMP3ZIP', 'mp3-vbr' : 'URL_VBRZIP' } def __init__(self, format): xml.sax.handler.ContentHandler.__init__(self) self._format_tag = format_map[format] # format of audio to download def startElement(self, name, attrs): self._text = "" def endElement(self, name): if name == "ERROR": # Something went wrong. Display error message to user. raise MagnatuneError(self._text) elif name == "DL_USERNAME": self.username = self._text elif name == "DL_PASSWORD": self.password = self._text elif name == self._format_tag: self.url = self._text def characters(self, content): self._text = self._text + content def buy_track(sku, amount, cc, name, email, format): # 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': sku, 'amount': amount, 'cc': cc['number'], 'yy': cc['year'], 'mm': cc['month'], 'name': name, 'email':email }) buy_album_handler = BuyAlbumHandler(format) # so we can get the url and auth info xml.sax.parse(url, buy_album_handler) audio_dl_uri = gnomevfs.URI(buy_album_handler.url.replace(" ", "%20")) # some parts of the returned url are escaped, some aren't. TODO: Properly quote just the filename part of the path audio_dl_uri.user_name = buy_album_handler.username audio_dl_uri.password = buy_album_handler.password # Download the album and unzip it into the library library_location = client.get_list("/apps/rhythmbox/library_locations")[0] # Just use the first library location to_file = gnomevfs.URI(library_location + "/" + audio_dl_uri.short_name) out_file = to_file.__str__() gnomevfs.xfer_uri(audio_dl_uri, to_file, xfer_options=gnomevfs.XFER_DEFAULT, error_mode=gnomevfs.XFER_ERROR_MODE_ABORT, overwrite_mode=gnomevfs.XFER_OVERWRITE_MODE_ABORT, progress_callback=progress_info_cb, data=0x1234) # this will take a LONG time. album = zipfile.ZipFile(out_file) for track in album.namelist(): out = gnomevfs.open(gnomevfs.URI(library_location + "/" + track), open_mode=gnomevfs.OPEN_MODE_WRITE) # FIXME: directories will need to be created first out.write(album.read(track)) out.close() album.close() gnomevfs.unlink(to_file) class MagnatuneError(Exception): pass ################################################ # Magnatune Logo. # ################################################ # (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 "................................", "................................", "................................", "................................", "................................", "................................", "............++@@@@++............", "..........+@@@@@@@@@@+..........", ".........+@@@+....+@@@+.........", "........+@@+...++...+@@+........", ".......+@@+....@@....+@@+.......", ".......@@+.....@@.....+@@.......", "......+@@......@@......@@+......", "......+@+......@@......+@+......", "......@@...@@..@@..@@...@@......", "......@@...@@+.@@.+@@...@@......", "......@@...@@+.@@.+@@...@@......", "......@@...@@+.@@.+@@...@@......", "......+@+..@@+.@@.+@@..+@+......", "......+@@..@@+.@@.+@@..@@+......", ".......@@+.@@+.@@.+@@.+@@.......", ".......+@@+.+..+...+.+@@+.......", "........+@@+........+@@+........", ".........+@@@+....+@@@+.........", "..........+@@@@@@@@@@+..........", "............++@@@@++............", "................................", "................................", "................................", "................................", "................................", "................................" ] ### ### Async callbacks ### # 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) ### ### preferences, ugly and gross. Someone else who knows what they're doing should probably fix this. Should probably be glade too. ### # 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) --=-DhT/CPZa8gskKxzJv76l-- From brent@heyes.co.uk Wed Jun 21 15:19: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 9F12F3B041B for ; Wed, 21 Jun 2006 15:19: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 32127-03 for ; Wed, 21 Jun 2006 15:19:34 -0400 (EDT) Received: from ns.thishost.net (ns.thishost.net [217.199.169.69]) by menubar.gnome.org (Postfix) with ESMTP id 1DC313B035A for ; Wed, 21 Jun 2006 15:19:33 -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 k5LJKLs29773 for ; Wed, 21 Jun 2006 20:20:21 +0100 Message-ID: <44999BBF.1070208@heyes.co.uk> Date: Wed, 21 Jun 2006 20:19:27 +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.597 tagged_above=-999 required=2 tests=[AWL=-0.857, BAYES_20=-0.74] X-Spam-Score: -1.597 X-Spam-Level: Subject: [Rhythmbox-devel] Change Rhythmbox gstreamer 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, 21 Jun 2006 19:19:35 -0000 Hey guys, Is there any way to customise the gstreamer pipeline for Rhythmbox only without affecting the global setting? Thanks, - Brent From brent@heyes.co.uk Thu Jun 22 03:52: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 A1D093B02DB for ; Thu, 22 Jun 2006 03:52: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 06020-07 for ; Thu, 22 Jun 2006 03:52:36 -0400 (EDT) Received: from ns.thishost.net (ns.thishost.net [217.199.169.69]) by menubar.gnome.org (Postfix) with ESMTP id E9EDF3B0563 for ; Thu, 22 Jun 2006 03:52:35 -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 k5M7rEs30277 for ; Thu, 22 Jun 2006 08:53:24 +0100 Message-ID: <449A4C33.6090501@heyes.co.uk> Date: Thu, 22 Jun 2006 08:52:19 +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=-2.512 tagged_above=-999 required=2 tests=[AWL=0.087, BAYES_00=-2.599] X-Spam-Score: -2.512 X-Spam-Level: Subject: [Rhythmbox-devel] Cannot import M4A with chapters 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, 22 Jun 2006 07:52:38 -0000 Hey guys, Is there anyway to get Rhythmbox to import and play m4a files with chapters? Thanks, -Brent From doclivingston@gmail.com Thu Jun 22 04:24: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 A656E3B02D2 for ; Thu, 22 Jun 2006 04:24: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 08348-04 for ; Thu, 22 Jun 2006 04:24:21 -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 AE3673B01E2 for ; Thu, 22 Jun 2006 04:24:21 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id s49so245017pyc for ; Thu, 22 Jun 2006 01:24:21 -0700 (PDT) Received: by 10.35.9.15 with SMTP id m15mr818663pyi; Thu, 22 Jun 2006 01:24:21 -0700 (PDT) Received: from alyrion.local ( [144.134.101.144]) by mx.gmail.com with ESMTP id s72sm672424pyc.2006.06.22.01.24.19; Thu, 22 Jun 2006 01:24:20 -0700 (PDT) From: "James \"Doc\" Livingston" To: rhythmbox-devel@gnome.org In-Reply-To: <449A4C33.6090501@heyes.co.uk> References: <449A4C33.6090501@heyes.co.uk> Content-Type: text/plain Date: Thu, 22 Jun 2006 18:24:15 +1000 Message-Id: <1150964655.5178.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=-1.74 tagged_above=-999 required=2 tests=[AWL=-0.698, BAYES_00=-2.599, RCVD_IN_BL_SPAMCOP_NET=1.558, SPF_PASS=-0.001] X-Spam-Score: -1.74 X-Spam-Level: Subject: Re: [Rhythmbox-devel] Cannot import M4A with chapters 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: Thu, 22 Jun 2006 08:24:22 -0000 On Thu, 2006-06-22 at 08:52 +0100, Brent Heyes wrote: > Is there anyway to get Rhythmbox to import and play m4a files with chapters? Rhythmbox should be able to import them if GStreamer can read them, although without the actual chapter support. Can you try running the following from a terminal and seeing if it works? (using the actual path to your file) gst-launch playbin uri=file:///path/to/my/file/m4a Cheers, James "Doc" Livingston -- "can't go mucking with a `void *'" -- MPW C error message From doclivingston@gmail.com Thu Jun 22 05:38: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 62C723B00ED for ; Thu, 22 Jun 2006 05:38: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 13368-01 for ; Thu, 22 Jun 2006 05:38:09 -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 B0C4D3B021B for ; Thu, 22 Jun 2006 05:38:08 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id 39so267310pyu for ; Thu, 22 Jun 2006 02:38:08 -0700 (PDT) Received: by 10.35.20.14 with SMTP id x14mr884844pyi; Thu, 22 Jun 2006 02:38:07 -0700 (PDT) Received: from alyrion.local ( [144.139.19.209]) by mx.gmail.com with ESMTP id i72sm776509pye.2006.06.22.02.38.04; Thu, 22 Jun 2006 02:38:07 -0700 (PDT) From: "James \"Doc\" Livingston" To: Rhythmbox-devel list In-Reply-To: <449A5F41.7000803@heyes.co.uk> References: <449A4C33.6090501@heyes.co.uk> <1150964655.5178.6.camel@localhost.localdomain> <449A5F41.7000803@heyes.co.uk> Content-Type: text/plain Date: Thu, 22 Jun 2006 19:37:58 +1000 Message-Id: <1150969078.5186.5.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.315 tagged_above=-999 required=2 tests=[AWL=0.285, BAYES_00=-2.599, SPF_PASS=-0.001] X-Spam-Score: -2.315 X-Spam-Level: Subject: Re: [Rhythmbox-devel] Cannot import M4A with chapters 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: Thu, 22 Jun 2006 09:38:10 -0000 On Thu, 2006-06-22 at 10:13 +0100, Brent Heyes wrote: > (gst-launch-0.10:21703): GStreamer-CRITICAL **: gst_uri_get_protocol: > assertion `gst_uri_is_valid (uri)' failed > ERROR: Pipeline doesn't want to pause. > ERROR: from element /playbin0: Invalid URI "/home/brent/Test.m4a". > Additional debug info: > gstplaybasebin.c(1480): setup_source (): /playbin0 > Setting pipeline to NULL ... > FREEING pipeline ... Sorry, I should have mentioned that the "file://" at the start was important, "/home/brent/..." isn't a URI (it's a path) > BTW... /home/brent/Test.m4a is a valid M4A file with chapters. > > I can play the file in totem-gstreamer. If it works in totem-gstreamer, then it's not a gstreamer problem. Could you run "GST_DEBUG=*:4 GST_DEBUG_NO_COLOR=1 rhythmbox -d >rb.log 2>&1; bzip2 rb.log" and then file a bug and attach the file "rb.log.bz2" that it created? Cheers, James "Doc" Livingston -- Networks are like sewers ... My job is to make sure your data goes away when you flush, and to stop the rats climbing into your toilet through the pipes. (Tanuki, describing network administration.) From gawain.lynch@bigpond.com Thu Jun 22 08:51:01 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 A7F8D3B0606 for ; Thu, 22 Jun 2006 08:51:01 -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 27073-09 for ; Thu, 22 Jun 2006 08:50:58 -0400 (EDT) Received: from mail-ihug.icp-qv1-irony4.iinet.net.au (ihug-mail.icp-qv1-irony4.iinet.net.au [203.59.1.198]) by menubar.gnome.org (Postfix) with ESMTP id 581833B025B for ; Thu, 22 Jun 2006 08:50:57 -0400 (EDT) Received: from 203-214-122-19.dyn.iinet.net.au (HELO smtp.felicity-group.com) ([203.214.122.19]) by mail-ihug.icp-qv1-irony4.iinet.net.au with ESMTP; 22 Jun 2006 20:50:54 +0800 X-BrightmailFiltered: true X-Brightmail-Tracker: AAAAAA== X-IronPort-AV: i="4.06,166,1149436800"; d="scan'208"; a="786608449:sNHT33720348" Received: from [203.33.109.249] (unknown [203.33.109.249]) by smtp.felicity-group.com (Postfix) with ESMTP id C779024059; Thu, 22 Jun 2006 22:54:37 +1000 (EST) From: Gawain Lynch To: Alex Lancaster In-Reply-To: References: <1150735119.6206.2.camel@ubuntu> <1150764803.5180.14.camel@localhost.localdomain> <1150853695.21424.3.camel@legolas.felicity.net.au> <4498E8F9.1070308@gmx.de> <1150884151.6040.2.camel@legolas.felicity.net.au> Content-Type: text/plain; charset=utf-8 Date: Thu, 22 Jun 2006 22:50:22 +1000 Message-Id: <1150980623.2998.0.camel@legolas.felicity.net.au> Mime-Version: 1.0 X-Mailer: Evolution 2.6.2 (2.6.2-1.fc5.5) Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=0.197 tagged_above=-999 required=2 tests=[AWL=-0.454, BAYES_00=-2.599, FORGED_RCVD_HELO=0.135, RCVD_IN_SORBS_DUL=2.046, SPF_NEUTRAL=1.069] X-Spam-Score: 0.197 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: Thu, 22 Jun 2006 12:51:01 -0000 On Wed, 2006-06-21 at 04:34 -0700, Alex Lancaster wrote: > >>>>> "GL" == Gawain Lynch writes: > [...] > > >> But aren't "Volumes" separate Albums, too? Like for "Café del Mar, > >> Volumen 1" there's a different artwork than "Café del Mar, Volumen > >> 2". > > GL> Yes, but if I have ripped it and named it "Volume 2" but the > GL> database has it listed as "Vol. 2" I won't get the album art. > > The most robust and exhaustive way to deal with might be: > > 1. If an exact match is found, use that. > > 2. Flag any album that ends with a variant of "volume", i.e. with a > regular expression resembling: > > [Vv]ol\(.|ume\)? ?[0-9]+$ > > That would catch: > > Volume 2 > Volume2 > Vol 2 > Vol. 2 > Vol.2 > > Note: "volume X" must be the last part of the string to avoid false > positive matches. > > 3. Substitute the original pattern for each of the possible variants > and search the db for that (new) pattern. > > e.g. as in the example above, you originally had "Volume 2", you would > try substituting "Vol 2", then "Vol. 2", etc. Likewise if you had > originally had "Vol. 2" and it didn't match exactly, you would try > "Volume 2". > > 4. Take the first hit that works. ("Vol. 2" in the above example). > > It's not pretty, but that's tagging for you. Ideally every CD would > have a unique MusicBrainz ID and associated cover art. > > Alex That would work for me :-) From adam_zimmerman@sfu.ca Fri Jun 23 19:16: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 83F553B0524 for ; Fri, 23 Jun 2006 19:16: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 10791-04 for ; Fri, 23 Jun 2006 19:16:23 -0400 (EDT) Received: from pobox.sfu.ca (pobox.sfu.ca [142.58.101.28]) by menubar.gnome.org (Postfix) with ESMTP id 053E33B0971 for ; Fri, 23 Jun 2006 19:16:22 -0400 (EDT) Received: from [192.168.1.106] (d154-20-165-140.bchsia.telus.net [154.20.165.140]) (authenticated bits=0) by pobox.sfu.ca (8.13.6/8.13.5/SFU-6.0G) with ESMTP id k5NNGJGN017682 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NOT) for ; Fri, 23 Jun 2006 16:16:20 -0700 (PDT) From: Adam Zimmerman To: rhythmbox-devel@gnome.org In-Reply-To: <1150913014.28266.17.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> <1150766634.5180.22.camel@localhost.localdomain> <1150819435.17540.17.camel@midnight> <1150913014.28266.17.camel@midnight> Content-Type: multipart/mixed; boundary="=-nh4eusBO2ao1XrEAH8+9" Date: Fri, 23 Jun 2006 16:16:18 -0700 Message-Id: <1151104578.24807.39.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.461 tagged_above=-999 required=2 tests=[AWL=0.061, BAYES_00=-2.599, TW_GT=0.077] X-Spam-Score: -2.461 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, 23 Jun 2006 23:16:26 -0000 --=-nh4eusBO2ao1XrEAH8+9 Content-Type: text/plain Content-Transfer-Encoding: 7bit Sweet! Why didn't I come across this[1] blog post sooner? The reading code is now fully non-blocking thanks to gobject.add_idle, except for check_info() which doesn't seem to take very long (using gnomevfs.get_file_info instead of httplib helped). I'm not sure whether I want to keep it so that the source is added to as song_info.xml is being downloaded. It seems like it takes a long time to add all the tracks (though it may just be my perception as to whether it's slower than adding after downloading), but on the other hand, the source doesn't sit empty for 2 minutes. The amounts read in each of the idle methods (64KB while downloading, 128KB when loading from disk) can probably be tweaked as well, to give the best balance between a fully responsive UI and being efficient when doing I/O. I'm not quite certain how to associate an action with a popup menu. I can see that I need to add some glade bits to rhythmbox-ui.xml and then call source.show_popup("mygladestuff") in the show_popup callback, right? So how do I associate a method call with that popup menu item? And how do I pass arguments to it? Is it like gobject.add_idle, where I just add arguments after the method? Thanks so much. -Adam PS: does anyone know what the int and bool passed to the show_popup callback are? [1] http://gnomerocksmyworld.blogspot.com/2006/05/getting-off-my-lazy-arse.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/ -- In Pocatello, Idaho, a law passed in 1912 provided that "The carrying of concealed weapons is forbidden, unless same are exhibited to public view." --=-nh4eusBO2ao1XrEAH8+9 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, gnome from gettext import gettext as _ import xml.sax, xml.sax.handler import urllib import datetime import zipfile magnatune_partner_id = "zimmerman" user_dir = gnome.user_dir_get() magnatune_dir = user_dir + "rhythmbox/magnatune/" magnatune_dir_uri = gnomevfs.URI(magnatune_dir) magnatune_song_info_uri = gnomevfs.URI("http://magnatune.com/info/song_info.xml") local_song_info_uri = gnomevfs.URI(magnatune_dir + "song_info.xml") lc_uri = gnomevfs.URI(magnatune_dir + "info_last_changed") ################################################ # 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 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'])) # entry.data['sku'] = self._track['albumsku'] 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']) # TODO: 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): info_file = None remote_info_file = 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) ev = self.source.get_entry_view() ev.connect_object("show_popup", self.show_popup_cb, self.source, 0) 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)) if check_info(): gobject.idle_add(self.idle_download_info) else: gobject.idle_add(self.idle_load_info) gobject.timeout_add(6 * 60 * 60 * 1000, self.check_info_updates) # every 6 hours. 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 show_popup_cb(self, source, some_int, some_bool): # FIXME: find out what the int and bool are entry_view = source.get_entry_view() client = gconf.client_get_default() cc = {} cc['number'] = client.get_string("/apps/rhythmbox/plugins/magnatune/cc") cc['year'] = client.get_string("/apps/rhythmbox/plugins/magnatune/yy") cc['month'] = client.get_string("/apps/rhythmbox/plugins/magnatune/mm") name = client.get_string("/apps/rhythmbox/plugins/magnatune/name") email = client.get_string("/apps/rhythmbox/plugins/magnatune/email") #sku = entry_view.get_selected_entries()[0].data['sku'] # just use the sku for the first track selected. #attach action: buy_track(sku, amount, cc, name, email, format) #source.show_popup("/MagnatuneSourcePopup") def check_info_updates(self): # TODO: if possible, make it so that the updated file is downloaded first, then the entries are switched if check_info(): self.db.entry_delete_by_type(self.entry_type) self.db.commit() gobject.idle_add(self.idle_download_info) return True def idle_load_info(self): if self.info_file == None: self.info_file = gnomevfs.open(local_song_info_uri) try: data = self.info_file.read(128 * 1024) self.parser.feed(data) return True except gnomevfs.EOFError: self.info_file.close() self.info_file = None return False def idle_download_info(self): if self.info_file == None: self.remote_info_file = gnomevfs.open(magnatune_song_info_uri) self.info_file = gnomevfs.create(local_song_info_uri, open_mode=gnomevfs.OPEN_WRITE) try: data = self.remote_info_file.read(64 * 1024) self.parser.feed(data) self.info_file.write(data) return True except gnomevfs.EOFError: self.remote_info_file.close() self.info_file.close() self.remote_info_file = None self.info_file = None return False class MagnatuneSource(rb.BrowserSource): def __init__(self): rb.Source.__init__(self) gobject.type_register(MagnatuneSource) ################################################ # Methods for downloading the song info # ################################################ def check_info(): # returns whether or not info has changed if not gnomevfs.exists(magnatune_dir_uri): gnomevfs.make_directory(magnatune_dir_uri, 0755) if not gnomevfs.exists(lc_uri): t = gnomevfs.create(lc_uri, open_mode=gnomevfs.OPEN_WRITE) t.write("never") # there needs to be something in the file, otherwise it throws an exception when read from t.close() modified = str(gnomevfs.get_file_info(magnatune_song_info_uri).mtime) lc_file = gnomevfs.open(lc_uri) last_changed = lc_file.read(100) # file should be less than 100 chars lc_file.close() if not last_changed.strip() == modified.strip(): lc_file = gnomevfs.open(lc_uri, open_mode=gnomevfs.OPEN_WRITE) lc_file.write(modified) lc_file.close() return True return False ################################################ # Purchasing code. # ################################################ class BuyAlbumHandler(xml.sax.handler.ContentHandler): # Class to download the track, etc. format_map = { 'ogg' : 'URL_OGGZIP', 'flac' : 'URL_FLACZIP', 'wav' : 'URL_WAVZIP', 'mp3-cbr' : 'URL_128KMP3ZIP', 'mp3-vbr' : 'URL_VBRZIP' } def __init__(self, format): xml.sax.handler.ContentHandler.__init__(self) self._format_tag = format_map[format] # format of audio to download def startElement(self, name, attrs): self._text = "" def endElement(self, name): if name == "ERROR": # Something went wrong. Display error message to user. raise MagnatuneError(self._text) elif name == "DL_USERNAME": self.username = self._text elif name == "DL_PASSWORD": self.password = self._text elif name == self._format_tag: self.url = self._text def characters(self, content): self._text = self._text + content def buy_track(sku, amount, cc, name, email, format): # 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': sku, 'amount': amount, 'cc': cc['number'], 'yy': cc['year'], 'mm': cc['month'], 'name': name, 'email':email }) buy_album_handler = BuyAlbumHandler(format) # so we can get the url and auth info xml.sax.parse(url, buy_album_handler) audio_dl_uri = gnomevfs.URI(buy_album_handler.url.replace(" ", "%20")) # some parts of the returned url are escaped, some aren't. TODO: Properly quote just the filename part of the path audio_dl_uri.user_name = buy_album_handler.username audio_dl_uri.password = buy_album_handler.password # Download the album and unzip it into the library library_location = client.get_list("/apps/rhythmbox/library_locations")[0] # Just use the first library location to_file = gnomevfs.URI(library_location + "/" + audio_dl_uri.short_name) out_file = to_file.__str__() gnomevfs.xfer_uri(audio_dl_uri, to_file, xfer_options=gnomevfs.XFER_DEFAULT, error_mode=gnomevfs.XFER_ERROR_MODE_ABORT, overwrite_mode=gnomevfs.XFER_OVERWRITE_MODE_ABORT, progress_callback=progress_info_cb, data=0x1234) # this will take a LONG time. album = zipfile.ZipFile(out_file) for track in album.namelist(): out = gnomevfs.open(gnomevfs.URI(library_location + "/" + track), open_mode=gnomevfs.OPEN_MODE_WRITE) # FIXME: directories will need to be created first out.write(album.read(track)) out.close() album.close() gnomevfs.unlink(to_file) class MagnatuneError(Exception): pass def progress_info_cb(info, data): assert data == 0x1234 try: print "%s: %f %%\r" % (info.target_name, info.bytes_copied/float(info.bytes_total)*100), except Exception, ex: # Sometimes the method throws an exception, for no apparent reason pass return True ################################################ # Magnatune Logo. # ################################################ # (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. Should probably be glade too. ### # 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) --=-nh4eusBO2ao1XrEAH8+9-- From alexl@users.sourceforge.net Fri Jun 23 19:50: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 F24EB3B0181 for ; Fri, 23 Jun 2006 19:50:01 -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 12182-10 for ; Fri, 23 Jun 2006 19:49:59 -0400 (EDT) Received: from allele2.biol.berkeley.edu (allele2.Biol.Berkeley.EDU [128.32.118.82]) by menubar.gnome.org (Postfix) with ESMTP id C70A03B011B for ; Fri, 23 Jun 2006 19:49:58 -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 k5NNnwif018504 for ; Fri, 23 Jun 2006 16:49:58 -0700 Received: (from alex@localhost) by allele2.biol.berkeley.edu (8.13.6/8.13.4/Submit) id k5NNnvvJ018503; Fri, 23 Jun 2006 16:49:57 -0700 X-Authentication-Warning: allele2.biol.berkeley.edu: alex set sender to alexl@users.sourceforge.net using -f 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> <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> <1150819435.17540.17.camel@midnight> <1150913014.28266.17.camel@midnight> <1151104578.24807.39.camel@midnight> From: Alex Lancaster Organization: Sourceforge Date: Fri, 23 Jun 2006 16:49:57 -0700 In-Reply-To: <1151104578.24807.39.camel@midnight> (Adam Zimmerman's message of "Fri, 23 Jun 2006 16:16:18 -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.589 tagged_above=-999 required=2 tests=[AWL=0.010, BAYES_00=-2.599] X-Spam-Score: -2.589 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, 23 Jun 2006 23:50:02 -0000 >>>>> "AZ" == Adam Zimmerman writes: AZ> Sweet! Why didn't I come across this[1] blog post sooner? The AZ> reading code is now fully non-blocking thanks to gobject.add_idle, AZ> except for check_info() which doesn't seem to take very long AZ> (using gnomevfs.get_file_info instead of httplib helped). It's time to transfer detailed technical discussion on this plugin to Bugzilla, IMHO. Will save bandwidth on sending multiple versions of the file to the mailing list, can be easily tracked and provide a centralised point of access for all the info. I've opened a bug and transferred the latest Python file there: http://bugzilla.gnome.org/345783 Thanks, Alex From doclivingston@gmail.com Sat Jun 24 03:19:41 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 C1E943B01AD for ; Sat, 24 Jun 2006 03:19:41 -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 29560-10 for ; Sat, 24 Jun 2006 03:19:40 -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 7053F3B0160 for ; Sat, 24 Jun 2006 03:19:40 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id f28so878776pyf for ; Sat, 24 Jun 2006 00:19:39 -0700 (PDT) Received: by 10.35.20.14 with SMTP id x14mr3236792pyi; Sat, 24 Jun 2006 00:19:39 -0700 (PDT) Received: from alyrion.local ( [144.134.101.25]) by mx.gmail.com with ESMTP id h41sm934606pyh.2006.06.24.00.19.37; Sat, 24 Jun 2006 00:19:39 -0700 (PDT) From: "James \"Doc\" Livingston" To: rhythmbox-devel@gnome.org In-Reply-To: <1151104578.24807.39.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> <1150766634.5180.22.camel@localhost.localdomain> <1150819435.17540.17.camel@midnight> <1150913014.28266.17.camel@midnight> <1151104578.24807.39.camel@midnight> Content-Type: text/plain Date: Sat, 24 Jun 2006 17:19:33 +1000 Message-Id: <1151133573.5031.46.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.404 tagged_above=-999 required=2 tests=[AWL=-0.004, BAYES_00=-2.599, DNS_FROM_RFC_ABUSE=0.2, SPF_PASS=-0.001] X-Spam-Score: -2.404 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: Sat, 24 Jun 2006 07:19:42 -0000 On Fri, 2006-06-23 at 16:16 -0700, Adam Zimmerman wrote: > I'm not sure whether I want to keep it so that the source is added to as > song_info.xml is being downloaded. It seems like it takes a long time to > add all the tracks (though it may just be my perception as to whether > it's slower than adding after downloading), but on the other hand, the > source doesn't sit empty for 2 minutes. One option would be to hide entry entry view while this is happening, and have some "downloading music store info, please wait screen instead". Something like that may be useful anyway, if we wanted/needed to show some info about what MagnaTune is, tell people to be careful with their CC details, etc. > I'm not quite certain how to associate an action with a popup menu. I > can see that I need to add some glade bits to rhythmbox-ui.xml and then > call source.show_popup("mygladestuff") in the show_popup callback, > right? So how do I associate a method call with that popup menu item? > And how do I pass arguments to it? Is it like gobject.add_idle, where I > just add arguments after the method? Take a look at plugins/pythonconsole/pythonconsole.py, it adds a menu item to show the console. The only real difference is the UI data, e.g.: Then add an action "MagnaTuneDownload". > PS: does anyone know what the int and bool passed to the show_popup > callback are? With the current code: ev.connect_object("show_popup", self.show_popup_cb, self.source, 0) The int is the number 0 that you're passing, and the boolean is: true = right mouse button clicked on an entry, or menu button pressed false = rmb clicked on "empty space" in the entry view Usually you'd treat the case of it being false by showing the same menu as if you'd right-clicked on the source in the source list. I've got a patch for python entry-data working, and it's on bug 345795[0]. With that applied, you should be able to do "entry.data['sku'] = whatever" for any entry whose entry-type was registered from Python. The only issue I've noticed is overhead - it created a dictionary for every entry that you have accessed the "data" attribute on. For the number of tracks currently in MagnaTune, that would mean just under 1Mb of overhead. Another option would be to create you own diction for SKUs, and then do "sku_dict[entry] = whatever". That would only need one dictionary, instead of 6000. [0] http://bugzilla.gnome.org/show_bug.cgi?id=345795 Cheers, James "Doc" Livingston -- If USENET is anarchy, IRC is a paranoid schizophrenic after 6 days on speed. -- Chris "Saundo" Saunderson in asr. From doclivingston@gmail.com Sat Jun 24 08:26: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 0CD3A3B00A8 for ; Sat, 24 Jun 2006 08:26: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 13145-02 for ; Sat, 24 Jun 2006 08:26:37 -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 DC5F23B000F for ; Sat, 24 Jun 2006 08:26:36 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id f28so920430pyf for ; Sat, 24 Jun 2006 05:26:36 -0700 (PDT) Received: by 10.35.63.2 with SMTP id q2mr3473556pyk; Sat, 24 Jun 2006 05:26:36 -0700 (PDT) Received: from alyrion.local ( [144.134.102.10]) by mx.gmail.com with ESMTP id 55sm1466207pyf.2006.06.24.05.26.32; Sat, 24 Jun 2006 05:26:36 -0700 (PDT) From: "James \"Doc\" Livingston" To: rhythmbox-devel@gnome.org In-Reply-To: <1151104578.24807.39.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> <1150766634.5180.22.camel@localhost.localdomain> <1150819435.17540.17.camel@midnight> <1150913014.28266.17.camel@midnight> <1151104578.24807.39.camel@midnight> Content-Type: text/plain Date: Sat, 24 Jun 2006 22:26:29 +1000 Message-Id: <1151151989.5031.60.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.406 tagged_above=-999 required=2 tests=[AWL=-0.006, BAYES_00=-2.599, DNS_FROM_RFC_ABUSE=0.2, SPF_PASS=-0.001] X-Spam-Score: -2.406 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: Sat, 24 Jun 2006 12:26:38 -0000 On Fri, 2006-06-23 at 16:16 -0700, Adam Zimmerman wrote: > I'm not sure whether I want to keep it so that the source is added to as > song_info.xml is being downloaded. It seems like it takes a long time to > add all the tracks (though it may just be my perception as to whether > it's slower than adding after downloading), but on the other hand, the > source doesn't sit empty for 2 minutes. One idea would be to have the entry view hidden until it has been downloaded at least once, and have some kind of "MagnaTune intro" displayed instead. Displaying an empty track list probably isn't useful, so maybe we could have something displayed instead which said what MagnaTune was, a download progress indicator, and a "continue to track list" button (which would only be enabled once the download had finished). > I'm not quite certain how to associate an action with a popup menu. I > can see that I need to add some glade bits to rhythmbox-ui.xml and then > call source.show_popup("mygladestuff") in the show_popup callback, > right? So how do I associate a method call with that popup menu item? > And how do I pass arguments to it? Is it like gobject.add_idle, where I > just add arguments after the method? For Python plugins, it's easier to embed the GtkUIManager XML directly into the .py file, see plugins/pythonconsole/pythonconsole.py for an example of how to do it. You'd probably want something like the following (which I've based on BrowserSourceViewPopup) The "MagnatunePurchase" action would get the list of selected tracks from the entry view, and then do the purchasing stuff. > PS: does anyone know what the int and bool passed to the show_popup > callback are? The int is the 0 that you passed to connect_object(), and the boolean is "over_entry" which indicates whether the context menu is for an entry, or a click in "empty space". Basically if it's false you pop up the same menu you would for the impl_show_popup virtual function, and if it's true you pop up the "track context menu". Cheers, James "Doc" Livingston -- In God we Trust. All others must submit an X.509 certificate. From shrift@gmail.com Mon Jun 26 15:57: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 99CDB3B02DF for ; Mon, 26 Jun 2006 15:57: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 11745-03 for ; Mon, 26 Jun 2006 15:57:10 -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 51F473B0227 for ; Mon, 26 Jun 2006 15:57:10 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id c30so1645621pyc for ; Mon, 26 Jun 2006 12:57:09 -0700 (PDT) Received: by 10.35.103.12 with SMTP id f12mr6348374pym; Mon, 26 Jun 2006 12:57:08 -0700 (PDT) Received: from shrift.evanston.gov ( [66.158.65.137]) by mx.gmail.com with ESMTP id y21sm942258pyd.2006.06.26.12.57.06; Mon, 26 Jun 2006 12:57:07 -0700 (PDT) From: Brendan Martens To: rhythmbox-devel@gnome.org In-Reply-To: References: Content-Type: text/plain Date: Mon, 26 Jun 2006 15:00:18 -0500 Message-Id: <1151352018.5823.19.camel@shrift.local.cityofevanston.org> 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.862 tagged_above=-999 required=2 tests=[AWL=0.538, BAYES_00=-2.599, DNS_FROM_RFC_ABUSE=0.2, SPF_PASS=-0.001] X-Spam-Score: -1.862 X-Spam-Level: Subject: [Rhythmbox-devel] using iPod as a normal DAP 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, 26 Jun 2006 19:57:11 -0000 RB supports normal daps, correct? I would like it to treat my iPod, that I have upgraded with Rockbox, as a normal DAP. Is this possible? From jonathan@kaolin.wh9.net Mon Jun 26 18:42: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 D72203B028E for ; Mon, 26 Jun 2006 18:42: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 20702-05 for ; Mon, 26 Jun 2006 18:42:19 -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 3C6CF3B01DC for ; Mon, 26 Jun 2006 18:42:18 -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 k5QMgFLO049650 for ; Tue, 27 Jun 2006 08:12:16 +0930 (CST) (envelope-from jonathan@kaolin.wh9.net) Received: from jonathan by stapler.kaolin.wh9.net with local (Exim 4.50) id 1FuzmZ-0002OI-Go for rhythmbox-devel@gnome.org; Tue, 27 Jun 2006 08:42:15 +1000 Date: Tue, 27 Jun 2006 08:42:15 +1000 To: rhythmbox-devel@gnome.org Message-ID: <20060626224215.GA9162@kaolin.wh9.net> Mail-Followup-To: rhythmbox-devel@gnome.org References: <1151352018.5823.19.camel@shrift.local.cityofevanston.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1151352018.5823.19.camel@shrift.local.cityofevanston.org> 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] using iPod as a normal DAP 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, 26 Jun 2006 22:42:22 -0000 On Mon, Jun 26, 2006 at 03:00:18PM -0500, Brendan Martens wrote: > RB supports normal daps, correct? I would like it to treat my iPod, that > I have upgraded with Rockbox, as a normal DAP. Is this possible? Yes, just disable the ipod plugin and it should be detected as a generic audio player. From jonathan@kaolin.wh9.net Mon Jun 26 18:55: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 12BCA3B0011 for ; Mon, 26 Jun 2006 18:55: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 21136-08 for ; Mon, 26 Jun 2006 18:55:41 -0400 (EDT) Received: from ash25e.internode.on.net (ash25e.internode.on.net [203.16.214.182]) by menubar.gnome.org (Postfix) with ESMTP id 32D543B0002 for ; Mon, 26 Jun 2006 18:55:41 -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 k5QMtb78028052 for ; Tue, 27 Jun 2006 08:25:39 +0930 (CST) (envelope-from jonathan@kaolin.wh9.net) Received: from jonathan by stapler.kaolin.wh9.net with local (Exim 4.50) id 1FuzzV-0002P1-Oz for rhythmbox-devel@gnome.org; Tue, 27 Jun 2006 08:55:37 +1000 Date: Tue, 27 Jun 2006 08:55:37 +1000 To: rhythmbox-devel@gnome.org Message-ID: <20060626225537.GA9215@kaolin.wh9.net> Mail-Followup-To: rhythmbox-devel@gnome.org References: <1150010929.16530.4.camel@localhost> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1150010929.16530.4.camel@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.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] [ANNOUNCE] gaim-rhythmbox 2.0beta 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, 26 Jun 2006 22:55:43 -0000 On Sun, Jun 11, 2006 at 03:28:48AM -0400, Jon Oberheide wrote: > Gaim-Rhythmbox has been ported to work with Gaim 2.0.0 and Rhythmbox > 0.9. > > http://gaim-rhythmbox.sourceforge.net This will no longer build with Rhythmbox 0.9.5 or newer as we removed the .pc file. Rhythmbox doesn't install any files useful for developing or building clients, so there's no need to check the installed version at build time. From pclouds@gmail.com Tue Jun 27 05:44: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 524893B010D for ; Tue, 27 Jun 2006 05:44: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 20903-07 for ; Tue, 27 Jun 2006 05:44:32 -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 692093B006C for ; Tue, 27 Jun 2006 05:44:32 -0400 (EDT) Received: by wx-out-0102.google.com with SMTP id t5so727713wxc for ; Tue, 27 Jun 2006 02:44:31 -0700 (PDT) Received: by 10.70.30.10 with SMTP id d10mr10066855wxd; Tue, 27 Jun 2006 02:44:31 -0700 (PDT) Received: by 10.70.45.11 with HTTP; Tue, 27 Jun 2006 02:44:31 -0700 (PDT) Message-ID: Date: Tue, 27 Jun 2006 16:44:31 +0700 From: "=?UTF-8?Q?Nguy=E1=BB=85n_Th=C3=A1i_Ng=E1=BB=8Dc_Duy?=" To: rhythmbox-devel@gnome.org 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.369 tagged_above=-999 required=2 tests=[AWL=0.031, BAYES_00=-2.599, DNS_FROM_RFC_ABUSE=0.2, SPF_PASS=-0.001] X-Spam-Score: -2.369 X-Spam-Level: Subject: [Rhythmbox-devel] tag writing with utf-8 and taglib 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, 27 Jun 2006 09:44:33 -0000 Hi, When writing utf-8 tags, taglib will not try to change frame encoding. If frame encoding is iso-8859-1, then the string will be converted (lossily) to iso-8859-1. Although I think the behaviour is ok for taglib itself, it's ruining my songs. I would like to have an option to allow rhythmbox (more accurate id3v2mux) to change id3v2 tag frame encoding from iso-8859-1 to utf-8 if necessary. Do you have any idea? From teuf@gnome.org Tue Jun 27 06:05: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 60E513B03BD for ; Tue, 27 Jun 2006 06:05:45 -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 22143-10 for ; Tue, 27 Jun 2006 06:05:42 -0400 (EDT) Received: from vds19s01.yellis.net (ns1019.yellis.net [213.246.41.159]) by menubar.gnome.org (Postfix) with ESMTP id F3A1F3B0171 for ; Tue, 27 Jun 2006 06:05:41 -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 4F2B0905EE for ; Tue, 27 Jun 2006 12:05:47 +0200 (CEST) Received: from plouf.anevia.com (plouf.anevia.com [10.0.1.37]) by goliath.anevia.com (Postfix) with ESMTP id 81A97130005B for ; Tue, 27 Jun 2006 12:05:38 +0200 (CEST) From: Christophe Fergeau To: rhythmbox-devel@gnome.org In-Reply-To: References: Content-Type: text/plain; charset=utf-8 Date: Tue, 27 Jun 2006 12:05:44 +0200 Message-Id: <1151402744.5360.37.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.352 tagged_above=-999 required=2 tests=[AWL=0.112, BAYES_00=-2.599, FORGED_RCVD_HELO=0.135] X-Spam-Score: -2.352 X-Spam-Level: Subject: Re: [Rhythmbox-devel] tag writing with utf-8 and taglib 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, 27 Jun 2006 10:05:45 -0000 Le mardi 27 juin 2006 à 16:44 +0700, Nguyễn Thái Ngọc Duy a écrit : > Hi, > When writing utf-8 tags, taglib will not try to change frame encoding. > If frame encoding is iso-8859-1, then the string will be converted > (lossily) to iso-8859-1. Although I think the behaviour is ok for > taglib itself, it's ruining my songs. I would like to have an option > to allow rhythmbox (more accurate id3v2mux) to change id3v2 tag frame > encoding from iso-8859-1 to utf-8 if necessary. Do you have any idea? Hmm, maybe the gstreamer taglib element (gst-plugins-good/ext/taglib/gstid3v2mux.c) is missing a call to TagLib::ID3v2::FrameFactory::instance()->setDefaultTextEncoding(TagLib::String::UTF8); (or explicit calls to frame->setTextEncoding (String::UTF8); for each handled tags). I don't have time to investigate more than that atm though... Christophe From shrift@gmail.com Tue Jun 27 13:23: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 E17E93B0246 for ; Tue, 27 Jun 2006 13:23: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 09704-09 for ; Tue, 27 Jun 2006 13:23:35 -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 F2F2F3B0075 for ; Tue, 27 Jun 2006 13:23:34 -0400 (EDT) Received: by py-out-1112.google.com with SMTP id c30so1973900pyc for ; Tue, 27 Jun 2006 10:22:52 -0700 (PDT) Received: by 10.35.94.2 with SMTP id w2mr7420102pyl; Tue, 27 Jun 2006 10:22:52 -0700 (PDT) Received: from shrift.evanston.gov ( [66.158.65.137]) by mx.gmail.com with ESMTP id w54sm8039pye.2006.06.27.10.22.51; Tue, 27 Jun 2006 10:22:51 -0700 (PDT) From: Brendan Martens To: rhythmbox-devel@gnome.org In-Reply-To: References: Content-Type: text/plain Date: Tue, 27 Jun 2006 12:26:04 -0500 Message-Id: <1151429165.11410.15.camel@shrift.local.cityofevanston.org> 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.144 tagged_above=-999 required=2 tests=[AWL=0.256, BAYES_00=-2.599, DNS_FROM_RFC_ABUSE=0.2, SPF_PASS=-0.001] X-Spam-Score: -2.144 X-Spam-Level: Subject: Re: [Rhythmbox-devel] using iPod as a normal DAP 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, 27 Jun 2006 17:23:36 -0000 > Yes, just disable the ipod plugin and it should be detected as a generic > audio player. Ok! Thanks a lot! From adam_zimmerman@sfu.ca Wed Jun 28 16:41: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 5367F3B040C for ; Wed, 28 Jun 2006 16:41: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 00611-09 for ; Wed, 28 Jun 2006 16:41:22 -0400 (EDT) Received: from pobox.sfu.ca (pobox.sfu.ca [142.58.101.28]) by menubar.gnome.org (Postfix) with ESMTP id BD4A13B021D for ; Wed, 28 Jun 2006 16:41:21 -0400 (EDT) Received: from [192.168.1.106] (d154-20-165-140.bchsia.telus.net [154.20.165.140]) (authenticated bits=0) by pobox.sfu.ca (8.13.6/8.13.5/SFU-6.0G) with ESMTP id k5SKepFh008833 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NOT) for ; Wed, 28 Jun 2006 13:40:53 -0700 (PDT) From: Adam Zimmerman To: rhythmbox-devel@gnome.org Content-Type: text/plain Date: Wed, 28 Jun 2006 13:40:44 -0700 Message-Id: <1151527244.10453.17.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.503 tagged_above=-999 required=2 tests=[AWL=0.096, BAYES_00=-2.599] X-Spam-Score: -2.503 X-Spam-Level: Subject: [Rhythmbox-devel] Magnatune 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, 28 Jun 2006 20:41:25 -0000 Hi everyone, For anyone who hasn't been watching the bug[1], I figured I'd let you know that the plugin's basically in a usable state for both previewing music as well as purchasing. The only known bug at the moment is related to the popup menu (see comment #4). There are 2 files you need to download. The code itself[2], and the glade files[3]. The glade files need to be untarred into /usr/share/rhythmbox/glade/ (or wherever sys.prefix in python points to, if not /usr), and the python file can go either in ~/.gnome2/rhythmbox/plugins or /usr/lib/rhythmbox/plugins. If anyone feels like helping out with testing the purchasing code, email me and I can send you the test credit card number that Magnatune gave me. Any feedback is much appreciated. -Adam oh, p.s. You'll also need a magnatune.rb-plugin file in the plugins directory. Its contents are: [RB Plugin] Loader=python Module=magnatune IAge=1 Name=Magnatune support Description=Adds support to Rhythmbox for playing and purchasing from the Magnatune catalog Authors=Adam Zimmerman Copyright=(C) 2006 Adam Zimmerman Website=http://www.rhythmbox.org [1] http://bugzilla.gnome.org/show_bug.cgi?id=345783 [2] http://bugzilla.gnome.org/attachment.cgi?id=68132 [3] http://bugzilla.gnome.org/attachment.cgi?id=68133 -- 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/ -- Rocky's Lemma of Innovation Prevention: Unless the results are known in advance, funding agencies will reject the proposal. From john.a.redd@boeing.com Thu Jun 29 13:26: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 4708F3B00D5 for ; Thu, 29 Jun 2006 13:26: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 30224-02 for ; Thu, 29 Jun 2006 13:26:08 -0400 (EDT) Received: from slb-smtpout-01.ns.cs.boeing.com (slb-smtpout-01.boeing.com [130.76.64.48]) by menubar.gnome.org (Postfix) with ESMTP id 4153D3B0196 for ; Thu, 29 Jun 2006 13:26:08 -0400 (EDT) Received: from stl-av-01.boeing.com (stl-av-01.boeing.com [192.76.190.6]) by slb-smtpout-01.ns.cs.boeing.com (8.13.6/8.13.6/TEST_SMTPIN) with ESMTP id k5THPtqE005727 for ; Thu, 29 Jun 2006 10:25:55 -0700 (PDT) Received: from xch-mwbh-02.mw.nos.boeing.com (localhost [127.0.0.1]) by stl-av-01.boeing.com (8.11.3/8.11.3/MBS-AV-LDAP-01) with ESMTP id k5THQ7307196 for ; Thu, 29 Jun 2006 12:26:07 -0500 (CDT) Received: from XCH-MW-2V1.mw.nos.boeing.com ([130.247.200.29]) by xch-mwbh-02.mw.nos.boeing.com with Microsoft SMTPSVC(6.0.3790.1830); Thu, 29 Jun 2006 12:25:52 -0500 Received: from 130.38.164.172 ([130.38.164.172]) by XCH-MW-2V1.mw.nos.boeing.com ([130.247.200.49]) via Exchange Front-End Server owa.web.boeing.com ([192.42.209.170]) with Microsoft Exchange Server HTTP-DAV ; Thu, 29 Jun 2006 17:25:06 +0000 Received: from ubuntu606lts by owa.web.boeing.com; 29 Jun 2006 12:24:14 -0500 From: John Redd To: rhythmbox-devel@gnome.org Content-Type: multipart/alternative; boundary="=-ced/NAAygWu8XvdLnlba" Organization: Boeing IDS CIDS Date: Thu, 29 Jun 2006 12:24:14 -0500 Message-Id: <1151601854.5360.3.camel@ubuntu606lts> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 X-OriginalArrivalTime: 29 Jun 2006 17:25:53.0215 (UTC) FILETIME=[12AF34F0:01C69BA1] X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=1.502 tagged_above=-999 required=2 tests=[BAYES_50=0.001, HTML_MESSAGE=0.001, RCVD_NUMERIC_HELO=1.5, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001] X-Spam-Score: 1.502 X-Spam-Level: * X-Mailman-Approved-At: Fri, 30 Jun 2006 03:05:40 -0400 Subject: [Rhythmbox-devel] program suggestion 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, 29 Jun 2006 17:26:09 -0000 --=-ced/NAAygWu8XvdLnlba Content-Type: text/plain Content-Transfer-Encoding: 7bit You guys need an equalizer. I started using Amarok because they have an equalizer built in. Other than that, I'd rather use rhythmbox. --=-ced/NAAygWu8XvdLnlba Content-Type: text/html; charset=utf-8 You guys need an equalizer.  I started using Amarok because they have an equalizer built in.  Other than that, I'd rather use rhythmbox.

--=-ced/NAAygWu8XvdLnlba--