Re: SV: [Freevo-devel] Re: FXD handler bugfixes

2003-12-09 Thread Matthieu Weber
On Tue 09.12.2003 at 07:49:37AM +0100, Peter Svensson wrote:
 Perhaps someone could add this to games as well ??  Please?

Add what to the games?

Matthieu
-- 
 (~._.~)Matthieu Weber - Université de Jyväskylä (~._.~)
  ( ? )email : [EMAIL PROTECTED]  ( ? ) 
 ()- -()   public key id : 452AE0AD  ()- -()
 (_)-(_)  Humor ist, wenn man trotzdem lacht (Germain Muller)  (_)-(_)


---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
Freevo-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-devel


SV: SV: [Freevo-devel] Re: FXD handler bugfixes

2003-12-09 Thread Peter Svensson
Sorry, it's early in the morning here in Sweden. :)  AFAIK it's still not
possible to play game images/roms which has spaces in their names - or
contain multiple '.', so the games subsystem would probably also benefit
from using the list calling convention instead of the double quotes.

/PS

-Ursprungligt meddelande-
Från: Matthieu Weber
Till: '[EMAIL PROTECTED] '
Skickat: 2003-12-09 08:09
Ämne: Re: SV: [Freevo-devel] Re: FXD handler bugfixes

On Tue 09.12.2003 at 07:49:37AM +0100, Peter Svensson wrote:
 Perhaps someone could add this to games as well ??  Please?

Add what to the games?

Matthieu
-- 
 (~._.~)Matthieu Weber - Université de Jyväskylä (~._.~)
  ( ? )email : [EMAIL PROTECTED]  ( ? ) 
 ()- -()   public key id : 452AE0AD  ()- -()
 (_)-(_)  Humor ist, wenn man trotzdem lacht (Germain Muller)  (_)-(_)


---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
Freevo-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-devel


---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
Freevo-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-devel


[Freevo-devel] Audio detach bug

2003-12-09 Thread Peter Svensson
I just finished adding xpdf to the games menu to read som dox in freevo. Not
optimal, but actually works OK.

I played some nice tune and thought to detach itandlisten to it while I read
some pdf. However, freevo crashed;

Spoiler; AttributeError: 'list' object has no attribute 'playerGUI'



