libharkio3
A File I/O and Data Manipulation Library for HARK
 All Classes Files Functions Variables Enumerations Enumerator Macros Groups
Functions
libharkio3_transferfunction.c File Reference

harkio_TransferFunction の API 群。 内部に harkio_Config, harkio_Neighbors, harkio_Positions などを持ち、1つで伝達関数の読み込み・書き込みなどを受け持つ。 More...

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#include <errno.h>
#include "libharkio3.h"
#include <zip.h>
Include dependency graph for libharkio3_transferfunction.c:

Functions

char * readZippedText (struct zip *handle, char *path)
 内部用関数。 zip ファイルからテキストファイルを読み出す More...
 
harkio_XMLreadZippedXML (struct zip *handle, char *path)
 内部用関数。 zip ファイルからXMLを読み出す More...
 
int countTFs (struct zip *handle, char *mode, harkio_Positions *poses)
 内部用関数。 More...
 
harkio_TransferFunctionharkio_TransferFunction_new (void)
 コンストラクタ。空の伝達関数構造体 harkio_TransferFunctionを作成する。 More...
 
harkio_TransferFunctionharkio_TransferFunction_fromData (harkio_Positions *poses, harkio_Positions *mics, harkio_Config *cfg, harkio_Neighbors *nbrs)
 コンストラクタ。与えられた 音源位置群、マイク位置群、コンフィグ、隣接音源位置から構造体を生成する。 More...
 
harkio_TransferFunctionharkio_TransferFunction_fromFile (char *path, char *signature)
 コンストラクタ。与えられたファイルをロードし、構造体を構成する。 More...
 
void harkio_TransferFunction_delete (harkio_TransferFunction **tf)
 デストラクタ。メンバになっている構造体を含めて全てのメモリを開放する。 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...
 
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 *mat)
 harkio_TransferFunction の定位伝達関数を表す harkio_Matrix 配列に要素を追加する。 More...
 
int harkio_TransferFunction_appendSepTF (harkio_TransferFunction *tf, harkio_Matrix *mat)
 harkio_TransferFunction の分離伝達関数を表す harkio_Matrix 配列に要素を追加する。 More...
 
int harkio_TransferFunction_write (harkio_TransferFunction *tf, char *path, char *signature)
 harkio_TransferFunction 構造体の情報をファイルに書き込む 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...
 

Detailed Description

harkio_TransferFunction の API 群。 内部に harkio_Config, harkio_Neighbors, harkio_Positions などを持ち、1つで伝達関数の読み込み・書き込みなどを受け持つ。

Author
Takeshi Mizumoto
Version
0.1

Function Documentation

int countTFs ( struct zip *  handle,
char *  mode,
harkio_Positions poses 
)

内部用関数。

Parameters
[in]handlezip ファイルのハンドル
[in]mode伝達関数ファイルのうち matrix の数を数える対象。 "localization" あるいは "separation" のみ。
[in]poses伝達関数ファイルの poses へのポインタ (harkio_.
Returns
int 伝達関数ファイルが含む matrix ファイルの数。読み込みに失敗すれば -1.

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 でメモリ解放を行う。

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:

char* readZippedText ( struct zip *  handle,
char *  path 
)

内部用関数。 zip ファイルからテキストファイルを読み出す

Parameters
[in]handlezip ファイルへのハンドル
[in]path開きたい zip 内 テキストファイルのパス
Returns
char 型のポインタ。失敗すると NULL を返す。

Here is the caller graph for this function:

harkio_XML* readZippedXML ( struct zip *  handle,
char *  path 
)

内部用関数。 zip ファイルからXMLを読み出す

Parameters
[in]handle  zip ファイルへのハンドル
[in]path   開きたい zip 内 xml ファイルのパス
Returns
harkio_XML 型のポインタ。失敗すると NULL を返す。

Here is the call graph for this function:

Here is the caller graph for this function: