Scratchtools
From Ssl-wiki
Use cases
Short Description (Priority 1 (lowest) - 3 (highest))
- Brief description
- Presentation Layer (user input):
- Options for the user
- Business Logic Layer
- Possible exceptions
- exception 1: file not found
- exception 2: user entered value out of range
Sync folders to crates (Prio 3)
- Upon start: automatical sync of folders to crates
- Presentation Layer (user input):
- Possible to choose to a given crate to sync to 'which folders' (one or many)
- Choose to whether completely re-build crate or just to add new tracks (default)
- Choose whether to add subfolders as subcrates
- What about the sort order of subfolders? Should they be alphabetically? Should they stick? Should new folders be added at the end?
- Should new added tracks get as import date the date of the file import? Or should they get the file modification date?
- Business Logic Layer
- Read for each crate, which is linked to one or multipls folders (done)
- Read names+location of all files with audio-file extensions underneath the folder given by the user (done)
- Check whether already track in crate (done)
- For each subfolder create a subcrate (done)
- If not, then add to crate (optionally add to DB) (done, optional DB-add not yet implemented, not necessary yet)
- Read for each crate, which is linked to one or multipls folders (done)
- Possible exceptions
Find lost files (Prio 2)
- Find lost tracks: it will scan all crates from a certain drive and check it for files which are not on the drive, then it will scan a folder recursively and will try to identify the file. If it finds multiple files with the same filename it will try to identify it by the given size and give the user the option to choose which file
- Presentation Layer (user input):
- Which drive should be checked
- Which folder should be used as a start point to check for missing tracks
- Which identifying heuristic should be used if tracks with same names are found
- trackname
- size
- ID3 tags
- What should happen if in one crate the same filename (not pathes, just filenames) exist and if a match is found later? Resolving all to the same file+path will result in duplicate crate entries. So should the mutliple tracknames be consolidated into one entry? Or should only one entry be altered and the other files be kept?
- Business Logic Layer
- Read in one datastructure
- Tracks from all crates (done)
- Tracks from DB (done)
- Read names+location of all files with audio-file extensions underneath the folder given by the user (done)
- Check for each track in the list whether the file exists
- if not existing, then check if a file with the same name exists in the list of all read names+location on the HD (done)
- if multiple file exists, then compare sizes or ID3 tags
- if still matching, change location in DB, and in all crates
- if one exist, then compare size or ID3 tags (compare size+ID3tag not yet)
- if still matching, change location in DB, and in all crates
- if multiple file exists, then compare sizes or ID3 tags
- if not existing, then check if a file with the same name exists in the list of all read names+location on the HD (done)
- Write out crates+DB (done)
- Read in one datastructure
- Possible exceptions
Export crates to txt / xml / html files (Prio 1)
- Export crate files to a text formatted file. This should also include all the available ID3 tags from the DB file
- Presentation Layer (user input):
- Select a crate file using JFileChooser
- Select a directory and specify a file name using a SaveFileDialog
- Specify the output format
- Specify columns and order of columns
- Business Logic Layer
- Read the information (and put it into a JTable (uneditable))
- Depending on the output format, write the correct information to the selected file (done)
- Adjustable columns (done)
- Possible exceptions:
- FileNotFoundException
- Invalid characters for file name
Rename files (Prio 3)
- Description: Import crate file, edit track info and save changes to the DB file
- Presentation Layer (user input):
- Select a crate file using JFileChooser
- Business Logic Layer
- Read the information and put it into a JTable (editable)
- After changes have been made, rename the files and save the information in the DB file (so SSL will still be able to locate the files). (done)
- Possible exceptions:
- FileNotFoundException
- Invalid input for track information
- Invalid characters for file name
Delete Orphaned Tracks (Prio 2)
- This function should delete all orphaned tracks. A track is orphaned when it is in the library but not used in any crate.
- Presentation Layer (user input):
- Options for the user
- Business Logic Layer
- Go through the whole library and check if each track is in a crate, if not delete it from the library (done)
- Possible exceptions
- exception 1:
- exception 2:
Reset all columns (Prio 2)
- Description: Resets all columns in your library to one distinct order and view
- Presentation Layer (user input):
- List of columns, each column has a "visible" tick-box
- column order can be changed via drag and drop or move up and down (this should be save automatically into preferences)
- Click a button to reset columns
- Business Logic Layer:
- List of columns (read from preferences)
- Apply changes to all crates (done)
- Possible exceptions
Export crate to folder (Prio 2)
- This function should copy all tracks which belong to one crate to one folder, and create the crate file for it, so that someone could copy this folder and the crate for "take-away" (copy on a USB stick)
- Presentation Layer (user input):
- Choose which crate
- Choose new crate name
- Choose which folder to export to
- Business Logic Layer
- create new crate (done)
- For each track in one crate, copy the track to the export-folder and add it to the new crate (done)
- Possible exceptions
- exception 1: file not found
- exception 2: user entered value out of range
Export iTunes XML to Crates (Prio 2)
Intelligent Crates (Prio 1)
Transfer library (Prio 2)
- Description: Transfer your library including audio files to a different drive
- Presentation Layer (user input):
- A list of possible drives/location
- Business Logic Layer:
- Check for "my music" path stuff
- Copy db+crate+audio files over to specified path (done)
- Possible exceptions
Synchronise library to a backup library (Prio 1)
Backup Folders (Prio 2)
- Description: Copies your database and crate files to a different location for backup purpose
- Presentation Layer (user input):
- Backup path
- Business Logic Layer:
- Copy db+crate files over to specified path (done)
- Possible exceptions
Sort crates alphabetically (Prio 1)
Sync iTunes Rating to colors (prio 1)
Scraped.
Makes no sense as colors can only be changed in DB so far, anything else takes too much time to read+write ... Hm why not... it should be basically just changing one byte in the mp3 file
Convert TTM57 Settings from Mac to PC (Prio 1)
- Copy TTM57 group settings and layout from one computer to another
- Presentation Layer (user input):
- Options for the user
- Business Logic Layer
- Possible exceptions
- exception 1: file not found
- exception 2: user entered value out of range
