libharkio3
A File I/O and Data Manipulation Library for HARK
Classes | Macros | Typedefs | Enumerations | Functions | Variables
libharkio3.h File Reference

全関数とデータ構造はこのファイルに定義されている。 More...

#include <stdio.h>
#include <zip.h>
#include <complex.h>
Include dependency graph for libharkio3.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  harkio_Matrix_maps
 harkio_Matrix_map で要素ごとの処理を行うための関数ポインタ群。 More...
 
union  multipleType
 harkio_Matrix内部用。 More...
 
struct  harkio_Matrix
 伝達関数などの、行列を表す構造体。 More...
 
struct  harkio_Position
 位置を表す構造体。 More...
 
struct  harkio_Positions
 位置の集合を表す構造体。 More...
 
struct  harkio_Config
 伝達関数の計測条件などの一般的な情報を表す構造体 More...
 
struct  harkio_Neighbors
 harkio_Positions の隣接関係を表す構造体。自分を含む。s More...
 
struct  harkio_XML
 伝達関数ファイルの XML (位置、隣接関係、設定) の読み書きのための構造体 More...
 
struct  harkio_TransferFunction
 伝達関数そのものを表す構造体 More...
 

Macros

#define HARK_EPS   0.00001
 浮動小数点が等しいか否かの閾値
 
#define HARKIO_VER   "1.3"
 libharkio3 の内部バージョン
 
#define HARKIO_TAG   "HARK1.3"
 libharkio3 現バージョンで作成したファイルに埋め込まれるタグ
 
#define HARK_DIM   2
 harkio_Matrix の次元。 2 (=行列) のみ。
 
#define HARKIO_LOGLEVEL_ENV_NAME   "HARKIO_LOG_LEVEL"
 ログレベルを環境変数で設定するときの変数名 More...
 
#define harkio_Log_setLevel(PrintLevel)   harkio_Log_printf_( (enum harkio_Log_logLevel)-1, "", PrintLevel, __func__, __LINE__)
 ログレベルを設定
 
#define harkio_Log_printf(LogLevel, message, ...)   harkio_Log_printf_(LogLevel, message, 0, __func__, __LINE__, ##__VA_ARGS__)
 ログを出力するマクロ
 
#define MSG_LEN   4192
 文字列生成時のバッファの長さを表す。
 
#define DEPRECATED(X)   __attribute__((deprecated))
 deprecated関数定義用.ソース内で関数を使用している場合に,コンパイル時警告を出す属性を設定.
 

Typedefs

typedef float _Complex COMPLEX_TYPE
 
typedef int(* harkio_Matrix_calcfuncInt32) (int, int)
 
typedef float(* harkio_Matrix_calcfuncFloat32) (float, float)
 
typedef COMPLEX_TYPE(* harkio_Matrix_calcfuncComplex) (COMPLEX_TYPE, COMPLEX_TYPE)
 

Enumerations

enum  Coordinate { Polar, Cartesian }
 harkio_Positions で座標軸を表す。 More...
 
enum  NeighborAlgorithm { Undefined, NearestNeighbor }
 harkio_Neighbors で、Position (伝達関数測定位置など) が隣接しているか否かを判定するアルゴリズムを表す。 More...
 
enum  harkio_Log_logLevel {
  harkio_Log_Error, harkio_Log_Warning, harkio_Log_Info, harkio_Log_Debug,
  harkio_Log_Trace
}
 harkio_Log で、メッセージのログがどのレベルかを表す。 More...
 
enum  harkio_TFType { loctf, septf }
 伝達関数が定位用か分離用かを表す。(内部用)
 
enum  harkio_DataType { harkio_DataType_INT32, harkio_DataType_FLOAT32, harkio_DataType_COMPLEX }
 harkio_Matrix の型を表す
 
enum  UseTagType { NON_TAG, USE_TAG, ID_TAG }
 
enum  InternalAllocFlag { NO_INTERNAL_ALLOC, INTERNAL_ALLOC }
 保持メモリの割当て状態を管理するフラグ(内部用)
 

Functions

harkio_Matrixharkio_Matrix_new (char *type, int rows, int cols)
 初期化しないコンストラクタ More...
 
harkio_Matrixharkio_Matrix_eye (char *type, int size)
 単位行列生成するコンストラクタ More...
 
harkio_Matrixharkio_Matrix_zeros (char *type, int rows, int cols)
 要素が全てゼロの行列を生成するコンストラクタ More...
 
harkio_Matrixharkio_Matrix_vstack (harkio_Matrix *src, harkio_Matrix *stack)
 srcにstackの内容を縦方向(rows方向)にスタックする。この際、srcの容量はstack分拡張される。 More...
 
harkio_Matrixharkio_Matrix_ones (char *type, int rows, int cols)
 要素が全て1の行列を生成するコンストラクタ More...
 
harkio_Matrixharkio_Matrix_fromFile (char *path)
 harkio_Matrix_write で書き込んだファイルを読み込む。 More...
 
harkio_Matrixharkio_Matrix_fromZip (struct zip *handle, char *path)
 [内部用] zip ファイル内のharkio_Matrix_write で書き込んだファイルを読み込む。 More...
 
harkio_Matrixharkio_Matrix_copy (harkio_Matrix *m)
 harkio_Matrix をコピーする。 More...
 
void harkio_Matrix_delete (harkio_Matrix **m)
 デストラクタ。 More...
 
void harkio_Matrix_print (harkio_Matrix *m)
 harkio_Matrix を表示する More...
 
char * harkio_Matrix_printBuffer (harkio_Matrix *m)
 harkio_Matrix の文字列表現を格納したバッファを返す。 More...
 
int harkio_Matrix_write (harkio_Matrix *m, char *path)
 harkio_Matrix をファイルに書き込む More...
 
char * harkio_Matrix_writeBuffer (harkio_Matrix *m, size_t *size)
 harkio_Matrix のファイルフォーマットを書き込んだバッファを返す。 More...
 
size_t harkio_Matrix_size (harkio_Matrix *m, int *size)
 harkio_Matrix のサイズを取得する More...
 
harkio_Matrixharkio_Matrix_add (harkio_Matrix *a, harkio_Matrix *b)
 2 つの harkio_Matrix の和を求める。 More...
 
harkio_Matrixharkio_Matrix_sub (harkio_Matrix *a, harkio_Matrix *b)
 2 つの harkio_Matrix の差を求める。 More...
 
harkio_Matrixharkio_Matrix_mul (harkio_Matrix *a, harkio_Matrix *b)
 2 つの harkio_Matrix の積を求める。 More...
 
harkio_Matrixharkio_Matrix_emul (harkio_Matrix *a, harkio_Matrix *b)
 2 つの harkio_Matrix の要素ごとの積を求める。 More...
 
harkio_Matrixharkio_Matrix_sumRow (harkio_Matrix *matrix)
 
harkio_Matrixharkio_Matrix_sumCol (harkio_Matrix *matrix)
 
harkio_Matrixharkio_Matrix_sumAll (harkio_Matrix *matrix)
 
harkio_Matrixharkio_Matrix_sum (harkio_Matrix **matrix, int num)
 複数 harkio_Matrix の要素ごとの総和を求める More...
 
harkio_Matrixharkio_Matrix_ediv (harkio_Matrix *a, harkio_Matrix *b)
 2 つの harkio_Matrix の要素ごとの商を求める。 More...
 
harkio_Matrixharkio_Matrix_getDiag (harkio_Matrix *m)
 対角成分を取り出す More...
 
harkio_Matrixharkio_Matrix_makeDiag (harkio_Matrix *m)
 列ベクトルを対角成分にもつ正方行列を返す More...
 
harkio_Matrixharkio_Matrix_esquare (harkio_Matrix *m)
 
harkio_Matrixharkio_Matrix_eabs (harkio_Matrix *m)
 
harkio_Matrixharkio_Matrix_econj (harkio_Matrix *m)
 
harkio_Matrixharkio_Matrix_etanh (harkio_Matrix *m)
 
harkio_Matrixharkio_Matrix_ecosh (harkio_Matrix *m)
 
harkio_Matrixharkio_Matrix_elog (harkio_Matrix *m)
 
harkio_Matrixharkio_Matrix_elog10 (harkio_Matrix *m)
 
harkio_Matrixharkio_Matrix_ereal (harkio_Matrix *m)
 
harkio_Matrixharkio_Matrix_eimag (harkio_Matrix *m)
 
harkio_Matrixharkio_Matrix_emulCInt32 (harkio_Matrix *m, int value)
 
harkio_Matrixharkio_Matrix_emulCFloat32 (harkio_Matrix *m, float value)
 
harkio_Matrixharkio_Matrix_emulCComplex (harkio_Matrix *m, COMPLEX_TYPE value)
 
harkio_Matrixharkio_Matrix_edivCInt32 (harkio_Matrix *m, int value)
 
harkio_Matrixharkio_Matrix_edivCFloat32 (harkio_Matrix *m, float value)
 
harkio_Matrixharkio_Matrix_edivCComplex (harkio_Matrix *m, COMPLEX_TYPE value)
 
harkio_Matrixharkio_Matrix_epowerCInt32 (harkio_Matrix *m, int value)
 
harkio_Matrixharkio_Matrix_epowerCFloat32 (harkio_Matrix *m, float value)
 行列を定数でべき乗する More...
 
harkio_Matrixharkio_Matrix_epowerCComplex (harkio_Matrix *m, COMPLEX_TYPE value)
 行列を定数でべき乗する More...
 
harkio_Matrixharkio_Matrix_emap (harkio_Matrix *m, harkio_Matrix_maps *map)
 行列の各要素を関数で写像する More...
 
harkio_Matrixharkio_Matrix_ecalcCInt32 (harkio_Matrix *m, int value, harkio_Matrix_calcfuncInt32 func)
 行列の各要素を関数で写像する More...
 
harkio_Matrixharkio_Matrix_ecalcCFloat32 (harkio_Matrix *m, float value, harkio_Matrix_calcfuncFloat32 func)
 行列の各要素を関数で写像する More...
 
harkio_Matrixharkio_Matrix_ecalcCComplex (harkio_Matrix *m, COMPLEX_TYPE value, harkio_Matrix_calcfuncComplex func)
 行列の各要素を関数で写像する More...
 
harkio_Matrixharkio_Matrix_reshape (harkio_Matrix *m, int rows, int cols)
 行列の並び順を変更する More...
 
