diff --git a/common/PaaFormat.cpp b/common/PaaFormat.cpp index 897b9bc..2eb01b3 100644 --- a/common/PaaFormat.cpp +++ b/common/PaaFormat.cpp @@ -210,10 +210,17 @@ static void DoReadContinue() { fileData.resize(fileSize.QuadPart); Read(fileSize.QuadPart, fileData.data()); - + auto paa = grad_aff::Paa(fileData); - paa.readPaa(); - + + try { + paa.readPaa(); + } + catch (std::runtime_error& ex) { + MessageBox(GetActiveWindow(), (std::string("Error during reading! ") + ex.what()).c_str(), "PAA read error!", MB_OK | MB_ICONSTOP); + *gResult = readErr; + return; + } auto width = paa.mipMaps[0].width; auto height = paa.mipMaps[0].height; @@ -347,22 +354,28 @@ static void DoWriteStart() { } auto paa = grad_aff::Paa(); - paa.mipMaps.clear(); + auto dataStream = std::stringstream(std::string()); + try { + paa.mipMaps.clear(); - paa.hasTransparency = hasTransparency; - MipMap mipMap; - mipMap.height = height; - mipMap.width = width; - mipMap.data = data; - mipMap.dataLength = mipMap.data.size(); + paa.hasTransparency = hasTransparency; + MipMap mipMap; + mipMap.height = height; + mipMap.width = width; + mipMap.data = data; + mipMap.dataLength = mipMap.data.size(); - paa.mipMaps.clear(); - paa.mipMaps.push_back(mipMap); - paa.calculateMipmapsAndTaggs(); - - auto dataStream = std::stringstream(std::string()); - paa.writePaa(dataStream); + paa.mipMaps.clear(); + paa.mipMaps.push_back(mipMap); + paa.calculateMipmapsAndTaggs(); + paa.writePaa(dataStream); + } + catch (std::runtime_error& ex) { + MessageBox(GetActiveWindow(), (std::string("Error during saving! ") + ex.what()).c_str(), "PAA save error!", MB_OK | MB_ICONSTOP); + *gResult = writErr; + return; + } auto output = dataStream.str(); auto dataBuf = std::vector(output.begin(), output.end()); @@ -371,7 +384,7 @@ static void DoWriteStart() { gFormatRecord->data = NULL; if (err != 0) { - MessageBox(GetActiveWindow(), (std::string("Error during saving! Code: ") + std::to_string(err)).c_str(), "PAA save error!", MB_OK | MB_ICONSTOP); + MessageBox(GetActiveWindow(), (std::string("Error during writing! Code: ") + std::to_string(err)).c_str(), "PAA writing error!", MB_OK | MB_ICONSTOP); } } @@ -401,11 +414,7 @@ static void Read(int32_t count, void* buffer) { auto result = PSSDKRead(gFormatRecord->dataFork, gFormatRecord->posixFileDescriptor, gFormatRecord->pluginUsingPOSIXIO, &readCount, buffer); *gResult = result; - if (result == noErr && readCount != count) { - MessageBox(GetActiveWindow(), "Disk is Full!", "PAA save error!", MB_OK | MB_ICONSTOP); - *gResult = eofErr; - } - else if (result != noErr) { + if (result != noErr) { MessageBox(GetActiveWindow(), (std::string("Error during reading! Code: ") + std::to_string(GetLastError())).c_str(), "PAA read error!", MB_OK | MB_ICONSTOP); } } diff --git a/win/PaaFormat.vcxproj b/win/PaaFormat.vcxproj index da23cb8..adc9d1b 100644 --- a/win/PaaFormat.vcxproj +++ b/win/PaaFormat.vcxproj @@ -202,7 +202,7 @@ /MP /GS %(AdditionalOptions) Disabled - G:\Repos\grad_aff\out\install\x64-Debug-lite\include;..\common;..\common\win;..\..\..\common\Includes;..\..\..\..\PhotoshopAPI\Photoshop;..\..\..\..\PhotoshopAPI\PICA_SP;%(AdditionalIncludeDirectories) + $(GRAD_AFF_DEBUG)\include;..\common;..\common\win;..\..\..\common\Includes;..\..\..\..\PhotoshopAPI\Photoshop;..\..\..\..\PhotoshopAPI\PICA_SP;%(AdditionalIncludeDirectories) ISOLATION_AWARE_ENABLED=1;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_DEPRECATE;WIN32=1;_WINDOWS;%(PreprocessorDefinitions) MultiThreadedDebug @@ -226,7 +226,7 @@ grad_aff.lib;odbc32.lib;odbccp32.lib;version.lib;%(AdditionalDependencies) ..\..\..\Output\Win\Debug64\PaaFormat.8bi true - G:\Repos\grad_aff\out\build\x64-Debug-lite;..\common;%(AdditionalLibraryDirectories) + $(GRAD_AFF_DEBUG)\lib;..\common;%(AdditionalLibraryDirectories) true .\..\..\..\Output\Objs\paaformat\Debug64/PaaFormat.pdb Windows @@ -237,9 +237,9 @@ MachineX64 - copy /Y "$(OutDir)$(ProjectName).8bi" "C:\Program Files\Adobe\Adobe Photoshop CC 2018\Plug-ins\File Formats\$(ProjectName).8bi" -copy /Y "$(OutDir)$(ProjectName).pdb" "C:\Program Files\Adobe\Adobe Photoshop CC 2018\Plug-ins\File Formats\$(ProjectName).pdb" -copy /Y "$(OutDir)$(ProjectName).bsc" "C:\Program Files\Adobe\Adobe Photoshop CC 2018\Plug-ins\File Formats\$(ProjectName).bsc" + copy /Y "$(OutDir)$(ProjectName).8bi" "$(PS_DIR)\Plug-ins\File Formats\$(ProjectName).8bi" +copy /Y "$(OutDir)$(ProjectName).pdb" "$(PS_DIR)\Plug-ins\File Formats\$(ProjectName).pdb" +copy /Y "$(OutDir)$(ProjectName).bsc" "$(PS_DIR)\Plug-ins\File Formats\$(ProjectName).bsc" @@ -255,7 +255,7 @@ copy /Y "$(OutDir)$(ProjectName).bsc" "C:\Program Files\Adobe\Adobe Photoshop CC /MP /GS %(AdditionalOptions) MaxSpeed - G:\Repos\grad_aff\out\install\x64-Release-lite\include;..\common;..\common\win;..\..\..\common\Includes;..\..\..\..\PhotoshopAPI\Photoshop;..\..\..\..\PhotoshopAPI\PICA_SP;%(AdditionalIncludeDirectories) + $(GRAD_AFF)\include;..\common;..\common\win;..\..\..\common\Includes;..\..\..\..\PhotoshopAPI\Photoshop;..\..\..\..\PhotoshopAPI\PICA_SP;%(AdditionalIncludeDirectories) ISOLATION_AWARE_ENABLED=1;_CRT_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_DEPRECATE;WIN32=1;_WINDOWS;%(PreprocessorDefinitions) MultiThreaded @@ -292,7 +292,7 @@ copy /Y "$(OutDir)$(ProjectName).bsc" "C:\Program Files\Adobe\Adobe Photoshop CC grad_aff.lib;odbc32.lib;odbccp32.lib;version.lib;%(AdditionalDependencies) ..\..\..\Output\Win\Release64\PaaFormat.8bi true - G:\Repos\grad_aff\out\build\x64-Release-lite;..\common;%(AdditionalLibraryDirectories) + $(GRAD_AFF)\lib;..\common;%(AdditionalLibraryDirectories) true .\..\..\..\Output\Objs\paaformat\Release64/PaaFormat.pdb Windows @@ -306,8 +306,7 @@ copy /Y "$(OutDir)$(ProjectName).bsc" "C:\Program Files\Adobe\Adobe Photoshop CC UseLinkTimeCodeGeneration - copy /Y "$(OutDir)$(ProjectName).8bi" "C:\Program Files\Adobe\Adobe Photoshop CC 2018\Plug-ins\File Formats\$(ProjectName).8bi" -copy /Y "$(OutDir)$(ProjectName).bsc" "C:\Program Files\Adobe\Adobe Photoshop CC 2018\Plug-ins\File Formats\$(ProjectName).bsc" + copy /Y "$(OutDir)$(ProjectName).8bi" "$(PS_DIR)\Plug-ins\File Formats\$(ProjectName).8bi" false