On 1/23/07, mike lewis <[EMAIL PROTECTED]> wrote:
On 1/23/07, Duncan Webb <[EMAIL PROTECTED]> wrote:
> mike lewis wrote:
> > On 1/22/07, mike lewis <[EMAIL PROTECTED]> wrote:
> >> Hi,
> >>
> >> Been a while since I submitted a patch.  Just tried to do this on SF
> >> but get the following error:
> >>
> >>
> >> ERROR
> >>
> >> Artifact: This ArtifactType Does Not Allow Anonymous Submissions.
> >> Please Login.
> >>
> >> I'm not a sf user so can't do that! ;-)
> >>
> >> ---
> >> CD BURN currently crashes when config is run.  This is fixed with the
> >> following crash.  Not sure what happen or why it ever worked without
> >> this ;-).
> >>
> >> One option is to remove the fruity stuff.  But, as I wrote it, and I
> >> like it, my patch is the other option, (fix the freevo core to allow
> >> code other than x=y in the config procedure).
> >>
> >> FILE = helper.patch
> >>
> >> Now that it's no longer crashing, we can make use of that fruity stuff
> >> in config().  To do this, the defaults need to be removed from
> >> freevo_conf.py.  Don't worry.  config() will add them in again...
> >>
> >> FILE =  freevo_config.patch
> >>
> >> CD Burn was not burning DVD's.  I've had a quick hack at the code to
> >> fix the crash's one experiences when attempting to burn a DVD.  I've
> >> just successfully burned a DVD in growisofs mode (iso file).  However,
> >> after I wrote the code to use CDBurn for iso's I realised my version
> >> of cdburn doesn't support DVD's.  What the??  For other users they now
> >> have an option of using the nice autofeatures in config() and thus
> >> auto discovered device's that cdburn gives you.  Or, if your like me,
> >> and using ubuntu edgy, your have to set the "use growisofs" are right
> >> now your device i hard coded.
> >>
> >> FILE = cd_burn.patch
> >> ---
> > So before i go to bed I may as well make the device growisofs uses a
> > config option instead of hard coded.  So here is an update to the
> > previous patch for cd_burn which does all of the above.
> >
> > Cheers,
> > M
>
> Hi Mike,
>
> Sorry but you cd_burn patches wont apply. They need to be done against
> the latest svn version.
>
OK.  Done.  Attached

[snip]
Index: freevo/freevo/src/plugins/cd_burn.py
===================================================================
--- freevo/freevo/src/plugins/cd_burn.py	(revision 9165)
+++ freevo/freevo/src/plugins/cd_burn.py	(working copy)
@@ -183,58 +183,35 @@
     def burn_dvd_video(self):
         _debug_('burn_dvd_video(self)')
         """
-        copy this DIR to DVD as DVD VIDEO, NB: MUST BE DVD VIDEO ALREADY!!!!!!! (ie ripped with dvdcopy.py)
+        copy this file/DIR to DVD as DVD VIDEO, NB: MUST BE DVD VIDEO ALREADY!!!!!!! (ie ripped with dvdcopy.py)
         """
 
+        self.file_to_burn=None
         name  = self.files[0].split("/")
         self.name  = name[len(name) -1]
         _debug_('self.name = %s' % self.name)
-        dir = self.files[0]
-        self.dir = dir + "/"
+        self.dir = self.files[0]
         _debug_('self.dir = %s ' % self.dir)
-        for f in os.listdir(self.dir):
-            pathname = os.path.join(self.dir, f)
-            _debug_('%s ' % pathname[-3:])
-            if pathname[-3:].lower() == '_ts':
-                _debug_('would not delete %s' %pathname)
-                self.file_to_delete = None
-            else:
-                _debug_('would delete %s' % pathname)
-                #self.file_to_delete.append(pathname)
-                self.file_to_delete = pathname
-
-        if self.file_to_delete:
-            ConfirmBox(text=_('Delete %s?' % self.file_to_delete ),
-                             handler=self.delete_now, default_choice=0).show()
+        if self.name.endswith('.iso'):
+            self.file_to_burn=self.dir
         else:
+            self.subdirs = util.getdirnames(self.dir, softlinks=False)
+            for dir in self.subdirs:
+                pathname = os.path.join(self.dir, f)
+                _debug_('%s ' % pathname[-3:])
+                if pathname[-3:].lower() == '_ts':
+                    _debug_('OK TO BURN, folder DVD compliant %s' %pathname)
+                    self.file_to_burn = pathname
+                else:
+                    _debug_('NOT OK to BURN, folder NOT DVD compliant:  %s' % pathname)
+                    self.file_to_burn = None
+
+        if self.file_to_burn:
             ConfirmBox(text=_('Insert media then click OK'),
                              handler=self.start_burning, default_choice=0
                              ).show()
         return
 
