libharkio3
A File I/O and Data Manipulation Library for HARK
Macros | Functions
libharkio3_position.c File Reference

harkio_Position の API 群。 1つの対象 (マイク、音源など) の位置を表現する。 More...

#include <stdlib.h>
#include <string.h>
#include <math.h>
#include "libharkio3.h"
Include dependency graph for libharkio3_position.c:

Macros

#define two_pi   (2.0f * pi)
 

Functions

harkio_Positionharkio_Position_new (int id, enum Coordinate sys, float *coord, char *path)
 コンストラクタ。空の 与えられた座標の POS を返す。 More...
 
void harkio_Position_delete (harkio_Position **p)
 デストラクタ。メンバになっている構造体を含めて全てのメモリを開放する。 More...
 
float * harkio_Position_getPosition (harkio_Position *pos)
 Getter。harkio_Position の座標を返す。 More...
 
int harkio_Position_getID (harkio_Position *pos)
 Getter。harkio_Position の ID を返す。 More...
 
int harkio_Position_getSys (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_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...
 
void harkio_Position_print (harkio_Position *pos)
  harkio_Position をテキストで表示する More...
 
char * harkio_Position_printBuffer (harkio_Position *pos)
 
int harkio_Position_isEqual (harkio_Position *a, harkio_Position *b)
  2つの harkio_Position が等しいか否かを判定する More...
 
int harkio_Position_Convert (harkio_Position *pos, float *coord, enum Coordinate type)
  harkio_Positions の座標を指定した座標系で得る。 More...
 
harkio_Positionharkio_Position_copy (harkio_Position *p)
  harkio_Position をコピーする More...
 
float harkio_Position_convToRadian (float degree)
  内部用関数。 角度(degree)からラジアン(radian)に変換
 
float harkio_Position_convToDegree (float radian)
  内部用関数。 ラジアン(radian)から角度(degree)に変換
 

Detailed Description

harkio_Position の API 群。 1つの対象 (マイク、音源など) の位置を表現する。

Author
Takeshi Mizumoto
Version
0.1

Function Documentation

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 の座標系