libharkio3
A File I/O and Data Manipulation Library for HARK
|
全関数とデータ構造はこのファイルに定義されている。 More...
#include <stdio.h>
#include <zip.h>
#include <complex.h>
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関数定義用.ソース内で関数を使用している場合に,コンパイル時警告を出す属性を設定. | |
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_Matrix * | harkio_Matrix_new (char *type, int rows, int cols) |
初期化しないコンストラクタ More... | |
harkio_Matrix * | harkio_Matrix_eye (char *type, int size) |
単位行列生成するコンストラクタ More... | |
harkio_Matrix * | harkio_Matrix_zeros (char *type, int rows, int cols) |
要素が全てゼロの行列を生成するコンストラクタ More... | |
harkio_Matrix * | harkio_Matrix_vstack (harkio_Matrix *src, harkio_Matrix *stack) |
srcにstackの内容を縦方向(rows方向)にスタックする。この際、srcの容量はstack分拡張される。 More... | |
harkio_Matrix * | harkio_Matrix_ones (char *type, int rows, int cols) |
要素が全て1の行列を生成するコンストラクタ More... | |
harkio_Matrix * | harkio_Matrix_fromFile (char *path) |
harkio_Matrix_write で書き込んだファイルを読み込む。 More... | |
harkio_Matrix * | harkio_Matrix_fromZip (struct zip *handle, char *path) |
[内部用] zip ファイル内のharkio_Matrix_write で書き込んだファイルを読み込む。 More... | |
harkio_Matrix * | harkio_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_Matrix * | harkio_Matrix_add (harkio_Matrix *a, harkio_Matrix *b) |
2 つの harkio_Matrix の和を求める。 More... | |
harkio_Matrix * | harkio_Matrix_sub (harkio_Matrix *a, harkio_Matrix *b) |
2 つの harkio_Matrix の差を求める。 More... | |
harkio_Matrix * | harkio_Matrix_mul (harkio_Matrix *a, harkio_Matrix *b) |
2 つの harkio_Matrix の積を求める。 More... | |
harkio_Matrix * | harkio_Matrix_emul (harkio_Matrix *a, harkio_Matrix *b) |
2 つの harkio_Matrix の要素ごとの積を求める。 More... | |
harkio_Matrix * | harkio_Matrix_sumRow (harkio_Matrix *matrix) |
harkio_Matrix * | harkio_Matrix_sumCol (harkio_Matrix *matrix) |
harkio_Matrix * | harkio_Matrix_sumAll (harkio_Matrix *matrix) |
harkio_Matrix * | harkio_Matrix_sum (harkio_Matrix **matrix, int num) |
複数 harkio_Matrix の要素ごとの総和を求める More... | |
harkio_Matrix * | harkio_Matrix_ediv (harkio_Matrix *a, harkio_Matrix *b) |
2 つの harkio_Matrix の要素ごとの商を求める。 More... | |
harkio_Matrix * | harkio_Matrix_getDiag (harkio_Matrix *m) |
対角成分を取り出す More... | |
harkio_Matrix * | harkio_Matrix_makeDiag (harkio_Matrix *m) |
列ベクトルを対角成分にもつ正方行列を返す More... | |
harkio_Matrix * | harkio_Matrix_esquare (harkio_Matrix *m) |
harkio_Matrix * | harkio_Matrix_eabs (harkio_Matrix *m) |
harkio_Matrix * | harkio_Matrix_econj (harkio_Matrix *m) |
harkio_Matrix * | harkio_Matrix_etanh (harkio_Matrix *m) |
harkio_Matrix * | harkio_Matrix_ecosh (harkio_Matrix *m) |
harkio_Matrix * | harkio_Matrix_elog (harkio_Matrix *m) |
harkio_Matrix * | harkio_Matrix_elog10 (harkio_Matrix *m) |
harkio_Matrix * | harkio_Matrix_ereal (harkio_Matrix *m) |
harkio_Matrix * | harkio_Matrix_eimag (harkio_Matrix *m) |
harkio_Matrix * | harkio_Matrix_emulCInt32 (harkio_Matrix *m, int value) |
harkio_Matrix * | harkio_Matrix_emulCFloat32 (harkio_Matrix *m, float value) |
harkio_Matrix * | harkio_Matrix_emulCComplex (harkio_Matrix *m, COMPLEX_TYPE value) |
harkio_Matrix * | harkio_Matrix_edivCInt32 (harkio_Matrix *m, int value) |
harkio_Matrix * | harkio_Matrix_edivCFloat32 (harkio_Matrix *m, float value) |
harkio_Matrix * | harkio_Matrix_edivCComplex (harkio_Matrix *m, COMPLEX_TYPE value) |
harkio_Matrix * | harkio_Matrix_epowerCInt32 (harkio_Matrix *m, int value) |
harkio_Matrix * | harkio_Matrix_epowerCFloat32 (harkio_Matrix *m, float value) |
行列を定数でべき乗する More... | |
harkio_Matrix * | harkio_Matrix_epowerCComplex (harkio_Matrix *m, COMPLEX_TYPE value) |
行列を定数でべき乗する More... | |
harkio_Matrix * | harkio_Matrix_emap (harkio_Matrix *m, harkio_Matrix_maps *map) |
行列の各要素を関数で写像する More... | |
harkio_Matrix * | harkio_Matrix_ecalcCInt32 (harkio_Matrix *m, int value, harkio_Matrix_calcfuncInt32 func) |
行列の各要素を関数で写像する More... | |
harkio_Matrix * | harkio_Matrix_ecalcCFloat32 (harkio_Matrix *m, float value, harkio_Matrix_calcfuncFloat32 func) |
行列の各要素を関数で写像する More... | |
harkio_Matrix * | harkio_Matrix_ecalcCComplex (harkio_Matrix *m, COMPLEX_TYPE value, harkio_Matrix_calcfuncComplex func) |
行列の各要素を関数で写像する More... | |
harkio_Matrix * | harkio_Matrix_reshape (harkio_Matrix *m, int rows, int cols) |
行列の並び順を変更する More... | |
harkio_Matrix * | harkio_Matrix_transpose (harkio_Matrix *m) |
行列のを転置する More... | |
harkio_Matrix * | harkio_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_Matrix * | harkio_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_Config * | harkio_Config_new (void) |
コンストラクタ。空の harkio_Config を作成する。 More... | |
harkio_Config * | harkio_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_Position * | harkio_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_Position * | harkio_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_Positions * | harkio_Positions_new (char *type, int frame, int size, harkio_Position **pos) |
コンストラクタ。空の位置セットのオブジェクト harkio_Positions を作成する。 More... | |
harkio_Positions * | harkio_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_Positions * | harkio_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_Position * | harkio_Positions_getById (harkio_Positions *poses, int id) |
Getter。harkio_Positions が持つ harkio_Position のから、与えられた id と同じものを返す。 More... | |
harkio_Position * | harkio_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_Neighbors * | harkio_Neighbors_new (harkio_Positions *poses) |
コンストラクタ。近接関係を表すオブジェクトを生成する。 More... | |
harkio_Neighbors * | harkio_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_XML * | harkio_XML_new (void) |
コンストラクタ。新たな harkio_XML オブジェクトを生成する。 More... | |
harkio_XML * | harkio_XML_newFromXML (char *xmlpath, char *dtdpath) |
コンストラクタ。ファイルを読み込んで、新たな harkio_XML オブジェクトを生成する。 More... | |
harkio_XML * | harkio_XML_newFromXMLbuffer (char *buffer, int strlen, char *dtdpath) |
コンストラクタ。XMLが格納された文字列へのポインタから、harkio_XML オブジェクトを生成する More... | |
harkio_XML * | harkio_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_Config * | harkio_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_Neighbors * | harkio_XML_getNeighbors (harkio_XML *xml) |
harkio_Positions * | harkio_XML_getPositions (harkio_XML *xml) |
char * | harkio_XML_writeBuffer (harkio_XML *xml) |
harkio_XML をバッファに保存する。 More... | |
harkio_TransferFunction * | harkio_TransferFunction_new (void) |
コンストラクタ。空の伝達関数構造体 harkio_TransferFunctionを作成する。 More... | |
harkio_TransferFunction * | harkio_TransferFunction_fromFile (char *path, char *signature) |
コンストラクタ。与えられたファイルをロードし、構造体を構成する。 More... | |
harkio_TransferFunction * | harkio_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_Config * | harkio_TransferFunction_getConfig (harkio_TransferFunction *tf) |
Getter。harkio_TransferFunction の harkio_Config を返す More... | |
harkio_Neighbors * | harkio_TransferFunction_getNeighbors (harkio_TransferFunction *tf) |
Getter。harkio_TransferFunction の harkio_Neighbor を返す More... | |
harkio_Positions * | harkio_TransferFunction_getMicrophones (harkio_TransferFunction *tf) |
Getter。harkio_TransferFunction の マイク位置を表す harkio_Positions を返す More... | |
harkio_Positions * | harkio_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_Matrix * | harkio_TransferFunction_getTFByPos (harkio_TransferFunction *tf, harkio_Position *pos, float tolerance, enum harkio_TFType tf_type) |
harkio_TransferFunction 構造体に含まれる伝達関数群から特定の伝達関数を取り出す More... | |
harkio_Matrix * | harkio_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_TransferFunction * | harkio_Compat_TransferFunction_readlibharkio2 (char *loctfpath, char *septfpath) |
コンストラクタ。harkio2フォーマットの伝達関数ファイルを読み込み、構造体を構成する。 More... | |
harkio_TransferFunction * | harkio_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 |
全関数とデータ構造はこのファイルに定義されている。
#define HARKIO_LOGLEVEL_ENV_NAME "HARKIO_LOG_LEVEL" |
ログレベルを環境変数で設定するときの変数名
値は error|e,warning|w,info|i,debug|d が設定可能
enum Coordinate |
harkio_Positions で座標軸を表す。
Enumerator | |
---|---|
Polar |
極座標系 |
Cartesian |
直交座標系 |
enum harkio_Log_logLevel |
enum NeighborAlgorithm |
harkio_Neighbors で、Position (伝達関数測定位置など) が隣接しているか否かを判定するアルゴリズムを表す。
Enumerator | |
---|---|
Undefined |
未設定。デフォルト値 |
NearestNeighbor |
Nearest Neighbor 法。 閾値より近い複数個の Position が隣接していると判定する |
int harkio_CheckType | ( | char * | type | ) |
harkio_TransferFunction* harkio_Compat_SeparationMatrix_readlibharkio2 | ( | char * | sepmatpath, |
char * | septfzippath | ||
) |
コンストラクタ。harkio2フォーマットの分離行列ファイルを読み込み、構造体を構成する。
[in] | sepmatpath | 読み込む分離行列ファイルのパス。 |
[in] | septfzippath | 対応する伝達関数(zip)ファイルのパス。 |
使用が終わったら、 harkio_TransferFunction_delete でメモリ解放を行う。
harkio_TransferFunction* harkio_Compat_TransferFunction_readlibharkio2 | ( | char * | loctfpath, |
char * | septfpath | ||
) |
コンストラクタ。harkio2フォーマットの伝達関数ファイルを読み込み、構造体を構成する。
[in] | loctfpath | 読み込む定位伝達関数ファイルのパス。 |
[in] | septfpath | 読み込む分離伝達関数ファイルのパス。 |
使用が終わったら、 harkio_TransferFunction_delete でメモリ解放を行う。
void harkio_Config_delete | ( | harkio_Config ** | cfg | ) |
デストラクタ。メンバになっている構造体を含めて全てのメモリを開放する。
[in] | cfg | 開放したい伝達関数。解放後は NULL が代入される。 |
char* harkio_Config_getComment | ( | harkio_Config * | cfg | ) |
Getter。harkio_Config のコメントを返す
[in] | cfg | harkio_Config |
int harkio_Config_getSynchronousAverage | ( | harkio_Config * | cfg | ) |
Getter。harkio_Config の同期加算回数を返す
[in] | cfg | harkio_Config |
char* harkio_Config_getTSPpath | ( | harkio_Config * | cfg | ) |
Getter。harkio_Config の TSP 信号のパスを返す
[in] | cfg | harkio_Config |
harkio_Config* harkio_Config_new | ( | void | ) |
コンストラクタ。空の harkio_Config を作成する。
使用が終わったら、 harkio_TransferFunction_delete でメモリ解放を行う。
harkio_Matrix* harkio_Matrix_add | ( | harkio_Matrix * | a, |
harkio_Matrix * | b | ||
) |
2 つの harkio_Matrix の和を求める。
[in] | a | harkio_Matrix オブジェクト |
[in] | b | harkio_Matrix オブジェクト |
harkio_Matrix* harkio_Matrix_copy | ( | harkio_Matrix * | m | ) |
harkio_Matrix をコピーする。
[in] | m | コピーしたい harkio_Matrix オブジェクト |
harkio_Matrix* harkio_Matrix_ctranspose | ( | harkio_Matrix * | m | ) |
行列を複素共役転置する
[in] | m | harkio_Matrix オブジェクト |
行列の配列サイズは (row, col) –> (col, row) となり、 各要素は複素共役がとられる。
void harkio_Matrix_delete | ( | harkio_Matrix ** | m | ) |
デストラクタ。
[in] | m | 解放したい harkio_Matrix オブジェクト |
harkio_Matrix* harkio_Matrix_ecalcCComplex | ( | harkio_Matrix * | m, |
COMPLEX_TYPE | value, | ||
harkio_Matrix_calcfuncComplex | func | ||
) |
行列の各要素を関数で写像する
[in] | m | harkio_Matrix オブジェクト |
[in] | map | 型ごとの関数ポインタ |
harkio_Matrix* harkio_Matrix_ecalcCFloat32 | ( | harkio_Matrix * | m, |
float | value, | ||
harkio_Matrix_calcfuncFloat32 | func | ||
) |
行列の各要素を関数で写像する
[in] | m | harkio_Matrix オブジェクト |
[in] | map | 型ごとの関数ポインタ |
harkio_Matrix* harkio_Matrix_ecalcCInt32 | ( | harkio_Matrix * | m, |
int | value, | ||
harkio_Matrix_calcfuncInt32 | func | ||
) |
行列の各要素を関数で写像する
[in] | m | harkio_Matrix オブジェクト |
[in] | map | 型ごとの関数ポインタ |
harkio_Matrix* harkio_Matrix_ediv | ( | harkio_Matrix * | a, |
harkio_Matrix * | b | ||
) |
2 つの harkio_Matrix の要素ごとの商を求める。
[in] | a | harkio_Matrix オブジェクト |
[in] | b | harkio_Matrix オブジェクト |
harkio_Matrix* harkio_Matrix_emap | ( | harkio_Matrix * | m, |
harkio_Matrix_maps * | map | ||
) |
行列の各要素を関数で写像する
[in] | m | harkio_Matrix オブジェクト |
[in] | map | 型ごとの関数ポインタ |
harkio_Matrix* harkio_Matrix_emul | ( | harkio_Matrix * | a, |
harkio_Matrix * | b | ||
) |
2 つの harkio_Matrix の要素ごとの積を求める。
[in] | a | harkio_Matrix オブジェクト |
[in] | b | harkio_Matrix オブジェクト |
harkio_Matrix* harkio_Matrix_epowerCComplex | ( | harkio_Matrix * | m, |
COMPLEX_TYPE | value | ||
) |
行列を定数でべき乗する
[in] | m | harkio_Matrix オブジェクト |
[in] | value | 指数 |
harkio_Matrix* harkio_Matrix_epowerCFloat32 | ( | harkio_Matrix * | m, |
float | value | ||
) |
行列を定数でべき乗する
[in] | m | harkio_Matrix オブジェクト |
[in] | value | 指数 |
harkio_Matrix* harkio_Matrix_eye | ( | char * | type, |
int | size | ||
) |
単位行列生成するコンストラクタ
[in] | type | harkio_Matrix の型。 int32, float32, complex から選べる。 |
[in] | size | harkio_Matrix のサイズ。 |
単位行列は正方行列なので、列・行は共に size と等しい。 使用が終わったら、 harkio_Matrix_delete でメモリ解放を行う。
harkio_Matrix* harkio_Matrix_fromFile | ( | char * | path | ) |
harkio_Matrix_write で書き込んだファイルを読み込む。
[in] | path | ファイルへのパス。 |
使用が終わったら、 harkio_Matrix_delete でメモリ解放を行う。
harkio_Matrix* harkio_Matrix_fromZip | ( | struct zip * | handle, |
char * | path | ||
) |
[内部用] zip ファイル内のharkio_Matrix_write で書き込んだファイルを読み込む。
[in] | handle | Zip ファイルへのハンドル |
[in] | path | 対象ファイルの Zip ファイル内のパス |
使用が終わったら、 harkio_Matrix_delete でメモリ解放を行う。
harkio_Matrix* harkio_Matrix_getDiag | ( | harkio_Matrix * | m | ) |
対角成分を取り出す
[in] | m | harkio_Matrix オブジェクト |
m は正方行列でなければならない。
char* harkio_Matrix_getTag | ( | harkio_Matrix * | m | ) |
harkio_Matrix のタグを取得する
[in] | m | harkio_Matrix オブジェクト |
ポインタそのものを返すので、受け取った先で Free すると m の tag が破壊されるので注意。
int harkio_Matrix_getValueComplex | ( | harkio_Matrix * | m, |
int | row, | ||
int | col, | ||
COMPLEX_TYPE * | value | ||
) |
complex 型の harkio_Matrix の値を取り出す
[in] | m | harkio_Matrix オブジェクト |
[in] | row | 取り出したい値の 行位置 (0 から開始) |
[in] | col | 取り出したい値の 列位置 (0 から開始) |
[out] | value | 取り出した値を格納する変数へのポインタ |
int harkio_Matrix_getValueFloat32 | ( | harkio_Matrix * | m, |
int | row, | ||
int | col, | ||
float * | value | ||
) |
float32 型の harkio_Matrix の値を取り出す
[in] | m | harkio_Matrix オブジェクト |
[in] | row | 取り出したい値の 行位置 (0 から開始) |
[in] | col | 取り出したい値の 列位置 (0 から開始) |
[out] | value | 取り出した値を格納する変数へのポインタ |
int harkio_Matrix_getValueInt32 | ( | harkio_Matrix * | m, |
int | row, | ||
int | col, | ||
int * | value | ||
) |
int32 型の harkio_Matrix の値を取り出す
[in] | m | harkio_Matrix オブジェクト |
[in] | row | 取り出したい値の 行位置 (0 から開始) |
[in] | col | 取り出したい値の 列位置 (0 から開始) |
[out] | value | 取り出した値を格納する変数へのポインタ |
harkio_Matrix* harkio_Matrix_getValues | ( | harkio_Matrix * | m, |
int | rowFrom, | ||
int | rowTo, | ||
int | colFrom, | ||
int | colTo | ||
) |
harkio_Matrix の部分行列を取り出す
[in] | m | harkio_Matrix オブジェクト |
[in] | rowFrom | 取り出したい値の 行開始位置 (0 から開始) |
[in] | rowTo | 取り出したい値の 行終了位置 (0 から開始) |
[in] | colFrom | 取り出したい値の 列開始位置 (0 から開始) |
[in] | colTo | 取り出したい値の 列終了位置 (0 から開始) |
int harkio_Matrix_isEqual | ( | harkio_Matrix * | a, |
harkio_Matrix * | b | ||
) |
2つの harkio_Matrix オブジェクトが等しいかどうかを判定する
[in] | a | harkio_Matrix オブジェクト |
[in] | b | harkio_Matrix オブジェクト |
型、サイズ、すべての値が同じでなければならない。
harkio_Matrix* harkio_Matrix_makeDiag | ( | harkio_Matrix * | m | ) |
列ベクトルを対角成分にもつ正方行列を返す
[in] | m | harkio_Matrix オブジェクト。サイズは (X, 1) |
m は列ベクトル (row = 1) でなければならない。
harkio_Matrix* harkio_Matrix_mul | ( | harkio_Matrix * | a, |
harkio_Matrix * | b | ||
) |
2 つの harkio_Matrix の積を求める。
[in] | a | harkio_Matrix オブジェクト |
[in] | b | harkio_Matrix オブジェクト |
a のサイズが (A1, A2), b のサイズが (B1, B2) の場合、 A2 = B1 でなければ失敗する。 サイズが合っている場合、サイズ (A1, B2) の新しい行列ができる。
harkio_Matrix* harkio_Matrix_new | ( | char * | type, |
int | rows, | ||
int | cols | ||
) |
初期化しないコンストラクタ
[in] | type | harkio_Matrix の型。 int32, float32, complex から選べる。 |
[in] | rows | harkio_Matrix の行サイズ。 |
[in] | cols | harkio_Matrix の列サイズ。 |
使用が終わったら、 harkio_Matrix_delete でメモリ解放を行う。
harkio_Matrix* harkio_Matrix_ones | ( | char * | type, |
int | rows, | ||
int | cols | ||
) |
要素が全て1の行列を生成するコンストラクタ
[in] | type | harkio_Matrix の型。 int32, float32, complex から選べる。 |
[in] | rows | harkio_Matrix の行サイズ。 |
[in] | cols | harkio_Matrix の列サイズ。 |
使用が終わったら、 harkio_Matrix_delete でメモリ解放を行う。
void harkio_Matrix_print | ( | harkio_Matrix * | m | ) |
char* harkio_Matrix_printBuffer | ( | harkio_Matrix * | m | ) |
harkio_Matrix の文字列表現を格納したバッファを返す。
[in] | m | harkio_Matrix オブジェクト |
harkio_Matrix* harkio_Matrix_reshape | ( | harkio_Matrix * | m, |
int | rows, | ||
int | cols | ||
) |
行列の並び順を変更する
[in] | m | harkio_Matrix オブジェクト |
[in] | rows | 新しい行数 |
[in] | cols | 新しい列数 |
行列の配列サイズ自体は変更しないので、元の rows * cols と、新しい rows * cols は等しくなければならない。
int harkio_Matrix_setValueComplex | ( | harkio_Matrix * | m, |
int | row, | ||
int | col, | ||
COMPLEX_TYPE | value | ||
) |
complex 型の harkio_Matrix の値を設定する
[in] | m | harkio_Matrix オブジェクト |
[in] | row | 設定したい値の 行位置 (0 から開始) |
[in] | col | 設定したい値の 列位置 (0 から開始) |
[out] | value | 設定しい値 |
int harkio_Matrix_setValueFloat32 | ( | harkio_Matrix * | m, |
int | row, | ||
int | col, | ||
float | value | ||
) |
float32 型の harkio_Matrix の値を設定する
[in] | m | harkio_Matrix オブジェクト |
[in] | row | 設定したい値の 行位置 (0 から開始) |
[in] | col | 設定したい値の 列位置 (0 から開始) |
[out] | value | 設定しい値 |
int harkio_Matrix_setValueInt32 | ( | harkio_Matrix * | m, |
int | row, | ||
int | col, | ||
int | value | ||
) |
int32 型の harkio_Matrix の値を設定する
[in] | m | harkio_Matrix オブジェクト |
[in] | row | 設定したい値の 行位置 (0 から開始) |
[in] | col | 設定したい値の 列位置 (0 から開始) |
[out] | value | 設定しい値 |
int harkio_Matrix_setValues | ( | harkio_Matrix * | m1, |
harkio_Matrix * | m2, | ||
int | row, | ||
int | col | ||
) |
harkio_Matrix の一部を別の harkio_Matrix で上書きする
[in] | m1 | 値を設定したい先の harkio_Matrix オブジェクト |
[in] | m2 | 値を設定したい元の harkio_Matrix オブジェクト |
[in] | row | 設定したい値の 行位置 (0 から開始) |
[in] | col | 設定したい値の 列位置 (0 から開始) |
m1 より m2 のサイズが小さくなければならない。また、はみ出ない row/col の値でなければならない。 複数の値をまとめて保存するときに使用
size_t harkio_Matrix_size | ( | harkio_Matrix * | m, |
int * | size | ||
) |
harkio_Matrix のサイズを取得する
[in] | m | harkio_Matrix オブジェクト |
[in] | size | 行列のサイズが格納されるポインタ。 長さ 2 のメモリが確保された int 配列である必要がある。 |
size は呼び出し前にメモリ確保が必要であることに注意。
harkio_Matrix* harkio_Matrix_sub | ( | harkio_Matrix * | a, |
harkio_Matrix * | b | ||
) |
2 つの harkio_Matrix の差を求める。
[in] | a | harkio_Matrix オブジェクト |
[in] | b | harkio_Matrix オブジェクト |
harkio_Matrix* harkio_Matrix_sum | ( | harkio_Matrix ** | matrix, |
int | num | ||
) |
複数 harkio_Matrix の要素ごとの総和を求める
[in] | matrix | harkio_Matrix オブジェクト のポインタ配列 |
[in] | num | matrix の長さ |
matrix 配列が差す harkio_Matrix オブジェクトは全て同じサイズ、型でなければならない。
harkio_Matrix* harkio_Matrix_transpose | ( | harkio_Matrix * | m | ) |
行列のを転置する
[in] | m | harkio_Matrix オブジェクト |
行列の配列サイズは (row, col) –> (col, row) となる。
harkio_Matrix* harkio_Matrix_vstack | ( | harkio_Matrix * | src, |
harkio_Matrix * | stack | ||
) |
srcにstackの内容を縦方向(rows方向)にスタックする。この際、srcの容量はstack分拡張される。
[in] | src | vstackする対象のharkio_Matrixインスタンス |
[in] | stack | vstackに加えるharkio_Matrixのインスタンス |
int harkio_Matrix_write | ( | harkio_Matrix * | m, |
char * | path | ||
) |
harkio_Matrix をファイルに書き込む
[in] | m | harkio_Matrix オブジェクト |
[in] | path | 書き込むファイルへのパス |
char* harkio_Matrix_writeBuffer | ( | harkio_Matrix * | m, |
size_t * | size | ||
) |
harkio_Matrix のファイルフォーマットを書き込んだバッファを返す。
[in] | m | harkio_Matrix オブジェクト |
[out] | size | 戻り値が指すバッファのサイズ |
harkio_Matrix* harkio_Matrix_zeros | ( | char * | type, |
int | rows, | ||
int | cols | ||
) |
要素が全てゼロの行列を生成するコンストラクタ
[in] | type | harkio_Matrix の型。 int32, float32, complex から選べる。 |
[in] | rows | harkio_Matrix の行サイズ。 |
[in] | cols | harkio_Matrix の列サイズ。 |
使用が終わったら、 harkio_Matrix_delete でメモリ解放を行う。
int harkio_Neighbors_Algorithms_NearestNeighbor | ( | harkio_Neighbors * | nbrs, |
int | n, | ||
float | thresh | ||
) |
近接関係計算アルゴリズムの実装。近傍をクラスタリングする方法。
[in] | nbrs | harkio_Neighbors オブジェクト |
[in] | n | 近接関係と見なす最大数 |
[in] | thresh | 近接か否かを判定するしきい値 |
nbrs が持つ位置のユークリッド距離をすべてについて計算し、 thresh より小さいものを近傍として登録する。ただし、その数が n より大きければ近い順に n 個だけ登録する。
int harkio_Neighbors_append | ( | harkio_Neighbors * | nbrs, |
int | id, | ||
int | numNeighbors, | ||
int * | neighbors | ||
) |
新しい隣接関係を追加する。与えられた ID に隣接関係がすでに定義されていれば追加し、定義が無ければ新しく作成する。
[in] | nbs | harkio_Neighbors オブジェクト |
[in] | id | 追加する id |
[in] | numNeighbors | 追加する隣接点の数 |
[in] | numNeighbors | 追加する隣接へのポインタ |
int harkio_Neighbors_calcNeighbors | ( | harkio_Neighbors * | nbrs, |
enum NeighborAlgorithm | alg, | ||
... | |||
) |
harkio_Neighbors に登録されている位置の近接関係を計算する。
[in] | nbs | harkio_Neighbors オブジェクト |
[in] | alg | 近接関係計算アルゴリズムを表す enum. |
[in] | ... | アルゴリズムごとに決まる可変引数。 |
harkio_Neighbors* harkio_Neighbors_copy | ( | harkio_Neighbors * | n1 | ) |
harkio_Neighbors の内容を コピーする
void harkio_Neighbors_delete | ( | harkio_Neighbors ** | nbrs | ) |
デストラクタ。harkio_Neighbors のメモリを解放する。
[in] | nbrs | メモリを解放するオブジェクトへのポインタへのポインタ |
解放に成功すると xml には NULL が代入される。メンバのいくつかが NULL でもよい。
enum NeighborAlgorithm harkio_Neighbors_getNeighborAlgorithm | ( | harkio_Neighbors * | nbs | ) |
Getter. harkio_Neighbors の近接関係計算アルゴリズムを返す。
[in] | nbs | harkio_Neighbors オブジェクト |
int harkio_Neighbors_getNeighbors | ( | harkio_Neighbors * | nbrs, |
int | id, | ||
int * | numNeighbors, | ||
int ** | neighbors | ||
) |
getter。与えられた id の近接 id を返す。[]
[in] | nbrs | 近接 ID を検索したい hakrio_Neighbors オブジェクト |
[in] | id | 近接 ID を検索したい対象の ID |
[out] | numNeighbors | 見つかった近接 ID の個数 |
[out] | neighbors | 見つかった近接 ID の配列へのポインタ |
引数に不備があれば EXIT_FAILURE が返される。成功すれば numNeighbors, neighbors に値がセットされ EXIT_SUCCESS が返る。 neighbors は関数内で malloc されるので free が必要。
int harkio_Neighbors_getSize | ( | harkio_Neighbors * | nbs | ) |
Getter. harkio_Neighbors に登録されている harkio_Positions の長さ
[in] | nbs | harkio_Neighbors オブジェクト |
int harkio_Neighbors_isEqual | ( | harkio_Neighbors * | a, |
harkio_Neighbors * | b | ||
) |
harkio_Neighbors が等しいかどうかを比較する。
harkio_Neighbors* harkio_Neighbors_new | ( | harkio_Positions * | poses | ) |
コンストラクタ。近接関係を表すオブジェクトを生成する。
[in] | poses | 近接関係を表現したい位置群を与える。 NULL でもよい。 |
poses はコピーせずにポインタが渡される。 NULL を与えた場合は位置が無い空のオブジェクトが生成される。 使用が終わったら、 harkio_Neighbors_delete でメモリ解放を行う。
int harkio_Position_Convert | ( | harkio_Position * | pos, |
float * | coord, | ||
enum Coordinate | type | ||
) |
harkio_Positions の座標を指定した座標系で得る。
[in] | pos | harkio_Position へのポインタ |
[out] | coord | 変換された座標系 |
[in] | type | 変換先の座標系 |
harkio_Position* harkio_Position_copy | ( | harkio_Position * | p | ) |
harkio_Position をコピーする
[in] | p | コピーしたい harkio_Position へのポインタ |
void harkio_Position_delete | ( | harkio_Position ** | p | ) |
デストラクタ。メンバになっている構造体を含めて全てのメモリを開放する。
[in] | p | 開放したい伝達関数。解放後は NULL が代入される。 |
int harkio_Position_getID | ( | harkio_Position * | pos | ) |
Getter。harkio_Position の ID を返す。
[in] | pos | harkio_Position 構造体へのポインタ |
float* harkio_Position_getPosition | ( | harkio_Position * | pos | ) |
Getter。harkio_Position の座標を返す。
[in] | pos | harkio_Position 構造体へのポインタ |
int harkio_Position_getSys | ( | harkio_Position * | pos | ) |
Getter。harkio_Position の 座標系を返す。
[in] | pos | harkio_Position 構造体へのポインタ |
int harkio_Position_isEqual | ( | harkio_Position * | a, |
harkio_Position * | b | ||
) |
2つの harkio_Position が等しいか否かを判定する
[in] | a | 比較したい harkio_Position へのポインタ |
[in] | b | 比較したい harkio_Position へのポインタ |
ID、座標系、パスが等しく、すべての座標の値の差が HARK_EPS 以内であれば等しいと判断する。
harkio_Position* harkio_Position_new | ( | int | id, |
enum Coordinate | sys, | ||
float * | coord, | ||
char * | path | ||
) |
コンストラクタ。空の 与えられた座標の POS を返す。
[in] | id | harkio_Position の ID。 |
[in] | sys | harkio_Position の 座標系。 |
[in] | coord | harkio_Position の 座標そのもの。 |
[in] | path | harkio_Position に対応するファイルへのパス。wav ファイルへのパスなど。 |
使用が終わったら、 harkio_TransferFunction_delete でメモリ解放を行う。
void harkio_Position_print | ( | harkio_Position * | pos | ) |
harkio_Position をテキストで表示する
[in] | pos | テキストで表示したい harkio_Position へのポインタ |
int harkio_Position_setChannels | ( | harkio_Position * | pos, |
const int * | channels, | ||
const int | numChannels | ||
) |
Setter。harkio_Position の チャンネルを更新する。
[in,out] | pos | harkio_Position 構造体へのポインタ |
[in] | channels | チャンネルの配列. Copied. Accept NULL |
[in] | numChannels | length of channels. |
channels に合わせて、 numChannels の設定も必要。
int harkio_Position_setChannelsUse | ( | harkio_Position * | pos, |
int | channels_use | ||
) |
Setter。harkio_Position の チャンネル使用の有無を更新する。
[in,out] | pos | harkio_Position 構造体へのポインタ |
[in] | channels_use | channels 使用の有無。 0なら不使用、1なら使用。 |
channels, numChannels の設定も必要。
int harkio_Position_setNumChannels | ( | harkio_Position * | pos, |
int | numChannels | ||
) |
Setter。harkio_Position の チャンネル数を更新する。
[in,out] | pos | harkio_Position 構造体へのポインタ |
[in] | numChannels | チャンネル数 |
channels に合わせて、 numChannels の設定も必要。
int harkio_Position_setPosition | ( | harkio_Position * | pos, |
enum Coordinate | sys, | ||
float * | coord | ||
) |
Setter。harkio_Position の 座標を更新する。
[in,out] | pos | harkio_Position 構造体へのポインタ |
[in] | sys | 座標系 |
[in] | coord | 座標 |
int harkio_Positions_append | ( | harkio_Positions * | poses, |
harkio_Position * | pos | ||
) |
harkio_Positions に新たな harkio_Position を追加する。
[in,out] | poses | 位置を追加する先の harkio_Positions |
[in] | pos | 追加する harkio_Position |
pos はメモリをコピーせずに、ポインタが poses に追加される。 pos が 正のID を持つ場合はその ID のまま append される。 pos の ID が -1 の場合は、現在の harkio_Positions の ID の最大値 + 1 を自動的に与えて append される。
harkio_Positions* harkio_Positions_copy | ( | harkio_Positions * | p1 | ) |
harkio_Positions をコピーする
[in] | p1 | コピーしたい harkio_Positions へのポインタ |
void harkio_Positions_delete | ( | harkio_Positions ** | pos | ) |
デストラクタ。メンバになっている構造体を含めて全てのメモリを開放する。
[in] | pos | 開放したい伝達関数。解放後は NULL が代入される。 |
harkio_Position* harkio_Positions_getByCoord | ( | harkio_Positions * | poses, |
enum Coordinate | coordinate, | ||
float * | coord, | ||
float | tolerance | ||
) |
Getter。harkio_Positions が持つ harkio_Position のから、与えられた位置に近いものを返す。
[in] | poses | harkio_Position を取り出したい構造体へのポインタ |
[in] | coordinate | coord で与える座標の座標系 |
[in] | coord | 取り出したい位置の座標 |
[in] | tolerance | 許容誤差 |
harkio_Position* harkio_Positions_getById | ( | harkio_Positions * | poses, |
int | id | ||
) |
Getter。harkio_Positions が持つ harkio_Position のから、与えられた id と同じものを返す。
[in] | poses | harkio_Position を取り出したい構造体へのポインタ |
[in] | id | 取り出したい ID |
int harkio_Positions_getFrame | ( | harkio_Positions * | poses | ) |
Getter。harkio_Positions のフレーム番号を返す。
[in] | poses | harkio_Position を取り出したい構造体へのポインタ |
int harkio_Positions_getSize | ( | harkio_Positions * | poses | ) |
Getter。harkio_Positions の harkio_Position の数を返す。
[in] | poses | harkio_Position を取り出したい構造体へのポインタ |
char* harkio_Positions_getType | ( | harkio_Positions * | poses | ) |
Getter。harkio_Positions のタイプを返す。
[in] | poses | harkio_Position を取り出したい構造体へのポインタ |
int harkio_Positions_isEqual | ( | harkio_Positions * | a, |
harkio_Positions * | b | ||
) |
2つの harkio_Positions が等しいか否かを判定する
[in] | a | 比較したい harkio_Positions へのポインタ |
[in] | b | 比較したい harkio_Positions へのポインタ |
サイズ、フレーム番号、タイプが等しく、かつ、保持する harkio_Position が順番を含めて すべて等しいことが条件。 harkio_Position が等しいか否かは harkio_Position_isEqual で判定する。
harkio_Positions* harkio_Positions_new | ( | char * | type, |
int | frame, | ||
int | size, | ||
harkio_Position ** | pos | ||
) |
コンストラクタ。空の位置セットのオブジェクト harkio_Positions を作成する。
[in] | type | harkio_Positions のタイプ。 tsp, impulse, noise, microphone, soundsource のいずれか、あるいは NULL |
[in] | frame | harkio_Positions に対応するフレーム番号。 |
[in] | size | harkio_Positions が保持する harkio_Position の数 (= pos の長さ) |
[in] | pos | harkio_Positions に保持した harkio_Position 配列へのポインタ。 NULLが渡された場合、内部で空の配列を持ち、harkio_Positions_appendによって追加可能。 NULL以外が渡された場合、harkio_Positions_appendによる追加は不可。 |
使用が終わったら、 harkio_Positions_delete でメモリ解放を行う。 type の説明は下記の通り。 tsp: TSP測定 の音源位置を表すときに使用 impulse: インパルス応答の音源位置を表すときに使用 noise: ノイズの位置を表すときに使用 micorphone: マイク位置を表すときに使用 soundsource: 音源定位結果の位置を表すときに使用 NULL の場合は保存時に出力されない。
harkio_Positions* harkio_Positions_newFromXMLbuffer | ( | char * | buffer, |
int | len, | ||
char * | dtdpath | ||
) |
コンストラクタ。XMLが格納された文字列へのポインタから、harkio_Positions オブジェクトを生成する
[in] | buffer | XML が格納された文字列へのポインタ。 |
[in] | len | buffer の長さ。 |
harkio_Positions_delete でメモリ解放を行う必要がある。メンバは NULL でもよい。
void harkio_Positions_print | ( | harkio_Positions * | p | ) |
harkio_Positions をテキストで表示する
[in] | p | テキストで表示したい harkio_Positions へのポインタ |
char* harkio_Positions_printBuffer | ( | harkio_Positions * | p | ) |
harkio_Positions の文字列表現を格納したバッファを返す。
[in] | p | harkio_Positions オブジェクト |
int harkio_Positions_removeByCoord | ( | harkio_Positions * | poses, |
enum Coordinate | coordinate, | ||
float * | coord, | ||
float | tolerance | ||
) |
harkio_Positions から、与えられた座標の harkio_Position を削除する
[in,out] | poses | 削除したい harkio_Positions |
[in] | poses | harkio_Position を取り出したい構造体へのポインタ |
[in] | coordinate | coord で与える座標の座標系 |
[in] | coord | 取り出したい位置の座標 |
[in] | tolerance | 許容誤差 |
削除された pos はメモリ解放も自動で行われる。
int harkio_Positions_removeById | ( | harkio_Positions * | poses, |
int | id | ||
) |
harkio_Positions から、与えられた ID の harkio_Position を削除する
[in,out] | poses | 削除したい harkio_Positions |
[out] | id | 削除したい harkio_Position の ID. |
削除された pos はメモリ解放も自動で行われる。 メモリはまるごとfreeされるので注意。
int harkio_TransferFunction_appendLocTF | ( | harkio_TransferFunction * | tf, |
harkio_Matrix * | mat | ||
) |
harkio_TransferFunction の定位伝達関数を表す harkio_Matrix 配列に要素を追加する。
[in,out] | tf | 伝達関数構造体 harkio_TransferFunction。 |
[in] | mat | 音源位置の定位伝達関数を表す 追加のharkio_Matrix へのポインタ |
int harkio_TransferFunction_appendSepTF | ( | harkio_TransferFunction * | tf, |
harkio_Matrix * | mat | ||
) |
harkio_TransferFunction の分離伝達関数を表す harkio_Matrix 配列に要素を追加する。
[in,out] | tf | 伝達関数構造体 harkio_TransferFunction。 |
[in] | mat | 分離伝達関数を表す 追加のharkio_Matrix へのポインタ |
void harkio_TransferFunction_delete | ( | harkio_TransferFunction ** | tf | ) |
デストラクタ。メンバになっている構造体を含めて全てのメモリを開放する。
[in] | tf | 開放したい伝達関数。解放後は NULL が代入される。 |
harkio_TransferFunction* harkio_TransferFunction_fromData | ( | harkio_Positions * | poses, |
harkio_Positions * | mics, | ||
harkio_Config * | cfg, | ||
harkio_Neighbors * | nbrs | ||
) |
コンストラクタ。与えられた 音源位置群、マイク位置群、コンフィグ、隣接音源位置から構造体を生成する。
[in] | poses | 音源位置群。伝達関数測定位置のセットを表す。 |
[in] | mics | マイク位置群。マイクアレイの各マイクの位置を表す。 |
[in] | cfg | コンフィグ。伝達関数ファイルの設定を表す。 |
[in] | nbrs | 近接音源位置。poses の隣接関係を表す。 |
使用が終わったら、 harkio_TransferFunction_delete でメモリ解放を行う。
harkio_TransferFunction* harkio_TransferFunction_fromFile | ( | char * | path, |
char * | signature | ||
) |
コンストラクタ。与えられたファイルをロードし、構造体を構成する。
[in] | path | 読み込みたいファイルのパス。 |
[in] | signature | TransferFunction の シグネチャ。 NULL の場合はデフォルトの "transfer function" と解釈される。 この値と、開く zip ファイルの whatisthis.txt を比較し、異なれば NULL を返す。 |
使用が終わったら、 harkio_TransferFunction_delete でメモリ解放を行う。
harkio_Config* harkio_TransferFunction_getConfig | ( | harkio_TransferFunction * | tf | ) |
Getter。harkio_TransferFunction の harkio_Config を返す
[in] | tf | 伝達関数構造体 harkio_TransferFunction。 |
harkio_Positions* harkio_TransferFunction_getMicrophones | ( | harkio_TransferFunction * | tf | ) |
Getter。harkio_TransferFunction の マイク位置を表す harkio_Positions を返す
[in] | tf | 伝達関数構造体 harkio_TransferFunction。 |
harkio_Neighbors* harkio_TransferFunction_getNeighbors | ( | harkio_TransferFunction * | tf | ) |
Getter。harkio_TransferFunction の harkio_Neighbor を返す
[in] | tf | 伝達関数構造体 harkio_TransferFunction。 |
harkio_Positions* harkio_TransferFunction_getPositions | ( | harkio_TransferFunction * | tf | ) |
Getter。harkio_TransferFunction の 音源位置を表す harkio_Positions を返す
[in] | tf | 伝達関数構造体 harkio_TransferFunction。 |
harkio_Matrix* harkio_TransferFunction_getTFById | ( | harkio_TransferFunction * | tf, |
int | id, | ||
enum harkio_TFType | tf_type | ||
) |
harkio_TransferFunction 構造体に含まれる伝達関数群から特定の伝達関数を取り出す
[in] | tf | 伝達関数構造体 harkio_TransferFunction |
[in] | id | 取り出したい伝達関数の ID |
[in] | tf_type | 取り出すのが定位伝達関数か分離伝達関数かを選択 |
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 構造体に含まれる伝達関数群から特定の伝達関数を取り出す
[in] | tf | 伝達関数構造体 harkio_TransferFunction |
[in] | pos | 取り出したい伝達関数の位置 |
[in] | tolerance | 位置の許容誤差 |
[in] | tf_type | 取り出すのが定位伝達関数か分離伝達関数かを選択 |
harkio_TransferFunction から、ある位置の伝達関数を取り出したい場合に使用する。 pos と距離が tolerance より小さい最初の位置に対応する伝達関数を返す。 返す伝達関数が定位か分離かはtf_type で与えられる。
harkio_TransferFunction* harkio_TransferFunction_new | ( | void | ) |
コンストラクタ。空の伝達関数構造体 harkio_TransferFunctionを作成する。
使用が終わったら、 harkio_TransferFunction_delete でメモリ解放を行う。
int harkio_TransferFunction_setConfig | ( | harkio_TransferFunction * | tf, |
harkio_Config * | value | ||
) |
Setter。harkio_TransferFunction の harkio_Config を設定する
[in,out] | tf | 伝達関数構造体 harkio_TransferFunction。 |
[in] | value | 更新したい harkio_Config へのポインタ |
int harkio_TransferFunction_setLocTFs | ( | harkio_TransferFunction * | tf, |
harkio_Matrix ** | tfs | ||
) |
Setter。harkio_TransferFunction の音源位置ごとの定位伝達関数を表す harkio_Matrix 配列へのポインタを設定する
[in,out] | tf | 伝達関数構造体 harkio_TransferFunction。 |
[in] | value | 更新したい 音源位置ごとの定位伝達関数を表す harkio_Matrix 配列へのポインタ (NULLの場合は関数内部で動的確保) |
int harkio_TransferFunction_setMicrophones | ( | harkio_TransferFunction * | tf, |
harkio_Positions * | value | ||
) |
Setter。harkio_TransferFunction のマイク位置に対応する harkio_Positions を設定する
[in,out] | tf | 伝達関数構造体 harkio_TransferFunction。 |
[in] | value | 更新したい マイク位置に対応する harkio_Positions へのポインタ |
int harkio_TransferFunction_setNeighbors | ( | harkio_TransferFunction * | tf, |
harkio_Neighbors * | value | ||
) |
Setter。harkio_TransferFunction の harkio_Neighbors を設定する
[in,out] | tf | 伝達関数構造体 harkio_TransferFunction。 |
[in] | value | 更新したい harkio_Neighbors へのポインタ |
int harkio_TransferFunction_setPositions | ( | harkio_TransferFunction * | tf, |
harkio_Positions * | value | ||
) |
Setter。harkio_TransferFunction の音源位置に対応する harkio_Positions を設定する
[in,out] | tf | 伝達関数構造体 harkio_TransferFunction。 |
[in] | value | 更新したい 音源位置に対応する harkio_Positions へのポインタ |
int harkio_TransferFunction_setSepTFs | ( | harkio_TransferFunction * | tf, |
harkio_Matrix ** | tfs | ||
) |
Setter。harkio_TransferFunction の音源位置ごとの分離伝達関数を表す harkio_Matrix 配列へのポインタを設定する
[in,out] | tf | 伝達関数構造体 harkio_TransferFunction。 |
[in] | value | 更新したい 音源位置ごとの分離伝達関数を表す harkio_Matrix 配列へのポインタ (NULLの場合は関数内部で動的確保) |
int harkio_TransferFunction_write | ( | harkio_TransferFunction * | tf, |
char * | path, | ||
char * | signature | ||
) |
harkio_TransferFunction 構造体の情報をファイルに書き込む
[in] | tf | 伝達関数構造体 harkio_TransferFunction。 |
[in] | path | 保存したいファイルへのパス |
[in] | signature | TransferFunction の シグネチャ。 NULL の場合はデフォルトの "transfer function" が保存される。 この値は whatisthis.txt に書き込まれる。 |
void harkio_XML_delete | ( | harkio_XML ** | xml | ) |
デストラクタ。harkio_XML のメモリを解放する。
[in] | xml | メモリを解放するオブジェクトへのポインタへのポインタ |
解放に成功すると xml には NULL が代入される。メンバのいくつかが NULL でもよい。
harkio_XML* harkio_XML_new | ( | void | ) |
コンストラクタ。新たな harkio_XML オブジェクトを生成する。
harkio_XML_delete でメモリ解放を行う必要がある。
harkio_XML* harkio_XML_newFromData | ( | harkio_Positions * | ps, |
harkio_Neighbors * | nbrs, | ||
harkio_Config * | cfg | ||
) |
コンストラクタ。harkio_XML のメンバへのポインタを受け取って、新たな harkio_XML オブジェクトを生成する。
[in] | ps | XML で表現する位置群を表す。 |
[in] | nbrs | ps の近接関係を表す |
[in] | cfg | XML の一般設定を表す。 |
harkio_XML_delete でメモリ解放を行う必要がある。メンバは NULL でもよい。
harkio_XML* harkio_XML_newFromXML | ( | char * | xmlpath, |
char * | dtdpath | ||
) |
コンストラクタ。ファイルを読み込んで、新たな harkio_XML オブジェクトを生成する。
[in] | xmlpath | 読み込む XML ファイルへのパス |
[in] | dtdpath | [未実装] 読み込む XML ファイルを検査するための dtd ファイルへのパス。 |
harkio_XML_delete でメモリ解放を行う必要がある。
harkio_XML* harkio_XML_newFromXMLbuffer | ( | char * | buffer, |
int | len, | ||
char * | dtdpath | ||
) |
コンストラクタ。XMLが格納された文字列へのポインタから、harkio_XML オブジェクトを生成する
[in] | buffer | XML が格納された文字列へのポインタ。 |
[in] | len | buffer の長さ。 |
[in] | dtdpath | [未実装] 読み込む XML ファイルを検査するための dtd ファイルへのパス。 |
harkio_XML_delete でメモリ解放を行う必要がある。メンバは NULL でもよい。
int harkio_XML_write | ( | harkio_XML * | xml, |
FILE * | fstream | ||
) |
harkio_XML をファイルに保存する。
[in] | xml | 保存される harkio_XML オブジェクト |
[in] | fstream | 保存したいファイルへのハンドル |
char* harkio_XML_writeBuffer | ( | harkio_XML * | xml | ) |
harkio_XML をバッファに保存する。
[in] | xml | 保存される harkio_XML オブジェクト |
harkio_XML の XML表現を、ファイルに書き出さずに文字列として渡す。
int harkio_XML_writeHead | ( | FILE * | outstream | ) |
harkio_Positions をXMLファイルに保存する。
[in] | fstream | 保存したいファイルへのハンドル |
逐次的に保存したい場合に使用。 harkio_XML_writeHead, harkio_XML_writePositions, harkio_XML_writeTail の順番で実行すれば、harkio_XML_writePosition で書くたびにその harkio_Positions のメモリを解放できる。
int harkio_XML_writePositions | ( | harkio_Positions * | poses, |
FILE * | outstream | ||
) |
harkio_Positions をXMLファイルに保存する。
[in] | poses | 保存される harkio_XML オブジェクト |
[in] | fstream | 保存したいファイルへのハンドル |
逐次的に保存したい場合に使用
int harkio_XML_writeTail | ( | FILE * | outstream | ) |