#include "functions.h"
#include <sstream> //  Needed For Integer To String Conversion
#include <string>
#include <QtGui/QApplication>
#include <cmath>

using namespace std;

void QStringToString(QString original, string &final) {
	final = "";
	for (int counter = 0; counter < original.length(); counter++) {
		final += original[counter].toAscii();
	}
}

int StringToInteger(string original) {
	int size = original.size();
	int value = 0;
	for (int counter = 0; counter < size; counter++) {
		value += charToInt(original[counter]) * int(pow(double(10), double(size - counter -1)));
	}
	return value;
}

int charToInt(char character) {
	switch (character) {
	case '0':
		return 0;
	case '1':
		return 1;
	case '2':
		return 2;
	case '3':
		return 3;
	case '4':
		return 4;
	case '5':
		return 5;
	case '6':
		return 6;
	case '7':
		return 7;
	case '8':
		return 8;
	case '9':
		return 9;
	default:
		return -1;
	}
	return -1;
}

string integerToString(int value) {
	ostringstream o;
	o << value;
	return o.str();
}

string toHex(unsigned char input) {
	string output;
	char buffer[2]="";
	char *pbuffer = buffer;
	itoa (input, pbuffer,16);
	output = buffer;
	
	// itoa function will not put a leading 0
	// if the hex code starts with a zero
	// Check to see if a digit is missing, if so add a 0
	if (output.length() == 1)
		output = "0" + output;
	
	return output;

}

string intToHex(unsigned int input) {
	string output;
	char buffer[16]="";
	char *pbuffer = buffer;
	itoa (input, pbuffer,16);
	output = buffer;
	
	return output;
}