mplayer.py (186): MPlayer.play(): Starting thread, cmd=['--prio=-20',
'/usr/bin/mplayer', '-slave', '-autosync', '100', '-nolirc', '-autoq',
'100', '-screenw', '800', '-screenh', '600', '-fs', '-vo', 'null', '-ao',
'oss:/dev/dsp', '', '-demuxer', '17', '', '', '/media/music/Chill/Aqua
Bassino - Pools/01 - Time to Go.mp3']
main.py (369): popen2 ['/usr/bin/mplayer', '-slave', '-autosync', '100',
'-nolirc', '-autoq', '100', '-screenw', '800', '-screenh', '600', '-fs',
'-vo', 'null', '-ao', 'oss:/dev/dsp', '-demuxer', '17',
'/media/music/Chill/Aqua Bassino - Pools/01 - Time to Go.mp3']
self.t1.isAlive()=True, self.t2.isAlive()=True
ChildApp.__init__(), pid=1767, app=/usr/bin/mplayer -slave -autosync 100
-nolirc -autoq 100 -screenw 800 -screenh 600 -fs -vo null -ao oss:/dev/dsp
-demuxer 17 /media/music/Chill/Aqua Bassino - Pools/01 - Time to Go.mp3,
poll=-1
Crash!
Traceback (most recent call last):
  File /usr/local/lib/python2.3/site-packages/freevo/main.py, line 521, in
?
main_func()
  File /usr/local/lib/python2.3/site-packages/freevo/main.py, line 394, in
main_func
event.arg()
  File
/usr/local/lib/python2.3/site-packages/freevo/audio/plugins/detach.py,
line 66, in detach
gui   = plugin.getbyname(plugin.AUDIO_PLAYER).playerGUI
AttributeError: 'list' object has no attribute 'playerGUI'
Stopping webserver plugin.
1 child(s) still running, terminate them
shutting down /usr/bin/mplayer -slave -autosync 100 -nolirc -autoq 100
-screenw 800 -screenh 600 -fs -vo null -ao oss:/dev/dsp -demuxer 17
/media/music/Chill/Aqua Bassino - Pools/01 - Time to Go.mp3
childapp.py (278): childapp: killing pid 1767 signal 15
childapp.py (284): childapp: Before wait(1767)
childapp.py (299): childapp: After wait()



/PS


---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
Freevo-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-devel


[Freevo-cvslog] freevo/WIP/Ruelle command.py,1.1,1.2

2003-12-09 Thread mikeruelle
Update of /cvsroot/freevo/freevo/WIP/Ruelle
In directory sc8-pr-cvs1:/tmp/cvs-serv24804

Modified Files:
command.py 
Log Message:
osd stop now almost works. still need waitpid tuple help

Index: command.py
===
RCS file: /cvsroot/freevo/freevo/WIP/Ruelle/command.py,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** command.py  7 Dec 2003 16:09:21 -   1.1
--- command.py  9 Dec 2003 13:28:59 -   1.2
***
*** 15,20 
  # ---
  # $Log$
! # Revision 1.1  2003/12/07 16:09:21  mikeruelle
! # use chidapp for running programs. allow fxd files for things like firebird instead 
of its own plugin. need implement stop osd. need to be able to get waitpid tuple from 
childapp.
  #
  # Revision 1.3  2003/11/30 14:35:43  dischi
--- 15,20 
  # ---
  # $Log$
! # Revision 1.2  2003/12/09 13:28:59  mikeruelle
! # osd stop now almost works. still need waitpid tuple help
  #
  # Revision 1.3  2003/11/30 14:35:43  dischi
***
*** 88,91 
--- 88,92 
  import config, menu, rc, plugin, util
  import childapp
+ import osd
  from event import *
  from item import Item
***
*** 288,294 
  
  def flashpopup(self, arg=None, menuw=None):
! popup_string=_(Running Command...)
! pop = PopupBox(text=popup_string)
! pop.show()
  
workapp = childapp.ChildApp(self.cmd, 'command', 1)
--- 289,298 
  
  def flashpopup(self, arg=None, menuw=None):
! if self.stoposd:
!   osd.stop()
!   else:
! popup_string=_(Running Command...)
! pop = PopupBox(text=popup_string)
! pop.show()
  
workapp = childapp.ChildApp(self.cmd, 'command', 1)
***
*** 297,301 
workapp.kill()
  
! pop.destroy()
  CommandOptions().show()
  
--- 301,312 
workapp.kill()
  
! if self.stoposd:
!   print we tried to restart OSD
!   osd.restart()
!   menuw.rebuild_page()
!   menuw.refresh()
!   time.sleep(0.5)
!   else:
! pop.destroy()
  CommandOptions().show()
  




---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
Freevo-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog


[Freevo-cvslog] freevo/WIP/Ruelle command.py,1.2,1.3

2003-12-09 Thread mikeruelle
Update of /cvsroot/freevo/freevo/WIP/Ruelle
In directory sc8-pr-cvs1:/tmp/cvs-serv26207

Modified Files:
command.py 
Log Message:
osd stop works. no typing in apps tho. still need waitpid tuple help

Index: command.py
===
RCS file: /cvsroot/freevo/freevo/WIP/Ruelle/command.py,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** command.py  9 Dec 2003 13:28:59 -   1.2
--- command.py  9 Dec 2003 13:38:42 -   1.3
***
*** 15,20 
  # ---
  # $Log$
! # Revision 1.2  2003/12/09 13:28:59  mikeruelle
! # osd stop now almost works. still need waitpid tuple help
  #
  # Revision 1.3  2003/11/30 14:35:43  dischi
--- 15,20 
  # ---
  # $Log$
! # Revision 1.3  2003/12/09 13:38:42  mikeruelle
! # osd stop works. no typing in apps tho. still need waitpid tuple help
  #
  # Revision 1.3  2003/11/30 14:35:43  dischi
***
*** 290,293 
--- 290,294 
  def flashpopup(self, arg=None, menuw=None):
  if self.stoposd:
+   menuw.hide()
osd.stop()
else:
***
*** 304,309 
print we tried to restart OSD
osd.restart()
!   menuw.rebuild_page()
!   menuw.refresh()
time.sleep(0.5)
else:
--- 305,309 
print we tried to restart OSD
osd.restart()
!   menuw.show()
time.sleep(0.5)
else:
***
*** 347,353 
  if (len(command_items) == 0):
  command_items += [menu.MenuItem(_('No Commands found'),
! menuw.goto_prev_page, 0)]
! command_menu = menu.Menu(_('Commands'), command_items,
!  reload_func=menuw.goto_main_menu)
  rc.app(None)
  menuw.pushmenu(command_menu)
--- 347,352 
  if (len(command_items) == 0):
  command_items += [menu.MenuItem(_('No Commands found'),
! menuw.goto_main_menu, 0)]
! command_menu = menu.Menu(_('Commands'), command_items)
  rc.app(None)
  menuw.pushmenu(command_menu)




---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
Freevo-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog


[Freevo-devel] Streaming video question

2003-12-09 Thread Peter Svensson
Hi!

I wonder the following; Are there any streaming protocols over UDP that just
_push_ data, without any ACK or related stuff whatsoever, or if OOB
information is used, is sent over another channel.

My current Mad Idea Of The Month is to use freenet for channel
announcment/subscription and then UDP/IP with randomized source addresses
for sending the actual stream.

You can figure it out :-)=

Oh, and I meant to plug the freenet-client-administrative interface into
freevo, of course.

I'm pretty certain that IP source anonymizing can be done with iptables
--to-source, and the freenet API's are really simple, you basically either
read or write to/from a key.

So what I have to do is write a deamon-plugin which reads from a
video-source (locally) and sends it over anonymized UDP on demand from
another freevo-freenet-watchamacallit-machine.

On the client/chooser side one would list all available channels with the
number of available feeds for each channel.

The only way to be part of the dissemination network would of course be if
one had a working feed onself.

The weak part is that a server which pushes a TV-channel knows the
destination IP, which more or less collapses the anonymity provided by
freenet.

One solution would be to try to stream *over freenet*, but really, it would
be too slow.

