From 9647ba5bdfea6a297a1804272e29ec4cb1486971 Mon Sep 17 00:00:00 2001 From: magdesign <info@magdesign.ch> Date: Sun, 5 Nov 2017 12:46:56 +0100 Subject: [PATCH 01/48] Update README.md --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index b2d8902..d37ace3 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,13 @@ +# This fork is made to integrate some important functions into PiMapper. +# 1. Slide show function (play all images from a folder) +# 2. Play all videos from a folder +# 3. Circular shapes for mapping (there are only sqaure and tringle) +# 4. Grid Warp, meshing of sqare shapes) + +This will be an opensource project and freely available for everyone. +Each function will be rewarded to the coder how realise it. + + # ofxPiMapper [](https://gitter.im/kr15h/ofxPiMapper?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) From 6fce42b95d9da4265b1a0748f74337d229686c9c Mon Sep 17 00:00:00 2001 From: magdesign <info@magdesign.ch> Date: Sun, 5 Nov 2017 12:47:37 +0100 Subject: [PATCH 02/48] Update README.md --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index d37ace3..32c42e8 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # This fork is made to integrate some important functions into PiMapper. -# 1. Slide show function (play all images from a folder) -# 2. Play all videos from a folder -# 3. Circular shapes for mapping (there are only sqaure and tringle) -# 4. Grid Warp, meshing of sqare shapes) +### 1. Slide show function (play all images from a folder) +### 2. Play all videos from a folder +### 3. Circular shapes for mapping (there are only sqaure and tringle) +### 4. Grid Warp, meshing of sqare shapes) This will be an opensource project and freely available for everyone. Each function will be rewarded to the coder how realise it. From 656bfbf64dd0516dd0bc56f9f7ecc27a7a6fd6f1 Mon Sep 17 00:00:00 2001 From: magdesign <info@magdesign.ch> Date: Sun, 5 Nov 2017 12:49:00 +0100 Subject: [PATCH 03/48] Update README.md --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 32c42e8..e8b6dd0 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,12 @@ # This fork is made to integrate some important functions into PiMapper. ### 1. Slide show function (play all images from a folder) ### 2. Play all videos from a folder -### 3. Circular shapes for mapping (there are only sqaure and tringle) -### 4. Grid Warp, meshing of sqare shapes) +### 3. Circular shapes for mapping (there are only square and tringle) +### 4. Grid Warp, meshing of square shapes) This will be an opensource project and freely available for everyone. -Each function will be rewarded to the coder how realise it. + +Each function will be rewarded to the coder from a pot sponsered by pocketvj.com. # ofxPiMapper From dd20b798495601f7482a10a7926e7066211452f8 Mon Sep 17 00:00:00 2001 From: magdesign <info@magdesign.ch> Date: Mon, 6 Nov 2017 10:53:54 +0100 Subject: [PATCH 04/48] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e8b6dd0..7855a63 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ -# This fork is made to integrate some important functions into PiMapper. +# This fork is made to integrate some important functions into PiMapper (RPi/Arm version only). ### 1. Slide show function (play all images from a folder) ### 2. Play all videos from a folder ### 3. Circular shapes for mapping (there are only square and tringle) ### 4. Grid Warp, meshing of square shapes) This will be an opensource project and freely available for everyone. - +Targeting OF_0.9.x on RaspberryPi. Each function will be rewarded to the coder from a pot sponsered by pocketvj.com. From 3ebf2920c6f773340682a22c0072f047501becd5 Mon Sep 17 00:00:00 2001 From: magdesign <info@magdesign.ch> Date: Mon, 6 Nov 2017 10:54:11 +0100 Subject: [PATCH 05/48] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7855a63..ccda122 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ### 1. Slide show function (play all images from a folder) ### 2. Play all videos from a folder ### 3. Circular shapes for mapping (there are only square and tringle) -### 4. Grid Warp, meshing of square shapes) +### 4. Grid Warp (meshing of square shapes) This will be an opensource project and freely available for everyone. Targeting OF_0.9.x on RaspberryPi. From 4d060f35f53a8f145710bebec760a983cb6bd9dd Mon Sep 17 00:00:00 2001 From: magdesign <info@magdesign.ch> Date: Mon, 6 Nov 2017 11:21:25 +0100 Subject: [PATCH 06/48] Update README.md --- README.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ccda122..eaf6491 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,16 @@ # This fork is made to integrate some important functions into PiMapper (RPi/Arm version only). ### 1. Slide show function (play all images from a folder) +This should be selectable as an additional FBO source in PiMapper, looping all images in the /media/internal/images/* folder +Would be cool to adjust the speed with a simple flag, simple opacity transition welcome, but not necessary. Refresh state, so it checks if there are new images added during playback and play them as well. make all images fullscreen. +(if its not possible to handle various sizes as one, i will make an imagemagick script to convert all to 1920x1080) ### 2. Play all videos from a folder -### 3. Circular shapes for mapping (there are only square and tringle) +This should be a an additional FBO source in PiMapper, looping all videos in /media/internal/video/* +### 3. Circular shapes for mapping (there are only square and tringle shapes so far) +Circualr mapping shape ### 4. Grid Warp (meshing of square shapes) +https://forum.openframeworks.cc/t/grid-mesh-warping/12883 +### 5. SoftEdge +Image overlay to making adges transparent, could be achieved with overlaing a png with a black gradient. This will be an opensource project and freely available for everyone. Targeting OF_0.9.x on RaspberryPi. From 3c9b45b8d12172da584e69a4dc0f2d3823d11b44 Mon Sep 17 00:00:00 2001 From: magdesign <info@magdesign.ch> Date: Tue, 7 Nov 2017 01:29:51 +0100 Subject: [PATCH 07/48] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index eaf6491..e38fa9b 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,9 @@ This will be an opensource project and freely available for everyone. Targeting OF_0.9.x on RaspberryPi. Each function will be rewarded to the coder from a pot sponsered by pocketvj.com. +The keybindings will be changed to ones matching to PocketVJ CP and there will be an audio branch added. + + # ofxPiMapper From 830c57a71eb071c74a5f074196e7da4faed397d8 Mon Sep 17 00:00:00 2001 From: magdesign <info@magdesign.ch> Date: Sat, 11 Nov 2017 12:54:39 +0100 Subject: [PATCH 08/48] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e38fa9b..85f6af1 100644 --- a/README.md +++ b/README.md @@ -6,8 +6,9 @@ Would be cool to adjust the speed with a simple flag, simple opacity transition ### 2. Play all videos from a folder This should be a an additional FBO source in PiMapper, looping all videos in /media/internal/video/* ### 3. Circular shapes for mapping (there are only square and tringle shapes so far) -Circualr mapping shape +Circualr mapping shape (if possible with movable center distorsion) ### 4. Grid Warp (meshing of square shapes) +check out this http://www.hv-a.com/lpmt/sssm.pdf on page: 10 https://forum.openframeworks.cc/t/grid-mesh-warping/12883 ### 5. SoftEdge Image overlay to making adges transparent, could be achieved with overlaing a png with a black gradient. From 194d268e3d4d54798a84926742951dfc89a8650c Mon Sep 17 00:00:00 2001 From: magdesign <info@magdesign.ch> Date: Mon, 20 Nov 2017 12:24:52 +0100 Subject: [PATCH 09/48] changed keyboard shortcuts to PVJ 3.x --- .../Modes/ProjectionMappingMode.cpp | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/Application/Modes/ProjectionMappingMode.cpp b/src/Application/Modes/ProjectionMappingMode.cpp index 39d4f5b..6351f57 100644 --- a/src/Application/Modes/ProjectionMappingMode.cpp +++ b/src/Application/Modes/ProjectionMappingMode.cpp @@ -64,11 +64,11 @@ void ProjectionMappingMode::onKeyPressed(Application * app, ofKeyEventArgs & arg app->createSurface(SurfaceType::GRID_WARP_SURFACE); break; - case 'h': + case 'x': app->createSurface(SurfaceType::HEXAGON_SURFACE); break; - case OF_KEY_BACKSPACE: + case 'd': app->eraseSurface(app->getSurfaceManager()->getSelectedSurfaceIndex()); break; @@ -76,19 +76,19 @@ void ProjectionMappingMode::onKeyPressed(Application * app, ofKeyEventArgs & arg app->togglePerspective(); break; - case '}': + case 'n': app->addGridRow(); break; - case '{': + case 'm': app->removeGridRow(); break; - case ']': + case 'v': app->addGridColumn(); break; - case '[': + case 'b': app->removeGridColumn(); break; @@ -100,15 +100,15 @@ void ProjectionMappingMode::onKeyPressed(Application * app, ofKeyEventArgs & arg app->selectPrevSurface(); break; - case '>': + case 'k': app->selectNextVertex(); break; - case '<': + case 'l': app->selectPrevVertex(); break; - case OF_KEY_UP: + case '8': if(app->isShiftKeyDown()){ app->moveSelection(ofVec2f(0.0f, -10.0f)); }else{ @@ -116,7 +116,7 @@ void ProjectionMappingMode::onKeyPressed(Application * app, ofKeyEventArgs & arg } break; - case OF_KEY_DOWN: + case '9': if(app->isShiftKeyDown()){ app->moveSelection(ofVec2f(0.0f, 10.0f)); }else{ @@ -124,7 +124,7 @@ void ProjectionMappingMode::onKeyPressed(Application * app, ofKeyEventArgs & arg } break; - case OF_KEY_LEFT: + case '7': if(app->isShiftKeyDown()){ app->moveSelection(ofVec2f(-10.0f, 0.0f)); }else{ @@ -132,7 +132,7 @@ void ProjectionMappingMode::onKeyPressed(Application * app, ofKeyEventArgs & arg } break; - case OF_KEY_RIGHT: + case '0': if(app->isShiftKeyDown()){ app->moveSelection(ofVec2f(10.0f, 0.0f)); }else{ @@ -140,23 +140,23 @@ void ProjectionMappingMode::onKeyPressed(Application * app, ofKeyEventArgs & arg } break; - case ' ': + case 'w': app->togglePause(); break; - case OF_KEY_TAB: + case '5': app->setNextSource(); break; - case 'd': + case 'a': app->duplicateSurface(); break; - case '0': // Move selected surface up the layer stack + case 'h': // Move selected surface up the layer stack app->moveLayerUp(); break; - case '9': // Move selected surface down the layer stack + case 'j': // Move selected surface down the layer stack app->moveLayerDown(); break; @@ -168,7 +168,7 @@ void ProjectionMappingMode::onKeyPressed(Application * app, ofKeyEventArgs & arg app->scaleDown(); break; - case 'l': + case 'y': _bDrawLayerPanel = !_bDrawLayerPanel; break; @@ -295,4 +295,4 @@ void ProjectionMappingMode::onGuiEvent(Application * app, GuiEvent & e){ } } // namespace piMapper -} // namespace ofx \ No newline at end of file +} // namespace ofx From 75b8c7f4129815cbb0b6ca359efbdb41f69af15e Mon Sep 17 00:00:00 2001 From: magdesign <info@magdesign.ch> Date: Mon, 20 Nov 2017 12:30:27 +0100 Subject: [PATCH 10/48] Updatet Keystrokes to PVJ 3.x --- src/Application/Application.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Application/Application.cpp b/src/Application/Application.cpp index 88aa30b..e38ae8c 100644 --- a/src/Application/Application.cpp +++ b/src/Application/Application.cpp @@ -121,7 +121,7 @@ void Application::onKeyPressed(ofKeyEventArgs & args){ setSourceMode(); break; - case 'i': + case 'c': toggleInfo(); break; @@ -133,7 +133,7 @@ void Application::onKeyPressed(ofKeyEventArgs & args){ undo(); break; - case 'n': + case 'f': setNextPreset(); break; From 5a3c678139f129903c8ad4e92a9af552d0b3ddd4 Mon Sep 17 00:00:00 2001 From: magdesign <info@magdesign.ch> Date: Mon, 20 Nov 2017 20:51:06 +0100 Subject: [PATCH 11/48] Update README.md --- README.md | 42 +++++++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 85f6af1..7d5e2bb 100644 --- a/README.md +++ b/README.md @@ -185,33 +185,41 @@ Key | Function 2 | Texture editing mode 3 | Projection mapping mode, use this to select a surface first 4 | Source selection mode -i | Show info +c | Show info t | Add triangle surface q | Add quad surface +x | Add quad surface g | Add grid warp surface -d | duplicate selected surface -\+ | Scale surface up -\- | Scale surface down +a | duplicate selected surface ++ | Scale surface up +- | Scale surface down p | toggle perspective warping (quad surfaces only) -] | add columns to grid surface (grid warp surfaces only) -[ | remove columns from grid surface (grid warp surfaces only) -} | add rows to grid surface (grid warp surfaces only) -{ | remove rows from grid surface (grid warp surfaces only) +v | add columns to grid surface (grid warp surfaces only) +b | remove columns from grid surface (grid warp surfaces only) +n | add rows to grid surface (grid warp surfaces only) +m | remove rows from grid surface (grid warp surfaces only) . | select next surface (projection mapping mode only) , | select previous surface (projection mapping mode only) -\> | select next vertex -\< | select previous vertex -0 | Move selected surface one layer up -9 | Move selected surface one layer down +k | select next vertex +l | select previous vertex +h | Move selected surface one layer up +j | Move selected surface one layer down s | Save composition -l | Hide/show layer panel +y | Hide/show layer panel z | Undo rbt | Reboot (Raspberry Pi only) sdn | Shutdown (Raspberry Pi only) new | Clear composition (remove all surfaces) ext | Exit application and return to command line -BACKSPACE ('\' via SSH) | Delete surface. -SPACE | Toggle pause for video sources (texture and projection mapping modes) -TAB | Select next source (no need to use the source selection interface) -Arrow keys | Move selection. If no surface is selected in the projection mapping mode, all surfaces are moved. +d | Delete surface. +w | Toggle pause for video sources (texture and projection mapping modes) +5 | Select next source (no need to use the source selection interface) +8 | Move selection Up +9 | Move selection Down +7 | Move selection Left +0 | Move selection Right +If no surface is selected in the projection mapping mode, all surfaces are moved. + +Dont know if this works already: + \/ | Toggle 1px/10px steps for keyboard moves on Raspberry Pi From bf61d47cb26b6fd838a8124be56b6a760ded5aa9 Mon Sep 17 00:00:00 2001 From: magdesign <info@magdesign.ch> Date: Mon, 20 Nov 2017 20:51:50 +0100 Subject: [PATCH 12/48] Update README.md --- README.md | 9 --------- 1 file changed, 9 deletions(-) diff --git a/README.md b/README.md index 7d5e2bb..968bdd7 100644 --- a/README.md +++ b/README.md @@ -48,15 +48,6 @@ You can use the example application of the addon for projection mapping projects ``` -## Compiling on Linux - -There might be issues with compiling because `ofxOMXPlayer` and `ofxRPiCameraVideoGrabber` addons do not exist on Linux and also other non-RPi platforms. To avoid the issues, do the following. - -1. Open `example/addons.make` and remove ofxOMXPlayer line. -2. Open `example-camera/addons.make` and remove ofxRPiCameraVideoGrabber line. -3. Compile one or both examples by using make. - - ## Problems with Audio If you are having problems with audio playback, here are two steps for you. Before you do these, make sure audio of your video file works. From 6aff63c316bf6e98c77b718c970419b8a9d737c2 Mon Sep 17 00:00:00 2001 From: magdesign <info@magdesign.ch> Date: Mon, 20 Nov 2017 20:55:01 +0100 Subject: [PATCH 13/48] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 968bdd7..a5215ce 100644 --- a/README.md +++ b/README.md @@ -182,8 +182,8 @@ q | Add quad surface x | Add quad surface g | Add grid warp surface a | duplicate selected surface -+ | Scale surface up -- | Scale surface down +\+ | Scale surface up +\- | Scale surface down p | toggle perspective warping (quad surfaces only) v | add columns to grid surface (grid warp surfaces only) b | remove columns from grid surface (grid warp surfaces only) From 6d0b641a26dd25f5432dceadabe8e2d4d0f5158b Mon Sep 17 00:00:00 2001 From: magdesign <info@magdesign.ch> Date: Sat, 25 Nov 2017 17:22:41 +0100 Subject: [PATCH 14/48] Update ProjectionMappingMode.cpp --- src/Application/Modes/ProjectionMappingMode.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Application/Modes/ProjectionMappingMode.cpp b/src/Application/Modes/ProjectionMappingMode.cpp index 6351f57..9495743 100644 --- a/src/Application/Modes/ProjectionMappingMode.cpp +++ b/src/Application/Modes/ProjectionMappingMode.cpp @@ -160,11 +160,11 @@ void ProjectionMappingMode::onKeyPressed(Application * app, ofKeyEventArgs & arg app->moveLayerDown(); break; - case '+': // Scale surface up + case 'o': // Scale surface up app->scaleUp(); break; - case '-': // Scale surface down + case 'i': // Scale surface down app->scaleDown(); break; From 3ce53c1fecfb468868047ac1f85d9c491079b7d8 Mon Sep 17 00:00:00 2001 From: magdesign <info@magdesign.ch> Date: Sat, 25 Nov 2017 17:40:01 +0100 Subject: [PATCH 15/48] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a5215ce..cc1feb4 100644 --- a/README.md +++ b/README.md @@ -182,8 +182,8 @@ q | Add quad surface x | Add quad surface g | Add grid warp surface a | duplicate selected surface -\+ | Scale surface up -\- | Scale surface down +o | Scale surface up +i | Scale surface down p | toggle perspective warping (quad surfaces only) v | add columns to grid surface (grid warp surfaces only) b | remove columns from grid surface (grid warp surfaces only) From ed71ea38b4871a69e477a22eedf097c11984c288 Mon Sep 17 00:00:00 2001 From: magdesign <info@magdesign.ch> Date: Tue, 28 Nov 2017 21:30:37 +0100 Subject: [PATCH 16/48] Update README.md --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index cc1feb4..a673779 100644 --- a/README.md +++ b/README.md @@ -17,8 +17,6 @@ This will be an opensource project and freely available for everyone. Targeting OF_0.9.x on RaspberryPi. Each function will be rewarded to the coder from a pot sponsered by pocketvj.com. -The keybindings will be changed to ones matching to PocketVJ CP and there will be an audio branch added. - # ofxPiMapper From 011a9f6c0a31ce0e9bf24d3ac49fdfd2df7494e9 Mon Sep 17 00:00:00 2001 From: c-mendoza <c@matadata.com> Date: Tue, 28 Nov 2017 19:14:31 -0500 Subject: [PATCH 17/48] Basic slide show support. --- example/src/magSlide.cpp | 201 ++++++++++++++ example/src/magSlide.h | 227 ++++++++++++++++ example/src/magSlideShowSource.cpp | 415 +++++++++++++++++++++++++++++ example/src/magSlideShowSource.h | 160 +++++++++++ example/src/magSlideTransition.cpp | 60 +++++ example/src/magSlideTransition.h | 67 +++++ example/src/main.cpp | 2 +- example/src/ofApp.cpp | 22 ++ example/src/ofApp.h | 38 +-- 9 files changed, 1174 insertions(+), 18 deletions(-) create mode 100644 example/src/magSlide.cpp create mode 100644 example/src/magSlide.h create mode 100644 example/src/magSlideShowSource.cpp create mode 100644 example/src/magSlideShowSource.h create mode 100644 example/src/magSlideTransition.cpp create mode 100644 example/src/magSlideTransition.h diff --git a/example/src/magSlide.cpp b/example/src/magSlide.cpp new file mode 100644 index 0000000..7e38228 --- /dev/null +++ b/example/src/magSlide.cpp @@ -0,0 +1,201 @@ +// +// magSlide.cpp +// Copyright (c) 2017 Cristobal Mendoza +// http://cuppetellimendoza.com +// + +#include "magSlide.h" +#include "magSlideTransition.h" + +#pragma mark magSlide + +int magSlide::idCount = 0; + +magSlide::magSlide(std::string type) +{ + this->type = type; + position = ofPoint(0, 0); + id = magSlide::idCount; + magSlide::idCount++; +} + +void magSlide::update(u_int64_t deltaTime) +{ + runningTime += deltaTime; + + switch (slideState) + { + case SlideState::BuildIn: + if (runningTime >= buildInDuration) + { + setState(Normal); + activeTransition = nullptr; + } + break; + + case SlideState::Normal: + if (runningTime >= buildOutStartTime) + { + setState(BuildOut); + if (buildOut != nullptr) + { + activeTransition = buildOut; + activeTransition->start(); + } + } + break; + + case SlideState::BuildOut: + if (runningTime >= endTime) + { + setState(Complete); + activeTransition = nullptr; + } + break; + } + +} + +void magSlide::setSize(float w, float h) +{ + width = w; + height = h; +} + +void magSlide::setResizeOption(magSlide::ResizeOptions resizeOption) +{ + this->resizeOption = resizeOption; +} + +magSlide::ResizeOptions magSlide::getResizeOption() const +{ + return resizeOption; +} + +void magSlide::setDuration(u_int64_t duration) +{ + this->duration = duration; +} + +void magSlide::setState(SlideState state) +{ + // Don't do anything if the new state is the same + // as the current one: + if (slideState == state) return; + + slideState = state; + ofEventArgs args; + ofNotifyEvent(slideStateChangedEvent, args, this); + + if (slideState == Complete) + { + ofNotifyEvent(slideCompleteEvent, args, this); + } +} + +void magSlide::setTransitionDuration(u_int64_t tDuration) +{ + buildInDuration = buildOutDuration = tDuration; +} + +const std::string magSlide::getSlideStateName() +{ + switch (slideState) + { + case SlideState::BuildIn: + return "BuildIn"; + case SlideState::BuildOut: + return "BuildOut"; + case Normal: + return "Normal"; + case SlideState::Complete: + return "Complete"; + case SlideState::Off: + return "Off"; + } + + return "unknown"; +} + +void magSlide::start(u_int64_t startTime) +{ + this->startTime = startTime; + runningTime = 0; + endTime = duration + buildInDuration + buildOutDuration; + buildOutStartTime = endTime - buildOutDuration; + slideState = magSlide::SlideState::BuildIn; + if (buildIn != nullptr) + { + activeTransition = buildIn; + activeTransition->start(); + } + isComplete = false; +} + + +//////////////////////////////////////////////////////// +#pragma mark MAG_IMAGE_SLIDE +//////////////////////////////////////////////////////// + +magImageSlide::magImageSlide() : magSlide("magImageSlide") {} + +magImageSlide::~magImageSlide() {} + +void magImageSlide::setup(ofImage &image) +{ + // Make a copy of the image: + this->image = ofImage(image); + image.setAnchorPercent(0.5, 0.5); + width = image.getWidth(); + height = image.getHeight(); +} + +void magImageSlide::draw() +{ + image.draw(position, width, height); +} + +//////////////////////////////////////////////////////// +#pragma mark MAG_VIDEO_SLIDE +//////////////////////////////////////////////////////// + +magVideoSlide::magVideoSlide() : magSlide("magVideoSlide") +{} + +magVideoSlide::~magVideoSlide() +{ + videoPlayer.stop(); +} + +bool magVideoSlide::setup(ofFile &file, bool useVideoDuration) +{ + + bool success = videoPlayer.load(file.getAbsolutePath()); + + if (success) + { + videoPlayer.setAnchorPercent(0.5, 0.5); + if (useVideoDuration) + { + useVideoForDuration(); + } + } + + return success; +} + +void magVideoSlide::update() +{ + videoPlayer.update(); +} + +void magVideoSlide::draw() +{ + videoPlayer.draw(position.x, position.y, width, height); +} + +void magVideoSlide::useVideoForDuration() +{ + duration = u_int64_t((videoPlayer.getDuration()*1000)) - buildInDuration - buildOutDuration; +} + diff --git a/example/src/magSlide.h b/example/src/magSlide.h new file mode 100644 index 0000000..bff6d27 --- /dev/null +++ b/example/src/magSlide.h @@ -0,0 +1,227 @@ +// +// Created by Cristobal Mendoza on 11/9/17. +// + +#ifndef MAGSLIDE_H +#define MAGSLIDE_H + +#include "ofMain.h" + +class magSlideTransition; + +class magSlide +{ +public: + magSlide(std::string type); +// ~magSlide(); + virtual void update(u_int64_t deltaTime); + virtual void draw() = 0; + + /** + * Sets the slide up for playback. This method must be + * called before displaying the slide. + * @param startTime + */ + void start(u_int64_t startTime); + + enum ResizeOptions : short + { + /** + * No resizing applied, displays the slide in its native pixel dimensions. + * This is the default behavior. + */ + None = 0, + /** + * Explicitly set a slide to display in its native dimension. + * None and NoResize result in the same output, but if you specify + * a default resizing option in your slideshow and you want a particular + * slide not to resize, you must specify this option. Otherwise the + * slide show option will apply. + */ + NoResize, + + /** + * Sets width and height to match the source's. + * This will distort the slide if the aspect ratios + * don't match. + */ + Fit, + + /** + * Resizes the largest dimension to the source's max, + * the other dimension is resized proportionally. + * This is the default behavior. + */ + FitProportionally, + + /** + * Resizes the shortest dimensions to the source's max, + */ + FillProportionally, + }; + + enum SlideState : short + { + Off = 0, + BuildIn, + Normal, + BuildOut, + Complete + }; + + const std::string &getType() + { return type; } + + float getWidth() + { return width; } + + float getHeight() + { return height; } + + /** + * Change the display size of a slide. This will implicitly + * set resizeOptions to ResizeOption.NoResize. + * This method does not resize the pixel source of the slide. + * @param w The new width + * @param h The new height + */ + virtual void setSize(float w, float h); + + u_int64_t getDuration() + { + return duration; + } + + /** + * Sets the display time of the slide, excluding + * builds (in or out) + * @param duration in milliseconds. + */ + void setDuration(u_int64_t duration); + + /** + * Sets the duration of the buildIn and buildOut + * transitions. Transition times are added to the + * duration of the slide. + * @param tDuration in milliseconds. + */ + void setTransitionDuration(u_int64_t tDuration); + ResizeOptions getResizeOption() const; + void setResizeOption(ResizeOptions resizeOption); + + SlideState getSlideState() const + { + return slideState; + } + + bool isSlideComplete() + { return isComplete; } + + int getId() + { return id; } + + const std::string getSlideStateName(); + + ////////////////////////////// + /// Events + ////////////////////////////// + ofEvent<ofEventArgs> slideCompleteEvent; + ofEvent<ofEventArgs> slideStateChangedEvent; + + friend class magSlideShowSource; + +protected: + int id; + std::string type; + float width; + float height; + ofPoint position; + ResizeOptions resizeOption = None; + SlideState slideState = Off; + bool isComplete; + + std::shared_ptr<magSlideTransition> buildIn = nullptr; + std::shared_ptr<magSlideTransition> buildOut = nullptr; + std::shared_ptr<magSlideTransition> activeTransition = nullptr; + /** + * The duration of the slide in millis, not counting builds + */ + u_int64_t duration; + + /** + * The start time of the slide in milliseconds, in "local time". + * In practice, this means that the start time is always 0. + */ + u_int64_t startTime; + + /** + * The end time of the slide in milliseconds, in "local time". + * The endTime is startTime + buildInDuration + duration + buildOutDuration. + */ + u_int64_t endTime; + + /** + * The duration of the build in transition or effect, in milliseconds. + */ + u_int64_t buildInDuration; + + /** + * The duration of the build out transition or effect, in milliseconds. + */ + u_int64_t buildOutDuration; + + /** + * The "local time" start of the build out transition. This time should also + * signal the enqueuing of the next slide, if applicable. + */ + u_int64_t buildOutStartTime; + + /** + * The amount of time the slide has been displayed, in milliseconds. + * This constitutes the "local time" of the slide. + */ + u_int64_t runningTime; + + void setState(SlideState state); + + static int idCount; +}; + +class magImageSlide : public magSlide +{ +public: + magImageSlide(); + ~ magImageSlide(); + /** + * Sets up an image slide. + * @param image is copied into the member magImageSlide::image and is + * not modified in any way. + */ + void setup(ofImage &image); + + void draw(); + +protected: + ofImage image; +}; + +class magVideoSlide : public magSlide +{ +public: + magVideoSlide(); + ~magVideoSlide(); + bool setup(ofFile &file, bool useVideoDuration = false); + void update(); + void draw(); + + /** + * Sets the slide duration to the duration of the video. + * magSlide::duration will be changed by this call, so if you later + * change your mind you'll have to use magSlide::setDuration. + */ + void useVideoForDuration(); +protected: + ofVideoPlayer videoPlayer; +}; + +#endif diff --git a/example/src/magSlideShowSource.cpp b/example/src/magSlideShowSource.cpp new file mode 100644 index 0000000..a417da4 --- /dev/null +++ b/example/src/magSlideShowSource.cpp @@ -0,0 +1,415 @@ +// +// magSlideShowSource.cpp +// Copyright (c) 2017 Cristobal Mendoza +// http://cuppetellimendoza.com +// + + +#include "magSlideShowSource.h" +#include "magSlide.h" +#include "magSlideTransition.h" + +magSlideShowSource::magSlideShowSource() +{ + name = "Slide Show Source"; + currentSlideIndex = 0; + isPlaying = false; +} + +bool magSlideShowSource::initialize(magSlideShowSource::Settings settings) +{ + this->settings = settings; + bool success = true; + + if (settings.width <= 0 || settings.height <= 0) + { + ofLogError("magSlideShowSource::initialize") << "Invalid value for width or height. Width and height " + "must be assigned in your Settings struct!"; + return false; + } + + // Allocate the FBO: + allocate(settings.width, settings.height); + + // If there is a path in slidesFolderPath, attempt + // to load the folder and any files in it: + if (!settings.slidesFolderPath.empty()) + { +// ofDirectory dir = ofDirectory(settings.slidesFolderPath); + success = createFromFolderContents(settings.slidesFolderPath); + + if (!success) + { + ofLogError("magSlideShowSource::initialize") << "Failed to create slide show from folder " + << settings.slidesFolderPath; + return success; + } + + } + else if (!settings.slideshowFilePath.empty()) + { + // try to load slide show from xml + success = false; + } + return success; +} + +void magSlideShowSource::setup() +{ + ofx::piMapper::FboSource::setup(); +} + +void magSlideShowSource::update() +{ + if (!isPlaying) return; + + auto nowTime = ofGetElapsedTimeMillis(); + deltaTime = nowTime-lastTime; + runningTime += deltaTime; + lastTime = nowTime; + +// ofLogVerbose() << "Delta: " << deltaTime << " running: " << runningTime; + + for (auto &slide : activeSlides) + { + slide->update(deltaTime); + } + + // Erase any complete slides: + auto iter = activeSlides.begin(); + for (; iter < activeSlides.end(); iter++) + { + if ((*iter)->isSlideComplete()) + { +// ofLogVerbose() << "Removing from active slides id: " << (*iter)->getId(); + activeSlides.erase(iter); + --iter; + } + } + + if (activeSlides.size() == 0 && isPlaying) + { + ofEventArgs args; + isPlaying = false; + ofNotifyEvent(slideshowCompleteEvent, args, this); + } +} + +void magSlideShowSource::draw() +{ + ofBackground(0, 0); + ofPushMatrix(); + ofTranslate(getWidth()/2.0f, getHeight()/2.0f); + ofSetRectMode(OF_RECTMODE_CENTER); + for (auto &slide : activeSlides) + { + ofSetColor(255); + ofFill(); + slide->draw(); + } + ofPopMatrix(); +} + +bool magSlideShowSource::createFromFolderContents(std::string path) +{ + ofDirectory dir = ofDirectory(path); + slides.clear(); + + if (!dir.isDirectory()) + { + ofLogError("magSlideShowSource::createFromFolderContents") << "Folder path " << dir.getAbsolutePath() + << " is not a directory"; + return false; + } + + auto sortedDir = dir.getSorted(); + auto files = sortedDir.getFiles(); + + if (files.size() < 1) + { + ofLogError("magSlideShowSource::createFromFolderContents") << "Folder " << dir.getAbsolutePath() << " is empty"; + return false; + } + + ofImage tempImage; + for (auto &file : files) + { + if (tempImage.load(file)) + { + // make a new image slide + auto slide = std::make_shared<magImageSlide>(); + slide->setup(tempImage); + slide->setDuration(static_cast<u_int64_t>(settings.slideDuration*1000)); + slide->setTransitionDuration(static_cast<u_int64_t>(settings.transitionDuration*1000)); +// if (settings.transitionName == "") + addSlide(slide); + } + else + { + auto ext = ofToLower(file.getExtension()); + + static std::vector<std::string> movieExtensions = { + "mov", "qt", // Mac + "mp4", "m4p", "m4v", // MPEG + "mpg", "mp2", "mpeg", "mpe", "mpv", "m2v", // MPEG + "3gp", // Phones + "avi", "wmv", "asf", // Windows + "webm", "mkv", "flv", "vob", // Other containers + "ogv", "ogg", + "drc", "mxf" + }; + + // Check if the extension matches known movie formats: + if (ofContains(movieExtensions, ext)) + { + // Make a new video slide + auto slide = std::make_shared<magVideoSlide>(); + if (slide->setup(file)) + { + slide->setDuration(settings.slideDuration*1000.0); + slide->setTransitionDuration(settings.transitionDuration*1000.0); + addSlide(slide); + } + else + { + ofLogError("magSlideShowSource") << "Failed loading video: " << file.getAbsolutePath(); + } + } + + } + } + + if (slides.size() > 0) + { + return true; + } + else + { + return false; + } +} + + +bool magSlideShowSource::loadSlideShow(std::string slideShowXmlPath) +{ + return false; +} + +void magSlideShowSource::addSlide(std::shared_ptr<magSlide> slide) +{ +// ofLogVerbose("addSlide") << slide->getId(); + slides.push_back(slide); + auto rOption = slide->getResizeOption(); + + // If the slide does not have a resize option assign + // the slide show's option + if (rOption == magSlide::ResizeOptions::None) + { + rOption = settings.resizeOption; + } + + // Resize the slide according to the resize option: + switch (rOption) + { + float sw, sh, ratio; + + case magSlide::ResizeOptions::FitProportionally: + sw = slide->getWidth(); + sh = slide->getHeight(); + + if (sw > sh) + { + ratio = (float) getWidth()/sw; + } + else + { + ratio = (float) getHeight()/sh; + } + + slide->setSize(sw*ratio, sh*ratio); + break; + + case magSlide::ResizeOptions::FillProportionally: + sw = slide->getWidth(); + sh = slide->getHeight(); + + if (sw > sh) + { + ratio = (float) getHeight()/sh; + } + else + { + ratio = (float) getWidth()/sw; + } + + slide->setSize(sw*ratio, sh*ratio); + break; + + case magSlide::Fit: + slide->setSize(getWidth(), getHeight()); + break; + } + + // Add transitions: + + if (!settings.transitionName.empty()) + { + static ofParameterGroup bogusParamGroup; // This is temporary so that things compile + slide->buildIn = magSlideTransition::createTransition(settings.transitionName, + slide, + bogusParamGroup, + slide->buildInDuration); + slide->buildOut = magSlideTransition::createTransition(settings.transitionName, + slide, + bogusParamGroup, + slide->buildOutDuration); + } + //// void method(const void * sender, ArgumentsType &args) + ofAddListener(slide->slideStateChangedEvent, this, &magSlideShowSource::slideStateChanged); + ofAddListener(slide->slideCompleteEvent, this, &magSlideShowSource::slideComplete); + +} + +void magSlideShowSource::play() +{ + if (!isPlaying) + { + runningTime = 0; + lastTime = ofGetElapsedTimeMillis(); + isPlaying = true; + auto currentSlide = slides[currentSlideIndex]; + enqueueSlide(currentSlide, ofGetElapsedTimeMillis()); + } +} + +void magSlideShowSource::pause() +{ + isPlaying = false; +} + +void magSlideShowSource::playNextSlide() +{ + //TODO + // I should check here to see if there are less than two slides. + // If so, we should probably return + + currentSlideIndex += direction; + ofEventArgs args; + + // This makes sure that we are doing a signed integer comparison, + // otherwise things get weird + int num = slides.size(); + switch (settings.loopType) + { + case LoopType::NONE: + if (currentSlideIndex >= slides.size() || currentSlideIndex < 0) + { + // If we are not looping and we are out of bounds, return + // without enqueueing a slide. This will cause the slide show + // to end once the last slide builds out. + return; + } + break; + case LoopType::NORMAL: + if (currentSlideIndex >= num) + { + loopCount++; + if (loopCount == settings.numLoops) + { + // Return without enqueueing a new slide if we have + // reached the max number of loops. + return; + } + currentSlideIndex = 0; + ofNotifyEvent(slideshowWillLoopEvent, args, this); + } + else if (currentSlideIndex < 0) + { + loopCount++; + if (loopCount == settings.numLoops) + { + // Return without enqueueing a new slide if we have + // reached the max number of loops. + return; + } + currentSlideIndex = slides.size()-1; + ofNotifyEvent(slideshowWillLoopEvent, args, this); + } + break; + case LoopType::PING_PONG: + + int num = slides.size(); + if (currentSlideIndex >= num) + { + loopCount++; + if (loopCount == settings.numLoops) + { + // Return without enqueueing a new slide if we have + // reached the max number of loops. + return; + } + + direction = -1; + currentSlideIndex = slides.size()-2; + ofNotifyEvent(slideshowWillLoopEvent, args, this); + } + else if (currentSlideIndex < 0) + { + loopCount++; + if (loopCount == settings.numLoops) + { + // Return without enqueueing a new slide if we have + // reached the max number of loops. + return; + } + + direction = 1; + currentSlideIndex = 1; + ofNotifyEvent(slideshowWillLoopEvent, args, this); + } + break; + } + + enqueueSlide(slides[currentSlideIndex], ofGetElapsedTimeMillis()); +} + +void magSlideShowSource::playPrevSlide() +{ + currentSlideIndex -= (direction*2); + playNextSlide(); +} + +void magSlideShowSource::playSlide(int slideIndex) +{ + currentSlideIndex = slideIndex-direction; + playNextSlide(); +} + +void magSlideShowSource::enqueueSlide(std::shared_ptr<magSlide> slide, u_int64_t startTime) +{ +// ofLogVerbose() << "Enqueuing slide " << currentSlideIndex << " slide id: " << slide->getId(); + slide->start(startTime); + activeSlides.push_back(slide); +} + +void magSlideShowSource::slideStateChanged(const void *sender, ofEventArgs &args) +{ + magSlide *slide = (magSlide *) sender; + +// ofLogVerbose("slideStateChanged") << "Slide id: " << slide->getId() << " Slide state: " +// << slide->getSlideStateName(); + if (slide->getSlideState() == magSlide::SlideState::BuildOut) + { + playNextSlide(); + } + +} + +void magSlideShowSource::slideComplete(const void *sender, ofEventArgs &args) +{ + magSlide *slide = (magSlide *) sender; +// ofLogVerbose() << "Slide Complete. id: " << slide->getId(); + slide->isComplete = true; +} + + diff --git a/example/src/magSlideShowSource.h b/example/src/magSlideShowSource.h new file mode 100644 index 0000000..1e808ef --- /dev/null +++ b/example/src/magSlideShowSource.h @@ -0,0 +1,160 @@ +// +// magSlideShowSource.h +// Copyright (c) 2017 Cristobal Mendoza +// http://cuppetellimendoza.com +// + +#ifndef MAGSLIDESHOWSOURCE_H +#define MAGSLIDESHOWSOURCE_H + +#include "FboSource.h" +#include "magSlide.h" + +class magSlide; + + +class magSlideShowSource : public ofx::piMapper::FboSource +{ +public: + magSlideShowSource(); + struct Settings; // forward declaration + bool initialize(magSlideShowSource::Settings settings); + void setup() override; + void update() override; + void draw() override; + + /** + * Removes all slides and then attempts to create a new slide show + * based on the contents of the ofDirectory specified. The files may + * be images or videos, which will be transformed into the appropriate slide type. + * Any other file type in the directory is ignored (including other directories). + * The slide order is alphabetical according to filename. + * + * @param dir The ofDirectory to use as a source for a slide show. + * @return true if at least one slide was created. false is returned + * otherwise. Check the console for the specific error. + */ + bool createFromFolderContents(std::string path); + bool loadSlideShow(std::string slideShowXmlPath); + void addSlide(std::shared_ptr<magSlide> slide); + void play(); + void pause(); + void playNextSlide(); + void playPrevSlide(); + void playSlide(int slideIndex); + + enum LoopType + { + NONE = 0, + NORMAL, + PING_PONG + }; + + struct Settings + { + /** + * The pixel width of the FBO. This value must be provided. + */ + float width = 0; + + /** + * The pixel height of the FBO. This value must be provided. + */ + float height = 0; + /** + * An optional default slide duration, in seconds. + * If a slide specifies a duration this value is ignored. + */ + float slideDuration = 5; + + /** + * An optional default transition for the slide show. + */ + std::string transitionName = ""; + + /** + * An optional default transition duration. If no transition + * is specified, this value is ignored; + */ + float transitionDuration = 1; + + /** + * If specified, all applicable files in the folder will + * be used as slides in the slide show. They will be ordered + * alphabetically according to their file names. + * + * If path is relative, the root will likely be the Data folder. + */ + std::string slidesFolderPath; + + /** + * If specified, + */ + std::string slideshowFilePath; + + + /** + * Loop type for the slide show. See @code LoopType for options. + * The default is @code LoopType:None. + */ + LoopType loopType = LoopType::NONE; + + /** + * The number of loops to perform, if the loopType is not NONE. + * If the value is 0 or less than 0, the slide show loops forever. + */ + int numLoops = 0; + + /** + * The resizing option for the slide show. The default is None. If a slide + * already has a resizing option applied, that option will be respected and + * this resizeOption will not be used. + */ + magSlide::ResizeOptions resizeOption = magSlide::ResizeOptions::None; + }; + + //////////////////////////////////////////// + //// Event Listeners + //////////////////////////////////////////// + void slideStateChanged(const void* sender, ofEventArgs &args); + void slideComplete(const void* sender, ofEventArgs &args); + + + /** + * Fires when the slide show is done, which happens when + * the loop count is equal to Settings::numLoops, or when + * the last slide is played when @code LoopType::NONE is specified. + * Sender is this slide show. + */ + ofEvent<ofEventArgs> slideshowCompleteEvent; + + + /** + * Fires when the slide show reaches the last slide + * and will perform a loop in the next call. + * Sender is this slide show. + */ + ofEvent<ofEventArgs> slideshowWillLoopEvent; + +protected: + Settings settings; + std::vector<std::shared_ptr<magSlide>> slides; + +private: +// std::shared_ptr<magSlide> currentSlide; + std::vector<std::shared_ptr<magSlide>> activeSlides; + void enqueueSlide(std::shared_ptr<magSlide> slide, u_int64_t startTime); + + u_int64_t lastTime; + u_int64_t deltaTime; + u_int64_t runningTime; + + bool isInitialized = false; + bool isPlaying = false; + int currentSlideIndex = 0; + int direction = 1; + int loopCount = 0; +}; + + +#endif diff --git a/example/src/magSlideTransition.cpp b/example/src/magSlideTransition.cpp new file mode 100644 index 0000000..54ff0c8 --- /dev/null +++ b/example/src/magSlideTransition.cpp @@ -0,0 +1,60 @@ +// +// magSlideTransition.cpp +// Copyright (c) 2017 Cristobal Mendoza +// http://cuppetellimendoza.com +// + +#include "magSlideTransition.h" + +std::shared_ptr<magSlideTransition> +magSlideTransition::createTransition(std::string transitionName, std::shared_ptr<magSlide> slide, + ofParameterGroup &settings, u_int64_t duration) +{ + auto transition = magSlideTransition::instantiateTransition(transitionName); + transition->slide = slide; + transition->duration = duration; + transition->loadSettings(settings); + return transition; +} + +void magSlideTransition::start() +{ + runningTime = 0; + isActive = true; +} + +void magSlideTransition::update(u_int64_t timeDelta) +{ + if (!isActive) return; + + runningTime += timeDelta; + if (runningTime >= duration) + { + ofEventArgs arghh; // arghhhh... + transitionCompleteEvent.notify(this, arghh); + isActive = false; + } + +} + +u_int64_t magSlideTransition::getRunningTime() +{ + return runningTime; +} + +float magSlideTransition::getNormalizedTime() +{ + return (double)runningTime / (double)duration; +} + +std::shared_ptr<magSlideTransition> magSlideTransition::instantiateTransition(string transitionName) +{ + return std::make_shared<magVoidTransition>(); +} + +//magDissolveTransition::magDissolveTransition() +//{} +void magVoidTransition::loadSettings(ofParameterGroup &settings) +{ + ofLogNotice("magVoidTransition") << "Void Transition is loading nothing"; +} diff --git a/example/src/magSlideTransition.h b/example/src/magSlideTransition.h new file mode 100644 index 0000000..2c2a15d --- /dev/null +++ b/example/src/magSlideTransition.h @@ -0,0 +1,67 @@ +// +// magSlideTransition.h +// Copyright (c) 2017 Cristobal Mendoza +// http://cuppetellimendoza.com +// + +#ifndef MAGSLIDETRANSITION_H +#define MAGSLIDETRANSITION_H + + +#include "magSlide.h" + +class magSlideTransition +{ +public: + static std::shared_ptr<magSlideTransition> createTransition(string transitionName, + shared_ptr<magSlide> ptr, + ofParameterGroup &group, + u_int64_t i); + /** + * Begins the transition. This must be called in order for the + * transition to actually do anything! + */ + void start(); + virtual void loadSettings(ofParameterGroup &settings) = 0; + virtual void setup(){} + virtual void update(u_int64_t timeDelta); + virtual void draw(){} + + /** + * Current running time in milliseconds. + * @return u_int64_t + */ + u_int64_t getRunningTime(); + + /** + * Returns the current time in normalized form. + * 0 = start, 1 = end. + * @return Float between 0 and 1. + */ + float getNormalizedTime(); + + ofEvent<ofEventArgs> transitionCompleteEvent; + +protected: + magSlideTransition(){} + std::shared_ptr<magSlide> slide; + u_int64_t runningTime; + u_int64_t duration; + u_int64_t endTime; + bool isActive = false; + static shared_ptr<magSlideTransition> instantiateTransition(string transitionName); +}; + +class magVoidTransition : public magSlideTransition +{ +public: + void loadSettings(ofParameterGroup &settings) override; +}; + +class magDissolveTransition : public magSlideTransition +{ +public: + +}; + +#endif diff --git a/example/src/main.cpp b/example/src/main.cpp index e5733f9..d743ec0 100644 --- a/example/src/main.cpp +++ b/example/src/main.cpp @@ -17,6 +17,6 @@ int main(int argc, char * argv[]){ Settings::instance()->setFullscreen(fullscreen); - ofSetupOpenGL(800, 450, OF_WINDOW); + ofSetupOpenGL(1024, 768, OF_WINDOW); ofRunApp(new ofApp()); } diff --git a/example/src/ofApp.cpp b/example/src/ofApp.cpp index 93a0d08..9c75f7b 100644 --- a/example/src/ofApp.cpp +++ b/example/src/ofApp.cpp @@ -14,8 +14,27 @@ void ofApp::setup(){ // a surface in XML settings. crossSource = new CrossSource(); customSource = new CustomSource(); + + // Create the slide show source. + slideShowSource = new magSlideShowSource(); + + // Create the settings struct for the slide show. + magSlideShowSource::Settings settings; + settings.width = 1280; + settings.height = 720; + settings.slidesFolderPath = "sources/images"; + settings.transitionDuration = 0; + settings.slideDuration = 0.5; + settings.loopType = magSlideShowSource::LoopType::NORMAL; + settings.resizeOption = magSlide::ResizeOptions::FitProportionally; + + // Initialize the slide show with our settings. + slideShowSource->initialize(settings); + + // Register our sources: piMapper.registerFboSource(crossSource); piMapper.registerFboSource(customSource); + piMapper.registerFboSource(slideShowSource); piMapper.setup(); // The info layer is hidden by default, press <i> to toggle @@ -23,6 +42,9 @@ void ofApp::setup(){ ofSetFullscreen(Settings::instance()->getFullscreen()); ofSetEscapeQuitsApp(false); + ofSetLogLevel(OF_LOG_VERBOSE); + + slideShowSource->play(); } void ofApp::update(){ diff --git a/example/src/ofApp.h b/example/src/ofApp.h index 8ca4b64..5718af7 100644 --- a/example/src/ofApp.h +++ b/example/src/ofApp.h @@ -6,24 +6,28 @@ #include "CustomSource.h" #include "CrossSource.h" #include "VideoSource.h" +#include "magSlideShowSource.h" -class ofApp : public ofBaseApp { - public: - void setup(); - void update(); - void draw(); - - void keyPressed(int key); - void keyReleased(int key); - - void mousePressed(int x, int y, int button); - void mouseReleased(int x, int y, int button); - void mouseDragged(int x, int y, int button); +class ofApp : public ofBaseApp +{ +public: + void setup(); + void update(); + void draw(); - ofxPiMapper piMapper; + void keyPressed(int key); + void keyReleased(int key); + + void mousePressed(int x, int y, int button); + void mouseReleased(int x, int y, int button); + void mouseDragged(int x, int y, int button); + + ofxPiMapper piMapper; + + // By using a custom source that is derived from FboSource + // you will be able to see the source listed in sources editor + CustomSource *customSource; + CrossSource *crossSource; + magSlideShowSource *slideShowSource; - // By using a custom source that is derived from FboSource - // you will be able to see the source listed in sources editor - CustomSource * customSource; - CrossSource * crossSource; }; From e161a626c6b6035fffb0b1fa4bbac4e268e84c1d Mon Sep 17 00:00:00 2001 From: magdesign <info@magdesign.ch> Date: Wed, 29 Nov 2017 23:30:04 +0100 Subject: [PATCH 18/48] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a673779..f9b3695 100644 --- a/README.md +++ b/README.md @@ -177,7 +177,7 @@ Key | Function c | Show info t | Add triangle surface q | Add quad surface -x | Add quad surface +x | Add hexagon surface g | Add grid warp surface a | duplicate selected surface o | Scale surface up From be6f2602c0bb529f894248164704da159128d797 Mon Sep 17 00:00:00 2001 From: c-mendoza <c@matadata.com> Date: Thu, 30 Nov 2017 17:13:27 -0500 Subject: [PATCH 19/48] Rename ResizeOption enum item to play nice with GCC --- example/src/magSlide.h | 8 ++++---- example/src/magSlideShowSource.cpp | 2 +- example/src/magSlideShowSource.h | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/example/src/magSlide.h b/example/src/magSlide.h index bff6d27..c1889cb 100644 --- a/example/src/magSlide.h +++ b/example/src/magSlide.h @@ -30,7 +30,7 @@ public: * No resizing applied, displays the slide in its native pixel dimensions. * This is the default behavior. */ - None = 0, + NoResize = 0, /** * Explicitly set a slide to display in its native dimension. * None and NoResize result in the same output, but if you specify @@ -38,7 +38,7 @@ public: * slide not to resize, you must specify this option. Otherwise the * slide show option will apply. */ - NoResize, + Native, /** * Sets width and height to match the source's. @@ -136,9 +136,9 @@ protected: float width; float height; ofPoint position; - ResizeOptions resizeOption = None; + ResizeOptions resizeOption = NoResize; SlideState slideState = Off; - bool isComplete; + bool isComplete = false; std::shared_ptr<magSlideTransition> buildIn = nullptr; std::shared_ptr<magSlideTransition> buildOut = nullptr; diff --git a/example/src/magSlideShowSource.cpp b/example/src/magSlideShowSource.cpp index a417da4..5cc8a64 100644 --- a/example/src/magSlideShowSource.cpp +++ b/example/src/magSlideShowSource.cpp @@ -203,7 +203,7 @@ void magSlideShowSource::addSlide(std::shared_ptr<magSlide> slide) // If the slide does not have a resize option assign // the slide show's option - if (rOption == magSlide::ResizeOptions::None) + if (rOption == magSlide::ResizeOptions::NoResize) { rOption = settings.resizeOption; } diff --git a/example/src/magSlideShowSource.h b/example/src/magSlideShowSource.h index 1e808ef..bfa6377 100644 --- a/example/src/magSlideShowSource.h +++ b/example/src/magSlideShowSource.h @@ -110,7 +110,7 @@ public: * already has a resizing option applied, that option will be respected and * this resizeOption will not be used. */ - magSlide::ResizeOptions resizeOption = magSlide::ResizeOptions::None; + magSlide::ResizeOptions resizeOption = magSlide::ResizeOptions::NoResize; }; //////////////////////////////////////////// From c3ac37a25113d09cd8ed3f4b25cd838b34b3d494 Mon Sep 17 00:00:00 2001 From: c-mendoza <c@matadata.com> Date: Thu, 30 Nov 2017 17:15:04 -0500 Subject: [PATCH 20/48] Update example's ofxpimapper.xml to display a slide show --- example/bin/data/ofxpimapper.xml | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/example/bin/data/ofxpimapper.xml b/example/bin/data/ofxpimapper.xml index 69a404b..0f1d1ff 100644 --- a/example/bin/data/ofxpimapper.xml +++ b/example/bin/data/ofxpimapper.xml @@ -2,16 +2,16 @@ <surface type="0"> <vertices> <vertex> - <x>250.000000000</x> - <y>138.187255859</y> + <x>244.000000000</x> + <y>151.187255859</y> </vertex> <vertex> - <x>403.625549316</x> - <y>291.812774658</y> + <x>397.625549316</x> + <y>304.812774658</y> </vertex> <vertex> - <x>96.374511719</x> - <y>291.812774658</y> + <x>90.374511719</x> + <y>304.812774658</y> </vertex> </vertices> <texCoords> @@ -36,20 +36,20 @@ <surface type="1"> <vertices> <vertex> - <x>425.565002441</x> - <y>144.782531738</y> + <x>542.498229980</x> + <y>298.375427246</y> </vertex> <vertex> - <x>718.434936523</x> - <y>144.782531738</y> + <x>865.982421875</x> + <y>286.925292969</y> </vertex> <vertex> - <x>718.434936523</x> - <y>291.217407227</y> + <x>956.157958984</x> + <y>659.075439453</y> </vertex> <vertex> - <x>425.565002441</x> - <y>291.217407227</y> + <x>498.842285156</x> + <y>590.370300293</y> </vertex> </vertices> <texCoords> @@ -72,7 +72,7 @@ </texCoords> <source> <source-type>fbo</source-type> - <source-name>Custom FBO Source</source-name> + <source-name>Slide Show Source</source-name> </source> <properties> <perspectiveWarping>1</perspectiveWarping> From 3ce2d8d25e6be9080961866383f0e7458eba164d Mon Sep 17 00:00:00 2001 From: c-mendoza <c@matadata.com> Date: Fri, 1 Dec 2017 16:36:55 -0500 Subject: [PATCH 21/48] Auto stash before merge of "magSlideShowSource" and "kr15h/master" --- .gitignore | 8 + example/CMakeLists.txt | 23 +- example/addons.make | 3 +- example/example.xcodeproj/project.pbxproj | 1545 ++++++++--------- .../xcschemes/example Debug.xcscheme | 19 +- .../xcschemes/example Release.xcscheme | 19 +- example/openFrameworks-Info.plist | 4 +- example/src/magSlideShowSource.cpp | 1 + 8 files changed, 733 insertions(+), 889 deletions(-) diff --git a/.gitignore b/.gitignore index 593962f..3b590fa 100644 --- a/.gitignore +++ b/.gitignore @@ -105,3 +105,11 @@ Desktop.ini *.log *.sql *.sqlite + +example/cmake-build-debug/ + +example/\.idea/ + +example/cmake-build-release/ + +example/example\.xcodeproj/xcshareddata/xcschemes/ diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt index 34fa65e..3cf049a 100755 --- a/example/CMakeLists.txt +++ b/example/CMakeLists.txt @@ -4,6 +4,7 @@ # ===================== CMake Settings =================== # ======================================================== cmake_minimum_required( VERSION 3.3 ) + project( openframeworks ) # ======================================================== @@ -17,21 +18,23 @@ set( APP_NAME example_ofxPiMapper ) set( OF_DIRECTORY_BY_USER "../../.." ) # --------------------- Source Files --------------------- + +file( GLOB_RECURSE + APP_SRC + "src/*.cpp" + ) + set( ${APP_NAME}_SOURCE_FILES - src/main.cpp - src/ofApp.cpp - src/CrossSource.cpp - src/CustomSource.cpp - src/Settings.cpp) + ${APP_SRC} ) # ------------------------ AddOns ----------------------- set( OFX_ADDONS_ACTIVE - ofxXmlSettings - ofxGui - ofxPiMapper - ofxIO - ) + ofxXmlSettings + ofxGui + ofxPiMapper +# ofxIO + ) # ========================================================================= # ============================== OpenFrameworks =========================== diff --git a/example/addons.make b/example/addons.make index aee7c01..e72d2dd 100644 --- a/example/addons.make +++ b/example/addons.make @@ -1,4 +1,3 @@ +ofxGui ofxPiMapper ofxXmlSettings -ofxGui -ofxOMXPlayer diff --git a/example/example.xcodeproj/project.pbxproj b/example/example.xcodeproj/project.pbxproj index 3eaea39..e2402e5 100644 --- a/example/example.xcodeproj/project.pbxproj +++ b/example/example.xcodeproj/project.pbxproj @@ -7,112 +7,97 @@ objects = { /* Begin PBXBuildFile section */ - 0115A67B1DBF93BA00C51732 /* Application.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0115A5D91DBF93BA00C51732 /* Application.cpp */; }; - 0115A67C1DBF93BA00C51732 /* ApplicationBaseMode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0115A5DC1DBF93BA00C51732 /* ApplicationBaseMode.cpp */; }; - 0115A67D1DBF93BA00C51732 /* PresentationMode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0115A5DE1DBF93BA00C51732 /* PresentationMode.cpp */; }; - 0115A67E1DBF93BA00C51732 /* ProjectionMappingMode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0115A5E01DBF93BA00C51732 /* ProjectionMappingMode.cpp */; }; - 0115A67F1DBF93BA00C51732 /* SourceSelectionMode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0115A5E21DBF93BA00C51732 /* SourceSelectionMode.cpp */; }; - 0115A6801DBF93BA00C51732 /* TextureMappingMode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0115A5E41DBF93BA00C51732 /* TextureMappingMode.cpp */; }; - 0115A6811DBF93BA00C51732 /* SettingsLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0115A5E61DBF93BA00C51732 /* SettingsLoader.cpp */; }; - 0115A6A51DBF93BA00C51732 /* Gui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0115A6311DBF93BA00C51732 /* Gui.cpp */; }; - 0115A6A61DBF93BA00C51732 /* LayerPanelWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0115A6351DBF93BA00C51732 /* LayerPanelWidget.cpp */; }; - 0115A6A71DBF93BA00C51732 /* ProjectionEditorWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0115A6371DBF93BA00C51732 /* ProjectionEditorWidget.cpp */; }; - 0115A6A81DBF93BA00C51732 /* ScaleWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0115A6391DBF93BA00C51732 /* ScaleWidget.cpp */; }; - 0115A6A91DBF93BA00C51732 /* SourcesEditorWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0115A63B1DBF93BA00C51732 /* SourcesEditorWidget.cpp */; }; - 0115A6AA1DBF93BA00C51732 /* SurfaceHighlightWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0115A63D1DBF93BA00C51732 /* SurfaceHighlightWidget.cpp */; }; - 0115A6AC1DBF93BA00C51732 /* TextureEditorWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0115A6411DBF93BA00C51732 /* TextureEditorWidget.cpp */; }; - 0115A6AD1DBF93BA00C51732 /* TextureHighlightWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0115A6431DBF93BA00C51732 /* TextureHighlightWidget.cpp */; }; - 0115A6AE1DBF93BA00C51732 /* Info.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0115A6461DBF93BA00C51732 /* Info.cpp */; }; - 0115A6AF1DBF93BA00C51732 /* DirectoryWatcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0115A6491DBF93BA00C51732 /* DirectoryWatcher.cpp */; }; - 0115A6B01DBF93BA00C51732 /* MediaServer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0115A64B1DBF93BA00C51732 /* MediaServer.cpp */; }; - 0115A6B11DBF93BA00C51732 /* ofxPiMapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0115A64D1DBF93BA00C51732 /* ofxPiMapper.cpp */; }; - 0115A6B21DBF93BA00C51732 /* BaseSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0115A6501DBF93BA00C51732 /* BaseSource.cpp */; }; - 0115A6B31DBF93BA00C51732 /* FboSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0115A6521DBF93BA00C51732 /* FboSource.cpp */; }; - 0115A6B41DBF93BA00C51732 /* ImageSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0115A6541DBF93BA00C51732 /* ImageSource.cpp */; }; - 0115A6B51DBF93BA00C51732 /* OMXPlayerCache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0115A6561DBF93BA00C51732 /* OMXPlayerCache.cpp */; }; - 0115A6B61DBF93BA00C51732 /* VideoSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0115A6591DBF93BA00C51732 /* VideoSource.cpp */; }; - 0115A6B71DBF93BA00C51732 /* BaseSurface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0115A65C1DBF93BA00C51732 /* BaseSurface.cpp */; }; - 0115A6B81DBF93BA00C51732 /* GridWarpSurface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0115A65E1DBF93BA00C51732 /* GridWarpSurface.cpp */; }; - 0115A6B91DBF93BA00C51732 /* HexagonSurface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0115A6601DBF93BA00C51732 /* HexagonSurface.cpp */; }; - 0115A6BA1DBF93BA00C51732 /* QuadSurface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0115A6621DBF93BA00C51732 /* QuadSurface.cpp */; }; - 0115A6BB1DBF93BA00C51732 /* SurfaceFactory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0115A6641DBF93BA00C51732 /* SurfaceFactory.cpp */; }; - 0115A6BC1DBF93BA00C51732 /* SurfaceManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0115A6661DBF93BA00C51732 /* SurfaceManager.cpp */; }; - 0115A6BD1DBF93BA00C51732 /* SurfaceStack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0115A6681DBF93BA00C51732 /* SurfaceStack.cpp */; }; - 0115A6BE1DBF93BA00C51732 /* TriangleSurface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0115A66B1DBF93BA00C51732 /* TriangleSurface.cpp */; }; - 0115A6BF1DBF93BA00C51732 /* BaseJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0115A66E1DBF93BA00C51732 /* BaseJoint.cpp */; }; - 0115A6C01DBF93BA00C51732 /* CircleJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0115A6701DBF93BA00C51732 /* CircleJoint.cpp */; }; - 0115A6C11DBF93BA00C51732 /* RadioList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0115A6741DBF93BA00C51732 /* RadioList.cpp */; }; - 0115A6C21DBF93BA00C51732 /* HomographyHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0115A6771DBF93BA00C51732 /* HomographyHelper.cpp */; }; - 016630881DC66DAB0081F28F /* AddGridColCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0166303D1DC66DAB0081F28F /* AddGridColCmd.cpp */; }; - 016630891DC66DAB0081F28F /* AddGridRowCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0166303F1DC66DAB0081F28F /* AddGridRowCmd.cpp */; }; - 0166308A1DC66DAB0081F28F /* AddSurfaceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 016630411DC66DAB0081F28F /* AddSurfaceCmd.cpp */; }; - 0166308B1DC66DAB0081F28F /* ClearSurfacesCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 016630441DC66DAB0081F28F /* ClearSurfacesCmd.cpp */; }; - 0166308C1DC66DAB0081F28F /* CmdManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 016630461DC66DAB0081F28F /* CmdManager.cpp */; }; - 0166308D1DC66DAB0081F28F /* DeselectSurfaceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 016630481DC66DAB0081F28F /* DeselectSurfaceCmd.cpp */; }; - 0166308E1DC66DAB0081F28F /* DeselectTexCoordCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0166304A1DC66DAB0081F28F /* DeselectTexCoordCmd.cpp */; }; - 0166308F1DC66DAB0081F28F /* DuplicateSurfaceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0166304C1DC66DAB0081F28F /* DuplicateSurfaceCmd.cpp */; }; - 016630901DC66DAB0081F28F /* MvAllTexCoordsCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0166304E1DC66DAB0081F28F /* MvAllTexCoordsCmd.cpp */; }; - 016630911DC66DAB0081F28F /* MvLayerDnCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 016630501DC66DAB0081F28F /* MvLayerDnCmd.cpp */; }; - 016630921DC66DAB0081F28F /* MvLayerUpCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 016630521DC66DAB0081F28F /* MvLayerUpCmd.cpp */; }; - 016630931DC66DAB0081F28F /* MvSelectionCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 016630541DC66DAB0081F28F /* MvSelectionCmd.cpp */; }; - 016630941DC66DAB0081F28F /* MvSurfaceVertCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 016630561DC66DAB0081F28F /* MvSurfaceVertCmd.cpp */; }; - 016630951DC66DAB0081F28F /* MvTexCoordCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 016630581DC66DAB0081F28F /* MvTexCoordCmd.cpp */; }; - 016630961DC66DAB0081F28F /* RmGridColCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0166305A1DC66DAB0081F28F /* RmGridColCmd.cpp */; }; - 016630971DC66DAB0081F28F /* RmGridRowCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0166305C1DC66DAB0081F28F /* RmGridRowCmd.cpp */; }; - 016630981DC66DAB0081F28F /* RmSurfaceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0166305E1DC66DAB0081F28F /* RmSurfaceCmd.cpp */; }; - 016630991DC66DAB0081F28F /* SaveTexCoordPosCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 016630601DC66DAB0081F28F /* SaveTexCoordPosCmd.cpp */; }; - 0166309A1DC66DAB0081F28F /* ScaleSurfaceFromToCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 016630621DC66DAB0081F28F /* ScaleSurfaceFromToCmd.cpp */; }; - 0166309B1DC66DAB0081F28F /* SelNextSurfaceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 016630641DC66DAB0081F28F /* SelNextSurfaceCmd.cpp */; }; - 0166309C1DC66DAB0081F28F /* SelNextTexCoordCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 016630661DC66DAB0081F28F /* SelNextTexCoordCmd.cpp */; }; - 0166309D1DC66DAB0081F28F /* SelNextVertexCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 016630681DC66DAB0081F28F /* SelNextVertexCmd.cpp */; }; - 0166309E1DC66DAB0081F28F /* SelPrevSurfaceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0166306A1DC66DAB0081F28F /* SelPrevSurfaceCmd.cpp */; }; - 0166309F1DC66DAB0081F28F /* SelPrevTexCoordCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0166306C1DC66DAB0081F28F /* SelPrevTexCoordCmd.cpp */; }; - 016630A01DC66DAB0081F28F /* SelPrevVertexCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0166306E1DC66DAB0081F28F /* SelPrevVertexCmd.cpp */; }; - 016630A11DC66DAB0081F28F /* SelSurfaceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 016630701DC66DAB0081F28F /* SelSurfaceCmd.cpp */; }; - 016630A21DC66DAB0081F28F /* SelTexCoordCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 016630721DC66DAB0081F28F /* SelTexCoordCmd.cpp */; }; - 016630A31DC66DAB0081F28F /* SelVertexCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 016630741DC66DAB0081F28F /* SelVertexCmd.cpp */; }; - 016630A41DC66DAB0081F28F /* SetApplicationModeCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 016630761DC66DAB0081F28F /* SetApplicationModeCmd.cpp */; }; - 016630A51DC66DAB0081F28F /* SetNextSourceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 016630781DC66DAB0081F28F /* SetNextSourceCmd.cpp */; }; - 016630A61DC66DAB0081F28F /* SetPresetCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0166307A1DC66DAB0081F28F /* SetPresetCmd.cpp */; }; - 016630A71DC66DAB0081F28F /* SetSourceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0166307C1DC66DAB0081F28F /* SetSourceCmd.cpp */; }; - 016630A81DC66DAB0081F28F /* SetTexMapDrawModeCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0166307E1DC66DAB0081F28F /* SetTexMapDrawModeCmd.cpp */; }; - 016630A91DC66DAB0081F28F /* StartDragSurfaceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 016630801DC66DAB0081F28F /* StartDragSurfaceCmd.cpp */; }; - 016630AA1DC66DAB0081F28F /* ToggleAnimatedSourceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 016630821DC66DAB0081F28F /* ToggleAnimatedSourceCmd.cpp */; }; - 016630AB1DC66DAB0081F28F /* TogglePerspectiveCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 016630841DC66DAB0081F28F /* TogglePerspectiveCmd.cpp */; }; - 016630AC1DC66DAB0081F28F /* TranslateCanvasCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 016630861DC66DAB0081F28F /* TranslateCanvasCmd.cpp */; }; - 3926483B192224DA0008A7F5 /* ofxXmlSettings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 39264839192224DA0008A7F5 /* ofxXmlSettings.cpp */; }; - 39264841192224F90008A7F5 /* tinyxml.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3926483D192224F90008A7F5 /* tinyxml.cpp */; }; - 39264842192224F90008A7F5 /* tinyxmlerror.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3926483F192224F90008A7F5 /* tinyxmlerror.cpp */; }; - 39264843192224F90008A7F5 /* tinyxmlparser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 39264840192224F90008A7F5 /* tinyxmlparser.cpp */; }; - 3933D5D319BB87BD000ACA55 /* ofxBaseGui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3933D5C219BB87BD000ACA55 /* ofxBaseGui.cpp */; }; - 3933D5D419BB87BD000ACA55 /* ofxButton.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3933D5C419BB87BD000ACA55 /* ofxButton.cpp */; }; - 3933D5D519BB87BD000ACA55 /* ofxGuiGroup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3933D5C719BB87BD000ACA55 /* ofxGuiGroup.cpp */; }; - 3933D5D619BB87BD000ACA55 /* ofxLabel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3933D5C919BB87BD000ACA55 /* ofxLabel.cpp */; }; - 3933D5D719BB87BD000ACA55 /* ofxPanel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3933D5CB19BB87BD000ACA55 /* ofxPanel.cpp */; }; - 3933D5D819BB87BD000ACA55 /* ofxSlider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3933D5CD19BB87BD000ACA55 /* ofxSlider.cpp */; }; - 3933D5D919BB87BD000ACA55 /* ofxSliderGroup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3933D5CF19BB87BD000ACA55 /* ofxSliderGroup.cpp */; }; - 3933D5DA19BB87BD000ACA55 /* ofxToggle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3933D5D119BB87BD000ACA55 /* ofxToggle.cpp */; }; - 397EFC821A09047C0009286E /* CustomSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 397EFC801A09047C0009286E /* CustomSource.cpp */; }; - 3995C20A1C79069B00123352 /* Settings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3995C2091C79069B00123352 /* Settings.cpp */; }; - 399953691BD54FF600D5B1F1 /* CrossSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 399953671BD54FF600D5B1F1 /* CrossSource.cpp */; }; + 06765053D7BFBBEB43E77B23 /* StartDragSurfaceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E8DA47AF2B265F778E74D4DA /* StartDragSurfaceCmd.cpp */; }; + 14566DCD28D35A80428886C4 /* SelTexCoordCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 27453C6FAE9B674FD694508D /* SelTexCoordCmd.cpp */; }; + 1CD33E884D9E3358252E82A1 /* ofxToggle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 907C5B5E104864A2D3A25745 /* ofxToggle.cpp */; }; + 1F4453EA1589AD79F4B34493 /* RadioList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4048CA09E6AAB5F673CBD2F0 /* RadioList.cpp */; }; + 21B18AC78EBFC1FD28C614D5 /* TextureMappingMode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B16277019B0C4B684E1B063E /* TextureMappingMode.cpp */; }; + 23963D6D8F0085D5DD2DF394 /* TogglePerspectiveCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 655142313A378162E3929785 /* TogglePerspectiveCmd.cpp */; }; + 25F5CD753AF35B53464E56AE /* MvTexCoordCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0739F09627790055C959BBF4 /* MvTexCoordCmd.cpp */; }; + 274AEF0299D77E27C0C5B205 /* ProjectionEditorWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 18DA1B30717C876AA19CEEC0 /* ProjectionEditorWidget.cpp */; }; + 28F5415281F8D09BBC098355 /* TranslateCanvasCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 03FCF5559C2A6AB79D947767 /* TranslateCanvasCmd.cpp */; }; + 2A9AFA74E0EF07E58AC11382 /* QuadSurface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B9ECBF061BABECA9C2341372 /* QuadSurface.cpp */; }; + 2AB23B34A18E47DB0D742387 /* CrossSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2DDA3608BED55BC67A9DAFF5 /* CrossSource.cpp */; }; + 2E9E05C9FFCE15172A701335 /* SettingsLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 33DD6E4350FD51C68B7E65F0 /* SettingsLoader.cpp */; }; + 36A98A331EAE1D0A19998A59 /* SaveTexCoordPosCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 60F40691CD9DE4DEE1768FE9 /* SaveTexCoordPosCmd.cpp */; }; + 3B90107DB9BF4857E357FCA8 /* ofxPiMapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 16DB3860ECC0D672B08DE71C /* ofxPiMapper.cpp */; }; + 401140F3B7FA4412935BB121 /* Application.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1B3B1807E9CFC3FFBA4DBBEF /* Application.cpp */; }; + 4280FE72330EE80A9929046F /* Settings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4A0800123A129E9BC12ED207 /* Settings.cpp */; }; + 42AB7CD7DFB89209AB951942 /* ProjectionMappingMode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1BCA96396113AAF56D66C844 /* ProjectionMappingMode.cpp */; }; + 42BCE929D520D8872171239A /* CircleJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 62F01592304CB7995200EF7B /* CircleJoint.cpp */; }; + 483908258D00B98B4BE69F07 /* ofxLabel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78D67A00EB899FAC09430597 /* ofxLabel.cpp */; }; + 4A53BFBA57F4AD16FB9D2D24 /* PresentationMode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64156CB2D856E4CE0FBBED96 /* PresentationMode.cpp */; }; + 4BF21A290FA6FE26B87B8971 /* SetNextSourceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4FFBE499412CC8DD07163E91 /* SetNextSourceCmd.cpp */; }; + 4D2D4455339FC8C955091C88 /* TextureEditorWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 413E846B881CCADC897A8A40 /* TextureEditorWidget.cpp */; }; + 580602DA874A9CF9E850DEEE /* AddGridColCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 231337763726D333E0B3D56C /* AddGridColCmd.cpp */; }; + 5826FF4F63DC430E90AFDA5E /* RmGridRowCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F3538B8AF69CAB7C215FA1EF /* RmGridRowCmd.cpp */; }; + 588E33B9B0BD6F5A2E4DF31D /* OMXPlayerCache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F7B0806EEA8012D629BE363C /* OMXPlayerCache.cpp */; }; + 5A4349E9754D6FA14C0F2A3A /* tinyxmlparser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC5DA1C87211D4F6377DA719 /* tinyxmlparser.cpp */; }; + 5CBB2AB3A60F65431D7B555D /* ofxButton.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C88333E71C9457E441C33474 /* ofxButton.cpp */; }; + 6056983B92E88B475FF04299 /* MvSelectionCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7D386994DF359F3BD1E66480 /* MvSelectionCmd.cpp */; }; + 60C8089351E49CF344577098 /* SelNextTexCoordCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 784FFEB8D108EC916343AB97 /* SelNextTexCoordCmd.cpp */; }; + 63B57AC5BF4EF088491E0317 /* ofxXmlSettings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 50DF87D612C5AAE17AAFA6C0 /* ofxXmlSettings.cpp */; }; + 63DB0907B2ACDF9E6F2D9925 /* GridWarpSurface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2D2400AC1A64EDE5E990C56C /* GridWarpSurface.cpp */; }; + 6438655B2AE4DDA2743241EC /* ToggleAnimatedSourceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D020B9B28609D071E21BB76 /* ToggleAnimatedSourceCmd.cpp */; }; + 6500BFD07CA93EFD8A162B25 /* SetSourceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7F58FFED7FBFC49573FF65E4 /* SetSourceCmd.cpp */; }; + 67FF225B68ECC1942C833BFE /* SelNextSurfaceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC98A68C64BFC941D0B31EE9 /* SelNextSurfaceCmd.cpp */; }; + 7002E598586957E5F20E69A7 /* SelVertexCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A2282B1E05458C3B2BBCE568 /* SelVertexCmd.cpp */; }; + 7702233BBFB6E8D9E8B93CBC /* FboSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C61C1F4F1A1ED2660B1D6EDC /* FboSource.cpp */; }; + 7DAB7D546F81A93336034BF7 /* SelPrevSurfaceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6DF54314CF2B45BF195B84C6 /* SelPrevSurfaceCmd.cpp */; }; + 800748EF057A284D9DA82F60 /* SelPrevTexCoordCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F7E88D3956480E0CBAA21641 /* SelPrevTexCoordCmd.cpp */; }; + 82643E358DF270B9EC939699 /* RmGridColCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A50F23D868C48DF9799BC788 /* RmGridColCmd.cpp */; }; + 837220E80EB56CD44AD27F2A /* ofxSlider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15F2C6477A769C03A56D1401 /* ofxSlider.cpp */; }; + 83CACB24937919003F2F9B63 /* HomographyHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E2333CF877EE99EBE86F4B0F /* HomographyHelper.cpp */; }; + 84172554824F6959BA431E33 /* SetPresetCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15C9B02F2CF08112845CD074 /* SetPresetCmd.cpp */; }; + 845DC872C79A75F7B5FABC02 /* MvSurfaceVertCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 18041C8871E17DE3E60BFF95 /* MvSurfaceVertCmd.cpp */; }; + 85649EB44DE8F0A3BF8430F9 /* SurfaceManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 836B103542A52C63B004410C /* SurfaceManager.cpp */; }; + 856AA354D08AB4B323081444 /* ofxBaseGui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9604B925D32EE39065747725 /* ofxBaseGui.cpp */; }; + 868F230C6074263277ED9B07 /* BaseJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E78D1B2A6DB0856BF8ED1FE /* BaseJoint.cpp */; }; + 892923A127FC7C57469FD078 /* BaseSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4132974E14024E74E320F5 /* BaseSource.cpp */; }; + 8A3D6CE0A4338871766366B6 /* SurfaceHighlightWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 69A4D26FC0AD01A86571540D /* SurfaceHighlightWidget.cpp */; }; + 8CA6C92E3D4F91750BC469FF /* MvAllTexCoordsCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DBAFA0B7AFEA589CA5167204 /* MvAllTexCoordsCmd.cpp */; }; + 8E8F94DC506856A4E92FBA8A /* LayerPanelWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 57990D37D728C5711AACBA9F /* LayerPanelWidget.cpp */; }; + 90DE06EA59944C1BEA539719 /* SetApplicationModeCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8D3CB0B9A827AFA479349BBE /* SetApplicationModeCmd.cpp */; }; + 92527EF632E7EC0E96BC329C /* MediaServer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 18385A4F4BC87806616D4F7F /* MediaServer.cpp */; }; + 933A2227713C720CEFF80FD9 /* tinyxml.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2B40EDA85BEB63E46785BC29 /* tinyxml.cpp */; }; + 93760FE8B10EBD4081251E10 /* CmdManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BDBE053980FA01FAD543D782 /* CmdManager.cpp */; }; + 95CB0A22296B3DB402835DCF /* ImageSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 61291E56B7882C9E9B8F119B /* ImageSource.cpp */; }; + 973F560586CB3735581265E7 /* DeselectTexCoordCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E8CE817DF3028A4345376E7D /* DeselectTexCoordCmd.cpp */; }; + 9C194C9F4ACD67CD61FBD30D /* HexagonSurface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCBB74B9531974E1D5DA019B /* HexagonSurface.cpp */; }; + 9CAA3B0DFD59840998C832DA /* TextureHighlightWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 941AD8B39C28D08B9F31077A /* TextureHighlightWidget.cpp */; }; + 9D44DC88EF9E7991B4A09951 /* tinyxmlerror.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 832BDC407620CDBA568B713D /* tinyxmlerror.cpp */; }; + 9F968AD3A115328F4BFE5D71 /* BaseSurface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F2C0EE541190D47BF5911C0A /* BaseSurface.cpp */; }; + A0C1CAB7B9C59DDDC960EB62 /* VideoSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5407451FA68C27B2AAE644A6 /* VideoSource.cpp */; }; + A3E23EF00463364A9FE3860C /* CustomSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 76B40246C8B90C1CA4074BB7 /* CustomSource.cpp */; }; + A6EE8D8F3CA590EF6D7FAFA6 /* SetTexMapDrawModeCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 49BE2D8F2A2A57F4EBF83FF4 /* SetTexMapDrawModeCmd.cpp */; }; + A75658250711ADE2C05FC781 /* MvLayerDnCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EC481BAB32B250D3EA41AF9E /* MvLayerDnCmd.cpp */; }; + AA98F23DF9897F2241EF3968 /* SourceSelectionMode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4245228145B1AA737F49CF14 /* SourceSelectionMode.cpp */; }; + B01F972DDDA5F21EF4C8B99D /* RmSurfaceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B7C308F8B76FCB909581A580 /* RmSurfaceCmd.cpp */; }; + B1EEE5A7EC1876072BF8F7FE /* AddSurfaceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B323D7489A7B26A63443444F /* AddSurfaceCmd.cpp */; }; + B266578FC55D23BFEBC042E7 /* ofxGuiGroup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ECF8674C7975F1063C5E30CA /* ofxGuiGroup.cpp */; }; + B27F2ADC894A4C463E892AFE /* SurfaceFactory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 03FA94CA9F193C816DE4253F /* SurfaceFactory.cpp */; }; + B56FE57CC35806596D38118C /* ofxSliderGroup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 802251BAF1B35B1D67B32FD0 /* ofxSliderGroup.cpp */; }; + B9654D0EF43BCA228B330ED7 /* SelPrevVertexCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3B29C3846BA06080344C1D1E /* SelPrevVertexCmd.cpp */; }; + C0EB2D2E383BA9DE417ADB38 /* TriangleSurface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3DF2D82EA37D8C7A5F686EA5 /* TriangleSurface.cpp */; }; + C34B66987F4DA38C21AF325B /* MvLayerUpCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E52D4207C299D5886C8FD2C7 /* MvLayerUpCmd.cpp */; }; + C3A616FB3A463C17E327F395 /* SurfaceStack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1C080561EC053F17BB86A668 /* SurfaceStack.cpp */; }; + C4D6DA9B890E612343FD059F /* ApplicationBaseMode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9631F04A0875ADEB45970DE8 /* ApplicationBaseMode.cpp */; }; + C8D7FA44AA0565654A681157 /* DeselectSurfaceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6E80EE6FB0CC304A6CA287BB /* DeselectSurfaceCmd.cpp */; }; + D61A46C1800537BA43C7884F /* DuplicateSurfaceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C656C28252AD5E9E09FA2162 /* DuplicateSurfaceCmd.cpp */; }; + D88BA6D139757ED4E1669796 /* AddGridRowCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3E4A0386460638A781A7AC84 /* AddGridRowCmd.cpp */; }; + DB8FC60C7512DB810C92625B /* DirectoryWatcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 20F9951441118A70E8D55E13 /* DirectoryWatcher.cpp */; }; + E327ACE85A208BAFACD1B7C7 /* ScaleSurfaceFromToCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 34B45EB44DED0A47FBAD30F4 /* ScaleSurfaceFromToCmd.cpp */; }; E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4328148138ABC890047C5CB /* openFrameworksDebug.a */; }; - E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9710E8CC7DD009D7055 /* AGL.framework */; }; - E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */; }; - E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */; }; - E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */; }; - E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */; }; - E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9770E8CC7DD009D7055 /* CoreServices.framework */; }; - E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9790E8CC7DD009D7055 /* OpenGL.framework */; }; - E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */; }; E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1D0A3A1BDC003C02F2 /* main.cpp */; }; E4B69E210A3A1BDC003C02F2 /* ofApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */; }; - E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424410CC5A17004149E2 /* AppKit.framework */; }; - E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424510CC5A17004149E2 /* Cocoa.framework */; }; - E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424610CC5A17004149E2 /* IOKit.framework */; }; - E4EB6799138ADC1D00A09F29 /* GLUT.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBAB23BE13894E4700AA2426 /* GLUT.framework */; }; - E7E077E515D3B63C0020DFD4 /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7E077E415D3B63C0020DFD4 /* CoreVideo.framework */; }; - E7E077E815D3B6510020DFD4 /* QTKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7E077E715D3B6510020DFD4 /* QTKit.framework */; }; - E7F985F815E0DEA3003869B5 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7F985F515E0DE99003869B5 /* Accelerate.framework */; }; + E5D631612E039E04B1736E76 /* SelSurfaceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0B691BBAB665F94F09B2C276 /* SelSurfaceCmd.cpp */; }; + E6D82F5A7B22E9FB46DEEF15 /* SelNextVertexCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 140C0677F9F5A5D3B8A89AC4 /* SelNextVertexCmd.cpp */; }; + EA700B09626C8413C92EF860 /* Gui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DCC24025AD26B4554B000385 /* Gui.cpp */; }; + F06AE014F869282B7F7CE84C /* ScaleWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F4EDCDF597954EF25E7AD416 /* ScaleWidget.cpp */; }; + F285EB3169F1566CA3D93C20 /* ofxPanel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E112B3AEBEA2C091BF2B40AE /* ofxPanel.cpp */; }; + F3EACD31EE5E141FF66C48BD /* Info.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EEF2CEBAFFABCFED915AFCE1 /* Info.cpp */; }; + F9A6B58165791682416A1685 /* ClearSurfacesCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 962C349E8F4E59FF335AB2A6 /* ClearSurfacesCmd.cpp */; }; + FB03F0A6D7866DFC55F519EB /* SourcesEditorWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 36F59D2F886152DF4115A218 /* SourcesEditorWidget.cpp */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -145,211 +130,197 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 0100D9401E33E667000D7FA5 /* Mode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Mode.h; sourceTree = "<group>"; }; - 0115A5D91DBF93BA00C51732 /* Application.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Application.cpp; sourceTree = "<group>"; }; - 0115A5DA1DBF93BA00C51732 /* Application.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Application.h; sourceTree = "<group>"; }; - 0115A5DC1DBF93BA00C51732 /* ApplicationBaseMode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ApplicationBaseMode.cpp; sourceTree = "<group>"; }; - 0115A5DD1DBF93BA00C51732 /* ApplicationBaseMode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ApplicationBaseMode.h; sourceTree = "<group>"; }; - 0115A5DE1DBF93BA00C51732 /* PresentationMode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PresentationMode.cpp; sourceTree = "<group>"; }; - 0115A5DF1DBF93BA00C51732 /* PresentationMode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PresentationMode.h; sourceTree = "<group>"; }; - 0115A5E01DBF93BA00C51732 /* ProjectionMappingMode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ProjectionMappingMode.cpp; sourceTree = "<group>"; }; - 0115A5E11DBF93BA00C51732 /* ProjectionMappingMode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProjectionMappingMode.h; sourceTree = "<group>"; }; - 0115A5E21DBF93BA00C51732 /* SourceSelectionMode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SourceSelectionMode.cpp; sourceTree = "<group>"; }; - 0115A5E31DBF93BA00C51732 /* SourceSelectionMode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SourceSelectionMode.h; sourceTree = "<group>"; }; - 0115A5E41DBF93BA00C51732 /* TextureMappingMode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TextureMappingMode.cpp; sourceTree = "<group>"; }; - 0115A5E51DBF93BA00C51732 /* TextureMappingMode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextureMappingMode.h; sourceTree = "<group>"; }; - 0115A5E61DBF93BA00C51732 /* SettingsLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SettingsLoader.cpp; sourceTree = "<group>"; }; - 0115A5E71DBF93BA00C51732 /* SettingsLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SettingsLoader.h; sourceTree = "<group>"; }; - 0115A6311DBF93BA00C51732 /* Gui.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Gui.cpp; sourceTree = "<group>"; }; - 0115A6321DBF93BA00C51732 /* Gui.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Gui.h; sourceTree = "<group>"; }; - 0115A6341DBF93BA00C51732 /* GuiBaseWidget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GuiBaseWidget.h; sourceTree = "<group>"; }; - 0115A6351DBF93BA00C51732 /* LayerPanelWidget.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LayerPanelWidget.cpp; sourceTree = "<group>"; }; - 0115A6361DBF93BA00C51732 /* LayerPanelWidget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LayerPanelWidget.h; sourceTree = "<group>"; }; - 0115A6371DBF93BA00C51732 /* ProjectionEditorWidget.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ProjectionEditorWidget.cpp; sourceTree = "<group>"; }; - 0115A6381DBF93BA00C51732 /* ProjectionEditorWidget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProjectionEditorWidget.h; sourceTree = "<group>"; }; - 0115A6391DBF93BA00C51732 /* ScaleWidget.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScaleWidget.cpp; sourceTree = "<group>"; }; - 0115A63A1DBF93BA00C51732 /* ScaleWidget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScaleWidget.h; sourceTree = "<group>"; }; - 0115A63B1DBF93BA00C51732 /* SourcesEditorWidget.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SourcesEditorWidget.cpp; sourceTree = "<group>"; }; - 0115A63C1DBF93BA00C51732 /* SourcesEditorWidget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SourcesEditorWidget.h; sourceTree = "<group>"; }; - 0115A63D1DBF93BA00C51732 /* SurfaceHighlightWidget.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SurfaceHighlightWidget.cpp; sourceTree = "<group>"; }; - 0115A63E1DBF93BA00C51732 /* SurfaceHighlightWidget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SurfaceHighlightWidget.h; sourceTree = "<group>"; }; - 0115A6411DBF93BA00C51732 /* TextureEditorWidget.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TextureEditorWidget.cpp; sourceTree = "<group>"; }; - 0115A6421DBF93BA00C51732 /* TextureEditorWidget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextureEditorWidget.h; sourceTree = "<group>"; }; - 0115A6431DBF93BA00C51732 /* TextureHighlightWidget.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TextureHighlightWidget.cpp; sourceTree = "<group>"; }; - 0115A6441DBF93BA00C51732 /* TextureHighlightWidget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextureHighlightWidget.h; sourceTree = "<group>"; }; - 0115A6461DBF93BA00C51732 /* Info.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Info.cpp; sourceTree = "<group>"; }; - 0115A6471DBF93BA00C51732 /* Info.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Info.h; sourceTree = "<group>"; }; - 0115A6491DBF93BA00C51732 /* DirectoryWatcher.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DirectoryWatcher.cpp; sourceTree = "<group>"; }; - 0115A64A1DBF93BA00C51732 /* DirectoryWatcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DirectoryWatcher.h; sourceTree = "<group>"; }; - 0115A64B1DBF93BA00C51732 /* MediaServer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaServer.cpp; sourceTree = "<group>"; }; - 0115A64C1DBF93BA00C51732 /* MediaServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaServer.h; sourceTree = "<group>"; }; - 0115A64D1DBF93BA00C51732 /* ofxPiMapper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxPiMapper.cpp; sourceTree = "<group>"; }; - 0115A64E1DBF93BA00C51732 /* ofxPiMapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxPiMapper.h; sourceTree = "<group>"; }; - 0115A6501DBF93BA00C51732 /* BaseSource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BaseSource.cpp; sourceTree = "<group>"; }; - 0115A6511DBF93BA00C51732 /* BaseSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseSource.h; sourceTree = "<group>"; }; - 0115A6521DBF93BA00C51732 /* FboSource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FboSource.cpp; sourceTree = "<group>"; }; - 0115A6531DBF93BA00C51732 /* FboSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FboSource.h; sourceTree = "<group>"; }; - 0115A6541DBF93BA00C51732 /* ImageSource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ImageSource.cpp; sourceTree = "<group>"; }; - 0115A6551DBF93BA00C51732 /* ImageSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImageSource.h; sourceTree = "<group>"; }; - 0115A6561DBF93BA00C51732 /* OMXPlayerCache.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OMXPlayerCache.cpp; sourceTree = "<group>"; }; - 0115A6571DBF93BA00C51732 /* OMXPlayerCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OMXPlayerCache.h; sourceTree = "<group>"; }; - 0115A6581DBF93BA00C51732 /* SourceType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SourceType.h; sourceTree = "<group>"; }; - 0115A6591DBF93BA00C51732 /* VideoSource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VideoSource.cpp; sourceTree = "<group>"; }; - 0115A65A1DBF93BA00C51732 /* VideoSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VideoSource.h; sourceTree = "<group>"; }; - 0115A65C1DBF93BA00C51732 /* BaseSurface.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BaseSurface.cpp; sourceTree = "<group>"; }; - 0115A65D1DBF93BA00C51732 /* BaseSurface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseSurface.h; sourceTree = "<group>"; }; - 0115A65E1DBF93BA00C51732 /* GridWarpSurface.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GridWarpSurface.cpp; sourceTree = "<group>"; }; - 0115A65F1DBF93BA00C51732 /* GridWarpSurface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GridWarpSurface.h; sourceTree = "<group>"; }; - 0115A6601DBF93BA00C51732 /* HexagonSurface.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HexagonSurface.cpp; sourceTree = "<group>"; }; - 0115A6611DBF93BA00C51732 /* HexagonSurface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HexagonSurface.h; sourceTree = "<group>"; }; - 0115A6621DBF93BA00C51732 /* QuadSurface.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = QuadSurface.cpp; sourceTree = "<group>"; }; - 0115A6631DBF93BA00C51732 /* QuadSurface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QuadSurface.h; sourceTree = "<group>"; }; - 0115A6641DBF93BA00C51732 /* SurfaceFactory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SurfaceFactory.cpp; sourceTree = "<group>"; }; - 0115A6651DBF93BA00C51732 /* SurfaceFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SurfaceFactory.h; sourceTree = "<group>"; }; - 0115A6661DBF93BA00C51732 /* SurfaceManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SurfaceManager.cpp; sourceTree = "<group>"; }; - 0115A6671DBF93BA00C51732 /* SurfaceManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SurfaceManager.h; sourceTree = "<group>"; }; - 0115A6681DBF93BA00C51732 /* SurfaceStack.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SurfaceStack.cpp; sourceTree = "<group>"; }; - 0115A6691DBF93BA00C51732 /* SurfaceStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SurfaceStack.h; sourceTree = "<group>"; }; - 0115A66A1DBF93BA00C51732 /* SurfaceType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SurfaceType.h; sourceTree = "<group>"; }; - 0115A66B1DBF93BA00C51732 /* TriangleSurface.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TriangleSurface.cpp; sourceTree = "<group>"; }; - 0115A66C1DBF93BA00C51732 /* TriangleSurface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TriangleSurface.h; sourceTree = "<group>"; }; - 0115A66E1DBF93BA00C51732 /* BaseJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BaseJoint.cpp; sourceTree = "<group>"; }; - 0115A66F1DBF93BA00C51732 /* BaseJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseJoint.h; sourceTree = "<group>"; }; - 0115A6701DBF93BA00C51732 /* CircleJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CircleJoint.cpp; sourceTree = "<group>"; }; - 0115A6711DBF93BA00C51732 /* CircleJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CircleJoint.h; sourceTree = "<group>"; }; - 0115A6721DBF93BA00C51732 /* EditorType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EditorType.h; sourceTree = "<group>"; }; - 0115A6731DBF93BA00C51732 /* GuiMode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GuiMode.h; sourceTree = "<group>"; }; - 0115A6741DBF93BA00C51732 /* RadioList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RadioList.cpp; sourceTree = "<group>"; }; - 0115A6751DBF93BA00C51732 /* RadioList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RadioList.h; sourceTree = "<group>"; }; - 0115A6771DBF93BA00C51732 /* HomographyHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HomographyHelper.cpp; sourceTree = "<group>"; }; - 0115A6781DBF93BA00C51732 /* HomographyHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HomographyHelper.h; sourceTree = "<group>"; }; - 0166303D1DC66DAB0081F28F /* AddGridColCmd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AddGridColCmd.cpp; sourceTree = "<group>"; }; - 0166303E1DC66DAB0081F28F /* AddGridColCmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AddGridColCmd.h; sourceTree = "<group>"; }; - 0166303F1DC66DAB0081F28F /* AddGridRowCmd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AddGridRowCmd.cpp; sourceTree = "<group>"; }; - 016630401DC66DAB0081F28F /* AddGridRowCmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AddGridRowCmd.h; sourceTree = "<group>"; }; - 016630411DC66DAB0081F28F /* AddSurfaceCmd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AddSurfaceCmd.cpp; sourceTree = "<group>"; }; - 016630421DC66DAB0081F28F /* AddSurfaceCmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AddSurfaceCmd.h; sourceTree = "<group>"; }; - 016630431DC66DAB0081F28F /* BaseCmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseCmd.h; sourceTree = "<group>"; }; - 016630441DC66DAB0081F28F /* ClearSurfacesCmd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ClearSurfacesCmd.cpp; sourceTree = "<group>"; }; - 016630451DC66DAB0081F28F /* ClearSurfacesCmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClearSurfacesCmd.h; sourceTree = "<group>"; }; - 016630461DC66DAB0081F28F /* CmdManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CmdManager.cpp; sourceTree = "<group>"; }; - 016630471DC66DAB0081F28F /* CmdManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CmdManager.h; sourceTree = "<group>"; }; - 016630481DC66DAB0081F28F /* DeselectSurfaceCmd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DeselectSurfaceCmd.cpp; sourceTree = "<group>"; }; - 016630491DC66DAB0081F28F /* DeselectSurfaceCmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeselectSurfaceCmd.h; sourceTree = "<group>"; }; - 0166304A1DC66DAB0081F28F /* DeselectTexCoordCmd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DeselectTexCoordCmd.cpp; sourceTree = "<group>"; }; - 0166304B1DC66DAB0081F28F /* DeselectTexCoordCmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeselectTexCoordCmd.h; sourceTree = "<group>"; }; - 0166304C1DC66DAB0081F28F /* DuplicateSurfaceCmd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DuplicateSurfaceCmd.cpp; sourceTree = "<group>"; }; - 0166304D1DC66DAB0081F28F /* DuplicateSurfaceCmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DuplicateSurfaceCmd.h; sourceTree = "<group>"; }; - 0166304E1DC66DAB0081F28F /* MvAllTexCoordsCmd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MvAllTexCoordsCmd.cpp; sourceTree = "<group>"; }; - 0166304F1DC66DAB0081F28F /* MvAllTexCoordsCmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MvAllTexCoordsCmd.h; sourceTree = "<group>"; }; - 016630501DC66DAB0081F28F /* MvLayerDnCmd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MvLayerDnCmd.cpp; sourceTree = "<group>"; }; - 016630511DC66DAB0081F28F /* MvLayerDnCmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MvLayerDnCmd.h; sourceTree = "<group>"; }; - 016630521DC66DAB0081F28F /* MvLayerUpCmd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MvLayerUpCmd.cpp; sourceTree = "<group>"; }; - 016630531DC66DAB0081F28F /* MvLayerUpCmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MvLayerUpCmd.h; sourceTree = "<group>"; }; - 016630541DC66DAB0081F28F /* MvSelectionCmd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MvSelectionCmd.cpp; sourceTree = "<group>"; }; - 016630551DC66DAB0081F28F /* MvSelectionCmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MvSelectionCmd.h; sourceTree = "<group>"; }; - 016630561DC66DAB0081F28F /* MvSurfaceVertCmd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MvSurfaceVertCmd.cpp; sourceTree = "<group>"; }; - 016630571DC66DAB0081F28F /* MvSurfaceVertCmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MvSurfaceVertCmd.h; sourceTree = "<group>"; }; - 016630581DC66DAB0081F28F /* MvTexCoordCmd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MvTexCoordCmd.cpp; sourceTree = "<group>"; }; - 016630591DC66DAB0081F28F /* MvTexCoordCmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MvTexCoordCmd.h; sourceTree = "<group>"; }; - 0166305A1DC66DAB0081F28F /* RmGridColCmd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RmGridColCmd.cpp; sourceTree = "<group>"; }; - 0166305B1DC66DAB0081F28F /* RmGridColCmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RmGridColCmd.h; sourceTree = "<group>"; }; - 0166305C1DC66DAB0081F28F /* RmGridRowCmd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RmGridRowCmd.cpp; sourceTree = "<group>"; }; - 0166305D1DC66DAB0081F28F /* RmGridRowCmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RmGridRowCmd.h; sourceTree = "<group>"; }; - 0166305E1DC66DAB0081F28F /* RmSurfaceCmd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RmSurfaceCmd.cpp; sourceTree = "<group>"; }; - 0166305F1DC66DAB0081F28F /* RmSurfaceCmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RmSurfaceCmd.h; sourceTree = "<group>"; }; - 016630601DC66DAB0081F28F /* SaveTexCoordPosCmd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SaveTexCoordPosCmd.cpp; sourceTree = "<group>"; }; - 016630611DC66DAB0081F28F /* SaveTexCoordPosCmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SaveTexCoordPosCmd.h; sourceTree = "<group>"; }; - 016630621DC66DAB0081F28F /* ScaleSurfaceFromToCmd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScaleSurfaceFromToCmd.cpp; sourceTree = "<group>"; }; - 016630631DC66DAB0081F28F /* ScaleSurfaceFromToCmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScaleSurfaceFromToCmd.h; sourceTree = "<group>"; }; - 016630641DC66DAB0081F28F /* SelNextSurfaceCmd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SelNextSurfaceCmd.cpp; sourceTree = "<group>"; }; - 016630651DC66DAB0081F28F /* SelNextSurfaceCmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SelNextSurfaceCmd.h; sourceTree = "<group>"; }; - 016630661DC66DAB0081F28F /* SelNextTexCoordCmd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SelNextTexCoordCmd.cpp; sourceTree = "<group>"; }; - 016630671DC66DAB0081F28F /* SelNextTexCoordCmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SelNextTexCoordCmd.h; sourceTree = "<group>"; }; - 016630681DC66DAB0081F28F /* SelNextVertexCmd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SelNextVertexCmd.cpp; sourceTree = "<group>"; }; - 016630691DC66DAB0081F28F /* SelNextVertexCmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SelNextVertexCmd.h; sourceTree = "<group>"; }; - 0166306A1DC66DAB0081F28F /* SelPrevSurfaceCmd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SelPrevSurfaceCmd.cpp; sourceTree = "<group>"; }; - 0166306B1DC66DAB0081F28F /* SelPrevSurfaceCmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SelPrevSurfaceCmd.h; sourceTree = "<group>"; }; - 0166306C1DC66DAB0081F28F /* SelPrevTexCoordCmd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SelPrevTexCoordCmd.cpp; sourceTree = "<group>"; }; - 0166306D1DC66DAB0081F28F /* SelPrevTexCoordCmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SelPrevTexCoordCmd.h; sourceTree = "<group>"; }; - 0166306E1DC66DAB0081F28F /* SelPrevVertexCmd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SelPrevVertexCmd.cpp; sourceTree = "<group>"; }; - 0166306F1DC66DAB0081F28F /* SelPrevVertexCmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SelPrevVertexCmd.h; sourceTree = "<group>"; }; - 016630701DC66DAB0081F28F /* SelSurfaceCmd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SelSurfaceCmd.cpp; sourceTree = "<group>"; }; - 016630711DC66DAB0081F28F /* SelSurfaceCmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SelSurfaceCmd.h; sourceTree = "<group>"; }; - 016630721DC66DAB0081F28F /* SelTexCoordCmd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SelTexCoordCmd.cpp; sourceTree = "<group>"; }; - 016630731DC66DAB0081F28F /* SelTexCoordCmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SelTexCoordCmd.h; sourceTree = "<group>"; }; - 016630741DC66DAB0081F28F /* SelVertexCmd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SelVertexCmd.cpp; sourceTree = "<group>"; }; - 016630751DC66DAB0081F28F /* SelVertexCmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SelVertexCmd.h; sourceTree = "<group>"; }; - 016630761DC66DAB0081F28F /* SetApplicationModeCmd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SetApplicationModeCmd.cpp; sourceTree = "<group>"; }; - 016630771DC66DAB0081F28F /* SetApplicationModeCmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SetApplicationModeCmd.h; sourceTree = "<group>"; }; - 016630781DC66DAB0081F28F /* SetNextSourceCmd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SetNextSourceCmd.cpp; sourceTree = "<group>"; }; - 016630791DC66DAB0081F28F /* SetNextSourceCmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SetNextSourceCmd.h; sourceTree = "<group>"; }; - 0166307A1DC66DAB0081F28F /* SetPresetCmd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SetPresetCmd.cpp; sourceTree = "<group>"; }; - 0166307B1DC66DAB0081F28F /* SetPresetCmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SetPresetCmd.h; sourceTree = "<group>"; }; - 0166307C1DC66DAB0081F28F /* SetSourceCmd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SetSourceCmd.cpp; sourceTree = "<group>"; }; - 0166307D1DC66DAB0081F28F /* SetSourceCmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SetSourceCmd.h; sourceTree = "<group>"; }; - 0166307E1DC66DAB0081F28F /* SetTexMapDrawModeCmd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SetTexMapDrawModeCmd.cpp; sourceTree = "<group>"; }; - 0166307F1DC66DAB0081F28F /* SetTexMapDrawModeCmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SetTexMapDrawModeCmd.h; sourceTree = "<group>"; }; - 016630801DC66DAB0081F28F /* StartDragSurfaceCmd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StartDragSurfaceCmd.cpp; sourceTree = "<group>"; }; - 016630811DC66DAB0081F28F /* StartDragSurfaceCmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StartDragSurfaceCmd.h; sourceTree = "<group>"; }; - 016630821DC66DAB0081F28F /* ToggleAnimatedSourceCmd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ToggleAnimatedSourceCmd.cpp; sourceTree = "<group>"; }; - 016630831DC66DAB0081F28F /* ToggleAnimatedSourceCmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ToggleAnimatedSourceCmd.h; sourceTree = "<group>"; }; - 016630841DC66DAB0081F28F /* TogglePerspectiveCmd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TogglePerspectiveCmd.cpp; sourceTree = "<group>"; }; - 016630851DC66DAB0081F28F /* TogglePerspectiveCmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TogglePerspectiveCmd.h; sourceTree = "<group>"; }; - 016630861DC66DAB0081F28F /* TranslateCanvasCmd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TranslateCanvasCmd.cpp; sourceTree = "<group>"; }; - 016630871DC66DAB0081F28F /* TranslateCanvasCmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TranslateCanvasCmd.h; sourceTree = "<group>"; }; - 39264839192224DA0008A7F5 /* ofxXmlSettings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ofxXmlSettings.cpp; path = ../../ofxXmlSettings/src/ofxXmlSettings.cpp; sourceTree = "<group>"; }; - 3926483A192224DA0008A7F5 /* ofxXmlSettings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ofxXmlSettings.h; path = ../../ofxXmlSettings/src/ofxXmlSettings.h; sourceTree = "<group>"; }; - 3926483D192224F90008A7F5 /* tinyxml.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tinyxml.cpp; sourceTree = "<group>"; }; - 3926483E192224F90008A7F5 /* tinyxml.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tinyxml.h; sourceTree = "<group>"; }; - 3926483F192224F90008A7F5 /* tinyxmlerror.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tinyxmlerror.cpp; sourceTree = "<group>"; }; - 39264840192224F90008A7F5 /* tinyxmlparser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tinyxmlparser.cpp; sourceTree = "<group>"; }; - 3933D5C219BB87BD000ACA55 /* ofxBaseGui.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxBaseGui.cpp; sourceTree = "<group>"; }; - 3933D5C319BB87BD000ACA55 /* ofxBaseGui.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxBaseGui.h; sourceTree = "<group>"; }; - 3933D5C419BB87BD000ACA55 /* ofxButton.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxButton.cpp; sourceTree = "<group>"; }; - 3933D5C519BB87BD000ACA55 /* ofxButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxButton.h; sourceTree = "<group>"; }; - 3933D5C619BB87BD000ACA55 /* ofxGui.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxGui.h; sourceTree = "<group>"; }; - 3933D5C719BB87BD000ACA55 /* ofxGuiGroup.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxGuiGroup.cpp; sourceTree = "<group>"; }; - 3933D5C819BB87BD000ACA55 /* ofxGuiGroup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxGuiGroup.h; sourceTree = "<group>"; }; - 3933D5C919BB87BD000ACA55 /* ofxLabel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxLabel.cpp; sourceTree = "<group>"; }; - 3933D5CA19BB87BD000ACA55 /* ofxLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxLabel.h; sourceTree = "<group>"; }; - 3933D5CB19BB87BD000ACA55 /* ofxPanel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxPanel.cpp; sourceTree = "<group>"; }; - 3933D5CC19BB87BD000ACA55 /* ofxPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxPanel.h; sourceTree = "<group>"; }; - 3933D5CD19BB87BD000ACA55 /* ofxSlider.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxSlider.cpp; sourceTree = "<group>"; }; - 3933D5CE19BB87BD000ACA55 /* ofxSlider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxSlider.h; sourceTree = "<group>"; }; - 3933D5CF19BB87BD000ACA55 /* ofxSliderGroup.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxSliderGroup.cpp; sourceTree = "<group>"; }; - 3933D5D019BB87BD000ACA55 /* ofxSliderGroup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxSliderGroup.h; sourceTree = "<group>"; }; - 3933D5D119BB87BD000ACA55 /* ofxToggle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxToggle.cpp; sourceTree = "<group>"; }; - 3933D5D219BB87BD000ACA55 /* ofxToggle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxToggle.h; sourceTree = "<group>"; }; - 397EFC801A09047C0009286E /* CustomSource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CustomSource.cpp; sourceTree = "<group>"; }; - 397EFC811A09047C0009286E /* CustomSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomSource.h; sourceTree = "<group>"; }; - 3995C2081C79069B00123352 /* Settings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Settings.h; sourceTree = "<group>"; }; - 3995C2091C79069B00123352 /* Settings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Settings.cpp; sourceTree = "<group>"; }; - 399953671BD54FF600D5B1F1 /* CrossSource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CrossSource.cpp; sourceTree = "<group>"; }; - 399953681BD54FF600D5B1F1 /* CrossSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CrossSource.h; sourceTree = "<group>"; }; - BBAB23BE13894E4700AA2426 /* GLUT.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLUT.framework; path = ../../../libs/glut/lib/osx/GLUT.framework; sourceTree = "<group>"; }; + 00756183A9E41665E637AC23 /* AddSurfaceCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = AddSurfaceCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/AddSurfaceCmd.h; sourceTree = SOURCE_ROOT; }; + 01DCC0911400F9ACF5B65578 /* ofxXmlSettings.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxXmlSettings.h; path = ../../../addons/ofxXmlSettings/src/ofxXmlSettings.h; sourceTree = SOURCE_ROOT; }; + 03FA94CA9F193C816DE4253F /* SurfaceFactory.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SurfaceFactory.cpp; path = ../../../addons/ofxPiMapper/src/Surfaces/SurfaceFactory.cpp; sourceTree = SOURCE_ROOT; }; + 03FCF5559C2A6AB79D947767 /* TranslateCanvasCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = TranslateCanvasCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/TranslateCanvasCmd.cpp; sourceTree = SOURCE_ROOT; }; + 0739F09627790055C959BBF4 /* MvTexCoordCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = MvTexCoordCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/MvTexCoordCmd.cpp; sourceTree = SOURCE_ROOT; }; + 0A1DAC09F322AE313A40706D /* ofxToggle.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxToggle.h; path = ../../../addons/ofxGui/src/ofxToggle.h; sourceTree = SOURCE_ROOT; }; + 0B4D5D37A2AE7AB30D726C16 /* HexagonSurface.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = HexagonSurface.h; path = ../../../addons/ofxPiMapper/src/Surfaces/HexagonSurface.h; sourceTree = SOURCE_ROOT; }; + 0B691BBAB665F94F09B2C276 /* SelSurfaceCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SelSurfaceCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/SelSurfaceCmd.cpp; sourceTree = SOURCE_ROOT; }; + 140C0677F9F5A5D3B8A89AC4 /* SelNextVertexCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SelNextVertexCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/SelNextVertexCmd.cpp; sourceTree = SOURCE_ROOT; }; + 15C9B02F2CF08112845CD074 /* SetPresetCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SetPresetCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/SetPresetCmd.cpp; sourceTree = SOURCE_ROOT; }; + 15F2C6477A769C03A56D1401 /* ofxSlider.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxSlider.cpp; path = ../../../addons/ofxGui/src/ofxSlider.cpp; sourceTree = SOURCE_ROOT; }; + 16DB3860ECC0D672B08DE71C /* ofxPiMapper.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxPiMapper.cpp; path = ../../../addons/ofxPiMapper/src/ofxPiMapper.cpp; sourceTree = SOURCE_ROOT; }; + 17972C3384311464011667D9 /* BaseCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = BaseCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/BaseCmd.h; sourceTree = SOURCE_ROOT; }; + 17E65988300FBD9AAA2CD0CA /* ofxGui.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxGui.h; path = ../../../addons/ofxGui/src/ofxGui.h; sourceTree = SOURCE_ROOT; }; + 18041C8871E17DE3E60BFF95 /* MvSurfaceVertCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = MvSurfaceVertCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/MvSurfaceVertCmd.cpp; sourceTree = SOURCE_ROOT; }; + 18385A4F4BC87806616D4F7F /* MediaServer.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = MediaServer.cpp; path = ../../../addons/ofxPiMapper/src/MediaServer/MediaServer.cpp; sourceTree = SOURCE_ROOT; }; + 18DA1B30717C876AA19CEEC0 /* ProjectionEditorWidget.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ProjectionEditorWidget.cpp; path = ../../../addons/ofxPiMapper/src/Gui/Widgets/ProjectionEditorWidget.cpp; sourceTree = SOURCE_ROOT; }; + 1B3B1807E9CFC3FFBA4DBBEF /* Application.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = Application.cpp; path = ../../../addons/ofxPiMapper/src/Application/Application.cpp; sourceTree = SOURCE_ROOT; }; + 1BCA96396113AAF56D66C844 /* ProjectionMappingMode.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ProjectionMappingMode.cpp; path = ../../../addons/ofxPiMapper/src/Application/Modes/ProjectionMappingMode.cpp; sourceTree = SOURCE_ROOT; }; + 1C080561EC053F17BB86A668 /* SurfaceStack.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SurfaceStack.cpp; path = ../../../addons/ofxPiMapper/src/Surfaces/SurfaceStack.cpp; sourceTree = SOURCE_ROOT; }; + 1C0DA2561397A7DE0246858B /* ofxGuiGroup.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxGuiGroup.h; path = ../../../addons/ofxGui/src/ofxGuiGroup.h; sourceTree = SOURCE_ROOT; }; + 1CE256C39E514ABD16FCCB87 /* SelPrevTexCoordCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SelPrevTexCoordCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/SelPrevTexCoordCmd.h; sourceTree = SOURCE_ROOT; }; + 1E73070DAC89F6A796BFF464 /* AddGridColCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = AddGridColCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/AddGridColCmd.h; sourceTree = SOURCE_ROOT; }; + 20F9951441118A70E8D55E13 /* DirectoryWatcher.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = DirectoryWatcher.cpp; path = ../../../addons/ofxPiMapper/src/MediaServer/DirectoryWatcher.cpp; sourceTree = SOURCE_ROOT; }; + 21167F26AF957606289D4A4A /* ToggleAnimatedSourceCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ToggleAnimatedSourceCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/ToggleAnimatedSourceCmd.h; sourceTree = SOURCE_ROOT; }; + 23118136CC7FFA920626B6C3 /* TriangleSurface.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = TriangleSurface.h; path = ../../../addons/ofxPiMapper/src/Surfaces/TriangleSurface.h; sourceTree = SOURCE_ROOT; }; + 231337763726D333E0B3D56C /* AddGridColCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = AddGridColCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/AddGridColCmd.cpp; sourceTree = SOURCE_ROOT; }; + 23A4F0C9DE47BA73B3E49EDE /* ScaleWidget.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ScaleWidget.h; path = ../../../addons/ofxPiMapper/src/Gui/Widgets/ScaleWidget.h; sourceTree = SOURCE_ROOT; }; + 25322223D3976D5F33DCCBF6 /* MvAllTexCoordsCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = MvAllTexCoordsCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/MvAllTexCoordsCmd.h; sourceTree = SOURCE_ROOT; }; + 27453C6FAE9B674FD694508D /* SelTexCoordCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SelTexCoordCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/SelTexCoordCmd.cpp; sourceTree = SOURCE_ROOT; }; + 2834D88A62CD23F3DE2C47D1 /* ofxButton.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxButton.h; path = ../../../addons/ofxGui/src/ofxButton.h; sourceTree = SOURCE_ROOT; }; + 2B40EDA85BEB63E46785BC29 /* tinyxml.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = tinyxml.cpp; path = ../../../addons/ofxXmlSettings/libs/tinyxml.cpp; sourceTree = SOURCE_ROOT; }; + 2D2400AC1A64EDE5E990C56C /* GridWarpSurface.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = GridWarpSurface.cpp; path = ../../../addons/ofxPiMapper/src/Surfaces/GridWarpSurface.cpp; sourceTree = SOURCE_ROOT; }; + 2DDA3608BED55BC67A9DAFF5 /* CrossSource.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = CrossSource.cpp; path = src/CrossSource.cpp; sourceTree = SOURCE_ROOT; }; + 2F04FFB9BAC4575E214C0DED /* CmdManager.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = CmdManager.h; path = ../../../addons/ofxPiMapper/src/Commands/CmdManager.h; sourceTree = SOURCE_ROOT; }; + 3074E4094F76555C299E5D8E /* ClearSurfacesCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ClearSurfacesCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/ClearSurfacesCmd.h; sourceTree = SOURCE_ROOT; }; + 30ED82F4A70B5B95CCEF7744 /* SelNextSurfaceCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SelNextSurfaceCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/SelNextSurfaceCmd.h; sourceTree = SOURCE_ROOT; }; + 3157007392BD114EAB99F470 /* TextureMappingMode.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = TextureMappingMode.h; path = ../../../addons/ofxPiMapper/src/Application/Modes/TextureMappingMode.h; sourceTree = SOURCE_ROOT; }; + 33DD6E4350FD51C68B7E65F0 /* SettingsLoader.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SettingsLoader.cpp; path = ../../../addons/ofxPiMapper/src/Application/SettingsLoader.cpp; sourceTree = SOURCE_ROOT; }; + 34B45EB44DED0A47FBAD30F4 /* ScaleSurfaceFromToCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ScaleSurfaceFromToCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/ScaleSurfaceFromToCmd.cpp; sourceTree = SOURCE_ROOT; }; + 36F59D2F886152DF4115A218 /* SourcesEditorWidget.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SourcesEditorWidget.cpp; path = ../../../addons/ofxPiMapper/src/Gui/Widgets/SourcesEditorWidget.cpp; sourceTree = SOURCE_ROOT; }; + 378C962CF2DB945F38DE674A /* ofxPiMapper.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxPiMapper.h; path = ../../../addons/ofxPiMapper/src/ofxPiMapper.h; sourceTree = SOURCE_ROOT; }; + 37E7F66B151AB6A0AB6FC244 /* Info.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = Info.h; path = ../../../addons/ofxPiMapper/src/Info/Info.h; sourceTree = SOURCE_ROOT; }; + 3B043509B19E37C383D7CA87 /* PresentationMode.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = PresentationMode.h; path = ../../../addons/ofxPiMapper/src/Application/Modes/PresentationMode.h; sourceTree = SOURCE_ROOT; }; + 3B29C3846BA06080344C1D1E /* SelPrevVertexCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SelPrevVertexCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/SelPrevVertexCmd.cpp; sourceTree = SOURCE_ROOT; }; + 3BD72CBAFD427FC6E9F164D2 /* OMXPlayerCache.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = OMXPlayerCache.h; path = ../../../addons/ofxPiMapper/src/Sources/OMXPlayerCache.h; sourceTree = SOURCE_ROOT; }; + 3BD822DBD11904D1D6E27E76 /* TextureHighlightWidget.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = TextureHighlightWidget.h; path = ../../../addons/ofxPiMapper/src/Gui/Widgets/TextureHighlightWidget.h; sourceTree = SOURCE_ROOT; }; + 3DF2D82EA37D8C7A5F686EA5 /* TriangleSurface.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = TriangleSurface.cpp; path = ../../../addons/ofxPiMapper/src/Surfaces/TriangleSurface.cpp; sourceTree = SOURCE_ROOT; }; + 3E4A0386460638A781A7AC84 /* AddGridRowCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = AddGridRowCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/AddGridRowCmd.cpp; sourceTree = SOURCE_ROOT; }; + 4048CA09E6AAB5F673CBD2F0 /* RadioList.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = RadioList.cpp; path = ../../../addons/ofxPiMapper/src/UserInterface/RadioList.cpp; sourceTree = SOURCE_ROOT; }; + 4130052A043CF3D3C2BA943A /* EditorType.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = EditorType.h; path = ../../../addons/ofxPiMapper/src/UserInterface/EditorType.h; sourceTree = SOURCE_ROOT; }; + 413E846B881CCADC897A8A40 /* TextureEditorWidget.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = TextureEditorWidget.cpp; path = ../../../addons/ofxPiMapper/src/Gui/Widgets/TextureEditorWidget.cpp; sourceTree = SOURCE_ROOT; }; + 4244A1B9B55BD7BA7ED2F547 /* TogglePerspectiveCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = TogglePerspectiveCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/TogglePerspectiveCmd.h; sourceTree = SOURCE_ROOT; }; + 4245228145B1AA737F49CF14 /* SourceSelectionMode.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SourceSelectionMode.cpp; path = ../../../addons/ofxPiMapper/src/Application/Modes/SourceSelectionMode.cpp; sourceTree = SOURCE_ROOT; }; + 438B20A2C548E18384498186 /* LayerPanelWidget.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = LayerPanelWidget.h; path = ../../../addons/ofxPiMapper/src/Gui/Widgets/LayerPanelWidget.h; sourceTree = SOURCE_ROOT; }; + 47AB6134D2AB2F3EB10096A3 /* SelPrevVertexCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SelPrevVertexCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/SelPrevVertexCmd.h; sourceTree = SOURCE_ROOT; }; + 49BE2D8F2A2A57F4EBF83FF4 /* SetTexMapDrawModeCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SetTexMapDrawModeCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/SetTexMapDrawModeCmd.cpp; sourceTree = SOURCE_ROOT; }; + 4A0800123A129E9BC12ED207 /* Settings.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = Settings.cpp; path = src/Settings.cpp; sourceTree = SOURCE_ROOT; }; + 4FFBE499412CC8DD07163E91 /* SetNextSourceCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SetNextSourceCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/SetNextSourceCmd.cpp; sourceTree = SOURCE_ROOT; }; + 50DF87D612C5AAE17AAFA6C0 /* ofxXmlSettings.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxXmlSettings.cpp; path = ../../../addons/ofxXmlSettings/src/ofxXmlSettings.cpp; sourceTree = SOURCE_ROOT; }; + 5235D939D249EAF47F9A5EB5 /* SettingsLoader.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SettingsLoader.h; path = ../../../addons/ofxPiMapper/src/Application/SettingsLoader.h; sourceTree = SOURCE_ROOT; }; + 52AFA1F08C420992CAAAE648 /* ofxSlider.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxSlider.h; path = ../../../addons/ofxGui/src/ofxSlider.h; sourceTree = SOURCE_ROOT; }; + 5407451FA68C27B2AAE644A6 /* VideoSource.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = VideoSource.cpp; path = ../../../addons/ofxPiMapper/src/Sources/VideoSource.cpp; sourceTree = SOURCE_ROOT; }; + 56A68D8E68FF141B5EB1ADF6 /* SetSourceCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SetSourceCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/SetSourceCmd.h; sourceTree = SOURCE_ROOT; }; + 57990D37D728C5711AACBA9F /* LayerPanelWidget.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = LayerPanelWidget.cpp; path = ../../../addons/ofxPiMapper/src/Gui/Widgets/LayerPanelWidget.cpp; sourceTree = SOURCE_ROOT; }; + 57D73BCD8A871590F140EFF6 /* ApplicationBaseMode.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ApplicationBaseMode.h; path = ../../../addons/ofxPiMapper/src/Application/Modes/ApplicationBaseMode.h; sourceTree = SOURCE_ROOT; }; + 5AB104FC7812B4F42B8E1540 /* TranslateCanvasCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = TranslateCanvasCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/TranslateCanvasCmd.h; sourceTree = SOURCE_ROOT; }; + 5D020B9B28609D071E21BB76 /* ToggleAnimatedSourceCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ToggleAnimatedSourceCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/ToggleAnimatedSourceCmd.cpp; sourceTree = SOURCE_ROOT; }; + 5EBDBF5E7887C574E1FCC1B5 /* StartDragSurfaceCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = StartDragSurfaceCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/StartDragSurfaceCmd.h; sourceTree = SOURCE_ROOT; }; + 60F40691CD9DE4DEE1768FE9 /* SaveTexCoordPosCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SaveTexCoordPosCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/SaveTexCoordPosCmd.cpp; sourceTree = SOURCE_ROOT; }; + 61291E56B7882C9E9B8F119B /* ImageSource.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ImageSource.cpp; path = ../../../addons/ofxPiMapper/src/Sources/ImageSource.cpp; sourceTree = SOURCE_ROOT; }; + 61481FB831430E35A18ABD02 /* MvLayerDnCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = MvLayerDnCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/MvLayerDnCmd.h; sourceTree = SOURCE_ROOT; }; + 62C9C3E62D4BEF04CF54C031 /* ScaleSurfaceFromToCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ScaleSurfaceFromToCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/ScaleSurfaceFromToCmd.h; sourceTree = SOURCE_ROOT; }; + 62F01592304CB7995200EF7B /* CircleJoint.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = CircleJoint.cpp; path = ../../../addons/ofxPiMapper/src/UserInterface/CircleJoint.cpp; sourceTree = SOURCE_ROOT; }; + 64156CB2D856E4CE0FBBED96 /* PresentationMode.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = PresentationMode.cpp; path = ../../../addons/ofxPiMapper/src/Application/Modes/PresentationMode.cpp; sourceTree = SOURCE_ROOT; }; + 655142313A378162E3929785 /* TogglePerspectiveCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = TogglePerspectiveCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/TogglePerspectiveCmd.cpp; sourceTree = SOURCE_ROOT; }; + 6592BB3592290B34832D7607 /* SurfaceStack.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SurfaceStack.h; path = ../../../addons/ofxPiMapper/src/Surfaces/SurfaceStack.h; sourceTree = SOURCE_ROOT; }; + 6595C215972AFFC7EE685F5A /* SourceType.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SourceType.h; path = ../../../addons/ofxPiMapper/src/Sources/SourceType.h; sourceTree = SOURCE_ROOT; }; + 65DBA05D19177D2853D54196 /* DeselectSurfaceCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = DeselectSurfaceCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/DeselectSurfaceCmd.h; sourceTree = SOURCE_ROOT; }; + 69A4D26FC0AD01A86571540D /* SurfaceHighlightWidget.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SurfaceHighlightWidget.cpp; path = ../../../addons/ofxPiMapper/src/Gui/Widgets/SurfaceHighlightWidget.cpp; sourceTree = SOURCE_ROOT; }; + 6DF54314CF2B45BF195B84C6 /* SelPrevSurfaceCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SelPrevSurfaceCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/SelPrevSurfaceCmd.cpp; sourceTree = SOURCE_ROOT; }; + 6E80EE6FB0CC304A6CA287BB /* DeselectSurfaceCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = DeselectSurfaceCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/DeselectSurfaceCmd.cpp; sourceTree = SOURCE_ROOT; }; + 718E523D4BDDCFAC394B3EA5 /* DeselectTexCoordCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = DeselectTexCoordCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/DeselectTexCoordCmd.h; sourceTree = SOURCE_ROOT; }; + 7344B3B35CD0188D1283EC59 /* SurfaceManager.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SurfaceManager.h; path = ../../../addons/ofxPiMapper/src/Surfaces/SurfaceManager.h; sourceTree = SOURCE_ROOT; }; + 74CA4C78136F233FB90B7D3E /* RmGridRowCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = RmGridRowCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/RmGridRowCmd.h; sourceTree = SOURCE_ROOT; }; + 76B40246C8B90C1CA4074BB7 /* CustomSource.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = CustomSource.cpp; path = src/CustomSource.cpp; sourceTree = SOURCE_ROOT; }; + 775FD891C1E381F87BF33C82 /* AddGridRowCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = AddGridRowCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/AddGridRowCmd.h; sourceTree = SOURCE_ROOT; }; + 784FFEB8D108EC916343AB97 /* SelNextTexCoordCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SelNextTexCoordCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/SelNextTexCoordCmd.cpp; sourceTree = SOURCE_ROOT; }; + 78D67A00EB899FAC09430597 /* ofxLabel.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxLabel.cpp; path = ../../../addons/ofxGui/src/ofxLabel.cpp; sourceTree = SOURCE_ROOT; }; + 79A9ED756DB70790A67E3EF8 /* SelVertexCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SelVertexCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/SelVertexCmd.h; sourceTree = SOURCE_ROOT; }; + 7A3290FC65714D0C4D02B8BA /* Gui.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = Gui.h; path = ../../../addons/ofxPiMapper/src/Gui/Gui.h; sourceTree = SOURCE_ROOT; }; + 7C89C324499F9541394245C9 /* DirectoryWatcher.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = DirectoryWatcher.h; path = ../../../addons/ofxPiMapper/src/MediaServer/DirectoryWatcher.h; sourceTree = SOURCE_ROOT; }; + 7D386994DF359F3BD1E66480 /* MvSelectionCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = MvSelectionCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/MvSelectionCmd.cpp; sourceTree = SOURCE_ROOT; }; + 7E78D1B2A6DB0856BF8ED1FE /* BaseJoint.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = BaseJoint.cpp; path = ../../../addons/ofxPiMapper/src/UserInterface/BaseJoint.cpp; sourceTree = SOURCE_ROOT; }; + 7F58FFED7FBFC49573FF65E4 /* SetSourceCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SetSourceCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/SetSourceCmd.cpp; sourceTree = SOURCE_ROOT; }; + 7FD330C204479B5A5021D286 /* SourceSelectionMode.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SourceSelectionMode.h; path = ../../../addons/ofxPiMapper/src/Application/Modes/SourceSelectionMode.h; sourceTree = SOURCE_ROOT; }; + 802251BAF1B35B1D67B32FD0 /* ofxSliderGroup.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxSliderGroup.cpp; path = ../../../addons/ofxGui/src/ofxSliderGroup.cpp; sourceTree = SOURCE_ROOT; }; + 832BDC407620CDBA568B713D /* tinyxmlerror.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = tinyxmlerror.cpp; path = ../../../addons/ofxXmlSettings/libs/tinyxmlerror.cpp; sourceTree = SOURCE_ROOT; }; + 836B103542A52C63B004410C /* SurfaceManager.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SurfaceManager.cpp; path = ../../../addons/ofxPiMapper/src/Surfaces/SurfaceManager.cpp; sourceTree = SOURCE_ROOT; }; + 851AF875A70187105CA91C1A /* BaseJoint.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = BaseJoint.h; path = ../../../addons/ofxPiMapper/src/UserInterface/BaseJoint.h; sourceTree = SOURCE_ROOT; }; + 87F26B4B24CBD428AD9EEBAA /* ofxBaseGui.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxBaseGui.h; path = ../../../addons/ofxGui/src/ofxBaseGui.h; sourceTree = SOURCE_ROOT; }; + 89449E3044D456F7DE7BEA14 /* ofxPanel.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxPanel.h; path = ../../../addons/ofxGui/src/ofxPanel.h; sourceTree = SOURCE_ROOT; }; + 8D3CB0B9A827AFA479349BBE /* SetApplicationModeCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SetApplicationModeCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/SetApplicationModeCmd.cpp; sourceTree = SOURCE_ROOT; }; + 8F41EDB76644426680B2FA2B /* MvTexCoordCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = MvTexCoordCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/MvTexCoordCmd.h; sourceTree = SOURCE_ROOT; }; + 906696B07A716E4057D32B1E /* QuadSurface.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = QuadSurface.h; path = ../../../addons/ofxPiMapper/src/Surfaces/QuadSurface.h; sourceTree = SOURCE_ROOT; }; + 907C5B5E104864A2D3A25745 /* ofxToggle.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxToggle.cpp; path = ../../../addons/ofxGui/src/ofxToggle.cpp; sourceTree = SOURCE_ROOT; }; + 912C6A870E22496CEA43AC85 /* SetTexMapDrawModeCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SetTexMapDrawModeCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/SetTexMapDrawModeCmd.h; sourceTree = SOURCE_ROOT; }; + 928068952444E81EF818B25C /* Application.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = Application.h; path = ../../../addons/ofxPiMapper/src/Application/Application.h; sourceTree = SOURCE_ROOT; }; + 933CAE5B2DEC9DDABEA95E34 /* MvLayerUpCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = MvLayerUpCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/MvLayerUpCmd.h; sourceTree = SOURCE_ROOT; }; + 941AD8B39C28D08B9F31077A /* TextureHighlightWidget.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = TextureHighlightWidget.cpp; path = ../../../addons/ofxPiMapper/src/Gui/Widgets/TextureHighlightWidget.cpp; sourceTree = SOURCE_ROOT; }; + 94DC897871B221F060A6A70F /* GuiBaseWidget.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = GuiBaseWidget.h; path = ../../../addons/ofxPiMapper/src/Gui/Widgets/GuiBaseWidget.h; sourceTree = SOURCE_ROOT; }; + 9604B925D32EE39065747725 /* ofxBaseGui.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxBaseGui.cpp; path = ../../../addons/ofxGui/src/ofxBaseGui.cpp; sourceTree = SOURCE_ROOT; }; + 962C349E8F4E59FF335AB2A6 /* ClearSurfacesCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ClearSurfacesCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/ClearSurfacesCmd.cpp; sourceTree = SOURCE_ROOT; }; + 9631F04A0875ADEB45970DE8 /* ApplicationBaseMode.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ApplicationBaseMode.cpp; path = ../../../addons/ofxPiMapper/src/Application/Modes/ApplicationBaseMode.cpp; sourceTree = SOURCE_ROOT; }; + 9B4D98CCBAB57278C96169D4 /* CircleJoint.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = CircleJoint.h; path = ../../../addons/ofxPiMapper/src/UserInterface/CircleJoint.h; sourceTree = SOURCE_ROOT; }; + 9F39733296358C3B0F85BB15 /* SurfaceHighlightWidget.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SurfaceHighlightWidget.h; path = ../../../addons/ofxPiMapper/src/Gui/Widgets/SurfaceHighlightWidget.h; sourceTree = SOURCE_ROOT; }; + A1A567FBAE494BF84E54E83C /* Settings.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = Settings.h; path = src/Settings.h; sourceTree = SOURCE_ROOT; }; + A2282B1E05458C3B2BBCE568 /* SelVertexCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SelVertexCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/SelVertexCmd.cpp; sourceTree = SOURCE_ROOT; }; + A50F23D868C48DF9799BC788 /* RmGridColCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = RmGridColCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/RmGridColCmd.cpp; sourceTree = SOURCE_ROOT; }; + A5CBAE57D2ADED1CAB6123AF /* SelNextTexCoordCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SelNextTexCoordCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/SelNextTexCoordCmd.h; sourceTree = SOURCE_ROOT; }; + AB4132974E14024E74E320F5 /* BaseSource.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = BaseSource.cpp; path = ../../../addons/ofxPiMapper/src/Sources/BaseSource.cpp; sourceTree = SOURCE_ROOT; }; + AB96773D1B378AE8018EA33E /* TextureEditorWidget.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = TextureEditorWidget.h; path = ../../../addons/ofxPiMapper/src/Gui/Widgets/TextureEditorWidget.h; sourceTree = SOURCE_ROOT; }; + B0B66559E2F530AE989510C0 /* CustomSource.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = CustomSource.h; path = src/CustomSource.h; sourceTree = SOURCE_ROOT; }; + B16277019B0C4B684E1B063E /* TextureMappingMode.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = TextureMappingMode.cpp; path = ../../../addons/ofxPiMapper/src/Application/Modes/TextureMappingMode.cpp; sourceTree = SOURCE_ROOT; }; + B178ED5CA7F76AAA6E49E191 /* SurfaceType.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SurfaceType.h; path = ../../../addons/ofxPiMapper/src/Surfaces/SurfaceType.h; sourceTree = SOURCE_ROOT; }; + B21E7E5F548EEA92F368040B /* tinyxml.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = tinyxml.h; path = ../../../addons/ofxXmlSettings/libs/tinyxml.h; sourceTree = SOURCE_ROOT; }; + B323D7489A7B26A63443444F /* AddSurfaceCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = AddSurfaceCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/AddSurfaceCmd.cpp; sourceTree = SOURCE_ROOT; }; + B390802358C73D3757AC9B4E /* BaseSource.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = BaseSource.h; path = ../../../addons/ofxPiMapper/src/Sources/BaseSource.h; sourceTree = SOURCE_ROOT; }; + B562DE1EEC28EE801EB4F483 /* SourcesEditorWidget.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SourcesEditorWidget.h; path = ../../../addons/ofxPiMapper/src/Gui/Widgets/SourcesEditorWidget.h; sourceTree = SOURCE_ROOT; }; + B5C793F4FEA3AA065347B61C /* SelPrevSurfaceCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SelPrevSurfaceCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/SelPrevSurfaceCmd.h; sourceTree = SOURCE_ROOT; }; + B7C308F8B76FCB909581A580 /* RmSurfaceCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = RmSurfaceCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/RmSurfaceCmd.cpp; sourceTree = SOURCE_ROOT; }; + B7DD3DE526EF824DDAF42B09 /* GuiMode.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = GuiMode.h; path = ../../../addons/ofxPiMapper/src/UserInterface/GuiMode.h; sourceTree = SOURCE_ROOT; }; + B87C60311EC1FE841C1ECD89 /* ofxLabel.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxLabel.h; path = ../../../addons/ofxGui/src/ofxLabel.h; sourceTree = SOURCE_ROOT; }; + B9ECBF061BABECA9C2341372 /* QuadSurface.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = QuadSurface.cpp; path = ../../../addons/ofxPiMapper/src/Surfaces/QuadSurface.cpp; sourceTree = SOURCE_ROOT; }; + BA5B6BB795E2A24B2DBA22BD /* SelNextVertexCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SelNextVertexCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/SelNextVertexCmd.h; sourceTree = SOURCE_ROOT; }; + BA65337B3E631788AE2D018B /* RmGridColCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = RmGridColCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/RmGridColCmd.h; sourceTree = SOURCE_ROOT; }; + BCB571865BB25BC586CF80EC /* SetPresetCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SetPresetCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/SetPresetCmd.h; sourceTree = SOURCE_ROOT; }; + BCBB74B9531974E1D5DA019B /* HexagonSurface.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = HexagonSurface.cpp; path = ../../../addons/ofxPiMapper/src/Surfaces/HexagonSurface.cpp; sourceTree = SOURCE_ROOT; }; + BDBE053980FA01FAD543D782 /* CmdManager.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = CmdManager.cpp; path = ../../../addons/ofxPiMapper/src/Commands/CmdManager.cpp; sourceTree = SOURCE_ROOT; }; + C27244405258CD6DF424D0F3 /* ProjectionEditorWidget.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ProjectionEditorWidget.h; path = ../../../addons/ofxPiMapper/src/Gui/Widgets/ProjectionEditorWidget.h; sourceTree = SOURCE_ROOT; }; + C2D03F683EE589F55D47CFFD /* VideoSource.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = VideoSource.h; path = ../../../addons/ofxPiMapper/src/Sources/VideoSource.h; sourceTree = SOURCE_ROOT; }; + C2E5DC1692A11AF5D981F8FA /* Mode.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = Mode.h; path = ../../../addons/ofxPiMapper/src/Mode.h; sourceTree = SOURCE_ROOT; }; + C3E8D103B72D02E063B29082 /* GridWarpSurface.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = GridWarpSurface.h; path = ../../../addons/ofxPiMapper/src/Surfaces/GridWarpSurface.h; sourceTree = SOURCE_ROOT; }; + C61C1F4F1A1ED2660B1D6EDC /* FboSource.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = FboSource.cpp; path = ../../../addons/ofxPiMapper/src/Sources/FboSource.cpp; sourceTree = SOURCE_ROOT; }; + C656C28252AD5E9E09FA2162 /* DuplicateSurfaceCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = DuplicateSurfaceCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/DuplicateSurfaceCmd.cpp; sourceTree = SOURCE_ROOT; }; + C70D8946940288799E82131E /* ofxSliderGroup.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxSliderGroup.h; path = ../../../addons/ofxGui/src/ofxSliderGroup.h; sourceTree = SOURCE_ROOT; }; + C88333E71C9457E441C33474 /* ofxButton.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxButton.cpp; path = ../../../addons/ofxGui/src/ofxButton.cpp; sourceTree = SOURCE_ROOT; }; + CB4461BD6FC059D946144727 /* SelSurfaceCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SelSurfaceCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/SelSurfaceCmd.h; sourceTree = SOURCE_ROOT; }; + D05D5FBB2B2779B022A5DD04 /* SelTexCoordCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SelTexCoordCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/SelTexCoordCmd.h; sourceTree = SOURCE_ROOT; }; + D463EA9CC53D21A44CB9D6EF /* SaveTexCoordPosCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SaveTexCoordPosCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/SaveTexCoordPosCmd.h; sourceTree = SOURCE_ROOT; }; + D4CFAEBB593AD070E04F106C /* MvSelectionCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = MvSelectionCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/MvSelectionCmd.h; sourceTree = SOURCE_ROOT; }; + D565A612B1DF2837C94A6081 /* MvSurfaceVertCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = MvSurfaceVertCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/MvSurfaceVertCmd.h; sourceTree = SOURCE_ROOT; }; + D58C36B60BB72C7336042FB9 /* SurfaceFactory.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SurfaceFactory.h; path = ../../../addons/ofxPiMapper/src/Surfaces/SurfaceFactory.h; sourceTree = SOURCE_ROOT; }; + D627BF76B06B3FF4F1516C5E /* HomographyHelper.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = HomographyHelper.h; path = ../../../addons/ofxPiMapper/src/Utils/HomographyHelper.h; sourceTree = SOURCE_ROOT; }; + D7287CBE5600FEE9EE1B1AEA /* RmSurfaceCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = RmSurfaceCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/RmSurfaceCmd.h; sourceTree = SOURCE_ROOT; }; + DBAFA0B7AFEA589CA5167204 /* MvAllTexCoordsCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = MvAllTexCoordsCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/MvAllTexCoordsCmd.cpp; sourceTree = SOURCE_ROOT; }; + DC69ACA83F14B8A2AE20197B /* RadioList.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = RadioList.h; path = ../../../addons/ofxPiMapper/src/UserInterface/RadioList.h; sourceTree = SOURCE_ROOT; }; + DC8107E8E56AFFB933FE8962 /* ProjectionMappingMode.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ProjectionMappingMode.h; path = ../../../addons/ofxPiMapper/src/Application/Modes/ProjectionMappingMode.h; sourceTree = SOURCE_ROOT; }; + DCC24025AD26B4554B000385 /* Gui.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = Gui.cpp; path = ../../../addons/ofxPiMapper/src/Gui/Gui.cpp; sourceTree = SOURCE_ROOT; }; + E112B3AEBEA2C091BF2B40AE /* ofxPanel.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxPanel.cpp; path = ../../../addons/ofxGui/src/ofxPanel.cpp; sourceTree = SOURCE_ROOT; }; + E2333CF877EE99EBE86F4B0F /* HomographyHelper.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = HomographyHelper.cpp; path = ../../../addons/ofxPiMapper/src/Utils/HomographyHelper.cpp; sourceTree = SOURCE_ROOT; }; E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = openFrameworksLib.xcodeproj; path = ../../../libs/openFrameworksCompiled/project/osx/openFrameworksLib.xcodeproj; sourceTree = SOURCE_ROOT; }; - E45BE9710E8CC7DD009D7055 /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = "<absolute>"; }; - E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = "<absolute>"; }; - E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = "<absolute>"; }; - E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; }; - E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = "<absolute>"; }; - E45BE9770E8CC7DD009D7055 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = "<absolute>"; }; - E45BE9790E8CC7DD009D7055 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; }; - E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = "<absolute>"; }; E4B69B5B0A3A1756003C02F2 /* exampleDebug.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = exampleDebug.app; sourceTree = BUILT_PRODUCTS_DIR; }; E4B69E1D0A3A1BDC003C02F2 /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = src/main.cpp; sourceTree = SOURCE_ROOT; }; E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofApp.cpp; path = src/ofApp.cpp; sourceTree = SOURCE_ROOT; }; E4B69E1F0A3A1BDC003C02F2 /* ofApp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ofApp.h; path = src/ofApp.h; sourceTree = SOURCE_ROOT; }; E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.xml; path = "openFrameworks-Info.plist"; sourceTree = "<group>"; }; - E4C2424410CC5A17004149E2 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; }; - E4C2424510CC5A17004149E2 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; }; - E4C2424610CC5A17004149E2 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = "<absolute>"; }; E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = CoreOF.xcconfig; path = ../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig; sourceTree = SOURCE_ROOT; }; E4EB6923138AFD0F00A09F29 /* Project.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Project.xcconfig; sourceTree = "<group>"; }; - E7E077E415D3B63C0020DFD4 /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = /System/Library/Frameworks/CoreVideo.framework; sourceTree = "<absolute>"; }; - E7E077E715D3B6510020DFD4 /* QTKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = /System/Library/Frameworks/QTKit.framework; sourceTree = "<absolute>"; }; - E7F985F515E0DE99003869B5 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = /System/Library/Frameworks/Accelerate.framework; sourceTree = "<absolute>"; }; + E52D4207C299D5886C8FD2C7 /* MvLayerUpCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = MvLayerUpCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/MvLayerUpCmd.cpp; sourceTree = SOURCE_ROOT; }; + E5949E35CC6642F2FDFFAAE5 /* ImageSource.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ImageSource.h; path = ../../../addons/ofxPiMapper/src/Sources/ImageSource.h; sourceTree = SOURCE_ROOT; }; + E8CE817DF3028A4345376E7D /* DeselectTexCoordCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = DeselectTexCoordCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/DeselectTexCoordCmd.cpp; sourceTree = SOURCE_ROOT; }; + E8DA47AF2B265F778E74D4DA /* StartDragSurfaceCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = StartDragSurfaceCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/StartDragSurfaceCmd.cpp; sourceTree = SOURCE_ROOT; }; + EC481BAB32B250D3EA41AF9E /* MvLayerDnCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = MvLayerDnCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/MvLayerDnCmd.cpp; sourceTree = SOURCE_ROOT; }; + ECF8674C7975F1063C5E30CA /* ofxGuiGroup.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxGuiGroup.cpp; path = ../../../addons/ofxGui/src/ofxGuiGroup.cpp; sourceTree = SOURCE_ROOT; }; + EE95BF87E883491E7CC9B6EC /* DuplicateSurfaceCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = DuplicateSurfaceCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/DuplicateSurfaceCmd.h; sourceTree = SOURCE_ROOT; }; + EEF2CEBAFFABCFED915AFCE1 /* Info.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = Info.cpp; path = ../../../addons/ofxPiMapper/src/Info/Info.cpp; sourceTree = SOURCE_ROOT; }; + EFB1537A5DBC298C759BFC62 /* SourceTypeHelper.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SourceTypeHelper.h; path = ../../../addons/ofxPiMapper/src/Sources/SourceTypeHelper.h; sourceTree = SOURCE_ROOT; }; + F05CE9A6503C7CBCC46403C4 /* FboSource.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = FboSource.h; path = ../../../addons/ofxPiMapper/src/Sources/FboSource.h; sourceTree = SOURCE_ROOT; }; + F0A9FE4B6FB6C958B72B72CD /* SetApplicationModeCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SetApplicationModeCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/SetApplicationModeCmd.h; sourceTree = SOURCE_ROOT; }; + F27EBFBACAC7B29B2B7CA500 /* BaseSurface.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = BaseSurface.h; path = ../../../addons/ofxPiMapper/src/Surfaces/BaseSurface.h; sourceTree = SOURCE_ROOT; }; + F2C0EE541190D47BF5911C0A /* BaseSurface.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = BaseSurface.cpp; path = ../../../addons/ofxPiMapper/src/Surfaces/BaseSurface.cpp; sourceTree = SOURCE_ROOT; }; + F3538B8AF69CAB7C215FA1EF /* RmGridRowCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = RmGridRowCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/RmGridRowCmd.cpp; sourceTree = SOURCE_ROOT; }; + F3BC84F0441C01B0A760508D /* CrossSource.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = CrossSource.h; path = src/CrossSource.h; sourceTree = SOURCE_ROOT; }; + F4EDCDF597954EF25E7AD416 /* ScaleWidget.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ScaleWidget.cpp; path = ../../../addons/ofxPiMapper/src/Gui/Widgets/ScaleWidget.cpp; sourceTree = SOURCE_ROOT; }; + F7B0806EEA8012D629BE363C /* OMXPlayerCache.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = OMXPlayerCache.cpp; path = ../../../addons/ofxPiMapper/src/Sources/OMXPlayerCache.cpp; sourceTree = SOURCE_ROOT; }; + F7E88D3956480E0CBAA21641 /* SelPrevTexCoordCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SelPrevTexCoordCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/SelPrevTexCoordCmd.cpp; sourceTree = SOURCE_ROOT; }; + FA2E4E947E8D358C28D903C0 /* SetNextSourceCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SetNextSourceCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/SetNextSourceCmd.h; sourceTree = SOURCE_ROOT; }; + FC5DA1C87211D4F6377DA719 /* tinyxmlparser.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = tinyxmlparser.cpp; path = ../../../addons/ofxXmlSettings/libs/tinyxmlparser.cpp; sourceTree = SOURCE_ROOT; }; + FC98A68C64BFC941D0B31EE9 /* SelNextSurfaceCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SelNextSurfaceCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/SelNextSurfaceCmd.cpp; sourceTree = SOURCE_ROOT; }; + FCB5A622161B43A8154687F8 /* MediaServer.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = MediaServer.h; path = ../../../addons/ofxPiMapper/src/MediaServer/MediaServer.h; sourceTree = SOURCE_ROOT; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -357,385 +328,264 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E7F985F815E0DEA3003869B5 /* Accelerate.framework in Frameworks */, - E7E077E815D3B6510020DFD4 /* QTKit.framework in Frameworks */, - E4EB6799138ADC1D00A09F29 /* GLUT.framework in Frameworks */, E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */, - E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */, - E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */, - E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */, - E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */, - E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */, - E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */, - E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */, - E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */, - E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */, - E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */, - E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */, - E7E077E515D3B63C0020DFD4 /* CoreVideo.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 0115A5D71DBF93BA00C51732 /* src */ = { + 0775EF7214A04F1C3C936CCE /* Widgets */ = { isa = PBXGroup; children = ( - 0115A5D81DBF93BA00C51732 /* Application */, - 0166303C1DC66DAB0081F28F /* Commands */, - 0115A6301DBF93BA00C51732 /* Gui */, - 0115A6451DBF93BA00C51732 /* Info */, - 0115A6481DBF93BA00C51732 /* MediaServer */, - 0115A64D1DBF93BA00C51732 /* ofxPiMapper.cpp */, - 0115A64E1DBF93BA00C51732 /* ofxPiMapper.h */, - 0100D9401E33E667000D7FA5 /* Mode.h */, - 0115A64F1DBF93BA00C51732 /* Sources */, - 0115A65B1DBF93BA00C51732 /* Surfaces */, - 0115A66D1DBF93BA00C51732 /* UserInterface */, - 0115A6761DBF93BA00C51732 /* Utils */, + 94DC897871B221F060A6A70F /* GuiBaseWidget.h */, + 57990D37D728C5711AACBA9F /* LayerPanelWidget.cpp */, + 438B20A2C548E18384498186 /* LayerPanelWidget.h */, + 18DA1B30717C876AA19CEEC0 /* ProjectionEditorWidget.cpp */, + C27244405258CD6DF424D0F3 /* ProjectionEditorWidget.h */, + F4EDCDF597954EF25E7AD416 /* ScaleWidget.cpp */, + 23A4F0C9DE47BA73B3E49EDE /* ScaleWidget.h */, + 36F59D2F886152DF4115A218 /* SourcesEditorWidget.cpp */, + B562DE1EEC28EE801EB4F483 /* SourcesEditorWidget.h */, + 69A4D26FC0AD01A86571540D /* SurfaceHighlightWidget.cpp */, + 9F39733296358C3B0F85BB15 /* SurfaceHighlightWidget.h */, + 413E846B881CCADC897A8A40 /* TextureEditorWidget.cpp */, + AB96773D1B378AE8018EA33E /* TextureEditorWidget.h */, + 941AD8B39C28D08B9F31077A /* TextureHighlightWidget.cpp */, + 3BD822DBD11904D1D6E27E76 /* TextureHighlightWidget.h */, ); - name = src; - path = ../src; + name = Widgets; sourceTree = "<group>"; }; - 0115A5D81DBF93BA00C51732 /* Application */ = { + 1F4FB5C423662B96ADFDCC0B /* ofxXmlSettings */ = { isa = PBXGroup; children = ( - 0115A5D91DBF93BA00C51732 /* Application.cpp */, - 0115A5DA1DBF93BA00C51732 /* Application.h */, - 0115A5DB1DBF93BA00C51732 /* Modes */, - 0115A5E61DBF93BA00C51732 /* SettingsLoader.cpp */, - 0115A5E71DBF93BA00C51732 /* SettingsLoader.h */, + 6ECEF0D76BC33727823EADFF /* src */, + 6E54289412D2D94F45A05113 /* libs */, ); - path = Application; + name = ofxXmlSettings; sourceTree = "<group>"; }; - 0115A5DB1DBF93BA00C51732 /* Modes */ = { + 3D6840E4DBCF2DED6C755B76 /* Utils */ = { isa = PBXGroup; children = ( - 0115A5DC1DBF93BA00C51732 /* ApplicationBaseMode.cpp */, - 0115A5DD1DBF93BA00C51732 /* ApplicationBaseMode.h */, - 0115A5DE1DBF93BA00C51732 /* PresentationMode.cpp */, - 0115A5DF1DBF93BA00C51732 /* PresentationMode.h */, - 0115A5E01DBF93BA00C51732 /* ProjectionMappingMode.cpp */, - 0115A5E11DBF93BA00C51732 /* ProjectionMappingMode.h */, - 0115A5E21DBF93BA00C51732 /* SourceSelectionMode.cpp */, - 0115A5E31DBF93BA00C51732 /* SourceSelectionMode.h */, - 0115A5E41DBF93BA00C51732 /* TextureMappingMode.cpp */, - 0115A5E51DBF93BA00C51732 /* TextureMappingMode.h */, + E2333CF877EE99EBE86F4B0F /* HomographyHelper.cpp */, + D627BF76B06B3FF4F1516C5E /* HomographyHelper.h */, ); - path = Modes; + name = Utils; sourceTree = "<group>"; }; - 0115A6301DBF93BA00C51732 /* Gui */ = { + 43844FF975EC3DB9B9DDAD73 /* Application */ = { isa = PBXGroup; children = ( - 0115A6311DBF93BA00C51732 /* Gui.cpp */, - 0115A6321DBF93BA00C51732 /* Gui.h */, - 0115A6331DBF93BA00C51732 /* Widgets */, + 1B3B1807E9CFC3FFBA4DBBEF /* Application.cpp */, + 928068952444E81EF818B25C /* Application.h */, + 783422EB3B2FDA36D11DC9CF /* Modes */, + 33DD6E4350FD51C68B7E65F0 /* SettingsLoader.cpp */, + 5235D939D249EAF47F9A5EB5 /* SettingsLoader.h */, ); - path = Gui; + name = Application; sourceTree = "<group>"; }; - 0115A6331DBF93BA00C51732 /* Widgets */ = { + 480A780D8D0308AE4A368801 /* ofxGui */ = { isa = PBXGroup; children = ( - 0115A6341DBF93BA00C51732 /* GuiBaseWidget.h */, - 0115A6351DBF93BA00C51732 /* LayerPanelWidget.cpp */, - 0115A6361DBF93BA00C51732 /* LayerPanelWidget.h */, - 0115A6371DBF93BA00C51732 /* ProjectionEditorWidget.cpp */, - 0115A6381DBF93BA00C51732 /* ProjectionEditorWidget.h */, - 0115A6391DBF93BA00C51732 /* ScaleWidget.cpp */, - 0115A63A1DBF93BA00C51732 /* ScaleWidget.h */, - 0115A63B1DBF93BA00C51732 /* SourcesEditorWidget.cpp */, - 0115A63C1DBF93BA00C51732 /* SourcesEditorWidget.h */, - 0115A63D1DBF93BA00C51732 /* SurfaceHighlightWidget.cpp */, - 0115A63E1DBF93BA00C51732 /* SurfaceHighlightWidget.h */, - 0115A6411DBF93BA00C51732 /* TextureEditorWidget.cpp */, - 0115A6421DBF93BA00C51732 /* TextureEditorWidget.h */, - 0115A6431DBF93BA00C51732 /* TextureHighlightWidget.cpp */, - 0115A6441DBF93BA00C51732 /* TextureHighlightWidget.h */, + A763ED608B35AE3310251DEE /* src */, ); - path = Widgets; + name = ofxGui; sourceTree = "<group>"; }; - 0115A6451DBF93BA00C51732 /* Info */ = { + 49237A8A4935FFC7A690CBD7 /* MediaServer */ = { isa = PBXGroup; children = ( - 0115A6461DBF93BA00C51732 /* Info.cpp */, - 0115A6471DBF93BA00C51732 /* Info.h */, + 20F9951441118A70E8D55E13 /* DirectoryWatcher.cpp */, + 7C89C324499F9541394245C9 /* DirectoryWatcher.h */, + 18385A4F4BC87806616D4F7F /* MediaServer.cpp */, + FCB5A622161B43A8154687F8 /* MediaServer.h */, ); - path = Info; + name = MediaServer; sourceTree = "<group>"; }; - 0115A6481DBF93BA00C51732 /* MediaServer */ = { + 57113A603B123D17EBD5D0D1 /* src */ = { isa = PBXGroup; children = ( - 0115A6491DBF93BA00C51732 /* DirectoryWatcher.cpp */, - 0115A64A1DBF93BA00C51732 /* DirectoryWatcher.h */, - 0115A64B1DBF93BA00C51732 /* MediaServer.cpp */, - 0115A64C1DBF93BA00C51732 /* MediaServer.h */, + 43844FF975EC3DB9B9DDAD73 /* Application */, + F19689EE10A2EC1EC429FAC7 /* Commands */, + 783C34304FF450D0CB244879 /* Gui */, + 922DC4E8A53315BB0C983902 /* Info */, + 49237A8A4935FFC7A690CBD7 /* MediaServer */, + C2E5DC1692A11AF5D981F8FA /* Mode.h */, + 16DB3860ECC0D672B08DE71C /* ofxPiMapper.cpp */, + 378C962CF2DB945F38DE674A /* ofxPiMapper.h */, + 77B40894B404D46E0B9438E0 /* Sources */, + DA1ABA97EBE5173F815CB449 /* Surfaces */, + 925C888869704DBDF0BE6D0B /* UserInterface */, + 3D6840E4DBCF2DED6C755B76 /* Utils */, ); - path = MediaServer; + name = src; sourceTree = "<group>"; }; - 0115A64F1DBF93BA00C51732 /* Sources */ = { + 6948EE371B920CB800B5AC1A /* local_addons */ = { isa = PBXGroup; children = ( - 0115A6501DBF93BA00C51732 /* BaseSource.cpp */, - 0115A6511DBF93BA00C51732 /* BaseSource.h */, - 0115A6521DBF93BA00C51732 /* FboSource.cpp */, - 0115A6531DBF93BA00C51732 /* FboSource.h */, - 0115A6541DBF93BA00C51732 /* ImageSource.cpp */, - 0115A6551DBF93BA00C51732 /* ImageSource.h */, - 0115A6561DBF93BA00C51732 /* OMXPlayerCache.cpp */, - 0115A6571DBF93BA00C51732 /* OMXPlayerCache.h */, - 0115A6581DBF93BA00C51732 /* SourceType.h */, - 0115A6591DBF93BA00C51732 /* VideoSource.cpp */, - 0115A65A1DBF93BA00C51732 /* VideoSource.h */, ); - path = Sources; + name = local_addons; sourceTree = "<group>"; }; - 0115A65B1DBF93BA00C51732 /* Surfaces */ = { + 6E54289412D2D94F45A05113 /* libs */ = { isa = PBXGroup; children = ( - 0115A65C1DBF93BA00C51732 /* BaseSurface.cpp */, - 0115A65D1DBF93BA00C51732 /* BaseSurface.h */, - 0115A65E1DBF93BA00C51732 /* GridWarpSurface.cpp */, - 0115A65F1DBF93BA00C51732 /* GridWarpSurface.h */, - 0115A6601DBF93BA00C51732 /* HexagonSurface.cpp */, - 0115A6611DBF93BA00C51732 /* HexagonSurface.h */, - 0115A6621DBF93BA00C51732 /* QuadSurface.cpp */, - 0115A6631DBF93BA00C51732 /* QuadSurface.h */, - 0115A6641DBF93BA00C51732 /* SurfaceFactory.cpp */, - 0115A6651DBF93BA00C51732 /* SurfaceFactory.h */, - 0115A6661DBF93BA00C51732 /* SurfaceManager.cpp */, - 0115A6671DBF93BA00C51732 /* SurfaceManager.h */, - 0115A6681DBF93BA00C51732 /* SurfaceStack.cpp */, - 0115A6691DBF93BA00C51732 /* SurfaceStack.h */, - 0115A66A1DBF93BA00C51732 /* SurfaceType.h */, - 0115A66B1DBF93BA00C51732 /* TriangleSurface.cpp */, - 0115A66C1DBF93BA00C51732 /* TriangleSurface.h */, + 2B40EDA85BEB63E46785BC29 /* tinyxml.cpp */, + B21E7E5F548EEA92F368040B /* tinyxml.h */, + 832BDC407620CDBA568B713D /* tinyxmlerror.cpp */, + FC5DA1C87211D4F6377DA719 /* tinyxmlparser.cpp */, ); - path = Surfaces; + name = libs; sourceTree = "<group>"; }; - 0115A66D1DBF93BA00C51732 /* UserInterface */ = { + 6ECEF0D76BC33727823EADFF /* src */ = { isa = PBXGroup; children = ( - 0115A66E1DBF93BA00C51732 /* BaseJoint.cpp */, - 0115A66F1DBF93BA00C51732 /* BaseJoint.h */, - 0115A6701DBF93BA00C51732 /* CircleJoint.cpp */, - 0115A6711DBF93BA00C51732 /* CircleJoint.h */, - 0115A6721DBF93BA00C51732 /* EditorType.h */, - 0115A6731DBF93BA00C51732 /* GuiMode.h */, - 0115A6741DBF93BA00C51732 /* RadioList.cpp */, - 0115A6751DBF93BA00C51732 /* RadioList.h */, + 50DF87D612C5AAE17AAFA6C0 /* ofxXmlSettings.cpp */, + 01DCC0911400F9ACF5B65578 /* ofxXmlSettings.h */, ); - path = UserInterface; + name = src; sourceTree = "<group>"; }; - 0115A6761DBF93BA00C51732 /* Utils */ = { + 77B40894B404D46E0B9438E0 /* Sources */ = { isa = PBXGroup; children = ( - 0115A6771DBF93BA00C51732 /* HomographyHelper.cpp */, - 0115A6781DBF93BA00C51732 /* HomographyHelper.h */, + AB4132974E14024E74E320F5 /* BaseSource.cpp */, + B390802358C73D3757AC9B4E /* BaseSource.h */, + C61C1F4F1A1ED2660B1D6EDC /* FboSource.cpp */, + F05CE9A6503C7CBCC46403C4 /* FboSource.h */, + 61291E56B7882C9E9B8F119B /* ImageSource.cpp */, + E5949E35CC6642F2FDFFAAE5 /* ImageSource.h */, + F7B0806EEA8012D629BE363C /* OMXPlayerCache.cpp */, + 3BD72CBAFD427FC6E9F164D2 /* OMXPlayerCache.h */, + 6595C215972AFFC7EE685F5A /* SourceType.h */, + EFB1537A5DBC298C759BFC62 /* SourceTypeHelper.h */, + 5407451FA68C27B2AAE644A6 /* VideoSource.cpp */, + C2D03F683EE589F55D47CFFD /* VideoSource.h */, ); - path = Utils; + name = Sources; sourceTree = "<group>"; }; - 0166303C1DC66DAB0081F28F /* Commands */ = { + 783422EB3B2FDA36D11DC9CF /* Modes */ = { isa = PBXGroup; children = ( - 0166303D1DC66DAB0081F28F /* AddGridColCmd.cpp */, - 0166303E1DC66DAB0081F28F /* AddGridColCmd.h */, - 0166303F1DC66DAB0081F28F /* AddGridRowCmd.cpp */, - 016630401DC66DAB0081F28F /* AddGridRowCmd.h */, - 016630411DC66DAB0081F28F /* AddSurfaceCmd.cpp */, - 016630421DC66DAB0081F28F /* AddSurfaceCmd.h */, - 016630431DC66DAB0081F28F /* BaseCmd.h */, - 016630441DC66DAB0081F28F /* ClearSurfacesCmd.cpp */, - 016630451DC66DAB0081F28F /* ClearSurfacesCmd.h */, - 016630461DC66DAB0081F28F /* CmdManager.cpp */, - 016630471DC66DAB0081F28F /* CmdManager.h */, - 016630481DC66DAB0081F28F /* DeselectSurfaceCmd.cpp */, - 016630491DC66DAB0081F28F /* DeselectSurfaceCmd.h */, - 0166304A1DC66DAB0081F28F /* DeselectTexCoordCmd.cpp */, - 0166304B1DC66DAB0081F28F /* DeselectTexCoordCmd.h */, - 0166304C1DC66DAB0081F28F /* DuplicateSurfaceCmd.cpp */, - 0166304D1DC66DAB0081F28F /* DuplicateSurfaceCmd.h */, - 0166304E1DC66DAB0081F28F /* MvAllTexCoordsCmd.cpp */, - 0166304F1DC66DAB0081F28F /* MvAllTexCoordsCmd.h */, - 016630501DC66DAB0081F28F /* MvLayerDnCmd.cpp */, - 016630511DC66DAB0081F28F /* MvLayerDnCmd.h */, - 016630521DC66DAB0081F28F /* MvLayerUpCmd.cpp */, - 016630531DC66DAB0081F28F /* MvLayerUpCmd.h */, - 016630541DC66DAB0081F28F /* MvSelectionCmd.cpp */, - 016630551DC66DAB0081F28F /* MvSelectionCmd.h */, - 016630561DC66DAB0081F28F /* MvSurfaceVertCmd.cpp */, - 016630571DC66DAB0081F28F /* MvSurfaceVertCmd.h */, - 016630581DC66DAB0081F28F /* MvTexCoordCmd.cpp */, - 016630591DC66DAB0081F28F /* MvTexCoordCmd.h */, - 0166305A1DC66DAB0081F28F /* RmGridColCmd.cpp */, - 0166305B1DC66DAB0081F28F /* RmGridColCmd.h */, - 0166305C1DC66DAB0081F28F /* RmGridRowCmd.cpp */, - 0166305D1DC66DAB0081F28F /* RmGridRowCmd.h */, - 0166305E1DC66DAB0081F28F /* RmSurfaceCmd.cpp */, - 0166305F1DC66DAB0081F28F /* RmSurfaceCmd.h */, - 016630601DC66DAB0081F28F /* SaveTexCoordPosCmd.cpp */, - 016630611DC66DAB0081F28F /* SaveTexCoordPosCmd.h */, - 016630621DC66DAB0081F28F /* ScaleSurfaceFromToCmd.cpp */, - 016630631DC66DAB0081F28F /* ScaleSurfaceFromToCmd.h */, - 016630641DC66DAB0081F28F /* SelNextSurfaceCmd.cpp */, - 016630651DC66DAB0081F28F /* SelNextSurfaceCmd.h */, - 016630661DC66DAB0081F28F /* SelNextTexCoordCmd.cpp */, - 016630671DC66DAB0081F28F /* SelNextTexCoordCmd.h */, - 016630681DC66DAB0081F28F /* SelNextVertexCmd.cpp */, - 016630691DC66DAB0081F28F /* SelNextVertexCmd.h */, - 0166306A1DC66DAB0081F28F /* SelPrevSurfaceCmd.cpp */, - 0166306B1DC66DAB0081F28F /* SelPrevSurfaceCmd.h */, - 0166306C1DC66DAB0081F28F /* SelPrevTexCoordCmd.cpp */, - 0166306D1DC66DAB0081F28F /* SelPrevTexCoordCmd.h */, - 0166306E1DC66DAB0081F28F /* SelPrevVertexCmd.cpp */, - 0166306F1DC66DAB0081F28F /* SelPrevVertexCmd.h */, - 016630701DC66DAB0081F28F /* SelSurfaceCmd.cpp */, - 016630711DC66DAB0081F28F /* SelSurfaceCmd.h */, - 016630721DC66DAB0081F28F /* SelTexCoordCmd.cpp */, - 016630731DC66DAB0081F28F /* SelTexCoordCmd.h */, - 016630741DC66DAB0081F28F /* SelVertexCmd.cpp */, - 016630751DC66DAB0081F28F /* SelVertexCmd.h */, - 016630761DC66DAB0081F28F /* SetApplicationModeCmd.cpp */, - 016630771DC66DAB0081F28F /* SetApplicationModeCmd.h */, - 016630781DC66DAB0081F28F /* SetNextSourceCmd.cpp */, - 016630791DC66DAB0081F28F /* SetNextSourceCmd.h */, - 0166307A1DC66DAB0081F28F /* SetPresetCmd.cpp */, - 0166307B1DC66DAB0081F28F /* SetPresetCmd.h */, - 0166307C1DC66DAB0081F28F /* SetSourceCmd.cpp */, - 0166307D1DC66DAB0081F28F /* SetSourceCmd.h */, - 0166307E1DC66DAB0081F28F /* SetTexMapDrawModeCmd.cpp */, - 0166307F1DC66DAB0081F28F /* SetTexMapDrawModeCmd.h */, - 016630801DC66DAB0081F28F /* StartDragSurfaceCmd.cpp */, - 016630811DC66DAB0081F28F /* StartDragSurfaceCmd.h */, - 016630821DC66DAB0081F28F /* ToggleAnimatedSourceCmd.cpp */, - 016630831DC66DAB0081F28F /* ToggleAnimatedSourceCmd.h */, - 016630841DC66DAB0081F28F /* TogglePerspectiveCmd.cpp */, - 016630851DC66DAB0081F28F /* TogglePerspectiveCmd.h */, - 016630861DC66DAB0081F28F /* TranslateCanvasCmd.cpp */, - 016630871DC66DAB0081F28F /* TranslateCanvasCmd.h */, + 9631F04A0875ADEB45970DE8 /* ApplicationBaseMode.cpp */, + 57D73BCD8A871590F140EFF6 /* ApplicationBaseMode.h */, + 64156CB2D856E4CE0FBBED96 /* PresentationMode.cpp */, + 3B043509B19E37C383D7CA87 /* PresentationMode.h */, + 1BCA96396113AAF56D66C844 /* ProjectionMappingMode.cpp */, + DC8107E8E56AFFB933FE8962 /* ProjectionMappingMode.h */, + 4245228145B1AA737F49CF14 /* SourceSelectionMode.cpp */, + 7FD330C204479B5A5021D286 /* SourceSelectionMode.h */, + B16277019B0C4B684E1B063E /* TextureMappingMode.cpp */, + 3157007392BD114EAB99F470 /* TextureMappingMode.h */, ); - path = Commands; + name = Modes; sourceTree = "<group>"; }; - 39264837192224C20008A7F5 /* ofxXmlSettings */ = { + 783C34304FF450D0CB244879 /* Gui */ = { isa = PBXGroup; children = ( - 3926483C192224F90008A7F5 /* libs */, - 39264838192224CA0008A7F5 /* src */, + DCC24025AD26B4554B000385 /* Gui.cpp */, + 7A3290FC65714D0C4D02B8BA /* Gui.h */, + 0775EF7214A04F1C3C936CCE /* Widgets */, ); - name = ofxXmlSettings; + name = Gui; sourceTree = "<group>"; }; - 39264838192224CA0008A7F5 /* src */ = { + 7CC2E9C572434BA3ED1C8079 /* ofxPiMapper */ = { isa = PBXGroup; children = ( - 39264839192224DA0008A7F5 /* ofxXmlSettings.cpp */, - 3926483A192224DA0008A7F5 /* ofxXmlSettings.h */, + 57113A603B123D17EBD5D0D1 /* src */, ); - name = src; + name = ofxPiMapper; sourceTree = "<group>"; }; - 3926483C192224F90008A7F5 /* libs */ = { + 922DC4E8A53315BB0C983902 /* Info */ = { isa = PBXGroup; children = ( - 3926483D192224F90008A7F5 /* tinyxml.cpp */, - 3926483E192224F90008A7F5 /* tinyxml.h */, - 3926483F192224F90008A7F5 /* tinyxmlerror.cpp */, - 39264840192224F90008A7F5 /* tinyxmlparser.cpp */, + EEF2CEBAFFABCFED915AFCE1 /* Info.cpp */, + 37E7F66B151AB6A0AB6FC244 /* Info.h */, ); - name = libs; - path = ../../ofxXmlSettings/libs; + name = Info; sourceTree = "<group>"; }; - 3933D5C019BB87A3000ACA55 /* ofxGui */ = { + 925C888869704DBDF0BE6D0B /* UserInterface */ = { isa = PBXGroup; children = ( - 3933D5C119BB87BD000ACA55 /* src */, + 7E78D1B2A6DB0856BF8ED1FE /* BaseJoint.cpp */, + 851AF875A70187105CA91C1A /* BaseJoint.h */, + 62F01592304CB7995200EF7B /* CircleJoint.cpp */, + 9B4D98CCBAB57278C96169D4 /* CircleJoint.h */, + 4130052A043CF3D3C2BA943A /* EditorType.h */, + B7DD3DE526EF824DDAF42B09 /* GuiMode.h */, + 4048CA09E6AAB5F673CBD2F0 /* RadioList.cpp */, + DC69ACA83F14B8A2AE20197B /* RadioList.h */, ); - name = ofxGui; + name = UserInterface; sourceTree = "<group>"; }; - 3933D5C119BB87BD000ACA55 /* src */ = { + A763ED608B35AE3310251DEE /* src */ = { isa = PBXGroup; children = ( - 3933D5C219BB87BD000ACA55 /* ofxBaseGui.cpp */, - 3933D5C319BB87BD000ACA55 /* ofxBaseGui.h */, - 3933D5C419BB87BD000ACA55 /* ofxButton.cpp */, - 3933D5C519BB87BD000ACA55 /* ofxButton.h */, - 3933D5C619BB87BD000ACA55 /* ofxGui.h */, - 3933D5C719BB87BD000ACA55 /* ofxGuiGroup.cpp */, - 3933D5C819BB87BD000ACA55 /* ofxGuiGroup.h */, - 3933D5C919BB87BD000ACA55 /* ofxLabel.cpp */, - 3933D5CA19BB87BD000ACA55 /* ofxLabel.h */, - 3933D5CB19BB87BD000ACA55 /* ofxPanel.cpp */, - 3933D5CC19BB87BD000ACA55 /* ofxPanel.h */, - 3933D5CD19BB87BD000ACA55 /* ofxSlider.cpp */, - 3933D5CE19BB87BD000ACA55 /* ofxSlider.h */, - 3933D5CF19BB87BD000ACA55 /* ofxSliderGroup.cpp */, - 3933D5D019BB87BD000ACA55 /* ofxSliderGroup.h */, - 3933D5D119BB87BD000ACA55 /* ofxToggle.cpp */, - 3933D5D219BB87BD000ACA55 /* ofxToggle.h */, + 9604B925D32EE39065747725 /* ofxBaseGui.cpp */, + 87F26B4B24CBD428AD9EEBAA /* ofxBaseGui.h */, + C88333E71C9457E441C33474 /* ofxButton.cpp */, + 2834D88A62CD23F3DE2C47D1 /* ofxButton.h */, + 17E65988300FBD9AAA2CD0CA /* ofxGui.h */, + ECF8674C7975F1063C5E30CA /* ofxGuiGroup.cpp */, + 1C0DA2561397A7DE0246858B /* ofxGuiGroup.h */, + 78D67A00EB899FAC09430597 /* ofxLabel.cpp */, + B87C60311EC1FE841C1ECD89 /* ofxLabel.h */, + E112B3AEBEA2C091BF2B40AE /* ofxPanel.cpp */, + 89449E3044D456F7DE7BEA14 /* ofxPanel.h */, + 15F2C6477A769C03A56D1401 /* ofxSlider.cpp */, + 52AFA1F08C420992CAAAE648 /* ofxSlider.h */, + 802251BAF1B35B1D67B32FD0 /* ofxSliderGroup.cpp */, + C70D8946940288799E82131E /* ofxSliderGroup.h */, + 907C5B5E104864A2D3A25745 /* ofxToggle.cpp */, + 0A1DAC09F322AE313A40706D /* ofxToggle.h */, ); name = src; - path = ../../ofxGui/src; - sourceTree = "<group>"; - }; - 396E8A34190FEDE500705899 /* ofxPiMapper */ = { - isa = PBXGroup; - children = ( - 0115A5D71DBF93BA00C51732 /* src */, - ); - name = ofxPiMapper; sourceTree = "<group>"; }; BB4B014C10F69532006C3DED /* addons */ = { isa = PBXGroup; children = ( - 3933D5C019BB87A3000ACA55 /* ofxGui */, - 39264837192224C20008A7F5 /* ofxXmlSettings */, - 396E8A34190FEDE500705899 /* ofxPiMapper */, + 480A780D8D0308AE4A368801 /* ofxGui */, + 7CC2E9C572434BA3ED1C8079 /* ofxPiMapper */, + 1F4FB5C423662B96ADFDCC0B /* ofxXmlSettings */, ); name = addons; sourceTree = "<group>"; }; - BBAB23C913894ECA00AA2426 /* system frameworks */ = { - isa = PBXGroup; - children = ( - E7F985F515E0DE99003869B5 /* Accelerate.framework */, - E4C2424410CC5A17004149E2 /* AppKit.framework */, - E4C2424510CC5A17004149E2 /* Cocoa.framework */, - E4C2424610CC5A17004149E2 /* IOKit.framework */, - E45BE9710E8CC7DD009D7055 /* AGL.framework */, - E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */, - E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */, - E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */, - E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */, - E45BE9770E8CC7DD009D7055 /* CoreServices.framework */, - E45BE9790E8CC7DD009D7055 /* OpenGL.framework */, - E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */, - E7E077E415D3B63C0020DFD4 /* CoreVideo.framework */, - E7E077E715D3B6510020DFD4 /* QTKit.framework */, - ); - name = "system frameworks"; - sourceTree = "<group>"; - }; - BBAB23CA13894EDB00AA2426 /* 3rd party frameworks */ = { + DA1ABA97EBE5173F815CB449 /* Surfaces */ = { isa = PBXGroup; children = ( - BBAB23BE13894E4700AA2426 /* GLUT.framework */, + F2C0EE541190D47BF5911C0A /* BaseSurface.cpp */, + F27EBFBACAC7B29B2B7CA500 /* BaseSurface.h */, + 2D2400AC1A64EDE5E990C56C /* GridWarpSurface.cpp */, + C3E8D103B72D02E063B29082 /* GridWarpSurface.h */, + BCBB74B9531974E1D5DA019B /* HexagonSurface.cpp */, + 0B4D5D37A2AE7AB30D726C16 /* HexagonSurface.h */, + B9ECBF061BABECA9C2341372 /* QuadSurface.cpp */, + 906696B07A716E4057D32B1E /* QuadSurface.h */, + 03FA94CA9F193C816DE4253F /* SurfaceFactory.cpp */, + D58C36B60BB72C7336042FB9 /* SurfaceFactory.h */, + 836B103542A52C63B004410C /* SurfaceManager.cpp */, + 7344B3B35CD0188D1283EC59 /* SurfaceManager.h */, + 1C080561EC053F17BB86A668 /* SurfaceStack.cpp */, + 6592BB3592290B34832D7607 /* SurfaceStack.h */, + B178ED5CA7F76AAA6E49E191 /* SurfaceType.h */, + 3DF2D82EA37D8C7A5F686EA5 /* TriangleSurface.cpp */, + 23118136CC7FFA920626B6C3 /* TriangleSurface.h */, ); - name = "3rd party frameworks"; + name = Surfaces; sourceTree = "<group>"; }; E4328144138ABC890047C5CB /* Products */ = { @@ -746,15 +596,6 @@ name = Products; sourceTree = "<group>"; }; - E45BE5980E8CC70C009D7055 /* frameworks */ = { - isa = PBXGroup; - children = ( - BBAB23CA13894EDB00AA2426 /* 3rd party frameworks */, - BBAB23C913894ECA00AA2426 /* system frameworks */, - ); - name = frameworks; - sourceTree = "<group>"; - }; E4B69B4A0A3A1720003C02F2 = { isa = PBXGroup; children = ( @@ -763,7 +604,7 @@ E4B69E1C0A3A1BDC003C02F2 /* src */, E4EEC9E9138DF44700A80321 /* openFrameworks */, BB4B014C10F69532006C3DED /* addons */, - E45BE5980E8CC70C009D7055 /* frameworks */, + 6948EE371B920CB800B5AC1A /* local_addons */, E4B69B5B0A3A1756003C02F2 /* exampleDebug.app */, ); sourceTree = "<group>"; @@ -774,12 +615,12 @@ E4B69E1D0A3A1BDC003C02F2 /* main.cpp */, E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */, E4B69E1F0A3A1BDC003C02F2 /* ofApp.h */, - 397EFC811A09047C0009286E /* CustomSource.h */, - 397EFC801A09047C0009286E /* CustomSource.cpp */, - 399953681BD54FF600D5B1F1 /* CrossSource.h */, - 399953671BD54FF600D5B1F1 /* CrossSource.cpp */, - 3995C2081C79069B00123352 /* Settings.h */, - 3995C2091C79069B00123352 /* Settings.cpp */, + 2DDA3608BED55BC67A9DAFF5 /* CrossSource.cpp */, + F3BC84F0441C01B0A760508D /* CrossSource.h */, + 76B40246C8B90C1CA4074BB7 /* CustomSource.cpp */, + B0B66559E2F530AE989510C0 /* CustomSource.h */, + 4A0800123A129E9BC12ED207 /* Settings.cpp */, + A1A567FBAE494BF84E54E83C /* Settings.h */, ); path = src; sourceTree = SOURCE_ROOT; @@ -793,6 +634,88 @@ name = openFrameworks; sourceTree = "<group>"; }; + F19689EE10A2EC1EC429FAC7 /* Commands */ = { + isa = PBXGroup; + children = ( + 231337763726D333E0B3D56C /* AddGridColCmd.cpp */, + 1E73070DAC89F6A796BFF464 /* AddGridColCmd.h */, + 3E4A0386460638A781A7AC84 /* AddGridRowCmd.cpp */, + 775FD891C1E381F87BF33C82 /* AddGridRowCmd.h */, + B323D7489A7B26A63443444F /* AddSurfaceCmd.cpp */, + 00756183A9E41665E637AC23 /* AddSurfaceCmd.h */, + 17972C3384311464011667D9 /* BaseCmd.h */, + 962C349E8F4E59FF335AB2A6 /* ClearSurfacesCmd.cpp */, + 3074E4094F76555C299E5D8E /* ClearSurfacesCmd.h */, + BDBE053980FA01FAD543D782 /* CmdManager.cpp */, + 2F04FFB9BAC4575E214C0DED /* CmdManager.h */, + 6E80EE6FB0CC304A6CA287BB /* DeselectSurfaceCmd.cpp */, + 65DBA05D19177D2853D54196 /* DeselectSurfaceCmd.h */, + E8CE817DF3028A4345376E7D /* DeselectTexCoordCmd.cpp */, + 718E523D4BDDCFAC394B3EA5 /* DeselectTexCoordCmd.h */, + C656C28252AD5E9E09FA2162 /* DuplicateSurfaceCmd.cpp */, + EE95BF87E883491E7CC9B6EC /* DuplicateSurfaceCmd.h */, + DBAFA0B7AFEA589CA5167204 /* MvAllTexCoordsCmd.cpp */, + 25322223D3976D5F33DCCBF6 /* MvAllTexCoordsCmd.h */, + EC481BAB32B250D3EA41AF9E /* MvLayerDnCmd.cpp */, + 61481FB831430E35A18ABD02 /* MvLayerDnCmd.h */, + E52D4207C299D5886C8FD2C7 /* MvLayerUpCmd.cpp */, + 933CAE5B2DEC9DDABEA95E34 /* MvLayerUpCmd.h */, + 7D386994DF359F3BD1E66480 /* MvSelectionCmd.cpp */, + D4CFAEBB593AD070E04F106C /* MvSelectionCmd.h */, + 18041C8871E17DE3E60BFF95 /* MvSurfaceVertCmd.cpp */, + D565A612B1DF2837C94A6081 /* MvSurfaceVertCmd.h */, + 0739F09627790055C959BBF4 /* MvTexCoordCmd.cpp */, + 8F41EDB76644426680B2FA2B /* MvTexCoordCmd.h */, + A50F23D868C48DF9799BC788 /* RmGridColCmd.cpp */, + BA65337B3E631788AE2D018B /* RmGridColCmd.h */, + F3538B8AF69CAB7C215FA1EF /* RmGridRowCmd.cpp */, + 74CA4C78136F233FB90B7D3E /* RmGridRowCmd.h */, + B7C308F8B76FCB909581A580 /* RmSurfaceCmd.cpp */, + D7287CBE5600FEE9EE1B1AEA /* RmSurfaceCmd.h */, + 60F40691CD9DE4DEE1768FE9 /* SaveTexCoordPosCmd.cpp */, + D463EA9CC53D21A44CB9D6EF /* SaveTexCoordPosCmd.h */, + 34B45EB44DED0A47FBAD30F4 /* ScaleSurfaceFromToCmd.cpp */, + 62C9C3E62D4BEF04CF54C031 /* ScaleSurfaceFromToCmd.h */, + FC98A68C64BFC941D0B31EE9 /* SelNextSurfaceCmd.cpp */, + 30ED82F4A70B5B95CCEF7744 /* SelNextSurfaceCmd.h */, + 784FFEB8D108EC916343AB97 /* SelNextTexCoordCmd.cpp */, + A5CBAE57D2ADED1CAB6123AF /* SelNextTexCoordCmd.h */, + 140C0677F9F5A5D3B8A89AC4 /* SelNextVertexCmd.cpp */, + BA5B6BB795E2A24B2DBA22BD /* SelNextVertexCmd.h */, + 6DF54314CF2B45BF195B84C6 /* SelPrevSurfaceCmd.cpp */, + B5C793F4FEA3AA065347B61C /* SelPrevSurfaceCmd.h */, + F7E88D3956480E0CBAA21641 /* SelPrevTexCoordCmd.cpp */, + 1CE256C39E514ABD16FCCB87 /* SelPrevTexCoordCmd.h */, + 3B29C3846BA06080344C1D1E /* SelPrevVertexCmd.cpp */, + 47AB6134D2AB2F3EB10096A3 /* SelPrevVertexCmd.h */, + 0B691BBAB665F94F09B2C276 /* SelSurfaceCmd.cpp */, + CB4461BD6FC059D946144727 /* SelSurfaceCmd.h */, + 27453C6FAE9B674FD694508D /* SelTexCoordCmd.cpp */, + D05D5FBB2B2779B022A5DD04 /* SelTexCoordCmd.h */, + A2282B1E05458C3B2BBCE568 /* SelVertexCmd.cpp */, + 79A9ED756DB70790A67E3EF8 /* SelVertexCmd.h */, + 8D3CB0B9A827AFA479349BBE /* SetApplicationModeCmd.cpp */, + F0A9FE4B6FB6C958B72B72CD /* SetApplicationModeCmd.h */, + 4FFBE499412CC8DD07163E91 /* SetNextSourceCmd.cpp */, + FA2E4E947E8D358C28D903C0 /* SetNextSourceCmd.h */, + 15C9B02F2CF08112845CD074 /* SetPresetCmd.cpp */, + BCB571865BB25BC586CF80EC /* SetPresetCmd.h */, + 7F58FFED7FBFC49573FF65E4 /* SetSourceCmd.cpp */, + 56A68D8E68FF141B5EB1ADF6 /* SetSourceCmd.h */, + 49BE2D8F2A2A57F4EBF83FF4 /* SetTexMapDrawModeCmd.cpp */, + 912C6A870E22496CEA43AC85 /* SetTexMapDrawModeCmd.h */, + E8DA47AF2B265F778E74D4DA /* StartDragSurfaceCmd.cpp */, + 5EBDBF5E7887C574E1FCC1B5 /* StartDragSurfaceCmd.h */, + 5D020B9B28609D071E21BB76 /* ToggleAnimatedSourceCmd.cpp */, + 21167F26AF957606289D4A4A /* ToggleAnimatedSourceCmd.h */, + 655142313A378162E3929785 /* TogglePerspectiveCmd.cpp */, + 4244A1B9B55BD7BA7ED2F547 /* TogglePerspectiveCmd.h */, + 03FCF5559C2A6AB79D947767 /* TranslateCanvasCmd.cpp */, + 5AB104FC7812B4F42B8E1540 /* TranslateCanvasCmd.h */, + ); + name = Commands; + sourceTree = "<group>"; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -804,6 +727,7 @@ E4B69B590A3A1756003C02F2 /* Frameworks */, E4B6FFFD0C3F9AB9008CF71C /* ShellScript */, E4C2427710CC5ABF004149E2 /* CopyFiles */, + 8466F1851C04CA0E00918B1C /* ShellScript */, ); buildRules = ( ); @@ -821,7 +745,7 @@ E4B69B4C0A3A1720003C02F2 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0720; + LastUpgradeCheck = 0600; }; buildConfigurationList = E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "example" */; compatibilityVersion = "Xcode 3.2"; @@ -860,6 +784,19 @@ /* End PBXReferenceProxy section */ /* Begin PBXShellScriptBuildPhase section */ + 8466F1851C04CA0E00918B1C /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 12; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "# ---- Code Sign App Package ----\n \n# WARNING: You may have to run Clean in Xcode after changing CODE_SIGN_IDENTITY!\n\n# Verify that $CODE_SIGN_IDENTITY is set\nif [ -z \"${CODE_SIGN_IDENTITY}\" ] ; then\necho \"CODE_SIGN_IDENTITY needs to be set for framework code-signing\"\nexit 0\nfi\n\nif [ -z \"${CODE_SIGN_ENTITLEMENTS}\" ] ; then\necho \"CODE_SIGN_ENTITLEMENTS needs to be set for framework code-signing!\"\n\nif [ \"${CONFIGURATION}\" = \"Release\" ] ; then\nexit 1\nelse\n# Code-signing is optional for non-release builds.\nexit 0\nfi\nfi\n\nITEMS=\"\"\n\nFRAMEWORKS_DIR=\"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}\"\necho \"$FRAMEWORKS_DIR\"\nif [ -d \"$FRAMEWORKS_DIR\" ] ; then\nFRAMEWORKS=$(find \"${FRAMEWORKS_DIR}\" -depth -type d -name \"*.framework\" -or -name \"*.dylib\" -or -name \"*.bundle\" | sed -e \"s/\\(.*framework\\)/\\1\\/Versions\\/A\\//\")\nRESULT=$?\nif [[ $RESULT != 0 ]] ; then\nexit 1\nfi\n\nITEMS=\"${FRAMEWORKS}\"\nfi\n\nLOGINITEMS_DIR=\"${TARGET_BUILD_DIR}/${CONTENTS_FOLDER_PATH}/Library/LoginItems/\"\nif [ -d \"$LOGINITEMS_DIR\" ] ; then\nLOGINITEMS=$(find \"${LOGINITEMS_DIR}\" -depth -type d -name \"*.app\")\nRESULT=$?\nif [[ $RESULT != 0 ]] ; then\nexit 1\nfi\n\nITEMS=\"${ITEMS}\"$'\\n'\"${LOGINITEMS}\"\nfi\n\n# Prefer the expanded name, if available.\nCODE_SIGN_IDENTITY_FOR_ITEMS=\"${EXPANDED_CODE_SIGN_IDENTITY_NAME}\"\nif [ \"${CODE_SIGN_IDENTITY_FOR_ITEMS}\" = \"\" ] ; then\n# Fall back to old behavior.\nCODE_SIGN_IDENTITY_FOR_ITEMS=\"${CODE_SIGN_IDENTITY}\"\nfi\n\necho \"Identity:\"\necho \"${CODE_SIGN_IDENTITY_FOR_ITEMS}\"\n\necho \"Entitlements:\"\necho \"${CODE_SIGN_ENTITLEMENTS}\"\n\necho \"Found:\"\necho \"${ITEMS}\"\n\n# Change the Internal Field Separator (IFS) so that spaces in paths will not cause problems below.\nSAVED_IFS=$IFS\nIFS=$(echo -en \"\\n\\b\")\n\n# Loop through all items.\nfor ITEM in $ITEMS;\ndo\necho \"Signing '${ITEM}'\"\ncodesign --force --verbose --sign \"${CODE_SIGN_IDENTITY_FOR_ITEMS}\" --entitlements \"${CODE_SIGN_ENTITLEMENTS}\" \"${ITEM}\"\nRESULT=$?\nif [[ $RESULT != 0 ]] ; then\necho \"Failed to sign '${ITEM}'.\"\nIFS=$SAVED_IFS\nexit 1\nfi\ndone\n\n# Restore $IFS.\nIFS=$SAVED_IFS\n"; + }; E4B6FFFD0C3F9AB9008CF71C /* ShellScript */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -871,7 +808,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "rsync -aved ../../../libs/fmodex/lib/osx/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/\"; install_name_tool -change ./libfmodex.dylib @executable_path/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/$PRODUCT_NAME\";\nmkdir -p \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources/\"\nrsync -aved \"$ICON_FILE\" \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources/\"\nrsync -aved ../../../libs/glut/lib/osx/GLUT.framework \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Frameworks/\""; + shellScript = "mkdir -p \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources/\"\n# Copy default icon file into App/Resources\nrsync -aved \"$ICON_FILE\" \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources/\"\n# Copy bin/data into App/Resources\nrsync -avz --exclude='.DS_Store' \"${SRCROOT}/bin/data/\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/data/\"\n# Copy libfmod and change install directory for fmod to run\nrsync -aved ../../../libs/fmodex/lib/osx/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Frameworks/\";\ninstall_name_tool -change @executable_path/libfmodex.dylib @executable_path/../Frameworks/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/$PRODUCT_NAME\";\n# Copy GLUT framework (must remove for AppStore submissions)\nrsync -aved ../../../libs/glut/lib/osx/GLUT.framework \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Frameworks/\"\n"; }; /* End PBXShellScriptBuildPhase section */ @@ -880,96 +817,96 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 3933D5D819BB87BD000ACA55 /* ofxSlider.cpp in Sources */, - 0115A6B71DBF93BA00C51732 /* BaseSurface.cpp in Sources */, - 0115A6A81DBF93BA00C51732 /* ScaleWidget.cpp in Sources */, - 016630A31DC66DAB0081F28F /* SelVertexCmd.cpp in Sources */, - 016630911DC66DAB0081F28F /* MvLayerDnCmd.cpp in Sources */, - 3933D5DA19BB87BD000ACA55 /* ofxToggle.cpp in Sources */, - 0166308C1DC66DAB0081F28F /* CmdManager.cpp in Sources */, - 3933D5D319BB87BD000ACA55 /* ofxBaseGui.cpp in Sources */, - 0115A6B91DBF93BA00C51732 /* HexagonSurface.cpp in Sources */, - 3933D5D919BB87BD000ACA55 /* ofxSliderGroup.cpp in Sources */, - 0115A6BB1DBF93BA00C51732 /* SurfaceFactory.cpp in Sources */, - 016630921DC66DAB0081F28F /* MvLayerUpCmd.cpp in Sources */, - 0166309C1DC66DAB0081F28F /* SelNextTexCoordCmd.cpp in Sources */, - 0115A6A71DBF93BA00C51732 /* ProjectionEditorWidget.cpp in Sources */, - 0115A67F1DBF93BA00C51732 /* SourceSelectionMode.cpp in Sources */, - 3995C20A1C79069B00123352 /* Settings.cpp in Sources */, - 0115A6B61DBF93BA00C51732 /* VideoSource.cpp in Sources */, - 016630891DC66DAB0081F28F /* AddGridRowCmd.cpp in Sources */, - 0115A6AD1DBF93BA00C51732 /* TextureHighlightWidget.cpp in Sources */, - 016630A81DC66DAB0081F28F /* SetTexMapDrawModeCmd.cpp in Sources */, - 0115A6AF1DBF93BA00C51732 /* DirectoryWatcher.cpp in Sources */, - 016630961DC66DAB0081F28F /* RmGridColCmd.cpp in Sources */, - 0115A6AE1DBF93BA00C51732 /* Info.cpp in Sources */, - 0166308F1DC66DAB0081F28F /* DuplicateSurfaceCmd.cpp in Sources */, E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */, - 39264843192224F90008A7F5 /* tinyxmlparser.cpp in Sources */, - 016630971DC66DAB0081F28F /* RmGridRowCmd.cpp in Sources */, - 3933D5D419BB87BD000ACA55 /* ofxButton.cpp in Sources */, - 0115A6B51DBF93BA00C51732 /* OMXPlayerCache.cpp in Sources */, - 0166308E1DC66DAB0081F28F /* DeselectTexCoordCmd.cpp in Sources */, - 0115A67E1DBF93BA00C51732 /* ProjectionMappingMode.cpp in Sources */, - 0115A6B41DBF93BA00C51732 /* ImageSource.cpp in Sources */, - 0166309D1DC66DAB0081F28F /* SelNextVertexCmd.cpp in Sources */, - 016630AC1DC66DAB0081F28F /* TranslateCanvasCmd.cpp in Sources */, - 0166309F1DC66DAB0081F28F /* SelPrevTexCoordCmd.cpp in Sources */, - 016630A21DC66DAB0081F28F /* SelTexCoordCmd.cpp in Sources */, - 0115A6A91DBF93BA00C51732 /* SourcesEditorWidget.cpp in Sources */, - 016630981DC66DAB0081F28F /* RmSurfaceCmd.cpp in Sources */, - 016630A41DC66DAB0081F28F /* SetApplicationModeCmd.cpp in Sources */, - 016630901DC66DAB0081F28F /* MvAllTexCoordsCmd.cpp in Sources */, - 0115A67B1DBF93BA00C51732 /* Application.cpp in Sources */, - 39264841192224F90008A7F5 /* tinyxml.cpp in Sources */, - 0115A6B31DBF93BA00C51732 /* FboSource.cpp in Sources */, - 3933D5D619BB87BD000ACA55 /* ofxLabel.cpp in Sources */, - 0115A67D1DBF93BA00C51732 /* PresentationMode.cpp in Sources */, - 0166308B1DC66DAB0081F28F /* ClearSurfacesCmd.cpp in Sources */, - 399953691BD54FF600D5B1F1 /* CrossSource.cpp in Sources */, - 0115A6AA1DBF93BA00C51732 /* SurfaceHighlightWidget.cpp in Sources */, - 016630A61DC66DAB0081F28F /* SetPresetCmd.cpp in Sources */, - 0115A67C1DBF93BA00C51732 /* ApplicationBaseMode.cpp in Sources */, - 0166309B1DC66DAB0081F28F /* SelNextSurfaceCmd.cpp in Sources */, - 0115A6C01DBF93BA00C51732 /* CircleJoint.cpp in Sources */, - 0166309E1DC66DAB0081F28F /* SelPrevSurfaceCmd.cpp in Sources */, - 0115A6A51DBF93BA00C51732 /* Gui.cpp in Sources */, - 016630A11DC66DAB0081F28F /* SelSurfaceCmd.cpp in Sources */, - 0166308D1DC66DAB0081F28F /* DeselectSurfaceCmd.cpp in Sources */, - 0115A6B01DBF93BA00C51732 /* MediaServer.cpp in Sources */, - 0166308A1DC66DAB0081F28F /* AddSurfaceCmd.cpp in Sources */, - 0115A6AC1DBF93BA00C51732 /* TextureEditorWidget.cpp in Sources */, - 0115A6811DBF93BA00C51732 /* SettingsLoader.cpp in Sources */, - 016630A71DC66DAB0081F28F /* SetSourceCmd.cpp in Sources */, - 0115A6BA1DBF93BA00C51732 /* QuadSurface.cpp in Sources */, E4B69E210A3A1BDC003C02F2 /* ofApp.cpp in Sources */, - 016630A01DC66DAB0081F28F /* SelPrevVertexCmd.cpp in Sources */, - 016630A51DC66DAB0081F28F /* SetNextSourceCmd.cpp in Sources */, - 0115A6B21DBF93BA00C51732 /* BaseSource.cpp in Sources */, - 016630941DC66DAB0081F28F /* MvSurfaceVertCmd.cpp in Sources */, - 3933D5D719BB87BD000ACA55 /* ofxPanel.cpp in Sources */, - 0115A6BC1DBF93BA00C51732 /* SurfaceManager.cpp in Sources */, - 016630AA1DC66DAB0081F28F /* ToggleAnimatedSourceCmd.cpp in Sources */, - 0166309A1DC66DAB0081F28F /* ScaleSurfaceFromToCmd.cpp in Sources */, - 0115A6801DBF93BA00C51732 /* TextureMappingMode.cpp in Sources */, - 016630931DC66DAB0081F28F /* MvSelectionCmd.cpp in Sources */, - 0115A6B11DBF93BA00C51732 /* ofxPiMapper.cpp in Sources */, - 0115A6BD1DBF93BA00C51732 /* SurfaceStack.cpp in Sources */, - 0115A6A61DBF93BA00C51732 /* LayerPanelWidget.cpp in Sources */, - 016630951DC66DAB0081F28F /* MvTexCoordCmd.cpp in Sources */, - 0115A6BE1DBF93BA00C51732 /* TriangleSurface.cpp in Sources */, - 0115A6C21DBF93BA00C51732 /* HomographyHelper.cpp in Sources */, - 0115A6B81DBF93BA00C51732 /* GridWarpSurface.cpp in Sources */, - 39264842192224F90008A7F5 /* tinyxmlerror.cpp in Sources */, - 3926483B192224DA0008A7F5 /* ofxXmlSettings.cpp in Sources */, - 016630881DC66DAB0081F28F /* AddGridColCmd.cpp in Sources */, - 397EFC821A09047C0009286E /* CustomSource.cpp in Sources */, - 016630AB1DC66DAB0081F28F /* TogglePerspectiveCmd.cpp in Sources */, - 016630991DC66DAB0081F28F /* SaveTexCoordPosCmd.cpp in Sources */, - 016630A91DC66DAB0081F28F /* StartDragSurfaceCmd.cpp in Sources */, - 3933D5D519BB87BD000ACA55 /* ofxGuiGroup.cpp in Sources */, - 0115A6C11DBF93BA00C51732 /* RadioList.cpp in Sources */, - 0115A6BF1DBF93BA00C51732 /* BaseJoint.cpp in Sources */, + 2AB23B34A18E47DB0D742387 /* CrossSource.cpp in Sources */, + A3E23EF00463364A9FE3860C /* CustomSource.cpp in Sources */, + 4280FE72330EE80A9929046F /* Settings.cpp in Sources */, + 856AA354D08AB4B323081444 /* ofxBaseGui.cpp in Sources */, + 5CBB2AB3A60F65431D7B555D /* ofxButton.cpp in Sources */, + B266578FC55D23BFEBC042E7 /* ofxGuiGroup.cpp in Sources */, + 483908258D00B98B4BE69F07 /* ofxLabel.cpp in Sources */, + F285EB3169F1566CA3D93C20 /* ofxPanel.cpp in Sources */, + 837220E80EB56CD44AD27F2A /* ofxSlider.cpp in Sources */, + B56FE57CC35806596D38118C /* ofxSliderGroup.cpp in Sources */, + 1CD33E884D9E3358252E82A1 /* ofxToggle.cpp in Sources */, + 401140F3B7FA4412935BB121 /* Application.cpp in Sources */, + C4D6DA9B890E612343FD059F /* ApplicationBaseMode.cpp in Sources */, + 4A53BFBA57F4AD16FB9D2D24 /* PresentationMode.cpp in Sources */, + 42AB7CD7DFB89209AB951942 /* ProjectionMappingMode.cpp in Sources */, + AA98F23DF9897F2241EF3968 /* SourceSelectionMode.cpp in Sources */, + 21B18AC78EBFC1FD28C614D5 /* TextureMappingMode.cpp in Sources */, + 2E9E05C9FFCE15172A701335 /* SettingsLoader.cpp in Sources */, + 580602DA874A9CF9E850DEEE /* AddGridColCmd.cpp in Sources */, + D88BA6D139757ED4E1669796 /* AddGridRowCmd.cpp in Sources */, + B1EEE5A7EC1876072BF8F7FE /* AddSurfaceCmd.cpp in Sources */, + F9A6B58165791682416A1685 /* ClearSurfacesCmd.cpp in Sources */, + 93760FE8B10EBD4081251E10 /* CmdManager.cpp in Sources */, + C8D7FA44AA0565654A681157 /* DeselectSurfaceCmd.cpp in Sources */, + 973F560586CB3735581265E7 /* DeselectTexCoordCmd.cpp in Sources */, + D61A46C1800537BA43C7884F /* DuplicateSurfaceCmd.cpp in Sources */, + 8CA6C92E3D4F91750BC469FF /* MvAllTexCoordsCmd.cpp in Sources */, + A75658250711ADE2C05FC781 /* MvLayerDnCmd.cpp in Sources */, + C34B66987F4DA38C21AF325B /* MvLayerUpCmd.cpp in Sources */, + 6056983B92E88B475FF04299 /* MvSelectionCmd.cpp in Sources */, + 845DC872C79A75F7B5FABC02 /* MvSurfaceVertCmd.cpp in Sources */, + 25F5CD753AF35B53464E56AE /* MvTexCoordCmd.cpp in Sources */, + 82643E358DF270B9EC939699 /* RmGridColCmd.cpp in Sources */, + 5826FF4F63DC430E90AFDA5E /* RmGridRowCmd.cpp in Sources */, + B01F972DDDA5F21EF4C8B99D /* RmSurfaceCmd.cpp in Sources */, + 36A98A331EAE1D0A19998A59 /* SaveTexCoordPosCmd.cpp in Sources */, + E327ACE85A208BAFACD1B7C7 /* ScaleSurfaceFromToCmd.cpp in Sources */, + 67FF225B68ECC1942C833BFE /* SelNextSurfaceCmd.cpp in Sources */, + 60C8089351E49CF344577098 /* SelNextTexCoordCmd.cpp in Sources */, + E6D82F5A7B22E9FB46DEEF15 /* SelNextVertexCmd.cpp in Sources */, + 7DAB7D546F81A93336034BF7 /* SelPrevSurfaceCmd.cpp in Sources */, + 800748EF057A284D9DA82F60 /* SelPrevTexCoordCmd.cpp in Sources */, + B9654D0EF43BCA228B330ED7 /* SelPrevVertexCmd.cpp in Sources */, + E5D631612E039E04B1736E76 /* SelSurfaceCmd.cpp in Sources */, + 14566DCD28D35A80428886C4 /* SelTexCoordCmd.cpp in Sources */, + 7002E598586957E5F20E69A7 /* SelVertexCmd.cpp in Sources */, + 90DE06EA59944C1BEA539719 /* SetApplicationModeCmd.cpp in Sources */, + 4BF21A290FA6FE26B87B8971 /* SetNextSourceCmd.cpp in Sources */, + 84172554824F6959BA431E33 /* SetPresetCmd.cpp in Sources */, + 6500BFD07CA93EFD8A162B25 /* SetSourceCmd.cpp in Sources */, + A6EE8D8F3CA590EF6D7FAFA6 /* SetTexMapDrawModeCmd.cpp in Sources */, + 06765053D7BFBBEB43E77B23 /* StartDragSurfaceCmd.cpp in Sources */, + 6438655B2AE4DDA2743241EC /* ToggleAnimatedSourceCmd.cpp in Sources */, + 23963D6D8F0085D5DD2DF394 /* TogglePerspectiveCmd.cpp in Sources */, + 28F5415281F8D09BBC098355 /* TranslateCanvasCmd.cpp in Sources */, + EA700B09626C8413C92EF860 /* Gui.cpp in Sources */, + 8E8F94DC506856A4E92FBA8A /* LayerPanelWidget.cpp in Sources */, + 274AEF0299D77E27C0C5B205 /* ProjectionEditorWidget.cpp in Sources */, + F06AE014F869282B7F7CE84C /* ScaleWidget.cpp in Sources */, + FB03F0A6D7866DFC55F519EB /* SourcesEditorWidget.cpp in Sources */, + 8A3D6CE0A4338871766366B6 /* SurfaceHighlightWidget.cpp in Sources */, + 4D2D4455339FC8C955091C88 /* TextureEditorWidget.cpp in Sources */, + 9CAA3B0DFD59840998C832DA /* TextureHighlightWidget.cpp in Sources */, + F3EACD31EE5E141FF66C48BD /* Info.cpp in Sources */, + DB8FC60C7512DB810C92625B /* DirectoryWatcher.cpp in Sources */, + 92527EF632E7EC0E96BC329C /* MediaServer.cpp in Sources */, + 3B90107DB9BF4857E357FCA8 /* ofxPiMapper.cpp in Sources */, + 892923A127FC7C57469FD078 /* BaseSource.cpp in Sources */, + 7702233BBFB6E8D9E8B93CBC /* FboSource.cpp in Sources */, + 95CB0A22296B3DB402835DCF /* ImageSource.cpp in Sources */, + 588E33B9B0BD6F5A2E4DF31D /* OMXPlayerCache.cpp in Sources */, + A0C1CAB7B9C59DDDC960EB62 /* VideoSource.cpp in Sources */, + 9F968AD3A115328F4BFE5D71 /* BaseSurface.cpp in Sources */, + 63DB0907B2ACDF9E6F2D9925 /* GridWarpSurface.cpp in Sources */, + 9C194C9F4ACD67CD61FBD30D /* HexagonSurface.cpp in Sources */, + 2A9AFA74E0EF07E58AC11382 /* QuadSurface.cpp in Sources */, + B27F2ADC894A4C463E892AFE /* SurfaceFactory.cpp in Sources */, + 85649EB44DE8F0A3BF8430F9 /* SurfaceManager.cpp in Sources */, + C3A616FB3A463C17E327F395 /* SurfaceStack.cpp in Sources */, + C0EB2D2E383BA9DE417ADB38 /* TriangleSurface.cpp in Sources */, + 868F230C6074263277ED9B07 /* BaseJoint.cpp in Sources */, + 42BCE929D520D8872171239A /* CircleJoint.cpp in Sources */, + 1F4453EA1589AD79F4B34493 /* RadioList.cpp in Sources */, + 83CACB24937919003F2F9B63 /* HomographyHelper.cpp in Sources */, + 63B57AC5BF4EF088491E0317 /* ofxXmlSettings.cpp in Sources */, + 933A2227713C720CEFF80FD9 /* tinyxml.cpp in Sources */, + 9D44DC88EF9E7991B4A09951 /* tinyxmlerror.cpp in Sources */, + 5A4349E9754D6FA14C0F2A3A /* tinyxmlparser.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -988,11 +925,10 @@ isa = XCBuildConfiguration; baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */; buildSettings = { - COMBINE_HIDPI_IMAGES = YES; + ARCHS = "$(ARCHS_STANDARD)"; CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/"; COPY_PHASE_STRIP = NO; DEAD_CODE_STRIPPING = YES; - ENABLE_TESTABILITY = YES; GCC_AUTO_VECTORIZATION = YES; GCC_ENABLE_SSE3_EXTENSIONS = YES; GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES; @@ -1008,22 +944,29 @@ HEADER_SEARCH_PATHS = ( "$(OF_CORE_HEADERS)", src, + ../../../addons/ofxGui/src, + ../../../addons/ofxPiMapper/src, + ../../../addons/ofxPiMapper/src/Application, + ../../../addons/ofxPiMapper/src/Application/Modes, + ../../../addons/ofxPiMapper/src/Commands, + ../../../addons/ofxPiMapper/src/Gui, + ../../../addons/ofxPiMapper/src/Gui/Widgets, + ../../../addons/ofxPiMapper/src/Info, + ../../../addons/ofxPiMapper/src/MediaServer, + ../../../addons/ofxPiMapper/src/Sources, + ../../../addons/ofxPiMapper/src/Surfaces, + ../../../addons/ofxPiMapper/src/UserInterface, + ../../../addons/ofxPiMapper/src/Utils, + ../../../addons/ofxXmlSettings/libs, + ../../../addons/ofxXmlSettings/src, ); - INFOPLIST_FILE = "openFrameworks-Info.plist"; - MACH_O_TYPE = mh_execute; - MACOSX_DEPLOYMENT_TARGET = 10.7; + MACOSX_DEPLOYMENT_TARGET = 10.8; ONLY_ACTIVE_ARCH = YES; OTHER_CPLUSPLUSFLAGS = ( "-D__MACOSX_CORE__", - "-lpthread", "-mtune=native", ); - OTHER_LDFLAGS = ( - "$(OF_CORE_LIBS)", - "$(OF_CORE_FRAMEWORKS)", - ); - PRIVATE_HEADERS_FOLDER_PATH = "$(PRODUCT_NAME:c99extidentifier)"; - SDKROOT = macosx; + SDKROOT = macosx10.11; }; name = Debug; }; @@ -1031,7 +974,7 @@ isa = XCBuildConfiguration; baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */; buildSettings = { - COMBINE_HIDPI_IMAGES = YES; + ARCHS = "$(ARCHS_STANDARD)"; CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/"; COPY_PHASE_STRIP = YES; DEAD_CODE_STRIPPING = YES; @@ -1051,26 +994,34 @@ HEADER_SEARCH_PATHS = ( "$(OF_CORE_HEADERS)", src, + ../../../addons/ofxGui/src, + ../../../addons/ofxPiMapper/src, + ../../../addons/ofxPiMapper/src/Application, + ../../../addons/ofxPiMapper/src/Application/Modes, + ../../../addons/ofxPiMapper/src/Commands, + ../../../addons/ofxPiMapper/src/Gui, + ../../../addons/ofxPiMapper/src/Gui/Widgets, + ../../../addons/ofxPiMapper/src/Info, + ../../../addons/ofxPiMapper/src/MediaServer, + ../../../addons/ofxPiMapper/src/Sources, + ../../../addons/ofxPiMapper/src/Surfaces, + ../../../addons/ofxPiMapper/src/UserInterface, + ../../../addons/ofxPiMapper/src/Utils, + ../../../addons/ofxXmlSettings/libs, + ../../../addons/ofxXmlSettings/src, ); - INFOPLIST_FILE = "openFrameworks-Info.plist"; - MACH_O_TYPE = mh_execute; - MACOSX_DEPLOYMENT_TARGET = 10.7; + MACOSX_DEPLOYMENT_TARGET = 10.8; OTHER_CPLUSPLUSFLAGS = ( "-D__MACOSX_CORE__", - "-lpthread", "-mtune=native", ); - OTHER_LDFLAGS = ( - "$(OF_CORE_LIBS)", - "$(OF_CORE_FRAMEWORKS)", - ); - PRIVATE_HEADERS_FOLDER_PATH = "$(PRODUCT_NAME:c99extidentifier)"; - SDKROOT = macosx; + SDKROOT = macosx10.11; }; name = Release; }; E4B69B600A3A1757003C02F2 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */; buildSettings = { COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; @@ -1085,89 +1036,35 @@ HEADER_SEARCH_PATHS = ( "$(OF_CORE_HEADERS)", src, + ../../../addons/ofxGui/src, + ../../../addons/ofxPiMapper/src, + ../../../addons/ofxPiMapper/src/Application, + ../../../addons/ofxPiMapper/src/Application/Modes, + ../../../addons/ofxPiMapper/src/Commands, + ../../../addons/ofxPiMapper/src/Gui, + ../../../addons/ofxPiMapper/src/Gui/Widgets, + ../../../addons/ofxPiMapper/src/Info, + ../../../addons/ofxPiMapper/src/MediaServer, + ../../../addons/ofxPiMapper/src/Sources, + ../../../addons/ofxPiMapper/src/Surfaces, + ../../../addons/ofxPiMapper/src/UserInterface, + ../../../addons/ofxPiMapper/src/Utils, + ../../../addons/ofxXmlSettings/libs, + ../../../addons/ofxXmlSettings/src, ); ICON = "$(ICON_NAME_DEBUG)"; ICON_FILE = "$(ICON_FILE_PATH)$(ICON)"; INFOPLIST_FILE = "openFrameworks-Info.plist"; - INSTALL_PATH = "$(HOME)/Applications"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_17)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_18)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_19)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_20)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_21)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_22)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_23)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_24)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_25)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_26)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_27)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_28)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_29)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_30)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_31)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_32)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_33)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_34)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_35)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_36)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_37)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_38)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_39)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_40)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_41)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_42)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_43)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_44)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_45)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_46)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_47)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_48)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_49)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_50)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_51)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_52)", - ); - MACOSX_DEPLOYMENT_TARGET = 10.11; - OTHER_LDFLAGS = ( - "$(OF_CORE_LIBS)", - "$(OF_CORE_FRAMEWORKS)", - ); - PRODUCT_BUNDLE_IDENTIFIER = cc.openFrameworks.ofapp; - PRODUCT_NAME = exampleDebug; - SDKROOT = macosx; + INSTALL_PATH = /Applications; + LIBRARY_SEARCH_PATHS = "$(inherited)"; + PRODUCT_NAME = "$(TARGET_NAME)Debug"; WRAPPER_EXTENSION = app; }; name = Debug; }; E4B69B610A3A1757003C02F2 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */; buildSettings = { COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = YES; @@ -1181,84 +1078,30 @@ HEADER_SEARCH_PATHS = ( "$(OF_CORE_HEADERS)", src, + ../../../addons/ofxGui/src, + ../../../addons/ofxPiMapper/src, + ../../../addons/ofxPiMapper/src/Application, + ../../../addons/ofxPiMapper/src/Application/Modes, + ../../../addons/ofxPiMapper/src/Commands, + ../../../addons/ofxPiMapper/src/Gui, + ../../../addons/ofxPiMapper/src/Gui/Widgets, + ../../../addons/ofxPiMapper/src/Info, + ../../../addons/ofxPiMapper/src/MediaServer, + ../../../addons/ofxPiMapper/src/Sources, + ../../../addons/ofxPiMapper/src/Surfaces, + ../../../addons/ofxPiMapper/src/UserInterface, + ../../../addons/ofxPiMapper/src/Utils, + ../../../addons/ofxXmlSettings/libs, + ../../../addons/ofxXmlSettings/src, ); ICON = "$(ICON_NAME_RELEASE)"; ICON_FILE = "$(ICON_FILE_PATH)$(ICON)"; INFOPLIST_FILE = "openFrameworks-Info.plist"; - INSTALL_PATH = "$(HOME)/Applications"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_1)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_17)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_18)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_19)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_20)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_21)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_22)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_23)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_24)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_25)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_26)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_27)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_28)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_29)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_30)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_31)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_32)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_33)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_34)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_35)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_36)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_37)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_38)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_39)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_40)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_41)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_42)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_43)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_44)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_45)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_46)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_47)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_48)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_49)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_50)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_51)", - ); - MACOSX_DEPLOYMENT_TARGET = 10.11; - OTHER_LDFLAGS = ( - "$(OF_CORE_LIBS)", - "$(OF_CORE_FRAMEWORKS)", - ); - PRODUCT_BUNDLE_IDENTIFIER = cc.openFrameworks.ofapp; - PRODUCT_NAME = example; - SDKROOT = macosx; + INSTALL_PATH = /Applications; + LIBRARY_SEARCH_PATHS = "$(inherited)"; + PRODUCT_NAME = "$(TARGET_NAME)"; WRAPPER_EXTENSION = app; + baseConfigurationReference = E4EB6923138AFD0F00A09F29; }; name = Release; }; diff --git a/example/example.xcodeproj/xcshareddata/xcschemes/example Debug.xcscheme b/example/example.xcodeproj/xcshareddata/xcschemes/example Debug.xcscheme index b040463..a637354 100644 --- a/example/example.xcodeproj/xcshareddata/xcschemes/example Debug.xcscheme +++ b/example/example.xcodeproj/xcshareddata/xcschemes/example Debug.xcscheme @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <Scheme - LastUpgradeVersion = "0720" + LastUpgradeVersion = "0600" version = "1.3"> <BuildAction parallelizeBuildables = "YES" @@ -23,10 +23,10 @@ </BuildActionEntries> </BuildAction> <TestAction - buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - shouldUseLaunchSchemeArgsEnv = "YES"> + shouldUseLaunchSchemeArgsEnv = "YES" + buildConfiguration = "Debug"> <Testables> </Testables> <MacroExpansion> @@ -38,21 +38,17 @@ ReferencedContainer = "container:example.xcodeproj"> </BuildableReference> </MacroExpansion> - <AdditionalOptions> - </AdditionalOptions> </TestAction> <LaunchAction - buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" launchStyle = "0" useCustomWorkingDirectory = "NO" + buildConfiguration = "Debug" ignoresPersistentStateOnLaunch = "NO" debugDocumentVersioning = "YES" - debugServiceExtension = "internal" allowLocationSimulation = "YES"> - <BuildableProductRunnable - runnableDebuggingMode = "0"> + <BuildableProductRunnable> <BuildableReference BuildableIdentifier = "primary" BlueprintIdentifier = "E4B69B5A0A3A1756003C02F2" @@ -65,13 +61,12 @@ </AdditionalOptions> </LaunchAction> <ProfileAction - buildConfiguration = "Debug" shouldUseLaunchSchemeArgsEnv = "YES" savedToolIdentifier = "" useCustomWorkingDirectory = "NO" + buildConfiguration = "Debug" debugDocumentVersioning = "YES"> - <BuildableProductRunnable - runnableDebuggingMode = "0"> + <BuildableProductRunnable> <BuildableReference BuildableIdentifier = "primary" BlueprintIdentifier = "E4B69B5A0A3A1756003C02F2" diff --git a/example/example.xcodeproj/xcshareddata/xcschemes/example Release.xcscheme b/example/example.xcodeproj/xcshareddata/xcschemes/example Release.xcscheme index 1584e8a..1b9ed60 100644 --- a/example/example.xcodeproj/xcshareddata/xcschemes/example Release.xcscheme +++ b/example/example.xcodeproj/xcshareddata/xcschemes/example Release.xcscheme @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <Scheme - LastUpgradeVersion = "0720" + LastUpgradeVersion = "0600" version = "1.3"> <BuildAction parallelizeBuildables = "YES" @@ -23,10 +23,10 @@ </BuildActionEntries> </BuildAction> <TestAction - buildConfiguration = "Release" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - shouldUseLaunchSchemeArgsEnv = "YES"> + shouldUseLaunchSchemeArgsEnv = "YES" + buildConfiguration = "Release"> <Testables> </Testables> <MacroExpansion> @@ -38,21 +38,17 @@ ReferencedContainer = "container:example.xcodeproj"> </BuildableReference> </MacroExpansion> - <AdditionalOptions> - </AdditionalOptions> </TestAction> <LaunchAction - buildConfiguration = "Release" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" launchStyle = "0" useCustomWorkingDirectory = "NO" + buildConfiguration = "Release" ignoresPersistentStateOnLaunch = "NO" debugDocumentVersioning = "YES" - debugServiceExtension = "internal" allowLocationSimulation = "YES"> - <BuildableProductRunnable - runnableDebuggingMode = "0"> + <BuildableProductRunnable> <BuildableReference BuildableIdentifier = "primary" BlueprintIdentifier = "E4B69B5A0A3A1756003C02F2" @@ -65,13 +61,12 @@ </AdditionalOptions> </LaunchAction> <ProfileAction - buildConfiguration = "Release" shouldUseLaunchSchemeArgsEnv = "YES" savedToolIdentifier = "" useCustomWorkingDirectory = "NO" + buildConfiguration = "Release" debugDocumentVersioning = "YES"> - <BuildableProductRunnable - runnableDebuggingMode = "0"> + <BuildableProductRunnable> <BuildableReference BuildableIdentifier = "primary" BlueprintIdentifier = "E4B69B5A0A3A1756003C02F2" diff --git a/example/openFrameworks-Info.plist b/example/openFrameworks-Info.plist index 60abaf8..8d64d2b 100644 --- a/example/openFrameworks-Info.plist +++ b/example/openFrameworks-Info.plist @@ -6,8 +6,6 @@ <string>English</string> <key>CFBundleExecutable</key> <string>${EXECUTABLE_NAME}</string> - <key>CFBundleIconFile</key> - <string>${ICON}</string> <key>CFBundleIdentifier</key> <string>cc.openFrameworks.ofapp</string> <key>CFBundleInfoDictionaryVersion</key> @@ -18,5 +16,7 @@ <string>????</string> <key>CFBundleVersion</key> <string>1.0</string> + <key>CFBundleIconFile</key> + <string>${ICON}</string> </dict> </plist> diff --git a/example/src/magSlideShowSource.cpp b/example/src/magSlideShowSource.cpp index 5cc8a64..7c1d625 100644 --- a/example/src/magSlideShowSource.cpp +++ b/example/src/magSlideShowSource.cpp @@ -192,6 +192,7 @@ bool magSlideShowSource::createFromFolderContents(std::string path) bool magSlideShowSource::loadSlideShow(std::string slideShowXmlPath) { + return false; } From 8c283d96f47a1fead46b6d8dd452a915246b9ffc Mon Sep 17 00:00:00 2001 From: c-mendoza <c@matadata.com> Date: Sat, 2 Dec 2017 17:58:31 -0500 Subject: [PATCH 22/48] Slide show XML loading --- example/bin/data/ofxpimapper.xml | 10 ++++ example/src/magSlide.h | 1 - example/src/magSlideShowSource.cpp | 76 ++++++++++++++++++++++++++++-- example/src/magSlideShowSource.h | 29 ++++++------ example/src/ofApp.cpp | 21 +++++---- 5 files changed, 108 insertions(+), 29 deletions(-) diff --git a/example/bin/data/ofxpimapper.xml b/example/bin/data/ofxpimapper.xml index 0f1d1ff..84bd5b4 100644 --- a/example/bin/data/ofxpimapper.xml +++ b/example/bin/data/ofxpimapper.xml @@ -78,4 +78,14 @@ <perspectiveWarping>1</perspectiveWarping> </properties> </surface> + <magSlideShow> + <Width>1920</Width> + <Height>1080</Height> + <SlideDuration>0.5</SlideDuration> <!-- Optional default duration for each slide--> + <Loop> + <Type>PING-PONG</Type> <!-- NONE | NORMAL | PING-PONG --> + </Loop> + <!-- NoResize | Native | Fit | FitProportionally | FillProportionally --> + <ResizeOption>FitProportionally</ResizeOption> + </magSlideShow> </surfaces> diff --git a/example/src/magSlide.h b/example/src/magSlide.h index c1889cb..f216203 100644 --- a/example/src/magSlide.h +++ b/example/src/magSlide.h @@ -50,7 +50,6 @@ public: /** * Resizes the largest dimension to the source's max, * the other dimension is resized proportionally. - * This is the default behavior. */ FitProportionally, diff --git a/example/src/magSlideShowSource.cpp b/example/src/magSlideShowSource.cpp index 7c1d625..02f335e 100644 --- a/example/src/magSlideShowSource.cpp +++ b/example/src/magSlideShowSource.cpp @@ -6,8 +6,8 @@ #include "magSlideShowSource.h" -#include "magSlide.h" #include "magSlideTransition.h" +#include "SettingsLoader.h" magSlideShowSource::magSlideShowSource() { @@ -189,11 +189,79 @@ bool magSlideShowSource::createFromFolderContents(std::string path) } } - -bool magSlideShowSource::loadSlideShow(std::string slideShowXmlPath) +bool magSlideShowSource::loadFromXml() { + auto *loader = ofx::piMapper::SettingsLoader::instance(); + auto xml = ofxXmlSettings(); + Settings settings; + + if (!xml.load(loader->getLastLoadedFilename())) + { + ofLogError("magSlideShowSource") << "Could not load settings file " << loader->getLastLoadedFilename(); + return false; + } + + xml.pushTag("surfaces"); + if (!xml.pushTag("magSlideShow")) + { + ofLogError("magSlideShowSource") << "Slide show settings not found in " << loader->getLastLoadedFilename(); + return false; + } + + settings.width = xml.getValue("Width", settings.width); + settings.height = xml.getValue("Height", settings.height); + + // Default slide duration: + settings.slideDuration = xml.getValue("SlideDuration", settings.slideDuration); + + // Default loop: + if (xml.pushTag("Loop")) + { + auto type = xml.getValue("Type", ""); + if (type == "NONE") + { + settings.loopType = LoopType::NONE; + } + else if (type == "NORMAL") + { + settings.loopType = LoopType::NORMAL; + } + else if (type == "PING-PONG") + { + settings.loopType = LoopType::PING_PONG; + } + + settings.numLoops = xml.getValue("Count", settings.numLoops); + xml.popTag(); + } + + // Default resize options: + auto ropts = xml.getValue("ResizeOption", ""); + if (ropts == "NoResize") + { + settings.resizeOption = magSlide::NoResize; + } + else if (ropts == "Native") + { + settings.resizeOption = magSlide::Native; + } + else if (ropts == "Fit") + { + settings.resizeOption = magSlide::Fit; + } + else if (ropts == "FitProportionally") + { + settings.resizeOption = magSlide::FitProportionally; + } + else if (ropts == "FillProportionally") + { + settings.resizeOption = magSlide::FillProportionally; + } + + initialize(settings); + + return true; - return false; } void magSlideShowSource::addSlide(std::shared_ptr<magSlide> slide) diff --git a/example/src/magSlideShowSource.h b/example/src/magSlideShowSource.h index bfa6377..5284b23 100644 --- a/example/src/magSlideShowSource.h +++ b/example/src/magSlideShowSource.h @@ -35,7 +35,8 @@ public: * otherwise. Check the console for the specific error. */ bool createFromFolderContents(std::string path); - bool loadSlideShow(std::string slideShowXmlPath); + + bool loadFromXml(); void addSlide(std::shared_ptr<magSlide> slide); void play(); void pause(); @@ -43,7 +44,7 @@ public: void playPrevSlide(); void playSlide(int slideIndex); - enum LoopType + enum LoopType : int { NONE = 0, NORMAL, @@ -53,14 +54,14 @@ public: struct Settings { /** - * The pixel width of the FBO. This value must be provided. + * The pixel width of the FBO. */ - float width = 0; + float width = 1280; /** - * The pixel height of the FBO. This value must be provided. + * The pixel height of the FBO. */ - float height = 0; + float height = 720; /** * An optional default slide duration, in seconds. * If a slide specifies a duration this value is ignored. @@ -76,7 +77,7 @@ public: * An optional default transition duration. If no transition * is specified, this value is ignored; */ - float transitionDuration = 1; + float transitionDuration = 0; /** * If specified, all applicable files in the folder will @@ -85,7 +86,7 @@ public: * * If path is relative, the root will likely be the Data folder. */ - std::string slidesFolderPath; + std::string slidesFolderPath = "sources/images"; /** * If specified, @@ -105,12 +106,12 @@ public: */ int numLoops = 0; - /** - * The resizing option for the slide show. The default is None. If a slide - * already has a resizing option applied, that option will be respected and - * this resizeOption will not be used. - */ - magSlide::ResizeOptions resizeOption = magSlide::ResizeOptions::NoResize; + /** + * The resizing option for the slide show. The default is FitProportionally. + * If a slide already has a resizing option applied, that option will be + * respected and this resizeOption will not be used. + */ + magSlide::ResizeOptions resizeOption = magSlide::ResizeOptions::FitProportionally; }; //////////////////////////////////////////// diff --git a/example/src/ofApp.cpp b/example/src/ofApp.cpp index 9c75f7b..e691269 100644 --- a/example/src/ofApp.cpp +++ b/example/src/ofApp.cpp @@ -19,17 +19,10 @@ void ofApp::setup(){ slideShowSource = new magSlideShowSource(); // Create the settings struct for the slide show. - magSlideShowSource::Settings settings; - settings.width = 1280; - settings.height = 720; - settings.slidesFolderPath = "sources/images"; - settings.transitionDuration = 0; - settings.slideDuration = 0.5; - settings.loopType = magSlideShowSource::LoopType::NORMAL; - settings.resizeOption = magSlide::ResizeOptions::FitProportionally; // Initialize the slide show with our settings. - slideShowSource->initialize(settings); + // If it fails, initialize from default settings + // Register our sources: piMapper.registerFboSource(crossSource); @@ -37,9 +30,17 @@ void ofApp::setup(){ piMapper.registerFboSource(slideShowSource); piMapper.setup(); + // Slide show needs to be loaded after piMapper is set up: + if (!slideShowSource->loadFromXml()) + { + ofLogNotice("setup") << "loading magSlideShowSource XML settings failed. Initializing from default values"; + magSlideShowSource::Settings sets; + slideShowSource->initialize(sets); + } + // The info layer is hidden by default, press <i> to toggle // piMapper.showInfo(); - + ofSetFullscreen(Settings::instance()->getFullscreen()); ofSetEscapeQuitsApp(false); ofSetLogLevel(OF_LOG_VERBOSE); From bc9dd8e06e55465691b6c30a6fcc72cb65e3d6fe Mon Sep 17 00:00:00 2001 From: magdesign <info@magdesign.ch> Date: Mon, 4 Dec 2017 14:19:05 +0100 Subject: [PATCH 23/48] Update README.md --- README.md | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index f9b3695..ab9c5d4 100644 --- a/README.md +++ b/README.md @@ -3,16 +3,20 @@ This should be selectable as an additional FBO source in PiMapper, looping all images in the /media/internal/images/* folder Would be cool to adjust the speed with a simple flag, simple opacity transition welcome, but not necessary. Refresh state, so it checks if there are new images added during playback and play them as well. make all images fullscreen. (if its not possible to handle various sizes as one, i will make an imagemagick script to convert all to 1920x1080) -### 2. Play all videos from a folder -This should be a an additional FBO source in PiMapper, looping all videos in /media/internal/video/* -### 3. Circular shapes for mapping (there are only square and tringle shapes so far) +### 2. Circular shapes for mapping (there are only square and tringle shapes so far) Circualr mapping shape (if possible with movable center distorsion) -### 4. Grid Warp (meshing of square shapes) +### 3. Bezier handles +Adding bezier handles to masks for better aligment: https://github.com/TsubokuLab/ofxBezierWarpManager +### 4. Play all videos from a folder +This should be a an additional FBO source in PiMapper, looping all videos in /media/internal/video/* +### 5. Grid Warp (meshing of square shapes) check out this http://www.hv-a.com/lpmt/sssm.pdf on page: 10 https://forum.openframeworks.cc/t/grid-mesh-warping/12883 -### 5. SoftEdge +### 6. SoftEdge Image overlay to making adges transparent, could be achieved with overlaing a png with a black gradient. +Finalize the mapping converter: https://github.com/magdesign/mapping-converter + This will be an opensource project and freely available for everyone. Targeting OF_0.9.x on RaspberryPi. Each function will be rewarded to the coder from a pot sponsered by pocketvj.com. From a9f9fcab64744ab4ecbb49616b195df00732c2a5 Mon Sep 17 00:00:00 2001 From: magdesign <info@magdesign.ch> Date: Mon, 4 Dec 2017 14:19:32 +0100 Subject: [PATCH 24/48] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ab9c5d4..2b3f6e2 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ This should be selectable as an additional FBO source in PiMapper, looping all i Would be cool to adjust the speed with a simple flag, simple opacity transition welcome, but not necessary. Refresh state, so it checks if there are new images added during playback and play them as well. make all images fullscreen. (if its not possible to handle various sizes as one, i will make an imagemagick script to convert all to 1920x1080) ### 2. Circular shapes for mapping (there are only square and tringle shapes so far) -Circualr mapping shape (if possible with movable center distorsion) +Circular mapping shape (if possible with movable center distorsion) ### 3. Bezier handles Adding bezier handles to masks for better aligment: https://github.com/TsubokuLab/ofxBezierWarpManager ### 4. Play all videos from a folder From 98fcb469b5a3caad28eddf4c46c5fca7382bdafc Mon Sep 17 00:00:00 2001 From: c-mendoza <c@matadata.com> Date: Mon, 4 Dec 2017 10:19:44 -0500 Subject: [PATCH 25/48] Slide Transition Factory --- example/src/magSlideShowSource.cpp | 25 ++++++-- example/src/magSlideTransition.cpp | 25 ++------ example/src/magSlideTransition.h | 38 +++++++----- example/src/magSlideTransitionFactory.cpp | 76 +++++++++++++++++++++++ example/src/magSlideTransitionFactory.h | 41 ++++++++++++ 5 files changed, 164 insertions(+), 41 deletions(-) create mode 100644 example/src/magSlideTransitionFactory.cpp create mode 100644 example/src/magSlideTransitionFactory.h diff --git a/example/src/magSlideShowSource.cpp b/example/src/magSlideShowSource.cpp index 02f335e..20d3bbc 100644 --- a/example/src/magSlideShowSource.cpp +++ b/example/src/magSlideShowSource.cpp @@ -8,6 +8,7 @@ #include "magSlideShowSource.h" #include "magSlideTransition.h" #include "SettingsLoader.h" +#include "magSlideTransitionFactory.h" magSlideShowSource::magSlideShowSource() { @@ -72,6 +73,10 @@ void magSlideShowSource::update() for (auto &slide : activeSlides) { + if (slide->activeTransition) + { + slide->activeTransition->update(deltaTime); + } slide->update(deltaTime); } @@ -99,15 +104,23 @@ void magSlideShowSource::draw() { ofBackground(0, 0); ofPushMatrix(); + ofPushStyle(); ofTranslate(getWidth()/2.0f, getHeight()/2.0f); + ofEnableAlphaBlending(); ofSetRectMode(OF_RECTMODE_CENTER); + ofFill(); + ofSetColor(255, 255); for (auto &slide : activeSlides) { - ofSetColor(255); - ofFill(); + if (slide->activeTransition) + { + slide->activeTransition->draw(); + } slide->draw(); } + ofPopStyle(); ofPopMatrix(); + ofDisableAlphaBlending(); } bool magSlideShowSource::createFromFolderContents(std::string path) @@ -258,6 +271,8 @@ bool magSlideShowSource::loadFromXml() settings.resizeOption = magSlide::FillProportionally; } + settings.transitionName = "FadeIn"; + settings.transitionDuration = 1.0; initialize(settings); return true; @@ -324,11 +339,13 @@ void magSlideShowSource::addSlide(std::shared_ptr<magSlide> slide) if (!settings.transitionName.empty()) { static ofParameterGroup bogusParamGroup; // This is temporary so that things compile - slide->buildIn = magSlideTransition::createTransition(settings.transitionName, + + auto tf = magSlideTransitionFactory::instance(); + slide->buildIn = tf->createTransition(settings.transitionName, slide, bogusParamGroup, slide->buildInDuration); - slide->buildOut = magSlideTransition::createTransition(settings.transitionName, + slide->buildOut = tf->createTransition(settings.transitionName, slide, bogusParamGroup, slide->buildOutDuration); diff --git a/example/src/magSlideTransition.cpp b/example/src/magSlideTransition.cpp index 54ff0c8..efa8bba 100644 --- a/example/src/magSlideTransition.cpp +++ b/example/src/magSlideTransition.cpp @@ -6,17 +6,6 @@ #include "magSlideTransition.h" -std::shared_ptr<magSlideTransition> -magSlideTransition::createTransition(std::string transitionName, std::shared_ptr<magSlide> slide, - ofParameterGroup &settings, u_int64_t duration) -{ - auto transition = magSlideTransition::instantiateTransition(transitionName); - transition->slide = slide; - transition->duration = duration; - transition->loadSettings(settings); - return transition; -} - void magSlideTransition::start() { runningTime = 0; @@ -47,14 +36,8 @@ float magSlideTransition::getNormalizedTime() return (double)runningTime / (double)duration; } -std::shared_ptr<magSlideTransition> magSlideTransition::instantiateTransition(string transitionName) +void magFadeInTransition::draw() { - return std::make_shared<magVoidTransition>(); -} - -//magDissolveTransition::magDissolveTransition() -//{} -void magVoidTransition::loadSettings(ofParameterGroup &settings) -{ - ofLogNotice("magVoidTransition") << "Void Transition is loading nothing"; -} + ofLogVerbose() << "fade in draw"; + ofSetColor(255, getNormalizedTime() * 255); +} \ No newline at end of file diff --git a/example/src/magSlideTransition.h b/example/src/magSlideTransition.h index 2c2a15d..fa7960d 100644 --- a/example/src/magSlideTransition.h +++ b/example/src/magSlideTransition.h @@ -7,25 +7,24 @@ #ifndef MAGSLIDETRANSITION_H #define MAGSLIDETRANSITION_H - #include "magSlide.h" +class magSlideTransitionFactory; + class magSlideTransition { public: - static std::shared_ptr<magSlideTransition> createTransition(string transitionName, - shared_ptr<magSlide> ptr, - ofParameterGroup &group, - u_int64_t i); + magSlideTransition() {} /** * Begins the transition. This must be called in order for the * transition to actually do anything! */ void start(); - virtual void loadSettings(ofParameterGroup &settings) = 0; - virtual void setup(){} + virtual void loadSettings(ofParameterGroup &settings){} virtual void update(u_int64_t timeDelta); - virtual void draw(){} + virtual void draw(){ + ofLogVerbose() << "transiwiton draw " << getNormalizedTime(); + } /** * Current running time in milliseconds. @@ -40,28 +39,35 @@ public: */ float getNormalizedTime(); + string const &getName() const + { + return name; + } + ofEvent<ofEventArgs> transitionCompleteEvent; protected: - magSlideTransition(){} + std::string name = "Void"; std::shared_ptr<magSlide> slide; u_int64_t runningTime; u_int64_t duration; u_int64_t endTime; bool isActive = false; - static shared_ptr<magSlideTransition> instantiateTransition(string transitionName); -}; -class magVoidTransition : public magSlideTransition -{ -public: - void loadSettings(ofParameterGroup &settings) override; + friend class magSlideTransitionFactory; }; -class magDissolveTransition : public magSlideTransition +class magFadeInTransition : public magSlideTransition { public: + magFadeInTransition() + { + name = "FadeIn"; + } + void draw() override ; }; + + #endif diff --git a/example/src/magSlideTransitionFactory.cpp b/example/src/magSlideTransitionFactory.cpp new file mode 100644 index 0000000..c3e82ea --- /dev/null +++ b/example/src/magSlideTransitionFactory.cpp @@ -0,0 +1,76 @@ +// +// Created by Cristobal Mendoza on 12/3/17. +// + +#include "magSlideTransitionFactory.h" + +/* + * + * + * +class Base {}; + +class DerivedA : public Base {}; +class DerivedB : public Base {}; +class DerivedC : public Base {}; + +Base* create(const std::string& type) +{ + static std::map<std::string, std::function<Base*()>> type_creator_map = + { + {"DerivedA", [](){return new DerivedA();}}, + {"DerivedB", [](){return new DerivedB();}}, + {"DerivedC", [](){return new DerivedC();}} + }; + + auto it = type_creator_map.find(type); + if(it != type_creator_map.end()) + { + return it->second(); + } + + return nullptr; +} + */ + +magSlideTransitionFactory* magSlideTransitionFactory::_instance = 0; + +magSlideTransitionFactory::magSlideTransitionFactory() +{ + magSlideTransition voidTransition; + magFadeInTransition fadeIn; + + registerTransition<magSlideTransition>(voidTransition); + registerTransition<magFadeInTransition>(fadeIn); +} + +magSlideTransitionFactory* magSlideTransitionFactory::instance() +{ + if (_instance == 0) + { + _instance = new magSlideTransitionFactory(); + } + + return _instance; +} + +std::shared_ptr<magSlideTransition> +magSlideTransitionFactory::createTransition(std::string transitionName, std::shared_ptr<magSlide> slide, + ofParameterGroup &settings, u_int64_t duration) +{ + std::shared_ptr<magSlideTransition> transition; + + if (transitionsMap.count(transitionName) > 0) + { + transition = transitionsMap[transitionName](); + } + else + { + transition = transitionsMap[transition->getName()](); + } + + transition->slide = slide; + transition->duration = duration; + transition->loadSettings(settings); + return transition; +} diff --git a/example/src/magSlideTransitionFactory.h b/example/src/magSlideTransitionFactory.h new file mode 100644 index 0000000..cb998b0 --- /dev/null +++ b/example/src/magSlideTransitionFactory.h @@ -0,0 +1,41 @@ +// +// Created by Cristobal Mendoza on 12/3/17. +// + +#ifndef MAGSLIDETRANSITIONFACTORY_H +#define MAGSLIDETRANSITIONFACTORY_H + +#include "magSlide.h" +#include "magSlideTransition.h" + +/** + * Factory class to register and instantiate transitions. + */ +class magSlideTransitionFactory +{ +public: + static magSlideTransitionFactory* instance(); + + std::shared_ptr<magSlideTransition> createTransition(string transitionName, + std::shared_ptr<magSlide> slide, + ofParameterGroup &group, + u_int64_t duration); + template<typename T> + void registerTransition(T transition) + { + if (transitionsMap.count(transition.getName()) == 0) + { + transitionsMap[transition.getName()] = [](){ + return std::make_shared<T>(); + }; + } + } + +protected: + std::unordered_map<std::string, std::function<std::shared_ptr<magSlideTransition>()>> transitionsMap; +private: + static magSlideTransitionFactory* _instance; + magSlideTransitionFactory(); +}; + +#endif //MAGSLIDETRANSITIONFACTORY_H From 2c8567573d985f1acf50f098ea9104a67585ae9c Mon Sep 17 00:00:00 2001 From: c-mendoza <c@matadata.com> Date: Mon, 4 Dec 2017 10:19:57 -0500 Subject: [PATCH 26/48] Adding opacity property to magSlide --- example/src/magSlide.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/example/src/magSlide.h b/example/src/magSlide.h index f216203..1320fe0 100644 --- a/example/src/magSlide.h +++ b/example/src/magSlide.h @@ -77,6 +77,16 @@ public: float getHeight() { return height; } + float getOpacity() const + { + return opacity; + } + + void setOpacity(float opacity) + { + magSlide::opacity = opacity; + } + /** * Change the display size of a slide. This will implicitly * set resizeOptions to ResizeOption.NoResize. @@ -135,6 +145,7 @@ protected: float width; float height; ofPoint position; + float opacity = 1.0; ResizeOptions resizeOption = NoResize; SlideState slideState = Off; bool isComplete = false; From f2809b64a18a9c9645d64e57d57a46a019c92b5d Mon Sep 17 00:00:00 2001 From: c-mendoza <c@matadata.com> Date: Mon, 4 Dec 2017 12:29:59 -0500 Subject: [PATCH 27/48] Refactoring of transitions. No buildIn, just buildOut There is still work to be done here, this is just an initial commit for this feature. --- example/src/magSlide.cpp | 45 ++++++++++++++--------- example/src/magSlide.h | 10 ++--- example/src/magSlideShowSource.cpp | 19 ++++++---- example/src/magSlideTransition.cpp | 14 ++++++- example/src/magSlideTransition.h | 21 +++++++++++ example/src/magSlideTransitionFactory.cpp | 4 +- 6 files changed, 79 insertions(+), 34 deletions(-) diff --git a/example/src/magSlide.cpp b/example/src/magSlide.cpp index 7e38228..95e94c9 100644 --- a/example/src/magSlide.cpp +++ b/example/src/magSlide.cpp @@ -25,13 +25,13 @@ void magSlide::update(u_int64_t deltaTime) switch (slideState) { - case SlideState::BuildIn: - if (runningTime >= buildInDuration) - { - setState(Normal); - activeTransition = nullptr; - } - break; +// case SlideState::BuildIn: +// if (runningTime >= buildInDuration) +// { +// setState(Normal); +// activeTransition = nullptr; +// } +// break; case SlideState::Normal: if (runningTime >= buildOutStartTime) @@ -95,15 +95,15 @@ void magSlide::setState(SlideState state) void magSlide::setTransitionDuration(u_int64_t tDuration) { - buildInDuration = buildOutDuration = tDuration; + buildOutDuration = tDuration; } const std::string magSlide::getSlideStateName() { switch (slideState) { - case SlideState::BuildIn: - return "BuildIn"; +// case SlideState::BuildIn: +// return "BuildIn"; case SlideState::BuildOut: return "BuildOut"; case Normal: @@ -121,17 +121,24 @@ void magSlide::start(u_int64_t startTime) { this->startTime = startTime; runningTime = 0; - endTime = duration + buildInDuration + buildOutDuration; + endTime = duration + buildOutDuration; buildOutStartTime = endTime - buildOutDuration; - slideState = magSlide::SlideState::BuildIn; - if (buildIn != nullptr) - { - activeTransition = buildIn; - activeTransition->start(); - } + slideState = magSlide::SlideState::Normal; +// if (buildIn != nullptr) +// { +// activeTransition = buildIn; +// activeTransition->start(); +// } + position.set(0, 0); + opacity = 255; isComplete = false; } +void magSlide::draw() +{ + ofSetColor(255, opacity); +} + //////////////////////////////////////////////////////// #pragma mark MAG_IMAGE_SLIDE @@ -152,6 +159,7 @@ void magImageSlide::setup(ofImage &image) void magImageSlide::draw() { + magSlide::draw(); image.draw(position, width, height); } @@ -191,11 +199,12 @@ void magVideoSlide::update() void magVideoSlide::draw() { + magSlide::draw(); videoPlayer.draw(position.x, position.y, width, height); } void magVideoSlide::useVideoForDuration() { - duration = u_int64_t((videoPlayer.getDuration()*1000)) - buildInDuration - buildOutDuration; + duration = u_int64_t((videoPlayer.getDuration()*1000)) - buildOutDuration; } diff --git a/example/src/magSlide.h b/example/src/magSlide.h index 1320fe0..c0aafb5 100644 --- a/example/src/magSlide.h +++ b/example/src/magSlide.h @@ -15,7 +15,7 @@ public: magSlide(std::string type); // ~magSlide(); virtual void update(u_int64_t deltaTime); - virtual void draw() = 0; + virtual void draw(); /** * Sets the slide up for playback. This method must be @@ -62,7 +62,7 @@ public: enum SlideState : short { Off = 0, - BuildIn, +// BuildIn, Normal, BuildOut, Complete @@ -145,12 +145,12 @@ protected: float width; float height; ofPoint position; - float opacity = 1.0; + float opacity = 255; ResizeOptions resizeOption = NoResize; SlideState slideState = Off; bool isComplete = false; - std::shared_ptr<magSlideTransition> buildIn = nullptr; +// std::shared_ptr<magSlideTransition> buildIn = nullptr; std::shared_ptr<magSlideTransition> buildOut = nullptr; std::shared_ptr<magSlideTransition> activeTransition = nullptr; /** @@ -173,7 +173,7 @@ protected: /** * The duration of the build in transition or effect, in milliseconds. */ - u_int64_t buildInDuration; +// u_int64_t buildInDuration; /** * The duration of the build out transition or effect, in milliseconds. diff --git a/example/src/magSlideShowSource.cpp b/example/src/magSlideShowSource.cpp index 20d3bbc..6d1bd52 100644 --- a/example/src/magSlideShowSource.cpp +++ b/example/src/magSlideShowSource.cpp @@ -271,8 +271,8 @@ bool magSlideShowSource::loadFromXml() settings.resizeOption = magSlide::FillProportionally; } - settings.transitionName = "FadeIn"; - settings.transitionDuration = 1.0; + settings.transitionName = "Dissolve"; + settings.transitionDuration = 0.5; initialize(settings); return true; @@ -282,7 +282,7 @@ bool magSlideShowSource::loadFromXml() void magSlideShowSource::addSlide(std::shared_ptr<magSlide> slide) { // ofLogVerbose("addSlide") << slide->getId(); - slides.push_back(slide); + slides.insert(slides.begin(), slide); auto rOption = slide->getResizeOption(); // If the slide does not have a resize option assign @@ -341,10 +341,10 @@ void magSlideShowSource::addSlide(std::shared_ptr<magSlide> slide) static ofParameterGroup bogusParamGroup; // This is temporary so that things compile auto tf = magSlideTransitionFactory::instance(); - slide->buildIn = tf->createTransition(settings.transitionName, - slide, - bogusParamGroup, - slide->buildInDuration); +// slide->buildIn = tf->createTransition(settings.transitionName, +// slide, +// bogusParamGroup, +// slide->buildInDuration); slide->buildOut = tf->createTransition(settings.transitionName, slide, bogusParamGroup, @@ -475,7 +475,10 @@ void magSlideShowSource::enqueueSlide(std::shared_ptr<magSlide> slide, u_int64_t { // ofLogVerbose() << "Enqueuing slide " << currentSlideIndex << " slide id: " << slide->getId(); slide->start(startTime); - activeSlides.push_back(slide); + if (activeSlides.size() > 1) + { + } + activeSlides.insert(activeSlides.begin(), slide); } void magSlideShowSource::slideStateChanged(const void *sender, ofEventArgs &args) diff --git a/example/src/magSlideTransition.cpp b/example/src/magSlideTransition.cpp index efa8bba..1a2d992 100644 --- a/example/src/magSlideTransition.cpp +++ b/example/src/magSlideTransition.cpp @@ -40,4 +40,16 @@ void magFadeInTransition::draw() { ofLogVerbose() << "fade in draw"; ofSetColor(255, getNormalizedTime() * 255); -} \ No newline at end of file +} + +void magFadeOutTransition::draw() +{ + magSlideTransition::draw(); + +} + +void magDissolveTransition::draw() +{ + slide->setOpacity(255 - (getNormalizedTime() * 255)); + ofLogVerbose("opacity") << slide->getId() << " " << slide->getOpacity(); +} diff --git a/example/src/magSlideTransition.h b/example/src/magSlideTransition.h index fa7960d..896b267 100644 --- a/example/src/magSlideTransition.h +++ b/example/src/magSlideTransition.h @@ -49,6 +49,7 @@ public: protected: std::string name = "Void"; std::shared_ptr<magSlide> slide; + std::shared_ptr<magSlide> nextSlide; u_int64_t runningTime; u_int64_t duration; u_int64_t endTime; @@ -68,6 +69,26 @@ public: void draw() override ; }; +class magFadeOutTransition : public magSlideTransition +{ +public: + magFadeOutTransition() + { + name = "FadeOut"; + } + + void draw() override ; +}; +class magDissolveTransition : public magSlideTransition +{ +public: + magDissolveTransition() + { + name = "Dissolve"; + } + + void draw() override; +}; #endif diff --git a/example/src/magSlideTransitionFactory.cpp b/example/src/magSlideTransitionFactory.cpp index c3e82ea..1c03a57 100644 --- a/example/src/magSlideTransitionFactory.cpp +++ b/example/src/magSlideTransitionFactory.cpp @@ -38,10 +38,10 @@ magSlideTransitionFactory* magSlideTransitionFactory::_instance = 0; magSlideTransitionFactory::magSlideTransitionFactory() { magSlideTransition voidTransition; - magFadeInTransition fadeIn; + magDissolveTransition dissolve; registerTransition<magSlideTransition>(voidTransition); - registerTransition<magFadeInTransition>(fadeIn); + registerTransition<magDissolveTransition>(dissolve); } magSlideTransitionFactory* magSlideTransitionFactory::instance() From 5e90127386277a0ce986cd0728e220190828b4e2 Mon Sep 17 00:00:00 2001 From: c-mendoza <c@matadata.com> Date: Mon, 4 Dec 2017 16:30:32 -0500 Subject: [PATCH 28/48] Transitions working. Added Dissolve transition --- example/bin/data/ofxpimapper.xml | 3 +- example/src/magSlide.cpp | 11 +++---- example/src/magSlide.h | 30 ++++++++++++++++-- example/src/magSlideShowSource.cpp | 20 +++++------- example/src/magSlideTransition.cpp | 31 +++++++++++-------- example/src/magSlideTransition.h | 49 +++++++++++++++--------------- 6 files changed, 85 insertions(+), 59 deletions(-) diff --git a/example/bin/data/ofxpimapper.xml b/example/bin/data/ofxpimapper.xml index 84bd5b4..05362c2 100644 --- a/example/bin/data/ofxpimapper.xml +++ b/example/bin/data/ofxpimapper.xml @@ -81,10 +81,11 @@ <magSlideShow> <Width>1920</Width> <Height>1080</Height> - <SlideDuration>0.5</SlideDuration> <!-- Optional default duration for each slide--> + <SlideDuration>1</SlideDuration> <!-- Optional default duration for each slide--> <Loop> <Type>PING-PONG</Type> <!-- NONE | NORMAL | PING-PONG --> </Loop> + <Transition></Transition> <!-- NoResize | Native | Fit | FitProportionally | FillProportionally --> <ResizeOption>FitProportionally</ResizeOption> </magSlideShow> diff --git a/example/src/magSlide.cpp b/example/src/magSlide.cpp index 95e94c9..1e50653 100644 --- a/example/src/magSlide.cpp +++ b/example/src/magSlide.cpp @@ -21,6 +21,7 @@ magSlide::magSlide(std::string type) void magSlide::update(u_int64_t deltaTime) { + transition->update(deltaTime); runningTime += deltaTime; switch (slideState) @@ -37,11 +38,6 @@ void magSlide::update(u_int64_t deltaTime) if (runningTime >= buildOutStartTime) { setState(BuildOut); - if (buildOut != nullptr) - { - activeTransition = buildOut; - activeTransition->start(); - } } break; @@ -49,7 +45,6 @@ void magSlide::update(u_int64_t deltaTime) if (runningTime >= endTime) { setState(Complete); - activeTransition = nullptr; } break; } @@ -137,6 +132,10 @@ void magSlide::start(u_int64_t startTime) void magSlide::draw() { ofSetColor(255, opacity); + if(transition->isActive()) + { + transition->draw(); + } } diff --git a/example/src/magSlide.h b/example/src/magSlide.h index c0aafb5..74e1b2c 100644 --- a/example/src/magSlide.h +++ b/example/src/magSlide.h @@ -115,6 +115,7 @@ public: * @param tDuration in milliseconds. */ void setTransitionDuration(u_int64_t tDuration); + ResizeOptions getResizeOption() const; void setResizeOption(ResizeOptions resizeOption); @@ -145,14 +146,39 @@ protected: float width; float height; ofPoint position; +public: + const ofPoint &getPosition() const + { + return position; + } + + void setPosition(const ofPoint &position) + { + magSlide::position = position; + } + + void setPosition(float x, float y) + { + position.set(x, y); + } + + +protected: float opacity = 255; ResizeOptions resizeOption = NoResize; SlideState slideState = Off; bool isComplete = false; // std::shared_ptr<magSlideTransition> buildIn = nullptr; - std::shared_ptr<magSlideTransition> buildOut = nullptr; - std::shared_ptr<magSlideTransition> activeTransition = nullptr; +// std::shared_ptr<magSlideTransition> buildOut = nullptr; + std::shared_ptr<magSlideTransition> transition = nullptr; +public: + const shared_ptr<magSlideTransition> &getTransition() const + { + return transition; + } + +protected: /** * The duration of the slide in millis, not counting builds */ diff --git a/example/src/magSlideShowSource.cpp b/example/src/magSlideShowSource.cpp index 6d1bd52..1856f6a 100644 --- a/example/src/magSlideShowSource.cpp +++ b/example/src/magSlideShowSource.cpp @@ -73,10 +73,6 @@ void magSlideShowSource::update() for (auto &slide : activeSlides) { - if (slide->activeTransition) - { - slide->activeTransition->update(deltaTime); - } slide->update(deltaTime); } @@ -112,10 +108,6 @@ void magSlideShowSource::draw() ofSetColor(255, 255); for (auto &slide : activeSlides) { - if (slide->activeTransition) - { - slide->activeTransition->draw(); - } slide->draw(); } ofPopStyle(); @@ -276,7 +268,6 @@ bool magSlideShowSource::loadFromXml() initialize(settings); return true; - } void magSlideShowSource::addSlide(std::shared_ptr<magSlide> slide) @@ -345,7 +336,7 @@ void magSlideShowSource::addSlide(std::shared_ptr<magSlide> slide) // slide, // bogusParamGroup, // slide->buildInDuration); - slide->buildOut = tf->createTransition(settings.transitionName, + slide->transition = tf->createTransition(settings.transitionName, slide, bogusParamGroup, slide->buildOutDuration); @@ -475,9 +466,6 @@ void magSlideShowSource::enqueueSlide(std::shared_ptr<magSlide> slide, u_int64_t { // ofLogVerbose() << "Enqueuing slide " << currentSlideIndex << " slide id: " << slide->getId(); slide->start(startTime); - if (activeSlides.size() > 1) - { - } activeSlides.insert(activeSlides.begin(), slide); } @@ -489,7 +477,13 @@ void magSlideShowSource::slideStateChanged(const void *sender, ofEventArgs &args // << slide->getSlideStateName(); if (slide->getSlideState() == magSlide::SlideState::BuildOut) { +// slide->transition->start(); +// ofLogVerbose() << "BuildOut " << slide->getId(); playNextSlide(); + if (activeSlides.size() > 1) + { + activeSlides[1]->transition->start(activeSlides[0]); + } } } diff --git a/example/src/magSlideTransition.cpp b/example/src/magSlideTransition.cpp index 1a2d992..6c4c9ac 100644 --- a/example/src/magSlideTransition.cpp +++ b/example/src/magSlideTransition.cpp @@ -6,22 +6,26 @@ #include "magSlideTransition.h" -void magSlideTransition::start() +void magSlideTransition::start(std::shared_ptr<magSlide> nextSlide) { runningTime = 0; - isActive = true; + active = true; + this->nextSlide = nextSlide; } void magSlideTransition::update(u_int64_t timeDelta) { - if (!isActive) return; + if (!active) return; runningTime += timeDelta; if (runningTime >= duration) { ofEventArgs arghh; // arghhhh... + nextSlide->setOpacity(255); + nextSlide->setPosition(0, 0); + end(); transitionCompleteEvent.notify(this, arghh); - isActive = false; + active = false; } } @@ -36,20 +40,21 @@ float magSlideTransition::getNormalizedTime() return (double)runningTime / (double)duration; } -void magFadeInTransition::draw() + +void magDissolveTransition::draw() { - ofLogVerbose() << "fade in draw"; - ofSetColor(255, getNormalizedTime() * 255); + slide->setOpacity(255 - (getNormalizedTime() * 255)); + nextSlide->setOpacity(getNormalizedTime()*255); } -void magFadeOutTransition::draw() +void magDissolveTransition::start(std::shared_ptr<magSlide> nextSlide) { - magSlideTransition::draw(); - + magSlideTransition::start(nextSlide); + nextSlide->setOpacity(0); } -void magDissolveTransition::draw() +void magDissolveTransition::end() { - slide->setOpacity(255 - (getNormalizedTime() * 255)); - ofLogVerbose("opacity") << slide->getId() << " " << slide->getOpacity(); + nextSlide->setOpacity(255); + slide->setOpacity(0); } diff --git a/example/src/magSlideTransition.h b/example/src/magSlideTransition.h index 896b267..13ba424 100644 --- a/example/src/magSlideTransition.h +++ b/example/src/magSlideTransition.h @@ -19,11 +19,12 @@ public: * Begins the transition. This must be called in order for the * transition to actually do anything! */ - void start(); + virtual void start(std::shared_ptr<magSlide> nextSlide); + virtual void end(){} virtual void loadSettings(ofParameterGroup &settings){} virtual void update(u_int64_t timeDelta); virtual void draw(){ - ofLogVerbose() << "transiwiton draw " << getNormalizedTime(); + ofLogNotice("magSlideTransition") << "transition draw - this should be overriden " << getNormalizedTime(); } /** @@ -44,40 +45,37 @@ public: return name; } + const shared_ptr<magSlide> &getNextSlide() const + { + return nextSlide; + } + + void setNextSlide(shared_ptr<magSlide> nextSlide) + { + magSlideTransition::nextSlide = nextSlide; + } + + bool isActive() const + { + return active; + } + ofEvent<ofEventArgs> transitionCompleteEvent; protected: std::string name = "Void"; std::shared_ptr<magSlide> slide; std::shared_ptr<magSlide> nextSlide; + u_int64_t runningTime; u_int64_t duration; u_int64_t endTime; - bool isActive = false; - - friend class magSlideTransitionFactory; -}; + bool active = false; -class magFadeInTransition : public magSlideTransition -{ -public: - magFadeInTransition() - { - name = "FadeIn"; - } - void draw() override ; -}; - -class magFadeOutTransition : public magSlideTransition -{ -public: - magFadeOutTransition() - { - name = "FadeOut"; - } +protected: - void draw() override ; + friend class magSlideTransitionFactory; }; class magDissolveTransition : public magSlideTransition @@ -88,7 +86,10 @@ public: name = "Dissolve"; } + void start(std::shared_ptr<magSlide> nextSlide) override; + void draw() override; + void end() override; }; #endif From 1659f69b04b124a9eb7c16b23ef3fe79b168b506 Mon Sep 17 00:00:00 2001 From: c-mendoza <c@matadata.com> Date: Mon, 4 Dec 2017 18:00:35 -0500 Subject: [PATCH 29/48] magSlideTransition documentation updates --- example/src/magSlideTransition.h | 52 ++++++++++++++++++++++++++------ 1 file changed, 43 insertions(+), 9 deletions(-) diff --git a/example/src/magSlideTransition.h b/example/src/magSlideTransition.h index 13ba424..ecb491b 100644 --- a/example/src/magSlideTransition.h +++ b/example/src/magSlideTransition.h @@ -14,15 +14,51 @@ class magSlideTransitionFactory; class magSlideTransition { public: - magSlideTransition() {} /** - * Begins the transition. This must be called in order for the - * transition to actually do anything! + * Subclassing notes: Make sure to provide a value for name in your + * magSlideTransition subclass. + */ + magSlideTransition() { name = "Void"; } + /** + * Begins the transition. This needs to be called in order for the + * transition to do anything. + * @param nextSlide The subsequent slide in the slide show needs to be + * passed here. + * + * You can override this call to set any initial conditions to the transition, + * but make sure to call this method in your override. */ virtual void start(std::shared_ptr<magSlide> nextSlide); + + /** + * Called automatically when the transition is complete. Useful to set + * end states for the parameters of the slide and nextSlide. Default implementation + * does nothing. + */ virtual void end(){} + + /** + * NOTE: The transition settings system is not yet implemented. + * Called when the transition is created. Loads settings for magSlideTransition + * subclasses. The default implementation does nothing. + * @param settings ofParameterGroup with settings for your custom magSlideTransition + * subclass. + */ virtual void loadSettings(ofParameterGroup &settings){} + + /** + * Updates the transition. + * @param timeDelta The elapsed time (in ms.) between the last call to update() and + * this one (i.e. the frame time). + * + * If you need to override update, make sure to call this implementation + * in your subclass. + */ virtual void update(u_int64_t timeDelta); + + /** + * Draws the transition. Default implementation does nothing. + */ virtual void draw(){ ofLogNotice("magSlideTransition") << "transition draw - this should be overriden " << getNormalizedTime(); } @@ -50,20 +86,18 @@ public: return nextSlide; } - void setNextSlide(shared_ptr<magSlide> nextSlide) - { - magSlideTransition::nextSlide = nextSlide; - } - bool isActive() const { return active; } + /** + * Sender is a raw pointer to this magSlideTransition + */ ofEvent<ofEventArgs> transitionCompleteEvent; protected: - std::string name = "Void"; + std::string name; std::shared_ptr<magSlide> slide; std::shared_ptr<magSlide> nextSlide; From 2f9dd70d4378242883865504c95c387f057fd9f7 Mon Sep 17 00:00:00 2001 From: c-mendoza <c@matadata.com> Date: Mon, 4 Dec 2017 20:16:27 -0500 Subject: [PATCH 30/48] Moving magSlideShow to ofxPiMapper/Sources --- {example/src => src/Sources}/magSlide.cpp | 0 {example/src => src/Sources}/magSlide.h | 0 {example/src => src/Sources}/magSlideShowSource.cpp | 0 {example/src => src/Sources}/magSlideShowSource.h | 0 {example/src => src/Sources}/magSlideTransition.cpp | 0 {example/src => src/Sources}/magSlideTransition.h | 0 {example/src => src/Sources}/magSlideTransitionFactory.cpp | 0 {example/src => src/Sources}/magSlideTransitionFactory.h | 0 8 files changed, 0 insertions(+), 0 deletions(-) rename {example/src => src/Sources}/magSlide.cpp (100%) rename {example/src => src/Sources}/magSlide.h (100%) rename {example/src => src/Sources}/magSlideShowSource.cpp (100%) rename {example/src => src/Sources}/magSlideShowSource.h (100%) rename {example/src => src/Sources}/magSlideTransition.cpp (100%) rename {example/src => src/Sources}/magSlideTransition.h (100%) rename {example/src => src/Sources}/magSlideTransitionFactory.cpp (100%) rename {example/src => src/Sources}/magSlideTransitionFactory.h (100%) diff --git a/example/src/magSlide.cpp b/src/Sources/magSlide.cpp similarity index 100% rename from example/src/magSlide.cpp rename to src/Sources/magSlide.cpp diff --git a/example/src/magSlide.h b/src/Sources/magSlide.h similarity index 100% rename from example/src/magSlide.h rename to src/Sources/magSlide.h diff --git a/example/src/magSlideShowSource.cpp b/src/Sources/magSlideShowSource.cpp similarity index 100% rename from example/src/magSlideShowSource.cpp rename to src/Sources/magSlideShowSource.cpp diff --git a/example/src/magSlideShowSource.h b/src/Sources/magSlideShowSource.h similarity index 100% rename from example/src/magSlideShowSource.h rename to src/Sources/magSlideShowSource.h diff --git a/example/src/magSlideTransition.cpp b/src/Sources/magSlideTransition.cpp similarity index 100% rename from example/src/magSlideTransition.cpp rename to src/Sources/magSlideTransition.cpp diff --git a/example/src/magSlideTransition.h b/src/Sources/magSlideTransition.h similarity index 100% rename from example/src/magSlideTransition.h rename to src/Sources/magSlideTransition.h diff --git a/example/src/magSlideTransitionFactory.cpp b/src/Sources/magSlideTransitionFactory.cpp similarity index 100% rename from example/src/magSlideTransitionFactory.cpp rename to src/Sources/magSlideTransitionFactory.cpp diff --git a/example/src/magSlideTransitionFactory.h b/src/Sources/magSlideTransitionFactory.h similarity index 100% rename from example/src/magSlideTransitionFactory.h rename to src/Sources/magSlideTransitionFactory.h From 7948ebd4352c12d0d2e21aa8ffee6b6751d723ff Mon Sep 17 00:00:00 2001 From: c-mendoza <c@matadata.com> Date: Mon, 4 Dec 2017 20:16:56 -0500 Subject: [PATCH 31/48] Updating example with slide show source --- example/bin/data/ofxpimapper.xml | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/example/bin/data/ofxpimapper.xml b/example/bin/data/ofxpimapper.xml index 05362c2..b9b1861 100644 --- a/example/bin/data/ofxpimapper.xml +++ b/example/bin/data/ofxpimapper.xml @@ -36,20 +36,20 @@ <surface type="1"> <vertices> <vertex> - <x>542.498229980</x> - <y>298.375427246</y> + <x>305.332824707</x> + <y>158.923416138</y> </vertex> <vertex> - <x>865.982421875</x> - <y>286.925292969</y> + <x>823.889770508</x> + <y>135.275909424</y> </vertex> <vertex> - <x>956.157958984</x> - <y>659.075439453</y> + <x>883.853393555</x> + <y>670.724243164</y> </vertex> <vertex> - <x>498.842285156</x> - <y>590.370300293</y> + <x>241.146575928</x> + <y>656.366699219</y> </vertex> </vertices> <texCoords> @@ -78,15 +78,4 @@ <perspectiveWarping>1</perspectiveWarping> </properties> </surface> - <magSlideShow> - <Width>1920</Width> - <Height>1080</Height> - <SlideDuration>1</SlideDuration> <!-- Optional default duration for each slide--> - <Loop> - <Type>PING-PONG</Type> <!-- NONE | NORMAL | PING-PONG --> - </Loop> - <Transition></Transition> - <!-- NoResize | Native | Fit | FitProportionally | FillProportionally --> - <ResizeOption>FitProportionally</ResizeOption> - </magSlideShow> </surfaces> From 4a03b564c21a0e4d1797e8e9b7c0e7cc81bd5cab Mon Sep 17 00:00:00 2001 From: c-mendoza <c@matadata.com> Date: Tue, 5 Dec 2017 11:59:02 -0500 Subject: [PATCH 32/48] Adding the right example xml file (oops!) --- example/bin/data/ofxpimapper.xml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/example/bin/data/ofxpimapper.xml b/example/bin/data/ofxpimapper.xml index b9b1861..5d1937e 100644 --- a/example/bin/data/ofxpimapper.xml +++ b/example/bin/data/ofxpimapper.xml @@ -73,6 +73,17 @@ <source> <source-type>fbo</source-type> <source-name>Slide Show Source</source-name> + <magSlideShow> + <Width>1920</Width> + <Height>1080</Height> + <SlideDuration>1</SlideDuration> <!-- Optional default duration for each slide--> + <Loop> + <Type>PING-PONG</Type> <!-- NONE | NORMAL | PING-PONG --> + </Loop> + <Transition></Transition> + <!-- NoResize | Native | Fit | FitProportionally | FillProportionally --> + <ResizeOption>FitProportionally</ResizeOption> + </magSlideShow> </source> <properties> <perspectiveWarping>1</perspectiveWarping> From d81292101ee2012e930acd5399ec357bc32ef8d8 Mon Sep 17 00:00:00 2001 From: c-mendoza <c@matadata.com> Date: Tue, 5 Dec 2017 16:48:16 -0500 Subject: [PATCH 33/48] Fix example XML file --- example/bin/data/ofxpimapper.xml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/example/bin/data/ofxpimapper.xml b/example/bin/data/ofxpimapper.xml index b9b1861..553ca20 100644 --- a/example/bin/data/ofxpimapper.xml +++ b/example/bin/data/ofxpimapper.xml @@ -78,4 +78,15 @@ <perspectiveWarping>1</perspectiveWarping> </properties> </surface> + <magSlideShow> + <Width>1920</Width> + <Height>1080</Height> + <SlideDuration>1</SlideDuration> <!-- Optional default duration for each slide--> + <Loop> + <Type>PING-PONG</Type> <!-- NONE | NORMAL | PING-PONG --> + </Loop> + <Transition></Transition> + <!-- NoResize | Native | Fit | FitProportionally | FillProportionally --> + <ResizeOption>FitProportionally</ResizeOption> + </magSlideShow> </surfaces> From 03f39f4621e5b35d4c41e1cba9ce1177f63b133e Mon Sep 17 00:00:00 2001 From: c-mendoza <c@matadata.com> Date: Tue, 5 Dec 2017 11:59:02 -0500 Subject: [PATCH 34/48] Adding the right example xml file (oops!) --- example/bin/data/ofxpimapper.xml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/example/bin/data/ofxpimapper.xml b/example/bin/data/ofxpimapper.xml index 553ca20..46b5816 100644 --- a/example/bin/data/ofxpimapper.xml +++ b/example/bin/data/ofxpimapper.xml @@ -73,6 +73,17 @@ <source> <source-type>fbo</source-type> <source-name>Slide Show Source</source-name> + <magSlideShow> + <Width>1920</Width> + <Height>1080</Height> + <SlideDuration>1</SlideDuration> <!-- Optional default duration for each slide--> + <Loop> + <Type>PING-PONG</Type> <!-- NONE | NORMAL | PING-PONG --> + </Loop> + <Transition></Transition> + <!-- NoResize | Native | Fit | FitProportionally | FillProportionally --> + <ResizeOption>FitProportionally</ResizeOption> + </magSlideShow> </source> <properties> <perspectiveWarping>1</perspectiveWarping> From 5a58e8824dc928575971365b761f2137b3241924 Mon Sep 17 00:00:00 2001 From: c-mendoza <c@matadata.com> Date: Tue, 5 Dec 2017 12:10:42 -0500 Subject: [PATCH 35/48] Again fixing example XML file --- example/bin/data/ofxpimapper.xml | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/example/bin/data/ofxpimapper.xml b/example/bin/data/ofxpimapper.xml index 46b5816..553ca20 100644 --- a/example/bin/data/ofxpimapper.xml +++ b/example/bin/data/ofxpimapper.xml @@ -73,17 +73,6 @@ <source> <source-type>fbo</source-type> <source-name>Slide Show Source</source-name> - <magSlideShow> - <Width>1920</Width> - <Height>1080</Height> - <SlideDuration>1</SlideDuration> <!-- Optional default duration for each slide--> - <Loop> - <Type>PING-PONG</Type> <!-- NONE | NORMAL | PING-PONG --> - </Loop> - <Transition></Transition> - <!-- NoResize | Native | Fit | FitProportionally | FillProportionally --> - <ResizeOption>FitProportionally</ResizeOption> - </magSlideShow> </source> <properties> <perspectiveWarping>1</perspectiveWarping> From 1d2864befcfaf4ac5e760e6d2ac36a753b18c994 Mon Sep 17 00:00:00 2001 From: c-mendoza <c@matadata.com> Date: Tue, 5 Dec 2017 19:14:22 -0500 Subject: [PATCH 36/48] DirectoryWatcher now notifies if file count has changed in a directory --- src/MediaServer/DirectoryWatcher.cpp | 45 +++++++++++++++++++++++----- src/MediaServer/DirectoryWatcher.h | 18 ++++++++++- src/MediaServer/MediaServer.cpp | 19 +++++++----- 3 files changed, 66 insertions(+), 16 deletions(-) diff --git a/src/MediaServer/DirectoryWatcher.cpp b/src/MediaServer/DirectoryWatcher.cpp index 3c86543..14f697d 100644 --- a/src/MediaServer/DirectoryWatcher.cpp +++ b/src/MediaServer/DirectoryWatcher.cpp @@ -4,8 +4,9 @@ namespace ofx { namespace piMapper { DirectoryWatcher::DirectoryWatcher(string path, int watcherMediaType){ + directoryPath = path; _mediaType = watcherMediaType; - + if(_mediaType == SourceType::SOURCE_TYPE_VIDEO){ _directory.allowExt("mp4"); _directory.allowExt("h264"); @@ -21,20 +22,27 @@ DirectoryWatcher::DirectoryWatcher(string path, int watcherMediaType){ ofLogFatalError("DirectoryWatcher::DirectoryWatcher", "Unkonwn media type"); exit(EXIT_FAILURE); } - - _directory.listDir(path); + + _directory.listDir(directoryPath); _directory.sort(); - + for(int i = 0; i < _directory.size(); ++i){ - _filePaths.push_back(path + _directory.getName(i)); - - ofFile file(path + _directory.getName(i)); + _filePaths.push_back(directoryPath + _directory.getName(i)); + + ofFile file(directoryPath + _directory.getName(i)); if(_mediaType == SourceType::SOURCE_TYPE_VIDEO){ file.copyTo("sources/videos/" + _directory.getName(i)); }else if(_mediaType == SourceType::SOURCE_TYPE_IMAGE){ file.copyTo("sources/images/" + _directory.getName(i)); } } + + dirSize = _directory.size(); +} + +DirectoryWatcher::~DirectoryWatcher() { + endWatch(); +// waitForThread(false); } vector <string> & DirectoryWatcher::getFilePaths(){ @@ -45,5 +53,28 @@ int DirectoryWatcher::getMediaType(){ return _mediaType; } +void DirectoryWatcher::beginWatch(int intervalInMillis) { + watchInterval = intervalInMillis; + startThread(); +} + +void DirectoryWatcher::endWatch() { + stopThread(); +} + +void DirectoryWatcher::threadedFunction() { + + while (isThreadRunning()) { + + int newSize = _directory.listDir(); + if (newSize != dirSize) { + ofLogVerbose("DirectoryWatcher") << "Directory changed"; + ofNotifyEvent(directoryFileCountChangedEvent, this); + } + + sleep(watchInterval); + } +} + } // namespace piMapper } // namespace ofx diff --git a/src/MediaServer/DirectoryWatcher.h b/src/MediaServer/DirectoryWatcher.h index 717bbde..bcd3879 100644 --- a/src/MediaServer/DirectoryWatcher.h +++ b/src/MediaServer/DirectoryWatcher.h @@ -6,16 +6,32 @@ namespace ofx { namespace piMapper { -class DirectoryWatcher { +class DirectoryWatcher : public ofThread { public: DirectoryWatcher(string path, int watcherMediaType); + virtual ~DirectoryWatcher(); vector<string> & getFilePaths(); int getMediaType(); + void beginWatch(int intervalInMillis = 5000); + void endWatch(); + void threadedFunction(); + + /** + * Triggered when the file count of a directory increases + * or decreases. + * + * Sender is a pointer to this DirectoryWatcher + */ + ofEvent<void> directoryFileCountChangedEvent; private: ofDirectory _directory; vector<string> _filePaths; + std::string directoryPath; int _mediaType; + + int dirSize; + long watchInterval; // in millis. }; } // namespace piMapper diff --git a/src/MediaServer/MediaServer.cpp b/src/MediaServer/MediaServer.cpp index 78d1af8..41b1747 100644 --- a/src/MediaServer/MediaServer.cpp +++ b/src/MediaServer/MediaServer.cpp @@ -19,14 +19,17 @@ MediaServer::MediaServer(): { // By initialising all above we also copy files from external media // to the ofxPiMapper storage. - - imageWatcher = DirectoryWatcher( - ofToDataPath(DEFAULT_IMAGES_DIR, true), - SourceType::SOURCE_TYPE_IMAGE); - - videoWatcher = DirectoryWatcher( - ofToDataPath(DEFAULT_VIDEOS_DIR, true), - SourceType::SOURCE_TYPE_VIDEO); + imageWatcher.beginWatch(); + + +// imageWatcher = DirectoryWatcher( +// ofToDataPath(DEFAULT_IMAGES_DIR, true), +// SourceType::SOURCE_TYPE_IMAGE); +// imageWatcher.beginWatch(); +// +// videoWatcher = DirectoryWatcher( +// ofToDataPath(DEFAULT_VIDEOS_DIR, true), +// SourceType::SOURCE_TYPE_VIDEO); } void MediaServer::setup(){ From 272e0eb409fef27cd785160b03b578c7625c67df Mon Sep 17 00:00:00 2001 From: c-mendoza <c@matadata.com> Date: Tue, 5 Dec 2017 19:17:31 -0500 Subject: [PATCH 37/48] update gitignore --- .gitignore | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.gitignore b/.gitignore index 3b590fa..8cd07bf 100644 --- a/.gitignore +++ b/.gitignore @@ -113,3 +113,9 @@ example/\.idea/ example/cmake-build-release/ example/example\.xcodeproj/xcshareddata/xcschemes/ + +.idea/ + +cmake-build-debug/ + +CMakeLists\.txt From e231300b84b556bfbac081bf0dcddaa26a45c6af Mon Sep 17 00:00:00 2001 From: c-mendoza <c@matadata.com> Date: Tue, 5 Dec 2017 22:32:50 -0500 Subject: [PATCH 38/48] DirectoryWatcher: file added and file removed events --- src/MediaServer/DirectoryWatcher.cpp | 10 ++++++++-- src/MediaServer/DirectoryWatcher.h | 14 +++++++++----- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/MediaServer/DirectoryWatcher.cpp b/src/MediaServer/DirectoryWatcher.cpp index 14f697d..104abcf 100644 --- a/src/MediaServer/DirectoryWatcher.cpp +++ b/src/MediaServer/DirectoryWatcher.cpp @@ -67,11 +67,17 @@ void DirectoryWatcher::threadedFunction() { while (isThreadRunning()) { int newSize = _directory.listDir(); - if (newSize != dirSize) { + if (newSize > dirSize) { ofLogVerbose("DirectoryWatcher") << "Directory changed"; - ofNotifyEvent(directoryFileCountChangedEvent, this); + dirSize = newSize; + ofNotifyEvent(directoryFileAddedEvent, this); + } else if (newSize < dirSize) { + dirSize = newSize; + ofNotifyEvent(directoryFileRemovedEvent, this); } + + sleep(watchInterval); } } diff --git a/src/MediaServer/DirectoryWatcher.h b/src/MediaServer/DirectoryWatcher.h index bcd3879..8ef7ede 100644 --- a/src/MediaServer/DirectoryWatcher.h +++ b/src/MediaServer/DirectoryWatcher.h @@ -10,7 +10,7 @@ class DirectoryWatcher : public ofThread { public: DirectoryWatcher(string path, int watcherMediaType); virtual ~DirectoryWatcher(); - vector<string> & getFilePaths(); + vector<string> &getFilePaths(); int getMediaType(); void beginWatch(int intervalInMillis = 5000); @@ -18,12 +18,16 @@ class DirectoryWatcher : public ofThread { void threadedFunction(); /** - * Triggered when the file count of a directory increases - * or decreases. - * + * Notifies when files are added to this directory. * Sender is a pointer to this DirectoryWatcher */ - ofEvent<void> directoryFileCountChangedEvent; + ofEvent<void> directoryFileAddedEvent; + /** + * Notifies when files are removed from this directory. + * Sender is a pointer to this DirectoryWatcher + */ + ofEvent<void> directoryFileRemovedEvent; + private: ofDirectory _directory; vector<string> _filePaths; From b6a47bbb286593103fc9460edae62a8253f6db5a Mon Sep 17 00:00:00 2001 From: c-mendoza <c@matadata.com> Date: Wed, 6 Dec 2017 15:03:29 -0500 Subject: [PATCH 39/48] Added a DirectoryWatcher to magSlideShowSource --- src/Sources/magSlideShowSource.cpp | 94 ++++++---- src/Sources/magSlideShowSource.h | 267 +++++++++++++++-------------- 2 files changed, 193 insertions(+), 168 deletions(-) diff --git a/src/Sources/magSlideShowSource.cpp b/src/Sources/magSlideShowSource.cpp index 1856f6a..437047f 100644 --- a/src/Sources/magSlideShowSource.cpp +++ b/src/Sources/magSlideShowSource.cpp @@ -10,15 +10,20 @@ #include "SettingsLoader.h" #include "magSlideTransitionFactory.h" -magSlideShowSource::magSlideShowSource() -{ +magSlideShowSource::magSlideShowSource() { name = "Slide Show Source"; currentSlideIndex = 0; isPlaying = false; + directoryWatcher = 0; + doInit = false; } -bool magSlideShowSource::initialize(magSlideShowSource::Settings settings) -{ +magSlideShowSource::~magSlideShowSource() { + directoryWatcher->endWatch(); + delete directoryWatcher; +} + +bool magSlideShowSource::initialize(magSlideShowSource::Settings settings) { this->settings = settings; bool success = true; @@ -45,23 +50,44 @@ bool magSlideShowSource::initialize(magSlideShowSource::Settings settings) << settings.slidesFolderPath; return success; } + { + if (directoryWatcher == 0) + { + + using namespace ofx::piMapper; + directoryWatcher = new DirectoryWatcher(settings.slidesFolderPath, + SourceTypeHelper::GetSourceTypeHelperEnum( + SOURCE_TYPE_NAME_IMAGE)); + ofAddListener(directoryWatcher->directoryFileAddedEvent, this, &magSlideShowSource::fileAddedListener); + ofAddListener(directoryWatcher->directoryFileRemovedEvent, this, + &magSlideShowSource::fileRemovedListener); + directoryWatcher->beginWatch(); + } + } } else if (!settings.slideshowFilePath.empty()) { - // try to load slide show from xml success = false; } + return success; } -void magSlideShowSource::setup() -{ +void magSlideShowSource::setup() { ofx::piMapper::FboSource::setup(); } -void magSlideShowSource::update() -{ +void magSlideShowSource::update() { + + // Perform re-initialization if the DirectoryWatcher + // detects file changes: + if (doInit) + { + initialize(settings); + doInit = false; + } + if (!isPlaying) return; auto nowTime = ofGetElapsedTimeMillis(); @@ -96,8 +122,7 @@ void magSlideShowSource::update() } } -void magSlideShowSource::draw() -{ +void magSlideShowSource::draw() { ofBackground(0, 0); ofPushMatrix(); ofPushStyle(); @@ -115,8 +140,7 @@ void magSlideShowSource::draw() ofDisableAlphaBlending(); } -bool magSlideShowSource::createFromFolderContents(std::string path) -{ +bool magSlideShowSource::createFromFolderContents(std::string path) { ofDirectory dir = ofDirectory(path); slides.clear(); @@ -194,8 +218,7 @@ bool magSlideShowSource::createFromFolderContents(std::string path) } } -bool magSlideShowSource::loadFromXml() -{ +bool magSlideShowSource::loadFromXml() { auto *loader = ofx::piMapper::SettingsLoader::instance(); auto xml = ofxXmlSettings(); Settings settings; @@ -270,8 +293,7 @@ bool magSlideShowSource::loadFromXml() return true; } -void magSlideShowSource::addSlide(std::shared_ptr<magSlide> slide) -{ +void magSlideShowSource::addSlide(std::shared_ptr<magSlide> slide) { // ofLogVerbose("addSlide") << slide->getId(); slides.insert(slides.begin(), slide); auto rOption = slide->getResizeOption(); @@ -337,9 +359,9 @@ void magSlideShowSource::addSlide(std::shared_ptr<magSlide> slide) // bogusParamGroup, // slide->buildInDuration); slide->transition = tf->createTransition(settings.transitionName, - slide, - bogusParamGroup, - slide->buildOutDuration); + slide, + bogusParamGroup, + slide->buildOutDuration); } //// void method(const void * sender, ArgumentsType &args) ofAddListener(slide->slideStateChangedEvent, this, &magSlideShowSource::slideStateChanged); @@ -347,8 +369,7 @@ void magSlideShowSource::addSlide(std::shared_ptr<magSlide> slide) } -void magSlideShowSource::play() -{ +void magSlideShowSource::play() { if (!isPlaying) { runningTime = 0; @@ -359,13 +380,11 @@ void magSlideShowSource::play() } } -void magSlideShowSource::pause() -{ +void magSlideShowSource::pause() { isPlaying = false; } -void magSlideShowSource::playNextSlide() -{ +void magSlideShowSource::playNextSlide() { //TODO // I should check here to see if there are less than two slides. // If so, we should probably return @@ -450,27 +469,23 @@ void magSlideShowSource::playNextSlide() enqueueSlide(slides[currentSlideIndex], ofGetElapsedTimeMillis()); } -void magSlideShowSource::playPrevSlide() -{ +void magSlideShowSource::playPrevSlide() { currentSlideIndex -= (direction*2); playNextSlide(); } -void magSlideShowSource::playSlide(int slideIndex) -{ +void magSlideShowSource::playSlide(int slideIndex) { currentSlideIndex = slideIndex-direction; playNextSlide(); } -void magSlideShowSource::enqueueSlide(std::shared_ptr<magSlide> slide, u_int64_t startTime) -{ +void magSlideShowSource::enqueueSlide(std::shared_ptr<magSlide> slide, u_int64_t startTime) { // ofLogVerbose() << "Enqueuing slide " << currentSlideIndex << " slide id: " << slide->getId(); slide->start(startTime); activeSlides.insert(activeSlides.begin(), slide); } -void magSlideShowSource::slideStateChanged(const void *sender, ofEventArgs &args) -{ +void magSlideShowSource::slideStateChanged(const void *sender, ofEventArgs &args) { magSlide *slide = (magSlide *) sender; // ofLogVerbose("slideStateChanged") << "Slide id: " << slide->getId() << " Slide state: " @@ -488,11 +503,18 @@ void magSlideShowSource::slideStateChanged(const void *sender, ofEventArgs &args } -void magSlideShowSource::slideComplete(const void *sender, ofEventArgs &args) -{ +void magSlideShowSource::slideComplete(const void *sender, ofEventArgs &args) { magSlide *slide = (magSlide *) sender; // ofLogVerbose() << "Slide Complete. id: " << slide->getId(); slide->isComplete = true; } +void magSlideShowSource::fileAddedListener(const void *sender) { + doInit = true; +} + +void magSlideShowSource::fileRemovedListener(const void *sender) { + doInit = true; +} + diff --git a/src/Sources/magSlideShowSource.h b/src/Sources/magSlideShowSource.h index 5284b23..3f58a2f 100644 --- a/src/Sources/magSlideShowSource.h +++ b/src/Sources/magSlideShowSource.h @@ -9,152 +9,155 @@ #include "FboSource.h" #include "magSlide.h" +#include "DirectoryWatcher.h" class magSlide; -class magSlideShowSource : public ofx::piMapper::FboSource -{ -public: - magSlideShowSource(); - struct Settings; // forward declaration - bool initialize(magSlideShowSource::Settings settings); - void setup() override; - void update() override; - void draw() override; - - /** - * Removes all slides and then attempts to create a new slide show - * based on the contents of the ofDirectory specified. The files may - * be images or videos, which will be transformed into the appropriate slide type. - * Any other file type in the directory is ignored (including other directories). - * The slide order is alphabetical according to filename. - * - * @param dir The ofDirectory to use as a source for a slide show. - * @return true if at least one slide was created. false is returned - * otherwise. Check the console for the specific error. - */ - bool createFromFolderContents(std::string path); - - bool loadFromXml(); - void addSlide(std::shared_ptr<magSlide> slide); - void play(); - void pause(); - void playNextSlide(); - void playPrevSlide(); - void playSlide(int slideIndex); - - enum LoopType : int - { - NONE = 0, - NORMAL, - PING_PONG - }; - - struct Settings - { - /** - * The pixel width of the FBO. - */ - float width = 1280; - - /** - * The pixel height of the FBO. - */ - float height = 720; - /** - * An optional default slide duration, in seconds. - * If a slide specifies a duration this value is ignored. - */ - float slideDuration = 5; - - /** - * An optional default transition for the slide show. - */ - std::string transitionName = ""; - - /** - * An optional default transition duration. If no transition - * is specified, this value is ignored; - */ - float transitionDuration = 0; - - /** - * If specified, all applicable files in the folder will - * be used as slides in the slide show. They will be ordered - * alphabetically according to their file names. - * - * If path is relative, the root will likely be the Data folder. - */ - std::string slidesFolderPath = "sources/images"; - - /** - * If specified, - */ - std::string slideshowFilePath; - - - /** - * Loop type for the slide show. See @code LoopType for options. - * The default is @code LoopType:None. - */ - LoopType loopType = LoopType::NONE; - - /** - * The number of loops to perform, if the loopType is not NONE. - * If the value is 0 or less than 0, the slide show loops forever. - */ - int numLoops = 0; +class magSlideShowSource : public ofx::piMapper::FboSource { + public: + magSlideShowSource(); + struct Settings; // forward declaration + bool initialize(magSlideShowSource::Settings settings); + void setup() override; + void update() override; + void draw() override; /** - * The resizing option for the slide show. The default is FitProportionally. - * If a slide already has a resizing option applied, that option will be - * respected and this resizeOption will not be used. + * Removes all slides and then attempts to create a new slide show + * based on the contents of the ofDirectory specified. The files may + * be images or videos, which will be transformed into the appropriate slide type. + * Any other file type in the directory is ignored (including other directories). + * The slide order is alphabetical according to filename. + * + * @param dir The ofDirectory to use as a source for a slide show. + * @return true if at least one slide was created. false is returned + * otherwise. Check the console for the specific error. */ - magSlide::ResizeOptions resizeOption = magSlide::ResizeOptions::FitProportionally; - }; + bool createFromFolderContents(std::string path); + + bool loadFromXml(); + void addSlide(std::shared_ptr<magSlide> slide); + void play(); + void pause(); + void playNextSlide(); + void playPrevSlide(); + void playSlide(int slideIndex); + + enum LoopType : int { + NONE = 0, + NORMAL, + PING_PONG + }; + + struct Settings { + /** + * The pixel width of the FBO. + */ + float width = 1280; + + /** + * The pixel height of the FBO. + */ + float height = 720; + /** + * An optional default slide duration, in seconds. + * If a slide specifies a duration this value is ignored. + */ + float slideDuration = 5; + + /** + * An optional default transition for the slide show. + */ + std::string transitionName = ""; + + /** + * An optional default transition duration. If no transition + * is specified, this value is ignored; + */ + float transitionDuration = 0; + + /** + * If specified, all applicable files in the folder will + * be used as slides in the slide show. They will be ordered + * alphabetically according to their file names. + * + * If path is relative, the root will likely be the Data folder. + */ + std::string slidesFolderPath = "sources/images"; + + /** + * If specified, + */ + std::string slideshowFilePath; + + + /** + * Loop type for the slide show. See @code LoopType for options. + * The default is @code LoopType:None. + */ + LoopType loopType = LoopType::NONE; + + /** + * The number of loops to perform, if the loopType is not NONE. + * If the value is 0 or less than 0, the slide show loops forever. + */ + int numLoops = 0; + + /** + * The resizing option for the slide show. The default is FitProportionally. + * If a slide already has a resizing option applied, that option will be + * respected and this resizeOption will not be used. + */ + magSlide::ResizeOptions resizeOption = magSlide::ResizeOptions::FitProportionally; + }; + + //////////////////////////////////////////// + //// Event Listeners + //////////////////////////////////////////// + void slideStateChanged(const void *sender, ofEventArgs &args); + void slideComplete(const void *sender, ofEventArgs &args); + virtual ~magSlideShowSource(); - //////////////////////////////////////////// - //// Event Listeners - //////////////////////////////////////////// - void slideStateChanged(const void* sender, ofEventArgs &args); - void slideComplete(const void* sender, ofEventArgs &args); - - /** - * Fires when the slide show is done, which happens when - * the loop count is equal to Settings::numLoops, or when - * the last slide is played when @code LoopType::NONE is specified. - * Sender is this slide show. - */ - ofEvent<ofEventArgs> slideshowCompleteEvent; + /** + * Fires when the slide show is done, which happens when + * the loop count is equal to Settings::numLoops, or when + * the last slide is played when @code LoopType::NONE is specified. + * Sender is this slide show. + */ + ofEvent<ofEventArgs> slideshowCompleteEvent; - /** - * Fires when the slide show reaches the last slide - * and will perform a loop in the next call. - * Sender is this slide show. - */ - ofEvent<ofEventArgs> slideshowWillLoopEvent; + /** + * Fires when the slide show reaches the last slide + * and will perform a loop in the next call. + * Sender is this slide show. + */ + ofEvent<ofEventArgs> slideshowWillLoopEvent; -protected: - Settings settings; - std::vector<std::shared_ptr<magSlide>> slides; + protected: + Settings settings; + std::vector<std::shared_ptr<magSlide>> slides; -private: + private: // std::shared_ptr<magSlide> currentSlide; - std::vector<std::shared_ptr<magSlide>> activeSlides; - void enqueueSlide(std::shared_ptr<magSlide> slide, u_int64_t startTime); - - u_int64_t lastTime; - u_int64_t deltaTime; - u_int64_t runningTime; - - bool isInitialized = false; - bool isPlaying = false; - int currentSlideIndex = 0; - int direction = 1; - int loopCount = 0; + std::vector<std::shared_ptr<magSlide>> activeSlides; + void enqueueSlide(std::shared_ptr<magSlide> slide, u_int64_t startTime); + + u_int64_t lastTime; + u_int64_t deltaTime; + u_int64_t runningTime; + + bool isInitialized = false; + bool isPlaying = false; + int currentSlideIndex = 0; + int direction = 1; + int loopCount = 0; + ofx::piMapper::DirectoryWatcher* directoryWatcher; + void fileAddedListener(const void *sender); + void fileRemovedListener(const void *sender); + bool doInit; }; From dad64e384aef4e41b1a9c16f3dba3517ff3c1490 Mon Sep 17 00:00:00 2001 From: c-mendoza <c@matadata.com> Date: Wed, 6 Dec 2017 18:00:11 -0500 Subject: [PATCH 40/48] magSlideShow loads its own xml file. Also added path so that if an xml file is not specified for the slide show, there are useful defaults that can still create one. Updated the example app to reflect these changes. Updated the example's xml file. Added an xml file for the slide show in the example. --- example/bin/data/magslideshow_settings.xml | 11 +++++++ example/bin/data/ofxpimapper.xml | 22 -------------- example/src/ofApp.cpp | 14 --------- src/Sources/magSlideShowSource.cpp | 35 ++++++++++++---------- src/Sources/magSlideShowSource.h | 17 ++++++----- 5 files changed, 41 insertions(+), 58 deletions(-) create mode 100644 example/bin/data/magslideshow_settings.xml diff --git a/example/bin/data/magslideshow_settings.xml b/example/bin/data/magslideshow_settings.xml new file mode 100644 index 0000000..e16b25b --- /dev/null +++ b/example/bin/data/magslideshow_settings.xml @@ -0,0 +1,11 @@ +<magSlideShow> + <Width>1920</Width> + <Height>1080</Height> + <SlideDuration>1</SlideDuration> <!-- Optional default duration for each slide--> + <Loop> + <Type>PING-PONG</Type> <!-- NONE | NORMAL | PING-PONG --> + </Loop> + <Transition></Transition> + <!-- NoResize | Native | Fit | FitProportionally | FillProportionally --> + <ResizeOption>FitProportionally</ResizeOption> +</magSlideShow> \ No newline at end of file diff --git a/example/bin/data/ofxpimapper.xml b/example/bin/data/ofxpimapper.xml index 46b5816..b9b1861 100644 --- a/example/bin/data/ofxpimapper.xml +++ b/example/bin/data/ofxpimapper.xml @@ -73,31 +73,9 @@ <source> <source-type>fbo</source-type> <source-name>Slide Show Source</source-name> - <magSlideShow> - <Width>1920</Width> - <Height>1080</Height> - <SlideDuration>1</SlideDuration> <!-- Optional default duration for each slide--> - <Loop> - <Type>PING-PONG</Type> <!-- NONE | NORMAL | PING-PONG --> - </Loop> - <Transition></Transition> - <!-- NoResize | Native | Fit | FitProportionally | FillProportionally --> - <ResizeOption>FitProportionally</ResizeOption> - </magSlideShow> </source> <properties> <perspectiveWarping>1</perspectiveWarping> </properties> </surface> - <magSlideShow> - <Width>1920</Width> - <Height>1080</Height> - <SlideDuration>1</SlideDuration> <!-- Optional default duration for each slide--> - <Loop> - <Type>PING-PONG</Type> <!-- NONE | NORMAL | PING-PONG --> - </Loop> - <Transition></Transition> - <!-- NoResize | Native | Fit | FitProportionally | FillProportionally --> - <ResizeOption>FitProportionally</ResizeOption> - </magSlideShow> </surfaces> diff --git a/example/src/ofApp.cpp b/example/src/ofApp.cpp index e691269..d4d9395 100644 --- a/example/src/ofApp.cpp +++ b/example/src/ofApp.cpp @@ -18,26 +18,12 @@ void ofApp::setup(){ // Create the slide show source. slideShowSource = new magSlideShowSource(); - // Create the settings struct for the slide show. - - // Initialize the slide show with our settings. - // If it fails, initialize from default settings - - // Register our sources: piMapper.registerFboSource(crossSource); piMapper.registerFboSource(customSource); piMapper.registerFboSource(slideShowSource); piMapper.setup(); - // Slide show needs to be loaded after piMapper is set up: - if (!slideShowSource->loadFromXml()) - { - ofLogNotice("setup") << "loading magSlideShowSource XML settings failed. Initializing from default values"; - magSlideShowSource::Settings sets; - slideShowSource->initialize(sets); - } - // The info layer is hidden by default, press <i> to toggle // piMapper.showInfo(); diff --git a/src/Sources/magSlideShowSource.cpp b/src/Sources/magSlideShowSource.cpp index 437047f..a3367a1 100644 --- a/src/Sources/magSlideShowSource.cpp +++ b/src/Sources/magSlideShowSource.cpp @@ -10,12 +10,20 @@ #include "SettingsLoader.h" #include "magSlideTransitionFactory.h" +const std::string magSlideShowSource::SettingsFileName = "magslideshow_settings.xml"; + magSlideShowSource::magSlideShowSource() { name = "Slide Show Source"; currentSlideIndex = 0; isPlaying = false; directoryWatcher = 0; doInit = false; + if (!loadFromXml(SettingsFileName)) + { + ofLogError("magSlideShowSource") << "Could not find slide show settings file " << SettingsFileName; + Settings sets; + initialize(sets); + } } magSlideShowSource::~magSlideShowSource() { @@ -218,21 +226,20 @@ bool magSlideShowSource::createFromFolderContents(std::string path) { } } -bool magSlideShowSource::loadFromXml() { - auto *loader = ofx::piMapper::SettingsLoader::instance(); +bool magSlideShowSource::loadFromXml(std::string path) { auto xml = ofxXmlSettings(); Settings settings; - if (!xml.load(loader->getLastLoadedFilename())) + if (!xml.load(path)) { - ofLogError("magSlideShowSource") << "Could not load settings file " << loader->getLastLoadedFilename(); + ofLogError("magSlideShowSource") << "Could not load settings file " << path; return false; } - xml.pushTag("surfaces"); +// xml.pushTag("surfaces"); if (!xml.pushTag("magSlideShow")) { - ofLogError("magSlideShowSource") << "Slide show settings not found in " << loader->getLastLoadedFilename(); + ofLogError("magSlideShowSource") << "Slide show settings not found in " << path; return false; } @@ -349,20 +356,18 @@ void magSlideShowSource::addSlide(std::shared_ptr<magSlide> slide) { // Add transitions: - if (!settings.transitionName.empty()) - { - static ofParameterGroup bogusParamGroup; // This is temporary so that things compile + static ofParameterGroup bogusParamGroup; // This is temporary so that things compile - auto tf = magSlideTransitionFactory::instance(); + auto tf = magSlideTransitionFactory::instance(); // slide->buildIn = tf->createTransition(settings.transitionName, // slide, // bogusParamGroup, // slide->buildInDuration); - slide->transition = tf->createTransition(settings.transitionName, - slide, - bogusParamGroup, - slide->buildOutDuration); - } + slide->transition = tf->createTransition(settings.transitionName, + slide, + bogusParamGroup, + slide->buildOutDuration); + //// void method(const void * sender, ArgumentsType &args) ofAddListener(slide->slideStateChangedEvent, this, &magSlideShowSource::slideStateChanged); ofAddListener(slide->slideCompleteEvent, this, &magSlideShowSource::slideComplete); diff --git a/src/Sources/magSlideShowSource.h b/src/Sources/magSlideShowSource.h index 3f58a2f..e82b158 100644 --- a/src/Sources/magSlideShowSource.h +++ b/src/Sources/magSlideShowSource.h @@ -17,6 +17,11 @@ class magSlide; class magSlideShowSource : public ofx::piMapper::FboSource { public: magSlideShowSource(); + + /** + * Default settings file name. + */ + static const std::string SettingsFileName; struct Settings; // forward declaration bool initialize(magSlideShowSource::Settings settings); void setup() override; @@ -35,8 +40,7 @@ class magSlideShowSource : public ofx::piMapper::FboSource { * otherwise. Check the console for the specific error. */ bool createFromFolderContents(std::string path); - - bool loadFromXml(); + bool loadFromXml(std::string path); void addSlide(std::shared_ptr<magSlide> slide); void play(); void pause(); @@ -67,15 +71,14 @@ class magSlideShowSource : public ofx::piMapper::FboSource { float slideDuration = 5; /** - * An optional default transition for the slide show. + * The default transition for the slide show. */ - std::string transitionName = ""; + std::string transitionName = "Dissolve"; /** - * An optional default transition duration. If no transition - * is specified, this value is ignored; + * Default transition duration. */ - float transitionDuration = 0; + float transitionDuration = 1; /** * If specified, all applicable files in the folder will From b1c87be7dbba4d3093f070459d8c334961d36395 Mon Sep 17 00:00:00 2001 From: c-mendoza <c@matadata.com> Date: Thu, 7 Dec 2017 10:58:08 -0500 Subject: [PATCH 41/48] Fixing addons.make for RPi --- example/addons.make | 1 + 1 file changed, 1 insertion(+) diff --git a/example/addons.make b/example/addons.make index e72d2dd..963941c 100644 --- a/example/addons.make +++ b/example/addons.make @@ -1,3 +1,4 @@ ofxGui ofxPiMapper ofxXmlSettings +ofxOMXPlayer From 08976e40477b46e90176f46a71528ee0dbeefff2 Mon Sep 17 00:00:00 2001 From: c-mendoza <c@matadata.com> Date: Thu, 7 Dec 2017 14:46:57 -0500 Subject: [PATCH 42/48] Fixed a logic error in the way slides were being queued. The activeSlides vector was being modified by enqueueSlide while it was being iterated in update(). enqueueSlide now raises a flag, and it is update() that now modifies the activeSlides vector. --- src/Sources/magSlideShowSource.cpp | 24 ++++++++++++++---------- src/Sources/magSlideShowSource.h | 1 + 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/Sources/magSlideShowSource.cpp b/src/Sources/magSlideShowSource.cpp index a3367a1..f88babf 100644 --- a/src/Sources/magSlideShowSource.cpp +++ b/src/Sources/magSlideShowSource.cpp @@ -102,14 +102,23 @@ void magSlideShowSource::update() { deltaTime = nowTime-lastTime; runningTime += deltaTime; lastTime = nowTime; - -// ofLogVerbose() << "Delta: " << deltaTime << " running: " << runningTime; - + for (auto &slide : activeSlides) { slide->update(deltaTime); } + // Queue the next slide if it is time + if (doPlayNextSlide) + { + playNextSlide(); + if (activeSlides.size() > 1) + { + activeSlides[1]->transition->start(activeSlides[0]); + } + doPlayNextSlide = false; + } + // Erase any complete slides: auto iter = activeSlides.begin(); for (; iter < activeSlides.end(); iter++) @@ -497,13 +506,8 @@ void magSlideShowSource::slideStateChanged(const void *sender, ofEventArgs &args // << slide->getSlideStateName(); if (slide->getSlideState() == magSlide::SlideState::BuildOut) { -// slide->transition->start(); -// ofLogVerbose() << "BuildOut " << slide->getId(); - playNextSlide(); - if (activeSlides.size() > 1) - { - activeSlides[1]->transition->start(activeSlides[0]); - } + // Flag that we need to load the next slide: + doPlayNextSlide = true; } } diff --git a/src/Sources/magSlideShowSource.h b/src/Sources/magSlideShowSource.h index e82b158..60d541d 100644 --- a/src/Sources/magSlideShowSource.h +++ b/src/Sources/magSlideShowSource.h @@ -161,6 +161,7 @@ class magSlideShowSource : public ofx::piMapper::FboSource { void fileAddedListener(const void *sender); void fileRemovedListener(const void *sender); bool doInit; + bool doPlayNextSlide = false; }; From 177d7636b106197f76fcb1cbb2992b1104fd48ec Mon Sep 17 00:00:00 2001 From: c-mendoza <c@matadata.com> Date: Thu, 7 Dec 2017 23:21:51 -0500 Subject: [PATCH 43/48] Add xml loading features --- src/Sources/magSlideShowSource.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/Sources/magSlideShowSource.cpp b/src/Sources/magSlideShowSource.cpp index f88babf..e3d6a74 100644 --- a/src/Sources/magSlideShowSource.cpp +++ b/src/Sources/magSlideShowSource.cpp @@ -102,7 +102,7 @@ void magSlideShowSource::update() { deltaTime = nowTime-lastTime; runningTime += deltaTime; lastTime = nowTime; - + for (auto &slide : activeSlides) { slide->update(deltaTime); @@ -279,6 +279,13 @@ bool magSlideShowSource::loadFromXml(std::string path) { xml.popTag(); } + if (xml.pushTag("Transition")) + { + settings.transitionName = xml.getValue("Type", settings.transitionName); + settings.transitionDuration = xml.getValue("Duration", settings.transitionDuration); + xml.popTag(); + } + // Default resize options: auto ropts = xml.getValue("ResizeOption", ""); if (ropts == "NoResize") @@ -302,10 +309,7 @@ bool magSlideShowSource::loadFromXml(std::string path) { settings.resizeOption = magSlide::FillProportionally; } - settings.transitionName = "Dissolve"; - settings.transitionDuration = 0.5; initialize(settings); - return true; } From e2ba47de0b0f0576433515a473ea2e42310e5afa Mon Sep 17 00:00:00 2001 From: c-mendoza <c@matadata.com> Date: Thu, 7 Dec 2017 23:22:31 -0500 Subject: [PATCH 44/48] Fixes transition length bug --- src/Sources/magSlide.cpp | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/Sources/magSlide.cpp b/src/Sources/magSlide.cpp index 1e50653..c334cbe 100644 --- a/src/Sources/magSlide.cpp +++ b/src/Sources/magSlide.cpp @@ -116,14 +116,9 @@ void magSlide::start(u_int64_t startTime) { this->startTime = startTime; runningTime = 0; - endTime = duration + buildOutDuration; - buildOutStartTime = endTime - buildOutDuration; + endTime = duration + (buildOutDuration*2); // *2 because we take into account transition in and out + buildOutStartTime = duration + buildOutDuration; slideState = magSlide::SlideState::Normal; -// if (buildIn != nullptr) -// { -// activeTransition = buildIn; -// activeTransition->start(); -// } position.set(0, 0); opacity = 255; isComplete = false; From f0f46be406cdfce25b3380148230a1e829747b3e Mon Sep 17 00:00:00 2001 From: c-mendoza <c@matadata.com> Date: Thu, 7 Dec 2017 23:22:55 -0500 Subject: [PATCH 45/48] Update example magslideshow_settings.xml file --- example/bin/data/magslideshow_settings.xml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/example/bin/data/magslideshow_settings.xml b/example/bin/data/magslideshow_settings.xml index e16b25b..58c00da 100644 --- a/example/bin/data/magslideshow_settings.xml +++ b/example/bin/data/magslideshow_settings.xml @@ -1,11 +1,15 @@ <magSlideShow> <Width>1920</Width> <Height>1080</Height> - <SlideDuration>1</SlideDuration> <!-- Optional default duration for each slide--> + <SlideDuration>2</SlideDuration> <!-- Optional default duration for each slide--> <Loop> <Type>PING-PONG</Type> <!-- NONE | NORMAL | PING-PONG --> + <Count>0</Count> <!-- 0 = forever --> </Loop> - <Transition></Transition> + <Transition> + <Type>Dissolve</Type> + <Duration>2</Duration> + </Transition> <!-- NoResize | Native | Fit | FitProportionally | FillProportionally --> <ResizeOption>FitProportionally</ResizeOption> -</magSlideShow> \ No newline at end of file +</magSlideShow> From d684992386013ffe1ab200016956f27f36955b8a Mon Sep 17 00:00:00 2001 From: magdesign <info@magdesign.ch> Date: Sun, 10 Dec 2017 12:23:57 +0100 Subject: [PATCH 46/48] Update README.md --- README.md | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 2b3f6e2..115133f 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,28 @@ -# This fork is made to integrate some important functions into PiMapper (RPi/Arm version only). -### 1. Slide show function (play all images from a folder) -This should be selectable as an additional FBO source in PiMapper, looping all images in the /media/internal/images/* folder -Would be cool to adjust the speed with a simple flag, simple opacity transition welcome, but not necessary. Refresh state, so it checks if there are new images added during playback and play them as well. make all images fullscreen. -(if its not possible to handle various sizes as one, i will make an imagemagick script to convert all to 1920x1080) -### 2. Circular shapes for mapping (there are only square and tringle shapes so far) -Circular mapping shape (if possible with movable center distorsion) -### 3. Bezier handles +# This fork adds some important functions to PiMapper. +### 1. Slide show function (implemented in master branch): +PiMapper has now a slideshow and plays all images in a folder. There is an integrated directory watcher für updating new added images. Transition and slidetime can be edited via .xml file. + +### 2. Circular shapes for mapping (there are only square and tringle shapes so far): +Simple Circular mapping shape (more complex version with movable center might come later) + +### 3. Mapping converter: +Finalize the mapping converter, to convert exported .svg from Mapio and Madmapper to ofxPiMapper: https://github.com/magdesign/mapping-converter + +### 4. Bezier handles: Adding bezier handles to masks for better aligment: https://github.com/TsubokuLab/ofxBezierWarpManager -### 4. Play all videos from a folder +### 5. Play all videos from a folder: This should be a an additional FBO source in PiMapper, looping all videos in /media/internal/video/* -### 5. Grid Warp (meshing of square shapes) +### 6. Grid Warp (meshing of square shapes): check out this http://www.hv-a.com/lpmt/sssm.pdf on page: 10 https://forum.openframeworks.cc/t/grid-mesh-warping/12883 -### 6. SoftEdge +### 7. SoftEdge: Image overlay to making adges transparent, could be achieved with overlaing a png with a black gradient. -Finalize the mapping converter: https://github.com/magdesign/mapping-converter - -This will be an opensource project and freely available for everyone. -Targeting OF_0.9.x on RaspberryPi. -Each function will be rewarded to the coder from a pot sponsered by pocketvj.com. +## Targeting OF_0.9.x on RaspberryPi. +Each function will be rewarded to the coder from a pot sponsered by http://pocketvj.com +Keybindings are edited to match the CP of PocketVJ. # ofxPiMapper From 343e0b507c86216854a8dd852ccd3f88309e5154 Mon Sep 17 00:00:00 2001 From: magdesign <info@magdesign.ch> Date: Sat, 16 Dec 2017 14:04:48 +0100 Subject: [PATCH 47/48] Update README.md --- README.md | 26 -------------------------- 1 file changed, 26 deletions(-) diff --git a/README.md b/README.md index 115133f..cd8032d 100644 --- a/README.md +++ b/README.md @@ -1,29 +1,3 @@ -# This fork adds some important functions to PiMapper. -### 1. Slide show function (implemented in master branch): -PiMapper has now a slideshow and plays all images in a folder. There is an integrated directory watcher für updating new added images. Transition and slidetime can be edited via .xml file. - -### 2. Circular shapes for mapping (there are only square and tringle shapes so far): -Simple Circular mapping shape (more complex version with movable center might come later) - -### 3. Mapping converter: -Finalize the mapping converter, to convert exported .svg from Mapio and Madmapper to ofxPiMapper: https://github.com/magdesign/mapping-converter - -### 4. Bezier handles: -Adding bezier handles to masks for better aligment: https://github.com/TsubokuLab/ofxBezierWarpManager -### 5. Play all videos from a folder: -This should be a an additional FBO source in PiMapper, looping all videos in /media/internal/video/* -### 6. Grid Warp (meshing of square shapes): -check out this http://www.hv-a.com/lpmt/sssm.pdf on page: 10 -https://forum.openframeworks.cc/t/grid-mesh-warping/12883 -### 7. SoftEdge: -Image overlay to making adges transparent, could be achieved with overlaing a png with a black gradient. - - - -## Targeting OF_0.9.x on RaspberryPi. -Each function will be rewarded to the coder from a pot sponsered by http://pocketvj.com -Keybindings are edited to match the CP of PocketVJ. - # ofxPiMapper [](https://gitter.im/kr15h/ofxPiMapper?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) From 58c052878c28d03ef89ff2ed0e42a20734d8074a Mon Sep 17 00:00:00 2001 From: Krisjanis Rijnieks <krisjanis.rijnieks@gmail.com> Date: Mon, 18 Dec 2017 11:55:11 +0100 Subject: [PATCH 48/48] Fix xcodeproj of the example --- example/example.xcodeproj/project.pbxproj | 1571 +++++++++-------- .../xcschemes/example Debug.xcscheme | 19 +- .../xcschemes/example Release.xcscheme | 19 +- 3 files changed, 901 insertions(+), 708 deletions(-) diff --git a/example/example.xcodeproj/project.pbxproj b/example/example.xcodeproj/project.pbxproj index e2402e5..0815d40 100644 --- a/example/example.xcodeproj/project.pbxproj +++ b/example/example.xcodeproj/project.pbxproj @@ -7,97 +7,116 @@ objects = { /* Begin PBXBuildFile section */ - 06765053D7BFBBEB43E77B23 /* StartDragSurfaceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E8DA47AF2B265F778E74D4DA /* StartDragSurfaceCmd.cpp */; }; - 14566DCD28D35A80428886C4 /* SelTexCoordCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 27453C6FAE9B674FD694508D /* SelTexCoordCmd.cpp */; }; - 1CD33E884D9E3358252E82A1 /* ofxToggle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 907C5B5E104864A2D3A25745 /* ofxToggle.cpp */; }; - 1F4453EA1589AD79F4B34493 /* RadioList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4048CA09E6AAB5F673CBD2F0 /* RadioList.cpp */; }; - 21B18AC78EBFC1FD28C614D5 /* TextureMappingMode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B16277019B0C4B684E1B063E /* TextureMappingMode.cpp */; }; - 23963D6D8F0085D5DD2DF394 /* TogglePerspectiveCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 655142313A378162E3929785 /* TogglePerspectiveCmd.cpp */; }; - 25F5CD753AF35B53464E56AE /* MvTexCoordCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0739F09627790055C959BBF4 /* MvTexCoordCmd.cpp */; }; - 274AEF0299D77E27C0C5B205 /* ProjectionEditorWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 18DA1B30717C876AA19CEEC0 /* ProjectionEditorWidget.cpp */; }; - 28F5415281F8D09BBC098355 /* TranslateCanvasCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 03FCF5559C2A6AB79D947767 /* TranslateCanvasCmd.cpp */; }; - 2A9AFA74E0EF07E58AC11382 /* QuadSurface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B9ECBF061BABECA9C2341372 /* QuadSurface.cpp */; }; - 2AB23B34A18E47DB0D742387 /* CrossSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2DDA3608BED55BC67A9DAFF5 /* CrossSource.cpp */; }; - 2E9E05C9FFCE15172A701335 /* SettingsLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 33DD6E4350FD51C68B7E65F0 /* SettingsLoader.cpp */; }; - 36A98A331EAE1D0A19998A59 /* SaveTexCoordPosCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 60F40691CD9DE4DEE1768FE9 /* SaveTexCoordPosCmd.cpp */; }; - 3B90107DB9BF4857E357FCA8 /* ofxPiMapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 16DB3860ECC0D672B08DE71C /* ofxPiMapper.cpp */; }; - 401140F3B7FA4412935BB121 /* Application.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1B3B1807E9CFC3FFBA4DBBEF /* Application.cpp */; }; - 4280FE72330EE80A9929046F /* Settings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4A0800123A129E9BC12ED207 /* Settings.cpp */; }; - 42AB7CD7DFB89209AB951942 /* ProjectionMappingMode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1BCA96396113AAF56D66C844 /* ProjectionMappingMode.cpp */; }; - 42BCE929D520D8872171239A /* CircleJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 62F01592304CB7995200EF7B /* CircleJoint.cpp */; }; - 483908258D00B98B4BE69F07 /* ofxLabel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78D67A00EB899FAC09430597 /* ofxLabel.cpp */; }; - 4A53BFBA57F4AD16FB9D2D24 /* PresentationMode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64156CB2D856E4CE0FBBED96 /* PresentationMode.cpp */; }; - 4BF21A290FA6FE26B87B8971 /* SetNextSourceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4FFBE499412CC8DD07163E91 /* SetNextSourceCmd.cpp */; }; - 4D2D4455339FC8C955091C88 /* TextureEditorWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 413E846B881CCADC897A8A40 /* TextureEditorWidget.cpp */; }; - 580602DA874A9CF9E850DEEE /* AddGridColCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 231337763726D333E0B3D56C /* AddGridColCmd.cpp */; }; - 5826FF4F63DC430E90AFDA5E /* RmGridRowCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F3538B8AF69CAB7C215FA1EF /* RmGridRowCmd.cpp */; }; - 588E33B9B0BD6F5A2E4DF31D /* OMXPlayerCache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F7B0806EEA8012D629BE363C /* OMXPlayerCache.cpp */; }; - 5A4349E9754D6FA14C0F2A3A /* tinyxmlparser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC5DA1C87211D4F6377DA719 /* tinyxmlparser.cpp */; }; - 5CBB2AB3A60F65431D7B555D /* ofxButton.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C88333E71C9457E441C33474 /* ofxButton.cpp */; }; - 6056983B92E88B475FF04299 /* MvSelectionCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7D386994DF359F3BD1E66480 /* MvSelectionCmd.cpp */; }; - 60C8089351E49CF344577098 /* SelNextTexCoordCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 784FFEB8D108EC916343AB97 /* SelNextTexCoordCmd.cpp */; }; - 63B57AC5BF4EF088491E0317 /* ofxXmlSettings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 50DF87D612C5AAE17AAFA6C0 /* ofxXmlSettings.cpp */; }; - 63DB0907B2ACDF9E6F2D9925 /* GridWarpSurface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2D2400AC1A64EDE5E990C56C /* GridWarpSurface.cpp */; }; - 6438655B2AE4DDA2743241EC /* ToggleAnimatedSourceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D020B9B28609D071E21BB76 /* ToggleAnimatedSourceCmd.cpp */; }; - 6500BFD07CA93EFD8A162B25 /* SetSourceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7F58FFED7FBFC49573FF65E4 /* SetSourceCmd.cpp */; }; - 67FF225B68ECC1942C833BFE /* SelNextSurfaceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC98A68C64BFC941D0B31EE9 /* SelNextSurfaceCmd.cpp */; }; - 7002E598586957E5F20E69A7 /* SelVertexCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A2282B1E05458C3B2BBCE568 /* SelVertexCmd.cpp */; }; - 7702233BBFB6E8D9E8B93CBC /* FboSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C61C1F4F1A1ED2660B1D6EDC /* FboSource.cpp */; }; - 7DAB7D546F81A93336034BF7 /* SelPrevSurfaceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6DF54314CF2B45BF195B84C6 /* SelPrevSurfaceCmd.cpp */; }; - 800748EF057A284D9DA82F60 /* SelPrevTexCoordCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F7E88D3956480E0CBAA21641 /* SelPrevTexCoordCmd.cpp */; }; - 82643E358DF270B9EC939699 /* RmGridColCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A50F23D868C48DF9799BC788 /* RmGridColCmd.cpp */; }; - 837220E80EB56CD44AD27F2A /* ofxSlider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15F2C6477A769C03A56D1401 /* ofxSlider.cpp */; }; - 83CACB24937919003F2F9B63 /* HomographyHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E2333CF877EE99EBE86F4B0F /* HomographyHelper.cpp */; }; - 84172554824F6959BA431E33 /* SetPresetCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15C9B02F2CF08112845CD074 /* SetPresetCmd.cpp */; }; - 845DC872C79A75F7B5FABC02 /* MvSurfaceVertCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 18041C8871E17DE3E60BFF95 /* MvSurfaceVertCmd.cpp */; }; - 85649EB44DE8F0A3BF8430F9 /* SurfaceManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 836B103542A52C63B004410C /* SurfaceManager.cpp */; }; - 856AA354D08AB4B323081444 /* ofxBaseGui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9604B925D32EE39065747725 /* ofxBaseGui.cpp */; }; - 868F230C6074263277ED9B07 /* BaseJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E78D1B2A6DB0856BF8ED1FE /* BaseJoint.cpp */; }; - 892923A127FC7C57469FD078 /* BaseSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4132974E14024E74E320F5 /* BaseSource.cpp */; }; - 8A3D6CE0A4338871766366B6 /* SurfaceHighlightWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 69A4D26FC0AD01A86571540D /* SurfaceHighlightWidget.cpp */; }; - 8CA6C92E3D4F91750BC469FF /* MvAllTexCoordsCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DBAFA0B7AFEA589CA5167204 /* MvAllTexCoordsCmd.cpp */; }; - 8E8F94DC506856A4E92FBA8A /* LayerPanelWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 57990D37D728C5711AACBA9F /* LayerPanelWidget.cpp */; }; - 90DE06EA59944C1BEA539719 /* SetApplicationModeCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8D3CB0B9A827AFA479349BBE /* SetApplicationModeCmd.cpp */; }; - 92527EF632E7EC0E96BC329C /* MediaServer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 18385A4F4BC87806616D4F7F /* MediaServer.cpp */; }; - 933A2227713C720CEFF80FD9 /* tinyxml.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2B40EDA85BEB63E46785BC29 /* tinyxml.cpp */; }; - 93760FE8B10EBD4081251E10 /* CmdManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BDBE053980FA01FAD543D782 /* CmdManager.cpp */; }; - 95CB0A22296B3DB402835DCF /* ImageSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 61291E56B7882C9E9B8F119B /* ImageSource.cpp */; }; - 973F560586CB3735581265E7 /* DeselectTexCoordCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E8CE817DF3028A4345376E7D /* DeselectTexCoordCmd.cpp */; }; - 9C194C9F4ACD67CD61FBD30D /* HexagonSurface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCBB74B9531974E1D5DA019B /* HexagonSurface.cpp */; }; - 9CAA3B0DFD59840998C832DA /* TextureHighlightWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 941AD8B39C28D08B9F31077A /* TextureHighlightWidget.cpp */; }; - 9D44DC88EF9E7991B4A09951 /* tinyxmlerror.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 832BDC407620CDBA568B713D /* tinyxmlerror.cpp */; }; - 9F968AD3A115328F4BFE5D71 /* BaseSurface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F2C0EE541190D47BF5911C0A /* BaseSurface.cpp */; }; - A0C1CAB7B9C59DDDC960EB62 /* VideoSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5407451FA68C27B2AAE644A6 /* VideoSource.cpp */; }; - A3E23EF00463364A9FE3860C /* CustomSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 76B40246C8B90C1CA4074BB7 /* CustomSource.cpp */; }; - A6EE8D8F3CA590EF6D7FAFA6 /* SetTexMapDrawModeCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 49BE2D8F2A2A57F4EBF83FF4 /* SetTexMapDrawModeCmd.cpp */; }; - A75658250711ADE2C05FC781 /* MvLayerDnCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EC481BAB32B250D3EA41AF9E /* MvLayerDnCmd.cpp */; }; - AA98F23DF9897F2241EF3968 /* SourceSelectionMode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4245228145B1AA737F49CF14 /* SourceSelectionMode.cpp */; }; - B01F972DDDA5F21EF4C8B99D /* RmSurfaceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B7C308F8B76FCB909581A580 /* RmSurfaceCmd.cpp */; }; - B1EEE5A7EC1876072BF8F7FE /* AddSurfaceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B323D7489A7B26A63443444F /* AddSurfaceCmd.cpp */; }; - B266578FC55D23BFEBC042E7 /* ofxGuiGroup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ECF8674C7975F1063C5E30CA /* ofxGuiGroup.cpp */; }; - B27F2ADC894A4C463E892AFE /* SurfaceFactory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 03FA94CA9F193C816DE4253F /* SurfaceFactory.cpp */; }; - B56FE57CC35806596D38118C /* ofxSliderGroup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 802251BAF1B35B1D67B32FD0 /* ofxSliderGroup.cpp */; }; - B9654D0EF43BCA228B330ED7 /* SelPrevVertexCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3B29C3846BA06080344C1D1E /* SelPrevVertexCmd.cpp */; }; - C0EB2D2E383BA9DE417ADB38 /* TriangleSurface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3DF2D82EA37D8C7A5F686EA5 /* TriangleSurface.cpp */; }; - C34B66987F4DA38C21AF325B /* MvLayerUpCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E52D4207C299D5886C8FD2C7 /* MvLayerUpCmd.cpp */; }; - C3A616FB3A463C17E327F395 /* SurfaceStack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1C080561EC053F17BB86A668 /* SurfaceStack.cpp */; }; - C4D6DA9B890E612343FD059F /* ApplicationBaseMode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9631F04A0875ADEB45970DE8 /* ApplicationBaseMode.cpp */; }; - C8D7FA44AA0565654A681157 /* DeselectSurfaceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6E80EE6FB0CC304A6CA287BB /* DeselectSurfaceCmd.cpp */; }; - D61A46C1800537BA43C7884F /* DuplicateSurfaceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C656C28252AD5E9E09FA2162 /* DuplicateSurfaceCmd.cpp */; }; - D88BA6D139757ED4E1669796 /* AddGridRowCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3E4A0386460638A781A7AC84 /* AddGridRowCmd.cpp */; }; - DB8FC60C7512DB810C92625B /* DirectoryWatcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 20F9951441118A70E8D55E13 /* DirectoryWatcher.cpp */; }; - E327ACE85A208BAFACD1B7C7 /* ScaleSurfaceFromToCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 34B45EB44DED0A47FBAD30F4 /* ScaleSurfaceFromToCmd.cpp */; }; + 01815E8C1FE7D59200C35E93 /* Application.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815DE01FE7D53700C35E93 /* Application.cpp */; }; + 01815E8D1FE7D59200C35E93 /* ApplicationBaseMode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815DE31FE7D53700C35E93 /* ApplicationBaseMode.cpp */; }; + 01815E8E1FE7D59200C35E93 /* PresentationMode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815DE51FE7D53700C35E93 /* PresentationMode.cpp */; }; + 01815E8F1FE7D59200C35E93 /* ProjectionMappingMode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815DE71FE7D53700C35E93 /* ProjectionMappingMode.cpp */; }; + 01815E901FE7D59200C35E93 /* SourceSelectionMode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815DE91FE7D53700C35E93 /* SourceSelectionMode.cpp */; }; + 01815E911FE7D59200C35E93 /* TextureMappingMode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815DEB1FE7D53700C35E93 /* TextureMappingMode.cpp */; }; + 01815E921FE7D59200C35E93 /* SettingsLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815DED1FE7D53700C35E93 /* SettingsLoader.cpp */; }; + 01815E931FE7D59200C35E93 /* AddGridColCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815DF01FE7D53700C35E93 /* AddGridColCmd.cpp */; }; + 01815E941FE7D59200C35E93 /* AddGridRowCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815DF21FE7D53700C35E93 /* AddGridRowCmd.cpp */; }; + 01815E951FE7D59200C35E93 /* AddSurfaceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815DF41FE7D53700C35E93 /* AddSurfaceCmd.cpp */; }; + 01815E961FE7D59200C35E93 /* ClearSurfacesCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815DF71FE7D53700C35E93 /* ClearSurfacesCmd.cpp */; }; + 01815E971FE7D59200C35E93 /* CmdManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815DF91FE7D53700C35E93 /* CmdManager.cpp */; }; + 01815E981FE7D59200C35E93 /* DeselectSurfaceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815DFB1FE7D53700C35E93 /* DeselectSurfaceCmd.cpp */; }; + 01815E991FE7D59200C35E93 /* DeselectTexCoordCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815DFD1FE7D53700C35E93 /* DeselectTexCoordCmd.cpp */; }; + 01815E9A1FE7D59200C35E93 /* DuplicateSurfaceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815DFF1FE7D53700C35E93 /* DuplicateSurfaceCmd.cpp */; }; + 01815E9B1FE7D59200C35E93 /* MvAllTexCoordsCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E011FE7D53700C35E93 /* MvAllTexCoordsCmd.cpp */; }; + 01815E9C1FE7D59200C35E93 /* MvLayerDnCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E031FE7D53700C35E93 /* MvLayerDnCmd.cpp */; }; + 01815E9D1FE7D59200C35E93 /* MvLayerUpCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E051FE7D53700C35E93 /* MvLayerUpCmd.cpp */; }; + 01815E9E1FE7D59200C35E93 /* MvSelectionCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E071FE7D53700C35E93 /* MvSelectionCmd.cpp */; }; + 01815E9F1FE7D59200C35E93 /* MvSurfaceVertCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E091FE7D53700C35E93 /* MvSurfaceVertCmd.cpp */; }; + 01815EA01FE7D59200C35E93 /* MvTexCoordCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E0B1FE7D53700C35E93 /* MvTexCoordCmd.cpp */; }; + 01815EA11FE7D59200C35E93 /* RmGridColCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E0D1FE7D53700C35E93 /* RmGridColCmd.cpp */; }; + 01815EA21FE7D59200C35E93 /* RmGridRowCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E0F1FE7D53700C35E93 /* RmGridRowCmd.cpp */; }; + 01815EA31FE7D59200C35E93 /* RmSurfaceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E111FE7D53700C35E93 /* RmSurfaceCmd.cpp */; }; + 01815EA41FE7D59200C35E93 /* SaveTexCoordPosCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E131FE7D53700C35E93 /* SaveTexCoordPosCmd.cpp */; }; + 01815EA51FE7D59200C35E93 /* ScaleSurfaceFromToCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E151FE7D53700C35E93 /* ScaleSurfaceFromToCmd.cpp */; }; + 01815EA61FE7D59200C35E93 /* SelNextSurfaceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E171FE7D53700C35E93 /* SelNextSurfaceCmd.cpp */; }; + 01815EA71FE7D59200C35E93 /* SelNextTexCoordCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E191FE7D53700C35E93 /* SelNextTexCoordCmd.cpp */; }; + 01815EA81FE7D59200C35E93 /* SelNextVertexCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E1B1FE7D53700C35E93 /* SelNextVertexCmd.cpp */; }; + 01815EA91FE7D59200C35E93 /* SelPrevSurfaceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E1D1FE7D53700C35E93 /* SelPrevSurfaceCmd.cpp */; }; + 01815EAA1FE7D59200C35E93 /* SelPrevTexCoordCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E1F1FE7D53700C35E93 /* SelPrevTexCoordCmd.cpp */; }; + 01815EAB1FE7D59200C35E93 /* SelPrevVertexCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E211FE7D53700C35E93 /* SelPrevVertexCmd.cpp */; }; + 01815EAC1FE7D59200C35E93 /* SelSurfaceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E231FE7D53700C35E93 /* SelSurfaceCmd.cpp */; }; + 01815EAD1FE7D59200C35E93 /* SelTexCoordCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E251FE7D53700C35E93 /* SelTexCoordCmd.cpp */; }; + 01815EAE1FE7D59200C35E93 /* SelVertexCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E271FE7D53700C35E93 /* SelVertexCmd.cpp */; }; + 01815EAF1FE7D59200C35E93 /* SetApplicationModeCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E291FE7D53700C35E93 /* SetApplicationModeCmd.cpp */; }; + 01815EB01FE7D59200C35E93 /* SetNextSourceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E2B1FE7D53700C35E93 /* SetNextSourceCmd.cpp */; }; + 01815EB11FE7D59200C35E93 /* SetPresetCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E2D1FE7D53700C35E93 /* SetPresetCmd.cpp */; }; + 01815EB21FE7D59200C35E93 /* SetSourceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E2F1FE7D53700C35E93 /* SetSourceCmd.cpp */; }; + 01815EB31FE7D59200C35E93 /* SetTexMapDrawModeCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E311FE7D53700C35E93 /* SetTexMapDrawModeCmd.cpp */; }; + 01815EB41FE7D59200C35E93 /* StartDragSurfaceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E331FE7D53700C35E93 /* StartDragSurfaceCmd.cpp */; }; + 01815EB51FE7D59200C35E93 /* ToggleAnimatedSourceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E351FE7D53700C35E93 /* ToggleAnimatedSourceCmd.cpp */; }; + 01815EB61FE7D59200C35E93 /* TogglePerspectiveCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E371FE7D53700C35E93 /* TogglePerspectiveCmd.cpp */; }; + 01815EB71FE7D59200C35E93 /* TranslateCanvasCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E391FE7D53700C35E93 /* TranslateCanvasCmd.cpp */; }; + 01815EB81FE7D59200C35E93 /* Gui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E3C1FE7D53700C35E93 /* Gui.cpp */; }; + 01815EB91FE7D59200C35E93 /* LayerPanelWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E401FE7D53700C35E93 /* LayerPanelWidget.cpp */; }; + 01815EBA1FE7D59200C35E93 /* ProjectionEditorWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E421FE7D53700C35E93 /* ProjectionEditorWidget.cpp */; }; + 01815EBB1FE7D59200C35E93 /* ScaleWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E441FE7D53700C35E93 /* ScaleWidget.cpp */; }; + 01815EBC1FE7D59200C35E93 /* SourcesEditorWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E461FE7D53700C35E93 /* SourcesEditorWidget.cpp */; }; + 01815EBD1FE7D59200C35E93 /* SurfaceHighlightWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E481FE7D53700C35E93 /* SurfaceHighlightWidget.cpp */; }; + 01815EBE1FE7D59200C35E93 /* TextureEditorWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E4A1FE7D53700C35E93 /* TextureEditorWidget.cpp */; }; + 01815EBF1FE7D59200C35E93 /* TextureHighlightWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E4C1FE7D53700C35E93 /* TextureHighlightWidget.cpp */; }; + 01815EC01FE7D59200C35E93 /* Info.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E4F1FE7D53700C35E93 /* Info.cpp */; }; + 01815EC11FE7D59200C35E93 /* DirectoryWatcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E521FE7D53700C35E93 /* DirectoryWatcher.cpp */; }; + 01815EC21FE7D59200C35E93 /* MediaServer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E541FE7D53700C35E93 /* MediaServer.cpp */; }; + 01815EC31FE7D59200C35E93 /* ofxPiMapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E571FE7D53700C35E93 /* ofxPiMapper.cpp */; }; + 01815EC41FE7D59200C35E93 /* BaseSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E5A1FE7D53700C35E93 /* BaseSource.cpp */; }; + 01815EC51FE7D59200C35E93 /* FboSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E5C1FE7D53700C35E93 /* FboSource.cpp */; }; + 01815EC61FE7D59200C35E93 /* ImageSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E5E1FE7D53700C35E93 /* ImageSource.cpp */; }; + 01815EC71FE7D59200C35E93 /* magSlide.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E601FE7D53700C35E93 /* magSlide.cpp */; }; + 01815EC81FE7D59200C35E93 /* magSlideShowSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E621FE7D53700C35E93 /* magSlideShowSource.cpp */; }; + 01815EC91FE7D59200C35E93 /* magSlideTransition.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E641FE7D53700C35E93 /* magSlideTransition.cpp */; }; + 01815ECA1FE7D59200C35E93 /* magSlideTransitionFactory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E661FE7D53700C35E93 /* magSlideTransitionFactory.cpp */; }; + 01815ECB1FE7D59200C35E93 /* OMXPlayerCache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E681FE7D53700C35E93 /* OMXPlayerCache.cpp */; }; + 01815ECC1FE7D59200C35E93 /* VideoSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E6C1FE7D53700C35E93 /* VideoSource.cpp */; }; + 01815ECD1FE7D59200C35E93 /* BaseSurface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E6F1FE7D53700C35E93 /* BaseSurface.cpp */; }; + 01815ECE1FE7D59200C35E93 /* GridWarpSurface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E711FE7D53700C35E93 /* GridWarpSurface.cpp */; }; + 01815ECF1FE7D59200C35E93 /* HexagonSurface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E731FE7D53700C35E93 /* HexagonSurface.cpp */; }; + 01815ED01FE7D59200C35E93 /* QuadSurface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E751FE7D53700C35E93 /* QuadSurface.cpp */; }; + 01815ED11FE7D59200C35E93 /* SurfaceFactory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E771FE7D53700C35E93 /* SurfaceFactory.cpp */; }; + 01815ED21FE7D59200C35E93 /* SurfaceManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E791FE7D53700C35E93 /* SurfaceManager.cpp */; }; + 01815ED31FE7D59200C35E93 /* SurfaceStack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E7B1FE7D53700C35E93 /* SurfaceStack.cpp */; }; + 01815ED41FE7D59200C35E93 /* TriangleSurface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E7E1FE7D53700C35E93 /* TriangleSurface.cpp */; }; + 01815ED51FE7D59200C35E93 /* BaseJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E811FE7D53700C35E93 /* BaseJoint.cpp */; }; + 01815ED61FE7D59200C35E93 /* CircleJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E831FE7D53700C35E93 /* CircleJoint.cpp */; }; + 01815ED71FE7D59200C35E93 /* RadioList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E871FE7D53700C35E93 /* RadioList.cpp */; }; + 01815ED81FE7D59200C35E93 /* HomographyHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01815E8A1FE7D53700C35E93 /* HomographyHelper.cpp */; }; + 3926483B192224DA0008A7F5 /* ofxXmlSettings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 39264839192224DA0008A7F5 /* ofxXmlSettings.cpp */; }; + 39264841192224F90008A7F5 /* tinyxml.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3926483D192224F90008A7F5 /* tinyxml.cpp */; }; + 39264842192224F90008A7F5 /* tinyxmlerror.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3926483F192224F90008A7F5 /* tinyxmlerror.cpp */; }; + 39264843192224F90008A7F5 /* tinyxmlparser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 39264840192224F90008A7F5 /* tinyxmlparser.cpp */; }; + 3933D5D319BB87BD000ACA55 /* ofxBaseGui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3933D5C219BB87BD000ACA55 /* ofxBaseGui.cpp */; }; + 3933D5D419BB87BD000ACA55 /* ofxButton.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3933D5C419BB87BD000ACA55 /* ofxButton.cpp */; }; + 3933D5D519BB87BD000ACA55 /* ofxGuiGroup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3933D5C719BB87BD000ACA55 /* ofxGuiGroup.cpp */; }; + 3933D5D619BB87BD000ACA55 /* ofxLabel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3933D5C919BB87BD000ACA55 /* ofxLabel.cpp */; }; + 3933D5D719BB87BD000ACA55 /* ofxPanel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3933D5CB19BB87BD000ACA55 /* ofxPanel.cpp */; }; + 3933D5D819BB87BD000ACA55 /* ofxSlider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3933D5CD19BB87BD000ACA55 /* ofxSlider.cpp */; }; + 3933D5D919BB87BD000ACA55 /* ofxSliderGroup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3933D5CF19BB87BD000ACA55 /* ofxSliderGroup.cpp */; }; + 3933D5DA19BB87BD000ACA55 /* ofxToggle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3933D5D119BB87BD000ACA55 /* ofxToggle.cpp */; }; + 397EFC821A09047C0009286E /* CustomSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 397EFC801A09047C0009286E /* CustomSource.cpp */; }; + 3995C20A1C79069B00123352 /* Settings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3995C2091C79069B00123352 /* Settings.cpp */; }; + 399953691BD54FF600D5B1F1 /* CrossSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 399953671BD54FF600D5B1F1 /* CrossSource.cpp */; }; E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4328148138ABC890047C5CB /* openFrameworksDebug.a */; }; + E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9710E8CC7DD009D7055 /* AGL.framework */; }; + E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */; }; + E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */; }; + E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */; }; + E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */; }; + E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9770E8CC7DD009D7055 /* CoreServices.framework */; }; + E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9790E8CC7DD009D7055 /* OpenGL.framework */; }; + E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */; }; E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1D0A3A1BDC003C02F2 /* main.cpp */; }; E4B69E210A3A1BDC003C02F2 /* ofApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */; }; - E5D631612E039E04B1736E76 /* SelSurfaceCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0B691BBAB665F94F09B2C276 /* SelSurfaceCmd.cpp */; }; - E6D82F5A7B22E9FB46DEEF15 /* SelNextVertexCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 140C0677F9F5A5D3B8A89AC4 /* SelNextVertexCmd.cpp */; }; - EA700B09626C8413C92EF860 /* Gui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DCC24025AD26B4554B000385 /* Gui.cpp */; }; - F06AE014F869282B7F7CE84C /* ScaleWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F4EDCDF597954EF25E7AD416 /* ScaleWidget.cpp */; }; - F285EB3169F1566CA3D93C20 /* ofxPanel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E112B3AEBEA2C091BF2B40AE /* ofxPanel.cpp */; }; - F3EACD31EE5E141FF66C48BD /* Info.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EEF2CEBAFFABCFED915AFCE1 /* Info.cpp */; }; - F9A6B58165791682416A1685 /* ClearSurfacesCmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 962C349E8F4E59FF335AB2A6 /* ClearSurfacesCmd.cpp */; }; - FB03F0A6D7866DFC55F519EB /* SourcesEditorWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 36F59D2F886152DF4115A218 /* SourcesEditorWidget.cpp */; }; + E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424410CC5A17004149E2 /* AppKit.framework */; }; + E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424510CC5A17004149E2 /* Cocoa.framework */; }; + E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424610CC5A17004149E2 /* IOKit.framework */; }; + E4EB6799138ADC1D00A09F29 /* GLUT.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBAB23BE13894E4700AA2426 /* GLUT.framework */; }; + E7E077E515D3B63C0020DFD4 /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7E077E415D3B63C0020DFD4 /* CoreVideo.framework */; }; + E7E077E815D3B6510020DFD4 /* QTKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7E077E715D3B6510020DFD4 /* QTKit.framework */; }; + E7F985F815E0DEA3003869B5 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7F985F515E0DE99003869B5 /* Accelerate.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -130,197 +149,220 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 00756183A9E41665E637AC23 /* AddSurfaceCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = AddSurfaceCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/AddSurfaceCmd.h; sourceTree = SOURCE_ROOT; }; - 01DCC0911400F9ACF5B65578 /* ofxXmlSettings.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxXmlSettings.h; path = ../../../addons/ofxXmlSettings/src/ofxXmlSettings.h; sourceTree = SOURCE_ROOT; }; - 03FA94CA9F193C816DE4253F /* SurfaceFactory.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SurfaceFactory.cpp; path = ../../../addons/ofxPiMapper/src/Surfaces/SurfaceFactory.cpp; sourceTree = SOURCE_ROOT; }; - 03FCF5559C2A6AB79D947767 /* TranslateCanvasCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = TranslateCanvasCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/TranslateCanvasCmd.cpp; sourceTree = SOURCE_ROOT; }; - 0739F09627790055C959BBF4 /* MvTexCoordCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = MvTexCoordCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/MvTexCoordCmd.cpp; sourceTree = SOURCE_ROOT; }; - 0A1DAC09F322AE313A40706D /* ofxToggle.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxToggle.h; path = ../../../addons/ofxGui/src/ofxToggle.h; sourceTree = SOURCE_ROOT; }; - 0B4D5D37A2AE7AB30D726C16 /* HexagonSurface.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = HexagonSurface.h; path = ../../../addons/ofxPiMapper/src/Surfaces/HexagonSurface.h; sourceTree = SOURCE_ROOT; }; - 0B691BBAB665F94F09B2C276 /* SelSurfaceCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SelSurfaceCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/SelSurfaceCmd.cpp; sourceTree = SOURCE_ROOT; }; - 140C0677F9F5A5D3B8A89AC4 /* SelNextVertexCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SelNextVertexCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/SelNextVertexCmd.cpp; sourceTree = SOURCE_ROOT; }; - 15C9B02F2CF08112845CD074 /* SetPresetCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SetPresetCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/SetPresetCmd.cpp; sourceTree = SOURCE_ROOT; }; - 15F2C6477A769C03A56D1401 /* ofxSlider.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxSlider.cpp; path = ../../../addons/ofxGui/src/ofxSlider.cpp; sourceTree = SOURCE_ROOT; }; - 16DB3860ECC0D672B08DE71C /* ofxPiMapper.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxPiMapper.cpp; path = ../../../addons/ofxPiMapper/src/ofxPiMapper.cpp; sourceTree = SOURCE_ROOT; }; - 17972C3384311464011667D9 /* BaseCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = BaseCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/BaseCmd.h; sourceTree = SOURCE_ROOT; }; - 17E65988300FBD9AAA2CD0CA /* ofxGui.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxGui.h; path = ../../../addons/ofxGui/src/ofxGui.h; sourceTree = SOURCE_ROOT; }; - 18041C8871E17DE3E60BFF95 /* MvSurfaceVertCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = MvSurfaceVertCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/MvSurfaceVertCmd.cpp; sourceTree = SOURCE_ROOT; }; - 18385A4F4BC87806616D4F7F /* MediaServer.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = MediaServer.cpp; path = ../../../addons/ofxPiMapper/src/MediaServer/MediaServer.cpp; sourceTree = SOURCE_ROOT; }; - 18DA1B30717C876AA19CEEC0 /* ProjectionEditorWidget.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ProjectionEditorWidget.cpp; path = ../../../addons/ofxPiMapper/src/Gui/Widgets/ProjectionEditorWidget.cpp; sourceTree = SOURCE_ROOT; }; - 1B3B1807E9CFC3FFBA4DBBEF /* Application.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = Application.cpp; path = ../../../addons/ofxPiMapper/src/Application/Application.cpp; sourceTree = SOURCE_ROOT; }; - 1BCA96396113AAF56D66C844 /* ProjectionMappingMode.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ProjectionMappingMode.cpp; path = ../../../addons/ofxPiMapper/src/Application/Modes/ProjectionMappingMode.cpp; sourceTree = SOURCE_ROOT; }; - 1C080561EC053F17BB86A668 /* SurfaceStack.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SurfaceStack.cpp; path = ../../../addons/ofxPiMapper/src/Surfaces/SurfaceStack.cpp; sourceTree = SOURCE_ROOT; }; - 1C0DA2561397A7DE0246858B /* ofxGuiGroup.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxGuiGroup.h; path = ../../../addons/ofxGui/src/ofxGuiGroup.h; sourceTree = SOURCE_ROOT; }; - 1CE256C39E514ABD16FCCB87 /* SelPrevTexCoordCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SelPrevTexCoordCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/SelPrevTexCoordCmd.h; sourceTree = SOURCE_ROOT; }; - 1E73070DAC89F6A796BFF464 /* AddGridColCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = AddGridColCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/AddGridColCmd.h; sourceTree = SOURCE_ROOT; }; - 20F9951441118A70E8D55E13 /* DirectoryWatcher.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = DirectoryWatcher.cpp; path = ../../../addons/ofxPiMapper/src/MediaServer/DirectoryWatcher.cpp; sourceTree = SOURCE_ROOT; }; - 21167F26AF957606289D4A4A /* ToggleAnimatedSourceCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ToggleAnimatedSourceCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/ToggleAnimatedSourceCmd.h; sourceTree = SOURCE_ROOT; }; - 23118136CC7FFA920626B6C3 /* TriangleSurface.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = TriangleSurface.h; path = ../../../addons/ofxPiMapper/src/Surfaces/TriangleSurface.h; sourceTree = SOURCE_ROOT; }; - 231337763726D333E0B3D56C /* AddGridColCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = AddGridColCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/AddGridColCmd.cpp; sourceTree = SOURCE_ROOT; }; - 23A4F0C9DE47BA73B3E49EDE /* ScaleWidget.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ScaleWidget.h; path = ../../../addons/ofxPiMapper/src/Gui/Widgets/ScaleWidget.h; sourceTree = SOURCE_ROOT; }; - 25322223D3976D5F33DCCBF6 /* MvAllTexCoordsCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = MvAllTexCoordsCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/MvAllTexCoordsCmd.h; sourceTree = SOURCE_ROOT; }; - 27453C6FAE9B674FD694508D /* SelTexCoordCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SelTexCoordCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/SelTexCoordCmd.cpp; sourceTree = SOURCE_ROOT; }; - 2834D88A62CD23F3DE2C47D1 /* ofxButton.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxButton.h; path = ../../../addons/ofxGui/src/ofxButton.h; sourceTree = SOURCE_ROOT; }; - 2B40EDA85BEB63E46785BC29 /* tinyxml.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = tinyxml.cpp; path = ../../../addons/ofxXmlSettings/libs/tinyxml.cpp; sourceTree = SOURCE_ROOT; }; - 2D2400AC1A64EDE5E990C56C /* GridWarpSurface.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = GridWarpSurface.cpp; path = ../../../addons/ofxPiMapper/src/Surfaces/GridWarpSurface.cpp; sourceTree = SOURCE_ROOT; }; - 2DDA3608BED55BC67A9DAFF5 /* CrossSource.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = CrossSource.cpp; path = src/CrossSource.cpp; sourceTree = SOURCE_ROOT; }; - 2F04FFB9BAC4575E214C0DED /* CmdManager.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = CmdManager.h; path = ../../../addons/ofxPiMapper/src/Commands/CmdManager.h; sourceTree = SOURCE_ROOT; }; - 3074E4094F76555C299E5D8E /* ClearSurfacesCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ClearSurfacesCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/ClearSurfacesCmd.h; sourceTree = SOURCE_ROOT; }; - 30ED82F4A70B5B95CCEF7744 /* SelNextSurfaceCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SelNextSurfaceCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/SelNextSurfaceCmd.h; sourceTree = SOURCE_ROOT; }; - 3157007392BD114EAB99F470 /* TextureMappingMode.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = TextureMappingMode.h; path = ../../../addons/ofxPiMapper/src/Application/Modes/TextureMappingMode.h; sourceTree = SOURCE_ROOT; }; - 33DD6E4350FD51C68B7E65F0 /* SettingsLoader.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SettingsLoader.cpp; path = ../../../addons/ofxPiMapper/src/Application/SettingsLoader.cpp; sourceTree = SOURCE_ROOT; }; - 34B45EB44DED0A47FBAD30F4 /* ScaleSurfaceFromToCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ScaleSurfaceFromToCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/ScaleSurfaceFromToCmd.cpp; sourceTree = SOURCE_ROOT; }; - 36F59D2F886152DF4115A218 /* SourcesEditorWidget.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SourcesEditorWidget.cpp; path = ../../../addons/ofxPiMapper/src/Gui/Widgets/SourcesEditorWidget.cpp; sourceTree = SOURCE_ROOT; }; - 378C962CF2DB945F38DE674A /* ofxPiMapper.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxPiMapper.h; path = ../../../addons/ofxPiMapper/src/ofxPiMapper.h; sourceTree = SOURCE_ROOT; }; - 37E7F66B151AB6A0AB6FC244 /* Info.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = Info.h; path = ../../../addons/ofxPiMapper/src/Info/Info.h; sourceTree = SOURCE_ROOT; }; - 3B043509B19E37C383D7CA87 /* PresentationMode.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = PresentationMode.h; path = ../../../addons/ofxPiMapper/src/Application/Modes/PresentationMode.h; sourceTree = SOURCE_ROOT; }; - 3B29C3846BA06080344C1D1E /* SelPrevVertexCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SelPrevVertexCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/SelPrevVertexCmd.cpp; sourceTree = SOURCE_ROOT; }; - 3BD72CBAFD427FC6E9F164D2 /* OMXPlayerCache.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = OMXPlayerCache.h; path = ../../../addons/ofxPiMapper/src/Sources/OMXPlayerCache.h; sourceTree = SOURCE_ROOT; }; - 3BD822DBD11904D1D6E27E76 /* TextureHighlightWidget.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = TextureHighlightWidget.h; path = ../../../addons/ofxPiMapper/src/Gui/Widgets/TextureHighlightWidget.h; sourceTree = SOURCE_ROOT; }; - 3DF2D82EA37D8C7A5F686EA5 /* TriangleSurface.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = TriangleSurface.cpp; path = ../../../addons/ofxPiMapper/src/Surfaces/TriangleSurface.cpp; sourceTree = SOURCE_ROOT; }; - 3E4A0386460638A781A7AC84 /* AddGridRowCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = AddGridRowCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/AddGridRowCmd.cpp; sourceTree = SOURCE_ROOT; }; - 4048CA09E6AAB5F673CBD2F0 /* RadioList.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = RadioList.cpp; path = ../../../addons/ofxPiMapper/src/UserInterface/RadioList.cpp; sourceTree = SOURCE_ROOT; }; - 4130052A043CF3D3C2BA943A /* EditorType.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = EditorType.h; path = ../../../addons/ofxPiMapper/src/UserInterface/EditorType.h; sourceTree = SOURCE_ROOT; }; - 413E846B881CCADC897A8A40 /* TextureEditorWidget.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = TextureEditorWidget.cpp; path = ../../../addons/ofxPiMapper/src/Gui/Widgets/TextureEditorWidget.cpp; sourceTree = SOURCE_ROOT; }; - 4244A1B9B55BD7BA7ED2F547 /* TogglePerspectiveCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = TogglePerspectiveCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/TogglePerspectiveCmd.h; sourceTree = SOURCE_ROOT; }; - 4245228145B1AA737F49CF14 /* SourceSelectionMode.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SourceSelectionMode.cpp; path = ../../../addons/ofxPiMapper/src/Application/Modes/SourceSelectionMode.cpp; sourceTree = SOURCE_ROOT; }; - 438B20A2C548E18384498186 /* LayerPanelWidget.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = LayerPanelWidget.h; path = ../../../addons/ofxPiMapper/src/Gui/Widgets/LayerPanelWidget.h; sourceTree = SOURCE_ROOT; }; - 47AB6134D2AB2F3EB10096A3 /* SelPrevVertexCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SelPrevVertexCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/SelPrevVertexCmd.h; sourceTree = SOURCE_ROOT; }; - 49BE2D8F2A2A57F4EBF83FF4 /* SetTexMapDrawModeCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SetTexMapDrawModeCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/SetTexMapDrawModeCmd.cpp; sourceTree = SOURCE_ROOT; }; - 4A0800123A129E9BC12ED207 /* Settings.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = Settings.cpp; path = src/Settings.cpp; sourceTree = SOURCE_ROOT; }; - 4FFBE499412CC8DD07163E91 /* SetNextSourceCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SetNextSourceCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/SetNextSourceCmd.cpp; sourceTree = SOURCE_ROOT; }; - 50DF87D612C5AAE17AAFA6C0 /* ofxXmlSettings.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxXmlSettings.cpp; path = ../../../addons/ofxXmlSettings/src/ofxXmlSettings.cpp; sourceTree = SOURCE_ROOT; }; - 5235D939D249EAF47F9A5EB5 /* SettingsLoader.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SettingsLoader.h; path = ../../../addons/ofxPiMapper/src/Application/SettingsLoader.h; sourceTree = SOURCE_ROOT; }; - 52AFA1F08C420992CAAAE648 /* ofxSlider.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxSlider.h; path = ../../../addons/ofxGui/src/ofxSlider.h; sourceTree = SOURCE_ROOT; }; - 5407451FA68C27B2AAE644A6 /* VideoSource.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = VideoSource.cpp; path = ../../../addons/ofxPiMapper/src/Sources/VideoSource.cpp; sourceTree = SOURCE_ROOT; }; - 56A68D8E68FF141B5EB1ADF6 /* SetSourceCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SetSourceCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/SetSourceCmd.h; sourceTree = SOURCE_ROOT; }; - 57990D37D728C5711AACBA9F /* LayerPanelWidget.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = LayerPanelWidget.cpp; path = ../../../addons/ofxPiMapper/src/Gui/Widgets/LayerPanelWidget.cpp; sourceTree = SOURCE_ROOT; }; - 57D73BCD8A871590F140EFF6 /* ApplicationBaseMode.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ApplicationBaseMode.h; path = ../../../addons/ofxPiMapper/src/Application/Modes/ApplicationBaseMode.h; sourceTree = SOURCE_ROOT; }; - 5AB104FC7812B4F42B8E1540 /* TranslateCanvasCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = TranslateCanvasCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/TranslateCanvasCmd.h; sourceTree = SOURCE_ROOT; }; - 5D020B9B28609D071E21BB76 /* ToggleAnimatedSourceCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ToggleAnimatedSourceCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/ToggleAnimatedSourceCmd.cpp; sourceTree = SOURCE_ROOT; }; - 5EBDBF5E7887C574E1FCC1B5 /* StartDragSurfaceCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = StartDragSurfaceCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/StartDragSurfaceCmd.h; sourceTree = SOURCE_ROOT; }; - 60F40691CD9DE4DEE1768FE9 /* SaveTexCoordPosCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SaveTexCoordPosCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/SaveTexCoordPosCmd.cpp; sourceTree = SOURCE_ROOT; }; - 61291E56B7882C9E9B8F119B /* ImageSource.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ImageSource.cpp; path = ../../../addons/ofxPiMapper/src/Sources/ImageSource.cpp; sourceTree = SOURCE_ROOT; }; - 61481FB831430E35A18ABD02 /* MvLayerDnCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = MvLayerDnCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/MvLayerDnCmd.h; sourceTree = SOURCE_ROOT; }; - 62C9C3E62D4BEF04CF54C031 /* ScaleSurfaceFromToCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ScaleSurfaceFromToCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/ScaleSurfaceFromToCmd.h; sourceTree = SOURCE_ROOT; }; - 62F01592304CB7995200EF7B /* CircleJoint.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = CircleJoint.cpp; path = ../../../addons/ofxPiMapper/src/UserInterface/CircleJoint.cpp; sourceTree = SOURCE_ROOT; }; - 64156CB2D856E4CE0FBBED96 /* PresentationMode.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = PresentationMode.cpp; path = ../../../addons/ofxPiMapper/src/Application/Modes/PresentationMode.cpp; sourceTree = SOURCE_ROOT; }; - 655142313A378162E3929785 /* TogglePerspectiveCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = TogglePerspectiveCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/TogglePerspectiveCmd.cpp; sourceTree = SOURCE_ROOT; }; - 6592BB3592290B34832D7607 /* SurfaceStack.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SurfaceStack.h; path = ../../../addons/ofxPiMapper/src/Surfaces/SurfaceStack.h; sourceTree = SOURCE_ROOT; }; - 6595C215972AFFC7EE685F5A /* SourceType.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SourceType.h; path = ../../../addons/ofxPiMapper/src/Sources/SourceType.h; sourceTree = SOURCE_ROOT; }; - 65DBA05D19177D2853D54196 /* DeselectSurfaceCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = DeselectSurfaceCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/DeselectSurfaceCmd.h; sourceTree = SOURCE_ROOT; }; - 69A4D26FC0AD01A86571540D /* SurfaceHighlightWidget.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SurfaceHighlightWidget.cpp; path = ../../../addons/ofxPiMapper/src/Gui/Widgets/SurfaceHighlightWidget.cpp; sourceTree = SOURCE_ROOT; }; - 6DF54314CF2B45BF195B84C6 /* SelPrevSurfaceCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SelPrevSurfaceCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/SelPrevSurfaceCmd.cpp; sourceTree = SOURCE_ROOT; }; - 6E80EE6FB0CC304A6CA287BB /* DeselectSurfaceCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = DeselectSurfaceCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/DeselectSurfaceCmd.cpp; sourceTree = SOURCE_ROOT; }; - 718E523D4BDDCFAC394B3EA5 /* DeselectTexCoordCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = DeselectTexCoordCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/DeselectTexCoordCmd.h; sourceTree = SOURCE_ROOT; }; - 7344B3B35CD0188D1283EC59 /* SurfaceManager.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SurfaceManager.h; path = ../../../addons/ofxPiMapper/src/Surfaces/SurfaceManager.h; sourceTree = SOURCE_ROOT; }; - 74CA4C78136F233FB90B7D3E /* RmGridRowCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = RmGridRowCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/RmGridRowCmd.h; sourceTree = SOURCE_ROOT; }; - 76B40246C8B90C1CA4074BB7 /* CustomSource.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = CustomSource.cpp; path = src/CustomSource.cpp; sourceTree = SOURCE_ROOT; }; - 775FD891C1E381F87BF33C82 /* AddGridRowCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = AddGridRowCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/AddGridRowCmd.h; sourceTree = SOURCE_ROOT; }; - 784FFEB8D108EC916343AB97 /* SelNextTexCoordCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SelNextTexCoordCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/SelNextTexCoordCmd.cpp; sourceTree = SOURCE_ROOT; }; - 78D67A00EB899FAC09430597 /* ofxLabel.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxLabel.cpp; path = ../../../addons/ofxGui/src/ofxLabel.cpp; sourceTree = SOURCE_ROOT; }; - 79A9ED756DB70790A67E3EF8 /* SelVertexCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SelVertexCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/SelVertexCmd.h; sourceTree = SOURCE_ROOT; }; - 7A3290FC65714D0C4D02B8BA /* Gui.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = Gui.h; path = ../../../addons/ofxPiMapper/src/Gui/Gui.h; sourceTree = SOURCE_ROOT; }; - 7C89C324499F9541394245C9 /* DirectoryWatcher.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = DirectoryWatcher.h; path = ../../../addons/ofxPiMapper/src/MediaServer/DirectoryWatcher.h; sourceTree = SOURCE_ROOT; }; - 7D386994DF359F3BD1E66480 /* MvSelectionCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = MvSelectionCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/MvSelectionCmd.cpp; sourceTree = SOURCE_ROOT; }; - 7E78D1B2A6DB0856BF8ED1FE /* BaseJoint.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = BaseJoint.cpp; path = ../../../addons/ofxPiMapper/src/UserInterface/BaseJoint.cpp; sourceTree = SOURCE_ROOT; }; - 7F58FFED7FBFC49573FF65E4 /* SetSourceCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SetSourceCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/SetSourceCmd.cpp; sourceTree = SOURCE_ROOT; }; - 7FD330C204479B5A5021D286 /* SourceSelectionMode.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SourceSelectionMode.h; path = ../../../addons/ofxPiMapper/src/Application/Modes/SourceSelectionMode.h; sourceTree = SOURCE_ROOT; }; - 802251BAF1B35B1D67B32FD0 /* ofxSliderGroup.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxSliderGroup.cpp; path = ../../../addons/ofxGui/src/ofxSliderGroup.cpp; sourceTree = SOURCE_ROOT; }; - 832BDC407620CDBA568B713D /* tinyxmlerror.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = tinyxmlerror.cpp; path = ../../../addons/ofxXmlSettings/libs/tinyxmlerror.cpp; sourceTree = SOURCE_ROOT; }; - 836B103542A52C63B004410C /* SurfaceManager.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SurfaceManager.cpp; path = ../../../addons/ofxPiMapper/src/Surfaces/SurfaceManager.cpp; sourceTree = SOURCE_ROOT; }; - 851AF875A70187105CA91C1A /* BaseJoint.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = BaseJoint.h; path = ../../../addons/ofxPiMapper/src/UserInterface/BaseJoint.h; sourceTree = SOURCE_ROOT; }; - 87F26B4B24CBD428AD9EEBAA /* ofxBaseGui.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxBaseGui.h; path = ../../../addons/ofxGui/src/ofxBaseGui.h; sourceTree = SOURCE_ROOT; }; - 89449E3044D456F7DE7BEA14 /* ofxPanel.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxPanel.h; path = ../../../addons/ofxGui/src/ofxPanel.h; sourceTree = SOURCE_ROOT; }; - 8D3CB0B9A827AFA479349BBE /* SetApplicationModeCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SetApplicationModeCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/SetApplicationModeCmd.cpp; sourceTree = SOURCE_ROOT; }; - 8F41EDB76644426680B2FA2B /* MvTexCoordCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = MvTexCoordCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/MvTexCoordCmd.h; sourceTree = SOURCE_ROOT; }; - 906696B07A716E4057D32B1E /* QuadSurface.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = QuadSurface.h; path = ../../../addons/ofxPiMapper/src/Surfaces/QuadSurface.h; sourceTree = SOURCE_ROOT; }; - 907C5B5E104864A2D3A25745 /* ofxToggle.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxToggle.cpp; path = ../../../addons/ofxGui/src/ofxToggle.cpp; sourceTree = SOURCE_ROOT; }; - 912C6A870E22496CEA43AC85 /* SetTexMapDrawModeCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SetTexMapDrawModeCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/SetTexMapDrawModeCmd.h; sourceTree = SOURCE_ROOT; }; - 928068952444E81EF818B25C /* Application.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = Application.h; path = ../../../addons/ofxPiMapper/src/Application/Application.h; sourceTree = SOURCE_ROOT; }; - 933CAE5B2DEC9DDABEA95E34 /* MvLayerUpCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = MvLayerUpCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/MvLayerUpCmd.h; sourceTree = SOURCE_ROOT; }; - 941AD8B39C28D08B9F31077A /* TextureHighlightWidget.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = TextureHighlightWidget.cpp; path = ../../../addons/ofxPiMapper/src/Gui/Widgets/TextureHighlightWidget.cpp; sourceTree = SOURCE_ROOT; }; - 94DC897871B221F060A6A70F /* GuiBaseWidget.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = GuiBaseWidget.h; path = ../../../addons/ofxPiMapper/src/Gui/Widgets/GuiBaseWidget.h; sourceTree = SOURCE_ROOT; }; - 9604B925D32EE39065747725 /* ofxBaseGui.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxBaseGui.cpp; path = ../../../addons/ofxGui/src/ofxBaseGui.cpp; sourceTree = SOURCE_ROOT; }; - 962C349E8F4E59FF335AB2A6 /* ClearSurfacesCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ClearSurfacesCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/ClearSurfacesCmd.cpp; sourceTree = SOURCE_ROOT; }; - 9631F04A0875ADEB45970DE8 /* ApplicationBaseMode.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ApplicationBaseMode.cpp; path = ../../../addons/ofxPiMapper/src/Application/Modes/ApplicationBaseMode.cpp; sourceTree = SOURCE_ROOT; }; - 9B4D98CCBAB57278C96169D4 /* CircleJoint.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = CircleJoint.h; path = ../../../addons/ofxPiMapper/src/UserInterface/CircleJoint.h; sourceTree = SOURCE_ROOT; }; - 9F39733296358C3B0F85BB15 /* SurfaceHighlightWidget.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SurfaceHighlightWidget.h; path = ../../../addons/ofxPiMapper/src/Gui/Widgets/SurfaceHighlightWidget.h; sourceTree = SOURCE_ROOT; }; - A1A567FBAE494BF84E54E83C /* Settings.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = Settings.h; path = src/Settings.h; sourceTree = SOURCE_ROOT; }; - A2282B1E05458C3B2BBCE568 /* SelVertexCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SelVertexCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/SelVertexCmd.cpp; sourceTree = SOURCE_ROOT; }; - A50F23D868C48DF9799BC788 /* RmGridColCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = RmGridColCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/RmGridColCmd.cpp; sourceTree = SOURCE_ROOT; }; - A5CBAE57D2ADED1CAB6123AF /* SelNextTexCoordCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SelNextTexCoordCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/SelNextTexCoordCmd.h; sourceTree = SOURCE_ROOT; }; - AB4132974E14024E74E320F5 /* BaseSource.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = BaseSource.cpp; path = ../../../addons/ofxPiMapper/src/Sources/BaseSource.cpp; sourceTree = SOURCE_ROOT; }; - AB96773D1B378AE8018EA33E /* TextureEditorWidget.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = TextureEditorWidget.h; path = ../../../addons/ofxPiMapper/src/Gui/Widgets/TextureEditorWidget.h; sourceTree = SOURCE_ROOT; }; - B0B66559E2F530AE989510C0 /* CustomSource.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = CustomSource.h; path = src/CustomSource.h; sourceTree = SOURCE_ROOT; }; - B16277019B0C4B684E1B063E /* TextureMappingMode.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = TextureMappingMode.cpp; path = ../../../addons/ofxPiMapper/src/Application/Modes/TextureMappingMode.cpp; sourceTree = SOURCE_ROOT; }; - B178ED5CA7F76AAA6E49E191 /* SurfaceType.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SurfaceType.h; path = ../../../addons/ofxPiMapper/src/Surfaces/SurfaceType.h; sourceTree = SOURCE_ROOT; }; - B21E7E5F548EEA92F368040B /* tinyxml.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = tinyxml.h; path = ../../../addons/ofxXmlSettings/libs/tinyxml.h; sourceTree = SOURCE_ROOT; }; - B323D7489A7B26A63443444F /* AddSurfaceCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = AddSurfaceCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/AddSurfaceCmd.cpp; sourceTree = SOURCE_ROOT; }; - B390802358C73D3757AC9B4E /* BaseSource.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = BaseSource.h; path = ../../../addons/ofxPiMapper/src/Sources/BaseSource.h; sourceTree = SOURCE_ROOT; }; - B562DE1EEC28EE801EB4F483 /* SourcesEditorWidget.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SourcesEditorWidget.h; path = ../../../addons/ofxPiMapper/src/Gui/Widgets/SourcesEditorWidget.h; sourceTree = SOURCE_ROOT; }; - B5C793F4FEA3AA065347B61C /* SelPrevSurfaceCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SelPrevSurfaceCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/SelPrevSurfaceCmd.h; sourceTree = SOURCE_ROOT; }; - B7C308F8B76FCB909581A580 /* RmSurfaceCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = RmSurfaceCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/RmSurfaceCmd.cpp; sourceTree = SOURCE_ROOT; }; - B7DD3DE526EF824DDAF42B09 /* GuiMode.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = GuiMode.h; path = ../../../addons/ofxPiMapper/src/UserInterface/GuiMode.h; sourceTree = SOURCE_ROOT; }; - B87C60311EC1FE841C1ECD89 /* ofxLabel.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxLabel.h; path = ../../../addons/ofxGui/src/ofxLabel.h; sourceTree = SOURCE_ROOT; }; - B9ECBF061BABECA9C2341372 /* QuadSurface.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = QuadSurface.cpp; path = ../../../addons/ofxPiMapper/src/Surfaces/QuadSurface.cpp; sourceTree = SOURCE_ROOT; }; - BA5B6BB795E2A24B2DBA22BD /* SelNextVertexCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SelNextVertexCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/SelNextVertexCmd.h; sourceTree = SOURCE_ROOT; }; - BA65337B3E631788AE2D018B /* RmGridColCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = RmGridColCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/RmGridColCmd.h; sourceTree = SOURCE_ROOT; }; - BCB571865BB25BC586CF80EC /* SetPresetCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SetPresetCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/SetPresetCmd.h; sourceTree = SOURCE_ROOT; }; - BCBB74B9531974E1D5DA019B /* HexagonSurface.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = HexagonSurface.cpp; path = ../../../addons/ofxPiMapper/src/Surfaces/HexagonSurface.cpp; sourceTree = SOURCE_ROOT; }; - BDBE053980FA01FAD543D782 /* CmdManager.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = CmdManager.cpp; path = ../../../addons/ofxPiMapper/src/Commands/CmdManager.cpp; sourceTree = SOURCE_ROOT; }; - C27244405258CD6DF424D0F3 /* ProjectionEditorWidget.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ProjectionEditorWidget.h; path = ../../../addons/ofxPiMapper/src/Gui/Widgets/ProjectionEditorWidget.h; sourceTree = SOURCE_ROOT; }; - C2D03F683EE589F55D47CFFD /* VideoSource.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = VideoSource.h; path = ../../../addons/ofxPiMapper/src/Sources/VideoSource.h; sourceTree = SOURCE_ROOT; }; - C2E5DC1692A11AF5D981F8FA /* Mode.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = Mode.h; path = ../../../addons/ofxPiMapper/src/Mode.h; sourceTree = SOURCE_ROOT; }; - C3E8D103B72D02E063B29082 /* GridWarpSurface.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = GridWarpSurface.h; path = ../../../addons/ofxPiMapper/src/Surfaces/GridWarpSurface.h; sourceTree = SOURCE_ROOT; }; - C61C1F4F1A1ED2660B1D6EDC /* FboSource.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = FboSource.cpp; path = ../../../addons/ofxPiMapper/src/Sources/FboSource.cpp; sourceTree = SOURCE_ROOT; }; - C656C28252AD5E9E09FA2162 /* DuplicateSurfaceCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = DuplicateSurfaceCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/DuplicateSurfaceCmd.cpp; sourceTree = SOURCE_ROOT; }; - C70D8946940288799E82131E /* ofxSliderGroup.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxSliderGroup.h; path = ../../../addons/ofxGui/src/ofxSliderGroup.h; sourceTree = SOURCE_ROOT; }; - C88333E71C9457E441C33474 /* ofxButton.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxButton.cpp; path = ../../../addons/ofxGui/src/ofxButton.cpp; sourceTree = SOURCE_ROOT; }; - CB4461BD6FC059D946144727 /* SelSurfaceCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SelSurfaceCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/SelSurfaceCmd.h; sourceTree = SOURCE_ROOT; }; - D05D5FBB2B2779B022A5DD04 /* SelTexCoordCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SelTexCoordCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/SelTexCoordCmd.h; sourceTree = SOURCE_ROOT; }; - D463EA9CC53D21A44CB9D6EF /* SaveTexCoordPosCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SaveTexCoordPosCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/SaveTexCoordPosCmd.h; sourceTree = SOURCE_ROOT; }; - D4CFAEBB593AD070E04F106C /* MvSelectionCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = MvSelectionCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/MvSelectionCmd.h; sourceTree = SOURCE_ROOT; }; - D565A612B1DF2837C94A6081 /* MvSurfaceVertCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = MvSurfaceVertCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/MvSurfaceVertCmd.h; sourceTree = SOURCE_ROOT; }; - D58C36B60BB72C7336042FB9 /* SurfaceFactory.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SurfaceFactory.h; path = ../../../addons/ofxPiMapper/src/Surfaces/SurfaceFactory.h; sourceTree = SOURCE_ROOT; }; - D627BF76B06B3FF4F1516C5E /* HomographyHelper.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = HomographyHelper.h; path = ../../../addons/ofxPiMapper/src/Utils/HomographyHelper.h; sourceTree = SOURCE_ROOT; }; - D7287CBE5600FEE9EE1B1AEA /* RmSurfaceCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = RmSurfaceCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/RmSurfaceCmd.h; sourceTree = SOURCE_ROOT; }; - DBAFA0B7AFEA589CA5167204 /* MvAllTexCoordsCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = MvAllTexCoordsCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/MvAllTexCoordsCmd.cpp; sourceTree = SOURCE_ROOT; }; - DC69ACA83F14B8A2AE20197B /* RadioList.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = RadioList.h; path = ../../../addons/ofxPiMapper/src/UserInterface/RadioList.h; sourceTree = SOURCE_ROOT; }; - DC8107E8E56AFFB933FE8962 /* ProjectionMappingMode.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ProjectionMappingMode.h; path = ../../../addons/ofxPiMapper/src/Application/Modes/ProjectionMappingMode.h; sourceTree = SOURCE_ROOT; }; - DCC24025AD26B4554B000385 /* Gui.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = Gui.cpp; path = ../../../addons/ofxPiMapper/src/Gui/Gui.cpp; sourceTree = SOURCE_ROOT; }; - E112B3AEBEA2C091BF2B40AE /* ofxPanel.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxPanel.cpp; path = ../../../addons/ofxGui/src/ofxPanel.cpp; sourceTree = SOURCE_ROOT; }; - E2333CF877EE99EBE86F4B0F /* HomographyHelper.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = HomographyHelper.cpp; path = ../../../addons/ofxPiMapper/src/Utils/HomographyHelper.cpp; sourceTree = SOURCE_ROOT; }; + 01815DE01FE7D53700C35E93 /* Application.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = Application.cpp; sourceTree = "<group>"; }; + 01815DE11FE7D53700C35E93 /* Application.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Application.h; sourceTree = "<group>"; }; + 01815DE31FE7D53700C35E93 /* ApplicationBaseMode.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ApplicationBaseMode.cpp; sourceTree = "<group>"; }; + 01815DE41FE7D53700C35E93 /* ApplicationBaseMode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ApplicationBaseMode.h; sourceTree = "<group>"; }; + 01815DE51FE7D53700C35E93 /* PresentationMode.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = PresentationMode.cpp; sourceTree = "<group>"; }; + 01815DE61FE7D53700C35E93 /* PresentationMode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PresentationMode.h; sourceTree = "<group>"; }; + 01815DE71FE7D53700C35E93 /* ProjectionMappingMode.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ProjectionMappingMode.cpp; sourceTree = "<group>"; }; + 01815DE81FE7D53700C35E93 /* ProjectionMappingMode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ProjectionMappingMode.h; sourceTree = "<group>"; }; + 01815DE91FE7D53700C35E93 /* SourceSelectionMode.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SourceSelectionMode.cpp; sourceTree = "<group>"; }; + 01815DEA1FE7D53700C35E93 /* SourceSelectionMode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SourceSelectionMode.h; sourceTree = "<group>"; }; + 01815DEB1FE7D53700C35E93 /* TextureMappingMode.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TextureMappingMode.cpp; sourceTree = "<group>"; }; + 01815DEC1FE7D53700C35E93 /* TextureMappingMode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TextureMappingMode.h; sourceTree = "<group>"; }; + 01815DED1FE7D53700C35E93 /* SettingsLoader.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SettingsLoader.cpp; sourceTree = "<group>"; }; + 01815DEE1FE7D53700C35E93 /* SettingsLoader.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SettingsLoader.h; sourceTree = "<group>"; }; + 01815DF01FE7D53700C35E93 /* AddGridColCmd.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = AddGridColCmd.cpp; sourceTree = "<group>"; }; + 01815DF11FE7D53700C35E93 /* AddGridColCmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AddGridColCmd.h; sourceTree = "<group>"; }; + 01815DF21FE7D53700C35E93 /* AddGridRowCmd.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = AddGridRowCmd.cpp; sourceTree = "<group>"; }; + 01815DF31FE7D53700C35E93 /* AddGridRowCmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AddGridRowCmd.h; sourceTree = "<group>"; }; + 01815DF41FE7D53700C35E93 /* AddSurfaceCmd.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = AddSurfaceCmd.cpp; sourceTree = "<group>"; }; + 01815DF51FE7D53700C35E93 /* AddSurfaceCmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AddSurfaceCmd.h; sourceTree = "<group>"; }; + 01815DF61FE7D53700C35E93 /* BaseCmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BaseCmd.h; sourceTree = "<group>"; }; + 01815DF71FE7D53700C35E93 /* ClearSurfacesCmd.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ClearSurfacesCmd.cpp; sourceTree = "<group>"; }; + 01815DF81FE7D53700C35E93 /* ClearSurfacesCmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ClearSurfacesCmd.h; sourceTree = "<group>"; }; + 01815DF91FE7D53700C35E93 /* CmdManager.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = CmdManager.cpp; sourceTree = "<group>"; }; + 01815DFA1FE7D53700C35E93 /* CmdManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CmdManager.h; sourceTree = "<group>"; }; + 01815DFB1FE7D53700C35E93 /* DeselectSurfaceCmd.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = DeselectSurfaceCmd.cpp; sourceTree = "<group>"; }; + 01815DFC1FE7D53700C35E93 /* DeselectSurfaceCmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DeselectSurfaceCmd.h; sourceTree = "<group>"; }; + 01815DFD1FE7D53700C35E93 /* DeselectTexCoordCmd.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = DeselectTexCoordCmd.cpp; sourceTree = "<group>"; }; + 01815DFE1FE7D53700C35E93 /* DeselectTexCoordCmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DeselectTexCoordCmd.h; sourceTree = "<group>"; }; + 01815DFF1FE7D53700C35E93 /* DuplicateSurfaceCmd.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = DuplicateSurfaceCmd.cpp; sourceTree = "<group>"; }; + 01815E001FE7D53700C35E93 /* DuplicateSurfaceCmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DuplicateSurfaceCmd.h; sourceTree = "<group>"; }; + 01815E011FE7D53700C35E93 /* MvAllTexCoordsCmd.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = MvAllTexCoordsCmd.cpp; sourceTree = "<group>"; }; + 01815E021FE7D53700C35E93 /* MvAllTexCoordsCmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MvAllTexCoordsCmd.h; sourceTree = "<group>"; }; + 01815E031FE7D53700C35E93 /* MvLayerDnCmd.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = MvLayerDnCmd.cpp; sourceTree = "<group>"; }; + 01815E041FE7D53700C35E93 /* MvLayerDnCmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MvLayerDnCmd.h; sourceTree = "<group>"; }; + 01815E051FE7D53700C35E93 /* MvLayerUpCmd.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = MvLayerUpCmd.cpp; sourceTree = "<group>"; }; + 01815E061FE7D53700C35E93 /* MvLayerUpCmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MvLayerUpCmd.h; sourceTree = "<group>"; }; + 01815E071FE7D53700C35E93 /* MvSelectionCmd.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = MvSelectionCmd.cpp; sourceTree = "<group>"; }; + 01815E081FE7D53700C35E93 /* MvSelectionCmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MvSelectionCmd.h; sourceTree = "<group>"; }; + 01815E091FE7D53700C35E93 /* MvSurfaceVertCmd.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = MvSurfaceVertCmd.cpp; sourceTree = "<group>"; }; + 01815E0A1FE7D53700C35E93 /* MvSurfaceVertCmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MvSurfaceVertCmd.h; sourceTree = "<group>"; }; + 01815E0B1FE7D53700C35E93 /* MvTexCoordCmd.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = MvTexCoordCmd.cpp; sourceTree = "<group>"; }; + 01815E0C1FE7D53700C35E93 /* MvTexCoordCmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MvTexCoordCmd.h; sourceTree = "<group>"; }; + 01815E0D1FE7D53700C35E93 /* RmGridColCmd.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = RmGridColCmd.cpp; sourceTree = "<group>"; }; + 01815E0E1FE7D53700C35E93 /* RmGridColCmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RmGridColCmd.h; sourceTree = "<group>"; }; + 01815E0F1FE7D53700C35E93 /* RmGridRowCmd.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = RmGridRowCmd.cpp; sourceTree = "<group>"; }; + 01815E101FE7D53700C35E93 /* RmGridRowCmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RmGridRowCmd.h; sourceTree = "<group>"; }; + 01815E111FE7D53700C35E93 /* RmSurfaceCmd.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = RmSurfaceCmd.cpp; sourceTree = "<group>"; }; + 01815E121FE7D53700C35E93 /* RmSurfaceCmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RmSurfaceCmd.h; sourceTree = "<group>"; }; + 01815E131FE7D53700C35E93 /* SaveTexCoordPosCmd.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SaveTexCoordPosCmd.cpp; sourceTree = "<group>"; }; + 01815E141FE7D53700C35E93 /* SaveTexCoordPosCmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SaveTexCoordPosCmd.h; sourceTree = "<group>"; }; + 01815E151FE7D53700C35E93 /* ScaleSurfaceFromToCmd.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ScaleSurfaceFromToCmd.cpp; sourceTree = "<group>"; }; + 01815E161FE7D53700C35E93 /* ScaleSurfaceFromToCmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ScaleSurfaceFromToCmd.h; sourceTree = "<group>"; }; + 01815E171FE7D53700C35E93 /* SelNextSurfaceCmd.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SelNextSurfaceCmd.cpp; sourceTree = "<group>"; }; + 01815E181FE7D53700C35E93 /* SelNextSurfaceCmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SelNextSurfaceCmd.h; sourceTree = "<group>"; }; + 01815E191FE7D53700C35E93 /* SelNextTexCoordCmd.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SelNextTexCoordCmd.cpp; sourceTree = "<group>"; }; + 01815E1A1FE7D53700C35E93 /* SelNextTexCoordCmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SelNextTexCoordCmd.h; sourceTree = "<group>"; }; + 01815E1B1FE7D53700C35E93 /* SelNextVertexCmd.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SelNextVertexCmd.cpp; sourceTree = "<group>"; }; + 01815E1C1FE7D53700C35E93 /* SelNextVertexCmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SelNextVertexCmd.h; sourceTree = "<group>"; }; + 01815E1D1FE7D53700C35E93 /* SelPrevSurfaceCmd.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SelPrevSurfaceCmd.cpp; sourceTree = "<group>"; }; + 01815E1E1FE7D53700C35E93 /* SelPrevSurfaceCmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SelPrevSurfaceCmd.h; sourceTree = "<group>"; }; + 01815E1F1FE7D53700C35E93 /* SelPrevTexCoordCmd.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SelPrevTexCoordCmd.cpp; sourceTree = "<group>"; }; + 01815E201FE7D53700C35E93 /* SelPrevTexCoordCmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SelPrevTexCoordCmd.h; sourceTree = "<group>"; }; + 01815E211FE7D53700C35E93 /* SelPrevVertexCmd.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SelPrevVertexCmd.cpp; sourceTree = "<group>"; }; + 01815E221FE7D53700C35E93 /* SelPrevVertexCmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SelPrevVertexCmd.h; sourceTree = "<group>"; }; + 01815E231FE7D53700C35E93 /* SelSurfaceCmd.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SelSurfaceCmd.cpp; sourceTree = "<group>"; }; + 01815E241FE7D53700C35E93 /* SelSurfaceCmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SelSurfaceCmd.h; sourceTree = "<group>"; }; + 01815E251FE7D53700C35E93 /* SelTexCoordCmd.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SelTexCoordCmd.cpp; sourceTree = "<group>"; }; + 01815E261FE7D53700C35E93 /* SelTexCoordCmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SelTexCoordCmd.h; sourceTree = "<group>"; }; + 01815E271FE7D53700C35E93 /* SelVertexCmd.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SelVertexCmd.cpp; sourceTree = "<group>"; }; + 01815E281FE7D53700C35E93 /* SelVertexCmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SelVertexCmd.h; sourceTree = "<group>"; }; + 01815E291FE7D53700C35E93 /* SetApplicationModeCmd.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SetApplicationModeCmd.cpp; sourceTree = "<group>"; }; + 01815E2A1FE7D53700C35E93 /* SetApplicationModeCmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SetApplicationModeCmd.h; sourceTree = "<group>"; }; + 01815E2B1FE7D53700C35E93 /* SetNextSourceCmd.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SetNextSourceCmd.cpp; sourceTree = "<group>"; }; + 01815E2C1FE7D53700C35E93 /* SetNextSourceCmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SetNextSourceCmd.h; sourceTree = "<group>"; }; + 01815E2D1FE7D53700C35E93 /* SetPresetCmd.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SetPresetCmd.cpp; sourceTree = "<group>"; }; + 01815E2E1FE7D53700C35E93 /* SetPresetCmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SetPresetCmd.h; sourceTree = "<group>"; }; + 01815E2F1FE7D53700C35E93 /* SetSourceCmd.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SetSourceCmd.cpp; sourceTree = "<group>"; }; + 01815E301FE7D53700C35E93 /* SetSourceCmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SetSourceCmd.h; sourceTree = "<group>"; }; + 01815E311FE7D53700C35E93 /* SetTexMapDrawModeCmd.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SetTexMapDrawModeCmd.cpp; sourceTree = "<group>"; }; + 01815E321FE7D53700C35E93 /* SetTexMapDrawModeCmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SetTexMapDrawModeCmd.h; sourceTree = "<group>"; }; + 01815E331FE7D53700C35E93 /* StartDragSurfaceCmd.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = StartDragSurfaceCmd.cpp; sourceTree = "<group>"; }; + 01815E341FE7D53700C35E93 /* StartDragSurfaceCmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StartDragSurfaceCmd.h; sourceTree = "<group>"; }; + 01815E351FE7D53700C35E93 /* ToggleAnimatedSourceCmd.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ToggleAnimatedSourceCmd.cpp; sourceTree = "<group>"; }; + 01815E361FE7D53700C35E93 /* ToggleAnimatedSourceCmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ToggleAnimatedSourceCmd.h; sourceTree = "<group>"; }; + 01815E371FE7D53700C35E93 /* TogglePerspectiveCmd.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TogglePerspectiveCmd.cpp; sourceTree = "<group>"; }; + 01815E381FE7D53700C35E93 /* TogglePerspectiveCmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TogglePerspectiveCmd.h; sourceTree = "<group>"; }; + 01815E391FE7D53700C35E93 /* TranslateCanvasCmd.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TranslateCanvasCmd.cpp; sourceTree = "<group>"; }; + 01815E3A1FE7D53700C35E93 /* TranslateCanvasCmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TranslateCanvasCmd.h; sourceTree = "<group>"; }; + 01815E3C1FE7D53700C35E93 /* Gui.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = Gui.cpp; sourceTree = "<group>"; }; + 01815E3D1FE7D53700C35E93 /* Gui.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Gui.h; sourceTree = "<group>"; }; + 01815E3F1FE7D53700C35E93 /* GuiBaseWidget.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GuiBaseWidget.h; sourceTree = "<group>"; }; + 01815E401FE7D53700C35E93 /* LayerPanelWidget.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = LayerPanelWidget.cpp; sourceTree = "<group>"; }; + 01815E411FE7D53700C35E93 /* LayerPanelWidget.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LayerPanelWidget.h; sourceTree = "<group>"; }; + 01815E421FE7D53700C35E93 /* ProjectionEditorWidget.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ProjectionEditorWidget.cpp; sourceTree = "<group>"; }; + 01815E431FE7D53700C35E93 /* ProjectionEditorWidget.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ProjectionEditorWidget.h; sourceTree = "<group>"; }; + 01815E441FE7D53700C35E93 /* ScaleWidget.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ScaleWidget.cpp; sourceTree = "<group>"; }; + 01815E451FE7D53700C35E93 /* ScaleWidget.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ScaleWidget.h; sourceTree = "<group>"; }; + 01815E461FE7D53700C35E93 /* SourcesEditorWidget.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SourcesEditorWidget.cpp; sourceTree = "<group>"; }; + 01815E471FE7D53700C35E93 /* SourcesEditorWidget.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SourcesEditorWidget.h; sourceTree = "<group>"; }; + 01815E481FE7D53700C35E93 /* SurfaceHighlightWidget.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SurfaceHighlightWidget.cpp; sourceTree = "<group>"; }; + 01815E491FE7D53700C35E93 /* SurfaceHighlightWidget.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SurfaceHighlightWidget.h; sourceTree = "<group>"; }; + 01815E4A1FE7D53700C35E93 /* TextureEditorWidget.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TextureEditorWidget.cpp; sourceTree = "<group>"; }; + 01815E4B1FE7D53700C35E93 /* TextureEditorWidget.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TextureEditorWidget.h; sourceTree = "<group>"; }; + 01815E4C1FE7D53700C35E93 /* TextureHighlightWidget.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TextureHighlightWidget.cpp; sourceTree = "<group>"; }; + 01815E4D1FE7D53700C35E93 /* TextureHighlightWidget.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TextureHighlightWidget.h; sourceTree = "<group>"; }; + 01815E4F1FE7D53700C35E93 /* Info.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = Info.cpp; sourceTree = "<group>"; }; + 01815E501FE7D53700C35E93 /* Info.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Info.h; sourceTree = "<group>"; }; + 01815E521FE7D53700C35E93 /* DirectoryWatcher.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = DirectoryWatcher.cpp; sourceTree = "<group>"; }; + 01815E531FE7D53700C35E93 /* DirectoryWatcher.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DirectoryWatcher.h; sourceTree = "<group>"; }; + 01815E541FE7D53700C35E93 /* MediaServer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = MediaServer.cpp; sourceTree = "<group>"; }; + 01815E551FE7D53700C35E93 /* MediaServer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MediaServer.h; sourceTree = "<group>"; }; + 01815E561FE7D53700C35E93 /* Mode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Mode.h; sourceTree = "<group>"; }; + 01815E571FE7D53700C35E93 /* ofxPiMapper.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ofxPiMapper.cpp; sourceTree = "<group>"; }; + 01815E581FE7D53700C35E93 /* ofxPiMapper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ofxPiMapper.h; sourceTree = "<group>"; }; + 01815E5A1FE7D53700C35E93 /* BaseSource.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = BaseSource.cpp; sourceTree = "<group>"; }; + 01815E5B1FE7D53700C35E93 /* BaseSource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BaseSource.h; sourceTree = "<group>"; }; + 01815E5C1FE7D53700C35E93 /* FboSource.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = FboSource.cpp; sourceTree = "<group>"; }; + 01815E5D1FE7D53700C35E93 /* FboSource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FboSource.h; sourceTree = "<group>"; }; + 01815E5E1FE7D53700C35E93 /* ImageSource.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ImageSource.cpp; sourceTree = "<group>"; }; + 01815E5F1FE7D53700C35E93 /* ImageSource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ImageSource.h; sourceTree = "<group>"; }; + 01815E601FE7D53700C35E93 /* magSlide.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = magSlide.cpp; sourceTree = "<group>"; }; + 01815E611FE7D53700C35E93 /* magSlide.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = magSlide.h; sourceTree = "<group>"; }; + 01815E621FE7D53700C35E93 /* magSlideShowSource.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = magSlideShowSource.cpp; sourceTree = "<group>"; }; + 01815E631FE7D53700C35E93 /* magSlideShowSource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = magSlideShowSource.h; sourceTree = "<group>"; }; + 01815E641FE7D53700C35E93 /* magSlideTransition.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = magSlideTransition.cpp; sourceTree = "<group>"; }; + 01815E651FE7D53700C35E93 /* magSlideTransition.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = magSlideTransition.h; sourceTree = "<group>"; }; + 01815E661FE7D53700C35E93 /* magSlideTransitionFactory.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = magSlideTransitionFactory.cpp; sourceTree = "<group>"; }; + 01815E671FE7D53700C35E93 /* magSlideTransitionFactory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = magSlideTransitionFactory.h; sourceTree = "<group>"; }; + 01815E681FE7D53700C35E93 /* OMXPlayerCache.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = OMXPlayerCache.cpp; sourceTree = "<group>"; }; + 01815E691FE7D53700C35E93 /* OMXPlayerCache.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OMXPlayerCache.h; sourceTree = "<group>"; }; + 01815E6A1FE7D53700C35E93 /* SourceType.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SourceType.h; sourceTree = "<group>"; }; + 01815E6B1FE7D53700C35E93 /* SourceTypeHelper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SourceTypeHelper.h; sourceTree = "<group>"; }; + 01815E6C1FE7D53700C35E93 /* VideoSource.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = VideoSource.cpp; sourceTree = "<group>"; }; + 01815E6D1FE7D53700C35E93 /* VideoSource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VideoSource.h; sourceTree = "<group>"; }; + 01815E6F1FE7D53700C35E93 /* BaseSurface.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = BaseSurface.cpp; sourceTree = "<group>"; }; + 01815E701FE7D53700C35E93 /* BaseSurface.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BaseSurface.h; sourceTree = "<group>"; }; + 01815E711FE7D53700C35E93 /* GridWarpSurface.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = GridWarpSurface.cpp; sourceTree = "<group>"; }; + 01815E721FE7D53700C35E93 /* GridWarpSurface.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GridWarpSurface.h; sourceTree = "<group>"; }; + 01815E731FE7D53700C35E93 /* HexagonSurface.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = HexagonSurface.cpp; sourceTree = "<group>"; }; + 01815E741FE7D53700C35E93 /* HexagonSurface.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HexagonSurface.h; sourceTree = "<group>"; }; + 01815E751FE7D53700C35E93 /* QuadSurface.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = QuadSurface.cpp; sourceTree = "<group>"; }; + 01815E761FE7D53700C35E93 /* QuadSurface.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = QuadSurface.h; sourceTree = "<group>"; }; + 01815E771FE7D53700C35E93 /* SurfaceFactory.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SurfaceFactory.cpp; sourceTree = "<group>"; }; + 01815E781FE7D53700C35E93 /* SurfaceFactory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SurfaceFactory.h; sourceTree = "<group>"; }; + 01815E791FE7D53700C35E93 /* SurfaceManager.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SurfaceManager.cpp; sourceTree = "<group>"; }; + 01815E7A1FE7D53700C35E93 /* SurfaceManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SurfaceManager.h; sourceTree = "<group>"; }; + 01815E7B1FE7D53700C35E93 /* SurfaceStack.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SurfaceStack.cpp; sourceTree = "<group>"; }; + 01815E7C1FE7D53700C35E93 /* SurfaceStack.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SurfaceStack.h; sourceTree = "<group>"; }; + 01815E7D1FE7D53700C35E93 /* SurfaceType.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SurfaceType.h; sourceTree = "<group>"; }; + 01815E7E1FE7D53700C35E93 /* TriangleSurface.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TriangleSurface.cpp; sourceTree = "<group>"; }; + 01815E7F1FE7D53700C35E93 /* TriangleSurface.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TriangleSurface.h; sourceTree = "<group>"; }; + 01815E811FE7D53700C35E93 /* BaseJoint.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = BaseJoint.cpp; sourceTree = "<group>"; }; + 01815E821FE7D53700C35E93 /* BaseJoint.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BaseJoint.h; sourceTree = "<group>"; }; + 01815E831FE7D53700C35E93 /* CircleJoint.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = CircleJoint.cpp; sourceTree = "<group>"; }; + 01815E841FE7D53700C35E93 /* CircleJoint.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CircleJoint.h; sourceTree = "<group>"; }; + 01815E851FE7D53700C35E93 /* EditorType.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EditorType.h; sourceTree = "<group>"; }; + 01815E861FE7D53700C35E93 /* GuiMode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GuiMode.h; sourceTree = "<group>"; }; + 01815E871FE7D53700C35E93 /* RadioList.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = RadioList.cpp; sourceTree = "<group>"; }; + 01815E881FE7D53700C35E93 /* RadioList.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RadioList.h; sourceTree = "<group>"; }; + 01815E8A1FE7D53700C35E93 /* HomographyHelper.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = HomographyHelper.cpp; sourceTree = "<group>"; }; + 01815E8B1FE7D53700C35E93 /* HomographyHelper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomographyHelper.h; sourceTree = "<group>"; }; + 39264839192224DA0008A7F5 /* ofxXmlSettings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ofxXmlSettings.cpp; path = ../../ofxXmlSettings/src/ofxXmlSettings.cpp; sourceTree = "<group>"; }; + 3926483A192224DA0008A7F5 /* ofxXmlSettings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ofxXmlSettings.h; path = ../../ofxXmlSettings/src/ofxXmlSettings.h; sourceTree = "<group>"; }; + 3926483D192224F90008A7F5 /* tinyxml.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tinyxml.cpp; sourceTree = "<group>"; }; + 3926483E192224F90008A7F5 /* tinyxml.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tinyxml.h; sourceTree = "<group>"; }; + 3926483F192224F90008A7F5 /* tinyxmlerror.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tinyxmlerror.cpp; sourceTree = "<group>"; }; + 39264840192224F90008A7F5 /* tinyxmlparser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tinyxmlparser.cpp; sourceTree = "<group>"; }; + 3933D5C219BB87BD000ACA55 /* ofxBaseGui.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxBaseGui.cpp; sourceTree = "<group>"; }; + 3933D5C319BB87BD000ACA55 /* ofxBaseGui.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxBaseGui.h; sourceTree = "<group>"; }; + 3933D5C419BB87BD000ACA55 /* ofxButton.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxButton.cpp; sourceTree = "<group>"; }; + 3933D5C519BB87BD000ACA55 /* ofxButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxButton.h; sourceTree = "<group>"; }; + 3933D5C619BB87BD000ACA55 /* ofxGui.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxGui.h; sourceTree = "<group>"; }; + 3933D5C719BB87BD000ACA55 /* ofxGuiGroup.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxGuiGroup.cpp; sourceTree = "<group>"; }; + 3933D5C819BB87BD000ACA55 /* ofxGuiGroup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxGuiGroup.h; sourceTree = "<group>"; }; + 3933D5C919BB87BD000ACA55 /* ofxLabel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxLabel.cpp; sourceTree = "<group>"; }; + 3933D5CA19BB87BD000ACA55 /* ofxLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxLabel.h; sourceTree = "<group>"; }; + 3933D5CB19BB87BD000ACA55 /* ofxPanel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxPanel.cpp; sourceTree = "<group>"; }; + 3933D5CC19BB87BD000ACA55 /* ofxPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxPanel.h; sourceTree = "<group>"; }; + 3933D5CD19BB87BD000ACA55 /* ofxSlider.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxSlider.cpp; sourceTree = "<group>"; }; + 3933D5CE19BB87BD000ACA55 /* ofxSlider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxSlider.h; sourceTree = "<group>"; }; + 3933D5CF19BB87BD000ACA55 /* ofxSliderGroup.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxSliderGroup.cpp; sourceTree = "<group>"; }; + 3933D5D019BB87BD000ACA55 /* ofxSliderGroup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxSliderGroup.h; sourceTree = "<group>"; }; + 3933D5D119BB87BD000ACA55 /* ofxToggle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxToggle.cpp; sourceTree = "<group>"; }; + 3933D5D219BB87BD000ACA55 /* ofxToggle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxToggle.h; sourceTree = "<group>"; }; + 397EFC801A09047C0009286E /* CustomSource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CustomSource.cpp; sourceTree = "<group>"; }; + 397EFC811A09047C0009286E /* CustomSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomSource.h; sourceTree = "<group>"; }; + 3995C2081C79069B00123352 /* Settings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Settings.h; sourceTree = "<group>"; }; + 3995C2091C79069B00123352 /* Settings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Settings.cpp; sourceTree = "<group>"; }; + 399953671BD54FF600D5B1F1 /* CrossSource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CrossSource.cpp; sourceTree = "<group>"; }; + 399953681BD54FF600D5B1F1 /* CrossSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CrossSource.h; sourceTree = "<group>"; }; + BBAB23BE13894E4700AA2426 /* GLUT.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLUT.framework; path = ../../../libs/glut/lib/osx/GLUT.framework; sourceTree = "<group>"; }; E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = openFrameworksLib.xcodeproj; path = ../../../libs/openFrameworksCompiled/project/osx/openFrameworksLib.xcodeproj; sourceTree = SOURCE_ROOT; }; + E45BE9710E8CC7DD009D7055 /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = "<absolute>"; }; + E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = "<absolute>"; }; + E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = "<absolute>"; }; + E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; }; + E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = "<absolute>"; }; + E45BE9770E8CC7DD009D7055 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = "<absolute>"; }; + E45BE9790E8CC7DD009D7055 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; }; + E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = "<absolute>"; }; E4B69B5B0A3A1756003C02F2 /* exampleDebug.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = exampleDebug.app; sourceTree = BUILT_PRODUCTS_DIR; }; E4B69E1D0A3A1BDC003C02F2 /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = src/main.cpp; sourceTree = SOURCE_ROOT; }; E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofApp.cpp; path = src/ofApp.cpp; sourceTree = SOURCE_ROOT; }; E4B69E1F0A3A1BDC003C02F2 /* ofApp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ofApp.h; path = src/ofApp.h; sourceTree = SOURCE_ROOT; }; E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.xml; path = "openFrameworks-Info.plist"; sourceTree = "<group>"; }; + E4C2424410CC5A17004149E2 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; }; + E4C2424510CC5A17004149E2 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; }; + E4C2424610CC5A17004149E2 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = "<absolute>"; }; E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = CoreOF.xcconfig; path = ../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig; sourceTree = SOURCE_ROOT; }; E4EB6923138AFD0F00A09F29 /* Project.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Project.xcconfig; sourceTree = "<group>"; }; - E52D4207C299D5886C8FD2C7 /* MvLayerUpCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = MvLayerUpCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/MvLayerUpCmd.cpp; sourceTree = SOURCE_ROOT; }; - E5949E35CC6642F2FDFFAAE5 /* ImageSource.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ImageSource.h; path = ../../../addons/ofxPiMapper/src/Sources/ImageSource.h; sourceTree = SOURCE_ROOT; }; - E8CE817DF3028A4345376E7D /* DeselectTexCoordCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = DeselectTexCoordCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/DeselectTexCoordCmd.cpp; sourceTree = SOURCE_ROOT; }; - E8DA47AF2B265F778E74D4DA /* StartDragSurfaceCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = StartDragSurfaceCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/StartDragSurfaceCmd.cpp; sourceTree = SOURCE_ROOT; }; - EC481BAB32B250D3EA41AF9E /* MvLayerDnCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = MvLayerDnCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/MvLayerDnCmd.cpp; sourceTree = SOURCE_ROOT; }; - ECF8674C7975F1063C5E30CA /* ofxGuiGroup.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxGuiGroup.cpp; path = ../../../addons/ofxGui/src/ofxGuiGroup.cpp; sourceTree = SOURCE_ROOT; }; - EE95BF87E883491E7CC9B6EC /* DuplicateSurfaceCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = DuplicateSurfaceCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/DuplicateSurfaceCmd.h; sourceTree = SOURCE_ROOT; }; - EEF2CEBAFFABCFED915AFCE1 /* Info.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = Info.cpp; path = ../../../addons/ofxPiMapper/src/Info/Info.cpp; sourceTree = SOURCE_ROOT; }; - EFB1537A5DBC298C759BFC62 /* SourceTypeHelper.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SourceTypeHelper.h; path = ../../../addons/ofxPiMapper/src/Sources/SourceTypeHelper.h; sourceTree = SOURCE_ROOT; }; - F05CE9A6503C7CBCC46403C4 /* FboSource.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = FboSource.h; path = ../../../addons/ofxPiMapper/src/Sources/FboSource.h; sourceTree = SOURCE_ROOT; }; - F0A9FE4B6FB6C958B72B72CD /* SetApplicationModeCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SetApplicationModeCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/SetApplicationModeCmd.h; sourceTree = SOURCE_ROOT; }; - F27EBFBACAC7B29B2B7CA500 /* BaseSurface.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = BaseSurface.h; path = ../../../addons/ofxPiMapper/src/Surfaces/BaseSurface.h; sourceTree = SOURCE_ROOT; }; - F2C0EE541190D47BF5911C0A /* BaseSurface.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = BaseSurface.cpp; path = ../../../addons/ofxPiMapper/src/Surfaces/BaseSurface.cpp; sourceTree = SOURCE_ROOT; }; - F3538B8AF69CAB7C215FA1EF /* RmGridRowCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = RmGridRowCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/RmGridRowCmd.cpp; sourceTree = SOURCE_ROOT; }; - F3BC84F0441C01B0A760508D /* CrossSource.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = CrossSource.h; path = src/CrossSource.h; sourceTree = SOURCE_ROOT; }; - F4EDCDF597954EF25E7AD416 /* ScaleWidget.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ScaleWidget.cpp; path = ../../../addons/ofxPiMapper/src/Gui/Widgets/ScaleWidget.cpp; sourceTree = SOURCE_ROOT; }; - F7B0806EEA8012D629BE363C /* OMXPlayerCache.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = OMXPlayerCache.cpp; path = ../../../addons/ofxPiMapper/src/Sources/OMXPlayerCache.cpp; sourceTree = SOURCE_ROOT; }; - F7E88D3956480E0CBAA21641 /* SelPrevTexCoordCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SelPrevTexCoordCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/SelPrevTexCoordCmd.cpp; sourceTree = SOURCE_ROOT; }; - FA2E4E947E8D358C28D903C0 /* SetNextSourceCmd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = SetNextSourceCmd.h; path = ../../../addons/ofxPiMapper/src/Commands/SetNextSourceCmd.h; sourceTree = SOURCE_ROOT; }; - FC5DA1C87211D4F6377DA719 /* tinyxmlparser.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = tinyxmlparser.cpp; path = ../../../addons/ofxXmlSettings/libs/tinyxmlparser.cpp; sourceTree = SOURCE_ROOT; }; - FC98A68C64BFC941D0B31EE9 /* SelNextSurfaceCmd.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = SelNextSurfaceCmd.cpp; path = ../../../addons/ofxPiMapper/src/Commands/SelNextSurfaceCmd.cpp; sourceTree = SOURCE_ROOT; }; - FCB5A622161B43A8154687F8 /* MediaServer.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = MediaServer.h; path = ../../../addons/ofxPiMapper/src/MediaServer/MediaServer.h; sourceTree = SOURCE_ROOT; }; + E7E077E415D3B63C0020DFD4 /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = /System/Library/Frameworks/CoreVideo.framework; sourceTree = "<absolute>"; }; + E7E077E715D3B6510020DFD4 /* QTKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = /System/Library/Frameworks/QTKit.framework; sourceTree = "<absolute>"; }; + E7F985F515E0DE99003869B5 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = /System/Library/Frameworks/Accelerate.framework; sourceTree = "<absolute>"; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -328,264 +370,394 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + E7F985F815E0DEA3003869B5 /* Accelerate.framework in Frameworks */, + E7E077E815D3B6510020DFD4 /* QTKit.framework in Frameworks */, + E4EB6799138ADC1D00A09F29 /* GLUT.framework in Frameworks */, E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */, + E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */, + E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */, + E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */, + E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */, + E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */, + E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */, + E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */, + E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */, + E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */, + E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */, + E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */, + E7E077E515D3B63C0020DFD4 /* CoreVideo.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 0775EF7214A04F1C3C936CCE /* Widgets */ = { + 01815DDE1FE7D53700C35E93 /* src */ = { isa = PBXGroup; children = ( - 94DC897871B221F060A6A70F /* GuiBaseWidget.h */, - 57990D37D728C5711AACBA9F /* LayerPanelWidget.cpp */, - 438B20A2C548E18384498186 /* LayerPanelWidget.h */, - 18DA1B30717C876AA19CEEC0 /* ProjectionEditorWidget.cpp */, - C27244405258CD6DF424D0F3 /* ProjectionEditorWidget.h */, - F4EDCDF597954EF25E7AD416 /* ScaleWidget.cpp */, - 23A4F0C9DE47BA73B3E49EDE /* ScaleWidget.h */, - 36F59D2F886152DF4115A218 /* SourcesEditorWidget.cpp */, - B562DE1EEC28EE801EB4F483 /* SourcesEditorWidget.h */, - 69A4D26FC0AD01A86571540D /* SurfaceHighlightWidget.cpp */, - 9F39733296358C3B0F85BB15 /* SurfaceHighlightWidget.h */, - 413E846B881CCADC897A8A40 /* TextureEditorWidget.cpp */, - AB96773D1B378AE8018EA33E /* TextureEditorWidget.h */, - 941AD8B39C28D08B9F31077A /* TextureHighlightWidget.cpp */, - 3BD822DBD11904D1D6E27E76 /* TextureHighlightWidget.h */, + 01815DDF1FE7D53700C35E93 /* Application */, + 01815DEF1FE7D53700C35E93 /* Commands */, + 01815E3B1FE7D53700C35E93 /* Gui */, + 01815E4E1FE7D53700C35E93 /* Info */, + 01815E511FE7D53700C35E93 /* MediaServer */, + 01815E561FE7D53700C35E93 /* Mode.h */, + 01815E571FE7D53700C35E93 /* ofxPiMapper.cpp */, + 01815E581FE7D53700C35E93 /* ofxPiMapper.h */, + 01815E591FE7D53700C35E93 /* Sources */, + 01815E6E1FE7D53700C35E93 /* Surfaces */, + 01815E801FE7D53700C35E93 /* UserInterface */, + 01815E891FE7D53700C35E93 /* Utils */, ); - name = Widgets; + name = src; + path = ../src; sourceTree = "<group>"; }; - 1F4FB5C423662B96ADFDCC0B /* ofxXmlSettings */ = { + 01815DDF1FE7D53700C35E93 /* Application */ = { isa = PBXGroup; children = ( - 6ECEF0D76BC33727823EADFF /* src */, - 6E54289412D2D94F45A05113 /* libs */, + 01815DE01FE7D53700C35E93 /* Application.cpp */, + 01815DE11FE7D53700C35E93 /* Application.h */, + 01815DE21FE7D53700C35E93 /* Modes */, + 01815DED1FE7D53700C35E93 /* SettingsLoader.cpp */, + 01815DEE1FE7D53700C35E93 /* SettingsLoader.h */, ); - name = ofxXmlSettings; + path = Application; sourceTree = "<group>"; }; - 3D6840E4DBCF2DED6C755B76 /* Utils */ = { + 01815DE21FE7D53700C35E93 /* Modes */ = { isa = PBXGroup; children = ( - E2333CF877EE99EBE86F4B0F /* HomographyHelper.cpp */, - D627BF76B06B3FF4F1516C5E /* HomographyHelper.h */, + 01815DE31FE7D53700C35E93 /* ApplicationBaseMode.cpp */, + 01815DE41FE7D53700C35E93 /* ApplicationBaseMode.h */, + 01815DE51FE7D53700C35E93 /* PresentationMode.cpp */, + 01815DE61FE7D53700C35E93 /* PresentationMode.h */, + 01815DE71FE7D53700C35E93 /* ProjectionMappingMode.cpp */, + 01815DE81FE7D53700C35E93 /* ProjectionMappingMode.h */, + 01815DE91FE7D53700C35E93 /* SourceSelectionMode.cpp */, + 01815DEA1FE7D53700C35E93 /* SourceSelectionMode.h */, + 01815DEB1FE7D53700C35E93 /* TextureMappingMode.cpp */, + 01815DEC1FE7D53700C35E93 /* TextureMappingMode.h */, ); - name = Utils; + path = Modes; sourceTree = "<group>"; }; - 43844FF975EC3DB9B9DDAD73 /* Application */ = { + 01815DEF1FE7D53700C35E93 /* Commands */ = { isa = PBXGroup; children = ( - 1B3B1807E9CFC3FFBA4DBBEF /* Application.cpp */, - 928068952444E81EF818B25C /* Application.h */, - 783422EB3B2FDA36D11DC9CF /* Modes */, - 33DD6E4350FD51C68B7E65F0 /* SettingsLoader.cpp */, - 5235D939D249EAF47F9A5EB5 /* SettingsLoader.h */, + 01815DF01FE7D53700C35E93 /* AddGridColCmd.cpp */, + 01815DF11FE7D53700C35E93 /* AddGridColCmd.h */, + 01815DF21FE7D53700C35E93 /* AddGridRowCmd.cpp */, + 01815DF31FE7D53700C35E93 /* AddGridRowCmd.h */, + 01815DF41FE7D53700C35E93 /* AddSurfaceCmd.cpp */, + 01815DF51FE7D53700C35E93 /* AddSurfaceCmd.h */, + 01815DF61FE7D53700C35E93 /* BaseCmd.h */, + 01815DF71FE7D53700C35E93 /* ClearSurfacesCmd.cpp */, + 01815DF81FE7D53700C35E93 /* ClearSurfacesCmd.h */, + 01815DF91FE7D53700C35E93 /* CmdManager.cpp */, + 01815DFA1FE7D53700C35E93 /* CmdManager.h */, + 01815DFB1FE7D53700C35E93 /* DeselectSurfaceCmd.cpp */, + 01815DFC1FE7D53700C35E93 /* DeselectSurfaceCmd.h */, + 01815DFD1FE7D53700C35E93 /* DeselectTexCoordCmd.cpp */, + 01815DFE1FE7D53700C35E93 /* DeselectTexCoordCmd.h */, + 01815DFF1FE7D53700C35E93 /* DuplicateSurfaceCmd.cpp */, + 01815E001FE7D53700C35E93 /* DuplicateSurfaceCmd.h */, + 01815E011FE7D53700C35E93 /* MvAllTexCoordsCmd.cpp */, + 01815E021FE7D53700C35E93 /* MvAllTexCoordsCmd.h */, + 01815E031FE7D53700C35E93 /* MvLayerDnCmd.cpp */, + 01815E041FE7D53700C35E93 /* MvLayerDnCmd.h */, + 01815E051FE7D53700C35E93 /* MvLayerUpCmd.cpp */, + 01815E061FE7D53700C35E93 /* MvLayerUpCmd.h */, + 01815E071FE7D53700C35E93 /* MvSelectionCmd.cpp */, + 01815E081FE7D53700C35E93 /* MvSelectionCmd.h */, + 01815E091FE7D53700C35E93 /* MvSurfaceVertCmd.cpp */, + 01815E0A1FE7D53700C35E93 /* MvSurfaceVertCmd.h */, + 01815E0B1FE7D53700C35E93 /* MvTexCoordCmd.cpp */, + 01815E0C1FE7D53700C35E93 /* MvTexCoordCmd.h */, + 01815E0D1FE7D53700C35E93 /* RmGridColCmd.cpp */, + 01815E0E1FE7D53700C35E93 /* RmGridColCmd.h */, + 01815E0F1FE7D53700C35E93 /* RmGridRowCmd.cpp */, + 01815E101FE7D53700C35E93 /* RmGridRowCmd.h */, + 01815E111FE7D53700C35E93 /* RmSurfaceCmd.cpp */, + 01815E121FE7D53700C35E93 /* RmSurfaceCmd.h */, + 01815E131FE7D53700C35E93 /* SaveTexCoordPosCmd.cpp */, + 01815E141FE7D53700C35E93 /* SaveTexCoordPosCmd.h */, + 01815E151FE7D53700C35E93 /* ScaleSurfaceFromToCmd.cpp */, + 01815E161FE7D53700C35E93 /* ScaleSurfaceFromToCmd.h */, + 01815E171FE7D53700C35E93 /* SelNextSurfaceCmd.cpp */, + 01815E181FE7D53700C35E93 /* SelNextSurfaceCmd.h */, + 01815E191FE7D53700C35E93 /* SelNextTexCoordCmd.cpp */, + 01815E1A1FE7D53700C35E93 /* SelNextTexCoordCmd.h */, + 01815E1B1FE7D53700C35E93 /* SelNextVertexCmd.cpp */, + 01815E1C1FE7D53700C35E93 /* SelNextVertexCmd.h */, + 01815E1D1FE7D53700C35E93 /* SelPrevSurfaceCmd.cpp */, + 01815E1E1FE7D53700C35E93 /* SelPrevSurfaceCmd.h */, + 01815E1F1FE7D53700C35E93 /* SelPrevTexCoordCmd.cpp */, + 01815E201FE7D53700C35E93 /* SelPrevTexCoordCmd.h */, + 01815E211FE7D53700C35E93 /* SelPrevVertexCmd.cpp */, + 01815E221FE7D53700C35E93 /* SelPrevVertexCmd.h */, + 01815E231FE7D53700C35E93 /* SelSurfaceCmd.cpp */, + 01815E241FE7D53700C35E93 /* SelSurfaceCmd.h */, + 01815E251FE7D53700C35E93 /* SelTexCoordCmd.cpp */, + 01815E261FE7D53700C35E93 /* SelTexCoordCmd.h */, + 01815E271FE7D53700C35E93 /* SelVertexCmd.cpp */, + 01815E281FE7D53700C35E93 /* SelVertexCmd.h */, + 01815E291FE7D53700C35E93 /* SetApplicationModeCmd.cpp */, + 01815E2A1FE7D53700C35E93 /* SetApplicationModeCmd.h */, + 01815E2B1FE7D53700C35E93 /* SetNextSourceCmd.cpp */, + 01815E2C1FE7D53700C35E93 /* SetNextSourceCmd.h */, + 01815E2D1FE7D53700C35E93 /* SetPresetCmd.cpp */, + 01815E2E1FE7D53700C35E93 /* SetPresetCmd.h */, + 01815E2F1FE7D53700C35E93 /* SetSourceCmd.cpp */, + 01815E301FE7D53700C35E93 /* SetSourceCmd.h */, + 01815E311FE7D53700C35E93 /* SetTexMapDrawModeCmd.cpp */, + 01815E321FE7D53700C35E93 /* SetTexMapDrawModeCmd.h */, + 01815E331FE7D53700C35E93 /* StartDragSurfaceCmd.cpp */, + 01815E341FE7D53700C35E93 /* StartDragSurfaceCmd.h */, + 01815E351FE7D53700C35E93 /* ToggleAnimatedSourceCmd.cpp */, + 01815E361FE7D53700C35E93 /* ToggleAnimatedSourceCmd.h */, + 01815E371FE7D53700C35E93 /* TogglePerspectiveCmd.cpp */, + 01815E381FE7D53700C35E93 /* TogglePerspectiveCmd.h */, + 01815E391FE7D53700C35E93 /* TranslateCanvasCmd.cpp */, + 01815E3A1FE7D53700C35E93 /* TranslateCanvasCmd.h */, ); - name = Application; + path = Commands; sourceTree = "<group>"; }; - 480A780D8D0308AE4A368801 /* ofxGui */ = { + 01815E3B1FE7D53700C35E93 /* Gui */ = { isa = PBXGroup; children = ( - A763ED608B35AE3310251DEE /* src */, + 01815E3C1FE7D53700C35E93 /* Gui.cpp */, + 01815E3D1FE7D53700C35E93 /* Gui.h */, + 01815E3E1FE7D53700C35E93 /* Widgets */, ); - name = ofxGui; + path = Gui; sourceTree = "<group>"; }; - 49237A8A4935FFC7A690CBD7 /* MediaServer */ = { + 01815E3E1FE7D53700C35E93 /* Widgets */ = { isa = PBXGroup; children = ( - 20F9951441118A70E8D55E13 /* DirectoryWatcher.cpp */, - 7C89C324499F9541394245C9 /* DirectoryWatcher.h */, - 18385A4F4BC87806616D4F7F /* MediaServer.cpp */, - FCB5A622161B43A8154687F8 /* MediaServer.h */, + 01815E3F1FE7D53700C35E93 /* GuiBaseWidget.h */, + 01815E401FE7D53700C35E93 /* LayerPanelWidget.cpp */, + 01815E411FE7D53700C35E93 /* LayerPanelWidget.h */, + 01815E421FE7D53700C35E93 /* ProjectionEditorWidget.cpp */, + 01815E431FE7D53700C35E93 /* ProjectionEditorWidget.h */, + 01815E441FE7D53700C35E93 /* ScaleWidget.cpp */, + 01815E451FE7D53700C35E93 /* ScaleWidget.h */, + 01815E461FE7D53700C35E93 /* SourcesEditorWidget.cpp */, + 01815E471FE7D53700C35E93 /* SourcesEditorWidget.h */, + 01815E481FE7D53700C35E93 /* SurfaceHighlightWidget.cpp */, + 01815E491FE7D53700C35E93 /* SurfaceHighlightWidget.h */, + 01815E4A1FE7D53700C35E93 /* TextureEditorWidget.cpp */, + 01815E4B1FE7D53700C35E93 /* TextureEditorWidget.h */, + 01815E4C1FE7D53700C35E93 /* TextureHighlightWidget.cpp */, + 01815E4D1FE7D53700C35E93 /* TextureHighlightWidget.h */, ); - name = MediaServer; + path = Widgets; sourceTree = "<group>"; }; - 57113A603B123D17EBD5D0D1 /* src */ = { + 01815E4E1FE7D53700C35E93 /* Info */ = { isa = PBXGroup; children = ( - 43844FF975EC3DB9B9DDAD73 /* Application */, - F19689EE10A2EC1EC429FAC7 /* Commands */, - 783C34304FF450D0CB244879 /* Gui */, - 922DC4E8A53315BB0C983902 /* Info */, - 49237A8A4935FFC7A690CBD7 /* MediaServer */, - C2E5DC1692A11AF5D981F8FA /* Mode.h */, - 16DB3860ECC0D672B08DE71C /* ofxPiMapper.cpp */, - 378C962CF2DB945F38DE674A /* ofxPiMapper.h */, - 77B40894B404D46E0B9438E0 /* Sources */, - DA1ABA97EBE5173F815CB449 /* Surfaces */, - 925C888869704DBDF0BE6D0B /* UserInterface */, - 3D6840E4DBCF2DED6C755B76 /* Utils */, + 01815E4F1FE7D53700C35E93 /* Info.cpp */, + 01815E501FE7D53700C35E93 /* Info.h */, ); - name = src; + path = Info; sourceTree = "<group>"; }; - 6948EE371B920CB800B5AC1A /* local_addons */ = { + 01815E511FE7D53700C35E93 /* MediaServer */ = { isa = PBXGroup; children = ( + 01815E521FE7D53700C35E93 /* DirectoryWatcher.cpp */, + 01815E531FE7D53700C35E93 /* DirectoryWatcher.h */, + 01815E541FE7D53700C35E93 /* MediaServer.cpp */, + 01815E551FE7D53700C35E93 /* MediaServer.h */, ); - name = local_addons; + path = MediaServer; sourceTree = "<group>"; }; - 6E54289412D2D94F45A05113 /* libs */ = { + 01815E591FE7D53700C35E93 /* Sources */ = { isa = PBXGroup; children = ( - 2B40EDA85BEB63E46785BC29 /* tinyxml.cpp */, - B21E7E5F548EEA92F368040B /* tinyxml.h */, - 832BDC407620CDBA568B713D /* tinyxmlerror.cpp */, - FC5DA1C87211D4F6377DA719 /* tinyxmlparser.cpp */, + 01815E5A1FE7D53700C35E93 /* BaseSource.cpp */, + 01815E5B1FE7D53700C35E93 /* BaseSource.h */, + 01815E5C1FE7D53700C35E93 /* FboSource.cpp */, + 01815E5D1FE7D53700C35E93 /* FboSource.h */, + 01815E5E1FE7D53700C35E93 /* ImageSource.cpp */, + 01815E5F1FE7D53700C35E93 /* ImageSource.h */, + 01815E601FE7D53700C35E93 /* magSlide.cpp */, + 01815E611FE7D53700C35E93 /* magSlide.h */, + 01815E621FE7D53700C35E93 /* magSlideShowSource.cpp */, + 01815E631FE7D53700C35E93 /* magSlideShowSource.h */, + 01815E641FE7D53700C35E93 /* magSlideTransition.cpp */, + 01815E651FE7D53700C35E93 /* magSlideTransition.h */, + 01815E661FE7D53700C35E93 /* magSlideTransitionFactory.cpp */, + 01815E671FE7D53700C35E93 /* magSlideTransitionFactory.h */, + 01815E681FE7D53700C35E93 /* OMXPlayerCache.cpp */, + 01815E691FE7D53700C35E93 /* OMXPlayerCache.h */, + 01815E6A1FE7D53700C35E93 /* SourceType.h */, + 01815E6B1FE7D53700C35E93 /* SourceTypeHelper.h */, + 01815E6C1FE7D53700C35E93 /* VideoSource.cpp */, + 01815E6D1FE7D53700C35E93 /* VideoSource.h */, ); - name = libs; + path = Sources; sourceTree = "<group>"; }; - 6ECEF0D76BC33727823EADFF /* src */ = { + 01815E6E1FE7D53700C35E93 /* Surfaces */ = { isa = PBXGroup; children = ( - 50DF87D612C5AAE17AAFA6C0 /* ofxXmlSettings.cpp */, - 01DCC0911400F9ACF5B65578 /* ofxXmlSettings.h */, + 01815E6F1FE7D53700C35E93 /* BaseSurface.cpp */, + 01815E701FE7D53700C35E93 /* BaseSurface.h */, + 01815E711FE7D53700C35E93 /* GridWarpSurface.cpp */, + 01815E721FE7D53700C35E93 /* GridWarpSurface.h */, + 01815E731FE7D53700C35E93 /* HexagonSurface.cpp */, + 01815E741FE7D53700C35E93 /* HexagonSurface.h */, + 01815E751FE7D53700C35E93 /* QuadSurface.cpp */, + 01815E761FE7D53700C35E93 /* QuadSurface.h */, + 01815E771FE7D53700C35E93 /* SurfaceFactory.cpp */, + 01815E781FE7D53700C35E93 /* SurfaceFactory.h */, + 01815E791FE7D53700C35E93 /* SurfaceManager.cpp */, + 01815E7A1FE7D53700C35E93 /* SurfaceManager.h */, + 01815E7B1FE7D53700C35E93 /* SurfaceStack.cpp */, + 01815E7C1FE7D53700C35E93 /* SurfaceStack.h */, + 01815E7D1FE7D53700C35E93 /* SurfaceType.h */, + 01815E7E1FE7D53700C35E93 /* TriangleSurface.cpp */, + 01815E7F1FE7D53700C35E93 /* TriangleSurface.h */, ); - name = src; + path = Surfaces; sourceTree = "<group>"; }; - 77B40894B404D46E0B9438E0 /* Sources */ = { + 01815E801FE7D53700C35E93 /* UserInterface */ = { isa = PBXGroup; children = ( - AB4132974E14024E74E320F5 /* BaseSource.cpp */, - B390802358C73D3757AC9B4E /* BaseSource.h */, - C61C1F4F1A1ED2660B1D6EDC /* FboSource.cpp */, - F05CE9A6503C7CBCC46403C4 /* FboSource.h */, - 61291E56B7882C9E9B8F119B /* ImageSource.cpp */, - E5949E35CC6642F2FDFFAAE5 /* ImageSource.h */, - F7B0806EEA8012D629BE363C /* OMXPlayerCache.cpp */, - 3BD72CBAFD427FC6E9F164D2 /* OMXPlayerCache.h */, - 6595C215972AFFC7EE685F5A /* SourceType.h */, - EFB1537A5DBC298C759BFC62 /* SourceTypeHelper.h */, - 5407451FA68C27B2AAE644A6 /* VideoSource.cpp */, - C2D03F683EE589F55D47CFFD /* VideoSource.h */, + 01815E811FE7D53700C35E93 /* BaseJoint.cpp */, + 01815E821FE7D53700C35E93 /* BaseJoint.h */, + 01815E831FE7D53700C35E93 /* CircleJoint.cpp */, + 01815E841FE7D53700C35E93 /* CircleJoint.h */, + 01815E851FE7D53700C35E93 /* EditorType.h */, + 01815E861FE7D53700C35E93 /* GuiMode.h */, + 01815E871FE7D53700C35E93 /* RadioList.cpp */, + 01815E881FE7D53700C35E93 /* RadioList.h */, ); - name = Sources; + path = UserInterface; sourceTree = "<group>"; }; - 783422EB3B2FDA36D11DC9CF /* Modes */ = { + 01815E891FE7D53700C35E93 /* Utils */ = { isa = PBXGroup; children = ( - 9631F04A0875ADEB45970DE8 /* ApplicationBaseMode.cpp */, - 57D73BCD8A871590F140EFF6 /* ApplicationBaseMode.h */, - 64156CB2D856E4CE0FBBED96 /* PresentationMode.cpp */, - 3B043509B19E37C383D7CA87 /* PresentationMode.h */, - 1BCA96396113AAF56D66C844 /* ProjectionMappingMode.cpp */, - DC8107E8E56AFFB933FE8962 /* ProjectionMappingMode.h */, - 4245228145B1AA737F49CF14 /* SourceSelectionMode.cpp */, - 7FD330C204479B5A5021D286 /* SourceSelectionMode.h */, - B16277019B0C4B684E1B063E /* TextureMappingMode.cpp */, - 3157007392BD114EAB99F470 /* TextureMappingMode.h */, + 01815E8A1FE7D53700C35E93 /* HomographyHelper.cpp */, + 01815E8B1FE7D53700C35E93 /* HomographyHelper.h */, ); - name = Modes; + path = Utils; sourceTree = "<group>"; }; - 783C34304FF450D0CB244879 /* Gui */ = { + 39264837192224C20008A7F5 /* ofxXmlSettings */ = { isa = PBXGroup; children = ( - DCC24025AD26B4554B000385 /* Gui.cpp */, - 7A3290FC65714D0C4D02B8BA /* Gui.h */, - 0775EF7214A04F1C3C936CCE /* Widgets */, + 3926483C192224F90008A7F5 /* libs */, + 39264838192224CA0008A7F5 /* src */, ); - name = Gui; + name = ofxXmlSettings; sourceTree = "<group>"; }; - 7CC2E9C572434BA3ED1C8079 /* ofxPiMapper */ = { + 39264838192224CA0008A7F5 /* src */ = { isa = PBXGroup; children = ( - 57113A603B123D17EBD5D0D1 /* src */, + 39264839192224DA0008A7F5 /* ofxXmlSettings.cpp */, + 3926483A192224DA0008A7F5 /* ofxXmlSettings.h */, ); - name = ofxPiMapper; + name = src; sourceTree = "<group>"; }; - 922DC4E8A53315BB0C983902 /* Info */ = { + 3926483C192224F90008A7F5 /* libs */ = { isa = PBXGroup; children = ( - EEF2CEBAFFABCFED915AFCE1 /* Info.cpp */, - 37E7F66B151AB6A0AB6FC244 /* Info.h */, + 3926483D192224F90008A7F5 /* tinyxml.cpp */, + 3926483E192224F90008A7F5 /* tinyxml.h */, + 3926483F192224F90008A7F5 /* tinyxmlerror.cpp */, + 39264840192224F90008A7F5 /* tinyxmlparser.cpp */, ); - name = Info; + name = libs; + path = ../../ofxXmlSettings/libs; sourceTree = "<group>"; }; - 925C888869704DBDF0BE6D0B /* UserInterface */ = { + 3933D5C019BB87A3000ACA55 /* ofxGui */ = { isa = PBXGroup; children = ( - 7E78D1B2A6DB0856BF8ED1FE /* BaseJoint.cpp */, - 851AF875A70187105CA91C1A /* BaseJoint.h */, - 62F01592304CB7995200EF7B /* CircleJoint.cpp */, - 9B4D98CCBAB57278C96169D4 /* CircleJoint.h */, - 4130052A043CF3D3C2BA943A /* EditorType.h */, - B7DD3DE526EF824DDAF42B09 /* GuiMode.h */, - 4048CA09E6AAB5F673CBD2F0 /* RadioList.cpp */, - DC69ACA83F14B8A2AE20197B /* RadioList.h */, + 3933D5C119BB87BD000ACA55 /* src */, ); - name = UserInterface; + name = ofxGui; sourceTree = "<group>"; }; - A763ED608B35AE3310251DEE /* src */ = { + 3933D5C119BB87BD000ACA55 /* src */ = { isa = PBXGroup; children = ( - 9604B925D32EE39065747725 /* ofxBaseGui.cpp */, - 87F26B4B24CBD428AD9EEBAA /* ofxBaseGui.h */, - C88333E71C9457E441C33474 /* ofxButton.cpp */, - 2834D88A62CD23F3DE2C47D1 /* ofxButton.h */, - 17E65988300FBD9AAA2CD0CA /* ofxGui.h */, - ECF8674C7975F1063C5E30CA /* ofxGuiGroup.cpp */, - 1C0DA2561397A7DE0246858B /* ofxGuiGroup.h */, - 78D67A00EB899FAC09430597 /* ofxLabel.cpp */, - B87C60311EC1FE841C1ECD89 /* ofxLabel.h */, - E112B3AEBEA2C091BF2B40AE /* ofxPanel.cpp */, - 89449E3044D456F7DE7BEA14 /* ofxPanel.h */, - 15F2C6477A769C03A56D1401 /* ofxSlider.cpp */, - 52AFA1F08C420992CAAAE648 /* ofxSlider.h */, - 802251BAF1B35B1D67B32FD0 /* ofxSliderGroup.cpp */, - C70D8946940288799E82131E /* ofxSliderGroup.h */, - 907C5B5E104864A2D3A25745 /* ofxToggle.cpp */, - 0A1DAC09F322AE313A40706D /* ofxToggle.h */, + 3933D5C219BB87BD000ACA55 /* ofxBaseGui.cpp */, + 3933D5C319BB87BD000ACA55 /* ofxBaseGui.h */, + 3933D5C419BB87BD000ACA55 /* ofxButton.cpp */, + 3933D5C519BB87BD000ACA55 /* ofxButton.h */, + 3933D5C619BB87BD000ACA55 /* ofxGui.h */, + 3933D5C719BB87BD000ACA55 /* ofxGuiGroup.cpp */, + 3933D5C819BB87BD000ACA55 /* ofxGuiGroup.h */, + 3933D5C919BB87BD000ACA55 /* ofxLabel.cpp */, + 3933D5CA19BB87BD000ACA55 /* ofxLabel.h */, + 3933D5CB19BB87BD000ACA55 /* ofxPanel.cpp */, + 3933D5CC19BB87BD000ACA55 /* ofxPanel.h */, + 3933D5CD19BB87BD000ACA55 /* ofxSlider.cpp */, + 3933D5CE19BB87BD000ACA55 /* ofxSlider.h */, + 3933D5CF19BB87BD000ACA55 /* ofxSliderGroup.cpp */, + 3933D5D019BB87BD000ACA55 /* ofxSliderGroup.h */, + 3933D5D119BB87BD000ACA55 /* ofxToggle.cpp */, + 3933D5D219BB87BD000ACA55 /* ofxToggle.h */, ); name = src; + path = ../../ofxGui/src; + sourceTree = "<group>"; + }; + 396E8A34190FEDE500705899 /* ofxPiMapper */ = { + isa = PBXGroup; + children = ( + 01815DDE1FE7D53700C35E93 /* src */, + ); + name = ofxPiMapper; sourceTree = "<group>"; }; BB4B014C10F69532006C3DED /* addons */ = { isa = PBXGroup; children = ( - 480A780D8D0308AE4A368801 /* ofxGui */, - 7CC2E9C572434BA3ED1C8079 /* ofxPiMapper */, - 1F4FB5C423662B96ADFDCC0B /* ofxXmlSettings */, + 3933D5C019BB87A3000ACA55 /* ofxGui */, + 39264837192224C20008A7F5 /* ofxXmlSettings */, + 396E8A34190FEDE500705899 /* ofxPiMapper */, ); name = addons; sourceTree = "<group>"; }; - DA1ABA97EBE5173F815CB449 /* Surfaces */ = { + BBAB23C913894ECA00AA2426 /* system frameworks */ = { + isa = PBXGroup; + children = ( + E7F985F515E0DE99003869B5 /* Accelerate.framework */, + E4C2424410CC5A17004149E2 /* AppKit.framework */, + E4C2424510CC5A17004149E2 /* Cocoa.framework */, + E4C2424610CC5A17004149E2 /* IOKit.framework */, + E45BE9710E8CC7DD009D7055 /* AGL.framework */, + E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */, + E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */, + E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */, + E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */, + E45BE9770E8CC7DD009D7055 /* CoreServices.framework */, + E45BE9790E8CC7DD009D7055 /* OpenGL.framework */, + E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */, + E7E077E415D3B63C0020DFD4 /* CoreVideo.framework */, + E7E077E715D3B6510020DFD4 /* QTKit.framework */, + ); + name = "system frameworks"; + sourceTree = "<group>"; + }; + BBAB23CA13894EDB00AA2426 /* 3rd party frameworks */ = { isa = PBXGroup; children = ( - F2C0EE541190D47BF5911C0A /* BaseSurface.cpp */, - F27EBFBACAC7B29B2B7CA500 /* BaseSurface.h */, - 2D2400AC1A64EDE5E990C56C /* GridWarpSurface.cpp */, - C3E8D103B72D02E063B29082 /* GridWarpSurface.h */, - BCBB74B9531974E1D5DA019B /* HexagonSurface.cpp */, - 0B4D5D37A2AE7AB30D726C16 /* HexagonSurface.h */, - B9ECBF061BABECA9C2341372 /* QuadSurface.cpp */, - 906696B07A716E4057D32B1E /* QuadSurface.h */, - 03FA94CA9F193C816DE4253F /* SurfaceFactory.cpp */, - D58C36B60BB72C7336042FB9 /* SurfaceFactory.h */, - 836B103542A52C63B004410C /* SurfaceManager.cpp */, - 7344B3B35CD0188D1283EC59 /* SurfaceManager.h */, - 1C080561EC053F17BB86A668 /* SurfaceStack.cpp */, - 6592BB3592290B34832D7607 /* SurfaceStack.h */, - B178ED5CA7F76AAA6E49E191 /* SurfaceType.h */, - 3DF2D82EA37D8C7A5F686EA5 /* TriangleSurface.cpp */, - 23118136CC7FFA920626B6C3 /* TriangleSurface.h */, + BBAB23BE13894E4700AA2426 /* GLUT.framework */, ); - name = Surfaces; + name = "3rd party frameworks"; sourceTree = "<group>"; }; E4328144138ABC890047C5CB /* Products */ = { @@ -596,6 +768,15 @@ name = Products; sourceTree = "<group>"; }; + E45BE5980E8CC70C009D7055 /* frameworks */ = { + isa = PBXGroup; + children = ( + BBAB23CA13894EDB00AA2426 /* 3rd party frameworks */, + BBAB23C913894ECA00AA2426 /* system frameworks */, + ); + name = frameworks; + sourceTree = "<group>"; + }; E4B69B4A0A3A1720003C02F2 = { isa = PBXGroup; children = ( @@ -604,7 +785,7 @@ E4B69E1C0A3A1BDC003C02F2 /* src */, E4EEC9E9138DF44700A80321 /* openFrameworks */, BB4B014C10F69532006C3DED /* addons */, - 6948EE371B920CB800B5AC1A /* local_addons */, + E45BE5980E8CC70C009D7055 /* frameworks */, E4B69B5B0A3A1756003C02F2 /* exampleDebug.app */, ); sourceTree = "<group>"; @@ -615,12 +796,12 @@ E4B69E1D0A3A1BDC003C02F2 /* main.cpp */, E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */, E4B69E1F0A3A1BDC003C02F2 /* ofApp.h */, - 2DDA3608BED55BC67A9DAFF5 /* CrossSource.cpp */, - F3BC84F0441C01B0A760508D /* CrossSource.h */, - 76B40246C8B90C1CA4074BB7 /* CustomSource.cpp */, - B0B66559E2F530AE989510C0 /* CustomSource.h */, - 4A0800123A129E9BC12ED207 /* Settings.cpp */, - A1A567FBAE494BF84E54E83C /* Settings.h */, + 397EFC811A09047C0009286E /* CustomSource.h */, + 397EFC801A09047C0009286E /* CustomSource.cpp */, + 399953681BD54FF600D5B1F1 /* CrossSource.h */, + 399953671BD54FF600D5B1F1 /* CrossSource.cpp */, + 3995C2081C79069B00123352 /* Settings.h */, + 3995C2091C79069B00123352 /* Settings.cpp */, ); path = src; sourceTree = SOURCE_ROOT; @@ -634,88 +815,6 @@ name = openFrameworks; sourceTree = "<group>"; }; - F19689EE10A2EC1EC429FAC7 /* Commands */ = { - isa = PBXGroup; - children = ( - 231337763726D333E0B3D56C /* AddGridColCmd.cpp */, - 1E73070DAC89F6A796BFF464 /* AddGridColCmd.h */, - 3E4A0386460638A781A7AC84 /* AddGridRowCmd.cpp */, - 775FD891C1E381F87BF33C82 /* AddGridRowCmd.h */, - B323D7489A7B26A63443444F /* AddSurfaceCmd.cpp */, - 00756183A9E41665E637AC23 /* AddSurfaceCmd.h */, - 17972C3384311464011667D9 /* BaseCmd.h */, - 962C349E8F4E59FF335AB2A6 /* ClearSurfacesCmd.cpp */, - 3074E4094F76555C299E5D8E /* ClearSurfacesCmd.h */, - BDBE053980FA01FAD543D782 /* CmdManager.cpp */, - 2F04FFB9BAC4575E214C0DED /* CmdManager.h */, - 6E80EE6FB0CC304A6CA287BB /* DeselectSurfaceCmd.cpp */, - 65DBA05D19177D2853D54196 /* DeselectSurfaceCmd.h */, - E8CE817DF3028A4345376E7D /* DeselectTexCoordCmd.cpp */, - 718E523D4BDDCFAC394B3EA5 /* DeselectTexCoordCmd.h */, - C656C28252AD5E9E09FA2162 /* DuplicateSurfaceCmd.cpp */, - EE95BF87E883491E7CC9B6EC /* DuplicateSurfaceCmd.h */, - DBAFA0B7AFEA589CA5167204 /* MvAllTexCoordsCmd.cpp */, - 25322223D3976D5F33DCCBF6 /* MvAllTexCoordsCmd.h */, - EC481BAB32B250D3EA41AF9E /* MvLayerDnCmd.cpp */, - 61481FB831430E35A18ABD02 /* MvLayerDnCmd.h */, - E52D4207C299D5886C8FD2C7 /* MvLayerUpCmd.cpp */, - 933CAE5B2DEC9DDABEA95E34 /* MvLayerUpCmd.h */, - 7D386994DF359F3BD1E66480 /* MvSelectionCmd.cpp */, - D4CFAEBB593AD070E04F106C /* MvSelectionCmd.h */, - 18041C8871E17DE3E60BFF95 /* MvSurfaceVertCmd.cpp */, - D565A612B1DF2837C94A6081 /* MvSurfaceVertCmd.h */, - 0739F09627790055C959BBF4 /* MvTexCoordCmd.cpp */, - 8F41EDB76644426680B2FA2B /* MvTexCoordCmd.h */, - A50F23D868C48DF9799BC788 /* RmGridColCmd.cpp */, - BA65337B3E631788AE2D018B /* RmGridColCmd.h */, - F3538B8AF69CAB7C215FA1EF /* RmGridRowCmd.cpp */, - 74CA4C78136F233FB90B7D3E /* RmGridRowCmd.h */, - B7C308F8B76FCB909581A580 /* RmSurfaceCmd.cpp */, - D7287CBE5600FEE9EE1B1AEA /* RmSurfaceCmd.h */, - 60F40691CD9DE4DEE1768FE9 /* SaveTexCoordPosCmd.cpp */, - D463EA9CC53D21A44CB9D6EF /* SaveTexCoordPosCmd.h */, - 34B45EB44DED0A47FBAD30F4 /* ScaleSurfaceFromToCmd.cpp */, - 62C9C3E62D4BEF04CF54C031 /* ScaleSurfaceFromToCmd.h */, - FC98A68C64BFC941D0B31EE9 /* SelNextSurfaceCmd.cpp */, - 30ED82F4A70B5B95CCEF7744 /* SelNextSurfaceCmd.h */, - 784FFEB8D108EC916343AB97 /* SelNextTexCoordCmd.cpp */, - A5CBAE57D2ADED1CAB6123AF /* SelNextTexCoordCmd.h */, - 140C0677F9F5A5D3B8A89AC4 /* SelNextVertexCmd.cpp */, - BA5B6BB795E2A24B2DBA22BD /* SelNextVertexCmd.h */, - 6DF54314CF2B45BF195B84C6 /* SelPrevSurfaceCmd.cpp */, - B5C793F4FEA3AA065347B61C /* SelPrevSurfaceCmd.h */, - F7E88D3956480E0CBAA21641 /* SelPrevTexCoordCmd.cpp */, - 1CE256C39E514ABD16FCCB87 /* SelPrevTexCoordCmd.h */, - 3B29C3846BA06080344C1D1E /* SelPrevVertexCmd.cpp */, - 47AB6134D2AB2F3EB10096A3 /* SelPrevVertexCmd.h */, - 0B691BBAB665F94F09B2C276 /* SelSurfaceCmd.cpp */, - CB4461BD6FC059D946144727 /* SelSurfaceCmd.h */, - 27453C6FAE9B674FD694508D /* SelTexCoordCmd.cpp */, - D05D5FBB2B2779B022A5DD04 /* SelTexCoordCmd.h */, - A2282B1E05458C3B2BBCE568 /* SelVertexCmd.cpp */, - 79A9ED756DB70790A67E3EF8 /* SelVertexCmd.h */, - 8D3CB0B9A827AFA479349BBE /* SetApplicationModeCmd.cpp */, - F0A9FE4B6FB6C958B72B72CD /* SetApplicationModeCmd.h */, - 4FFBE499412CC8DD07163E91 /* SetNextSourceCmd.cpp */, - FA2E4E947E8D358C28D903C0 /* SetNextSourceCmd.h */, - 15C9B02F2CF08112845CD074 /* SetPresetCmd.cpp */, - BCB571865BB25BC586CF80EC /* SetPresetCmd.h */, - 7F58FFED7FBFC49573FF65E4 /* SetSourceCmd.cpp */, - 56A68D8E68FF141B5EB1ADF6 /* SetSourceCmd.h */, - 49BE2D8F2A2A57F4EBF83FF4 /* SetTexMapDrawModeCmd.cpp */, - 912C6A870E22496CEA43AC85 /* SetTexMapDrawModeCmd.h */, - E8DA47AF2B265F778E74D4DA /* StartDragSurfaceCmd.cpp */, - 5EBDBF5E7887C574E1FCC1B5 /* StartDragSurfaceCmd.h */, - 5D020B9B28609D071E21BB76 /* ToggleAnimatedSourceCmd.cpp */, - 21167F26AF957606289D4A4A /* ToggleAnimatedSourceCmd.h */, - 655142313A378162E3929785 /* TogglePerspectiveCmd.cpp */, - 4244A1B9B55BD7BA7ED2F547 /* TogglePerspectiveCmd.h */, - 03FCF5559C2A6AB79D947767 /* TranslateCanvasCmd.cpp */, - 5AB104FC7812B4F42B8E1540 /* TranslateCanvasCmd.h */, - ); - name = Commands; - sourceTree = "<group>"; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -727,7 +826,6 @@ E4B69B590A3A1756003C02F2 /* Frameworks */, E4B6FFFD0C3F9AB9008CF71C /* ShellScript */, E4C2427710CC5ABF004149E2 /* CopyFiles */, - 8466F1851C04CA0E00918B1C /* ShellScript */, ); buildRules = ( ); @@ -745,7 +843,7 @@ E4B69B4C0A3A1720003C02F2 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0600; + LastUpgradeCheck = 0720; }; buildConfigurationList = E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "example" */; compatibilityVersion = "Xcode 3.2"; @@ -784,19 +882,6 @@ /* End PBXReferenceProxy section */ /* Begin PBXShellScriptBuildPhase section */ - 8466F1851C04CA0E00918B1C /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 12; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "# ---- Code Sign App Package ----\n \n# WARNING: You may have to run Clean in Xcode after changing CODE_SIGN_IDENTITY!\n\n# Verify that $CODE_SIGN_IDENTITY is set\nif [ -z \"${CODE_SIGN_IDENTITY}\" ] ; then\necho \"CODE_SIGN_IDENTITY needs to be set for framework code-signing\"\nexit 0\nfi\n\nif [ -z \"${CODE_SIGN_ENTITLEMENTS}\" ] ; then\necho \"CODE_SIGN_ENTITLEMENTS needs to be set for framework code-signing!\"\n\nif [ \"${CONFIGURATION}\" = \"Release\" ] ; then\nexit 1\nelse\n# Code-signing is optional for non-release builds.\nexit 0\nfi\nfi\n\nITEMS=\"\"\n\nFRAMEWORKS_DIR=\"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}\"\necho \"$FRAMEWORKS_DIR\"\nif [ -d \"$FRAMEWORKS_DIR\" ] ; then\nFRAMEWORKS=$(find \"${FRAMEWORKS_DIR}\" -depth -type d -name \"*.framework\" -or -name \"*.dylib\" -or -name \"*.bundle\" | sed -e \"s/\\(.*framework\\)/\\1\\/Versions\\/A\\//\")\nRESULT=$?\nif [[ $RESULT != 0 ]] ; then\nexit 1\nfi\n\nITEMS=\"${FRAMEWORKS}\"\nfi\n\nLOGINITEMS_DIR=\"${TARGET_BUILD_DIR}/${CONTENTS_FOLDER_PATH}/Library/LoginItems/\"\nif [ -d \"$LOGINITEMS_DIR\" ] ; then\nLOGINITEMS=$(find \"${LOGINITEMS_DIR}\" -depth -type d -name \"*.app\")\nRESULT=$?\nif [[ $RESULT != 0 ]] ; then\nexit 1\nfi\n\nITEMS=\"${ITEMS}\"$'\\n'\"${LOGINITEMS}\"\nfi\n\n# Prefer the expanded name, if available.\nCODE_SIGN_IDENTITY_FOR_ITEMS=\"${EXPANDED_CODE_SIGN_IDENTITY_NAME}\"\nif [ \"${CODE_SIGN_IDENTITY_FOR_ITEMS}\" = \"\" ] ; then\n# Fall back to old behavior.\nCODE_SIGN_IDENTITY_FOR_ITEMS=\"${CODE_SIGN_IDENTITY}\"\nfi\n\necho \"Identity:\"\necho \"${CODE_SIGN_IDENTITY_FOR_ITEMS}\"\n\necho \"Entitlements:\"\necho \"${CODE_SIGN_ENTITLEMENTS}\"\n\necho \"Found:\"\necho \"${ITEMS}\"\n\n# Change the Internal Field Separator (IFS) so that spaces in paths will not cause problems below.\nSAVED_IFS=$IFS\nIFS=$(echo -en \"\\n\\b\")\n\n# Loop through all items.\nfor ITEM in $ITEMS;\ndo\necho \"Signing '${ITEM}'\"\ncodesign --force --verbose --sign \"${CODE_SIGN_IDENTITY_FOR_ITEMS}\" --entitlements \"${CODE_SIGN_ENTITLEMENTS}\" \"${ITEM}\"\nRESULT=$?\nif [[ $RESULT != 0 ]] ; then\necho \"Failed to sign '${ITEM}'.\"\nIFS=$SAVED_IFS\nexit 1\nfi\ndone\n\n# Restore $IFS.\nIFS=$SAVED_IFS\n"; - }; E4B6FFFD0C3F9AB9008CF71C /* ShellScript */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -808,7 +893,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "mkdir -p \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources/\"\n# Copy default icon file into App/Resources\nrsync -aved \"$ICON_FILE\" \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources/\"\n# Copy bin/data into App/Resources\nrsync -avz --exclude='.DS_Store' \"${SRCROOT}/bin/data/\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/data/\"\n# Copy libfmod and change install directory for fmod to run\nrsync -aved ../../../libs/fmodex/lib/osx/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Frameworks/\";\ninstall_name_tool -change @executable_path/libfmodex.dylib @executable_path/../Frameworks/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/$PRODUCT_NAME\";\n# Copy GLUT framework (must remove for AppStore submissions)\nrsync -aved ../../../libs/glut/lib/osx/GLUT.framework \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Frameworks/\"\n"; + shellScript = "rsync -aved ../../../libs/fmodex/lib/osx/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/\"; install_name_tool -change ./libfmodex.dylib @executable_path/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/$PRODUCT_NAME\";\nmkdir -p \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources/\"\nrsync -aved \"$ICON_FILE\" \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources/\"\nrsync -aved ../../../libs/glut/lib/osx/GLUT.framework \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Frameworks/\""; }; /* End PBXShellScriptBuildPhase section */ @@ -817,96 +902,100 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 01815E8C1FE7D59200C35E93 /* Application.cpp in Sources */, + 01815E8D1FE7D59200C35E93 /* ApplicationBaseMode.cpp in Sources */, + 01815E8E1FE7D59200C35E93 /* PresentationMode.cpp in Sources */, + 01815E8F1FE7D59200C35E93 /* ProjectionMappingMode.cpp in Sources */, + 01815E901FE7D59200C35E93 /* SourceSelectionMode.cpp in Sources */, + 01815E911FE7D59200C35E93 /* TextureMappingMode.cpp in Sources */, + 01815E921FE7D59200C35E93 /* SettingsLoader.cpp in Sources */, + 01815E931FE7D59200C35E93 /* AddGridColCmd.cpp in Sources */, + 01815E941FE7D59200C35E93 /* AddGridRowCmd.cpp in Sources */, + 01815E951FE7D59200C35E93 /* AddSurfaceCmd.cpp in Sources */, + 01815E961FE7D59200C35E93 /* ClearSurfacesCmd.cpp in Sources */, + 01815E971FE7D59200C35E93 /* CmdManager.cpp in Sources */, + 01815E981FE7D59200C35E93 /* DeselectSurfaceCmd.cpp in Sources */, + 01815E991FE7D59200C35E93 /* DeselectTexCoordCmd.cpp in Sources */, + 01815E9A1FE7D59200C35E93 /* DuplicateSurfaceCmd.cpp in Sources */, + 01815E9B1FE7D59200C35E93 /* MvAllTexCoordsCmd.cpp in Sources */, + 01815E9C1FE7D59200C35E93 /* MvLayerDnCmd.cpp in Sources */, + 01815E9D1FE7D59200C35E93 /* MvLayerUpCmd.cpp in Sources */, + 01815E9E1FE7D59200C35E93 /* MvSelectionCmd.cpp in Sources */, + 01815E9F1FE7D59200C35E93 /* MvSurfaceVertCmd.cpp in Sources */, + 01815EA01FE7D59200C35E93 /* MvTexCoordCmd.cpp in Sources */, + 01815EA11FE7D59200C35E93 /* RmGridColCmd.cpp in Sources */, + 01815EA21FE7D59200C35E93 /* RmGridRowCmd.cpp in Sources */, + 01815EA31FE7D59200C35E93 /* RmSurfaceCmd.cpp in Sources */, + 01815EA41FE7D59200C35E93 /* SaveTexCoordPosCmd.cpp in Sources */, + 01815EA51FE7D59200C35E93 /* ScaleSurfaceFromToCmd.cpp in Sources */, + 01815EA61FE7D59200C35E93 /* SelNextSurfaceCmd.cpp in Sources */, + 01815EA71FE7D59200C35E93 /* SelNextTexCoordCmd.cpp in Sources */, + 01815EA81FE7D59200C35E93 /* SelNextVertexCmd.cpp in Sources */, + 01815EA91FE7D59200C35E93 /* SelPrevSurfaceCmd.cpp in Sources */, + 01815EAA1FE7D59200C35E93 /* SelPrevTexCoordCmd.cpp in Sources */, + 01815EAB1FE7D59200C35E93 /* SelPrevVertexCmd.cpp in Sources */, + 01815EAC1FE7D59200C35E93 /* SelSurfaceCmd.cpp in Sources */, + 01815EAD1FE7D59200C35E93 /* SelTexCoordCmd.cpp in Sources */, + 01815EAE1FE7D59200C35E93 /* SelVertexCmd.cpp in Sources */, + 01815EAF1FE7D59200C35E93 /* SetApplicationModeCmd.cpp in Sources */, + 01815EB01FE7D59200C35E93 /* SetNextSourceCmd.cpp in Sources */, + 01815EB11FE7D59200C35E93 /* SetPresetCmd.cpp in Sources */, + 01815EB21FE7D59200C35E93 /* SetSourceCmd.cpp in Sources */, + 01815EB31FE7D59200C35E93 /* SetTexMapDrawModeCmd.cpp in Sources */, + 01815EB41FE7D59200C35E93 /* StartDragSurfaceCmd.cpp in Sources */, + 01815EB51FE7D59200C35E93 /* ToggleAnimatedSourceCmd.cpp in Sources */, + 01815EB61FE7D59200C35E93 /* TogglePerspectiveCmd.cpp in Sources */, + 01815EB71FE7D59200C35E93 /* TranslateCanvasCmd.cpp in Sources */, + 01815EB81FE7D59200C35E93 /* Gui.cpp in Sources */, + 01815EB91FE7D59200C35E93 /* LayerPanelWidget.cpp in Sources */, + 01815EBA1FE7D59200C35E93 /* ProjectionEditorWidget.cpp in Sources */, + 01815EBB1FE7D59200C35E93 /* ScaleWidget.cpp in Sources */, + 01815EBC1FE7D59200C35E93 /* SourcesEditorWidget.cpp in Sources */, + 01815EBD1FE7D59200C35E93 /* SurfaceHighlightWidget.cpp in Sources */, + 01815EBE1FE7D59200C35E93 /* TextureEditorWidget.cpp in Sources */, + 01815EBF1FE7D59200C35E93 /* TextureHighlightWidget.cpp in Sources */, + 01815EC01FE7D59200C35E93 /* Info.cpp in Sources */, + 01815EC11FE7D59200C35E93 /* DirectoryWatcher.cpp in Sources */, + 01815EC21FE7D59200C35E93 /* MediaServer.cpp in Sources */, + 01815EC31FE7D59200C35E93 /* ofxPiMapper.cpp in Sources */, + 01815EC41FE7D59200C35E93 /* BaseSource.cpp in Sources */, + 01815EC51FE7D59200C35E93 /* FboSource.cpp in Sources */, + 01815EC61FE7D59200C35E93 /* ImageSource.cpp in Sources */, + 01815EC71FE7D59200C35E93 /* magSlide.cpp in Sources */, + 01815EC81FE7D59200C35E93 /* magSlideShowSource.cpp in Sources */, + 01815EC91FE7D59200C35E93 /* magSlideTransition.cpp in Sources */, + 01815ECA1FE7D59200C35E93 /* magSlideTransitionFactory.cpp in Sources */, + 01815ECB1FE7D59200C35E93 /* OMXPlayerCache.cpp in Sources */, + 01815ECC1FE7D59200C35E93 /* VideoSource.cpp in Sources */, + 01815ECD1FE7D59200C35E93 /* BaseSurface.cpp in Sources */, + 01815ECE1FE7D59200C35E93 /* GridWarpSurface.cpp in Sources */, + 01815ECF1FE7D59200C35E93 /* HexagonSurface.cpp in Sources */, + 01815ED01FE7D59200C35E93 /* QuadSurface.cpp in Sources */, + 01815ED11FE7D59200C35E93 /* SurfaceFactory.cpp in Sources */, + 01815ED21FE7D59200C35E93 /* SurfaceManager.cpp in Sources */, + 01815ED31FE7D59200C35E93 /* SurfaceStack.cpp in Sources */, + 01815ED41FE7D59200C35E93 /* TriangleSurface.cpp in Sources */, + 01815ED51FE7D59200C35E93 /* BaseJoint.cpp in Sources */, + 01815ED61FE7D59200C35E93 /* CircleJoint.cpp in Sources */, + 01815ED71FE7D59200C35E93 /* RadioList.cpp in Sources */, + 01815ED81FE7D59200C35E93 /* HomographyHelper.cpp in Sources */, + 3933D5D819BB87BD000ACA55 /* ofxSlider.cpp in Sources */, + 3933D5DA19BB87BD000ACA55 /* ofxToggle.cpp in Sources */, + 3933D5D319BB87BD000ACA55 /* ofxBaseGui.cpp in Sources */, + 3933D5D919BB87BD000ACA55 /* ofxSliderGroup.cpp in Sources */, + 3995C20A1C79069B00123352 /* Settings.cpp in Sources */, E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */, + 39264843192224F90008A7F5 /* tinyxmlparser.cpp in Sources */, + 3933D5D419BB87BD000ACA55 /* ofxButton.cpp in Sources */, + 39264841192224F90008A7F5 /* tinyxml.cpp in Sources */, + 3933D5D619BB87BD000ACA55 /* ofxLabel.cpp in Sources */, + 399953691BD54FF600D5B1F1 /* CrossSource.cpp in Sources */, E4B69E210A3A1BDC003C02F2 /* ofApp.cpp in Sources */, - 2AB23B34A18E47DB0D742387 /* CrossSource.cpp in Sources */, - A3E23EF00463364A9FE3860C /* CustomSource.cpp in Sources */, - 4280FE72330EE80A9929046F /* Settings.cpp in Sources */, - 856AA354D08AB4B323081444 /* ofxBaseGui.cpp in Sources */, - 5CBB2AB3A60F65431D7B555D /* ofxButton.cpp in Sources */, - B266578FC55D23BFEBC042E7 /* ofxGuiGroup.cpp in Sources */, - 483908258D00B98B4BE69F07 /* ofxLabel.cpp in Sources */, - F285EB3169F1566CA3D93C20 /* ofxPanel.cpp in Sources */, - 837220E80EB56CD44AD27F2A /* ofxSlider.cpp in Sources */, - B56FE57CC35806596D38118C /* ofxSliderGroup.cpp in Sources */, - 1CD33E884D9E3358252E82A1 /* ofxToggle.cpp in Sources */, - 401140F3B7FA4412935BB121 /* Application.cpp in Sources */, - C4D6DA9B890E612343FD059F /* ApplicationBaseMode.cpp in Sources */, - 4A53BFBA57F4AD16FB9D2D24 /* PresentationMode.cpp in Sources */, - 42AB7CD7DFB89209AB951942 /* ProjectionMappingMode.cpp in Sources */, - AA98F23DF9897F2241EF3968 /* SourceSelectionMode.cpp in Sources */, - 21B18AC78EBFC1FD28C614D5 /* TextureMappingMode.cpp in Sources */, - 2E9E05C9FFCE15172A701335 /* SettingsLoader.cpp in Sources */, - 580602DA874A9CF9E850DEEE /* AddGridColCmd.cpp in Sources */, - D88BA6D139757ED4E1669796 /* AddGridRowCmd.cpp in Sources */, - B1EEE5A7EC1876072BF8F7FE /* AddSurfaceCmd.cpp in Sources */, - F9A6B58165791682416A1685 /* ClearSurfacesCmd.cpp in Sources */, - 93760FE8B10EBD4081251E10 /* CmdManager.cpp in Sources */, - C8D7FA44AA0565654A681157 /* DeselectSurfaceCmd.cpp in Sources */, - 973F560586CB3735581265E7 /* DeselectTexCoordCmd.cpp in Sources */, - D61A46C1800537BA43C7884F /* DuplicateSurfaceCmd.cpp in Sources */, - 8CA6C92E3D4F91750BC469FF /* MvAllTexCoordsCmd.cpp in Sources */, - A75658250711ADE2C05FC781 /* MvLayerDnCmd.cpp in Sources */, - C34B66987F4DA38C21AF325B /* MvLayerUpCmd.cpp in Sources */, - 6056983B92E88B475FF04299 /* MvSelectionCmd.cpp in Sources */, - 845DC872C79A75F7B5FABC02 /* MvSurfaceVertCmd.cpp in Sources */, - 25F5CD753AF35B53464E56AE /* MvTexCoordCmd.cpp in Sources */, - 82643E358DF270B9EC939699 /* RmGridColCmd.cpp in Sources */, - 5826FF4F63DC430E90AFDA5E /* RmGridRowCmd.cpp in Sources */, - B01F972DDDA5F21EF4C8B99D /* RmSurfaceCmd.cpp in Sources */, - 36A98A331EAE1D0A19998A59 /* SaveTexCoordPosCmd.cpp in Sources */, - E327ACE85A208BAFACD1B7C7 /* ScaleSurfaceFromToCmd.cpp in Sources */, - 67FF225B68ECC1942C833BFE /* SelNextSurfaceCmd.cpp in Sources */, - 60C8089351E49CF344577098 /* SelNextTexCoordCmd.cpp in Sources */, - E6D82F5A7B22E9FB46DEEF15 /* SelNextVertexCmd.cpp in Sources */, - 7DAB7D546F81A93336034BF7 /* SelPrevSurfaceCmd.cpp in Sources */, - 800748EF057A284D9DA82F60 /* SelPrevTexCoordCmd.cpp in Sources */, - B9654D0EF43BCA228B330ED7 /* SelPrevVertexCmd.cpp in Sources */, - E5D631612E039E04B1736E76 /* SelSurfaceCmd.cpp in Sources */, - 14566DCD28D35A80428886C4 /* SelTexCoordCmd.cpp in Sources */, - 7002E598586957E5F20E69A7 /* SelVertexCmd.cpp in Sources */, - 90DE06EA59944C1BEA539719 /* SetApplicationModeCmd.cpp in Sources */, - 4BF21A290FA6FE26B87B8971 /* SetNextSourceCmd.cpp in Sources */, - 84172554824F6959BA431E33 /* SetPresetCmd.cpp in Sources */, - 6500BFD07CA93EFD8A162B25 /* SetSourceCmd.cpp in Sources */, - A6EE8D8F3CA590EF6D7FAFA6 /* SetTexMapDrawModeCmd.cpp in Sources */, - 06765053D7BFBBEB43E77B23 /* StartDragSurfaceCmd.cpp in Sources */, - 6438655B2AE4DDA2743241EC /* ToggleAnimatedSourceCmd.cpp in Sources */, - 23963D6D8F0085D5DD2DF394 /* TogglePerspectiveCmd.cpp in Sources */, - 28F5415281F8D09BBC098355 /* TranslateCanvasCmd.cpp in Sources */, - EA700B09626C8413C92EF860 /* Gui.cpp in Sources */, - 8E8F94DC506856A4E92FBA8A /* LayerPanelWidget.cpp in Sources */, - 274AEF0299D77E27C0C5B205 /* ProjectionEditorWidget.cpp in Sources */, - F06AE014F869282B7F7CE84C /* ScaleWidget.cpp in Sources */, - FB03F0A6D7866DFC55F519EB /* SourcesEditorWidget.cpp in Sources */, - 8A3D6CE0A4338871766366B6 /* SurfaceHighlightWidget.cpp in Sources */, - 4D2D4455339FC8C955091C88 /* TextureEditorWidget.cpp in Sources */, - 9CAA3B0DFD59840998C832DA /* TextureHighlightWidget.cpp in Sources */, - F3EACD31EE5E141FF66C48BD /* Info.cpp in Sources */, - DB8FC60C7512DB810C92625B /* DirectoryWatcher.cpp in Sources */, - 92527EF632E7EC0E96BC329C /* MediaServer.cpp in Sources */, - 3B90107DB9BF4857E357FCA8 /* ofxPiMapper.cpp in Sources */, - 892923A127FC7C57469FD078 /* BaseSource.cpp in Sources */, - 7702233BBFB6E8D9E8B93CBC /* FboSource.cpp in Sources */, - 95CB0A22296B3DB402835DCF /* ImageSource.cpp in Sources */, - 588E33B9B0BD6F5A2E4DF31D /* OMXPlayerCache.cpp in Sources */, - A0C1CAB7B9C59DDDC960EB62 /* VideoSource.cpp in Sources */, - 9F968AD3A115328F4BFE5D71 /* BaseSurface.cpp in Sources */, - 63DB0907B2ACDF9E6F2D9925 /* GridWarpSurface.cpp in Sources */, - 9C194C9F4ACD67CD61FBD30D /* HexagonSurface.cpp in Sources */, - 2A9AFA74E0EF07E58AC11382 /* QuadSurface.cpp in Sources */, - B27F2ADC894A4C463E892AFE /* SurfaceFactory.cpp in Sources */, - 85649EB44DE8F0A3BF8430F9 /* SurfaceManager.cpp in Sources */, - C3A616FB3A463C17E327F395 /* SurfaceStack.cpp in Sources */, - C0EB2D2E383BA9DE417ADB38 /* TriangleSurface.cpp in Sources */, - 868F230C6074263277ED9B07 /* BaseJoint.cpp in Sources */, - 42BCE929D520D8872171239A /* CircleJoint.cpp in Sources */, - 1F4453EA1589AD79F4B34493 /* RadioList.cpp in Sources */, - 83CACB24937919003F2F9B63 /* HomographyHelper.cpp in Sources */, - 63B57AC5BF4EF088491E0317 /* ofxXmlSettings.cpp in Sources */, - 933A2227713C720CEFF80FD9 /* tinyxml.cpp in Sources */, - 9D44DC88EF9E7991B4A09951 /* tinyxmlerror.cpp in Sources */, - 5A4349E9754D6FA14C0F2A3A /* tinyxmlparser.cpp in Sources */, + 3933D5D719BB87BD000ACA55 /* ofxPanel.cpp in Sources */, + 39264842192224F90008A7F5 /* tinyxmlerror.cpp in Sources */, + 3926483B192224DA0008A7F5 /* ofxXmlSettings.cpp in Sources */, + 397EFC821A09047C0009286E /* CustomSource.cpp in Sources */, + 3933D5D519BB87BD000ACA55 /* ofxGuiGroup.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -925,10 +1014,11 @@ isa = XCBuildConfiguration; baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */; buildSettings = { - ARCHS = "$(ARCHS_STANDARD)"; + COMBINE_HIDPI_IMAGES = YES; CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/"; COPY_PHASE_STRIP = NO; DEAD_CODE_STRIPPING = YES; + ENABLE_TESTABILITY = YES; GCC_AUTO_VECTORIZATION = YES; GCC_ENABLE_SSE3_EXTENSIONS = YES; GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES; @@ -944,29 +1034,22 @@ HEADER_SEARCH_PATHS = ( "$(OF_CORE_HEADERS)", src, - ../../../addons/ofxGui/src, - ../../../addons/ofxPiMapper/src, - ../../../addons/ofxPiMapper/src/Application, - ../../../addons/ofxPiMapper/src/Application/Modes, - ../../../addons/ofxPiMapper/src/Commands, - ../../../addons/ofxPiMapper/src/Gui, - ../../../addons/ofxPiMapper/src/Gui/Widgets, - ../../../addons/ofxPiMapper/src/Info, - ../../../addons/ofxPiMapper/src/MediaServer, - ../../../addons/ofxPiMapper/src/Sources, - ../../../addons/ofxPiMapper/src/Surfaces, - ../../../addons/ofxPiMapper/src/UserInterface, - ../../../addons/ofxPiMapper/src/Utils, - ../../../addons/ofxXmlSettings/libs, - ../../../addons/ofxXmlSettings/src, ); - MACOSX_DEPLOYMENT_TARGET = 10.8; + INFOPLIST_FILE = "openFrameworks-Info.plist"; + MACH_O_TYPE = mh_execute; + MACOSX_DEPLOYMENT_TARGET = 10.7; ONLY_ACTIVE_ARCH = YES; OTHER_CPLUSPLUSFLAGS = ( "-D__MACOSX_CORE__", + "-lpthread", "-mtune=native", ); - SDKROOT = macosx10.11; + OTHER_LDFLAGS = ( + "$(OF_CORE_LIBS)", + "$(OF_CORE_FRAMEWORKS)", + ); + PRIVATE_HEADERS_FOLDER_PATH = "$(PRODUCT_NAME:c99extidentifier)"; + SDKROOT = macosx; }; name = Debug; }; @@ -974,7 +1057,7 @@ isa = XCBuildConfiguration; baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */; buildSettings = { - ARCHS = "$(ARCHS_STANDARD)"; + COMBINE_HIDPI_IMAGES = YES; CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/"; COPY_PHASE_STRIP = YES; DEAD_CODE_STRIPPING = YES; @@ -994,34 +1077,26 @@ HEADER_SEARCH_PATHS = ( "$(OF_CORE_HEADERS)", src, - ../../../addons/ofxGui/src, - ../../../addons/ofxPiMapper/src, - ../../../addons/ofxPiMapper/src/Application, - ../../../addons/ofxPiMapper/src/Application/Modes, - ../../../addons/ofxPiMapper/src/Commands, - ../../../addons/ofxPiMapper/src/Gui, - ../../../addons/ofxPiMapper/src/Gui/Widgets, - ../../../addons/ofxPiMapper/src/Info, - ../../../addons/ofxPiMapper/src/MediaServer, - ../../../addons/ofxPiMapper/src/Sources, - ../../../addons/ofxPiMapper/src/Surfaces, - ../../../addons/ofxPiMapper/src/UserInterface, - ../../../addons/ofxPiMapper/src/Utils, - ../../../addons/ofxXmlSettings/libs, - ../../../addons/ofxXmlSettings/src, ); - MACOSX_DEPLOYMENT_TARGET = 10.8; + INFOPLIST_FILE = "openFrameworks-Info.plist"; + MACH_O_TYPE = mh_execute; + MACOSX_DEPLOYMENT_TARGET = 10.7; OTHER_CPLUSPLUSFLAGS = ( "-D__MACOSX_CORE__", + "-lpthread", "-mtune=native", ); - SDKROOT = macosx10.11; + OTHER_LDFLAGS = ( + "$(OF_CORE_LIBS)", + "$(OF_CORE_FRAMEWORKS)", + ); + PRIVATE_HEADERS_FOLDER_PATH = "$(PRODUCT_NAME:c99extidentifier)"; + SDKROOT = macosx; }; name = Release; }; E4B69B600A3A1757003C02F2 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */; buildSettings = { COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; @@ -1036,35 +1111,89 @@ HEADER_SEARCH_PATHS = ( "$(OF_CORE_HEADERS)", src, - ../../../addons/ofxGui/src, - ../../../addons/ofxPiMapper/src, - ../../../addons/ofxPiMapper/src/Application, - ../../../addons/ofxPiMapper/src/Application/Modes, - ../../../addons/ofxPiMapper/src/Commands, - ../../../addons/ofxPiMapper/src/Gui, - ../../../addons/ofxPiMapper/src/Gui/Widgets, - ../../../addons/ofxPiMapper/src/Info, - ../../../addons/ofxPiMapper/src/MediaServer, - ../../../addons/ofxPiMapper/src/Sources, - ../../../addons/ofxPiMapper/src/Surfaces, - ../../../addons/ofxPiMapper/src/UserInterface, - ../../../addons/ofxPiMapper/src/Utils, - ../../../addons/ofxXmlSettings/libs, - ../../../addons/ofxXmlSettings/src, ); ICON = "$(ICON_NAME_DEBUG)"; ICON_FILE = "$(ICON_FILE_PATH)$(ICON)"; INFOPLIST_FILE = "openFrameworks-Info.plist"; - INSTALL_PATH = /Applications; - LIBRARY_SEARCH_PATHS = "$(inherited)"; - PRODUCT_NAME = "$(TARGET_NAME)Debug"; + INSTALL_PATH = "$(HOME)/Applications"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_17)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_18)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_19)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_20)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_21)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_22)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_23)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_24)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_25)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_26)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_27)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_28)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_29)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_30)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_31)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_32)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_33)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_34)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_35)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_36)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_37)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_38)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_39)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_40)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_41)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_42)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_43)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_44)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_45)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_46)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_47)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_48)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_49)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_50)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_51)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_52)", + ); + MACOSX_DEPLOYMENT_TARGET = 10.11; + OTHER_LDFLAGS = ( + "$(OF_CORE_LIBS)", + "$(OF_CORE_FRAMEWORKS)", + ); + PRODUCT_BUNDLE_IDENTIFIER = cc.openFrameworks.ofapp; + PRODUCT_NAME = exampleDebug; + SDKROOT = macosx; WRAPPER_EXTENSION = app; }; name = Debug; }; E4B69B610A3A1757003C02F2 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */; buildSettings = { COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = YES; @@ -1078,30 +1207,84 @@ HEADER_SEARCH_PATHS = ( "$(OF_CORE_HEADERS)", src, - ../../../addons/ofxGui/src, - ../../../addons/ofxPiMapper/src, - ../../../addons/ofxPiMapper/src/Application, - ../../../addons/ofxPiMapper/src/Application/Modes, - ../../../addons/ofxPiMapper/src/Commands, - ../../../addons/ofxPiMapper/src/Gui, - ../../../addons/ofxPiMapper/src/Gui/Widgets, - ../../../addons/ofxPiMapper/src/Info, - ../../../addons/ofxPiMapper/src/MediaServer, - ../../../addons/ofxPiMapper/src/Sources, - ../../../addons/ofxPiMapper/src/Surfaces, - ../../../addons/ofxPiMapper/src/UserInterface, - ../../../addons/ofxPiMapper/src/Utils, - ../../../addons/ofxXmlSettings/libs, - ../../../addons/ofxXmlSettings/src, ); ICON = "$(ICON_NAME_RELEASE)"; ICON_FILE = "$(ICON_FILE_PATH)$(ICON)"; INFOPLIST_FILE = "openFrameworks-Info.plist"; - INSTALL_PATH = /Applications; - LIBRARY_SEARCH_PATHS = "$(inherited)"; - PRODUCT_NAME = "$(TARGET_NAME)"; + INSTALL_PATH = "$(HOME)/Applications"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_1)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_17)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_18)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_19)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_20)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_21)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_22)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_23)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_24)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_25)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_26)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_27)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_28)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_29)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_30)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_31)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_32)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_33)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_34)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_35)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_36)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_37)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_38)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_39)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_40)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_41)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_42)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_43)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_44)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_45)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_46)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_47)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_48)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_49)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_50)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_51)", + ); + MACOSX_DEPLOYMENT_TARGET = 10.11; + OTHER_LDFLAGS = ( + "$(OF_CORE_LIBS)", + "$(OF_CORE_FRAMEWORKS)", + ); + PRODUCT_BUNDLE_IDENTIFIER = cc.openFrameworks.ofapp; + PRODUCT_NAME = example; + SDKROOT = macosx; WRAPPER_EXTENSION = app; - baseConfigurationReference = E4EB6923138AFD0F00A09F29; }; name = Release; }; diff --git a/example/example.xcodeproj/xcshareddata/xcschemes/example Debug.xcscheme b/example/example.xcodeproj/xcshareddata/xcschemes/example Debug.xcscheme index a637354..b040463 100644 --- a/example/example.xcodeproj/xcshareddata/xcschemes/example Debug.xcscheme +++ b/example/example.xcodeproj/xcshareddata/xcschemes/example Debug.xcscheme @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <Scheme - LastUpgradeVersion = "0600" + LastUpgradeVersion = "0720" version = "1.3"> <BuildAction parallelizeBuildables = "YES" @@ -23,10 +23,10 @@ </BuildActionEntries> </BuildAction> <TestAction + buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - shouldUseLaunchSchemeArgsEnv = "YES" - buildConfiguration = "Debug"> + shouldUseLaunchSchemeArgsEnv = "YES"> <Testables> </Testables> <MacroExpansion> @@ -38,17 +38,21 @@ ReferencedContainer = "container:example.xcodeproj"> </BuildableReference> </MacroExpansion> + <AdditionalOptions> + </AdditionalOptions> </TestAction> <LaunchAction + buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" launchStyle = "0" useCustomWorkingDirectory = "NO" - buildConfiguration = "Debug" ignoresPersistentStateOnLaunch = "NO" debugDocumentVersioning = "YES" + debugServiceExtension = "internal" allowLocationSimulation = "YES"> - <BuildableProductRunnable> + <BuildableProductRunnable + runnableDebuggingMode = "0"> <BuildableReference BuildableIdentifier = "primary" BlueprintIdentifier = "E4B69B5A0A3A1756003C02F2" @@ -61,12 +65,13 @@ </AdditionalOptions> </LaunchAction> <ProfileAction + buildConfiguration = "Debug" shouldUseLaunchSchemeArgsEnv = "YES" savedToolIdentifier = "" useCustomWorkingDirectory = "NO" - buildConfiguration = "Debug" debugDocumentVersioning = "YES"> - <BuildableProductRunnable> + <BuildableProductRunnable + runnableDebuggingMode = "0"> <BuildableReference BuildableIdentifier = "primary" BlueprintIdentifier = "E4B69B5A0A3A1756003C02F2" diff --git a/example/example.xcodeproj/xcshareddata/xcschemes/example Release.xcscheme b/example/example.xcodeproj/xcshareddata/xcschemes/example Release.xcscheme index 1b9ed60..1584e8a 100644 --- a/example/example.xcodeproj/xcshareddata/xcschemes/example Release.xcscheme +++ b/example/example.xcodeproj/xcshareddata/xcschemes/example Release.xcscheme @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <Scheme - LastUpgradeVersion = "0600" + LastUpgradeVersion = "0720" version = "1.3"> <BuildAction parallelizeBuildables = "YES" @@ -23,10 +23,10 @@ </BuildActionEntries> </BuildAction> <TestAction + buildConfiguration = "Release" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - shouldUseLaunchSchemeArgsEnv = "YES" - buildConfiguration = "Release"> + shouldUseLaunchSchemeArgsEnv = "YES"> <Testables> </Testables> <MacroExpansion> @@ -38,17 +38,21 @@ ReferencedContainer = "container:example.xcodeproj"> </BuildableReference> </MacroExpansion> + <AdditionalOptions> + </AdditionalOptions> </TestAction> <LaunchAction + buildConfiguration = "Release" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" launchStyle = "0" useCustomWorkingDirectory = "NO" - buildConfiguration = "Release" ignoresPersistentStateOnLaunch = "NO" debugDocumentVersioning = "YES" + debugServiceExtension = "internal" allowLocationSimulation = "YES"> - <BuildableProductRunnable> + <BuildableProductRunnable + runnableDebuggingMode = "0"> <BuildableReference BuildableIdentifier = "primary" BlueprintIdentifier = "E4B69B5A0A3A1756003C02F2" @@ -61,12 +65,13 @@ </AdditionalOptions> </LaunchAction> <ProfileAction + buildConfiguration = "Release" shouldUseLaunchSchemeArgsEnv = "YES" savedToolIdentifier = "" useCustomWorkingDirectory = "NO" - buildConfiguration = "Release" debugDocumentVersioning = "YES"> - <BuildableProductRunnable> + <BuildableProductRunnable + runnableDebuggingMode = "0"> <BuildableReference BuildableIdentifier = "primary" BlueprintIdentifier = "E4B69B5A0A3A1756003C02F2"