Dependency on the Skeleton Program working (issue #5)
This task is to add onto the base program the ability to scan a location, for now let's assume a file system folder, and find all of the mp3 files within that location and it's subfolders.
Then it will store some minimal information about each file into the data store.
We should support other file types beyond mp3 (aac, flac, ogg, etc.). Maybe we can add support for more file types at a later time if it doesn't fit at this stage.
It would be nice if file paths could be handled in a way so as to be drive letter/mount point agnostic. Somehow identify the device (via UUID/signature, if that's even possible) so if it is mounted in a different location and rescanned, the files are not seen as new and reindexed.
Depending on the size of the filesystem tree, this process may need to be multi-threaded for performance reasons.
Yes, I agree that other formats should be handled but since the file containers and meta data/tagging may be different I wanted to make sure that the framework was in place. Possibly making pluggable "file handlers" for the various file types. Also, when considering multiple file types we need to consider how to compare different types to each other.
I completely agree. Maybe keep an internal device mapping/aliasing. I would hate for the file system to be on an external drive and just because it was plugged into a different USB port that the mapping was destroyed. We could look at something like CVS's hidden directories in each path. I think this needs more discussion. Also, I think for alpha development should try to make some assumptions about the target system so we don't get too far into the weeds of "what ifs".
I completely agree with this. We'll have to look into the thread safety of the datastore.
Dependency on the Skeleton Program working (issue #5)
This task is to add onto the base program the ability to scan a location, for now let's assume a file system folder, and find all of the mp3 files within that location and it's subfolders.
Then it will store some minimal information about each file into the data store.
Upon completion the program will output something signifying the work that it completed.
(If I'm getting too detailed let me know)