harkio_Matrixharkio_Matrix_transpose (harkio_Matrix *m)
 行列のを転置する More...
 
harkio_Matrixharkio_Matrix_ctranspose (harkio_Matrix *m)
 行列を複素共役転置する More...
 
int harkio_Matrix_setValueInt32 (harkio_Matrix *m, int row, int col, int value)
 int32 型の harkio_Matrix の値を設定する More...
 
int harkio_Matrix_getValueInt32 (harkio_Matrix *m, int row, int col, int *value)
 int32 型の harkio_Matrix の値を取り出す More...
 
int harkio_Matrix_setValueFloat32 (harkio_Matrix *m, int row, int col, float value)
 float32 型の harkio_Matrix の値を設定する More...
 
int harkio_Matrix_getValueFloat32 (harkio_Matrix *m, int row, int col, float *value)
 float32 型の harkio_Matrix の値を取り出す More...
 
int harkio_Matrix_setValueComplex (harkio_Matrix *m, int row, int col, COMPLEX_TYPE value)
 complex 型の harkio_Matrix の値を設定する More...
 
int harkio_Matrix_getValueComplex (harkio_Matrix *m, int row, int col, COMPLEX_TYPE *value)
 complex 型の harkio_Matrix の値を取り出す More...
 
harkio_Matrixharkio_Matrix_getValues (harkio_Matrix *matrix, int rowFrom, int rowTo, int colFrom, int colTo)
 harkio_Matrix の部分行列を取り出す More...
 
int harkio_Matrix_setValues (harkio_Matrix *m1, harkio_Matrix *m2, int row, int col)
 harkio_Matrix の一部を別の harkio_Matrix で上書きする More...
 
char * harkio_Matrix_getTag (harkio_Matrix *xml)
 harkio_Matrix のタグを取得する More...
 
int harkio_Matrix_isEqual (harkio_Matrix *a, harkio_Matrix *b)
 2つの harkio_Matrix オブジェクトが等しいかどうかを判定する More...
 
int harkio_CheckType (char *type)
 [内部用] harkio_Matrix の型判定 More...
 
harkio_Configharkio_Config_new (void)
 コンストラクタ。空の harkio_Config を作成する。 More...
 
harkio_Configharkio_Config_copy (harkio_Config *cfg)
 
void harkio_Config_delete (harkio_Config **cfg)
 デストラクタ。メンバになっている構造体を含めて全てのメモリを開放する。 More...
 
int harkio_Config_getSynchronousAverage (harkio_Config *cfg)
 Getter。harkio_Config の同期加算回数を返す More...
 
char * harkio_Config_getTSPpath (harkio_Config *cfg)
 Getter。harkio_Config の TSP 信号のパスを返す More...
 
int harkio_Config_getTSPoffset (harkio_Config *cfg)
 
int harkio_Config_getPeakSearchFrom (harkio_Config *cfg)
 
int harkio_Config_getPeakSearchTo (harkio_Config *cfg)
 
int harkio_Config_getNfft (harkio_Config *cfg)
 
int harkio_Config_getSamplingRate (harkio_Config *cfg)
 
int harkio_Config_getTSPLength (harkio_Config *cfg)
 
int harkio_Config_getSignalMax (harkio_Config *cfg)
 
char * harkio_Config_getComment (harkio_Config *cfg)
 Getter。harkio_Config のコメントを返す More...
 
int harkio_Config_setSynchronousAverage (harkio_Config *cfg, int value)
 
int harkio_Config_setTSPpath (harkio_Config *cfg, const char *value)
 
int harkio_Config_setTSPoffset (harkio_Config *cfg, int value)
 
int harkio_Config_setPeakSearchFrom (harkio_Config *cfg, int value)
 
int harkio_Config_setPeakSearchTo (harkio_Config *cfg, int value)
 
int harkio_Config_setNfft (harkio_Config *cfg, int value)
 
int harkio_Config_setComment (harkio_Config *cfg, const char *value)
 
int harkio_Config_setSamplingRate (harkio_Config *cfg, int value)
 
int harkio_Config_setTSPlength (harkio_Config *cfg, int value)
 
int harkio_Config_setSignalMax (harkio_Config *cfg, int value)
 
int harkio_Config_isEqual (harkio_Config *a, harkio_Config *b)
 
void harkio_Config_print (harkio_Config *cfg)
 
char * harkio_Config_printBuffer (harkio_Config *cfg)
 
harkio_Positionharkio_Position_new (int id, enum Coordinate sys, float *coord, char *path)
 コンストラクタ。空の 与えられた座標の POS を返す。 More...
 
void harkio_Position_delete (harkio_Position **pos)
 デストラクタ。メンバになっている構造体を含めて全てのメモリを開放する。 More...
 
void harkio_Position_print (harkio_Position *pos)
  harkio_Position をテキストで表示する More...
 
char * harkio_Position_printBuffer (harkio_Position *pos)
 
float * harkio_Position_getPosition (harkio_Position *pos)
 Getter。harkio_Position の座標を返す。 More...
 
int harkio_Position_setPosition (harkio_Position *pos, enum Coordinate sys, float *coord)
 Setter。harkio_Position の 座標を更新する。 More...
 
int harkio_Position_getSys (harkio_Position *pos)
 Getter。harkio_Position の 座標系を返す。 More...
 
int harkio_Position_isEqual (harkio_Position *a, harkio_Position *b)
  2つの harkio_Position が等しいか否かを判定する More...
 
harkio_Positionharkio_Position_copy (harkio_Position *p)
  harkio_Position をコピーする More...
 
int harkio_Position_Convert (harkio_Position *pos, float *coord, enum Coordinate type)
  harkio_Positions の座標を指定した座標系で得る。 More...
 
float harkio_Position_convToRadian (float degree)
  内部用関数。 角度(degree)からラジアン(radian)に変換
 
float harkio_Position_convToDegree (float radian)
  内部用関数。 ラジアン(radian)から角度(degree)に変換
 
int harkio_Position_getID (harkio_Position *pos)
 Getter。harkio_Position の ID を返す。 More...
 
int harkio_Positions_getFrame (harkio_Positions *poses)
 Getter。harkio_Positions のフレーム番号を返す。 More...
 
int harkio_Position_setChannels (harkio_Position *pos, const int *channels, const int numChannels)
 Setter。harkio_Position の チャンネルを更新する。 More...
 
int harkio_Position_setNumChannels (harkio_Position *pos, int numChannels)
 Setter。harkio_Position の チャンネル数を更新する。 More...
 
int harkio_Position_setChannelsUse (harkio_Position *pos, int channels_use)
 Setter。harkio_Position の チャンネル使用の有無を更新する。 More...
 
harkio_Positionsharkio_Positions_new (char *type, int frame, int size, harkio_Position **pos)
 コンストラクタ。空の位置セットのオブジェクト harkio_Positions を作成する。 More...
 
harkio_Positionsharkio_Positions_newFromXMLbuffer (char *buffer, int len, char *dtdpath)
 コンストラクタ。XMLが格納された文字列へのポインタから、harkio_Positions オブジェクトを生成する More...
 
void harkio_Positions_delete (harkio_Positions **pos)
 デストラクタ。メンバになっている構造体を含めて全てのメモリを開放する。 More...
 
void harkio_Positions_print (harkio_Positions *pos)
  harkio_Positions をテキストで表示する More...
 
char * harkio_Positions_printBuffer (harkio_Positions *pos)
 harkio_Positions の文字列表現を格納したバッファを返す。 More...
 
harkio_Positionsharkio_Positions_copy (harkio_Positions *pos)
  harkio_Positions をコピーする More...
 
int harkio_Positions_append (harkio_Positions *poses, harkio_Position *pos)
  harkio_Positions に新たな harkio_Position を追加する。 More...
 
int harkio_Positions_removeById (harkio_Positions *poses, int id)
  harkio_Positions から、与えられた ID の harkio_Position を削除する More...
 
int harkio_Positions_removeByCoord (harkio_Positions *poses, enum Coordinate sys, float *coord, float tolerance)
  harkio_Positions から、与えられた座標の harkio_Position を削除する More...
 
harkio_Positionharkio_Positions_getById (harkio_Positions *poses, int id)
 Getter。harkio_Positions が持つ harkio_Position のから、与えられた id と同じものを返す。 More...
 
harkio_Positionharkio_Positions_getByCoord (harkio_Positions *poses, enum Coordinate sys, float *coord, float tolerance)
 Getter。harkio_Positions が持つ harkio_Position のから、与えられた位置に近いものを返す。 More...
 
char * harkio_Positions_getType (harkio_Positions *poses)
 Getter。harkio_Positions のタイプを返す。 More...
 
int harkio_Positions_isEqual (harkio_Positions *a, harkio_Positions *b)
  2つの harkio_Positions が等しいか否かを判定する More...
 
int harkio_Positions_getSize (harkio_Positions *poses)
 Getter。harkio_Positions の harkio_Position の数を返す。 More...
 
harkio_Neighborsharkio_Neighbors_new (harkio_Positions *poses)
 コンストラクタ。近接関係を表すオブジェクトを生成する。 More...
 
harkio_Neighborsharkio_Neighbors_copy (harkio_Neighbors *poses)
 harkio_Neighbors の内容を コピーする More...
 
void harkio_Neighbors_delete (harkio_Neighbors **nbrs)
 デストラクタ。harkio_Neighbors のメモリを解放する。 More...
 
int harkio_Neighbors_calcNeighbors (harkio_Neighbors *nbrs, enum NeighborAlgorithm alg,...)
 harkio_Neighbors に登録されている位置の近接関係を計算する。 More...
 
int harkio_Neighbors_getNeighbors (harkio_Neighbors *nbrs, int id, int *numNeighbors, int **neighbors)
 getter。与えられた id の近接 id を返す。[] More...
 
int harkio_Neighbors_append (harkio_Neighbors *nbrs, int id, int numNeighbors, int *neighbors)
 新しい隣接関係を追加する。与えられた ID に隣接関係がすでに定義されていれば追加し、定義が無ければ新しく作成する。 More...
 
int harkio_Neighbors_getSize (harkio_Neighbors *nbs)
 Getter. harkio_Neighbors に登録されている harkio_Positions の長さ More...
 
