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); }
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; }
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; }
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; };
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 (); }