Detailed Description
This is an example of how to convert an ASCII database into the WinProp binary format. The full example is distributed with the installation.
#include <stdio.h>
#include <string>
#include <iostream>
#include "convert_database.h"
#ifndef API_DATA_FOLDER
#define API_DATA_FOLDER "../../api/winprop/data/"
#endif // !API_DATA_FOLDER
int main(int argc, char** argv)
{
WinProp_Callback Callback;
WinProp_Structure_Init_Callback(&Callback);
Callback.Percentage = CallbackProgress;
Callback.Message = CallbackMessage;
Callback.Error = CallbackError;
WinProp_Converter WinPropConverter;
WinProp_Structure_Init_Converter(&WinPropConverter);
WinPropConverter.databaseNameSource = API_DATA_FOLDER "outdoor/City.oda";
WinPropConverter.databaseNameDest = API_DATA_FOLDER "outdoor/City_odb";
WinPropConverter.measurementUnit = "Meter";
WinPropConverter.ConverterID = 201;
WinPropConverter.SaveAsciiFormat = 0;
if (WinProp_Convert(&WinPropConverter, &Callback) != 0)
std::cout << "Error during conversion" << std::endl;
return 0;
}
int _STD_CALL CallbackMessage(const char * Text)
{
if (Text == nullptr)
return 0;
std::cout << "\n" << Text;
return(0);
}
int _STD_CALL CallbackError(const char * Text, int Error)
{
if (Text == nullptr)
return 0;
std::cout << "\n";
#ifdef __LINUX
std::cout << "\033[31m" << "Error (" << Error << "): ";
#else
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hConsole, FOREGROUND_RED);
std::cout << "Error (" << Error << "): ";
#endif // __LINUX
std::cout << Text;
#ifdef __LINUX
std::cout << "\033[0m";
#else
SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_GREEN);
#endif // __LINUX
return 0;
}
int _STD_CALL CallbackProgress(int value, const char* text)
{
char Line[200];
sprintf(Line, "\n%d%% %s", value, text);
std::cout << Line;
return(0);
}