[Freevo-devel] Re: Thoughts for next release

2003-06-29 Thread Dirk Meyer
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

2003-06-29 Thread Aubin Paul
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

2003-06-29 Thread outlyer
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

2003-06-29 Thread outlyer
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

2003-06-29 Thread Aubin Paul
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

2003-06-29 Thread dischi
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

2003-06-29 Thread dischi
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...

2003-06-29 Thread Aubin Paul
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

2003-06-29 Thread Michael Ruelle
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

2003-06-29 Thread Aubin Paul
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

2003-06-29 Thread freevo-wikilog
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

2003-06-29 Thread Dirk Meyer
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

2003-06-29 Thread dischi
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

2003-06-29 Thread dischi
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

2003-06-29 Thread dischi
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

2003-06-29 Thread dischi
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

2003-06-29 Thread dischi
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

2003-06-29 Thread dischi
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

2003-06-29 Thread dischi
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

2003-06-29 Thread dischi
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

2003-06-29 Thread dischi
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

2003-06-29 Thread dischi
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

2003-06-29 Thread Aubin Paul
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

2003-06-29 Thread Dirk Meyer
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

2003-06-29 Thread gsbarbieri
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.

2003-06-29 Thread brian




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

2003-06-29 Thread outlyer
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

2003-06-29 Thread Aubin Paul
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

2003-06-29 Thread Dirk Meyer
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

2003-06-29 Thread Rob Shortt
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

2003-06-29 Thread freevo-wikilog
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

2003-06-29 Thread outlyer
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

2003-06-29 Thread Gustavo Sverzut Barbieri
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

2003-06-29 Thread outlyer
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

2003-06-29 Thread outlyer
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

2003-06-29 Thread outlyer
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

2003-06-29 Thread Krister Lagerstrom
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

2003-06-29 Thread outlyer
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

2003-06-29 Thread outlyer
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