From 6ca30dfe5f7cc49f5333cee046c18c22ac3af014 Mon Sep 17 00:00:00 2001 From: Krisjanis Rijnieks Date: Thu, 16 Oct 2014 13:59:37 +0200 Subject: [PATCH] Add check if image already loaded --- src/MediaServer/MediaServer.cpp | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/src/MediaServer/MediaServer.cpp b/src/MediaServer/MediaServer.cpp index 2a82427..eb032db 100644 --- a/src/MediaServer/MediaServer.cpp +++ b/src/MediaServer/MediaServer.cpp @@ -44,12 +44,33 @@ namespace piMapper { } void MediaServer::loadImage(string& path) { - // Load image and add to vector if loading success - ofImage image; - if (image.loadImage(path)) { - loadedImages.push_back(image); - loadedImagePaths.push_back(path); // Save also path + // Check if this image is already loaded + bool isImageLoaded = false; + for (int i = 0; i < loadedImagePaths.size(); i++) { + if (path == loadedImagePaths[i]) { + isImageLoaded = true; + break; + } + } + // If image is loaded + if (isImageLoaded) { + // Notify objects registered to onImageLoaded event + std::stringstream ss; + ss << "Image " << path << " already loaded"; + ofLogNotice("MediaServer") << ss.str(); ofNotifyEvent(onImageLoaded, path, this); + } else { + // Load image and add to vector if loading success + ofImage image; + if (image.loadImage(path)) { + loadedImages.push_back(image); + loadedImagePaths.push_back(path); // Save also path + // Notify objects registered to onImageLoaded event + ofNotifyEvent(onImageLoaded, path, this); + } else { + ofLogFatalError("MediaServer") << "Failed to load image"; + std::exit(EXIT_FAILURE); + } } }