[Freevo-devel] Re: Thoughts for next release
Aubin Paul wrote: On a somewhat related note, I have to say that sqlite is very impressive. The entire python module plus shared objects for sqlite is less than 200k. I was able to create a database, a table, and perform queries in around 15 lines of Python. Cool, than try to change cache.py in mmpython to a new caching model. Maybe make a cache_sqlite.py so that the current cache can be used if you don't have sqlite. Maybe with sqlite we can cache _all_ metadata, right now we don't cache the thumbnails because it's too slow. To insert a new cache into mmpython you only need to add it into __init__.py in the root directory, the other parts of mmpython don't need to be changed. Dischi -- Anything labeled NEW and/or IMPROVED isn't. The label means the price went up. The label ALL NEW, COMPLETELY NEW, or GREAT NEW means the price went way up. --- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01 ___ Freevo-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-devel
[Freevo-devel] Re: Thoughts for next release
On Sun, Jun 29, 2003 at 10:19:09AM +0200, Dirk Meyer wrote: Cool, than try to change cache.py in mmpython to a new caching model. Maybe make a cache_sqlite.py so that the current cache can be used if you don't have sqlite. Maybe with sqlite we can cache _all_ metadata, right now we don't cache the thumbnails because it's too slow. To insert a new cache into mmpython you only need to add it into __init__.py in the root directory, the other parts of mmpython don't need to be changed. I'm going to write a standalone version first, just something that recurses through directories and adds all the files to the database, after that, I'll add it to Freevo in someway to try it. Based on how that works, we can move it into the cache system. The other thing I thought of, is it would be nice to have Pre/Post plugins. i.e. before I play a movie, I run a script to adjust brightness/contrast on my g400, and things like the directfb/x11 modules need to make certain changes. It would be nice to have a generic way to call commands before and after playback. Aubin --- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01 ___ Freevo-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-devel
[Freevo-cvslog] freevo/src/tv record_video.py,1.18,1.19 tv.py,1.13,1.14
Update of /cvsroot/freevo/freevo/src/tv In directory sc8-pr-cvs1:/tmp/cvs-serv9406 Modified Files: record_video.py tv.py Log Message: Display the channel's friendly (display name) in the tuner popupbox. Since XMLTV 0.6.11 uses what they call RFC channel names which are very long and don't reveal much about the channel. This will obviously have no regressive effect, since users had the friendly name before. Index: record_video.py === RCS file: /cvsroot/freevo/freevo/src/tv/record_video.py,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** record_video.py 24 Jun 2003 21:08:41 - 1.18 --- record_video.py 29 Jun 2003 15:01:31 - 1.19 *** *** 10,13 --- 10,22 # --- # $Log$ + # Revision 1.19 2003/06/29 15:01:31 outlyer + # Display the channel's friendly (display name) in the tuner popupbox. + # + # Since XMLTV 0.6.11 uses what they call RFC channel names which are + # very long and don't reveal much about the channel. + # + # This will obviously have no regressive effect, since users had the + # friendly name before. + # # Revision 1.18 2003/06/24 21:08:41 outlyer # Use the episode title if available in the recording filename. *** *** 300,303 --- 309,313 tunerid = tv.get_tunerid(recinfo.channel) + tunername = tv.get_friendly_channel(recinfo.channel) # Start timestamp *** *** 344,348 s = 'Scheduled recording:\n' ! s += 'Channel %s\n' % recinfo.channel s += '%s %s %s min' % (recinfo.start_date.selected, recinfo.start_time.selected, recinfo.length.selected) --- 354,358 s = 'Scheduled recording:\n' ! s += 'Channel %s\n' % tunername s += '%s %s %s min' % (recinfo.start_date.selected, recinfo.start_time.selected, recinfo.length.selected) Index: tv.py === RCS file: /cvsroot/freevo/freevo/src/tv/tv.py,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** tv.py 2 Jun 2003 21:29:22 - 1.13 --- tv.py 29 Jun 2003 15:01:31 - 1.14 *** *** 10,13 --- 10,22 # --- # $Log$ + # Revision 1.14 2003/06/29 15:01:31 outlyer + # Display the channel's friendly (display name) in the tuner popupbox. + # + # Since XMLTV 0.6.11 uses what they call RFC channel names which are + # very long and don't reveal much about the channel. + # + # This will obviously have no regressive effect, since users had the + # friendly name before. + # # Revision 1.13 2003/06/02 21:29:22 outlyer # Changed the Schedule Editor to show up in the TV Submenu, along with Guide and *** *** 98,101 --- 107,120 if tv_channel_id == channel_id: return tv_tuner_id + + AlertBox(text='Could not find TV channel %s' % channel_id).show() + return None + + def get_friendly_channel(channel_id): + channel_name = None + for vals in config.TV_CHANNELS: + tv_channel_id, tv_display_name, tv_tuner_id = vals[:3] + if tv_channel_id == channel_id: + return tv_display_name AlertBox(text='Could not find TV channel %s' % channel_id).show() --- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01 ___ Freevo-cvslog mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-cvslog
[Freevo-cvslog] freevo ChangeLog,1.64,1.65
Update of /cvsroot/freevo/freevo In directory sc8-pr-cvs1:/tmp/cvs-serv12081 Modified Files: ChangeLog Log Message: 5 seconds of sed to change the 'o' at the beginning of lines to '*' so it's consistent Index: ChangeLog === RCS file: /cvsroot/freevo/freevo/ChangeLog,v retrieving revision 1.64 retrieving revision 1.65 diff -C2 -d -r1.64 -r1.65 *** ChangeLog 26 Jun 2003 14:15:14 - 1.64 --- ChangeLog 29 Jun 2003 15:22:47 - 1.65 *** *** 57,139 * Added CVS update to the latest alpha in the Makefile (cvsup) ! Release 1.3.1 (2003-02-12): --- ! o The runtime and apps packages are now included in the binary release! ! o Fixed lots of bugs ! o TV recording ! o Added cache for mp3/ogg id tags ! o The menu will rebuild itself when you add/delete files in the directory ! o Added the autostarter again (insert a disc while you are in the main menu) ! o Replaced the icons ! o Moved a number of doc files to the Freevo Wiki. ! o Bins support (http://jsautret.free.fr/BINS/index.html) ! o Faster TV channel change ! o Added Thomas Schüppels objectcache patch. ! o Code cleanup / restructuring (xmms support dropped for now) ! o Speeded up the keyboard handling. ! o Changed keyboard volume +/- keys ! o Added small contributed XMLTV Python apps for Belgium and Netherlands. ! o The startscript freevo is less bash-ist ! o Web interface for recording (freevoweb) ! o Gentoo ebuild support ! o Autodetect CD/DVD drives ! o Made the config file handling smarter ! o Changed the default PCM volume level from 100 to 90 to avoid distortion ! ! Release 1.3.0 (2002-11-13): --- ! o Added a font alias list in freevo_config to substitute missing non-free ! fonts in skins with free fonts. ! o Changed the TV guide to use Gustavo's new extended menus. ! o The XML skins can now include other skin files. This makes it easier to adapt skins to new screen sizes. ! o XML skins can now load a local_skin.xml for changes by the user. ! o Changed the freevo script so that it can be used to execute standalone python scripts, e.g. freevo execute epg_xmltv.py ! o Changed runapp to support priority settings of the new app, /usr/bin/nice is no longer needed. ! o Rewritten ID3v1 and new ID3v2.3/2.4 support ! o Added DXR3 support using SDL. ! o Changed the default skin to the new blue_round1 skin. ! o The image viewer now supports browsing CD/DVDs. ! o Added support for choosing audio track, etc in DVDs. ! o Movies can be played from URLs (LAN or the Internet). ! o Music playlists can contain videos and URLs too now. Both .m3u and .pls playlists are supported. ! o Made the shell scripts sh-compatible. ! o Added Bob Pauwe's image slideshow patches. ! ! Release 1.2.6 (2002-10-12): --- Features, bugfixes: ! o Fixed a bug for configuring TV for other than NTSC. ! o Added new RPM building specs from Wan Tat Chee in the contrib/ dir. ! o Added SDL as a display option to configure. Not tested! ! o Added joystick support code from Dan Eriksen. Not tested! ! o Fixed a bug in XML that could cause Freevo to crash. ! o Replaced all fonts with the free Larabie fonts. ! o Added a 640x480 mode. ! o Improved the handling of removable media (CDROM/DVD) ! o DVD/VCD/SVCD title selecting ! o MPlayer hwac3 support ! o Added Andrew Drummond's Mame code. Kinda works, but not done yet. ! o Updated the XMLTV handling to deal with the new German format as well. ! o Removed .mplayer feature for movie files. Please use mplayer_options in the movie xml files instead. ! o Movie xml files can now contain skin informations as well. ! o Skin improvements ! o Configure now checks for external programs ! o Bugfix for 8-bit chars in bitmap filenames by Alex Polite ! o Added Per Wigren's app for fetching Swedish and Norwegian TV listings in contrib/PerWigren. (The newer version of XMLTV also supports Swedish and Norwegian listings now.) ! o Added Per Wigren's patch for different TV stations on the same channel at different times of the week and/or day. ! o Added Alex Polite's patch for using XMMS for playing and visualizing music. ! o Added Alex Polite's patch for recursive playlists --- 57,139 * Added CVS update to the latest alpha in the Makefile (cvsup) ! Release 1.3.1 (2003-02-12): --- ! * The runtime and apps packages are now included in the binary release! ! * Fixed lots of bugs ! * TV recording ! * Added cache for mp3/ogg id tags ! * The menu will rebuild itself when you add/delete files in the directory ! * Added the autostarter again (insert a disc while you are in the main menu) ! * Replaced the icons ! * Moved a number of doc files to the Freevo Wiki. ! * Bins support (http://jsautret.free.fr/BINS/index.html) ! * Faster TV
[Freevo-devel] Re: [Freevo-cvslog] freevo ChangeLog,1.65,1.66
On Sun, Jun 29, 2003 at 12:26:03PM -0700, [EMAIL PROTECTED] wrote: * Shout/Icecast playback/bookmarks + * Web radio support Uhm, these two things are equivelent, so we can remove one of them. :) --- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01 ___ Freevo-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-devel
[Freevo-cvslog] freevo/src menu.py,1.50,1.51
Update of /cvsroot/freevo/freevo/src In directory sc8-pr-cvs1:/tmp/cvs-serv19784/src Modified Files: menu.py Log Message: small fix Index: menu.py === RCS file: /cvsroot/freevo/freevo/src/menu.py,v retrieving revision 1.50 retrieving revision 1.51 diff -C2 -d -r1.50 -r1.51 *** menu.py 7 Jun 2003 11:30:27 - 1.50 --- menu.py 29 Jun 2003 19:52:58 - 1.51 *** *** 10,13 --- 10,16 # --- # $Log$ + # Revision 1.51 2003/06/29 19:52:58 dischi + # small fix + # # Revision 1.50 2003/06/07 11:30:27 dischi # support for MENU_CALL_ITEM_ACTION *** *** 135,139 def select(self, arg=None, menuw=None): ! self.function(arg=self.arg, menuw=menuw) --- 138,143 def select(self, arg=None, menuw=None): ! if self.function: ! self.function(arg=self.arg, menuw=menuw) --- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01 ___ Freevo-cvslog mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-cvslog
[Freevo-cvslog] website news.txt,1.19,1.20
Update of /cvsroot/freevo/website In directory sc8-pr-cvs1:/tmp/cvs-serv22596 Modified Files: news.txt Log Message: Index: news.txt === RCS file: /cvsroot/freevo/website/news.txt,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** news.txt22 Jun 2003 16:34:15 - 1.19 --- news.txt29 Jun 2003 20:13:18 - 1.20 *** *** 1,2 --- 1,16 + 22-June-2003: About time: Freevo 1.3.2 is out + We had some problems with the runtime in the binary release, we hope + to build new releases more often in the future. This release contains + much new stuff and many bugfixes. Aubin wrote about that below, so I + only point to the + http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/freevo/freevo/ChangeLog;Changelog/a. + + You can download it a href=http://sourceforge.net/project/showfiles.php?group_id=46652;here/a. + + Have fun + + i- Dischi/i + + --- 22-June-2003: How poor are they who have not patience! (Shakespeare) Don't worry, we still have another snapshot in the works. If you're running an older --- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01 ___ Freevo-cvslog mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-cvslog
[Freevo-devel] mmpython: Dischi...
Hi Dischi, You guys don't have an mmpython list yet, so I thought I'd report some minor issues. First, as is, the library works very nicely, it took very little effort to get it running. However, I've run into an odd problem and I can't quite figure out what's going on. I've got a file that mmpython will not parse, even though eyeD3 parses it fine. I can't really figure out what's going on? Can I send one of you the tag itself so you could perhaps clue me in on what's going on? Aubin --- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01 ___ Freevo-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-devel
Re: [Freevo-devel] Re: [Freevo-cvslog] freevo ChangeLog,1.65,1.66
my understanding was iceast was icecast and the webradio thing was the support in the fxd files to support webradio broadcasts. Mike On Sun, 2003-06-29 at 15:36, Aubin Paul wrote: On Sun, Jun 29, 2003 at 12:26:03PM -0700, [EMAIL PROTECTED] wrote: * Shout/Icecast playback/bookmarks + * Web radio support Uhm, these two things are equivelent, so we can remove one of them. :) --- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01 ___ Freevo-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-devel -- Mike Ruelle [EMAIL PROTECTED] http://world.std.com/~mruelle/ --- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01 ___ Freevo-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-devel
[Freevo-devel] mmpython issue, part 2
Ok, the problem is pretty simple. If a file has only an id3v2 tag, but no id3v1 tag, the parsing does not happen at all. It parses the id3v2 tag properly if an id3v1 exists (and even uses the id3v2 information to populate fields like the track field) but no id3v1 tag seems to mean no data. --- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01 ___ Freevo-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-devel
[Freevo-wikilog] [Freevo Wiki] Update of DocumentationPage
Dear Wiki user, You have subscribed to a wiki page or wiki category on Freevo Wiki for change notification. The following page has been changed by 62.235.92.173: http://freevo.sourceforge.net/cgi-bin/moin.cgi/DocumentationPage -- @@ -116,7 +116,9 @@ = Belgian listings = -Use the program freevo/helpers/xml_tv_be.py which was contributed by Bart Heremans. Usage : +Use the program freevo/helpers/xml_tv_be.py which was contributed by Bart Heremans and den_RDC. Open helpers/xml_tv_be.config in your favorite text editor, and select wich channels you want the script to fetch, by setting a 0 after channels that shouldn't be fetched and a 1 for channels you want. You can also set the number of days to be fetched in the configuration file. + +Usage : * download the guide for the next two days : {{{ --- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01 ___ Freevo-wikilog mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-wikilog
[Freevo-devel] CVS users please read
Hi, now that 1.3.2 is out, it's time to include the changes to Freevo I made today. These are major changes and maybe something is broken now :-( Freevo now needs mmpython (www.sf.net/projects/mmpython). There is no release out yet, you have to use cvs. Since I made some changes in mmpython today and cvs is 24 hours behind, maybe you have to wait some time until you can use freevo again (sorry for that). What I have done: o Freevo now uses mmpython and it's cache to scan media files and discs. Discs will be only read once, after that it's everything in the cache (mp3 tags, dvd titles/audio, audio cd cddb tags), infos from files are cached, too. o Update the info area to the new code from Gustavo and changed all skins to use the new format. blue2 also shows some extra informations from mmpython. o mplayer in video is now a plugin, feel free to write ogle.py or xine.py Dischi, 'cvs ci'-now -- If windows is the answer, it must have been a stupid question. --- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01 ___ Freevo-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-devel
[Freevo-cvslog] freevo/skins/main1 area.py,1.6,1.7 info_area.py,1.4,1.5 listing_area.py,1.5,1.6 skin_main1.py,1.100,1.101 xml_skin.py,1.6,1.7
Update of /cvsroot/freevo/freevo/skins/main1 In directory sc8-pr-cvs1:/tmp/cvs-serv27185 Modified Files: area.py info_area.py listing_area.py skin_main1.py xml_skin.py Log Message: switch to the new info area Index: area.py === RCS file: /cvsroot/freevo/freevo/skins/main1/area.py,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** area.py 22 Jun 2003 11:34:46 - 1.6 --- area.py 29 Jun 2003 20:38:58 - 1.7 *** *** 28,31 --- 28,34 # --- # $Log$ + # Revision 1.7 2003/06/29 20:38:58 dischi + # switch to the new info area + # # Revision 1.6 2003/06/22 11:34:46 dischi # use null layer *** *** 230,233 --- 233,237 width = x2 - x1 if font.shadow.visible: + width -= font.shadow.x osd.drawstringframed(text, x1+font.shadow.x, y1+font.shadow.y, width, height, font.shadow.color, None, *** *** 444,463 e.g. mp3s inside a folder with cover file ! if hasattr(menu, '_skin_force_text_view'): ! self.use_text_view = menu._skin_force_text_view return ! image = None if len(menu.choices) 5: ! menu._skin_force_text_view = FALSE self.use_text_view = FALSE return for i in menu.choices: if image and i.image != image: ! menu._skin_force_text_view = FALSE self.use_text_view = FALSE return image = i.image ! menu._skin_force_text_view = image ! self.use_text_view = image --- 448,475 e.g. mp3s inside a folder with cover file ! if hasattr(menu, 'skin_force_text_view'): ! self.use_text_view = menu.skin_force_text_view return ! image = None ! folder = 0 if len(menu.choices) 5: ! menu.skin_force_text_view = FALSE self.use_text_view = FALSE return for i in menu.choices: + if i.type == 'dir': + folder += 1 + # directory with mostly folder: + if folder 3: + self.use_text_view = FALSE + return + if image and i.image != image: ! menu.skin_force_text_view = FALSE self.use_text_view = FALSE return image = i.image ! menu.skin_force_text_view = TRUE ! self.use_text_view = TRUE *** *** 712,717 mode=mode, ellipses=ellipses, layer=osd.null_layer) ! self.tmp_objects.text.append((x, y, x+width, y+height2, text, font, height, ! align_h, align_v, mode, ellipses )) if return_area: --- 724,729 mode=mode, ellipses=ellipses, layer=osd.null_layer) ! self.tmp_objects.text.append((x, y, x+width+font.shadow.x, y+height2+font.shadow.y, ! text, font, height, align_h, align_v, mode, ellipses )) if return_area: Index: info_area.py === RCS file: /cvsroot/freevo/freevo/skins/main1/info_area.py,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** info_area.py20 Jun 2003 18:47:37 - 1.4 --- info_area.py29 Jun 2003 20:38:58 - 1.5 *** *** 10,24 # --- # $Log$ ! # Revision 1.4 2003/06/20 18:47:37 dischi ! # support for info_type to display, not normal item.type ! # ! # Revision 1.3 2003/04/24 19:57:52 dischi ! # comment cleanup for 1.3.2-pre4 ! # ! # Revision 1.2 2003/04/20 17:13:55 dischi ! # respect the height # - # Revision 1.1 2003/04/06 21:19:44 dischi - # Switched to new main1 skin # # --- --- 10,16 # --- # $Log$ ! # Revision 1.5 2003/06/29 20:38:58 dischi ! # switch to the new info area # # # --- *** *** 46,55 from area import Skin_Area from skin_utils import * ! import re TRUE = 1 FALSE = 0 class Info_Area(Skin_Area): --- 38,51 from area import Skin_Area from skin_utils import * + import xml_skin + import copy + from area import Geometry ! import traceback
[Freevo-cvslog] freevo/skins/xml/type1 barbieri.fxd,1.7,1.8 blue1_big.fxd,1.6,1.7 blue2.fxd,1.9,1.10
Update of /cvsroot/freevo/freevo/skins/xml/type1 In directory sc8-pr-cvs1:/tmp/cvs-serv27425 Modified Files: barbieri.fxd blue1_big.fxd blue2.fxd Log Message: switch to the new info area Index: barbieri.fxd === RCS file: /cvsroot/freevo/freevo/skins/xml/type1/barbieri.fxd,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** barbieri.fxd27 Jun 2003 20:57:47 - 1.7 --- barbieri.fxd29 Jun 2003 20:40:28 - 1.8 *** *** 55,59 menu type=audio ! style image=audio list with cover view / style text=audio/ /menu --- 55,59 menu type=audio ! style text=audio image=audio list with cover view / style text=audio/ /menu *** *** 567,570 --- 567,571 newline / /if + goto_pos y=15 mode=relative / if expression=album text height=line_height width=100 *** *** 575,588 align=left font=info value mode=hard expression=album / !if expression=year text font=info value (/text text height=line_height align=left font=info value ! mode=hard expression=year / text font=info value)/text /if newline / /if ! if expression=track text height=line_height width=100 align=right font=info value --- 576,589 align=left font=info value mode=hard expression=album / !if expression=date text font=info value (/text text height=line_height align=left font=info value ! mode=hard expression=date / text font=info value)/text /if newline / /if ! if expression=trackno text height=line_height width=100 align=right font=info value *** *** 591,595 text height=line_height align=left font=info value ! mode=hard expression=track / newline / /if --- 592,596 text height=line_height align=left font=info value ! mode=hard expression=trackno / newline / /if Index: blue1_big.fxd === RCS file: /cvsroot/freevo/freevo/skins/xml/type1/blue1_big.fxd,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** blue1_big.fxd 2 May 2003 01:37:42 - 1.6 --- blue1_big.fxd 29 Jun 2003 20:40:28 - 1.7 *** *** 245,255 spacing=10 font=player item type=default ! Title: [EMAIL PROTECTED]@ ! Artist: [EMAIL PROTECTED]@ ! Album: [EMAIL PROTECTED]@ (@year@) ! Track: [EMAIL PROTECTED]@ ! ! Length: [EMAIL PROTECTED]@ ! Elapsed: [EMAIL PROTECTED]@ /item /content --- 245,311 spacing=10 font=player item type=default ! if expression=title !text font=info title ! width=max height=line_height ! mode=hard align=left ! expression=title / ! newline / ! /if ! if expression=artist !text font=info tagline ! width=max height=line_height ! mode=hard align=left ! expression=artist / !newline / ! /if ! goto_pos y=15 mode=relative / ! if expression=album !text height=line_height width=100 ! align=right font=info value ! mode=hardAlbum:/text !goto_pos x=10 mode=relative / !text height=line_height ! align=left font=info value ! mode=hard expression=album / !if expression=date !text font=info value (/text ! text height=line_height ! align=left font=info value ! mode=hard expression=date / !text font=info value)/text ! /if !newline / ! /if ! if expression=trackno !text height=line_height width=100 ! align=right font=info value ! mode=hardTrack:/text !goto_pos x=10 mode=relative / !text height=line_height ! align=left font=info value ! mode=hard expression=trackno / !newline / ! /if
[Freevo-cvslog] freevo/src/audio/eyeD3 .cvsignore,1.1,NONE __init__.py,1.3,NONE binfuncs.py,1.1,NONE config.py,1.1,NONE frames.py,1.2,NONE mp3.py,1.2,NONE utils.py,1.2,NONE
Update of /cvsroot/freevo/freevo/src/audio/eyeD3 In directory sc8-pr-cvs1:/tmp/cvs-serv27560/eyeD3 Removed Files: .cvsignore __init__.py binfuncs.py config.py frames.py mp3.py utils.py Log Message: mp3 parser in mmpython --- .cvsignore DELETED --- --- __init__.py DELETED --- --- binfuncs.py DELETED --- --- config.py DELETED --- --- frames.py DELETED --- --- mp3.py DELETED --- --- utils.py DELETED --- --- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01 ___ Freevo-cvslog mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-cvslog
[Freevo-cvslog] freevo/src/audio/plugins coversearch.py,1.9,1.10
Update of /cvsroot/freevo/freevo/src/audio/plugins In directory sc8-pr-cvs1:/tmp/cvs-serv27629/plugins Modified Files: coversearch.py Log Message: changes for mmpython support Index: coversearch.py === RCS file: /cvsroot/freevo/freevo/src/audio/plugins/coversearch.py,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** coversearch.py 24 Jun 2003 18:39:42 - 1.9 --- coversearch.py 29 Jun 2003 20:42:14 - 1.10 *** *** 14,17 --- 14,20 # --- # $Log$ + # Revision 1.10 2003/06/29 20:42:14 dischi + # changes for mmpython support + # # Revision 1.9 2003/06/24 18:39:42 dischi # some small fixes *** *** 127,132 self.item = item if item.type == 'audio' or item.type == 'audiocd': ! return [ ( self.cover_search_file, 'Find a cover for this music', !'imdb_search_or_cover_search') ] return [] --- 130,139 self.item = item if item.type == 'audio' or item.type == 'audiocd': ! try: ! if self.item.getattr('artist') and self.item.getattr('album'): ! return [ ( self.cover_search_file, 'Find a cover for this music', !'imdb_search_or_cover_search') ] ! except KeyError: ! pass return [] *** *** 140,150 box = PopupBox(text='searching Amazon...') box.show() ! ! if self.item.type == 'audiocd': ! album = self.item.info['title'] ! artist = self.item.info['artist'] ! else: ! album = self.item.album ! artist = self.item.artist amazon.setLicense(self.license) --- 147,153 box = PopupBox(text='searching Amazon...') box.show() ! ! album = self.item.info['album'] ! artist = self.item.info['artist'] amazon.setLicense(self.license) --- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01 ___ Freevo-cvslog mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-cvslog
[Freevo-cvslog] freevo/src/audio __init__.py,1.3,1.4 audioitem.py,1.26,1.27
Update of /cvsroot/freevo/freevo/src/audio In directory sc8-pr-cvs1:/tmp/cvs-serv27629 Modified Files: __init__.py audioitem.py Log Message: changes for mmpython support Index: __init__.py === RCS file: /cvsroot/freevo/freevo/src/audio/__init__.py,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** __init__.py 6 Jun 2003 21:41:54 - 1.3 --- __init__.py 29 Jun 2003 20:42:14 - 1.4 *** *** 10,13 --- 10,16 # --- # $Log$ + # Revision 1.4 2003/06/29 20:42:14 dischi + # changes for mmpython support + # # Revision 1.3 2003/06/06 21:41:54 dischi # Set AUDIO_CACHE_VERSION to 2 to audio-rebuild the cache if the *** *** 41,55 #endif import config import util - import cPickle as pickle - import md5 - import os - - from audioitem import AudioItem - AUDIO_CACHE_VERSION = 2 def cwd(parent, files): --- 44,53 #endif + import mmpython import config import util from audioitem import AudioItem def cwd(parent, files): *** *** 59,94 items = [] - if parent and parent.type == 'dir': - cache_file = '%s/audio/%s' % (config.FREEVO_CACHEDIR, - util.hexify(md5.new(parent.dir).digest())) - else: - cache_file = None - - if cache_file and os.path.isfile(cache_file): - version, cache = pickle.load(open(cache_file, 'r')) - if version != AUDIO_CACHE_VERSION: - print 'cache file has a wrong version' - cache = {} - else: - cache = {} - - - new_cache = {} - for file in util.find_matches(files, config.SUFFIX_AUDIO_FILES): ! try: ! data = cache[file] ! items += [ AudioItem(file, parent, data) ] ! new_cache[file] = data ! except KeyError: ! item = AudioItem(file, parent) ! new_cache[file] = item.dump() ! items += [ item ] ! files.remove(file) - - - if cache_file: - pickle.dump((AUDIO_CACHE_VERSION, new_cache), open(cache_file, 'w')) return items --- 57,68 items = [] for file in util.find_matches(files, config.SUFFIX_AUDIO_FILES): ! if parent.media: ! url = 'cd://%s:%s:%s' % (parent.media.devicename, parent.media.mountdir, ! file[len(parent.media.mountdir)+1:]) ! else: ! url = file ! items.append(AudioItem(file, parent, mmpython.parse(url))) files.remove(file) return items Index: audioitem.py === RCS file: /cvsroot/freevo/freevo/src/audio/audioitem.py,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** audioitem.py9 Jun 2003 18:12:50 - 1.26 --- audioitem.py29 Jun 2003 20:42:14 - 1.27 *** *** 10,13 --- 10,16 # --- # $Log$ + # Revision 1.27 2003/06/29 20:42:14 dischi + # changes for mmpython support + # # Revision 1.26 2003/06/09 18:12:50 outlyer # Rename eyed3 to eyeD3 *** *** 70,74 import time import re - import eyeD3 import imghdr import traceback --- 73,76 *** *** 91,112 ! def __init__(self, file, parent, cache = None, name = None): ! Item.__init__(self, parent) self.filename = file[:] if name: self.name = name ! else: self.name = util.getname(file) self.type = 'audio' - # variables only for AudioItem - self.title = '' - self.album = '' - self.artist = '' - self.length = 0 - self.track = 0 - self.trackof= 0 - self.year = 0 - self.url= '' self.start = 0 self.elapsed= 0 --- 93,106 ! def __init__(self, file, parent, info = None, name = None): ! Item.__init__(self, parent, info) self.filename = file[:] + self.url= None if name: self.name = name ! elif not self.name: self.name = util.getname(file) self.type = 'audio' self.start = 0 self.elapsed= 0 *** *** 116,146 self.valid = 1 ! if cache: ! self.restore(cache) ! ! else: ! # XXX This is really not a very smart way to do it. We should be ! # XXX able to handle files with messed up extentions. ! ! if
[Freevo-cvslog] freevo/src/video/plugins mplayer.py,NONE,1.1 imdb.py,1.12,1.13
Update of /cvsroot/freevo/freevo/src/video/plugins In directory sc8-pr-cvs1:/tmp/cvs-serv27796/plugins Modified Files: imdb.py Added Files: mplayer.py Log Message: o mmpython support o mplayer is now a plugin --- NEW FILE: mplayer.py --- #if 0 /* # --- # mplayer.py - the Freevo MPlayer module for video # --- # $Id: mplayer.py,v 1.1 2003/06/29 20:43:30 dischi Exp $ # # Notes: # Perhaps we should move the filetype specific stuff (like the one for vob) # into the config files... # # i.e. # # MP_CUSTOM = { # '.vob' = '-ac hwac3 ...', # '.rm' = '-forceidx', # ... # } # # Todo: # # --- # $Log: mplayer.py,v $ # Revision 1.1 2003/06/29 20:43:30 dischi # o mmpython support # o mplayer is now a plugin # # Revision 1.43 2003/06/23 00:16:04 outlyer # Fixed the regular expression. It wasn't making bookmarks when less than # 1000 seconds has elapsed. I don't know who made this one, but just in case, # # here is the old one: # # self.RE_TIME = re.compile(^A:?([0-9]+)).match # # The '?' means, match ':' zero or one times, which doesn't make sense in this context. # # The new one: # # self.RE_TIME = re.compile(^A: *([0-9]+)).match # # In this case '*' means match ' ' zero or more times. # # I also removed the comment about multiple bookmarks since you can have as many bookmarks # as you want. The limitation with bookmarks is that mplayer isn't great at seeking in files # other than avi; DVD, and mpg files will have varying results. # # Revision 1.42 2003/06/10 18:02:57 dischi # Bad alang hack for mplayer and badly mastered DVDs. Restart mplayer if we # have audio tracks in the ifo that aren't there. # # Revision 1.41 2003/05/28 15:34:43 dischi # fixed seeking bug # # Revision 1.40 2003/05/28 15:02:02 dischi # reactivated seeking by first pressing 0 # # Revision 1.39 2003/05/27 17:53:35 dischi # Added new event handler module # # Revision 1.38 2003/05/06 03:11:20 outlyer # Whoops... commited something specific to my machine... # # Revision 1.37 2003/05/05 21:11:15 dischi # save video width and height # # Revision 1.36 2003/05/05 15:14:55 outlyer # Fixed a crash in the bookmarks submenu, and fixed the long standing bug # where times greater than 999 seconds (16m39s) wouldn't be recorded, because # mplayer logs time like this: # # A: XXX # # but after it reaches 1000, # # A: # # and the regular expression that got the time used a space. # # Revision 1.35 2003/04/26 20:55:44 dischi # Removed MPLAYER_ARGS_* and added a hash MPLAYER_ARGS to set args for # all different kinds of files. Also added MPLAYER_SOFTWARE_SCALER to use # the software scaler for fast CPUs. Also fixed a small bug in mplayer.py # for video. # # Revision 1.34 2003/04/20 15:54:32 dischi # do not stop on select # # Revision 1.33 2003/04/20 12:43:34 dischi # make the rc events global in rc.py to avoid get_singleton. There is now # a function app() to get/set the app. Also the events should be passed to # the daemon plugins when there is no handler for them before. Please test # it, especialy the mixer functions. # # Revision 1.32 2003/04/20 10:55:41 dischi # mixer is now a plugin, too # # Revision 1.31 2003/04/12 18:30:04 dischi # add support for audio/subtitle selection for avis, too # # Revision 1.30 2003/04/06 21:13:04 dischi # o Switched to the new main skin # o some cleanups (removed unneeded inports) # # Revision 1.29 2003/03/23 20:00:26 dischi # Added patch from Matthieu Weber for better mplayer_options and subitem # handling # # Revision 1.28 2003/03/23 15:19:39 gsbarbieri # Fixed a bug when ESC was pressed while watching a movie. Freevo used to crash. # Fixed key conflict, rc.SELECT was used to exit and seek to a specifc position, # now rc.ENTER (e) is used to seek. # # Revision 1.27 2003/03/17 18:54:44 outlyer # Some changes for the bookmarks # o videoitem.py - Added bookmark menu, bookmark parser and menu generation, # haven't figured out how to pass the timecode to mplayer though. I tried # setting mplayer_options, but self.play seems to just ignore them. I don't # know how to pass anything to self.play either. ARGH. # o mplayer.py - commented out two extraneous prints. # # Revision 1.26 2003/03/17 16:34:33 outlyer # Added preliminary movie bookmarks (i.e. places to jump to on next play) # Currently only writing the bookmarks does anything; I'm going to have to # add a menu of bookmarks to the menu afterwards. # # Note that the get_bookmarkfile thing should be replaced with something less # flaky than the path+filename of the movie, but this is good for a initial # go. # # Revision 1.25 2003/03/17 15:47:16 outlyer # Merged patch from Angel [EMAIL PROTECTED] for Jump to # functionality. # # #
[Freevo-cvslog] freevo/src/video __init__.py,1.4,1.5 configure.py,1.10,1.11 videoitem.py,1.56,1.57 xml_parser.py,1.20,1.21 mplayer.py,1.43,NONE
Update of /cvsroot/freevo/freevo/src/video In directory sc8-pr-cvs1:/tmp/cvs-serv27796 Modified Files: __init__.py configure.py videoitem.py xml_parser.py Removed Files: mplayer.py Log Message: o mmpython support o mplayer is now a plugin Index: __init__.py === RCS file: /cvsroot/freevo/freevo/src/video/__init__.py,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** __init__.py 28 Apr 2003 17:57:11 - 1.4 --- __init__.py 29 Jun 2003 20:43:30 - 1.5 *** *** 10,13 --- 10,17 # --- # $Log$ + # Revision 1.5 2003/06/29 20:43:30 dischi + # o mmpython support + # o mplayer is now a plugin + # # Revision 1.4 2003/04/28 17:57:11 dischi # exception handling for bad fxd files *** *** 43,46 --- 47,51 + import mmpython import config import util *** *** 64,68 for file in util.find_matches(files, config.SUFFIX_VIDEO_FILES): ! x = VideoItem(file, parent) if parent.media: file_id = parent.media.id + file[len(os.path.join(parent.media.mountdir,)):] --- 69,78 for file in util.find_matches(files, config.SUFFIX_VIDEO_FILES): ! if parent.media: ! url = 'cd://%s:%s:%s' % (parent.media.devicename, parent.media.mountdir, ! file[len(parent.media.mountdir)+1:]) ! else: ! url = file ! x = VideoItem(file, parent, mmpython.parse(url)) if parent.media: file_id = parent.media.id + file[len(os.path.join(parent.media.mountdir,)):] Index: configure.py === RCS file: /cvsroot/freevo/freevo/src/video/configure.py,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** configure.py24 Apr 2003 19:56:42 - 1.10 --- configure.py29 Jun 2003 20:43:30 - 1.11 *** *** 10,13 --- 10,17 # --- # $Log$ + # Revision 1.11 2003/06/29 20:43:30 dischi + # o mmpython support + # o mplayer is now a plugin + # # Revision 1.10 2003/04/24 19:56:42 dischi # comment cleanup for 1.3.2-pre4 *** *** 74,79 global current_xml_file items = [] ! for a in arg.available_audio_tracks: ! items += [ menu.MenuItem(a[1], audio_selection, (arg, a[0])) ] moviemenu = menu.Menu('AUDIO MENU', items, xml_file=current_xml_file) menuw.pushmenu(moviemenu) --- 78,85 global current_xml_file items = [] ! for a in arg.info['audio']: ! txt = '%s (channels=%s, codec=%s, id=%s)' % (a['language'], a['channels'], ! a['codec'], a['id']) ! items.append(menu.MenuItem(txt, audio_selection, (arg, a['id']))) moviemenu = menu.Menu('AUDIO MENU', items, xml_file=current_xml_file) menuw.pushmenu(moviemenu) *** *** 93,98 items += [ menu.MenuItem(no subtitles, subtitle_selection, (arg, None)) ] ! for s in arg.available_subtitles: ! items += [ menu.MenuItem(s[1], subtitle_selection, (arg, s[0])) ] moviemenu = menu.Menu('SUBTITLE MENU', items, xml_file=current_xml_file) menuw.pushmenu(moviemenu) --- 99,104 items += [ menu.MenuItem(no subtitles, subtitle_selection, (arg, None)) ] ! for s in range(len(arg.info['subtitles'])): ! items.append(menu.MenuItem(arg.info['subtitles'][s], subtitle_selection, (arg, s))) moviemenu = menu.Menu('SUBTITLE MENU', items, xml_file=current_xml_file) menuw.pushmenu(moviemenu) *** *** 110,114 global current_xml_file items = [] ! for c in range(1, arg.available_chapters+1): items += [ menu.MenuItem(play chapter %s % c, chapter_selection, (arg, ' -chapter %s' % c)) ] --- 116,120 global current_xml_file items = [] ! for c in range(1, arg.info['chapters']): items += [ menu.MenuItem(play chapter %s % c, chapter_selection, (arg, ' -chapter %s' % c)) ] *** *** 147,159 items = [] ! if item.available_audio_tracks: ! items += [ menu.MenuItem(Audio selection, audio_selection_menu, item) ] ! ! if item.available_subtitles: ! items += [ menu.MenuItem(Subtitle selection, subtitle_selection_menu, item) ] ! ! if item.available_chapters 1: ! items += [ menu.MenuItem(Chapter selection, chapter_selection_menu, item) ] ! items += [ add_toogle('deinterlacing', item, 'deinterlace') ] items += [ menu.MenuItem(Play, play_movie, (item, '')) ] --- 153,163 items =
[Freevo-cvslog] freevo/src directory.py,1.15,1.16 item.py,1.18,1.19 main.py,1.48,1.49
Update of /cvsroot/freevo/freevo/src In directory sc8-pr-cvs1:/tmp/cvs-serv28138 Modified Files: directory.py item.py main.py Log Message: mmpython support Index: directory.py === RCS file: /cvsroot/freevo/freevo/src/directory.py,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** directory.py14 Jun 2003 00:09:40 - 1.15 --- directory.py29 Jun 2003 20:45:14 - 1.16 *** *** 10,13 --- 10,16 # --- # $Log$ + # Revision 1.16 2003/06/29 20:45:14 dischi + # mmpython support + # # Revision 1.15 2003/06/14 00:09:40 outlyer # The Smartsort code. You can enable it in local_conf, it's disabled *** *** 106,109 --- 109,113 import image import games + import mmpython import event as em *** *** 113,116 --- 117,121 import gui.PasswordInputBox as PasswordInputBox import gui.AlertBox as AlertBox + from gui.PopupBox import PopupBox # XML support *** *** 290,303 - def getattr(self, attr): - - return the specific attribute as string or an empty string - - a = Item.getattr(self, attr) - if not a and self.info and self.info.has_key(attr): - a = str(self.info[attr]) - return a - - def cwd(self, arg=None, menuw=None): --- 295,298 *** *** 363,366 --- 358,384 # can also remove directories + mmpython_dir = self.dir + if self.media: + if self.dir != self.media.mountdir: + mmpython_dir = None + num_changes = 0 + else: + mmpython_dir = 'cd://%s:%s:' % (self.media.devicename, self.media.mountdir) + + if mmpython_dir: + num_changes = mmpython.check_cache(mmpython_dir) + + pop = None + + if num_changes 10: + if self.media: + pop = PopupBox(text='Scanning disc, be patient...') + else: + pop = PopupBox(text='Scanning directory, be patient...') + pop.show() + + if num_changes 0: + mmpython.cache_dir(mmpython_dir) + play_items = [] for t in ( 'video', 'audio', 'image', 'games' ): *** *** 441,444 --- 459,469 title = self.name + if pop: + pop.destroy() + # closing the poup will rebuild the menu which may umount + # the drive + if self.media: + self.media.mount() + # autoplay if len(items) == 1 and items[0].actions() and \ *** *** 462,470 dirwatcher_thread.start() ! dirwatcher_thread.cwd(self, item_menu, self.dir, self.all_files) self.menu = item_menu return items def reload(self): --- 487,500 dirwatcher_thread.start() ! if self.media: ! # don't watch rom drives ! dirwatcher_thread.cwd(self, item_menu, None, self.all_files) ! else: ! dirwatcher_thread.cwd(self, item_menu, self.dir, self.all_files) self.menu = item_menu return items + def reload(self): *** *** 606,609 --- 636,640 # reload the menu, use an event to avoid problems because this function # was called by a thread + del self.menu.skin_force_text_view rc.post_event('MENU_REBUILD') *** *** 638,641 --- 669,675 def scan(self): + if not self.dir: + return + self.lock.acquire() Index: item.py === RCS file: /cvsroot/freevo/freevo/src/item.py,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** item.py 22 Jun 2003 20:48:45 - 1.18 --- item.py 29 Jun 2003 20:45:14 - 1.19 *** *** 10,13 --- 10,16 # --- # $Log$ + # Revision 1.19 2003/06/29 20:45:14 dischi + # mmpython support + # # Revision 1.18 2003/06/22 20:48:45 dischi # special len() support for new info_area *** *** 82,87 # class Item: ! def __init__(self, parent = None): ! self.name = None# name in menu self.image = None # imagefile --- 85,89 # class Item: ! def __init__(self, parent = None, info = None): self.image = None # imagefile *** *** 92,95 --- 94,110
[Freevo-cvslog] freevo freevo_config.py,1.200,1.201
Update of /cvsroot/freevo/freevo In directory sc8-pr-cvs1:/tmp/cvs-serv29567 Modified Files: freevo_config.py Log Message: mplayer for video is now a plugin Index: freevo_config.py === RCS file: /cvsroot/freevo/freevo/freevo_config.py,v retrieving revision 1.200 retrieving revision 1.201 diff -C2 -d -r1.200 -r1.201 *** freevo_config.py27 Jun 2003 10:58:06 - 1.200 --- freevo_config.py29 Jun 2003 20:46:30 - 1.201 *** *** 277,280 --- 277,283 + # use mplayer for video playpack + plugin.activate('video.mplayer') + # use mplayer for audio playpack plugin.activate('audio.mplayer') --- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01 ___ Freevo-cvslog mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-cvslog
[Freevo-cvslog] freevo/src/audio/eyeD3 tag.py,1.1,NONE
Update of /cvsroot/freevo/freevo/src/audio/eyeD3 In directory sc8-pr-cvs1:/tmp/cvs-serv31034 Removed Files: tag.py Log Message: removed --- tag.py DELETED --- --- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01 ___ Freevo-cvslog mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-cvslog
Re: [Freevo-devel] CVS users please read
Also, mmpython is available from my apt source (Debian) just do an apt-get install python2.2-mmpython to try it On Sun, Jun 29, 2003 at 10:35:38PM +0200, Dirk Meyer wrote: Hi, now that 1.3.2 is out, it's time to include the changes to Freevo I made today. These are major changes and maybe something is broken now :-( Freevo now needs mmpython (www.sf.net/projects/mmpython). There is no release out yet, you have to use cvs. Since I made some changes in mmpython today and cvs is 24 hours behind, maybe you have to wait some time until you can use freevo again (sorry for that). What I have done: o Freevo now uses mmpython and it's cache to scan media files and discs. Discs will be only read once, after that it's everything in the cache (mp3 tags, dvd titles/audio, audio cd cddb tags), infos from files are cached, too. o Update the info area to the new code from Gustavo and changed all skins to use the new format. blue2 also shows some extra informations from mmpython. o mplayer in video is now a plugin, feel free to write ogle.py or xine.py Dischi, 'cvs ci'-now -- If windows is the answer, it must have been a stupid question. --- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01 ___ Freevo-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-devel --- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01 ___ Freevo-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-devel
[Freevo-devel] Re: mmpython issue, part 2
Aubin Paul wrote: Ok, the problem is pretty simple. If a file has only an id3v2 tag, but no id3v1 tag, the parsing does not happen at all. That needs to be fixed :-) Dischi P.S.: since cvs is behind, there is the current mmpython (working with the current freevo cvs) on mmpython.sf.net -- program, n.: A magic spell cast over a computer allowing it to turn one's input into error messages. tr.v. To engage in a pastime similar to banging one's head against a wall, but with fewer opportunities for reward. --- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01 ___ Freevo-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-devel
[Freevo-cvslog] freevo/src/video videoitem.py,1.57,1.58 xml_parser.py,1.21,1.22
Update of /cvsroot/freevo/freevo/src/video In directory sc8-pr-cvs1:/tmp/cvs-serv4864/src/video Modified Files: videoitem.py xml_parser.py Log Message: subtitle and audio now use the path to files and are quoted. Index: videoitem.py === RCS file: /cvsroot/freevo/freevo/src/video/videoitem.py,v retrieving revision 1.57 retrieving revision 1.58 diff -C2 -d -r1.57 -r1.58 *** videoitem.py29 Jun 2003 20:43:30 - 1.57 --- videoitem.py29 Jun 2003 21:31:55 - 1.58 *** *** 10,13 --- 10,16 # --- # $Log$ + # Revision 1.58 2003/06/29 21:31:55 gsbarbieri + # subtitle and audio now use the path to files and are quoted. + # # Revision 1.57 2003/06/29 20:43:30 dischi # o mmpython support *** *** 459,463 if d: util.mount(d) ! mplayer_options += ' -sub %s' % f if self.audio_file: --- 462,466 if d: util.mount(d) ! mplayer_options += ' -sub %s' % f if self.audio_file: *** *** 466,470 if d: util.mount(d) ! mplayer_options += ' -audiofile %s' % f if arg: --- 469,473 if d: util.mount(d) ! mplayer_options += ' -audiofile %s' % f if arg: Index: xml_parser.py === RCS file: /cvsroot/freevo/freevo/src/video/xml_parser.py,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** xml_parser.py 29 Jun 2003 20:43:30 - 1.21 --- xml_parser.py 29 Jun 2003 21:31:56 - 1.22 *** *** 10,13 --- 10,16 # --- # $Log$ + # Revision 1.22 2003/06/29 21:31:56 gsbarbieri + # subtitle and audio now use the path to files and are quoted. + # # Revision 1.21 2003/06/29 20:43:30 dischi # o mmpython support *** *** 557,560 --- 560,572 mitem = None if variants: + for v in variants: + for p in v[ 'parts' ]: + for i in ( 'audio', 'subtitle' ): + if p.has_key( i ) and p[ i ].has_key( 'file' ): + filename = p[ i ][ 'file' ] + filename = os.path.join( dir, filename ) + if os.path.isfile( filename ): + p[ i ][ 'file' ] = filename + mitem = make_videoitem(video, variants[0]) else: --- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01 ___ Freevo-cvslog mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-cvslog
[Freevo-devel] Joystick Double Events.
Greetings, Im playing with using a RF/USB/joystick as a remote control. Its pretty nice.. Anyway, I was getting double events.. For instance I would hit down and the main menu would go down two lines instead of one... Ive researched the problem as best I can and I think the problem is in rc.py Specifically the code: code def post_event(self, e): if not isinstance(e, Event): self.queue += [ Event(e, context=self.context) ] self.queue += [ e ] /code I dont have a LIRC setup, and I dont have config.ENABLE_NETWORK_REMOTE, and I dont know python yet... I think both self.queue += are happening.. I changed the code to: code def post_event(self, e): if not isinstance(e, Event): self.queue += [ Event(e, context=self.context) ] if isinstance(e, Event): self.queue += [ e ] /code and things worked better.. Only one event per button press.. So.. I hope this is detailed enough for one of you experts to understand the problem. Let me know if I can help more :) Thanks everyone for the fantastic software! I hope to be contributing more in the future.. ___ No banners. No pop-ups. No kidding. Introducing My Way - http://www.myway.com --- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01 ___ Freevo-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-devel
[Freevo-cvslog] freevo/WIP/Aubin populator.py,NONE,1.1 sqlitetest.py,1.1,NONE
Update of /cvsroot/freevo/freevo/WIP/Aubin In directory sc8-pr-cvs1:/tmp/cvs-serv9159 Added Files: populator.py Removed Files: sqlitetest.py Log Message: A working prototype. This example can populate a database with songs in a path, and then will generate a playlist of tracks from 2002 automatically. You may need to edit it since it's got paths hardcoded. Currently, it doesn't calculate MD5 checksums, though I would like to suggest to the mmpython developers that they add some sort of checksum to the dictionary returned. MD5 might be overkill or slow, but something would be nice, and it would make it easy for people to move files around but preserve playcounts and such. --- NEW FILE: populator.py --- import os,string,fnmatch def recursefolders(root, recurse=0, pattern='*', return_folders=0): # Before anyone asks why I didn't use os.path.walk; it's simple, # os.path.walk is difficult, clunky and doesn't work right in my # mind. # # Here's how you use this function: # # songs = recursefolders('/media/Music/Guttermouth',1,'*.mp3',1): # for song in songs: # print song # # Should be easy to add to the mp3.py app. # initialize result = [] # must have at least root folder try: names = os.listdir(root) except os.error: return result # expand pattern pattern = pattern or '*' pat_list = string.splitfields( pattern , ';' ) # check each file for name in names: fullname = os.path.normpath(os.path.join(root, name)) # grab if it matches our pattern and entry type for pat in pat_list: if fnmatch.fnmatch(name, pat): if os.path.isfile(fullname) or \ (return_folders and os.path.isdir(fullname)): result.append(fullname) continue # recursively scan other folders, appending results if recurse: if os.path.isdir(fullname) and not os.path.islink(fullname): result = result + recursefolders( fullname, recurse, pattern, return_folders ) return result def create_db(db='db'): import sqlite import time db = sqlite.connect(db) cursor = db.cursor() cursor.execute(CREATE TABLE music (id INTEGER PRIMARY KEY, md5 VARCHAR(33), path VARCHAR(255), filename VARCHAR(255), type VARCHAR(3), artist VARCHAR(255), title VARCHAR(255), album VARCHAR(255), year VARCHAR(255), track NUMERIC(3), track_total NUMERIC(3), bpm NUMERIC(3), last_play timestamp, play_count NUMERIC, start_time VARCHAR, end_time VARCHAR, rating NUMERIC, eq VARCHAR)) db.commit() def make_query(filename): import os, time import mmpython # temporary md5 = 'null' if not os.path.exists(filename): print File %s does not exist % (filename) return None a = mmpython.parse(filename) # This is ugly, how do I clean it up? VALUES = '(null,%s,%s,%s,%s,%s,%s,%s,%i,%i,%i,%s,%f,%i,%s,%s,%i,%s)' \ % (md5,os.path.dirname(filename),os.path.basename(filename), \ 'mp3',a['artist'],a['title'],a['album'],int(a['date']),int(a['trackno'].split('/')[0]), \ int(a['trackno'].split('/')[1]), 100,0,0,'0','262',0,'null') SQL = 'INSERT INTO music VALUES ' + VALUES return SQL def make_playlist(): # Just an example of a possible playlist # Songs from 2002 import sqlite db = sqlite.connect(db) cursor = db.cursor() cursor.expected_types = [str, str] SQL = 'select path,filename from music where year=2002' cursor.execute(SQL) for row in cursor.fetchall(): print row[0] + / + row[1] db.close() def mainloop(path='/media/Music'): import sqlite import time db = sqlite.connect(db,autocommit=0) cursor = db.cursor() songs = recursefolders('/media/Music/As Friends Rust',1,'*.mp3',1) for song in songs: cursor.execute(make_query(song)) # Only call commit after we're done to save time... (autocommit slows down the db dramatically) db.commit() db.close() if __name__ == '__main__': mainloop('/media/Music/As Friends Rust') make_playlist() --- sqlitetest.py DELETED --- --- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01
[Freevo-devel] Re: mmpython issue, part 2
The new snapshot works now... I'll update the package on the Debian source. On Sun, Jun 29, 2003 at 11:10:34PM +0200, Dirk Meyer wrote: Aubin Paul wrote: Ok, the problem is pretty simple. If a file has only an id3v2 tag, but no id3v1 tag, the parsing does not happen at all. That needs to be fixed :-) Dischi P.S.: since cvs is behind, there is the current mmpython (working with the current freevo cvs) on mmpython.sf.net -- program, n.: A magic spell cast over a computer allowing it to turn one's input into error messages. tr.v. To engage in a pastime similar to banging one's head against a wall, but with fewer opportunities for reward. --- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01 ___ Freevo-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-devel
[Freevo-devel] Freevo 1.3.2 is out
Hi, the subject says it all. Here the Changelog: * Plugin interface * Converted some functions into plugins * detach plugin to listen to music in the background * IMDB search and XML generation plugin * Album cover search plugin * IMDB Info plugin * New skin engine * Reactivated and fixed GUI code * Bugfixes * Added experimental support for tvtime (= 0.9.8.3) for TV viewing. tvtime supports Xvideo, directfb, and mga_vid with good deinterlacing, smoother picture, better audio sync, OSD and reduced CPU usage when compared to Mplayer for TV viewing. * Support for more formats in the Image Viewer * Daylight Saving Time fixes * Shout/Icecast playback/bookmarks * Preliminary TV Recording schedule editor * Web radio support * Major cleanup of old files in the source tree * Converted some very large PNG files into high quality JPEGs * Removed obsolete data * many other things :-) Because we had some problems with the runtime, dxr3 and dfbmga support is removed from the runtime. We think we you can patch your kernel, you can also patch SDL yourself :-) Report bugs here or at #freevo on irc.gnu.org Dischi -- Computer Science: solving today's problems tomorrow. --- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01 ___ Freevo-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-devel
Re: [Freevo-devel] Freevo 1.3.2 is out
The binary release is also now available. This contains the runtime and dependencies. -Rob Dirk Meyer wrote: Hi, the subject says it all. Here the Changelog: * Plugin interface * Converted some functions into plugins * detach plugin to listen to music in the background * IMDB search and XML generation plugin * Album cover search plugin * IMDB Info plugin * New skin engine * Reactivated and fixed GUI code * Bugfixes * Added experimental support for tvtime (= 0.9.8.3) for TV viewing. tvtime supports Xvideo, directfb, and mga_vid with good deinterlacing, smoother picture, better audio sync, OSD and reduced CPU usage when compared to Mplayer for TV viewing. * Support for more formats in the Image Viewer * Daylight Saving Time fixes * Shout/Icecast playback/bookmarks * Preliminary TV Recording schedule editor * Web radio support * Major cleanup of old files in the source tree * Converted some very large PNG files into high quality JPEGs * Removed obsolete data * many other things :-) Because we had some problems with the runtime, dxr3 and dfbmga support is removed from the runtime. We think we you can patch your kernel, you can also patch SDL yourself :-) Report bugs here or at #freevo on irc.gnu.org Dischi --- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01 ___ Freevo-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-devel
[Freevo-wikilog] [Freevo Wiki] Update of FrequentlyAskedQuestions
Dear Wiki user, You have subscribed to a wiki page or wiki category on Freevo Wiki for change notification. The following page has been changed by 69.3.228.82: http://freevo.sourceforge.net/cgi-bin/moin.cgi/FrequentlyAskedQuestions The comment on the change is: -- fihzy -- @@ -187,13 +187,11 @@ = How do I program freevo/mplayer to make custom skips in a movie with a remote control? = - -This description applies to freevo version 1.32-pre2. To make mplayer skip 10 minutes forward and backward in a movie for example we have to modify local.conf: {{{ -RC_MPLAYER_CMDS = { -'PREV' : ('seek -600', 'Seek -10 minutes' ), -'NEXT' : ('seek 600', 'Seek 10 minutes' ) -} +This description applies to freevo version 1.3.2 (full release) To make mplayer skip 10 minutes forward and backward in a movie for example we have to modify local_conf.py: +EVENTS['video']['PREV'] = Event(VIDEO_SEND_MPLAYER_CMD, arg='seek -600') +EVENTS['video']['NEXT'] = Event(VIDEO_SEND_MPLAYER_CMD, arg='seek 600') + }}} That way we let freevo know what to send to mplayer to do what we want and assign the commands to the names PREV and NEXT. Now, we need to modify /etc/freevo/lircrc to use the commands PREV and NEXT. Example: {{{ --- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01 ___ Freevo-wikilog mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-wikilog
[Freevo-cvslog] freevo/WIP/Aubin populator.py,1.1,1.2
Update of /cvsroot/freevo/freevo/WIP/Aubin In directory sc8-pr-cvs1:/tmp/cvs-serv8593 Modified Files: populator.py Log Message: I've tested it on around 250 of my own MP3 files now, so I'm going to clean it up and add it to helpers. After that: 1. Plugin to show the information (read-only) in Freevo 2. Override the play functions in the audio player to add playstamps and counts to the db 3. Come up with a way to make 'sql' playlists. Index: populator.py === RCS file: /cvsroot/freevo/freevo/WIP/Aubin/populator.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** populator.py29 Jun 2003 22:02:02 - 1.1 --- populator.py30 Jun 2003 02:48:30 - 1.2 *** *** 1,5 --- 1,11 import os,string,fnmatch + # get this from config.py + CACHEDIR='/tmp/' + DBFILE ='freevo.sqlite' + DATABASE = CACHEDIR+DBFILE + def recursefolders(root, recurse=0, pattern='*', return_folders=0): + # get this from util.py # Before anyone asks why I didn't use os.path.walk; it's simple, # os.path.walk is difficult, clunky and doesn't work right in my *** *** 48,59 ! def create_db(db='db'): import sqlite import time ! db = sqlite.connect(db) cursor = db.cursor() cursor.execute(CREATE TABLE music (id INTEGER PRIMARY KEY, md5 VARCHAR(33), path VARCHAR(255), filename VARCHAR(255), type VARCHAR(3), artist VARCHAR(255), title VARCHAR(255), album VARCHAR(255), year VARCHAR(255), track NUMERIC(3), track_total NUMERIC(3), bpm NUMERIC(3), last_play timestamp, play_count NUMERIC, start_time VARCHAR, end_time VARCHAR, rating NUMERIC, eq VARCHAR)) db.commit() def make_query(filename): --- 54,75 ! def create_db(): import sqlite import time ! db = sqlite.connect(DATABASE) cursor = db.cursor() cursor.execute(CREATE TABLE music (id INTEGER PRIMARY KEY, md5 VARCHAR(33), path VARCHAR(255), filename VARCHAR(255), type VARCHAR(3), artist VARCHAR(255), title VARCHAR(255), album VARCHAR(255), year VARCHAR(255), track NUMERIC(3), track_total NUMERIC(3), bpm NUMERIC(3), last_play timestamp, play_count NUMERIC, start_time VARCHAR, end_time VARCHAR, rating NUMERIC, eq VARCHAR)) db.commit() + db.close() + + + def inti(a): + # override int for null values + if a: + return int(a) + else: + return 0 + def make_query(filename): *** *** 61,64 --- 77,82 import mmpython + import fchksum + # temporary md5 = 'null' *** *** 69,79 a = mmpython.parse(filename) # This is ugly, how do I clean it up? ! VALUES = '(null,%s,%s,%s,%s,%s,%s,%s,%i,%i,%i,%s,%f,%i,%s,%s,%i,%s)' \ ! % (md5,os.path.dirname(filename),os.path.basename(filename), \ ! 'mp3',a['artist'],a['title'],a['album'],int(a['date']),int(a['trackno'].split('/')[0]), \ !int(a['trackno'].split('/')[1]), 100,0,0,'0','262',0,'null') SQL = 'INSERT INTO music VALUES ' + VALUES --- 87,109 a = mmpython.parse(filename) + # You really, really want fchksum for this, it's about twice as fast as raw python. + md5 = fchksum.fmd5t(filename)[0] # This is ugly, how do I clean it up? + trackno = -1 + trackof = -1 + + + if a['trackno']: + trackno = inti(a['trackno'].split('/')[0]) + if a['trackno'].find('/') != -1: + trackof = inti(a['trackno'].split('/')[1]) + ! ! VALUES = (null,\'%s\',\'%s\',\'%s\',\'%s\',\'%s\',\'%s\',\'%s\',%i,%i,%i,\'%s\',%f,%i,\'%s\',\'%s\',%i,\'%s\') \ ! % (md5,escape(os.path.dirname(filename)),escape(os.path.basename(filename)), \ ! 'mp3',escape(a['artist']),escape(a['title']),escape(a['album']),inti(a['date']),trackno, \ !trackof, 100,0,0,'0','262',0,'null') SQL = 'INSERT INTO music VALUES ' + VALUES *** *** 86,90 # Songs from 2002 import sqlite ! db = sqlite.connect(db) cursor = db.cursor() cursor.expected_types = [str, str] --- 116,120 # Songs from 2002 import sqlite ! db = sqlite.connect(DATABASE) cursor = db.cursor() cursor.expected_types = [str, str] *** *** 96,109 ! def mainloop(path='/media/Music'): import sqlite import time ! db = sqlite.connect(db,autocommit=0) cursor = db.cursor() ! songs = recursefolders('/media/Music/As Friends Rust',1,'*.mp3',1) for song in songs: ! cursor.execute(make_query(song)) # Only call commit after we're done to save time... (autocommit slows down the db dramatically) --- 126,156 ! def escape(sql): ! if sql: ! sql = sql.replace('\'','\'\'') ! return sql ! return 'null' ! ! ! def
Re: [Freevo-devel] Errors in helpers/imdb.py
One more thing: we should have a dir, configurable via local_conf.py, where we should store those .fxd files it they cannot be written in the movie dir. Gustavo --- Gustavo Sverzut Barbieri [EMAIL PROTECTED] escreveu: Hello, Trying to get the imdb cover for a CD with a movie (.avi) inside I found 2 bugs: 1) It tries to save it in the CD, but it can't :) 2) There is a buggy code in: def download_image(url, filename) there is a block: except IOError: print Writing image failed conn.close() return None Where 'conn' doesn't exists! Maybe it's 'r' from: try: r = urllib2.urlopen(req) however, if this is right, where are the other r.close() ? Gustavo ___ Yahoo! Mail Mais espaço, mais segurança e gratuito: caixa postal de 6MB, antivírus, proteção contra spam. http://br.mail.yahoo.com/ --- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01 ___ Freevo-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-devel ___ Yahoo! Mail Mais espaço, mais segurança e gratuito: caixa postal de 6MB, antivírus, proteção contra spam. http://br.mail.yahoo.com/ --- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01 ___ Freevo-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-devel
[Freevo-cvslog] freevo/helpers musicsqlimport.py,NONE,1.1
Update of /cvsroot/freevo/freevo/helpers In directory sc8-pr-cvs1:/tmp/cvs-serv13420/helpers Added Files: musicsqlimport.py Log Message: Ok, I think this is a pretty good preliminary version, and since it doesn't touch anything else, I think it could go into helpers. Current issue: The big one is that it tries to reimport entries even if they already exist, it'll probably fail when that happens. As it stands though, I imported 400 entries of varying tag quality with md5 checksums into a new database in around 27s. I'm using the config entries to figure out which folders to add and where to put the database. --- NEW FILE: musicsqlimport.py --- #!/usr/bin/env python # The basics import os,string,fnmatch,sys # The DB stuff import sqlite # Metadata tools import mmpython,fchksum sys.path.append('./src/') import config, util CACHEDIR = config.FREEVO_CACHEDIR DBFILE ='freevo.sqlite' DATABASE = CACHEDIR +/ + DBFILE print DATABASE # Utility functions def inti(a): if a: return int(a) else: return 0 def escape(sql): if sql: sql = sql.replace('\'','\'\'') return sql return 'null' # Only call once... how do we check if the tables exist? def check_db(): # verify the database exists if not os.path.exists(DATABASE): return None # verify the table exists db = sqlite.connect(DATABASE) cursor = db.cursor() cursor.execute('SELECT name FROM sqlite_master where name=music and type=table') if not cursor.fetchone()[0] == 'music': return None return DATABASE def create_db(): print DATABASE db = sqlite.connect(DATABASE) cursor = db.cursor() cursor.execute(CREATE TABLE music (id INTEGER PRIMARY KEY, dirtitle VARCHAR(255), md5 VARCHAR(33), path VARCHAR(255), filename VARCHAR(255), type VARCHAR(3), artist VARCHAR(255), title VARCHAR(255), album VARCHAR(255), year VARCHAR(255), track NUMERIC(3), track_total NUMERIC(3), bpm NUMERIC(3), last_play timestamp, play_count NUMERIC, start_time VARCHAR, end_time VARCHAR, rating NUMERIC, eq VARCHAR)) db.commit() db.close() def make_query(filename,dirtitle): md5 = 'null' if not os.path.exists(filename): print File %s does not exist % (filename) return None a = mmpython.parse(filename) # You really, really want fchksum for this, it's about twice as fast as raw python. md5 = fchksum.fmd5t(filename)[0] # This is ugly, how do I clean it up? trackno = -1 trackof = -1 if a['trackno']: trackno = inti(a['trackno'].split('/')[0]) if a['trackno'].find('/') != -1: trackof = inti(a['trackno'].split('/')[1]) VALUES = (null,\'%s\',\'%s\',\'%s\',\'%s\',\'%s\',\'%s\',\'%s\',\'%s\',%i,%i,%i,\'%s\',%f,%i,\'%s\',\'%s\',%i,\'%s\') \ % (escape(dirtitle),md5,escape(os.path.dirname(filename)),escape(os.path.basename(filename)), \ 'mp3',escape(a['artist']),escape(a['title']),escape(a['album']),inti(a['date']),trackno, \ trackof, 100,0,0,'0','262',0,'null') SQL = 'INSERT INTO music VALUES ' + VALUES return SQL def mainloop(path='/media/Music',dirtitle='',type='*.mp3'): db = sqlite.connect(DATABASE,autocommit=0) cursor = db.cursor() songs = util.recursefolders(path,1,type,1) tempvar = '' for song in songs: cursor.execute(make_query(song,dirtitle)) # Only call commit after we're done to save time... (autocommit slows down the db dramatically) db.commit() db.close() if __name__ == '__main__': if not check_db(): print Creating data file... create_db() print Populating Database with entries for dir in config.DIR_AUDIO: print Scanning %s % dir[0] mainloop(dir[1],dir[0]) --- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01 ___ Freevo-cvslog mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-cvslog
[Freevo-cvslog] freevo/src/audio/plugins sqlmusic_view.py,NONE,1.1
Update of /cvsroot/freevo/freevo/src/audio/plugins In directory sc8-pr-cvs1:/tmp/cvs-serv16156 Added Files: sqlmusic_view.py Log Message: Just a quick plugin to look at the contents of the database. --- NEW FILE: sqlmusic_view.py --- # --- # sqlmusic_view.py - Plugin for displaying information stored in sqlite # --- # # Notes: Info plugin. #You can show music information from the sqlite database. #Activate with: plugin.activate('audio.sqlmusic_view') #You can also bind it to a key (in this case key 2): #EVENTS['menu']['2'] = Event(MENU_CALL_ITEM_ACTION, arg='sqlmusic_view') # # Currently, this serves little purpose unless you want to work on the sql # music stuff, in which case it's a convenient way to make sure stuff is working. # # --- import os import menu import config import plugin import re import time import sqlite from gui.AlertBox import AlertBox class PluginInterface(plugin.ItemPlugin): def actions(self, item): self.item = item if item.type == 'audio': return [ ( self.info_show, 'Show database information for this file', 'info_showdata') ] return [] def info_show(self, arg=None, menuw=None): show info for this item file = self.item.filename db = sqlite.connect('%s/freevo.sqlite' % (config.FREEVO_CACHEDIR)) cursor = db.cursor() sql = 'SELECT md5, last_play,play_count,rating FROM music' + \ ' WHERE path = \'%s\' and filename = \'%s\'' % (os.path.dirname(file), os.path.basename(file)) print sql cursor.execute(sql) md5,last_play,play_count,rating = cursor.fetchone() box = AlertBox(width=550, height=400, text='MD5: %s\nLast Play: %s\nPlay Count: %s\nRating: %s\n' % (str(md5),str(last_play),str(play_count),str(rating))) box.show() db.close() return --- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01 ___ Freevo-cvslog mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-cvslog
[Freevo-cvslog] freevo/src/audio/plugins sqlmusic_view.py,1.1,1.2
Update of /cvsroot/freevo/freevo/src/audio/plugins In directory sc8-pr-cvs1:/tmp/cvs-serv16282 Modified Files: sqlmusic_view.py Log Message: Removed a stray print. Index: sqlmusic_view.py === RCS file: /cvsroot/freevo/freevo/src/audio/plugins/sqlmusic_view.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** sqlmusic_view.py30 Jun 2003 03:51:29 - 1.1 --- sqlmusic_view.py30 Jun 2003 03:52:28 - 1.2 *** *** 49,53 ' WHERE path = \'%s\' and filename = \'%s\'' % (os.path.dirname(file), os.path.basename(file)) - print sql cursor.execute(sql) md5,last_play,play_count,rating = cursor.fetchone() --- 49,52 --- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01 ___ Freevo-cvslog mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-cvslog
Re: [Freevo-devel] Freevo 1.3.2 is out
Dirk Meyer wrote: Hi, the subject says it all. Here the Changelog: Great work! I've submitted the Freshmeat release notice, it usually gets posted within a day or so. / Krister --- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01 ___ Freevo-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-devel
[Freevo-cvslog] freevo/helpers musicsqlimport.py,1.1,1.2
Update of /cvsroot/freevo/freevo/helpers In directory sc8-pr-cvs1:/tmp/cvs-serv21043/helpers Modified Files: musicsqlimport.py Log Message: Changed type of 'last_play' field to float so we can use python's time.time() instead of timestamps. Index: musicsqlimport.py === RCS file: /cvsroot/freevo/freevo/helpers/musicsqlimport.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** musicsqlimport.py 30 Jun 2003 03:29:37 - 1.1 --- musicsqlimport.py 30 Jun 2003 04:38:47 - 1.2 *** *** 52,56 db = sqlite.connect(DATABASE) cursor = db.cursor() ! cursor.execute(CREATE TABLE music (id INTEGER PRIMARY KEY, dirtitle VARCHAR(255), md5 VARCHAR(33), path VARCHAR(255), filename VARCHAR(255), type VARCHAR(3), artist VARCHAR(255), title VARCHAR(255), album VARCHAR(255), year VARCHAR(255), track NUMERIC(3), track_total NUMERIC(3), bpm NUMERIC(3), last_play timestamp, play_count NUMERIC, start_time VARCHAR, end_time VARCHAR, rating NUMERIC, eq VARCHAR)) db.commit() db.close() --- 52,56 db = sqlite.connect(DATABASE) cursor = db.cursor() ! cursor.execute(CREATE TABLE music (id INTEGER PRIMARY KEY, dirtitle VARCHAR(255), md5 VARCHAR(33), path VARCHAR(255), filename VARCHAR(255), type VARCHAR(3), artist VARCHAR(255), title VARCHAR(255), album VARCHAR(255), year VARCHAR(255), track NUMERIC(3), track_total NUMERIC(3), bpm NUMERIC(3), last_play float, play_count NUMERIC, start_time VARCHAR, end_time VARCHAR, rating NUMERIC, eq VARCHAR)) db.commit() db.close() --- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01 ___ Freevo-cvslog mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-cvslog
[Freevo-cvslog] freevo/src/audio/plugins sqlmusic_view.py,1.2,1.3
Update of /cvsroot/freevo/freevo/src/audio/plugins In directory sc8-pr-cvs1:/tmp/cvs-serv22848 Modified Files: sqlmusic_view.py Log Message: I think people like human readable dates more than floating point seconds. Index: sqlmusic_view.py === RCS file: /cvsroot/freevo/freevo/src/audio/plugins/sqlmusic_view.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** sqlmusic_view.py30 Jun 2003 03:52:28 - 1.2 --- sqlmusic_view.py30 Jun 2003 04:53:55 - 1.3 *** *** 53,57 box = AlertBox(width=550, height=400, text='MD5: %s\nLast Play: %s\nPlay Count: %s\nRating: %s\n' ! % (str(md5),str(last_play),str(play_count),str(rating))) box.show() db.close() --- 53,57 box = AlertBox(width=550, height=400, text='MD5: %s\nLast Play: %s\nPlay Count: %s\nRating: %s\n' ! % (str(md5),str(time.strftime(%a, %d %b %Y %I:%M:%P, time.localtime(last_play))),str(play_count),str(rating))) box.show() db.close() --- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01 ___ Freevo-cvslog mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-cvslog