
#include "TheoraException.h"
#include "TheoraUtil.h"
#include "TheoraVideoManager.h"
#include <stdio.h>

_TheoraGenericException::_TheoraGenericException(const std::string& errorText, std::string type, std::string file, int line)
{
    mErrText = errorText;
	int src = (int) file.find("src");
	if (src >= 0) file = file.substr(src + 4, 1000);
	mLineNumber = line;
	mFile = file;
}


std::string _TheoraGenericException::repr()
{
	std::string text = getType();
	if (text != "") text += ": ";

	if (mFile != "") text += "[" + mFile + ":" + str(mLineNumber) + "] - ";

	return text + getErrorText();
}

void _TheoraGenericException::writeOutput()
{
	th_writelog("----------------\nException Error!\n\n" + repr() + "\n----------------");
}
