카피 버전

main original
표형규 1 month ago
commit c5f0d57a7d

Binary file not shown.

Binary file not shown.

@ -0,0 +1,41 @@
{
"Version": 1,
"WorkspaceRootPath": "E:\\Work\\OpenFrameWorks\\of_v0.12.0_vs_release\\apps\\myApps\\ofx_scanview\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{7FD42DF7-442E-479A-BA76-D0022F99702A}|ofx_scanview.vcxproj|E:\\Work\\OpenFrameWorks\\of_v0.12.0_vs_release\\apps\\myApps\\ofx_scanview\\src\\main.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
"RelativeMoniker": "D:0:0:{7FD42DF7-442E-479A-BA76-D0022F99702A}|ofx_scanview.vcxproj|solutionrelative:src\\main.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
}
],
"DocumentGroupContainers": [
{
"Orientation": 0,
"VerticalTabListWidth": 256,
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": 1,
"Children": [
{
"$type": "Bookmark",
"Name": "ST:0:0:{6324226f-61b6-4f28-92ee-18d4b5fe1e48}"
},
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "main.cpp",
"DocumentMoniker": "E:\\Work\\OpenFrameWorks\\of_v0.12.0_vs_release\\apps\\myApps\\ofx_scanview\\src\\main.cpp",
"RelativeDocumentMoniker": "src\\main.cpp",
"ToolTip": "E:\\Work\\OpenFrameWorks\\of_v0.12.0_vs_release\\apps\\myApps\\ofx_scanview\\src\\main.cpp",
"RelativeToolTip": "src\\main.cpp",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
"WhenOpened": "2026-03-06T01:04:05.856Z",
"EditorCaption": ""
}
]
}
]
}
]
}

@ -0,0 +1,41 @@
{
"Version": 1,
"WorkspaceRootPath": "E:\\Work\\OpenFrameWorks\\of_v0.12.0_vs_release\\apps\\myApps\\ofx_scanview\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{7FD42DF7-442E-479A-BA76-D0022F99702A}|ofx_scanview.vcxproj|E:\\Work\\OpenFrameWorks\\of_v0.12.0_vs_release\\apps\\myApps\\ofx_scanview\\src\\main.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
"RelativeMoniker": "D:0:0:{7FD42DF7-442E-479A-BA76-D0022F99702A}|ofx_scanview.vcxproj|solutionrelative:src\\main.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
}
],
"DocumentGroupContainers": [
{
"Orientation": 0,
"VerticalTabListWidth": 256,
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": 1,
"Children": [
{
"$type": "Bookmark",
"Name": "ST:0:0:{6324226f-61b6-4f28-92ee-18d4b5fe1e48}"
},
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "main.cpp",
"DocumentMoniker": "E:\\Work\\OpenFrameWorks\\of_v0.12.0_vs_release\\apps\\myApps\\ofx_scanview\\src\\main.cpp",
"RelativeDocumentMoniker": "src\\main.cpp",
"ToolTip": "E:\\Work\\OpenFrameWorks\\of_v0.12.0_vs_release\\apps\\myApps\\ofx_scanview\\src\\main.cpp",
"RelativeToolTip": "src\\main.cpp",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
"WhenOpened": "2026-03-06T01:04:05.856Z",
"EditorCaption": ""
}
]
}
]
}
]
}

Binary file not shown.

@ -0,0 +1 @@
ofxJSON-master

Binary file not shown.

