Beispiel #1
0
 void string_terms(const char *prefix, const term_t &str, term_list_t &terms)
 {
     term_t ret(prefix);
     size_t pstart=0;
     while (pstart!=str.npos) {
         size_t pend=str.find_first_of(" \t\n\r", pstart);
         if (pend==str.npos) {
             add_term(prefix, term_t(str.begin()+pstart, str.end()), terms);
             break;
         }
         add_term(prefix, term_t(str.begin()+pstart, str.begin()+pend), terms);
         pstart=pend+1;
     }
 }
Beispiel #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;

}

/*