예제 #1
0
ISTrigger::~ISTrigger () {

	for (ssi_size_t i = 0; i < _samples.getStreamSize (); i++) {
		delete[] _trigger[i];
	}
	delete[] _trigger;
	for (ssi_size_t i = 0; i < _sample.num; i++) {
		_sample.streams[i] = 0;
	}
	ssi_sample_destroy (_sample);
}
예제 #2
0
ssi_sample_t *ISTrigger::get (ssi_size_t index) {

	if (index >= _samples.getSize ()) { return 0; }

	ssi_sample_destroy (_sample);
	ssi_sample_t *s = _samples.get (index);
	ssi_sample_clone (*s, _sample);
	
	for (ssi_size_t i = 0; i < _sample.num; i++) {
		_sample.streams[i]->num = _trigger[i][index] ? s->streams[i]->num : 0;			
	}

	return &_sample;	
}
예제 #3
0
파일: ISNorm.cpp 프로젝트: hcmlab/mobileSSI
ISNorm::~ISNorm () {
	
	if (_params)
	{
		for (ssi_size_t i = 0; i < _n_streams; i++) {
			if (_params[i])
			{
				//ReleaseParams(*_params[i]);
			}
		}
	}

	delete[] _params;
	delete[] _n_features;
	ssi_sample_destroy (_sample);
	_n_streams = 0;
}	
예제 #4
0
bool FileSamplesIn::close () { 

	ssi_msg (SSI_LOG_LEVEL_DETAIL, "close samples file '%s'", _path);

	if (!_file_data->close ()) {
		ssi_wrn ("could not close data file '%s'", _path);
		return false;
	}

	if (!_file_info->close ()) {
		ssi_wrn ("could not close info file '%s'", _file_info->getPath ());
		return false;
	}

	if (_file_streams) {
		for (ssi_size_t i = 0; i < _n_streams; i++) {
			_file_streams[i].close ();
		}
	}

	delete _file_data; _file_data = 0;
	delete _file_info; _file_info = 0;
	delete[] _file_streams; _file_streams = 0;
	delete _path; _path = 0;
	delete[] _streams; _streams = 0;
	ssi_sample_destroy (_sample);
	for (ssi_size_t i = 0; i < _n_classes; i++) {
		delete[] _classes[i];
	}
	delete[] _n_per_class; _n_per_class = 0;
	delete[] _classes; _classes = 0;
	for (ssi_size_t i = 0; i < _n_users; i++) {
		delete[] _users[i];
	}
	delete[] _n_per_user; _n_per_user = 0;
	delete[] _users; _users = 0;
	_has_missing_data = false;
	_n_samples = 0;
	_sample_count = 0;
	_n_streams = 0;
	_n_users = 0;

	return true;
};
예제 #5
0
void SampleList::clear () {

	for (_users_it = _users.begin (); _users_it != _users.end (); _users_it++)
		delete[] *_users_it;
	_users.clear ();

	for (_classes_it = _classes.begin (); _classes_it != _classes.end (); _classes_it++)
		delete[] *_classes_it;
	_classes.clear ();

	for (_samples_it = _samples.begin (); _samples_it != _samples.end (); _samples_it++) {
		ssi_sample_destroy (**_samples_it);
		delete *_samples_it;
	}
	_samples.clear ();
	_has_missing_data = false;
	delete[] _streams; _streams = 0;

	reset ();
}