1efa2d7b20
* morituri/common/program.py: * morituri/rip/cd.py: Serialize the rip result after every rip, so we can pick up where we left off with all result data.
Thomas Vander Stichele
2009-06-09 19:39:59 +00:00
5652cee15e
fix problem when not connected
Thomas Vander Stichele
2009-06-07 22:49:19 +00:00
644e67f105
more variable shuffling
Thomas Vander Stichele
2009-06-07 17:16:04 +00:00
2d892291a8
* morituri/common/program.py: Move getPath to Program. Remove arguments to ripTrack that can be gotten from trackResult. * morituri/rip/cd.py: Continue without musicbrainz metadata. Unify htoa and normal track ripping. * morituri/result/result.py: Add getTrackResult so it's easier to look up track results when there's a HTOA.
Thomas Vander Stichele
2009-06-07 17:10:54 +00:00
df779bc8df
* morituri/common/program.py: * morituri/rip/cd.py: Move HTOA checking to program.
Thomas Vander Stichele
2009-06-07 16:06:58 +00:00
a460abc475
* morituri/result/logger.py: Fix for toctable->table * morituri/common/program.py: * morituri/rip/cd.py: Move lots of functionality to program module.
Thomas Vander Stichele
2009-06-07 15:22:55 +00:00
ce1bc21a39
add another todo
Thomas Vander Stichele
2009-06-07 15:15:12 +00:00
28c2a47d62
* morituri/result/result.py: Change toctable to table since it's a full index table. * morituri/common/Makefile.am: * morituri/common/program.py (added): Add module and class for program state. * morituri/rip/cd.py: Use the program state to clean up the do() function.
Thomas Vander Stichele
2009-06-07 14:20:30 +00:00
d75066d1bb
pychecker cleanup
Thomas Vander Stichele
2009-06-07 13:46:26 +00:00
662c14cf6f
* morituri/rip/cd.py: Massage into 80 characters per line. Make pycdio/cdio optional.
Thomas Vander Stichele
2009-06-07 13:37:54 +00:00
1163db9f43
update docs
Thomas Vander Stichele
2009-06-07 13:36:44 +00:00
64d241808a
* morituri/rip/drive.py: Make pycdio and cdio optional.
Thomas Vander Stichele
2009-06-07 13:34:41 +00:00
247d27db6a
split up
Thomas Vander Stichele
2009-06-07 13:22:25 +00:00
ad52f6c0a9
add HACKING as copy from README
Thomas Vander Stichele
2009-06-07 13:21:58 +00:00
667218aeb7
update README
Thomas Vander Stichele
2009-06-07 13:21:27 +00:00
8f88db0a29
* morituri/image/table.py: Add getPregap() method. * morituri/rip/cd.py: Use artist.name, not getUniqueName, to avoid monstruous names for Muse. Pass mbdiscid to getPath, so Unknown Disc can be saved with it. Don't set the date if the release doesn't have one. Set pregap on trackResult using new Track.getPregap() Write all log/cue/m3u files as utf-8.
Thomas Vander Stichele
2009-06-07 12:54:32 +00:00
3c57682a5a
catch queryerror
Thomas Vander Stichele
2009-06-06 11:16:53 +00:00
8ef93523e4
* morituri/test/cdparanoia.progress: Add a shorter test file, 23 seconds. * morituri/test/test_program_cdparanoia.py: Update the test to adapt. Check for track quality. * morituri/program/cdparanoia.py: Add a measure of track quality based on the number of reads. Use the [wrote] output for progress updates, a bit more jittery in its output. * morituri/rip/cd.py: Set track quality on RipResult.
Thomas Vander Stichele
2009-06-06 11:16:41 +00:00
03cb3b0880
* morituri/rip/cd.py: Use RipResult to store result information. * morituri/result/logger.py (added): Add a Logger to handle the RipResult, much like EAC's log file.
Thomas Vander Stichele
2009-06-05 09:47:03 +00:00
c7a423bb24
* morituri/rip/cd.py: Comment out number of track setting on tag for now. MusicBrainz can give us dates in YYYY, YYYY-MM, and YYYY-MM-DD format, so convert to YYYY-MM-DD always. Unmount the data part of the CD we want to rip if it is mounted. Adapt to peak level change. Don't try to write data tracks to the m3u file. Resolve the device path to the actual device path.
Thomas Vander Stichele
2009-06-05 09:44:08 +00:00
b63777ea62
* morituri/result/result.py: Add a Logger base class.
Thomas Vander Stichele
2009-06-05 09:39:48 +00:00
9a26d7f6a4
* configure.ac: * morituri/Makefile.am: * morituri/result (added): * morituri/result/result.py (added): * morituri/result/__init__.py (added): * morituri/result/Makefile.am (added): Add classes to store track and rip results in.
Thomas Vander Stichele
2009-06-05 07:57:54 +00:00
3883205ed1
* morituri/common/common.py: Add an argument for the delimiter in formatting. * morituri/common/encode.py: Most programs use peak volume, not power, so do this too.
Thomas Vander Stichele
2009-06-04 09:04:19 +00:00
316eefbbd9
* morituri/test/common.py: Add a method for diffing multiline strings.
Thomas Vander Stichele
2009-06-04 09:03:45 +00:00
192d0739c5
* morituri/common/encode.py: Add a test() method to the profile so we can warn about bad flacenc versions. Encode track number and count, and release date, if possible. * morituri/rip/cd.py: Fix another off-by-one error in the tag encoding.
Thomas Vander Stichele
2009-06-01 22:42:32 +00:00
2b17b8e912
* morituri/program/cdparanoia.py: * morituri/rip/cd.py: Handle another off-by-one error in the m3u handling. Add a getTagList function. Use it to encode tags.
Thomas Vander Stichele
2009-06-01 12:53:14 +00:00
0f7f60e1b1
add some goals
Thomas Vander Stichele
2009-06-01 10:23:43 +00:00
2f3c0fdcaf
* morituri/common/encode.py: * morituri/program/cdparanoia.py: * morituri/rip/cd.py: Clean up the temporary unencoded file. Pass profile as objects to tasks, so that temp files have the right extension.
Thomas Vander Stichele
2009-06-01 09:45:30 +00:00
f33c50cead
* morituri/common/encode.py: * morituri/program/cdparanoia.py: Add encoding profiles, kept simple for now as a class and subclasses. Use them to encode. Calculate peak level while encoding, compared to EAC and replaygain's value. * morituri/rip/cd.py: Use the encoding profiles, ripping with the right extension. Add a --profile parameter for it.
Thomas Vander Stichele
2009-05-31 23:04:58 +00:00
b3c2949066
* morituri/rip/cd.py: Clean up track numbering confusion.
Thomas Vander Stichele
2009-05-31 13:30:41 +00:00
7e13909382
* morituri/common/encode.py (added): * examples/encode.py (added): Add an Encode Task, hardcoded to flac for now. Add an example, that also sets tags.
Thomas Vander Stichele
2009-05-26 21:31:21 +00:00
05dfeaa3a2
* morituri/common/task.py: Add debug. * morituri/rip/drive.py: Show all drives, not just the ones that happen to have an Audio CD inserted.
Thomas Vander Stichele
2009-05-26 21:30:49 +00:00
b6b5ea2c1b
add doc
Thomas Vander Stichele
2009-05-25 22:41:01 +00:00
262801e554
* morituri/rip/cd.py: Add asserts for comparing id's between the simple toc and the full table. Create the output directory before ripping the htoa. Ignore data tracks for now. Don't fail if we have no AccurateRip responses. * morituri/image/table.py: Add a session ivar to Track. Factor in session leadin when calculating track length of last track in a session. add getMusicBrainzSubmitURL() add _getSessionGap() because the session gap size is different for session 2 and all following. Use it in merge() to get offsets right. Fix getAccurateRipURL by only using the audio tracks for the 'length in tracks' number Temporarily disable writing out data tracks to a .cue file, since it's not implemented yet. Add canCue to see if we can write a .cue file from the given table, and debug why not if not. * morituri/program/cdrdao.py: Rework to rip each session separately instead of using session 9. This fixes session 9 read-toc missing the pregap. Add a simple LineParser for handling output from disk-info. Count tracks relatively for the session, because the output for session 2 for track numbers picks up where session 1 left off. Don't set leadout from TOC printing since for the same reason session 2's leadout is absolute, not relative to start of session. Add a DiscInfoTask. Convert Table and Toc reading tasks to multitasks, first getting the number of sessions, then reading table/toc for each session. * morituri/test/test_image_table.py: Fix up MusicBrainz disc id for my Ladyhawke disc. Add AccurateRip URL verification, compared against EAC's. * morituri/test/test_image_toc.py: Use two separate session read-toc output files to verify the case of Das Capital. Verify musicbrainz URL.
Thomas Vander Stichele
2009-05-25 14:59:45 +00:00
ed7d5cedad
* morituri/common/task.py: Add documentation. Use a _task counter instead of duplicating tasks to __tasks; this allows us to add tasks after starting. Catch Exceptions during next() so that we don't get stuck in a main loop that doesn't exit. Raise it later when we're done.
Thomas Vander Stichele
2009-05-25 14:51:00 +00:00
10226d062d
* morituri/common/common.py: Since the version was inherited from the current code in unpickled objects, separate into classVersion and an instanceVersion set from __init__.
Thomas Vander Stichele
2009-05-25 14:49:36 +00:00
703d9c1a88
* morituri/image/toc.py: Add a logName for debugging.
Thomas Vander Stichele
2009-05-25 14:47:38 +00:00
631b1478b8
* morituri/program/cdparanoia.py: * morituri/image/image.py: Correctly chain up to parent __init__ for MultiTasks
Thomas Vander Stichele
2009-05-25 14:47:07 +00:00
c793211f28
* morituri/test/capital.1.toc (added): * morituri/test/capital.2.toc (added): Add two .toc's for two sessions of a 2 session disc * morituri/image/table.py: Add a merge method to merge in a second session. * morituri/test/Makefile.am: * morituri/test/test_image_toc.py: Add a test for merging the Das Capital sessions, gets the CDDB disc id right.
Thomas Vander Stichele
2009-05-24 21:30:21 +00:00
59e8310135
* morituri/common/common.py: Add a persisted cache so that we can store pickles on discs. Automatically delete them if the class version is newer than the object's. * morituri/rip/cd.py: Use it.
Thomas Vander Stichele
2009-05-24 18:13:16 +00:00
feec95e768
* morituri/image/table.py: Add a version ivar to help with versioning pickled objects.
Thomas Vander Stichele
2009-05-23 19:48:35 +00:00
85e9058594
* morituri/program/cdparanoia.py: Add copy and test CRC's to object.
Thomas Vander Stichele
2009-05-23 19:47:58 +00:00
7dfc1fbc6c
* morituri/common/accurip.py: * morituri/image/image.py: * morituri/test/Makefile.am: * morituri/test/test_image_image.py: * morituri/test/test_common_accurip.py (added): Move accuraterip stuff to the accurip module. Move/create new test file.
Thomas Vander Stichele
2009-05-23 18:14:11 +00:00
5f872bdaf8
* morituri/rip/Makefile.am: * morituri/rip/main.py: * morituri/rip/drive.py (added): Add 'rip drive list' command to list available drives. * morituri/common/accurip.py: Add force. * morituri/rip/cd.py: Add --output-directory argument.
Thomas Vander Stichele
2009-05-23 16:03:05 +00:00
9710e3cc7c
* morituri/common/Makefile.am: * morituri/rip/cd.py: * morituri/common/accurip.py (added): Add a module for handling a cache of AccurateRip results. Use it.
Thomas Vander Stichele
2009-05-23 13:38:44 +00:00
da8145798d
* morituri/rip/Makefile.am: * morituri/rip/main.py: * morituri/rip/cd.py (added): Add second command, 'rip cd rip' before factoring out functionality.
Thomas Vander Stichele
2009-05-23 10:03:51 +00:00
9e3e1d53cb
* morituri/rip/Makefile.am: * morituri/rip/main.py: * morituri/rip/offset.py (added): Add first command, 'rip offset find'
Thomas Vander Stichele
2009-05-23 09:00:03 +00:00
bc04d0336f
* Makefile.am: * morituri/test/Makefile.am: Make distcheck work.
Thomas Vander Stichele
2009-05-23 08:13:33 +00:00
069eeff0e7
add notes
Thomas Vander Stichele
2009-05-23 08:00:20 +00:00
eb74b1a9b2
add README
Thomas Vander Stichele
2009-05-23 07:59:16 +00:00
7424c6836b
ignore more
Thomas Vander Stichele
2009-05-23 07:56:10 +00:00
cf378f2cfa
add test file
Thomas Vander Stichele
2009-05-23 07:55:22 +00:00
5f63551816
pychecker and docstring fixes
Thomas Vander Stichele
2009-05-23 07:49:48 +00:00
80475df042
more pychecker fixes
Thomas Vander Stichele
2009-05-22 20:52:38 +00:00
7e0e24adb9
more pychecker fixes
Thomas Vander Stichele
2009-05-22 20:52:29 +00:00
fa8239d1f5
* morituri/common/checksum.py: More pychecker fixes.
Thomas Vander Stichele
2009-05-22 20:44:51 +00:00
41c92fcda4
pychecker fixes
Thomas Vander Stichele
2009-05-22 20:44:10 +00:00
b137f6a3fd
should not be in
Thomas Vander Stichele
2009-05-22 20:39:20 +00:00
e51d747a93
update for build
Thomas Vander Stichele
2009-05-22 20:39:11 +00:00
3535f9a606
add configure
Thomas Vander Stichele
2009-05-22 20:35:32 +00:00
4a12d282f9
add init
Thomas Vander Stichele
2009-05-22 20:35:08 +00:00
f0192af6d8
add configure
Thomas Vander Stichele
2009-05-22 20:31:32 +00:00
316523c453
add changes
Thomas Vander Stichele
2009-05-16 19:09:57 +00:00
483c7b8a0c
* morituri/program/cdrdao.py: read all sessions by reading session 9. * morituri/image/toc.py: Parse ZERO statements properly. Also set absolute offsets when we know them from the .toc file. Properly set audio flag on tracks. FIXME: probably doesn't work if the .toc does not have lengths. * morituri/image/table.py: Add some debug to cddb disc id calculation. Fix absolutize function, it was going one index too far. raise ValueError when overriding .absolute with a wrong value. * examples/readdisc.py: Show CDDB disc id at the start. Assert when toc and table have different disc id's (to be fixed) * morituri/test/test_image_cue.py: Update for having the table already with absolute values. * morituri/test/test_image_toc.py: Add Ladyhawke CDDB test, it has a data track.
Thomas Vander Stichele
2009-05-16 19:09:27 +00:00
2f43fe3a33
add toc file with two sessions for testing
Thomas Vander Stichele
2009-05-16 12:47:27 +00:00
b835f94ef1
* examples/readdisc.py: Move constants to common
Thomas Vander Stichele
2009-05-16 10:27:10 +00:00
fd10c5f75c
update docs
Thomas Vander Stichele
2009-05-16 09:57:13 +00:00
96ac69a13d
* examples/readdisc.py: * examples/readhtoa.py: * examples/readtoc.py: Rename IndexTable to Table.
Thomas Vander Stichele
2009-05-16 09:51:03 +00:00
df2182724d
one more symbol
Thomas Vander Stichele
2009-05-16 09:25:42 +00:00
22ee8651d6
* morituri/common/common.py: * morituri/image/cue.py: Use FRAMES_PER_SECOND where appropriate.
Thomas Vander Stichele
2009-05-16 09:24:24 +00:00
59cb5d0dcb
* morituri/common/checksum.py: * morituri/common/common.py: * morituri/image/image.py: * morituri/image/table.py: * morituri/program/cdparanoia.py: Move constants to common
Thomas Vander Stichele
2009-05-16 09:21:55 +00:00
204c5d6212
add another constant before we move
Thomas Vander Stichele
2009-05-16 09:16:09 +00:00
a30b42e143
add a test file
Thomas Vander Stichele
2009-05-16 09:10:41 +00:00
1a55ff8eaa
* examples/readdisc.py: Get our metadata only from the toc.
Thomas Vander Stichele
2009-05-16 09:01:37 +00:00
cc61a1d2dd
* examples/readdisc.py: Also work for discs without htoa.
Thomas Vander Stichele
2009-05-16 08:02:02 +00:00
0431cbe148
add a debug line
Thomas Vander Stichele
2009-05-16 07:31:57 +00:00