BaseSource* MediaServer::loadImage(string& path) { ImageSource* imageSource = NULL; // Check if this image is already loaded bool isImageLoaded = false; if (loadedSources.count(path)) { imageSource = static_cast<ImageSource*>(loadedSources[path]); isImageLoaded = true; } // If image is loaded if (isImageLoaded) { // Increase reference count of this source //referenceCount[path]++; imageSource->referenceCount++; std::stringstream refss; refss << "Current reference count for " << path << " = " << imageSource->referenceCount; ofLogNotice("MediaServer") << refss.str(); // Notify objects registered to onImageLoaded event std::stringstream ss; ss << "Image " << path << " already loaded"; ofLogNotice("MediaServer") << ss.str(); ofNotifyEvent(onImageLoaded, path, this); return imageSource; } // Else load fresh imageSource = new ImageSource(); imageSource->loadImage(path); loadedSources[path] = imageSource; // Set reference count of this image path to 1 //referenceCount[path] = 1; std::stringstream refss; refss << "Initialized reference count of " << path << " to " << imageSource->referenceCount; ofLogNotice("MediaServer") << refss.str(); // Notify objects registered to onImageLoaded event ofNotifyEvent(onImageLoaded, path, this); return imageSource; }