⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cmp_05.cc

📁 这是一个从音频信号里提取特征参量的程序
💻 CC
字号:
// file: $isip/class/sp/Component/cmp_05.cc// version: $Id: cmp_05.cc,v 1.2 2002/06/26 19:06:00 gao Exp $//// isip include files//#include "Component.h"// method: setInputName//// arguments://  const String& name: (input) names of input//// return: a boolean value indicating status//// this method returns the input name//boolean Component::setInputName(const String& name_a) {  // count the tokens of the input string  //  long count = name_a.countTokens(DELIM);  input_names_d.setLength(count);  input_offsets_d.setLength(count);    // tokenize the input by spaces  //  long pos = 0;  String temp;  for (long index = 0; name_a.tokenize(temp, pos, DELIM); index++) {    temp.trim();    splitName(input_names_d(index), input_offsets_d(index), temp);  }    // exit gracefully  //  return true;}// method: setInputName//// arguments://  long index: (input) which input to set//  const String& str: (input) name to set//// return: a boolean value indicating status//// this method sets the input name at position index//boolean Component::setInputName(long index_a, const String& str_a) {  // check the name is not empty  //  if (str_a.length() == 0) {    return Error::handle(name(), L"setInputName", Error::ARG,			 __FILE__, __LINE__);  }  // check the range of the index, possibly increase vector sizes  //  if (index_a >= input_names_d.length()) {    input_names_d.setLength(index_a + 1);    input_offsets_d.setLength(index_a + 1);  }  // make sure the name has not already been set  //  if (input_names_d(index_a).length() != 0) {    input_names_d(index_a).debug(L"existing name");    return Error::handle(name(), L"setInputName", ERR, __FILE__, __LINE__);  }  // assign the data  //  input_offsets_d(0).assign(0);  return input_names_d(index_a).assign(str_a);}// method: splitName//// arguments://  String& base_name: (output) name of output//  Long& offset: (output) offset of output//  const String& full_name: (input) name + offset string//// return: a boolean value indicating status//// this method splits the input name//boolean Component::splitName(String& base_name_a, Long& offset_a,			   const String& full_name_a) const {  offset_a = 0;  long index0 = full_name_a.firstStr(L"(");  long index1 = full_name_a.firstStr(L")", index0);  if ((index0 > 0) && (index1 > 0)) {    String num;    full_name_a.substr(base_name_a, 0, index0);    full_name_a.substr(num, index0 + 1, index1 - index0 - 1);    base_name_a.trimLeft();    num.trim();    long n;    num.get(n);    offset_a = n;  }  // if one is present without the other  //  else if ((index0 > 0) ^ (index1 > 0)) {    return Error::handle(name(), L"splitName", ERR, __FILE__, __LINE__);  }  else {    base_name_a.assign(full_name_a);  }  // exit gracefully  //  return true;}// method: joinName//// arguments://  String& out: (output) joined string//// return: a boolean value indicating status//// this method joins together all data in the input_names_d and// input_offets_d Vectors into a single string (the string input// format for input names).//boolean Component::joinName(String& out_a) const {  out_a.clear();  for (long i = 0; i < input_names_d.length(); i++) {    if (i > 0) {      out_a.concat(DELIM);    }    out_a.concat(input_names_d(i));    if (input_offsets_d(i) != (long)0) {      out_a.concat(L"(");      out_a.concat(input_offsets_d(i));      out_a.concat(L")");    }  }  return true;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -