Initial import from SVN

This commit is contained in:
emeric
2014-03-09 10:58:52 +01:00
commit b6abce0c2f
440 changed files with 30862 additions and 0 deletions
+67
View File
@@ -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;
};