-    def delete_now (self, arg=None, menuw=None):
-        _debug_('delete_now (self, arg=None, menuw=None)')
-        """
-        Called by burn_dvd_video to remove anything it sees fit.. I think
-        freevo should have a file op for this but it doesn't (that i can find).
-        """
-        for a in self.files_to_delete:
-            try:
-                mode = os.stat(a)[ST_MODE]
-                if S_ISDIR(mode):
-                    try:
-                        shutil.rmtree(a)
-                    except:
-                        rc.post_event(Event(OSD_MESSAGE, arg=_('Error, unable to delete dir %s' % a)))
-                        print "unable to delete tree %s" % a
-                elif S_ISREG(mode):
-                    try:
-                        os.unlink(a)
-                    except:
-                        rc.post_event(Event(OSD_MESSAGE, arg=_('Error, unable to delete file %s' % a)))
-                        print "unable to delete %s" % a
-            except:
-                pass
         self.burn()
 
 
@@ -628,8 +605,19 @@
             os.unlink(image_file)
 
         elif self.token.burn_mode == "dvd_video":
-            growisofs_cmd = 'growisofs -use-the-force-luke -dvd-compat -Z /dev/dvd -V %s -dvd-video %s' \
-                % (self.token.name,self.token.dir)
+            #set command for VITEO_TS type DVD's
+            growisofs_cmd = '%s -use-the-force-luke -dvd-compat -Z /dev/dvd -V %s -dvd-video %s' \
+                % (config.CDBURN_GROWISOFS_PATH,self.token.name,self.token.dir)
+            if self.token.name.endswith('.iso'):
+                if config.CDBURN_DVDISO_USE_GROWISOFS:
+                    growisofs_cmd = '%s -use-the-force-luke -dvd-compat -Z /dev/dvd=%s' \
+                     % (config.CDBURN_GROWISOFS_PATH,self.token.dir)
+                else:
+                    growisofs_cmd = '%s -s -eject -v -driveropts=burnfree speed=%s dev=%s %s' \
+                    % (config.CDBURN_CDRECORD_PATH,config.CDBURN_DVD_BURN_SPEED,config.CDBURN_DEV,self.token.dir)
+
+            _debug_('growisofs command = %s' % growisofs_cmd)
+
             self.update_status(status='running', description='Burning DVD Video');
             burn_child = self.run_child(cmd=growisofs_cmd,wait=1,task_weight=100)
             if (not burn_child):
@@ -750,10 +738,13 @@
         return [
             ('CDBURN_CDRECORD_PATH', '/usr/bin/cdrecord', 'Path to cdrecord'),
             ('CDBURN_MKISOFS_PATH', '/usr/bin/mkisofs', 'Path to mkisofs'),
+            ('CDBURN_GROWISOFS_PATH', '/usr/bin/growisofs', 'Path to growisofs'),
+            ('CDBURN_DVDISO_USE_GROWISOFS', 1, 'Set to 1 to use growisofs instead of cdrecord for DVDs'),
             # in tao (track at once mode, empty value) cd record will leave 2 sec gaps between tracks
             # in dao (disk at once) no gaps at all, but not all drives support it
             ('CDBURN_AUDIO_DAO',0,'CDRecord canburn audio cds in DAO mode'),
             ('CDBURN_SPEED', '8', 'Speed to burn with cdrecord'),
+            ('CDBURN_DVD_BURN_SPEED', '4', 'Speed to burn with cdrecord for DVDs'),
             ('CDBURN_TEMP_DIR', '/tmp/', 'Temp file name used by cdrecord'),
             ('CDBURN_DEV', record_dev, 'Device for cdrecord to burn with (not auto detected)')
         ]
@@ -859,7 +850,6 @@
 
             if len(cur.files) > 1:
                 to_return.append(( cur.burn, _('Copy %s, and related, to CD' % item.name)) )
-                #to_return.append(( cur2.delete, _('Delete %s, and related' % item.name)) )
         except:
             pass
 
Index: freevo/freevo/freevo_config.py
===================================================================
--- freevo/freevo/freevo_config.py	(revision 9165)
+++ freevo/freevo/freevo_config.py	(working copy)
@@ -257,7 +257,6 @@
      Added USE_SDL_KEYBOARD to specify if generic keyboard handler should be used
      Added EVENT_DEVS and EVENTMAP for the new Linux event device handler
      Added VIDEO_PRE_PLAY and VIDEO_POST_PLAY to allow external commands to be run
-     Added CDBURN_ for the cd burning plug-in
      Added CD_RIP_ for the cd backup plug-in
      ''' ),
 ]
@@ -776,16 +775,6 @@
 CD_RIP_CASE = None          # Can be title, upper, lower
 CD_RIP_REPLACE_SPACE = None # Can be '_', '-', etc.
 
-# ----------------------------------------------------------------------
-# CD Burning
-# ----------------------------------------------------------------------
-CDBURN_AUDIO_DAO = 1
-CDBURN_MKISOFS_PATH = '/usr/bin/mkisofs'
-CDBURN_CDRECORD_PATH = '/usr/bin/cdrecord'
-CDBURN_TEMP_DIR='/tmp/'
-CDBURN_DEV = '/dev/cdrom'
-CDBURN_SPEED = 32
-
 # ======================================================================
 # Freevo directory settings:
 # ======================================================================
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Freevo-devel mailing list
Freevo-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freevo-devel

Reply via email to