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

There you go.  Have fun.

Mick



--- /mnt/hdb1/build/freevo/freevo/freevo/src/plugins/cd_burn.py	2007-01-02 20:13:55.000000000 +0800
+++ plugins/cd_burn.py	2007-01-22 23:17:16.000000000 +0800
@@ -182,33 +182,37 @@
     def burn_dvd_video(self):
         _debug_('burn_dvd_video');
         """
-        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]
         print 'CDBURN : self.name = %s' % self.name
-        dir = self.files[0]
-        self.dir = dir + "/"
+        self.dir = self.files[0]
         print 'CDBURN : self.dir = %s ' % self.dir
-        for f in os.listdir(self.dir):
-            pathname = os.path.join(self.dir, f)
-            print 'CDBURN : %s ' % pathname[-3:]
-            if pathname[-3:].lower() == '_ts':
-                print 'CDBURN : would not delete %s' %pathname
-                self.file_to_delete = None
-            else:
-                print 'CDBURN : 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()
-        else:
+        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)
+                print 'CDBURN : %s ' % pathname[-3:]
+                if pathname[-3:].lower() == '_ts':
+                    print 'CDBURN : OK TO BURN, folder DVD compliant %s' %pathname
+                    self.file_to_burn = None
+                else:
+                    print 'CDBURN : NOT OK to BURN, folder NOT DVD compliant:  %s' % pathname
+                    self.file_to_burn = pathname
+        
+        if self.file_to_burn:
             ConfirmBox(text=_('Insert media then click OK'),
                              handler=self.start_burning, default_choice=0
                              ).show()
+
+
+        else:
+                print 'CDBURN : NOT OK to BURN, exiting'
         return
 
     def delete_now (self, arg=None, menuw=None):
@@ -628,8 +632,17 @@
             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)
+            growisofs_cmd = '%s -use-the-force-luke -dvd-compat -Z %s-V %s -dvd-video %s' \
+                % (config.CDBURN_GROWISOFS_PATH, config.CDBURN_GISOFS_DVD_PATH, self.token.name,self.token.dir)
+
+            if self.token.name.endswith('.iso'):
+                if config.CDBURN_DVDISO_USE_MKISOFS:
+                    growisofs_cmd = '%s -use-the-force-luke -dvd-compat -Z %s=%s' \
+               % (config.CDBURN_GROWISOFS_PATH,config.CDBURN_GISOFS_DVD_PATH,self.token.dir) 
+                else:
+                    growisofs_cmd = '%s -dummy -s -eject -v -driveropts=burnfree speed=%s dev=%s %s' \
+                % (config.CDBURN_CDRECORD_PATH,config.DVD_BURN_SPEED,config.CDBURN_DEV,self.token.dir) 
+            print 'CDBURN : 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):
@@ -716,7 +729,8 @@
 
     def config(self):
         _debug_('config');
-        self.dev_list = []
+        #self.dev_list = []
+        dev_list = []
         """
         time for some auto stuff...
         """
@@ -731,7 +745,7 @@
                         # print line
                         burn_dev = line.split()[0]
                         # print burn_dev
-                        self.dev_list.append(burn_dev)
+                        dev_list.append(burn_dev)
                     else:
                         # this is needed to get out of while loop..
                         break
@@ -739,19 +753,23 @@
                 print "no line"
             time.sleep(0.1)
 
-        if len(self.dev_list) and self.dev_list[0]:
-            record_dev = self.dev_list[0]
+        if len(dev_list) and dev_list[0]:
+            record_dev = dev_list[0]
         else:
             record_dev = 'ATAPI:0,0,0'
         
         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_MKISOFS',1,'USE Mkisofs instead of cdburn to dumb a DVD iso image'),
             # 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_AUDIO_DAO',1,'Burn audio cds in DAO mode'),
+            ('CDBURN_SPEED', '8', 'Speed to burn CDs with cdrecord'),
+            ('DVD_BURN_SPEED', '4', 'Speed to burn DVDs with cdrecord'),
             ('CDBURN_TEMP_DIR', '/tmp/', 'Temp file name used by cdrecord'),
+            ('CDBURN_GISOFS_DVD_PATH', '/dev/dvd', 'Device for growisofs to use'),
             ('CDBURN_DEV', record_dev, 'Device for cdrecord to burn with (not auto detected)')
         ]
 
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Freevo-devel mailing list
Freevo-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freevo-devel

Reply via email to