diff --git a/src/MediaServer/MediaServer.cpp b/src/MediaServer/MediaServer.cpp index 0c74132..9899473 100644 --- a/src/MediaServer/MediaServer.cpp +++ b/src/MediaServer/MediaServer.cpp @@ -13,7 +13,9 @@ namespace piMapper { MediaServer::MediaServer() : videoWatcher(ofToDataPath(DEFAULT_VIDEOS_DIR, true), SourceType::SOURCE_TYPE_VIDEO), - imageWatcher(ofToDataPath(DEFAULT_IMAGES_DIR, true), SourceType::SOURCE_TYPE_IMAGE){ + imageWatcher(ofToDataPath(DEFAULT_IMAGES_DIR, true), SourceType::SOURCE_TYPE_IMAGE), + piVideoWatcher(PI_IMAGES_DIR, SourceType::SOURCE_TYPE_VIDEO), + piImageWatcher(PI_IMAGES_DIR, SourceType::SOURCE_TYPE_IMAGE){ addWatcherListeners(); } @@ -22,17 +24,30 @@ MediaServer::~MediaServer(){ } int MediaServer::getNumImages(){ - return imageWatcher.getFilePaths().size(); + int numLocalImages = imageWatcher.getFilePaths().size(); + int numPiImages = piImageWatcher.getFilePaths().size(); + int sum = numLocalImages + numPiImages; + return sum; } int MediaServer::getNumVideos(){ - return videoWatcher.getFilePaths().size(); + int numLocalVideos = videoWatcher.getFilePaths().size(); + int numPiVideos = piVideoWatcher.getFilePaths().size(); + int sum = numLocalVideos + numPiVideos; + return sum; } int MediaServer::getNumFboSources(){ return fboSources.size(); } vector & MediaServer::getImagePaths(){ - return imageWatcher.getFilePaths(); + vector & localPaths = imageWatcher.getFilePaths(); + vector & piPaths = piImageWatcher.getFilePaths(); + + _tempImagePaths.clear(); + _tempImagePaths.insert(_tempImagePaths.end(), localPaths.begin(), localPaths.end()); + _tempImagePaths.insert(_tempImagePaths.end(), piPaths.begin(), piPaths.end()); + + return _tempImagePaths; } vector MediaServer::getImageNames(){ @@ -56,7 +71,14 @@ vector MediaServer::getFboSourceNames(){ } vector & MediaServer::getVideoPaths(){ - return videoWatcher.getFilePaths(); + vector & localPaths = videoWatcher.getFilePaths(); + vector & piPaths = piVideoWatcher.getFilePaths(); + + _tempVideoPaths.clear(); + _tempVideoPaths.insert(_tempVideoPaths.begin(), localPaths.begin(), localPaths.end()); + _tempVideoPaths.insert(_tempVideoPaths.begin(), piPaths.begin(), piPaths.end()); + + return _tempVideoPaths; } vector MediaServer::getVideoNames(){ diff --git a/src/MediaServer/MediaServer.h b/src/MediaServer/MediaServer.h index d497dcc..8883391 100644 --- a/src/MediaServer/MediaServer.h +++ b/src/MediaServer/MediaServer.h @@ -26,6 +26,9 @@ #define DEFAULT_IMAGES_DIR "sources/images/" #define DEFAULT_VIDEOS_DIR "sources/videos/" +#define PI_IMAGES_DIR "/boot/ofxpimapper/sources/images" +#define PI_VIDEOS_DIR "/boot/ofxpimapper/sources/videos" + namespace ofx { namespace piMapper { @@ -79,6 +82,12 @@ class MediaServer { // Directory Watchers ofx::piMapper::DirectoryWatcher videoWatcher; ofx::piMapper::DirectoryWatcher imageWatcher; + + ofx::piMapper::DirectoryWatcher piVideoWatcher; + ofx::piMapper::DirectoryWatcher piImageWatcher; + vector _tempImagePaths; + vector _tempVideoPaths; + map loadedSources; // imageWatcher event listeners void handleImageAdded(string & path);