Exemple #1
0
PlTerm variant2term(const QVariant& v) {
    switch (v.type()) {
    case QVariant::Char:
    case QVariant::String:
    case QVariant::ByteArray:
        return PlTerm(v.toString().toStdWString().data());
    case QVariant::Int:
        return PlTerm(long(v.toInt()));
    case QVariant::Double:
        return PlTerm(v.toDouble());
    case QVariant::List: {
        PlTerm t;
        PlTail l(t);
        foreach(QVariant e, v.toList())
            l.append(variant2term(e));
        l.close();
        return t;
    }
    default:
        return PlTerm();
    }
}
Exemple #2
0
	*/

#include <swiaudioblob.h>

/*
	Gets an audioblob containing the data itself (not point to data!!!!) and writes each value on a prolog list
	Do the other way around
*/ 

PREDICATE(vectorBlob_to_list, 2)
{
	//+ reference to blob
	//- list

	term_t blob = PL_new_term_ref();
	blob = term_t(PlTerm(A1));
	std::vector<float> data = AudioDataConversion::term_to_audio_vector(blob);
	
	PlTerm list;
	PlTail tail(list);

	for(size_t j=0; j<data.size(); j++){

		tail.append((double)data[j]);
	}
	tail.close();	
	return A2 = list;

}

/*
// Load database into the engine
bool SWIPLContainer::consult(const QString &filename)
{
    return PlCall("consult", PlTerm(toPlString(filename)));
}