enum NeighborAlgorithm harkio_Neighbors_getNeighborAlgorithm (harkio_Neighbors *nbs)
 Getter. harkio_Neighbors の近接関係計算アルゴリズムを返す。 More...
 
int harkio_Neighbors_Algorithms_NearestNeighbor (harkio_Neighbors *nbrs, int n, float thresh)
 近接関係計算アルゴリズムの実装。近傍をクラスタリングする方法。 More...
 
void harkio_Neighbors_print (harkio_Neighbors *nbrs)
 harkio_Neighbors の内容を stderr に表示する。
 
int harkio_Neighbors_isEqual (harkio_Neighbors *a, harkio_Neighbors *b)
 harkio_Neighbors が等しいかどうかを比較する。 More...
 
float euclidDistance (harkio_Position *pos_a, harkio_Position *pos_b, int length)
 内部用関数。二つの harkio_Position の距離を求める
 
harkio_XMLharkio_XML_new (void)
 コンストラクタ。新たな harkio_XML オブジェクトを生成する。 More...
 
harkio_XMLharkio_XML_newFromXML (char *xmlpath, char *dtdpath)
 コンストラクタ。ファイルを読み込んで、新たな harkio_XML オブジェクトを生成する。 More...
 
harkio_XMLharkio_XML_newFromXMLbuffer (char *buffer, int strlen, char *dtdpath)
 コンストラクタ。XMLが格納された文字列へのポインタから、harkio_XML オブジェクトを生成する More...
 
harkio_XMLharkio_XML_newFromData (harkio_Positions *ps, harkio_Neighbors *nbrs, harkio_Config *cfg)
 コンストラクタ。harkio_XML のメンバへのポインタを受け取って、新たな harkio_XML オブジェクトを生成する。 More...
 
void harkio_XML_delete (harkio_XML **xml)
 デストラクタ。harkio_XML のメモリを解放する。 More...
 
harkio_Configharkio_XML_getConfig (harkio_XML *xml)
 
int harkio_XML_write (harkio_XML *xml, FILE *outstream)
 harkio_XML をファイルに保存する。 More...
 
int harkio_XML_writeHead (FILE *outstream)
 harkio_Positions をXMLファイルに保存する。 More...
 
int harkio_XML_writePositions (harkio_Positions *poses, FILE *outstream)
 harkio_Positions をXMLファイルに保存する。 More...
 
int harkio_XML_writeTail (FILE *outstream)
 harkio_Positions をXMLファイルに保存する。 More...
 
harkio_Neighborsharkio_XML_getNeighbors (harkio_XML *xml)
 
harkio_Positionsharkio_XML_getPositions (harkio_XML *xml)
 
char * harkio_XML_writeBuffer (harkio_XML *xml)
 harkio_XML をバッファに保存する。 More...
 
harkio_TransferFunctionharkio_TransferFunction_new (void)
 コンストラクタ。空の伝達関数構造体 harkio_TransferFunctionを作成する。 More...
 
harkio_TransferFunctionharkio_TransferFunction_fromFile (char *path, char *signature)
 コンストラクタ。与えられたファイルをロードし、構造体を構成する。 More...
 
harkio_TransferFunctionharkio_TransferFunction_fromData (harkio_Positions *poses, harkio_Positions *mics, harkio_Config *cfg, harkio_Neighbors *nbrs)
 コンストラクタ。与えられた 音源位置群、マイク位置群、コンフィグ、隣接音源位置から構造体を生成する。 More...
 
void harkio_TransferFunction_delete (harkio_TransferFunction **tf)
 デストラクタ。メンバになっている構造体を含めて全てのメモリを開放する。 More...
 
int harkio_TransferFunction_write (harkio_TransferFunction *tf, char *path, char *signature)
 harkio_TransferFunction 構造体の情報をファイルに書き込む More...
 
harkio_Configharkio_TransferFunction_getConfig (harkio_TransferFunction *tf)
 Getter。harkio_TransferFunction の harkio_Config を返す More...
 
harkio_Neighborsharkio_TransferFunction_getNeighbors (harkio_TransferFunction *tf)
 Getter。harkio_TransferFunction の harkio_Neighbor を返す More...
 
harkio_Positionsharkio_TransferFunction_getMicrophones (harkio_TransferFunction *tf)
 Getter。harkio_TransferFunction の マイク位置を表す harkio_Positions を返す More...
 
harkio_Positionsharkio_TransferFunction_getPositions (harkio_TransferFunction *tf)
 Getter。harkio_TransferFunction の 音源位置を表す harkio_Positions を返す More...
 
int harkio_TransferFunction_setConfig (harkio_TransferFunction *tf, harkio_Config *value)
 Setter。harkio_TransferFunction の harkio_Config を設定する More...
 
int harkio_TransferFunction_setNeighbors (harkio_TransferFunction *tf, harkio_Neighbors *value)
 Setter。harkio_TransferFunction の harkio_Neighbors を設定する More...
 
int harkio_TransferFunction_setMicrophones (harkio_TransferFunction *tf, harkio_Positions *value)
 Setter。harkio_TransferFunction のマイク位置に対応する harkio_Positions を設定する More...
 
int harkio_TransferFunction_setPositions (harkio_TransferFunction *tf, harkio_Positions *value)
 Setter。harkio_TransferFunction の音源位置に対応する harkio_Positions を設定する More...
 
harkio_Matrixharkio_TransferFunction_getTFByPos (harkio_TransferFunction *tf, harkio_Position *pos, float tolerance, enum harkio_TFType tf_type)
 harkio_TransferFunction 構造体に含まれる伝達関数群から特定の伝達関数を取り出す More...
 
harkio_Matrixharkio_TransferFunction_getTFById (harkio_TransferFunction *tf, int id, enum harkio_TFType tf_type)
 harkio_TransferFunction 構造体に含まれる伝達関数群から特定の伝達関数を取り出す More...
 
int harkio_TransferFunction_setLocTFs (harkio_TransferFunction *tf, harkio_Matrix **tfs)
 Setter。harkio_TransferFunction の音源位置ごとの定位伝達関数を表す harkio_Matrix 配列へのポインタを設定する More...
 
int harkio_TransferFunction_setSepTFs (harkio_TransferFunction *tf, harkio_Matrix **tfs)
 Setter。harkio_TransferFunction の音源位置ごとの分離伝達関数を表す harkio_Matrix 配列へのポインタを設定する More...
 
int harkio_TransferFunction_appendLocTF (harkio_TransferFunction *tf, harkio_Matrix *tfs)
 harkio_TransferFunction の定位伝達関数を表す harkio_Matrix 配列に要素を追加する。 More...
 
int harkio_TransferFunction_appendSepTF (harkio_TransferFunction *tf, harkio_Matrix *tfs)
 harkio_TransferFunction の分離伝達関数を表す harkio_Matrix 配列に要素を追加する。 More...
 
harkio_TransferFunctionharkio_Compat_TransferFunction_readlibharkio2 (char *loctfpath, char *septfpath)
 コンストラクタ。harkio2フォーマットの伝達関数ファイルを読み込み、構造体を構成する。 More...
 