@ -0,0 +1,8 @@
{
"scanDirPath": "C:/Users/Indigo/Documents/scan",
"scanDirCheckDurationSecf": 1.0,
"numScanFilesToKeep": 5,
"numWarpFilesToKeep": 10,
"fadeDurationSec": 5.0,
"transitionDelaySec": 5.0
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -0,0 +1,8 @@
// Icon Resource Definition
#define MAIN_ICON 102
#if defined(_DEBUG)
MAIN_ICON ICON "icon_debug.ico"
#else
MAIN_ICON ICON "icon.ico"
#endif

Binary file not shown.

@ -0,0 +1,19 @@
 ofApp.cpp
E:\Work\OpenFrameWorks\of_v0.12.0_vs_release\libs\openFrameworks\utils\ofUtils.h(1,1): warning C4819: 현재 코드 페이지(949)에서 표시할 수 없는 문자가 파일에 들어 있습니다. 데이터가 손실되지 않게 하려면 해당 파일을 유니코드 형식으로 저장하십시오.
E:\Work\OpenFrameWorks\of_v0.12.0_vs_release\libs\openFrameworks\math\ofVec3f.h(1,1): warning C4819: 현재 코드 페이지(949)에서 표시할 수 없는 문자가 파일에 들어 있습니다. 데이터가 손실되지 않게 하려면 해당 파일을 유니코드 형식으로 저장하십시오.
E:\Work\OpenFrameWorks\of_v0.12.0_vs_release\libs\openFrameworks\math\ofVec2f.h(1,1): warning C4819: 현재 코드 페이지(949)에서 표시할 수 없는 문자가 파일에 들어 있습니다. 데이터가 손실되지 않게 하려면 해당 파일을 유니코드 형식으로 저장하십시오.
E:\Work\OpenFrameWorks\of_v0.12.0_vs_release\libs\openFrameworks\math\ofMatrix4x4.h(326,1): warning C4267: '인수': 'size_t'에서 'int'(으)로 변환하면서 데이터가 손실될 수 있습니다.
E:\Work\OpenFrameWorks\of_v0.12.0_vs_release\libs\openFrameworks\math\ofMatrix4x4.h(331,1): warning C4267: '인수': 'size_t'에서 'int'(으)로 변환하면서 데이터가 손실될 수 있습니다.
E:\Work\OpenFrameWorks\of_v0.12.0_vs_release\libs\openFrameworks\math\ofMatrix4x4.h(912,12): warning C4267: '인수': 'size_t'에서 'int'(으)로 변환하면서 데이터가 손실될 수 있습니다.
E:\Work\OpenFrameWorks\of_v0.12.0_vs_release\libs\openFrameworks\math\ofMatrix4x4.h(913,12): warning C4267: '인수': 'size_t'에서 'int'(으)로 변환하면서 데이터가 손실될 수 있습니다.
E:\Work\OpenFrameWorks\of_v0.12.0_vs_release\libs\openFrameworks\math\ofMatrix4x4.h(914,12): warning C4267: '인수': 'size_t'에서 'int'(으)로 변환하면서 데이터가 손실될 수 있습니다.
E:\Work\OpenFrameWorks\of_v0.12.0_vs_release\libs\openFrameworks\math\ofMatrix4x4.h(915,12): warning C4267: '인수': 'size_t'에서 'int'(으)로 변환하면서 데이터가 손실될 수 있습니다.
LINK : warning LNK4075: '/INCREMENTAL'이(가) '/FORCE' 사양으로 인해 무시됩니다.
ofx_scanview.vcxproj -> E:\Work\OpenFrameWorks\of_v0.12.0_vs_release\apps\myApps\ofx_scanview\bin\ofx_scanview_debug.exe
2 E:\Work\OpenFrameWorks\of_v0.12.0_vs_release\libs\fmod\lib\vs\x64\
*추가 파일 6942208 E:\Work\OpenFrameWorks\of_v0.12.0_vs_release\apps\myApps\ofx_scanview\bin\FreeImage.dll
1 E:\Work\OpenFrameWorks\of_v0.12.0_vs_release\libs\FreeImage\lib\vs\x64\
*추가 파일 1826304 E:\Work\OpenFrameWorks\of_v0.12.0_vs_release\apps\myApps\ofx_scanview\bin\fmod.dll
*추가 파일 2041856 E:\Work\OpenFrameWorks\of_v0.12.0_vs_release\apps\myApps\ofx_scanview\bin\fmodL.dll

@ -0,0 +1,2 @@
PlatformToolSet=v142:VCToolArchitecture=Native64Bit:VCToolsVersion=14.29.30133:TargetPlatformVersion=10.0.26100.0:
Debug|x64|E:\Work\OpenFrameWorks\of_v0.12.0_vs_release\apps\myApps\ofx_scanview\|

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<Project>
<ProjectOutputs>
<ProjectOutput>
<FullPath>E:\Work\OpenFrameWorks\of_v0.12.0_vs_release\apps\myApps\ofx_scanview\bin\ofx_scanview_debug.exe</FullPath>
</ProjectOutput>
</ProjectOutputs>
<ContentFiles />
<SatelliteDlls />
<NonRecipeFileRefs />
</Project>

Binary file not shown.

@ -0,0 +1,25 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ofx_scanview", "ofx_scanview.vcxproj", "{7FD42DF7-442E-479A-BA76-D0022F99702A}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "openframeworksLib", "..\..\..\libs\openFrameworksCompiled\project\vs\openframeworksLib.vcxproj", "{5837595D-ACA9-485C-8E76-729040CE4B0B}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{7FD42DF7-442E-479A-BA76-D0022F99702A}.Debug|x64.ActiveCfg = Debug|x64
{7FD42DF7-442E-479A-BA76-D0022F99702A}.Debug|x64.Build.0 = Debug|x64
{7FD42DF7-442E-479A-BA76-D0022F99702A}.Release|x64.ActiveCfg = Release|x64
{7FD42DF7-442E-479A-BA76-D0022F99702A}.Release|x64.Build.0 = Release|x64
{5837595D-ACA9-485C-8E76-729040CE4B0B}.Debug|x64.ActiveCfg = Debug|x64
{5837595D-ACA9-485C-8E76-729040CE4B0B}.Debug|x64.Build.0 = Debug|x64
{5837595D-ACA9-485C-8E76-729040CE4B0B}.Release|x64.ActiveCfg = Release|x64
{5837595D-ACA9-485C-8E76-729040CE4B0B}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

@ -0,0 +1,136 @@
<?xml version="1.0"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Condition="'$(WindowsTargetPlatformVersion)'==''">
<LatestTargetPlatformVersion>$([Microsoft.Build.Utilities.ToolLocationHelper]::GetLatestSDKTargetPlatformVersion('Windows', '10.0'))</LatestTargetPlatformVersion>
<WindowsTargetPlatformVersion Condition="'$(WindowsTargetPlatformVersion)' == ''">$(LatestTargetPlatformVersion)</WindowsTargetPlatformVersion>
<TargetPlatformVersion>$(WindowsTargetPlatformVersion)</TargetPlatformVersion>
</PropertyGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{7FD42DF7-442E-479A-BA76-D0022F99702A}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>ofx_scanview</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\libs\openFrameworksCompiled\project\vs\openFrameworksRelease.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\libs\openFrameworksCompiled\project\vs\openFrameworksDebug.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutDir>bin\</OutDir>
<IntDir>obj\$(Platform)\$(Configuration)\</IntDir>
<TargetName>$(ProjectName)_debug</TargetName>
<LinkIncremental>true</LinkIncremental>
<GenerateManifest>true</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>bin\</OutDir>
<IntDir>obj\$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);src;..\..\..\addons\ofxJSON-master\libs;..\..\..\addons\ofxJSON-master\libs\jsoncpp;..\..\..\addons\ofxJSON-master\libs\jsoncpp\include;..\..\..\addons\ofxJSON-master\libs\jsoncpp\include\json;..\..\..\addons\ofxJSON-master\libs\jsoncpp\src;..\..\..\addons\ofxJSON-master\src</AdditionalIncludeDirectories>
<CompileAs>CompileAsCpp</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<ObjectFileName>$(IntDir)\Build\%(RelativeDir)\$(Configuration)\</ObjectFileName>
<LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalOptions>/Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ForceFileOutput>MultiplyDefinedSymbolOnly</ForceFileOutput>
</Link>
<PostBuildEvent />
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WholeProgramOptimization>false</WholeProgramOptimization>
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);src;..\..\..\addons\ofxJSON-master\libs;..\..\..\addons\ofxJSON-master\libs\jsoncpp;..\..\..\addons\ofxJSON-master\libs\jsoncpp\include;..\..\..\addons\ofxJSON-master\libs\jsoncpp\include\json;..\..\..\addons\ofxJSON-master\libs\jsoncpp\src;..\..\..\addons\ofxJSON-master\src</AdditionalIncludeDirectories>
<CompileAs>CompileAsCpp</CompileAs>
<ObjectFileName>$(IntDir)\Build\%(RelativeDir)\$(Configuration)\</ObjectFileName>
<LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalOptions>/Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ForceFileOutput>MultiplyDefinedSymbolOnly</ForceFileOutput>
</Link>
<PostBuildEvent />
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="src\main.cpp" />
<ClCompile Include="src\ofApp.cpp" />
<ClCompile Include="..\..\..\addons\ofxJSON-master\src\ofxJSONElement.cpp" />
<ClCompile Include="..\..\..\addons\ofxJSON-master\libs\jsoncpp\src\jsoncpp.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="src\ofApp.h" />
<ClInclude Include="..\..\..\addons\ofxJSON-master\src\ofxJSON.h" />
<ClInclude Include="..\..\..\addons\ofxJSON-master\src\ofxJSONElement.h" />
<ClInclude Include="..\..\..\addons\ofxJSON-master\libs\jsoncpp\include\json\json-forwards.h" />
<ClInclude Include="..\..\..\addons\ofxJSON-master\libs\jsoncpp\include\json\json.h" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="$(OF_ROOT)\libs\openFrameworksCompiled\project\vs\openframeworksLib.vcxproj">
<Project>{5837595d-aca9-485c-8e76-729040ce4b0b}</Project>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="icon.rc">
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">/D_DEBUG %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>$(OF_ROOT)\libs\openFrameworksCompiled\project\vs</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ProjectExtensions>
<VisualStudio>
<UserProperties RESOURCE_FILE="icon.rc" />
</VisualStudio>
</ProjectExtensions>
</Project>

