/*
    PIP - Platform Independent Primitives
    Text codings coder, based on "iconv"
    Copyright (C) 2016  Ivan Pelipenko peri4ko@gmail.com

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

#include "picodec.h"


PIStringList PICodec::availableCodecs() {
	exec("/usr/bin/iconv", "-l");
	waitForFinish();
	PIString str(readOutput());
	str.cutLeft(str.find("\n  "));
	str.replaceAll("\n", "");
	return str.split("//");
}


PIByteArray PICodec::exec_iconv(const PIString & from, const PIString & to, const PIByteArray & str) {
	tf.open();
	tf.clear();
	tf << str;
	tf.close();
	exec("/usr/bin/iconv", ("-f=" + from), ("-t=" + to), tf.path());
	waitForFinish();
	return readOutput();
}