harkio_TransferFunctionharkio_Compat_SeparationMatrix_readlibharkio2 (char *sepmatpath, char *tfzippath)
 コンストラクタ。harkio2フォーマットの分離行列ファイルを読み込み、構造体を構成する。 More...
 
 DEPRECATED ("use 'harkio_Compat_TransferFunction_readlibharkio2'") int libharkio3_TransferFunction_readlibhakio2(harkio_TransferFunction **tf
 
 DEPRECATED ("use 'harkio_Compat_SeparationMatrix_readlibharkio2'") int libharkio3_SeparationMatrix_readlibhakio2(harkio_TransferFunction **tf
 
void harkio_Log_printf_ (enum harkio_Log_logLevel LogLevel, char *message, int PrintLevel, const char *func, int line,...)
 
void harkio_Log_FileOpenFailed (char *filename)
 
void harkio_Log_WrongValue (char *valuename, char *reason)
 
void harkio_Log_NullPointer (char *valuename)
 

Variables

char * loctfpath
 
char char * septfpath
 
char * sepmatpath
 
char char * tfzippath
 

Detailed Description

全関数とデータ構造はこのファイルに定義されている。

Author
Takeshi Mizumoto
Version
0.1

Macro Definition Documentation

#define HARKIO_LOGLEVEL_ENV_NAME   "HARKIO_LOG_LEVEL"

ログレベルを環境変数で設定するときの変数名

値は error|e,warning|w,info|i,debug|d が設定可能

Enumeration Type Documentation

enum Coordinate

harkio_Positions で座標軸を表す。

Enumerator
Polar 

極座標系

Cartesian 

直交座標系

harkio_Log で、メッセージのログがどのレベルかを表す。

Enumerator
harkio_Log_Error 

復帰不能なエラーメッセージ

harkio_Log_Warning 

復帰可能な警告メッセージ

harkio_Log_Info 

情報

harkio_Log_Debug 

デバッグ用メッセージ

harkio_Log_Trace 

詳細デバッグ情報(関数トレース)

harkio_Neighbors で、Position (伝達関数測定位置など) が隣接しているか否かを判定するアルゴリズムを表す。

Enumerator
Undefined 

未設定。デフォルト値

NearestNeighbor 

Nearest Neighbor 法。 閾値より近い複数個の Position が隣接していると判定する

Function Documentation

int harkio_CheckType ( char *  type)

[内部用] harkio_Matrix の型判定

Parameters
[in]type型の文字列

Here is the caller graph for this function:

harkio_TransferFunction* harkio_Compat_SeparationMatrix_readlibharkio2 ( char *  sepmatpath,
char *  septfzippath 
)

コンストラクタ。harkio2フォーマットの分離行列ファイルを読み込み、構造体を構成する。

Parameters
[in]sepmatpath読み込む分離行列ファイルのパス。
[in]septfzippath対応する伝達関数(zip)ファイルのパス。
Returns
harkio_TransferFunction 型のポインタ。失敗すると NULL を返す。

使用が終わったら、 harkio_TransferFunction_delete でメモリ解放を行う。

harkio_TransferFunction* harkio_Compat_TransferFunction_readlibharkio2 ( char *  loctfpath,
char *  septfpath 
)

コンストラクタ。harkio2フォーマットの伝達関数ファイルを読み込み、構造体を構成する。

Parameters
[in]loctfpath読み込む定位伝達関数ファイルのパス。
[in]septfpath読み込む分離伝達関数ファイルのパス。
Returns
harkio_TransferFunction 型のポインタ。失敗すると NULL を返す。

使用が終わったら、 harkio_TransferFunction_delete でメモリ解放を行う。

void harkio_Config_delete ( harkio_Config **  cfg)

デストラクタ。メンバになっている構造体を含めて全てのメモリを開放する。

Parameters
[in]cfg   開放したい伝達関数。解放後は NULL が代入される。

Here is the caller graph for this function:

char* harkio_Config_getComment ( harkio_Config cfg)

Getter。harkio_Config のコメントを返す

Parameters
[in]cfgharkio_Config
Returns
コメントを表す文字列へのポインタ

Here is the caller graph for this function:

int harkio_Config_getSynchronousAverage ( harkio_Config cfg)

Getter。harkio_Config の同期加算回数を返す

Parameters
[in]cfgharkio_Config
Returns
同期加算回数

Here is the caller graph for this function:

char* harkio_Config_getTSPpath ( harkio_Config cfg)

Getter。harkio_Config の TSP 信号のパスを返す

Parameters
[in]cfgharkio_Config
Returns
TSP 信号のパスを表す文字列へのポインタ

Here is the call graph for this function:

Here is the caller graph for this function:

harkio_Config* harkio_Config_new ( void  )

コンストラクタ。空の harkio_Config を作成する。

Returns
harkio_Config 型のポインタ。失敗すると NULL を返す。

使用が終わったら、 harkio_TransferFunction_delete でメモリ解放を行う。

Here is the caller graph for this function:

harkio_Matrix* harkio_Matrix_add ( harkio_Matrix a,
harkio_Matrix b 
)

2 つの harkio_Matrix の和を求める。

Parameters
[in]aharkio_Matrix オブジェクト
[in]bharkio_Matrix オブジェクト
Returns
要素ごとの和を要素に持つ新しい harkio_Matrix オブジェクト。失敗すれば NULL

Here is the call graph for this function:

harkio_Matrix* harkio_Matrix_copy ( harkio_Matrix m)

harkio_Matrix をコピーする。

Parameters
[in]mコピーしたい harkio_Matrix オブジェクト
Returns
内容をコピーした harkio_Matrix オブジェクト。

Here is the call graph for this function:

harkio_Matrix* harkio_Matrix_ctranspose ( harkio_Matrix m)

行列を複素共役転置する

Parameters
[in]mharkio_Matrix オブジェクト
Returns
複素共役転置された行列のオブジェクト

行列の配列サイズは (row, col) –> (col, row) となり、 各要素は複素共役がとられる。

Here is the call graph for this function:

void harkio_Matrix_delete ( harkio_Matrix **  m)

デストラクタ。

Parameters
[in]m解放したい harkio_Matrix オブジェクト

Here is the call graph for this function:

Here is the caller graph for this function:

harkio_Matrix* harkio_Matrix_ecalcCComplex ( harkio_Matrix m,
COMPLEX_TYPE  value,
harkio_Matrix_calcfuncComplex  func 
)

行列の各要素を関数で写像する

Parameters
[in]mharkio_Matrix オブジェクト
[in]map型ごとの関数ポインタ
Returns
m の各要素に対して、引数 map で定義した関数を施して、 施した結果の新しい行列を返す。

Here is the call graph for this function:

Here is the caller graph for this function:

harkio_Matrix* harkio_Matrix_ecalcCFloat32 ( harkio_Matrix m,
float  value,
harkio_Matrix_calcfuncFloat32  func 
)

行列の各要素を関数で写像する

Parameters
[in]mharkio_Matrix オブジェクト
[in]map型ごとの関数ポインタ
Returns
m の各要素に対して、引数 map で定義した関数を施して、 施した結果の新しい行列を返す。

Here is the call graph for this function:

Here is the caller graph for this function:

harkio_Matrix* harkio_Matrix_ecalcCInt32 ( harkio_Matrix m,
int  value,
harkio_Matrix_calcfuncInt32  func 
)

行列の各要素を関数で写像する

Parameters
[in]mharkio_Matrix オブジェクト
[in]map型ごとの関数ポインタ
Returns
m の各要素に対して、引数 map で定義した関数を施して、 施した結果の新しい行列を返す。

Here is the call graph for this function:

Here is the caller graph for this function:

harkio_Matrix* harkio_Matrix_ediv ( harkio_Matrix a,
harkio_Matrix b 
)

2 つの harkio_Matrix の要素ごとの商を求める。

Parameters
[in]aharkio_Matrix オブジェクト
[in]bharkio_Matrix オブジェクト
Returns
要素ごとの商 (a / b) を要素に持つ新しい harkio_Matrix オブジェクト。失敗すれば NULL

Here is the call graph for this function:

harkio_Matrix* harkio_Matrix_emap ( harkio_Matrix m,
harkio_Matrix_maps map 
)

行列の各要素を関数で写像する

Parameters
[in]mharkio_Matrix オブジェクト
[in]map型ごとの関数ポインタ
Returns
m の各要素に対して、引数 map で定義した関数を施して、 施した結果の新しい行列を返す。

Here is the call graph for this function:

Here is the caller graph for this function:

harkio_Matrix* harkio_Matrix_emul ( harkio_Matrix a,
harkio_Matrix b 
)

2 つの harkio_Matrix の要素ごとの積を求める。

Parameters
[in]aharkio_Matrix オブジェクト
[in]bharkio_Matrix オブジェクト
Returns
要素ごとの積を要素に持つ新しい harkio_Matrix オブジェクト。失敗すれば NULL

Here is the call graph for this function:

harkio_Matrix* harkio_Matrix_epowerCComplex ( harkio_Matrix m,
COMPLEX_TYPE  value 
)

行列を定数でべき乗する

Parameters
[in]mharkio_Matrix オブジェクト
[in]value指数
Returns
指数でべき乗された行列

Here is the call graph for this function:

harkio_Matrix* harkio_Matrix_epowerCFloat32 ( harkio_Matrix m,
float  value 
)

行列を定数でべき乗する

Parameters
[in]mharkio_Matrix オブジェクト
[in]value指数
Returns
指数でべき乗された行列

Here is the call graph for this function:

harkio_Matrix* harkio_Matrix_eye ( char *  type,
int  size 
)

単位行列生成するコンストラクタ

Parameters
[in]type   harkio_Matrix の型。 int32, float32, complex から選べる。
[in]sizeharkio_Matrix のサイズ。
Returns
harkio_Matrix 型のポインタ。失敗すると NULL を返す。

単位行列は正方行列なので、列・行は共に size と等しい。 使用が終わったら、 harkio_Matrix_delete でメモリ解放を行う。

Here is the call graph for this function:

harkio_Matrix* harkio_Matrix_fromFile ( char *  path)

harkio_Matrix_write で書き込んだファイルを読み込む。

Parameters
[in]pathファイルへのパス。
Returns
harkio_Matrix 型のポインタ。失敗すると NULL を返す。

使用が終わったら、 harkio_Matrix_delete でメモリ解放を行う。

Here is the call graph for this function:

harkio_Matrix* harkio_Matrix_fromZip ( struct zip *  handle,
char *  path 
)

[内部用] zip ファイル内のharkio_Matrix_write で書き込んだファイルを読み込む。

Parameters
[in]handleZip ファイルへのハンドル
[in]path対象ファイルの Zip ファイル内のパス
Returns
harkio_Matrix 型のポインタ。失敗すると NULL を返す。

使用が終わったら、 harkio_Matrix_delete でメモリ解放を行う。

Here is the call graph for this function:

Here is the caller graph for this function:

harkio_Matrix* harkio_Matrix_getDiag ( harkio_Matrix m)

対角成分を取り出す

Parameters
[in]mharkio_Matrix オブジェクト
Returns
m の対角成分を要素に持つ (mのサイズ, 1) の行列へのポインタ

m は正方行列でなければならない。

Here is the call graph for this function:

char* harkio_Matrix_getTag ( harkio_Matrix m)

harkio_Matrix のタグを取得する

Parameters
[in]mharkio_Matrix オブジェクト
Returns
取り出しに成功すれば 変数へのポインタ。失敗すれば NULL

ポインタそのものを返すので、受け取った先で Free すると m の tag が破壊されるので注意。

int harkio_Matrix_getValueComplex ( harkio_Matrix m,
int  row,
int  col,
COMPLEX_TYPE *  value 
)

complex 型の harkio_Matrix の値を取り出す

Parameters
[in]mharkio_Matrix オブジェクト
[in]row取り出したい値の 行位置 (0 から開始)
[in]col取り出したい値の 列位置 (0 から開始)
[out]value取り出した値を格納する変数へのポインタ
Returns
取り出しに成功すれば EXIT_SUCCESS, 失敗すれば EXIT_FAILURE

Here is the caller graph for this function:

int harkio_Matrix_getValueFloat32 ( harkio_Matrix m,
int  row,
int  col,
float *  value 
)

float32 型の harkio_Matrix の値を取り出す

Parameters
[in]mharkio_Matrix オブジェクト
[in]row取り出したい値の 行位置 (0 から開始)
[in]col取り出したい値の 列位置 (0 から開始)
[out]value取り出した値を格納する変数へのポインタ
Returns
取り出しに成功すれば EXIT_SUCCESS, 失敗すれば EXIT_FAILURE

Here is the caller graph for this function:

int harkio_Matrix_getValueInt32 ( harkio_Matrix m,
int  row,
int  col,
int *  value 
)

int32 型の harkio_Matrix の値を取り出す

Parameters
[in]mharkio_Matrix オブジェクト
[in]row取り出したい値の 行位置 (0 から開始)
[in]col取り出したい値の 列位置 (0 から開始)
[out]value取り出した値を格納する変数へのポインタ
Returns
取り出しに成功すれば EXIT_SUCCESS, 失敗すれば EXIT_FAILURE

Here is the call graph for this function:

Here is the caller graph for this function:

harkio_Matrix* harkio_Matrix_getValues ( harkio_Matrix m,
int  rowFrom,
int  rowTo,
int  colFrom,
int  colTo 
)

harkio_Matrix の部分行列を取り出す

Parameters
[in]mharkio_Matrix オブジェクト
[in]rowFrom取り出したい値の 行開始位置 (0 から開始)
[in]rowTo取り出したい値の 行終了位置 (0 から開始)
[in]colFrom取り出したい値の 列開始位置 (0 から開始)
[in]colTo取り出したい値の 列終了位置 (0 から開始)
Returns
取り出しに成功すれば部分行列を含む harkio_Matrix オブジェクト 失敗すれば NULL ポインタ。

Here is the call graph for this function:

Here is the caller graph for this function:

int harkio_Matrix_isEqual ( harkio_Matrix a,
harkio_Matrix b 
)

2つの harkio_Matrix オブジェクトが等しいかどうかを判定する

Parameters
[in]aharkio_Matrix オブジェクト
[in]bharkio_Matrix オブジェクト
Returns
等しければ EXIT_SUCCESS, 等しくなければ EXIT_FAILURE

型、サイズ、すべての値が同じでなければならない。

Here is the call graph for this function:

harkio_Matrix* harkio_Matrix_makeDiag ( harkio_Matrix m)

列ベクトルを対角成分にもつ正方行列を返す

Parameters
[in]mharkio_Matrix オブジェクト。サイズは (X, 1)
Returns
m の対角成分を要素に持つ (X, X) の行列へのポインタ

m は列ベクトル (row = 1) でなければならない。

Here is the call graph for this function:

harkio_Matrix* harkio_Matrix_mul ( harkio_Matrix a,
harkio_Matrix b 
)

2 つの harkio_Matrix の積を求める。

Parameters
[in]aharkio_Matrix オブジェクト
[in]bharkio_Matrix オブジェクト
Returns
a と b の行列の積をもつ harkio_Matrix オブジェクト。失敗すれば NULL

a のサイズが (A1, A2), b のサイズが (B1, B2) の場合、 A2 = B1 でなければ失敗する。 サイズが合っている場合、サイズ (A1, B2) の新しい行列ができる。

Here is the call graph for this function:

harkio_Matrix* harkio_Matrix_new ( char *  type,
int  rows,
int  cols 
)

初期化しないコンストラクタ

Parameters
[in]type   harkio_Matrix の型。 int32, float32, complex から選べる。
[in]rowsharkio_Matrix の行サイズ。
[in]colsharkio_Matrix の列サイズ。
Returns
harkio_Matrix 型のポインタ。失敗すると NULL を返す。

使用が終わったら、 harkio_Matrix_delete でメモリ解放を行う。

Here is the call graph for this function:

Here is the caller graph for this function:

harkio_Matrix* harkio_Matrix_ones ( char *  type,
int  rows,
int  cols 
)

要素が全て1の行列を生成するコンストラクタ

Parameters
[in]type   harkio_Matrix の型。 int32, float32, complex から選べる。
[in]rowsharkio_Matrix の行サイズ。
[in]colsharkio_Matrix の列サイズ。
Returns
harkio_Matrix 型のポインタ。失敗すると NULL を返す。

使用が終わったら、 harkio_Matrix_delete でメモリ解放を行う。

Here is the call graph for this function:

void harkio_Matrix_print ( harkio_Matrix m)

harkio_Matrix を表示する

Parameters
[in]mharkio_Matrix オブジェクト

Here is the call graph for this function:

char* harkio_Matrix_printBuffer ( harkio_Matrix m)

harkio_Matrix の文字列表現を格納したバッファを返す。

Parameters
[in]mharkio_Matrix オブジェクト
Returns
char * (利用者によるfree が必要)

Here is the call graph for this function:

Here is the caller graph for this function:

harkio_Matrix* harkio_Matrix_reshape ( harkio_Matrix m,
int  rows,
int  cols 
)

行列の並び順を変更する

Parameters
[in]mharkio_Matrix オブジェクト
[in]rows新しい行数
[in]cols新しい列数
Returns
並び順が変更された行列のオブジェクト

行列の配列サイズ自体は変更しないので、元の rows * cols と、新しい rows * cols は等しくなければならない。

Here is the call graph for this function:

int harkio_Matrix_setValueComplex ( harkio_Matrix m,
int  row,
int  col,
COMPLEX_TYPE  value 
)

complex 型の harkio_Matrix の値を設定する

Parameters
[in]mharkio_Matrix オブジェクト
[in]row設定したい値の 行位置 (0 から開始)
[in]col設定したい値の 列位置 (0 から開始)
[out]value設定しい値
Returns
取り出しに成功すれば EXIT_SUCCESS, 失敗すれば EXIT_FAILURE

Here is the caller graph for this function:

int harkio_Matrix_setValueFloat32 ( harkio_Matrix m,
int  row,
int  col,
float  value 
)

float32 型の harkio_Matrix の値を設定する

Parameters
[in]mharkio_Matrix オブジェクト
[in]row設定したい値の 行位置 (0 から開始)
[in]col設定したい値の 列位置 (0 から開始)
[out]value設定しい値
Returns
取り出しに成功すれば EXIT_SUCCESS, 失敗すれば EXIT_FAILURE

Here is the caller graph for this function:

int harkio_Matrix_setValueInt32 ( harkio_Matrix m,
int  row,
int  col,
int  value 
)

int32 型の harkio_Matrix の値を設定する

Parameters
[in]mharkio_Matrix オブジェクト
[in]row設定したい値の 行位置 (0 から開始)
[in]col設定したい値の 列位置 (0 から開始)
[out]value設定しい値
Returns
取り出しに成功すれば EXIT_SUCCESS, 失敗すれば EXIT_FAILURE

Here is the caller graph for this function:

int harkio_Matrix_setValues ( harkio_Matrix m1,
harkio_Matrix m2,
int  row,
int  col 
)

harkio_Matrix の一部を別の harkio_Matrix で上書きする

Parameters
[in]m1値を設定したい先の harkio_Matrix オブジェクト
[in]m2値を設定したい元の harkio_Matrix オブジェクト
[in]row設定したい値の 行位置 (0 から開始)
[in]col設定したい値の 列位置 (0 から開始)
Returns
取り出しに成功すれば EXIT_SUCCESS, 失敗すれば EXIT_FAILURE

m1 より m2 のサイズが小さくなければならない。また、はみ出ない row/col の値でなければならない。 複数の値をまとめて保存するときに使用

Here is the call graph for this function:

size_t harkio_Matrix_size ( harkio_Matrix m,
int *  size 
)

harkio_Matrix のサイズを取得する

Parameters
[in]mharkio_Matrix オブジェクト
[in]size行列のサイズが格納されるポインタ。 長さ 2 のメモリが確保された int 配列である必要がある。
Returns
行列全体のサイズ

size は呼び出し前にメモリ確保が必要であることに注意。

Here is the call graph for this function:

Here is the caller graph for this function:

harkio_Matrix* harkio_Matrix_sub ( harkio_Matrix a,
harkio_Matrix b 
)

2 つの harkio_Matrix の差を求める。

Parameters
[in]aharkio_Matrix オブジェクト
[in]bharkio_Matrix オブジェクト
Returns
要素ごとの差 (a-b) を要素に持つ新しい harkio_Matrix オブジェクト。失敗すれば NULL

Here is the call graph for this function:

harkio_Matrix* harkio_Matrix_sum ( harkio_Matrix **  matrix,
int  num 
)

複数 harkio_Matrix の要素ごとの総和を求める

Parameters
[in]matrixharkio_Matrix オブジェクト のポインタ配列
[in]nummatrix の長さ
Returns
matrix の要素ごとの全ての和を要素に持つ新しい harkio_Matrix オブジェクト。失敗すれば NULL

matrix 配列が差す harkio_Matrix オブジェクトは全て同じサイズ、型でなければならない。

Here is the call graph for this function:

harkio_Matrix* harkio_Matrix_transpose ( harkio_Matrix m)

行列のを転置する

Parameters
[in]mharkio_Matrix オブジェクト
Returns
転置された行列のオブジェクト

行列の配列サイズは (row, col) –> (col, row) となる。

Here is the call graph for this function:

harkio_Matrix* harkio_Matrix_vstack ( harkio_Matrix src,
harkio_Matrix stack 
)

srcにstackの内容を縦方向(rows方向)にスタックする。この際、srcの容量はstack分拡張される。

Parameters
[in]srcvstackする対象のharkio_Matrixインスタンス
[in]stackvstackに加えるharkio_Matrixのインスタンス
Returns
harkio_Matrix 型のポインタ。srcと同じ
Note
srcとstackのカラム数は等しくならなければならない

Here is the call graph for this function:

int harkio_Matrix_write ( harkio_Matrix m,
char *  path 
)

harkio_Matrix をファイルに書き込む

Parameters
[in]mharkio_Matrix オブジェクト
[in]path書き込むファイルへのパス
Returns
書き込みに成功すれば EXIT_SUCCESS、失敗すれば EXIT_FAILURE

Here is the call graph for this function:

char* harkio_Matrix_writeBuffer ( harkio_Matrix m,
size_t *  size 
)

harkio_Matrix のファイルフォーマットを書き込んだバッファを返す。

Parameters
[in]mharkio_Matrix オブジェクト
[out]size戻り値が指すバッファのサイズ
Returns
harkio_Matrix のファイルフォーマットと同じデータが格納されたバッファへのポインタ。

Here is the call graph for this function:

Here is the caller graph for this function:

harkio_Matrix* harkio_Matrix_zeros ( char *  type,
int  rows,
int  cols 
)

要素が全てゼロの行列を生成するコンストラクタ

Parameters
[in]type   harkio_Matrix の型。 int32, float32, complex から選べる。
[in]rowsharkio_Matrix の行サイズ。
[in]colsharkio_Matrix の列サイズ。
Returns
harkio_Matrix 型のポインタ。失敗すると NULL を返す。

使用が終わったら、 harkio_Matrix_delete でメモリ解放を行う。

Here is the call graph for this function:

Here is the caller graph for this function:

int harkio_Neighbors_Algorithms_NearestNeighbor ( harkio_Neighbors nbrs,
int  n,
float  thresh 
)

近接関係計算アルゴリズムの実装。近傍をクラスタリングする方法。

Parameters
[in]nbrsharkio_Neighbors オブジェクト
[in]n近接関係と見なす最大数
[in]thresh近接か否かを判定するしきい値
Returns
成功すれば EXIT_SUCCESS, 失敗すれば EXIT_FAILURE.

nbrs が持つ位置のユークリッド距離をすべてについて計算し、 thresh より小さいものを近傍として登録する。ただし、その数が n より大きければ近い順に n 個だけ登録する。

Here is the call graph for this function:

Here is the caller graph for this function:

int harkio_Neighbors_append ( harkio_Neighbors nbrs,
int  id,
int  numNeighbors,
int *  neighbors 
)

新しい隣接関係を追加する。与えられた ID に隣接関係がすでに定義されていれば追加し、定義が無ければ新しく作成する。

Parameters
[in]nbsharkio_Neighbors オブジェクト
[in]id追加する id
[in]numNeighbors追加する隣接点の数
[in]numNeighbors追加する隣接へのポインタ
Returns
成功すれば EXIT_SUCCESS, 失敗すれば EXIT_FAILURE.

Here is the caller graph for this function:

int harkio_Neighbors_calcNeighbors ( harkio_Neighbors nbrs,
enum NeighborAlgorithm  alg,
  ... 
)

harkio_Neighbors に登録されている位置の近接関係を計算する。

Parameters
[in]nbsharkio_Neighbors オブジェクト
[in]alg近接関係計算アルゴリズムを表す enum.
[in]...アルゴリズムごとに決まる可変引数。
Returns
計算に成功すれば EXIT_SUCCESS, 失敗すれば EXIT_FAILURE を返す。

Here is the call graph for this function:

Here is the caller graph for this function:

harkio_Neighbors* harkio_Neighbors_copy ( harkio_Neighbors n1)

harkio_Neighbors の内容を コピーする

Returns
与えられた harkio_Neighbors をコピーした新しいオブジェクト

Here is the call graph for this function:

Here is the caller graph for this function:

void harkio_Neighbors_delete ( harkio_Neighbors **  nbrs)

デストラクタ。harkio_Neighbors のメモリを解放する。

Parameters
[in]nbrsメモリを解放するオブジェクトへのポインタへのポインタ

解放に成功すると xml には NULL が代入される。メンバのいくつかが NULL でもよい。

Here is the caller graph for this function:

enum NeighborAlgorithm harkio_Neighbors_getNeighborAlgorithm ( harkio_Neighbors nbs)

Getter. harkio_Neighbors の近接関係計算アルゴリズムを返す。

Parameters
[in]nbsharkio_Neighbors オブジェクト
int harkio_Neighbors_getNeighbors ( harkio_Neighbors nbrs,
int  id,
int *  numNeighbors,
int **  neighbors 
)

getter。与えられた id の近接 id を返す。[]

Parameters
[in]nbrs近接 ID を検索したい hakrio_Neighbors オブジェクト
[in]id近接 ID を検索したい対象の ID
[out]numNeighbors見つかった近接 ID の個数
[out]neighbors見つかった近接 ID の配列へのポインタ

引数に不備があれば EXIT_FAILURE が返される。成功すれば numNeighbors, neighbors に値がセットされ EXIT_SUCCESS が返る。 neighbors は関数内で malloc されるので free が必要。

1 int numNeighbors;
2 int *neighbors;
3 ret = harkio_Neighbors_getNeighbors(nbrs, targetID, &numNeighbors, &neighbors);
int harkio_Neighbors_getSize ( harkio_Neighbors nbs)

Getter. harkio_Neighbors に登録されている harkio_Positions の長さ

Parameters
[in]nbsharkio_Neighbors オブジェクト
int harkio_Neighbors_isEqual ( harkio_Neighbors a,
harkio_Neighbors b 
)

harkio_Neighbors が等しいかどうかを比較する。

Returns
等しければ EXIT_SUCCESS, 異なれば EXIT_FAILURE

Here is the call graph for this function:

harkio_Neighbors* harkio_Neighbors_new ( harkio_Positions poses)

コンストラクタ。近接関係を表すオブジェクトを生成する。

Returns
harkio_Neighbors 型のポインタ。失敗すると NULL を返す
Parameters
[in]poses近接関係を表現したい位置群を与える。 NULL でもよい。

poses はコピーせずにポインタが渡される。 NULL を与えた場合は位置が無い空のオブジェクトが生成される。 使用が終わったら、 harkio_Neighbors_delete でメモリ解放を行う。

Here is the caller graph for this function:

int harkio_Position_Convert ( harkio_Position pos,
float *  coord,
enum Coordinate  type 
)

 harkio_Positions の座標を指定した座標系で得る。

Parameters
[in]posharkio_Position へのポインタ
[out]coord変換された座標系
[in]type変換先の座標系
Returns
成功すれば EXIT_SUCESS, 失敗すれば EXIT_FAILURE を返す。

Here is the call graph for this function:

Here is the caller graph for this function:

harkio_Position* harkio_Position_copy ( harkio_Position p)

 harkio_Position をコピーする

Parameters
[in]pコピーしたい harkio_Position へのポインタ
Returns
コピーに成功すれば コピーした harkio_Position へのポインタ, 失敗すれば NULL を返す。

Here is the call graph for this function:

Here is the caller graph for this function:

void harkio_Position_delete ( harkio_Position **  p)

デストラクタ。メンバになっている構造体を含めて全てのメモリを開放する。

Parameters
[in]p   開放したい伝達関数。解放後は NULL が代入される。

Here is the caller graph for this function:

int harkio_Position_getID ( harkio_Position pos)

Getter。harkio_Position の ID を返す。

Parameters
[in]posharkio_Position 構造体へのポインタ
Returns
harkio_Position に対応する ID. if pos == NULL, return -1.
float* harkio_Position_getPosition ( harkio_Position pos)

Getter。harkio_Position の座標を返す。

Parameters
[in]posharkio_Position 構造体へのポインタ
Returns
座標が保持された float 配列へのポインタ
int harkio_Position_getSys ( harkio_Position pos)

Getter。harkio_Position の 座標系を返す。

Parameters
[in]posharkio_Position 構造体へのポインタ
Returns
harkio_Position の座標系. if pos == NULL, return -1
int harkio_Position_isEqual ( harkio_Position a,
harkio_Position b 
)

 2つの harkio_Position が等しいか否かを判定する

Parameters
[in]a比較したい harkio_Position へのポインタ
[in]b比較したい harkio_Position へのポインタ
Returns
等しければ 1, 等しくなければ 0 を返す

ID、座標系、パスが等しく、すべての座標の値の差が HARK_EPS 以内であれば等しいと判断する。

Here is the call graph for this function:

Here is the caller graph for this function:

harkio_Position* harkio_Position_new ( int  id,
enum Coordinate  sys,
float *  coord,
char *  path 
)

コンストラクタ。空の 与えられた座標の POS を返す。

Returns
harkio_Position 型のポインタ。失敗すると NULL を返す。
Parameters
[in]idharkio_Position の ID。
[in]sysharkio_Position の 座標系。
[in]coordharkio_Position の 座標そのもの。
[in]pathharkio_Position に対応するファイルへのパス。wav ファイルへのパスなど。

使用が終わったら、 harkio_TransferFunction_delete でメモリ解放を行う。

Here is the caller graph for this function:

void harkio_Position_print ( harkio_Position pos)

 harkio_Position をテキストで表示する

Parameters
[in]posテキストで表示したい harkio_Position へのポインタ
int harkio_Position_setChannels ( harkio_Position pos,
const int *  channels,
const int  numChannels 
)

Setter。harkio_Position の チャンネルを更新する。

Parameters
[in,out]posharkio_Position 構造体へのポインタ
[in]channelsチャンネルの配列. Copied. Accept NULL
[in]numChannelslength of channels.
Returns
成功すれば EXIT_SUCCSS、失敗すれば EXIT_FAILURE を返す

channels に合わせて、 numChannels の設定も必要。

See also
harkio_Position_setNumChannels
harkio_Position_setChannelsUse

Here is the caller graph for this function:

int harkio_Position_setChannelsUse ( harkio_Position pos,
int  channels_use 
)

Setter。harkio_Position の チャンネル使用の有無を更新する。

Parameters
[in,out]posharkio_Position 構造体へのポインタ
[in]channels_usechannels 使用の有無。 0なら不使用、1なら使用。
Returns
成功すれば EXIT_SUCCSS、失敗すれば EXIT_FAILURE を返す

channels, numChannels の設定も必要。

See also
harkio_Position_setNumChannels
harkio_Position_setChannels

Here is the caller graph for this function:

int harkio_Position_setNumChannels ( harkio_Position pos,
int  numChannels 
)

Setter。harkio_Position の チャンネル数を更新する。

Parameters
[in,out]posharkio_Position 構造体へのポインタ
[in]numChannelsチャンネル数
Returns
成功すれば EXIT_SUCCSS、失敗すれば EXIT_FAILURE を返す

channels に合わせて、 numChannels の設定も必要。

See also
harkio_Position_setChannels
harkio_Position_setChannelsUse

Here is the caller graph for this function:

int harkio_Position_setPosition ( harkio_Position pos,
enum Coordinate  sys,
float *  coord 
)

Setter。harkio_Position の 座標を更新する。

Parameters
[in,out]posharkio_Position 構造体へのポインタ
[in]sys座標系
[in]coord座標
Returns
harkio_Position の座標系
int harkio_Positions_append ( harkio_Positions poses,
harkio_Position pos 
)

 harkio_Positions に新たな harkio_Position を追加する。

Parameters
[in,out]poses位置を追加する先の harkio_Positions
[in]pos追加する harkio_Position
Returns
追加に成功すれば EXIT_SUCCESS, 失敗すれば EXIT_FAILURE を返す。

pos はメモリをコピーせずに、ポインタが poses に追加される。 pos が 正のID を持つ場合はその ID のまま append される。 pos の ID が -1 の場合は、現在の harkio_Positions の ID の最大値 + 1 を自動的に与えて append される。

Here is the caller graph for this function:

harkio_Positions* harkio_Positions_copy ( harkio_Positions p1)

 harkio_Positions をコピーする

Parameters
[in]p1コピーしたい harkio_Positions へのポインタ
Returns
コピーに成功すれば コピーした harkio_Positions へのポインタ, 失敗すれば NULL を返す。

Here is the call graph for this function:

Here is the caller graph for this function:

void harkio_Positions_delete ( harkio_Positions **  pos)

デストラクタ。メンバになっている構造体を含めて全てのメモリを開放する。

Parameters
[in]pos   開放したい伝達関数。解放後は NULL が代入される。

Here is the call graph for this function:

Here is the caller graph for this function:

harkio_Position* harkio_Positions_getByCoord ( harkio_Positions poses,
enum Coordinate  coordinate,
float *  coord,
float  tolerance 
)

Getter。harkio_Positions が持つ harkio_Position のから、与えられた位置に近いものを返す。

Parameters
[in]posesharkio_Position を取り出したい構造体へのポインタ
[in]coordinatecoord で与える座標の座標系
[in]coord取り出したい位置の座標
[in]tolerance許容誤差
Returns
与えられた位置に最も近い harkio_Position へのポインタ

Here is the call graph for this function:

Here is the caller graph for this function:

harkio_Position* harkio_Positions_getById ( harkio_Positions poses,
int  id 
)

Getter。harkio_Positions が持つ harkio_Position のから、与えられた id と同じものを返す。

Parameters
[in]posesharkio_Position を取り出したい構造体へのポインタ
[in]id取り出したい ID
Returns
与えられた ID を持つ harkio_Position へのポインタ

Here is the caller graph for this function:

int harkio_Positions_getFrame ( harkio_Positions poses)

Getter。harkio_Positions のフレーム番号を返す。

Parameters
[in]posesharkio_Position を取り出したい構造体へのポインタ
Returns
harkio_Positions のフレーム番号。失敗すれば-1を返す。
int harkio_Positions_getSize ( harkio_Positions poses)

Getter。harkio_Positions の harkio_Position の数を返す。

Parameters
[in]posesharkio_Position を取り出したい構造体へのポインタ
Returns
harkio_Positions が保持する位置の数。失敗すれば-1を返す。

Here is the caller graph for this function:

char* harkio_Positions_getType ( harkio_Positions poses)

Getter。harkio_Positions のタイプを返す。

Parameters
[in]posesharkio_Position を取り出したい構造体へのポインタ
Returns
タイプを表す文字列へのポインタ
int harkio_Positions_isEqual ( harkio_Positions a,
harkio_Positions b 
)

 2つの harkio_Positions が等しいか否かを判定する

Parameters
[in]a比較したい harkio_Positions へのポインタ
[in]b比較したい harkio_Positions へのポインタ
Returns
等しければ 1, 等しくなければ 0 を返す

サイズ、フレーム番号、タイプが等しく、かつ、保持する harkio_Position が順番を含めて すべて等しいことが条件。 harkio_Position が等しいか否かは harkio_Position_isEqual で判定する。

Here is the call graph for this function:

Here is the caller graph for this function:

harkio_Positions* harkio_Positions_new ( char *  type,
int  frame,
int  size,
harkio_Position **  pos 
)

コンストラクタ。空の位置セットのオブジェクト harkio_Positions を作成する。

Returns
harkio_Positions 型のポインタ。失敗すると NULL を返す。
Parameters
[in]typeharkio_Positions のタイプ。 tsp, impulse, noise, microphone, soundsource のいずれか、あるいは NULL
[in]frameharkio_Positions に対応するフレーム番号。
[in]sizeharkio_Positions が保持する harkio_Position の数 (= pos の長さ)
[in]posharkio_Positions に保持した harkio_Position 配列へのポインタ。 NULLが渡された場合、内部で空の配列を持ち、harkio_Positions_appendによって追加可能。 NULL以外が渡された場合、harkio_Positions_appendによる追加は不可。

使用が終わったら、 harkio_Positions_delete でメモリ解放を行う。 type の説明は下記の通り。 tsp: TSP測定 の音源位置を表すときに使用 impulse: インパルス応答の音源位置を表すときに使用 noise: ノイズの位置を表すときに使用 micorphone: マイク位置を表すときに使用 soundsource: 音源定位結果の位置を表すときに使用 NULL の場合は保存時に出力されない。

Here is the caller graph for this function:

harkio_Positions* harkio_Positions_newFromXMLbuffer ( char *  buffer,
int  len,
char *  dtdpath 
)

コンストラクタ。XMLが格納された文字列へのポインタから、harkio_Positions オブジェクトを生成する

Parameters
[in]bufferXML が格納された文字列へのポインタ。
[in]lenbuffer の長さ。
Returns
harkio_Positions へのポインタ。失敗すると NULL ポインタを返す。

harkio_Positions_delete でメモリ解放を行う必要がある。メンバは NULL でもよい。

Here is the call graph for this function:

void harkio_Positions_print ( harkio_Positions p)

 harkio_Positions をテキストで表示する

Parameters
[in]pテキストで表示したい harkio_Positions へのポインタ

Here is the call graph for this function:

char* harkio_Positions_printBuffer ( harkio_Positions p)

harkio_Positions の文字列表現を格納したバッファを返す。

Parameters
[in]pharkio_Positions オブジェクト
Returns
char* (利用者による free が必要)

Here is the call graph for this function:

Here is the caller graph for this function:

int harkio_Positions_removeByCoord ( harkio_Positions poses,
enum Coordinate  coordinate,
float *  coord,
float  tolerance 
)

 harkio_Positions から、与えられた座標の harkio_Position を削除する

Parameters
[in,out]poses削除したい harkio_Positions
[in]posesharkio_Position を取り出したい構造体へのポインタ
[in]coordinatecoord で与える座標の座標系
[in]coord取り出したい位置の座標
[in]tolerance許容誤差
Returns
削除に成功すれば EXIT_SUCCESS, 失敗すれば EXIT_FAILURE を返す。

削除された pos はメモリ解放も自動で行われる。

Here is the call graph for this function:

int harkio_Positions_removeById ( harkio_Positions poses,
int  id 
)

 harkio_Positions から、与えられた ID の harkio_Position を削除する

Parameters
[in,out]poses削除したい harkio_Positions
[out]id削除したい harkio_Position の ID.
Returns
削除に成功すれば EXIT_SUCCESS, 失敗すれば EXIT_FAILURE を返す。

削除された pos はメモリ解放も自動で行われる。 メモリはまるごとfreeされるので注意。

Here is the call graph for this function:

Here is the caller graph for this function:

int harkio_TransferFunction_appendLocTF ( harkio_TransferFunction tf,
harkio_Matrix mat 
)

harkio_TransferFunction の定位伝達関数を表す harkio_Matrix 配列に要素を追加する。

Parameters
[in,out]tf伝達関数構造体 harkio_TransferFunction。
[in]mat音源位置の定位伝達関数を表す 追加のharkio_Matrix へのポインタ
Returns
成功すると EXIT_SUCCESS, 失敗すると EXIT_FAILURE を返す。

Here is the caller graph for this function:

int harkio_TransferFunction_appendSepTF ( harkio_TransferFunction tf,
harkio_Matrix mat 
)

harkio_TransferFunction の分離伝達関数を表す harkio_Matrix 配列に要素を追加する。

Parameters
[in,out]tf伝達関数構造体 harkio_TransferFunction。
[in]mat分離伝達関数を表す 追加のharkio_Matrix へのポインタ
Returns
成功すると EXIT_SUCCESS, 失敗すると EXIT_FAILURE を返す。

Here is the caller graph for this function:

void harkio_TransferFunction_delete ( harkio_TransferFunction **  tf)

デストラクタ。メンバになっている構造体を含めて全てのメモリを開放する。

Parameters
[in]tf開放したい伝達関数。解放後は NULL が代入される。

Here is the call graph for this function:

Here is the caller graph for this function:

harkio_TransferFunction* harkio_TransferFunction_fromData ( harkio_Positions poses,
harkio_Positions mics,
harkio_Config cfg,
harkio_Neighbors nbrs 
)

コンストラクタ。与えられた 音源位置群、マイク位置群、コンフィグ、隣接音源位置から構造体を生成する。

Parameters
[in]poses   音源位置群。伝達関数測定位置のセットを表す。
[in]mics   マイク位置群。マイクアレイの各マイクの位置を表す。
[in]cfg   コンフィグ。伝達関数ファイルの設定を表す。
[in]nbrs    近接音源位置。poses の隣接関係を表す。
Returns
harkio_TransferFunction 型のポインタ。失敗すると NULL を返す。

使用が終わったら、 harkio_TransferFunction_delete でメモリ解放を行う。

Here is the caller graph for this function:

harkio_TransferFunction* harkio_TransferFunction_fromFile ( char *  path,
char *  signature 
)

コンストラクタ。与えられたファイルをロードし、構造体を構成する。

Parameters
[in]path   読み込みたいファイルのパス。
[in]signatureTransferFunction の シグネチャ。 NULL の場合はデフォルトの "transfer function" と解釈される。 この値と、開く zip ファイルの whatisthis.txt を比較し、異なれば NULL を返す。
Returns
harkio_TransferFunction 型のポインタ。失敗すると NULL を返す。

使用が終わったら、 harkio_TransferFunction_delete でメモリ解放を行う。

Here is the call graph for this function:

harkio_Config* harkio_TransferFunction_getConfig ( harkio_TransferFunction tf)

Getter。harkio_TransferFunction の harkio_Config を返す

Parameters
[in]tf伝達関数構造体 harkio_TransferFunction。
Returns
harkio_Config メンバへのポインタ。 アクセスに失敗すると NULL を返す。

Here is the caller graph for this function:

harkio_Positions* harkio_TransferFunction_getMicrophones ( harkio_TransferFunction tf)

Getter。harkio_TransferFunction の マイク位置を表す harkio_Positions を返す

Parameters
[in]tf伝達関数構造体 harkio_TransferFunction。
Returns
マイク位置を表す harkio_Positions メンバへのポインタ。 アクセスに失敗すると NULL を返す。

Here is the caller graph for this function:

harkio_Neighbors* harkio_TransferFunction_getNeighbors ( harkio_TransferFunction tf)

Getter。harkio_TransferFunction の harkio_Neighbor を返す

Parameters
[in]tf伝達関数構造体 harkio_TransferFunction。
Returns
harkio_Neighbor メンバへのポインタ。 アクセスに失敗すると NULL を返す。

Here is the caller graph for this function:

harkio_Positions* harkio_TransferFunction_getPositions ( harkio_TransferFunction tf)

Getter。harkio_TransferFunction の 音源位置を表す harkio_Positions を返す

Parameters
[in]tf伝達関数構造体 harkio_TransferFunction。
Returns
音源位置を表す harkio_Positions メンバへのポインタ。 アクセスに失敗すると NULL を返す。

Here is the caller graph for this function:

harkio_Matrix* harkio_TransferFunction_getTFById ( harkio_TransferFunction tf,
int  id,
enum harkio_TFType  tf_type 
)

harkio_TransferFunction 構造体に含まれる伝達関数群から特定の伝達関数を取り出す

Parameters
[in]tf伝達関数構造体 harkio_TransferFunction
[in]id取り出したい伝達関数の ID
[in]tf_type取り出すのが定位伝達関数か分離伝達関数かを選択
Returns
成功すると 対応する harkio_Matrix ポインタ、失敗すると NULL を返す。

harkio_TransferFunction から、あるIDの伝達関数を取り出したい場合に使用する。 対応する ID の伝達関数を返す。 返す伝達関数が定位か分離かはtf_type で与えられる。

harkio_Matrix* harkio_TransferFunction_getTFByPos ( harkio_TransferFunction tf,
harkio_Position pos,
float  tolerance,
enum harkio_TFType  tf_type 
)

harkio_TransferFunction 構造体に含まれる伝達関数群から特定の伝達関数を取り出す

Parameters
[in]tf伝達関数構造体 harkio_TransferFunction
[in]pos取り出したい伝達関数の位置
[in]tolerance位置の許容誤差
[in]tf_type取り出すのが定位伝達関数か分離伝達関数かを選択
Returns
成功すると 対応する harkio_Matrix ポインタ、失敗すると NULL を返す。

harkio_TransferFunction から、ある位置の伝達関数を取り出したい場合に使用する。 pos と距離が tolerance より小さい最初の位置に対応する伝達関数を返す。 返す伝達関数が定位か分離かはtf_type で与えられる。

Here is the call graph for this function:

harkio_TransferFunction* harkio_TransferFunction_new ( void  )

コンストラクタ。空の伝達関数構造体 harkio_TransferFunctionを作成する。

Returns
harkio_TransferFunction 型のポインタ。失敗すると NULL を返す。

使用が終わったら、 harkio_TransferFunction_delete でメモリ解放を行う。

Here is the call graph for this function:

Here is the caller graph for this function:

int harkio_TransferFunction_setConfig ( harkio_TransferFunction tf,
harkio_Config value 
)

Setter。harkio_TransferFunction の harkio_Config を設定する

Parameters
[in,out]tf伝達関数構造体 harkio_TransferFunction。
[in]value更新したい harkio_Config へのポインタ
Returns
成功すると EXIT_SUCCESS, 失敗すると EXIT_FAILURE を返す。

Here is the call graph for this function:

Here is the caller graph for this function:

int harkio_TransferFunction_setLocTFs ( harkio_TransferFunction tf,
harkio_Matrix **  tfs 
)

Setter。harkio_TransferFunction の音源位置ごとの定位伝達関数を表す harkio_Matrix 配列へのポインタを設定する

Parameters
[in,out]tf伝達関数構造体 harkio_TransferFunction。
[in]value更新したい 音源位置ごとの定位伝達関数を表す harkio_Matrix 配列へのポインタ (NULLの場合は関数内部で動的確保)
Returns
成功すると EXIT_SUCCESS, 失敗すると EXIT_FAILURE を返す。

Here is the caller graph for this function:

int harkio_TransferFunction_setMicrophones ( harkio_TransferFunction tf,
harkio_Positions value 
)

Setter。harkio_TransferFunction のマイク位置に対応する harkio_Positions を設定する

Parameters
[in,out]tf伝達関数構造体 harkio_TransferFunction。
[in]value更新したい マイク位置に対応する harkio_Positions へのポインタ
Returns
成功すると EXIT_SUCCESS, 失敗すると EXIT_FAILURE を返す。

Here is the call graph for this function:

Here is the caller graph for this function:

int harkio_TransferFunction_setNeighbors ( harkio_TransferFunction tf,
harkio_Neighbors value 
)

Setter。harkio_TransferFunction の harkio_Neighbors を設定する

Parameters
[in,out]tf伝達関数構造体 harkio_TransferFunction。
[in]value更新したい harkio_Neighbors へのポインタ
Returns
成功すると EXIT_SUCCESS, 失敗すると EXIT_FAILURE を返す。

Here is the caller graph for this function:

int harkio_TransferFunction_setPositions ( harkio_TransferFunction tf,
harkio_Positions value 
)

Setter。harkio_TransferFunction の音源位置に対応する harkio_Positions を設定する

Parameters
[in,out]tf伝達関数構造体 harkio_TransferFunction。
[in]value更新したい 音源位置に対応する harkio_Positions へのポインタ
Returns
成功すると EXIT_SUCCESS, 失敗すると EXIT_FAILURE を返す。

Here is the call graph for this function:

Here is the caller graph for this function:

int harkio_TransferFunction_setSepTFs ( harkio_TransferFunction tf,
harkio_Matrix **  tfs 
)

Setter。harkio_TransferFunction の音源位置ごとの分離伝達関数を表す harkio_Matrix 配列へのポインタを設定する

Parameters
[in,out]tf伝達関数構造体 harkio_TransferFunction。
[in]value更新したい 音源位置ごとの分離伝達関数を表す harkio_Matrix 配列へのポインタ (NULLの場合は関数内部で動的確保)
Returns
成功すると EXIT_SUCCESS, 失敗すると EXIT_FAILURE を返す。

Here is the caller graph for this function:

int harkio_TransferFunction_write ( harkio_TransferFunction tf,
char *  path,
char *  signature 
)

harkio_TransferFunction 構造体の情報をファイルに書き込む

Parameters
[in]tf伝達関数構造体 harkio_TransferFunction。
[in]path保存したいファイルへのパス
[in]signatureTransferFunction の シグネチャ。 NULL の場合はデフォルトの "transfer function" が保存される。 この値は whatisthis.txt に書き込まれる。
Returns
成功すると EXIT_SUCCESS, 失敗すると EXIT_FAILURE を返す。NULL が代入されているメンバはスキップして保存される。

Here is the call graph for this function:

void harkio_XML_delete ( harkio_XML **  xml)

デストラクタ。harkio_XML のメモリを解放する。

Parameters
[in]xmlメモリを解放するオブジェクトへのポインタへのポインタ

解放に成功すると xml には NULL が代入される。メンバのいくつかが NULL でもよい。

Here is the call graph for this function:

Here is the caller graph for this function:

harkio_XML* harkio_XML_new ( void  )

コンストラクタ。新たな harkio_XML オブジェクトを生成する。

Returns
harkio_XML へのポインタ。失敗すると NULL ポインタを返す。

harkio_XML_delete でメモリ解放を行う必要がある。

Here is the caller graph for this function:

harkio_XML* harkio_XML_newFromData ( harkio_Positions ps,
harkio_Neighbors nbrs,
harkio_Config cfg 
)

コンストラクタ。harkio_XML のメンバへのポインタを受け取って、新たな harkio_XML オブジェクトを生成する。

Parameters
[in]psXML で表現する位置群を表す。
[in]nbrsps の近接関係を表す
[in]cfgXML の一般設定を表す。
Returns
harkio_XML へのポインタ。失敗すると NULL ポインタを返す。

harkio_XML_delete でメモリ解放を行う必要がある。メンバは NULL でもよい。

Here is the caller graph for this function:

harkio_XML* harkio_XML_newFromXML ( char *  xmlpath,
char *  dtdpath 
)

コンストラクタ。ファイルを読み込んで、新たな harkio_XML オブジェクトを生成する。

Parameters
[in]xmlpath読み込む XML ファイルへのパス
[in]dtdpath[未実装] 読み込む XML ファイルを検査するための dtd ファイルへのパス。
Returns
harkio_XML へのポインタ。失敗すると NULL ポインタを返す。

harkio_XML_delete でメモリ解放を行う必要がある。

Here is the call graph for this function:

harkio_XML* harkio_XML_newFromXMLbuffer ( char *  buffer,
int  len,
char *  dtdpath 
)

コンストラクタ。XMLが格納された文字列へのポインタから、harkio_XML オブジェクトを生成する

Parameters
[in]bufferXML が格納された文字列へのポインタ。
[in]lenbuffer の長さ。
[in]dtdpath[未実装] 読み込む XML ファイルを検査するための dtd ファイルへのパス。
Returns
harkio_XML へのポインタ。失敗すると NULL ポインタを返す。

harkio_XML_delete でメモリ解放を行う必要がある。メンバは NULL でもよい。

Here is the call graph for this function:

Here is the caller graph for this function:

int harkio_XML_write ( harkio_XML xml,
FILE *  fstream 
)

harkio_XML をファイルに保存する。

Parameters
[in]xml保存される harkio_XML オブジェクト
[in]fstream保存したいファイルへのハンドル
Returns
成功すると EXIT_SUCCESS, 失敗すると EXIT_FAILURE を返す。

Here is the call graph for this function:

char* harkio_XML_writeBuffer ( harkio_XML xml)

harkio_XML をバッファに保存する。

Parameters
[in]xml保存される harkio_XML オブジェクト

harkio_XML の XML表現を、ファイルに書き出さずに文字列として渡す。

Returns
成功すれば文字列へのポインタ、失敗すれば NULL

Here is the call graph for this function:

Here is the caller graph for this function:

int harkio_XML_writeHead ( FILE *  outstream)

harkio_Positions をXMLファイルに保存する。

Parameters
[in]fstream保存したいファイルへのハンドル

逐次的に保存したい場合に使用。 harkio_XML_writeHead, harkio_XML_writePositions, harkio_XML_writeTail の順番で実行すれば、harkio_XML_writePosition で書くたびにその harkio_Positions のメモリを解放できる。

See also
harkio_XML_writePositions, harkio_XML_writeTail
int harkio_XML_writePositions ( harkio_Positions poses,
FILE *  outstream 
)

harkio_Positions をXMLファイルに保存する。

Parameters
[in]poses保存される harkio_XML オブジェクト
[in]fstream保存したいファイルへのハンドル

逐次的に保存したい場合に使用

See also
harkio_XML_writeHead, harkio_XML_writeTail

Here is the call graph for this function:

int harkio_XML_writeTail ( FILE *  outstream)

harkio_Positions をXMLファイルに保存する。

Parameters
[in]fstream保存したいファイルへのハンドル

逐次的に保存したい場合に使用

See also
harkio_XML_writeHead, harkio_XML_writePositions