diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-08-14 15:05:17 +0300 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-08-14 15:05:17 +0300 |
| commit | 84a8a6924abb7f78191d6f0d2290b55832c456ae (patch) | |
| tree | 12d8902073554bef59617cb463e0d0168432de88 /Software/Visual_Studio/Native | |
| parent | d47216027fb8eb28142b1c18841c1e05bb38e955 (diff) | |
| download | Tango-84a8a6924abb7f78191d6f0d2290b55832c456ae.tar.gz Tango-84a8a6924abb7f78191d6f0d2290b55832c456ae.zip | |
Implemented color conversion error messages !
Implemented unified printing manager on PPC.
Refactored job statuses and categories to DRAFT, COMPLETED, DISRUPTED.
Diffstat (limited to 'Software/Visual_Studio/Native')
4 files changed, 225 insertions, 175 deletions
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/ColorConverter.cpp b/Software/Visual_Studio/Native/Tango.ColorLib/ColorConverter.cpp index 2b8131657..48cb9f3df 100644 --- a/Software/Visual_Studio/Native/Tango.ColorLib/ColorConverter.cpp +++ b/Software/Visual_Studio/Native/Tango.ColorLib/ColorConverter.cpp @@ -103,17 +103,17 @@ void Tango::ColorLib::ColorConverter::ProcessHiveNeighbors(VectorXd Lab, VectorX for (int i = 0; i < 6; ++i) { Jab1(i, 0) = Jab(0); - Jab1(i, 1) = Jab(1) + dC*cos(hue + i*dH6); - Jab1(i, 2) = Jab(2) + dC*sin(hue + i*dH6); + Jab1(i, 1) = Jab(1) + dC * cos(hue + i * dH6); + Jab1(i, 2) = Jab(2) + dC * sin(hue + i * dH6); } int j1 = 0, j2 = 0; - double dC2 = dC*2.0; + double dC2 = dC * 2.0; for (int i = 0; i < 12; ++i) { j1 = i + 6; Jab1(j1, 0) = Jab(0); - Jab1(j1, 1) = Jab(1) + dC2*cos(hue + i*dH12); - Jab1(j1, 2) = Jab(2) + dC2*sin(hue + i*dH12); + Jab1(j1, 1) = Jab(1) + dC2 * cos(hue + i * dH12); + Jab1(j1, 2) = Jab(2) + dC2 * sin(hue + i * dH12); } /* for (int i = 0; i < 2; ++i) { @@ -223,7 +223,7 @@ void Tango::ColorLib::ColorConverter::ProcessHiveNeighbors(VectorXd Lab, VectorX void Tango::ColorLib::ColorConverter::FindTriplet(VectorXd Lab, MatrixXd Lab1, int nHive, int*indDataMax) { - int vecSize = nHive*(nHive - 1) / 2; + int vecSize = nHive * (nHive - 1) / 2; double *dECMC = new double[vecSize]; int **indexpairs = new int*[vecSize]; int ind = -1; @@ -875,7 +875,7 @@ void Tango::ColorLib::ColorConverter::VolumeToNLInkP(VectorXd Volume, VectorXd & //Solve System of Linear Equations MatrixXd MatNLIInv(m_nVolumes - 1, m_nVolumes - 1); MatNLIInv = MatNLI.inverse(); - VectorXd Result = MatNLIInv*RHSide; + VectorXd Result = MatNLIInv * RHSide; //VectorXd Result = MatNLI.colPivHouseholderQr().solve(RHSide); //rearrange solution ind = -1; @@ -909,7 +909,7 @@ void Tango::ColorLib::ColorConverter::NLInkPToVolume(VectorXd NLInk, VectorXd &V else for (i = 0; i < m_nInks; ++i) { - InkNorm(i) = MaxInk*NLInk(i) / InkSum; + InkNorm(i) = MaxInk * NLInk(i) / InkSum; Volume(i) = InkNorm(i) * m_maxNlPerCM(i) / 100; } return; @@ -1028,205 +1028,226 @@ VectorXd Tango::ColorLib::ColorConverter::DoubleToVector(double *doub, int nSize size_t Tango::ColorLib::ColorConverter::Convert(uint8_t * input_buffer, size_t input_buffer_size, uint8_t *& output_buffer) { - //Get Input - ConversionInput* conversionInput = (ConversionInput*)malloc(sizeof(ConversionInput)); - - conversionInput = conversion_input__unpack(NULL, input_buffer_size, input_buffer); + try + { + //Get Input + ConversionInput* conversionInput = (ConversionInput*)malloc(sizeof(ConversionInput)); + conversionInput = conversion_input__unpack(NULL, input_buffer_size, input_buffer); - //Filter and arrange colors (Should change from 3 to 4 if black ink is included) - int expected_liquids = 3; - int original_input_liquids_count = conversionInput->inputcoordinates->n_inputliquids; - InputLiquid** original_input_liquids = conversionInput->inputcoordinates->inputliquids; - InputLiquid** filteredInputLiquids = (InputLiquid**)malloc(sizeof(InputLiquid*) * expected_liquids); + //Filter and arrange colors (Should change from 3 to 4 if black ink is included) + int expected_liquids = 3; + int original_input_liquids_count = conversionInput->inputcoordinates->n_inputliquids; + InputLiquid** original_input_liquids = conversionInput->inputcoordinates->inputliquids; - for (size_t i = 0; i < conversionInput->inputcoordinates->n_inputliquids; i++) - { - InputLiquid* liquid = conversionInput->inputcoordinates->inputliquids[i]; + InputLiquid** filteredInputLiquids = (InputLiquid**)malloc(sizeof(InputLiquid*) * expected_liquids); - switch (liquid->liquidtype) + for (size_t i = 0; i < conversionInput->inputcoordinates->n_inputliquids; i++) { - case LIQUID_TYPE__Cyan: - filteredInputLiquids[0] = liquid; - break; - case LIQUID_TYPE__Magenta: - filteredInputLiquids[1] = liquid; - break; - case LIQUID_TYPE__Yellow: - filteredInputLiquids[2] = liquid; - break; + InputLiquid* liquid = conversionInput->inputcoordinates->inputliquids[i]; + + switch (liquid->liquidtype) + { + case LIQUID_TYPE__Cyan: + filteredInputLiquids[0] = liquid; + break; + case LIQUID_TYPE__Magenta: + filteredInputLiquids[1] = liquid; + break; + case LIQUID_TYPE__Yellow: + filteredInputLiquids[2] = liquid; + break; + } } - } - conversionInput->inputcoordinates->inputliquids = filteredInputLiquids; - conversionInput->inputcoordinates->n_inputliquids = expected_liquids; - //Filter and arrange colors + conversionInput->inputcoordinates->inputliquids = filteredInputLiquids; + conversionInput->inputcoordinates->n_inputliquids = expected_liquids; + //Filter and arrange colors - //Initialize Output... - ConversionOutput *conversionOutput = (ConversionOutput*)malloc(sizeof(ConversionOutput)); - conversion_output__init(conversionOutput); - // ConversionOutput conversionOutput = CONVERSION_OUTPUT__INIT; + //Initialize Output... + ConversionOutput *conversionOutput = (ConversionOutput*)malloc(sizeof(ConversionOutput)); + conversion_output__init(conversionOutput); + // ConversionOutput conversionOutput = CONVERSION_OUTPUT__INIT; - size_t n_elements = 0; - bool InGamut = false; - m_WP.Set(0.9505, 1.00, 1.0888); //D65 - //count number if inks - int numofInks = CountNumberofInks(conversionInput); - readColorTransformations(conversionInput); + size_t n_elements = 0; + bool InGamut = false; + m_WP.Set(0.9505, 1.00, 1.0888); //D65 + //count number if inks + int numofInks = CountNumberofInks(conversionInput); + readColorTransformations(conversionInput); - //Initialize CIECAM02 transformation - Illum IL = D65; - SURROUND sur = average; - CAM02CS CS = UCS; - m_Conv02 = new ColorConvert(IL, IL, Y_b, L_A, sur, CS); + //Initialize CIECAM02 transformation + Illum IL = D65; + SURROUND sur = average; + CAM02CS CS = UCS; + m_Conv02 = new ColorConvert(IL, IL, Y_b, L_A, sur, CS); - SetnA2BnSepIn(m_A2BTransform->GetSeparationsIn()); - SetnA2BnSepOut(m_A2BTransform->GetSeparationsOut()); - SetnB2AnSepIn(m_B2ATransform->GetSeparationsIn()); - SetnB2AnSepOut(m_B2ATransform->GetSeparationsOut()); - SetNumberOfInks(m_nB2AnSepOut); - // Compare Strip White point to Color Table White Point - CompareWhitePoints(); + SetnA2BnSepIn(m_A2BTransform->GetSeparationsIn()); + SetnA2BnSepOut(m_A2BTransform->GetSeparationsOut()); + SetnB2AnSepIn(m_B2ATransform->GetSeparationsIn()); + SetnB2AnSepOut(m_B2ATransform->GetSeparationsOut()); + SetNumberOfInks(m_nB2AnSepOut); + // Compare Strip White point to Color Table White Point + CompareWhitePoints(); - readCalibrationTables(conversionInput); - if (numofInks != m_nB2AnSepOut) - throw std::exception("Number of available inks does not match ink tables"); + readCalibrationTables(conversionInput); + if (numofInks != m_nB2AnSepOut) + throw std::exception("Number of available inks does not match ink tables"); - VectorXd InkOut(m_nB2AnSepOut); - VectorXd RGBOut(3); - VectorXd LabOut(3); - VectorXd NLInkOut(m_nB2AnSepOut); - VectorXd Volume(m_nB2AnSepOut); - //set maxNlPerCM - VectorXd NlperCM(m_nB2AnSepOut); - NlperCM.setZero(); - m_maxNlPerCM = NlperCM; - for (int i = 0; i < m_nB2AnSepOut; ++i) - SetMaxNLperCM(conversionInput->inputcoordinates->inputliquids[i]->maxnanoliterpercentimeter, i); - m_nVolumes = m_nB2AnSepOut; - int GamutRegion = 0; - //Convert input data to linear inks - if (conversionInput->colorspace == COLOR_SPACE__Volume) - { - ConvertVolumeToRGBDisplay(conversionInput, Volume, RGBOut, LabOut, GamutRegion); - InGamut = true; - } - else - { - ConvertColorToLinearInks(conversionInput, InkOut, RGBOut, LabOut, GamutRegion, InGamut); - //Convert to Nonlinear Inks - ConvertToNLInks(InkOut, NLInkOut); - //Convert to [nl/cm] - NLInkPToVolume(NLInkOut, Volume); - //OutputCoordinates outputCoords = OUTPUT_COORDINATES__INIT; - } - OutputCoordinates *outputCoords = (OutputCoordinates*)malloc(sizeof(OutputCoordinates)); - output_coordinates__init(outputCoords); - fillRGB(outputCoords, RGBOut); - fillVolume(outputCoords, Volume); - conversionOutput->has_outofgamut = true; - conversionOutput->outofgamut = !(InGamut); - conversionOutput->singlecoordinates = outputCoords; + VectorXd InkOut(m_nB2AnSepOut); + VectorXd RGBOut(3); + VectorXd LabOut(3); + VectorXd NLInkOut(m_nB2AnSepOut); + VectorXd Volume(m_nB2AnSepOut); + //set maxNlPerCM + VectorXd NlperCM(m_nB2AnSepOut); + NlperCM.setZero(); + m_maxNlPerCM = NlperCM; + for (int i = 0; i < m_nB2AnSepOut; ++i) + SetMaxNLperCM(conversionInput->inputcoordinates->inputliquids[i]->maxnanoliterpercentimeter, i); + m_nVolumes = m_nB2AnSepOut; + int GamutRegion = 0; + //Convert input data to linear inks + if (conversionInput->colorspace == COLOR_SPACE__Volume) + { + ConvertVolumeToRGBDisplay(conversionInput, Volume, RGBOut, LabOut, GamutRegion); + InGamut = true; + } + else + { + ConvertColorToLinearInks(conversionInput, InkOut, RGBOut, LabOut, GamutRegion, InGamut); + //Convert to Nonlinear Inks + ConvertToNLInks(InkOut, NLInkOut); + //Convert to [nl/cm] + NLInkPToVolume(NLInkOut, Volume); + //OutputCoordinates outputCoords = OUTPUT_COORDINATES__INIT; + } + OutputCoordinates *outputCoords = (OutputCoordinates*)malloc(sizeof(OutputCoordinates)); + output_coordinates__init(outputCoords); + fillRGB(outputCoords, RGBOut); + fillVolume(outputCoords, Volume); + conversionOutput->has_outofgamut = true; + conversionOutput->outofgamut = !(InGamut); + conversionOutput->singlecoordinates = outputCoords; - //input was processed. - //process neighboring values - //nHive includes 2 outer neighbors og the central Lab value, chroma + delta, chroma + 2delta - // and variation in L positioned on the side of the beehive. - //The set is arrange in a 5x6 matrix, where the 5x5 contains the variation in (Hue, chroma) - // and the last 5 contain the variation in L - int nHive = 18; //22; // 18; - int MatHive = 25;// 30; //25; + //input was processed. + //process neighboring values + //nHive includes 2 outer neighbors og the central Lab value, chroma + delta, chroma + 2delta + // and variation in L positioned on the side of the beehive. + //The set is arrange in a 5x6 matrix, where the 5x5 contains the variation in (Hue, chroma) + // and the last 5 contain the variation in L + int nHive = 18; //22; // 18; + int MatHive = 25;// 30; //25; - MatrixXd RGBHive(MatHive, 3); - VectorXd RGBHive1(3); - VectorXd VolumeHive1(3); - MatrixXd VolumeHive(MatHive, m_nVolumes); - int *GamutRegionV = new int[MatHive]; - for (int i = 0; i < MatHive + 1; ++i) - GamutRegionV[i] = -1; + MatrixXd RGBHive(MatHive, 3); + VectorXd RGBHive1(3); + VectorXd VolumeHive1(3); + MatrixXd VolumeHive(MatHive, m_nVolumes); + int *GamutRegionV = new int[MatHive]; + for (int i = 0; i < MatHive + 1; ++i) + GamutRegionV[i] = -1; - int indDataMax[2]; - int j = 0; - // Matrix values are initially set to -1; - RGBHive.setConstant(NegValue); - VolumeHive.setConstant(NegValue); + int indDataMax[2]; + int j = 0; + // Matrix values are initially set to -1; + RGBHive.setConstant(NegValue); + VolumeHive.setConstant(NegValue); - ProcessHiveNeighbors(LabOut, RGBOut, Volume, GamutRegion, RGBHive, VolumeHive, nHive, GamutRegionV, indDataMax); - OutputCoordinates** hiveData = (OutputCoordinates**)malloc(sizeof(OutputCoordinates*) * MatHive); - conversionOutput->hivecoordinates = hiveData; - conversionOutput->n_hivecoordinates = MatHive; - conversionOutput->n_triplecoordinates = 3; - for (int i = 0; i < MatHive; i++) - { - // OutputCoordinates SingleCell = OUTPUT_COORDINATES__INIT; - hiveData[i] = (OutputCoordinates*)malloc(sizeof(OutputCoordinates)); - output_coordinates__init(hiveData[i]); - if (RGBHive(i, 0) != NegValue) + ProcessHiveNeighbors(LabOut, RGBOut, Volume, GamutRegion, RGBHive, VolumeHive, nHive, GamutRegionV, indDataMax); + OutputCoordinates** hiveData = (OutputCoordinates**)malloc(sizeof(OutputCoordinates*) * MatHive); + conversionOutput->hivecoordinates = hiveData; + conversionOutput->n_hivecoordinates = MatHive; + conversionOutput->n_triplecoordinates = 3; + for (int i = 0; i < MatHive; i++) { - for (j = 0; j < 3; ++j) - RGBHive1(j) = RGBHive(i, j); - fillRGB(hiveData[i], RGBHive1); - for (j = 0; j < 3; ++j) - VolumeHive1(j) = VolumeHive(i, j); - fillVolume(hiveData[i], VolumeHive1); - hiveData[i]->has_processparameterstableindex = true; - hiveData[i]->processparameterstableindex = GamutRegionV[i]; - hiveData[i]->n_outputliquids = m_nInks; + // OutputCoordinates SingleCell = OUTPUT_COORDINATES__INIT; + hiveData[i] = (OutputCoordinates*)malloc(sizeof(OutputCoordinates)); + output_coordinates__init(hiveData[i]); + if (RGBHive(i, 0) != NegValue) + { + for (j = 0; j < 3; ++j) + RGBHive1(j) = RGBHive(i, j); + fillRGB(hiveData[i], RGBHive1); + for (j = 0; j < 3; ++j) + VolumeHive1(j) = VolumeHive(i, j); + fillVolume(hiveData[i], VolumeHive1); + hiveData[i]->has_processparameterstableindex = true; + hiveData[i]->processparameterstableindex = GamutRegionV[i]; + hiveData[i]->n_outputliquids = m_nInks; + } + conversionOutput->hivecoordinates[i] = hiveData[i]; } - conversionOutput->hivecoordinates[i] = hiveData[i]; - } - //Triplet - OutputCoordinates** TripletData = (OutputCoordinates**)malloc(sizeof(OutputCoordinates*) * 3); - conversionOutput->triplecoordinates = TripletData; - int tripletIndex[3] = { indDataMax[0] , (int)(12), indDataMax[1] }; - for (int i = 0; i < 3; ++i) - { - // OutputCoordinates SingleCell = OUTPUT_COORDINATES__INIT; - TripletData[i] = (OutputCoordinates*)malloc(sizeof(OutputCoordinates)); - output_coordinates__init(TripletData[i]); - for (j = 0; j < 3; ++j) - RGBHive1(j) = RGBHive(tripletIndex[i], j); - fillRGB(TripletData[i], RGBHive1); - for (j = 0; j < 3; ++j) - VolumeHive1(j) = VolumeHive(tripletIndex[i], j); - fillVolume(TripletData[i], VolumeHive1); - TripletData[i]->has_processparameterstableindex = true; - TripletData[i]->processparameterstableindex = GamutRegionV[tripletIndex[i]]; - TripletData[i]->n_outputliquids = m_nInks; - conversionOutput->triplecoordinates[i] = TripletData[i]; - } - - /* //Clean up - if (GamutRegionV != NULL) + //Triplet + OutputCoordinates** TripletData = (OutputCoordinates**)malloc(sizeof(OutputCoordinates*) * 3); + conversionOutput->triplecoordinates = TripletData; + int tripletIndex[3] = { indDataMax[0] , (int)(12), indDataMax[1] }; + for (int i = 0; i < 3; ++i) { - delete GamutRegionV; - GamutRegionV = NULL; - } */ + // OutputCoordinates SingleCell = OUTPUT_COORDINATES__INIT; + TripletData[i] = (OutputCoordinates*)malloc(sizeof(OutputCoordinates)); + output_coordinates__init(TripletData[i]); + for (j = 0; j < 3; ++j) + RGBHive1(j) = RGBHive(tripletIndex[i], j); + fillRGB(TripletData[i], RGBHive1); + for (j = 0; j < 3; ++j) + VolumeHive1(j) = VolumeHive(tripletIndex[i], j); + fillVolume(TripletData[i], VolumeHive1); + TripletData[i]->has_processparameterstableindex = true; + TripletData[i]->processparameterstableindex = GamutRegionV[tripletIndex[i]]; + TripletData[i]->n_outputliquids = m_nInks; + conversionOutput->triplecoordinates[i] = TripletData[i]; + } + + /* //Clean up + if (GamutRegionV != NULL) + { + delete GamutRegionV; + GamutRegionV = NULL; + } */ - //Pack output... - output_buffer = (uint8_t*)malloc(conversion_output__get_packed_size(conversionOutput)); - int size = conversion_output__pack(conversionOutput, output_buffer); + //Pack output... + output_buffer = (uint8_t*)malloc(conversion_output__get_packed_size(conversionOutput)); + int size = conversion_output__pack(conversionOutput, output_buffer); #pragma region Free Conversion Input & Output - conversionInput->inputcoordinates->inputliquids = original_input_liquids; - conversionInput->inputcoordinates->n_inputliquids = original_input_liquids_count; + conversionInput->inputcoordinates->inputliquids = original_input_liquids; + conversionInput->inputcoordinates->n_inputliquids = original_input_liquids_count; - conversion_input__free_unpacked(conversionInput, NULL); + conversion_input__free_unpacked(conversionInput, NULL); - conversion_output__free_unpacked(conversionOutput, NULL); + conversion_output__free_unpacked(conversionOutput, NULL); #pragma endregion - return (size); + return (size); + } + catch (const std::exception& e) + { + //Notify Error... + ConversionOutput *conversionOutput = (ConversionOutput*)malloc(sizeof(ConversionOutput)); + conversion_output__init(conversionOutput); + + conversionOutput->has_haserror = true; + conversionOutput->haserror = true; + + const char* what = e.what(); + + conversionOutput->errormessage = (char*)malloc(strlen(what)); + strcpy(conversionOutput->errormessage, e.what()); + + output_buffer = (uint8_t*)malloc(conversion_output__get_packed_size(conversionOutput)); + int size = conversion_output__pack(conversionOutput, output_buffer); + return (size); + } } int Tango::ColorLib::ColorConverter::CountNumberofInks(ConversionInput* conversionInput) diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/ConversionOutput.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/ConversionOutput.pb-c.c index bfc40f0a3..da44f28ac 100644 --- a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/ConversionOutput.pb-c.c +++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/ConversionOutput.pb-c.c @@ -52,7 +52,7 @@ void conversion_output__free_unpacked assert(message->base.descriptor == &conversion_output__descriptor); protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); } -static const ProtobufCFieldDescriptor conversion_output__field_descriptors[4] = +static const ProtobufCFieldDescriptor conversion_output__field_descriptors[6] = { { "HiveCoordinates", @@ -102,8 +102,34 @@ static const ProtobufCFieldDescriptor conversion_output__field_descriptors[4] = 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, + { + "HasError", + 6, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_BOOL, + offsetof(ConversionOutput, has_haserror), + offsetof(ConversionOutput, haserror), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ErrorMessage", + 7, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(ConversionOutput, errormessage), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, }; static const unsigned conversion_output__field_indices_by_name[] = { + 5, /* field[5] = ErrorMessage */ + 4, /* field[4] = HasError */ 0, /* field[0] = HiveCoordinates */ 3, /* field[3] = OutOfGamut */ 2, /* field[2] = SingleCoordinates */ @@ -113,7 +139,7 @@ static const ProtobufCIntRange conversion_output__number_ranges[2 + 1] = { { 1, 0 }, { 5, 3 }, - { 0, 4 } + { 0, 6 } }; const ProtobufCMessageDescriptor conversion_output__descriptor = { @@ -123,7 +149,7 @@ const ProtobufCMessageDescriptor conversion_output__descriptor = "ConversionOutput", "", sizeof(ConversionOutput), - 4, + 6, conversion_output__field_descriptors, conversion_output__field_indices_by_name, 2, conversion_output__number_ranges, diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/ConversionOutput.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/ConversionOutput.pb-c.h index 0c58721db..c85c11bd7 100644 --- a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/ConversionOutput.pb-c.h +++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/ConversionOutput.pb-c.h @@ -34,10 +34,13 @@ struct _ConversionOutput OutputCoordinates *singlecoordinates; protobuf_c_boolean has_outofgamut; protobuf_c_boolean outofgamut; + protobuf_c_boolean has_haserror; + protobuf_c_boolean haserror; + char *errormessage; }; #define CONVERSION_OUTPUT__INIT \ { PROTOBUF_C_MESSAGE_INIT (&conversion_output__descriptor) \ - , 0,NULL, 0,NULL, NULL, 0, 0 } + , 0,NULL, 0,NULL, NULL, 0, 0, 0, 0, NULL } /* ConversionOutput methods */ diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/Tango.ColorLib.vcxproj b/Software/Visual_Studio/Native/Tango.ColorLib/Tango.ColorLib.vcxproj index 6a02e00a1..949ad79d8 100644 --- a/Software/Visual_Studio/Native/Tango.ColorLib/Tango.ColorLib.vcxproj +++ b/Software/Visual_Studio/Native/Tango.ColorLib/Tango.ColorLib.vcxproj @@ -74,7 +74,7 @@ <LinkIncremental>true</LinkIncremental> <OutDir>$(SolutionDir)Build\Native\Debug</OutDir> <IncludePath>$(ProjectDir);$(IncludePath)</IncludePath> - <PreBuildEventUseInBuild>false</PreBuildEventUseInBuild> + <PreBuildEventUseInBuild>true</PreBuildEventUseInBuild> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <LinkIncremental>true</LinkIncremental> |
