38 void CharSampSet::Cleanup() {
39 if (samp_buff_ !=
NULL) {
41 if (own_samples_ ==
true) {
42 for (
int samp_idx = 0; samp_idx < cnt_; samp_idx++) {
43 if (samp_buff_[samp_idx] !=
NULL) {
44 delete samp_buff_[samp_idx];
60 if (new_samp_buff ==
NULL) {
65 memcpy(new_samp_buff, samp_buff_, cnt_ *
sizeof(*samp_buff_));
68 samp_buff_ = new_samp_buff;
70 samp_buff_[cnt_++] = char_samp;
75 bool CharSampSet::LoadCharSamples(FILE *fp) {
81 while (feof(fp) == 0) {
83 if (new_samp !=
NULL) {
84 if (
Add(new_samp) ==
false) {
97 fp = fopen(file_name.c_str(),
"rb");
102 if (fread(&val32, 1,
sizeof(val32), fp) !=
sizeof(val32)) {
105 if (val32 != 0xfefeabd0) {
110 if (samp_set ==
NULL) {
113 if (samp_set->LoadCharSamples(fp) ==
false) {
126 fp = fopen(file_name.c_str(),
"wb");
132 if (fwrite(&val32, 1,
sizeof(val32), fp) !=
sizeof(val32)) {
150 i64_size = fp_in->
Size();
155 if (fp_in->
Read(&val32,
sizeof(val32)) !=
sizeof(val32)) {
158 if (val32 != 0xfefeabd0) {
162 while (fp_in->
eof() ==
false) {
164 i64_pos = fp_in->
Tell();
165 if (new_samp !=
NULL) {
166 bool ret_flag = (enum_obj)->EnumCharSamp(new_samp,
167 (100.0
f * i64_pos / i64_size));
169 if (ret_flag ==
false) {