Initial import from SVN
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
|
||||
#include "metadata/MetaData.hpp"
|
||||
|
||||
#include "DatabaseHandler.hpp"
|
||||
|
||||
#include "FileTypes.hpp"
|
||||
|
||||
class WatchedDirectory {
|
||||
|
||||
public:
|
||||
|
||||
enum Type {
|
||||
Audio,
|
||||
Video,
|
||||
};
|
||||
|
||||
WatchedDirectory( boost::filesystem::path path, Type type) : _path(path), _type(type) {
|
||||
if (!boost::filesystem::is_directory(path))
|
||||
throw std::runtime_error( "path '" + path.string() + "' is not a directory!");
|
||||
}
|
||||
|
||||
bool operator==(WatchedDirectory const& other) { return _path == other._path && _type == other._type; }
|
||||
|
||||
const boost::filesystem::path& getPath() const { return _path; }
|
||||
Type getType() const { return _type; }
|
||||
|
||||
private:
|
||||
|
||||
boost::filesystem::path _path;
|
||||
Type _type;
|
||||
};
|
||||
|
||||
|
||||
class Database
|
||||
{
|
||||
public:
|
||||
|
||||
Database(boost::filesystem::path db, MetaData::Parser& parser);
|
||||
|
||||
void watchDirectory(WatchedDirectory dir);
|
||||
void unwatchDirectory(WatchedDirectory dir);
|
||||
|
||||
// Rescan media folders
|
||||
void refresh();
|
||||
|
||||
private:
|
||||
|
||||
void refresh(const WatchedDirectory& directory);
|
||||
|
||||
// Video
|
||||
void refreshVideoDirectory( const boost::filesystem::path& directory );
|
||||
void processVideoFile( const boost::filesystem::path& file);
|
||||
|
||||
// Audio
|
||||
void removeMissingAudioFiles( void );
|
||||
void refreshAudioDirectory( const boost::filesystem::path& directory);
|
||||
void processAudioFile( const boost::filesystem::path& file);
|
||||
|
||||
Path::pointer getAddPath(const boost::filesystem::path& path);
|
||||
|
||||
DatabaseHandler _db;
|
||||
|
||||
|
||||
std::list<WatchedDirectory> _directories;
|
||||
MetaData::Parser& _metadataParser;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user