libharkio3
A File I/O and Data Manipulation Library for HARK
|
harkio_Positions の API 群。 複数の位置 (マイクアレイ、音源定位結果群など) を表現する。 内部に harkio_Position を持つ。 More...
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include "libharkio3.h"
#include <libxml/xmlreader.h>
Functions | |
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... | |
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 coordinate, float *coord, float tolerance) |
Getter。harkio_Positions が持つ harkio_Position のから、与えられた位置に近いものを返す。 More... | |
char * | harkio_Positions_getType (harkio_Positions *poses) |
Getter。harkio_Positions のタイプを返す。 More... | |
int | harkio_Positions_getSize (harkio_Positions *poses) |
Getter。harkio_Positions の harkio_Position の数を返す。 More... | |
int | harkio_Positions_getFrame (harkio_Positions *poses) |
Getter。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 coordinate, float *coord, float tolerance) |
harkio_Positions から、与えられた座標の harkio_Position を削除する More... | |
harkio_Positions * | harkio_Positions_copy (harkio_Positions *p1) |
harkio_Positions をコピーする More... | |
void | harkio_Positions_print (harkio_Positions *p) |
harkio_Positions をテキストで表示する More... | |
int | harkio_Positions_addstring (char **buffer, char *str, int bufsize) |
harkio_Positions_printBuffer のヘルパ関数。文字列を追加。 More... | |
char * | harkio_Positions_printBuffer (harkio_Positions *p) |
harkio_Positions の文字列表現を格納したバッファを返す。 More... | |
int | harkio_Positions_isEqual (harkio_Positions *a, harkio_Positions *b) |
2つの harkio_Positions が等しいか否かを判定する More... | |
harkio_Positions の API 群。 複数の位置 (マイクアレイ、音源定位結果群など) を表現する。 内部に harkio_Position を持つ。
int harkio_Positions_addstring | ( | char ** | buffer, |
char * | str, | ||
int | bufsize | ||
) |
harkio_Positions_printBuffer のヘルパ関数。文字列を追加。
[in] | buffer | 追記されるバッファ。メモリの確保は関数内でされるので不要。 |
[in] | str | 追記する文字列。 |
[in] | bufsize | buffer の最大サイズ。これを超えると追記されない。 |
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されるので注意。