@ -0,0 +1,75 @@
<?xml version="1.0"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ClCompile Include="src\ofApp.cpp">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="src\main.cpp">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="src\main.cpp">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="src\ofApp.cpp">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="..\..\..\addons\ofxJSON-master\src\ofxJSONElement.cpp">
<Filter>addons\ofxJSON-master\src</Filter>
</ClCompile>
<ClCompile Include="..\..\..\addons\ofxJSON-master\libs\jsoncpp\src\jsoncpp.cpp">
<Filter>addons\ofxJSON-master\libs\jsoncpp\src</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<Filter Include="src">
<UniqueIdentifier>{d8376475-7454-4a24-b08a-aac121d3ad6f}</UniqueIdentifier>
</Filter>
<Filter Include="addons">
<UniqueIdentifier>{4EC14D22--CE7-E-49-27-B-932-B4FAB3FFF5E5}</UniqueIdentifier>
</Filter>
<Filter Include="addons\ofxJSON-master">
<UniqueIdentifier>{ADCCFEFE--0CF-E-4C-A3-8-2DB-A4931D49920D}</UniqueIdentifier>
</Filter>
<Filter Include="addons\ofxJSON-master\src">
<UniqueIdentifier>{2C274A7D--153-2-48-FD-8-3E0-F227E5A7C233}</UniqueIdentifier>
</Filter>
<Filter Include="addons\ofxJSON-master\libs">
<UniqueIdentifier>{E70EF5EC--3DE-8-44-9E-8-2AC-BE2A495023F9}</UniqueIdentifier>
</Filter>
<Filter Include="addons\ofxJSON-master\libs\jsoncpp">
<UniqueIdentifier>{9CDDD1CF--F49-F-40-7A-8-67A-DAC66879FD23}</UniqueIdentifier>
</Filter>
<Filter Include="addons\ofxJSON-master\libs\jsoncpp\include">
<UniqueIdentifier>{F11E7225--17F-5-4B-08-8-346-1A65CBCEB04A}</UniqueIdentifier>
</Filter>
<Filter Include="addons\ofxJSON-master\libs\jsoncpp\include\json">
<UniqueIdentifier>{41F436D1--33F-1-43-89-A-21C-175964D96835}</UniqueIdentifier>
</Filter>
<Filter Include="addons\ofxJSON-master\libs\jsoncpp\src">
<UniqueIdentifier>{5F0FCF9F--253-2-4B-2E-8-05A-9B9A82A90697}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="src\ofApp.h">
<Filter>src</Filter>
</ClInclude>
<ClInclude Include="src\ofApp.h">
<Filter>src</Filter>
</ClInclude>
<ClInclude Include="..\..\..\addons\ofxJSON-master\src\ofxJSON.h">
<Filter>addons\ofxJSON-master\src</Filter>
</ClInclude>
<ClInclude Include="..\..\..\addons\ofxJSON-master\src\ofxJSONElement.h">
<Filter>addons\ofxJSON-master\src</Filter>
</ClInclude>
<ClInclude Include="..\..\..\addons\ofxJSON-master\libs\jsoncpp\include\json\json-forwards.h">
<Filter>addons\ofxJSON-master\libs\jsoncpp\include\json</Filter>
</ClInclude>
<ClInclude Include="..\..\..\addons\ofxJSON-master\libs\jsoncpp\include\json\json.h">
<Filter>addons\ofxJSON-master\libs\jsoncpp\include\json</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="icon.rc" />
</ItemGroup>
</Project>

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LocalDebuggerWorkingDirectory>$(ProjectDir)/bin</LocalDebuggerWorkingDirectory>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LocalDebuggerWorkingDirectory>$(ProjectDir)/bin</LocalDebuggerWorkingDirectory>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
</PropertyGroup>
</Project>