So.. is any of this feasible? Already done? :)

/PS

.. What I should be doing is try to fix or work around the Swedish xmltv
breakage, but I'm at home sick and it feels to much like work :)


---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
Freevo-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-devel


SV: [Freevo-devel] Streaming video question

2003-12-09 Thread Peter Svensson
Yes, but you could implement some kind of proxy. Freenet is all data stored
under keys, so writing repeatedly to the same key and (from another machine)
reading repeatedly from the same key could :-)= be construed as
somekiundof horribly bad streaming. Maybe another key thrown in for OOB
timing data etc..

/PS

-Ursprungligt meddelande-
Från: Matthieu Weber
Till: '''[EMAIL PROTECTED] ' ' '
Skickat: 2003-12-09 15:25
Ämne: Re: [Freevo-devel] Streaming video question

On Tue 09.12.2003 at 02:38:43PM +0100, Peter Svensson wrote:
 One solution would be to try to stream *over freenet*, but really, it
would
 be too slow.

AFAIK, and if the specs have not changed too much since I tried freenet
2 years ago, there is no possible streaming there. The clients
disconnect once the have downloaded the file from the source. But as I
said, it might have changed a lot.

Matthieu
-- 
 (~._.~)Matthieu Weber - Université de Jyväskylä (~._.~)
  ( ? )email : [EMAIL PROTECTED]  ( ? ) 
 ()- -()   public key id : 452AE0AD  ()- -()
 (_)-(_)  Humor ist, wenn man trotzdem lacht (Germain Muller)  (_)-(_)


---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
Freevo-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-devel


---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
Freevo-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-devel


[Freevo-cvslog] freevo/WIP/Ruelle command.py,1.3,1.4

2003-12-09 Thread mikeruelle
Update of /cvsroot/freevo/freevo/WIP/Ruelle
In directory sc8-pr-cvs1:/tmp/cvs-serv25578

Modified Files:
command.py 
Log Message:
use metacity to get a wm for apps. gets keyboard to work.

Index: command.py
===
RCS file: /cvsroot/freevo/freevo/WIP/Ruelle/command.py,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** command.py  9 Dec 2003 13:38:42 -   1.3
--- command.py  9 Dec 2003 16:20:29 -   1.4
***
*** 15,20 
  # ---
  # $Log$
! # Revision 1.3  2003/12/09 13:38:42  mikeruelle
! # osd stop works. no typing in apps tho. still need waitpid tuple help
  #
  # Revision 1.3  2003/11/30 14:35:43  dischi
--- 15,20 
  # ---
  # $Log$
! # Revision 1.4  2003/12/09 16:20:29  mikeruelle
! # use metacity to get a wm for apps. gets keyboard to work.
  #
  # Revision 1.3  2003/11/30 14:35:43  dischi
***
*** 239,248 
self.stoposd = 0
if command and directory:
-   print using old style
  self.name = command
  self.cmd  = os.path.join(directory, command)
  self.image = util.getimage(self.cmd)
  elif xmlfile:
-   print using new style
#create using xmlfile
  try:
--- 239,246 
***
*** 292,295 
--- 290,294 
menuw.hide()
osd.stop()
+ os.system(metacity )
else:
  popup_string=_(Running Command...)
***
*** 298,301 
--- 297,301 
  
workapp = childapp.ChildApp(self.cmd, 'command', 1)
+   workapp.infile.close()
while workapp.isAlive():
time.sleep(0.5)
***
*** 303,307 
  
  if self.stoposd:
!   print we tried to restart OSD
osd.restart()
menuw.show()
--- 303,307 
  
  if self.stoposd:
! os.system(killall metacity)
osd.restart()
menuw.show()
***
*** 338,346 
  continue
  if os.path.splitext(command)[1] in ('.fxd', '.xml'):
-   print trying xml
myxmlfile=os.path.join(config.COMMANDS_DIR, command)
  cmd_item = CommandItem(xmlfile=myxmlfile)
else:
-   print trying old stuff
  cmd_item = CommandItem(command, config.COMMANDS_DIR)
  command_items += [ cmd_item ]
--- 338,344 




---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
Freevo-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog


[Freevo-cvslog] freevo/WIP/Ruelle Mozilla.fxd,NONE,1.1

2003-12-09 Thread mikeruelle
Update of /cvsroot/freevo/freevo/WIP/Ruelle
In directory sc8-pr-cvs1:/tmp/cvs-serv4697

Added Files:
Mozilla.fxd 
Log Message:
give an example fxd

--- NEW FILE: Mozilla.fxd ---
?xml version=1.0 ?
freevo
command title=Mozilla
cmd/usr/bin/MozillaFirebird/cmd
stoposd1/stoposd
spawnwmmetacity amp;/spawnwm
killwmkillall metacity/killwm
info
contentIt is just a test/content
/info
/command
/freevo





---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
Freevo-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog


[Freevo-cvslog] freevo/WIP/Ruelle command.py,1.4,1.5

2003-12-09 Thread mikeruelle
Update of /cvsroot/freevo/freevo/WIP/Ruelle
In directory sc8-pr-cvs1:/tmp/cvs-serv5170

Modified Files:
command.py 
Log Message:
allow for something other than metacity

Index: command.py
===
RCS file: /cvsroot/freevo/freevo/WIP/Ruelle/command.py,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** command.py  9 Dec 2003 16:20:29 -   1.4
--- command.py  9 Dec 2003 17:22:09 -   1.5
***
*** 15,20 
  # ---
  # $Log$
! # Revision 1.4  2003/12/09 16:20:29  mikeruelle
! # use metacity to get a wm for apps. gets keyboard to work.
  #
  # Revision 1.3  2003/11/30 14:35:43  dischi
--- 15,20 
  # ---
  # $Log$
! # Revision 1.5  2003/12/09 17:22:09  mikeruelle
! # allow for something other than metacity
  #
  # Revision 1.3  2003/11/30 14:35:43  dischi
***
*** 238,241 
--- 238,243 
  Item.__init__(self)
self.stoposd = 0
+   self.spawnwm = None
+   self.killwm  = None
if command and directory:
  self.name = command
***
*** 264,267 
--- 266,271 
  cmd/usr/local/bin/mozilla/cmd
  stoposd1/stoposd
+   spawnwmmetacity amp;/spawnwm
+   killwmkillall metacity/killwm
  info
contentUnleash mozilla on the www/content
***
*** 274,277 
--- 278,283 
  self.image = util.getimage(self.cmd)
  self.stoposd = fxd.childcontent(node, 'stoposd')
+ self.spawnwm = fxd.childcontent(node, 'spawnwm')
+ self.killwm = fxd.childcontent(node, 'killwm')
  
  # parse info tag
***
*** 290,294 
menuw.hide()
osd.stop()
! os.system(metacity )
else:
  popup_string=_(Running Command...)
--- 296,301 
menuw.hide()
osd.stop()
!   if self.spawnwm:
!   os.system(self.spawnwm)
else:
  popup_string=_(Running Command...)
***
*** 303,307 
  
  if self.stoposd:
! os.system(killall metacity)
osd.restart()
menuw.show()
--- 310,315 
  
  if self.stoposd:
!   if self.killwm:
!   os.system(self.killwm)
osd.restart()
menuw.show()




---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
Freevo-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog


[Freevo-cvslog] freevo/src/util fileops.py,1.6,1.7

2003-12-09 Thread dischi
Update of /cvsroot/freevo/freevo/src/util
In directory sc8-pr-cvs1:/tmp/cvs-serv3360

Modified Files:
fileops.py 
Log Message:
more generic resolve_media_mountdir and arg checking for mount functions

Index: fileops.py
===
RCS file: /cvsroot/freevo/freevo/src/util/fileops.py,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** fileops.py  22 Nov 2003 20:34:08 -  1.6
--- fileops.py  9 Dec 2003 19:42:23 -   1.7
***
*** 11,14 
--- 11,17 
  # ---
  # $Log$
+ # Revision 1.7  2003/12/09 19:42:23  dischi
+ # more generic resolve_media_mountdir and arg checking for mount functions
+ #
  # Revision 1.6  2003/11/22 20:34:08  dischi
  # use new vfs
***
*** 320,323 
--- 323,328 
  umount a directory
  
+ if not dir:
+ return
  global mounted_dirs
  if os.path.ismount(dir):
***
*** 331,334 
--- 336,341 
  mount a directory
  
+ if not dir:
+ return
  global mounted_dirs
  if not os.path.ismount(dir):
***
*** 349,358 
  
  
! def resolve_media_mountdir(media_id, file):
  
  get the mount point of the media with media_id
  
! mountdir = None
! full_filename = file
  # Find on what media it is located
  for media in config.REMOVABLE_MEDIA:
--- 356,373 
  
  
! def resolve_media_mountdir(*arg):
  
  get the mount point of the media with media_id
  
! if len(arg) == 1 and isinstance(arg[0], dict):
! media_id = arg[0]['media_id']
! file = arg[0]['file']
! elif len(arg) == 2:
! media_id = arg[0]
! file = arg[1]
! else:
! raise KeyError
! 
! mountdir = ''
  # Find on what media it is located
  for media in config.REMOVABLE_MEDIA:
***
*** 360,367 
  # Then set the filename
  mountdir = media.mountdir
! full_filename = vfs.join(media.mountdir, file)
  break
  
! return mountdir, full_filename
  
  
--- 375,382 
  # Then set the filename
  mountdir = media.mountdir
! file = vfs.join(media.mountdir, file)
  break
  
! return mountdir, file
  
  




---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
Freevo-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog


[Freevo-cvslog] freevo/src/video/plugins mplayer.py,1.46,1.47

2003-12-09 Thread dischi
Update of /cvsroot/freevo/freevo/src/video/plugins
In directory sc8-pr-cvs1:/tmp/cvs-serv3623

Modified Files:
mplayer.py 
Log Message:
subtitle file and audio file support

Index: mplayer.py
===
RCS file: /cvsroot/freevo/freevo/src/video/plugins/mplayer.py,v
retrieving revision 1.46
retrieving revision 1.47
diff -C2 -d -r1.46 -r1.47
*** mplayer.py  7 Dec 2003 19:40:30 -   1.46
--- mplayer.py  9 Dec 2003 19:43:22 -   1.47
***
*** 10,13 
--- 10,16 
  # ---
  # $Log$
+ # Revision 1.47  2003/12/09 19:43:22  dischi
+ # subtitle file and audio file support
+ #
  # Revision 1.46  2003/12/07 19:40:30  dischi
  # convert OVERSCAN variable names
***
*** 285,288 
--- 288,301 
  
  child.wait()
+ 
+ if item.subtitle_file:
+ d, f = util.resolve_media_mountdir(item.subtitle_file)
+ util.mount(d)
+ command += ['-sub', f]
+ 
+ if self.audio_file:
+ d, f = util.resolve_media_mountdir(self.audio_file)
+ util.mount(d)
+ command += ['-audiofile', f]
  
  self.plugins = plugin.get('mplayer_video')




---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
Freevo-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog


[Freevo-cvslog] freevo/src/video __init__.py,1.18,1.19 fxdhandler.py,1.5,1.6 videoitem.py,1.100,1.101

2003-12-09 Thread dischi
Update of /cvsroot/freevo/freevo/src/video
In directory sc8-pr-cvs1:/tmp/cvs-serv3466

Modified Files:
__init__.py fxdhandler.py videoitem.py 
Log Message:
patch from Matthieu Weber

Index: __init__.py
===
RCS file: /cvsroot/freevo/freevo/src/video/__init__.py,v
retrieving revision 1.18
retrieving revision 1.19
diff -C2 -d -r1.18 -r1.19
*** __init__.py 6 Dec 2003 13:44:11 -   1.18
--- __init__.py 9 Dec 2003 19:43:01 -   1.19
***
*** 10,13 
--- 10,16 
  # ---
  # $Log$
+ # Revision 1.19  2003/12/09 19:43:01  dischi
+ # patch from Matthieu Weber
+ #
  # Revision 1.18  2003/12/06 13:44:11  dischi
  # move more info to the Mimetype
***
*** 162,168 
  diritem.xml_file = tvinfo[3]
  
- 
- 
- 
  def hash_fxd_movie_database():
  
--- 165,168 
***
*** 218,221 
--- 218,223 
  tv_show_informations[k] = (info.image, info.info, info.mplayer_options,
 info.xml_file)
+ for fo in info.files_options:
+ discset_informations[fo['file-id']] = fo['mplayer-options']
  
  _debug_('done',1)

Index: fxdhandler.py
===
RCS file: /cvsroot/freevo/freevo/src/video/fxdhandler.py,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** fxdhandler.py   7 Dec 2003 12:28:25 -   1.5
--- fxdhandler.py   9 Dec 2003 19:43:01 -   1.6
***
*** 10,13 
--- 10,16 
  # ---
  # $Log$
+ # Revision 1.6  2003/12/09 19:43:01  dischi
+ # patch from Matthieu Weber
+ #
  # Revision 1.5  2003/12/07 12:28:25  dischi
  # bugfix
***
*** 73,80 
  
  filename   = fxd.gettext(node)
  mode   = node.name
  id = fxd.getattr(node, 'id')
! media_id   = fxd.getattr(node, 'media_id')
! options= fxd.getattr(node, 'mplayer_options')
  player = fxd.childcontent(node, 'player')
  playlist   = False
--- 76,85 
  
  filename   = fxd.gettext(node)
+ media_id   = fxd.getattr(node, 'media-id')
+ if media_id == '':
+ filename = vfs.join(dirname, filename)
  mode   = node.name
  id = fxd.getattr(node, 'id')
! options= fxd.getattr(node, 'mplayer-options')
  player = fxd.childcontent(node, 'player')
  playlist   = False
***
*** 132,150 
  
  for variant in variants:
! audio= fxd.get_children(variant, 'audio')
! subtitle = fxd.get_children(variant, 'subtitle')
! 
! if audio:
! audio = { 'media_id': fxd.getattr(audio[0], 'media_id'),
!   'file': fxd.gettext(audio[0]) }
! else:
! audio = {}
! 
! if subtitle:
! subtitle = { 'media_id': fxd.getattr(subtitle[0], 'media_id'),
!  'file': fxd.gettext(subtitle[0]) }
! else:
! subtitle = {}
! 
  parts = fxd.get_children(variant, 'part')
  if len(parts) == 1:
--- 137,141 
  
  for variant in variants:
! mplayer_options +=   + fxd.getattr(variant, 'mplayer-options');
  parts = fxd.get_children(variant, 'part')
  if len(parts) == 1:
***
*** 158,164 
  v.is_playlist  = True
  
! v.subtitle_file = subtitle
  v.audio_file= audio
  
  # global video mplayer_options
  if mplayer_options:
--- 149,172 
  v.is_playlist  = True
  
! audio= fxd.get_children(parts[0], 'audio')
! if audio:
! audio = { 'media_id': fxd.getattr(audio[0], 'media-id'),
!   'file': fxd.gettext(audio[0]) }
! if audio['media_id'] == '':
! audio['file'] = vfs.join(dirname, audio['file'])
! else:
! audio = {}
  v.audio_file= audio
  
+ subtitle = fxd.get_children(parts[0], 'subtitle')
+ if subtitle:
+ subtitle = { 'media_id': fxd.getattr(subtitle[0], 'media-id'),
+  'file': fxd.gettext(subtitle[0]) }
+ if subtitle['media_id'] == '':
+ subtitle['file'] = vfs.join(dirname, subtitle['file'])
+ else:
+ subtitle = {}
+ v.subtitle_file = subtitle
+ 
  # global video 

[Freevo-devel] Re: plugin data

2003-12-09 Thread Dirk Meyer
Torben Janssen wrote:
 Hi,

 where is the best way to store permanent per item data?

No. Some plugins like the bookmark plugin use an extra file. 

 i will try to write a plug-in to tag item as seen/heard/viewed.
 so i will need to store this info per item permanently.

Not so easy. You can't just use an extra file, because it will get
huge. We need some way to store such data.

Ideas:

1. Create a file for each directory to store that data. This is more
   or less duplicate work since mmpython does that.

2. You the mmpython cache. This is bad, because a) a cache shouldn't
   contain data that isn't stored somewhere else. Removing the cache
   will destroy your meta infos.


Any ideas to solve this are welcome.

 ps: i like the new busy icon. it is great.

I don't like the icon itself at all. If someone has a nice icon,
please send it.


Dischi

-- 
In a world of freedom, why do some people use windows and gates?


---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
Freevo-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-devel


[Freevo-cvslog] freevo/src/audio player.py,1.13,1.14

2003-12-09 Thread dischi
Update of /cvsroot/freevo/freevo/src/audio
In directory sc8-pr-cvs1:/tmp/cvs-serv12227

Modified Files:
player.py 
Log Message:
keep track of current player

Index: player.py
===
RCS file: /cvsroot/freevo/freevo/src/audio/player.py,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -d -r1.13 -r1.14
*** player.py   6 Dec 2003 13:43:34 -   1.13
--- player.py   9 Dec 2003 20:31:58 -   1.14
***
*** 10,13 
--- 10,16 
  # ---
  # $Log$
+ # Revision 1.14  2003/12/09 20:31:58  dischi
+ # keep track of current player
+ #
  # Revision 1.13  2003/12/06 13:43:34  dischi
  # expand the audio parsing in fxd files
***
*** 55,58 
--- 58,66 
  skin.register('player', ('screen', 'title', 'view', 'info', 'plugin'))
  
+ _player_ = None
+ 
+ def get():
+ global _player_
+ return _player_
  
  class PlayerGUI(GUIObject):
***
*** 72,76 
--- 80,89 
  
  def play(self, player=None):
+ global _player_
+ if _player_ and _player_.player and _player_.player.is_playing():
+ _player_.stop()
  
+ _player_ = self
+ 
  if self.player and self.player.is_playing():
  self.stop()
***
*** 110,113 
--- 123,127 
  self.refresh()
  
+ 
  def try_next_player(self):
  self.stop()
***
*** 127,132 
--- 141,150 
  _debug_('no more players found')
  return 0
+ 
  
  def stop(self):
+ global _player_
+ _player_ = None
+ 
  self.player.stop()
  self.running = False




---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
Freevo-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog


[Freevo-cvslog] freevo/src/audio/plugins detach.py,1.8,1.9

2003-12-09 Thread dischi
Update of /cvsroot/freevo/freevo/src/audio/plugins
In directory sc8-pr-cvs1:/tmp/cvs-serv12361

Modified Files:
detach.py 
Log Message:
fix plugin to match the new player structure

Index: detach.py
===
RCS file: /cvsroot/freevo/freevo/src/audio/plugins/detach.py,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** detach.py   20 Sep 2003 09:42:32 -  1.8
--- detach.py   9 Dec 2003 20:32:29 -   1.9
***
*** 10,13 
--- 10,16 
  # ---
  # $Log$
+ # Revision 1.9  2003/12/09 20:32:29  dischi
+ # fix plugin to match the new player structure
+ #
  # Revision 1.8  2003/09/20 09:42:32  dischi
  # cleanup
***
*** 49,52 
--- 52,57 
  import plugin
  import menu
+ import rc
+ import audio.player
  
  from event import *
***
*** 60,68 
  plugin.MainMenuPlugin.__init__(self)
  config.EVENTS['audio']['DISPLAY'] = Event(FUNCTION_CALL, arg=self.detach)
- self.player = None
  self.show_item = menu.MenuItem(_('Show player'), action=self.show)
! 
  def detach(self):
! gui   = plugin.getbyname(plugin.AUDIO_PLAYER).playerGUI
  
  # hide the player and show the menu
--- 65,73 
  plugin.MainMenuPlugin.__init__(self)
  config.EVENTS['audio']['DISPLAY'] = Event(FUNCTION_CALL, arg=self.detach)
  self.show_item = menu.MenuItem(_('Show player'), action=self.show)
! 
! 
  def detach(self):
! gui  = audio.player.get()
  
  # hide the player and show the menu
***
*** 76,91 
  if gui.item.parent:
  gui.item.parent.menuw = None
- self.player = gui.player
  
  
  def items(self, parent):
! if self.player and self.player.is_playing():
  self.show_item.parent = parent
  return [ self.show_item ]
! return ()
  
  
  def show(self, arg=None, menuw=None):
! gui = self.player.playerGUI
  
  # restore the menuw's
--- 81,96 
  if gui.item.parent:
  gui.item.parent.menuw = None
  
  
  def items(self, parent):
! gui = audio.player.get()
! if gui and gui.player.is_playing():
  self.show_item.parent = parent
  return [ self.show_item ]
! return []
  
  
  def show(self, arg=None, menuw=None):
! gui = audio.player.get()
  
  # restore the menuw's
***
*** 101,105 
  
  def eventhandler(self, event, menuw=None):
! if self.player and event == AUDIO_PLAY_END:
  self.player.eventhandler(event=event)
  return True
--- 106,111 
  
  def eventhandler(self, event, menuw=None):
! gui = audio.player.get()
! if gui and gui.player.is_playing() and event == AUDIO_PLAY_END:
  self.player.eventhandler(event=event)
  return True




---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
Freevo-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog


[Freevo-cvslog] freevo/share/fxd german-news.fxd,1.1,NONE

2003-12-09 Thread dischi
Update of /cvsroot/freevo/freevo/share/fxd
In directory sc8-pr-cvs1:/tmp/cvs-serv12686

Removed Files:
german-news.fxd 
Log Message:
remove this here, it is in examples

--- german-news.fxd DELETED ---




---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
Freevo-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog


[Freevo-cvslog] freevo/src/skins/main screen.py,1.2,1.3

2003-12-09 Thread dischi
Update of /cvsroot/freevo/freevo/src/skins/main
In directory sc8-pr-cvs1:/tmp/cvs-serv12856

Modified Files:
screen.py 
Log Message:
this code will never used for helpers

Index: screen.py
===
RCS file: /cvsroot/freevo/freevo/src/skins/main/screen.py,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** screen.py   6 Dec 2003 16:45:13 -   1.2
--- screen.py   9 Dec 2003 20:34:36 -   1.3
***
*** 7,10 
--- 7,13 
  # ---
  # $Log$
+ # Revision 1.3  2003/12/09 20:34:36  dischi
+ # this code will never used for helpers
+ #
  # Revision 1.2  2003/12/06 16:45:13  dischi
  # do not create a screen for helpers
***
*** 44,51 
  
  def get_singleton():
- # we don't need this for helpers
- if config.HELPER:
- return
- 
  global singleton
  if not singleton:
--- 47,50 




---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
Freevo-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog


[Freevo-devel] Re: Audio detach bug

2003-12-09 Thread Dirk Meyer
Peter Svensson wrote:
 I just finished adding xpdf to the games menu to read som dox in freevo. Not
 optimal, but actually works OK.

 I played some nice tune and thought to detach itandlisten to it while I read
 some pdf. However, freevo crashed;

 Spoiler; AttributeError: 'list' object has no attribute 'playerGUI'

Thanks, fixed in cvs now.

Dischi

-- 
Never put off until tomorrow what you can do the day after.


---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
Freevo-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-devel


[Freevo-cvslog] freevo/src/video/plugins mplayer.py,1.47,1.48

2003-12-09 Thread dischi
Update of /cvsroot/freevo/freevo/src/video/plugins
In directory sc8-pr-cvs1:/tmp/cvs-serv13874

Modified Files:
mplayer.py 
Log Message:
fixed copy paste error

Index: mplayer.py
===
RCS file: /cvsroot/freevo/freevo/src/video/plugins/mplayer.py,v
retrieving revision 1.47
retrieving revision 1.48
diff -C2 -d -r1.47 -r1.48
*** mplayer.py  9 Dec 2003 19:43:22 -   1.47
--- mplayer.py  9 Dec 2003 20:40:13 -   1.48
***
*** 10,13 
--- 10,16 
  # ---
  # $Log$
+ # Revision 1.48  2003/12/09 20:40:13  dischi
+ # fixed copy paste error
+ #
  # Revision 1.47  2003/12/09 19:43:22  dischi
  # subtitle file and audio file support
***
*** 294,299 
  command += ['-sub', f]
  
! if self.audio_file:
! d, f = util.resolve_media_mountdir(self.audio_file)
  util.mount(d)
  command += ['-audiofile', f]
--- 297,302 
  command += ['-sub', f]
  
! if item.audio_file:
! d, f = util.resolve_media_mountdir(item.audio_file)
  util.mount(d)
  command += ['-audiofile', f]




---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
Freevo-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog


Re: [Freevo-devel] Re: plugin data

2003-12-09 Thread Robert Rozman
Hi,

I'm curious what are ways of sharing non-permanent data. For instance I get
data with plugin that listens to tcp port and would like to have that data
in idlebar plugin for instance.

How can I do that ?

Regards,

Robert.



---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
Freevo-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-devel


[Freevo-devel] Bug with Password-protected Directory

2003-12-09 Thread Jan Grewe
Title: Bug with Password-protected Directory






When i tried to access a directory protected by a .password file, the recent anonCVS version gave me the following in the log:

password protected dir

Traceback (most recent call last):

 File /usr/lib/python2.2/site-packages/freevo/main.py, line 409, in main_func

 app.eventhandler(event)

 File /usr/lib/python2.2/site-packages/freevo/menu.py, line 542, in eventhandler

 action( arg=arg, menuw=self )

 File /usr/lib/python2.2/site-packages/freevo/directory.py, line 407, in cwd

 self.check_password_and_build(arg=None, menuw=menuw)

 File /usr/lib/python2.2/site-packages/freevo/directory.py, line 441, in check_password_and_build

 pb = PasswordInputBox(text=_('Enter Password'), handler=self.pass_cmp_cp)

AttributeError: DirItem instance has no attribute 'pass_cmp_cp'


It's not urgent or something like that, just FYI ;-)


/jan





[Freevo-devel] Manual record displays third field of TV_CHANNELS as channel name.

2003-12-09 Thread Alex Polite
I can't use xmltv for recordings cause tv_grab_sn is broken. (I know
this has nothing to do with you guys.) So I choose manually record in
the web interface.

The list of channels contain the third field of the TV_CHANNELS
variable. I think that the second field would be more convenient for
most human users. 


TV_CHANNELS = [ ('1', 'SVT1',  'E5'),
('2', 'TV4',   'E6'),
('3', 'SVT2',  'E7'),
('4', 'ZTV',   'E8'),
('5', 'Oppna kanalen', 'E9'),
('6', 'Discovery Mix', 'E10'),
('7', 'TV3',   'E11'),
('8', 'Kanal 5',   'SE11'),
('9', 'YLE1',  'SE12'),
('10', 'MTV',   'SE16'),
('11', 'Eurosport', 'SE17'),
('12', 'Comhem','SE19'),
('13', 'TV4+',  '57'),
]

Is this fixed in CVS?

regards alex

-- 
Alex Polite
http://plusseven.com/whoami


---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
Freevo-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-devel


[Freevo-cvslog] freevo/src/plugins shoppingcart.py,NONE,1.1

2003-12-09 Thread mikeruelle
Update of /cvsroot/freevo/freevo/src/plugins
In directory sc8-pr-cvs1:/tmp/cvs-serv14734

Added Files:
shoppingcart.py 
Log Message:
make it a little easier to move multiple files around

--- NEW FILE: shoppingcart.py ---
#if 0 /*
# ---
# shoppingcart.py - Example item plugin
# ---
# $Id: shoppingcart.py,v 1.1 2003/12/09 23:29:46 mikeruelle Exp $
#
# Notes: This is a plugin to move and copy files
#
# Activate: 
#   plugin.activate('shoppingcart')
#
# Todo:
#
# ---
# $Log: shoppingcart.py,v $
# Revision 1.1  2003/12/09 23:29:46  mikeruelle
# make it a little easier to move multiple files around
#
#
# ---
# Freevo - A Home Theater PC framework
# Copyright (C) 2002 Krister Lagerstrom, et al. 
# Please see the file freevo/Docs/CREDITS for a complete list of authors.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of MER-
# CHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
# Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# --- */
#endif


import os
import plugin
import config
import shutil
import util
from gui.PopupBox import PopupBox
import rc
import event as em

class PluginInterface(plugin.ItemPlugin):

This plugin copies or moves files to directories. Go to a file hit
enter pick 'add to cart' and then go to a directory. Press enter
and pick what you want to do.

plugin.activate('shoppingcart')


def __init__(self):
plugin.ItemPlugin.__init__(self)
self.item = None
self.pfile = os.path.join(config.FREEVO_CACHEDIR, 'cart')

def moveHere(self, arg=None, menuw=None):
cartfiles = util.read_pickle(self.pfile)
popup = PopupBox(text=_('Moving files...'))
popup.show()
for cartfile in cartfiles:
shutil.move(cartfile, self.item.dir)
os.unlink(self.pfile)
popup.destroy()
rc.post_event(em.MENU_BACK_ONE_MENU)

def copyHere(self, arg=None, menuw=None):
cartfiles = util.read_pickle(self.pfile)
popup = PopupBox(text=_('Copying files...'))
popup.show()
for cartfile in cartfiles:
shutil.copy(cartfile, self.item.dir)
os.unlink(self.pfile)
popup.destroy()
rc.post_event(em.MENU_BACK_ONE_MENU)

def addToCart(self, arg=None, menuw=None):
if (os.path.isfile(self.pfile) == 0):
cartfiles = []
else:
cartfiles = util.read_pickle(self.pfile)
cartfiles.append(self.item.filename)
util.save_pickle(cartfiles, self.pfile)
rc.post_event(em.MENU_BACK_ONE_MENU)

def deleteCart(self, arg=None, menuw=None):
if (os.path.isfile(self.pfile) != 0):
os.unlink(self.pfile)
rc.post_event(em.MENU_BACK_ONE_MENU)

def actions(self, item):
self.item = item
myactions = []
if (os.path.isfile(self.pfile) == 0):
cartfiles = []
else:
cartfiles = util.read_pickle(self.pfile)
if item.type == 'dir' and len(cartfiles)  0:
myactions.append((self.moveHere, _('Move Files Here')))
myactions.append((self.copyHere, _('Copy Files Here')))
elif hasattr(item, 'filename'):
myactions.append((self.addToCart, _('Add File to Cart')))
if (os.path.isfile(self.pfile) != 0):
myactions.append((self.deleteCart, _('Delete Cart')))
return myactions





---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
Freevo-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog