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

📄 syschar.h

📁 这是一个从音频信号里提取特征参量的程序
💻 H
字号:
// file: $isip/class/system/SysChar/SysChar.h// version: $Id: SysChar.h,v 1.38 2002/02/20 20:41:46 yuan Exp $//// make sure definitions are only made once//#ifndef ISIP_SYSCHAR#define ISIP_SYSCHAR// isip include files//#ifndef ISIP_INTEGRAL#include <Integral.h>#endif#ifndef ISIP_ERROR#include <Error.h>#endif// forward class definition(s)//class SysString;// SysChar: a class that manages unicode characters. this class is// implemented as an index into the Unicode standard list of// characters. the class supports automatic conversion to and from// UTF8 (which includes standard 7-bit ASCII) and UTF16 encoded byte// streams.//class SysChar {  //---------------------------------------------------------------------------  //  // public constants  //  //---------------------------------------------------------------------------public:  // define the class name  //  static const SysString CLASS_NAME;    //---------------------------------------  //  // encoding constants  //  //---------------------------------------  // bit masks to determine if this is a fixed character or not. right  // now we don't deal with variable length characters, we just error off.  //  static const byte UTF8_FIXED = 0x80;  static const unsigned short UTF16_FIXED = 0x0000;  // encoding flags that represent the character formats  //  enum ENCODE { ENCODE_ASCII = 0, ENCODE_UTF8, ENCODE_UTF16,		DEF_ENCODE = ENCODE_ASCII };    // define special characters  //  static const SysChar NULLC;  static const SysChar SPACEC;  static const SysChar TILDE;  static const SysChar DOLLAR;  static const SysChar NEWLINE;    //----------------------------------------  //  // default values and arguments  //  //----------------------------------------    // define the default value(s) of the class data  //  static const unichar DEF_VALUE = (unichar)0;  //----------------------------------------  //  // error codes  //  //----------------------------------------    static const long ERR = 1100;  static const long ERR_NOTASC = 1101;  static const long ERR_UNUTF8 = 1102;  static const long ERR_UNUTF16 = 1103;  static const long ERR_UNKENC = 1104;  //---------------------------------------------------------------------------  //  // protected data  //  //---------------------------------------------------------------------------protected:  // internal data - be careful not add anything that isn't absolutely  // necessary, so that higher level classes (e.g., vector) do not waste space  //  unichar value_d;  // declare a static debug level for all class instantitations  //  static Integral::DEBUG debug_level_d;    //---------------------------------------------------------------------------  //  // required public methods  //  //---------------------------------------------------------------------------public:  // method: name  //  static const SysString& name() {    return CLASS_NAME;  }  // other static methods  //    static boolean diagnose(Integral::DEBUG debug_level);    // method: setDebug  //  static boolean setDebug(Integral::DEBUG level) {    debug_level_d = level;    return true;  }  // other debug methods  //    boolean debug(const unichar* message) const;    // method: destructor  //  ~SysChar() {}  // method: default constructor  //  SysChar(unichar arg = DEF_VALUE) {    value_d = arg;  }  // method: copy constructor  //  SysChar(const SysChar& arg) {    assign(arg);  }  // method: assign  //  boolean assign(const SysChar& arg) {    value_d = arg.value_d;    return true;  }    // method: operator=  //  SysChar& operator=(const SysChar& arg) {    assign(arg);    return *this;  }      // i/o methods  //  i/o methods are omitted because this class can not be written to  //  an Sof file  //  // method: eq  //   boolean eq(const SysChar& arg) const {    return (value_d == arg.value_d);  }  // memory management methods:  //  the new and delete methods are omitted because only classes at the  //  math library level and above are required to override new and delete  //  boolean clear(Integral::CMODE ctype = Integral::DEF_CMODE);  //---------------------------------------------------------------------------  //  // class-specific public methods:  //  extensions to required methods  //  //---------------------------------------------------------------------------  // method: constructor  //  this constructor initializes a SysChar from a C character value  //  SysChar(byte* data, ENCODE encoding = DEF_ENCODE) {    long len;    assign(len, data, encoding);  }  // method: assign  //  boolean assign(byte arg) {    value_d = (unichar)arg;    return true;  }  // other assign methods  //  boolean assign(unichar arg);  boolean assign(long& len, const byte* arg, ENCODE encoding = DEF_ENCODE);  boolean assign(const SysString& arg);  // method: eq  //  boolean eq(const unichar arg) const {    SysChar temp(arg);    return eq(temp);  }  // method: ne  //  boolean ne(const SysChar& arg) const {    return (value_d != arg.value_d);  }  // method: ne  //  boolean ne(const unichar arg) const {    return (value_d != arg);  }    // method: memSize  //  get the size of object in memory   //  long memSize() const {    return sizeof(value_d);  }    //---------------------------------------------------------------------------  //  // class-specific public methods:  //  casting and conversion methods  //  //---------------------------------------------------------------------------  // method: operator()  //  operator unichar() const {    return value_d;  }  // method: get  //  convert to an ascii byte value  //  boolean get(byte& arg) const {    arg = (byte)value_d;    return true;  }  // method: get  //  boolean get(unichar& arg) const {    if ((value_d & UTF16_FIXED) == 0) {      arg = value_d;    }    else {      return Error::handle(name(), L"get", ERR_UNUTF16,			   __FILE__, __LINE__, Error::WARNING);    }    return true;  }    // other type conversion methods  //  boolean get(long& len, byte* arg, ENCODE encoding = DEF_ENCODE) const;    // method: toUpper  //  boolean toUpper() {    if (isAlpha()) {      value_d = towupper(value_d);      return true;    }    return false;  }  // method: toLower  //  boolean toLower() {    if (isAlpha()) {      value_d = towlower(value_d);      return true;    }    return false;  }    //---------------------------------------------------------------------------  //  // class-specific public methods:  //  character classification methods  //  //--------------------------------------------------------------------------    // method: isAlnum  //  note: calls to wide character system level functions like iswalnum  //  have been defined as macros under linux 6.2 and above, hence the  //  global scoping operators like '::' cannot be used with them  //  boolean isAlnum() const {     return (iswalnum(value_d) != 0);  }  // method: isAlpha  //  boolean isAlpha() const {    return (iswalpha(value_d) != 0);  }  // method: isDigit  //  boolean isDigit() const {    return (iswdigit(value_d) != 0);  }  // method: isLower  //  boolean isLower() const {    return (iswlower(value_d) != 0);  }  // method: isPrint  //  boolean isPrint() const {    return (iswprint(value_d) != 0);  }  // method: isPunct  //  boolean isPunct() const {    return (iswpunct(value_d) != 0);  }          // method: isSpace  //  boolean isSpace() const {    return (iswspace(value_d) != 0);  }          // method: isUpper  //  boolean isUpper() const {    return (iswupper(value_d) != 0);  }        //---------------------------------------------------------------------------  //  // class-specific public methods:  //  relational and logical methods  //  //---------------------------------------------------------------------------  // method: gt  //  boolean gt(const SysChar& arg) const {    return (value_d > arg.value_d);  }  // method: gt  //  boolean gt(unichar arg) const {    return (value_d > arg);  }  // method: lt  //  boolean lt(const SysChar& arg) const {    return (value_d < arg.value_d);  }  // method: lt  //  boolean lt(unichar arg) const {    return (value_d < arg);  }          // method: ge  //  boolean ge(const SysChar& arg) const {    return (value_d >= arg.value_d);  }  // method: ge  //  boolean ge(unichar arg) const {    return (value_d >= arg);  }      // method: le  //  boolean le(const SysChar& arg) const {    return (value_d <= arg.value_d);  }  // method: le  //  boolean le(unichar arg) const {    return (value_d <= arg);  }  //---------------------------------------------------------------------------  //  // private methods  //  //---------------------------------------------------------------------------private:};  // end of include file//#endif

⌨️ 快捷键说明

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