@ -0,0 +1,10 @@
#include "ofMain.h"
#include "ofApp.h"
int main(){
ofGLWindowSettings settings;
settings.setSize(1920, 1080);
settings.windowMode = OF_FULLSCREEN;
ofCreateWindow(settings);
ofRunApp(new ofApp());
}

@ -0,0 +1,203 @@
#include "ofApp.h"
//--------------------------------------------------------------
void ofApp::setup(){
ofSetFrameRate(60);
ofSetBackgroundColor(0);
ofHideCursor();
hasCurrentImage = false;
isFading = false;
isWaitingToFade = false;
waitStartTime = 0.0;
fadeAlpha = 255.0;
nextFadeAlpha = 0.0;
lastCheckTime = 0.0;
loadSettings();
// Startup: show the most recently created file
vector<ofFile> files = getImageFiles();
if (!files.empty()) {
currentFilePath = files.back().getAbsolutePath();
currentImage.load(currentFilePath);
hasCurrentImage = true;
fadeAlpha = 255.0;
ofLogNotice("ofApp") << "Startup image: " << currentFilePath;
}
}
//--------------------------------------------------------------
void ofApp::loadSettings(){
ofxJSONElement json;
if (json.open("settings.json")) {
scanDirPath = json["scanDirPath"].asString();
scanDirCheckDurationSecf = json["scanDirCheckDurationSecf"].asFloat();
numScanFilesToKeep = json["numScanFilesToKeep"].asInt();
numWarpFilesToKeep = json["numWarpFilesToKeep"].asInt();
fadeDurationSec = json["fadeDurationSec"].asFloat();
transitionDelaySec = json["transitionDelaySec"].asFloat();
ofLogNotice("ofApp") << "Settings loaded - scanDir: " << scanDirPath;
} else {
ofLogError("ofApp") << "Failed to load settings.json, using defaults";
scanDirPath = "";
scanDirCheckDurationSecf = 1.0;
numScanFilesToKeep = 5;
numWarpFilesToKeep = 10;
fadeDurationSec = 2.0;
transitionDelaySec = 2.0;
}
}
//--------------------------------------------------------------
vector<ofFile> ofApp::getImageFiles(){
vector<ofFile> imageFiles;
ofDirectory dir(scanDirPath);
if (!dir.exists()) {
ofLogWarning("ofApp") << "Scan directory does not exist: " << scanDirPath;
return imageFiles;
}
dir.allowExt("jpg");
dir.allowExt("jpeg");
dir.allowExt("png");
dir.allowExt("bmp");
dir.allowExt("tif");
dir.allowExt("tiff");
dir.allowExt("gif");
dir.listDir();
// Sort by filename (yyyy-mm-dd-HH-mm-ss format, oldest first)
for (int i = 0; i < dir.size(); i++) {
imageFiles.push_back(dir.getFile(i));
}
std::sort(imageFiles.begin(), imageFiles.end(), [](const ofFile& a, const ofFile& b){
return a.getBaseName() < b.getBaseName();
});
return imageFiles;
}
//--------------------------------------------------------------
void ofApp::checkForNewImages(){
vector<ofFile> files = getImageFiles();
if (files.empty()) return;
string newestFile = files.back().getAbsolutePath();
// New image detected
if (newestFile != currentFilePath && !isFading && !isWaitingToFade) {
pendingFilePath = newestFile;
isWaitingToFade = true;
waitStartTime = ofGetElapsedTimef();
ofLogNotice("ofApp") << "New image detected, waiting " << transitionDelaySec << "s: " << newestFile;
}
cleanupOldFiles();
}
//--------------------------------------------------------------
void ofApp::cleanupOldFiles(){
vector<ofFile> files = getImageFiles();
int numToDelete = (int)files.size() - numScanFilesToKeep;
for (int i = 0; i < numToDelete; i++) {
string path = files[i].getAbsolutePath();
ofFile f(path);
if (f.remove()) {
ofLogNotice("ofApp") << "Deleted old file: " << path;
}
}
}
//--------------------------------------------------------------
void ofApp::update(){
// Check folder at interval
float now = ofGetElapsedTimef();
if (now - lastCheckTime >= scanDirCheckDurationSecf) {
lastCheckTime = now;
checkForNewImages();
}
// Transition delay
if (isWaitingToFade) {
float elapsed = ofGetElapsedTimef() - waitStartTime;
if (elapsed >= transitionDelaySec) {
if (nextImage.load(pendingFilePath)) {
isFading = true;
nextFadeAlpha = 0.0;
}
currentFilePath = pendingFilePath;
isWaitingToFade = false;
}
}
// Fade transition: fade out to black, then fade in
if (isFading) {
float halfDuration = (fadeDurationSec > 0.0f) ? fadeDurationSec * 0.5f : 0.001f;
float fadeAmount = (255.0f / halfDuration) * ofGetLastFrameTime();
if (fadeAlpha > 0.0) {
// Phase 1: Fade out current image to black
fadeAlpha -= fadeAmount;
if (fadeAlpha < 0.0) fadeAlpha = 0.0;
} else {
// Phase 2: Fade in next image from black
nextFadeAlpha += fadeAmount;
if (nextFadeAlpha > 255.0) nextFadeAlpha = 255.0;
}
// Transition complete
if (fadeAlpha <= 0.0 && nextFadeAlpha >= 255.0) {
currentImage = nextImage;
fadeAlpha = 255.0;
nextFadeAlpha = 0.0;
isFading = false;
hasCurrentImage = true;
}
}
}
//--------------------------------------------------------------
void ofApp::fitImageToScreen(ofImage& img, float x, float y, float w, float h){
if (!img.isAllocated()) return;
float imgW = img.getWidth();
float imgH = img.getHeight();
float scale = min(w / imgW, h / imgH);
float drawW = imgW * scale;
float drawH = imgH * scale;
float drawX = x + (w - drawW) * 0.5;
float drawY = y + (h - drawH) * 0.5;
img.draw(drawX, drawY, drawW, drawH);
}
//--------------------------------------------------------------
void ofApp::draw(){
ofSetBackgroundColor(0);
float screenW = ofGetWidth();
float screenH = ofGetHeight();
// Draw current image
if (hasCurrentImage && currentImage.isAllocated()) {
ofSetColor(255, 255, 255, (int)fadeAlpha);
fitImageToScreen(currentImage, 0, 0, screenW, screenH);
}
// Draw next image (during fade)
if (isFading && nextImage.isAllocated()) {
ofSetColor(255, 255, 255, (int)nextFadeAlpha);
fitImageToScreen(nextImage, 0, 0, screenW, screenH);
}
ofSetColor(255);
}
//--------------------------------------------------------------
void ofApp::keyPressed(int key){
if (key == OF_KEY_ESC) {
ofExit();
}
}

@ -0,0 +1,47 @@
#pragma once
#include "ofMain.h"
#include "ofxJSON.h"
class ofApp : public ofBaseApp {
public:
void setup();
void update();
void draw();
void keyPressed(int key);
private:
// Settings
string scanDirPath;
float scanDirCheckDurationSecf;
int numScanFilesToKeep;
int numWarpFilesToKeep;
float fadeDurationSec;
float transitionDelaySec;
void loadSettings();
// Folder monitoring
float lastCheckTime;
vector<ofFile> getImageFiles();
string currentFilePath;
void checkForNewImages();
// Transition delay
bool isWaitingToFade;
float waitStartTime;
string pendingFilePath;
// File management
void cleanupOldFiles();
// Image display
ofImage currentImage;
ofImage nextImage;
bool hasCurrentImage;
bool isFading;
float fadeAlpha; // 0.0 ~ 255.0, current image alpha
float nextFadeAlpha; // 0.0 ~ 255.0, next image alpha
void fitImageToScreen(ofImage& img, float x, float y, float w, float h);
};
Loading…
Cancel
Save