Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNate Theis <natetheis@gmail.com>2010-12-01 18:33:14 (GMT)
committer Nate Theis <natetheis@gmail.com>2010-12-01 18:33:14 (GMT)
commit5996dd1b82bcfbbc2eda4c407f96dd4935c3913c (patch)
tree4708406a48256e839118d1e4e228c980493ef7dd
parent9878051b9a39e5bfbe8958600728e581343ca773 (diff)
removed a file left in from testing
-rwxr-xr-xwodim2
-rw-r--r--wodim_tools.py147
2 files changed, 0 insertions, 149 deletions
diff --git a/wodim b/wodim
deleted file mode 100755
index e15b121..0000000
--- a/wodim
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/bash
-cat wodim_log.txt
diff --git a/wodim_tools.py b/wodim_tools.py
deleted file mode 100644
index 9acd3bd..0000000
--- a/wodim_tools.py
+++ /dev/null
@@ -1,147 +0,0 @@
-# Copyright (c) 2010, Nathaniel Theis
-
-import pexpect, re
-
-#Define some handy things (regexes, strings, etc)
-
-trackmatcher = re.compile(r"Track\s(?P<tracknum>\d+):\s(?P<tracktype>[A-Za-z]+)"
- + r"\W+(?P<tracksize>\d+\s[MmKkGg]B)\s*(?P<tracktime>\(\d+"
- + r":\d+\.\d+\))?")
-
-totalmatcher = re.compile(r"Total size:\s*(?P<totsize>\d+\s[MmKkGg]B)\s+"
- + r"(?P<tottime>\(\d+:\d+\.\d+\))\s=\s(?P<totsectors>\d+)\ssectors")
-
-writestartmatcher = re.compile(r"0\sseconds.\sOperation\sstarts.")
-
-trackstartmatcher = re.compile(r"Starting\snew\strack\sat\ssector:\s+"
- +r"(?P<startsector>\d+)")
-
-trackprogressmatcher = re.compile(r"\rTrack\s(?P<tracknum>\d+):\s+("
- + r"?P<sofar>\d+)\sof\s+(?P<total>\d+)\s"
- + r"(?P<unit>[MmKkGg]B)\swritten"
- + r"(\s\(fifo\s+(?P<fifofill>\d+)+%\)\s+)?"
- + r"(\[buf\s+(?P<buffill>\d+)%\]\s+)?"
- + r"((?P<speed>\d+\.\d+)x)?")
-
-trackdonematcher = re.compile(r"Track\s(?P<tracknum>\d+):\sTotal\sbytes"
- + r"\sread/written:\s(?P<bytesread>\d+)/"
- + r"(?P<byteswritten>\d+)\s\((?P<sectors>\d+)\s"
- + r"sectors\)\.")
-
-fixatestartmatcher = re.compile(r"Fixating...")
-
-fixatedonematcher = re.compile(r"Fixating\stime:\s+(?P<time>\d+\.\d+)s")
-
-carriagereturn = chr(13)
-
-
-
-class WodimWrapper():
- '''WodimWrapper is a class to burn CDs with Wodim'''
- def _get_track_data(self):
- trackinfo = {}
- totalline = ""
-
- while True:
- whichmatch = self.wodim_process.expect([trackmatcher, totalmatcher])
- matchdata = self.wodim_process.match.groupdict()
- if whichmatch == 1:
- #Total info line
- totalline = matchdata
- break
- else:
- #Track info line
- trackinfo[matchdata["tracknum"]] = matchdata
-
- return (trackinfo, totalline)
-
- def _wait_until_write_start(self):
- match = self.wodim_process.expect(writestartmatcher)
-
- def _do_burn(self):
- self.wodim_process.expect(trackstartmatcher)
- match = self.wodim_process.match.groupdict()
-
- startsector = int(match['startsector'])
-
- self.trackstart_cb(startsector)
-
- while True:
- linetype = self.wodim_process.expect([trackprogressmatcher,
- trackdonematcher])
-
- match = self.wodim_process.match.groupdict()
-
- if linetype == 0:
- self.trackprogress_cb(match)
- elif linetype == 1:
- self.trackdone_cb(match)
- break
-
- ##FIXME: Only supports 1-track CD burning
- ##I need example output for a multi-track burn
-
- ##fixate CD
-
- self.wodim_process.expect(fixatestartmatcher)
- self.fixatestart_cb()
-
- self.wodim_process.expect(fixatedonematcher)
- self.fixatedone_cb(self.wodim_process.match.groupdict())
-
- ##now just wait for Wodim to finish!
-
- if self.wodim_process.exitstatus is None:
- self.wodim_process.wait()
-
- self.wodim_process.close()
-
- def __init__(self, args, trackstart_cb, trackprogress_cb,
- trackdone_cb, fixatestart_cb, fixatedone_cb,
- burncomplete_cb, trackdataready_cb,
- command_path="wodim"):
- '''Initialize stuff, mainly set variables'''
- #Yeah, that's a lot of callbacks
-
-
- self.trackstart_cb = trackstart_cb
- self.trackprogress_cb = trackprogress_cb
- self.trackdone_cb = trackdone_cb
- self.fixatestart_cb = fixatestart_cb
- self.fixatedone_cb = fixatedone_cb
- self.burncomplete_cb = burncomplete_cb
- self.trackdataready_cb = trackdataready_cb
-
- self.wodim_command = command_path + " -v "
- #Some info is only shown with -v
-
- self.wodim_command += " ".join(args)
-
- def run(self):
- '''Do the burn!'''
- self.wodim_process = pexpect.spawn(self.wodim_command)
-
- trackdata = self._get_track_data()
- self.trackdataready_cb(trackdata)
-
- self._wait_until_write_start()
-
- self._do_burn()
-
- self.burncomplete_cb()
-
- return self.wodim_process.exitstatus
-
-
-
-if __name__ == "__main__":
- #run a few tests for development purposes
- #i should write unit tests later
-
- def printer(*args):
- for arg in args: print arg
-
- ww = WodimWrapper([], printer, printer, printer,
- printer, printer, printer, printer,
- command_path="./wodim")
- ww.run()