aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Native
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/Native')
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/ColorConverter.cpp361
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/ConversionOutput.pb-c.c32
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/ConversionOutput.pb-c.h5
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/Tango.ColorLib.vcxproj2
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>