#include <windows.h>
#include "pxtone.h"
#include "EXPORT.h"
#include "Result.h"
マクロ定義 | |
#define | ResultFromPxtoneApiBoolean(succeeded) succeeded ? HELPER_SUCCESS : HELPER_PXTONE_ERROR |
関数 | |
EXPORT Result __stdcall | pxeasy_Ready (HWND window_handle, long channel_num, long sample_per_second, long bit_per_sample, float buffer_second, BOOL use_directsound, PXTONEPLAY_CALLBACK play_callback) |
pxtone 生成 | |
EXPORT Result __stdcall | pxeasy_Reset (HWND window_handle, long channel_num, long sample_per_second, long bit_per_sample, float buffer_second, BOOL use_directsound, PXTONEPLAY_CALLBACK play_callback) |
pxtone 再設定 | |
EXPORT void *__stdcall | pxeasy_GetDirectSound (void) |
pxtone の DirectSound を取得 | |
EXPORT const char *__stdcall | pxeasy_GetLastError (void) |
ラストエラー文字列取得 | |
EXPORT void __stdcall | pxeasy_GetQuality (long *channel_num_destination, long *sample_per_second_destination, long *bit_per_sample_destination, long *sample_per_buffer_destination) |
pxtone の音質を取得 | |
EXPORT Result __stdcall | pxeasy_Release (void) |
pxtone 開放 | |
EXPORT Result __stdcall | pxeasy_Tune_Load (HMODULE module_handle, const char *resource_typename, const char *source_name) |
ファイル・リソースから曲ファイル読み込み | |
EXPORT Result __stdcall | pxeasy_Tune_Read (void *memory_block, long size) |
メモリから曲読み込み | |
EXPORT Result __stdcall | pxeasy_Tune_Release (void) |
曲開放 | |
EXPORT Result __stdcall | pxeasy_Tune_Start (long start_sample, long fadein_milisecond) |
曲再生 | |
EXPORT long __stdcall | pxeasy_Tune_Fadeout (long fadeout_milisecond) |
フェードアウトスイッチを入れて現在再生サンプルを取得 | |
EXPORT void __stdcall | pxeasy_Tune_SetVolume (float volume) |
曲のボリュームを設定 | |
EXPORT long __stdcall | pxeasy_Tune_Stop (void) |
曲を停止して現在再生サンプルを取得 | |
EXPORT BOOL __stdcall | pxeasy_Tune_IsStreaming (void) |
再生中かどうか | |
EXPORT void __stdcall | pxeasy_Tune_SetLoop (BOOL enable_loop) |
ループ再生の切り替え | |
EXPORT void __stdcall | pxeasy_Tune_GetInformation (long *beat_num_destination, float *beat_tempo_destination, long *beat_clock_destination, long *meas_num_destination) |
曲情報を取得 | |
EXPORT long __stdcall | pxeasy_Tune_GetRepeatMeas (void) |
リピート小節を取得 | |
EXPORT long __stdcall | pxeasy_Tune_GetPlayMeas (void) |
有効演奏小節を取得 | |
EXPORT const char *__stdcall | pxeasy_Tune_GetName (void) |
曲名を取得 | |
EXPORT const char *__stdcall | pxeasy_Tune_GetComment (void) |
曲のコメントを取得 | |
EXPORT BOOL __stdcall | pxeasy_Tune_Vomit (void *write_point, long sample_num) |
指定のアドレスに再生バッファを書き込み | |
EXPORT void __stdcall | pxeasy_Noise_Release (PXTONENOISEBUFFER *ptnoise_buffer) |
ピストンノイズ開放 | |
EXPORT PXTONENOISEBUFFER *__stdcall | pxeasy_Noise_Create (const char *name, const char *type, long channel_num, long sample_per_second, long bit_per_sample) |
ピストンノイズ生成 |
#define ResultFromPxtoneApiBoolean | ( | succeeded | ) | succeeded ? HELPER_SUCCESS : HELPER_PXTONE_ERROR |
EXPORT void* __stdcall pxeasy_GetDirectSound | ( | void | ) |
pxtone の DirectSound を取得
pxtone の DirectSound を取得します。 効果音処理などに pxtone の DirectSound を利用してメモリの無駄を省くことが可能です。 ただし、DirectSound の開放処理は pxtone.dll が行うので開放してはいけません。
EXPORT const char* __stdcall pxeasy_GetLastError | ( | void | ) |
ラストエラー文字列取得
ラストエラー文字列を取得します。
処理結果を返す API が FALSE を返した時、 一番最近のエラー情報の文字列が設定されています。
EXPORT void __stdcall pxeasy_GetQuality | ( | long * | channel_num_destination, | |
long * | sample_per_second_destination, | |||
long * | bit_per_sample_destination, | |||
long * | sample_per_buffer_destination | |||
) |
pxtone の音質を取得
pxtone の音質を取得します。
channel_num_destination | チャンネル数情報格納先 | |
sample_per_second_destination | 秒間サンプル数情報格納先 | |
bit_per_sample_destination | サンプル量子化数情報格納先 | |
sample_per_buffer_destination | バッファリングごとのサンプル数情報格納先 |
EXPORT PXTONENOISEBUFFER* __stdcall pxeasy_Noise_Create | ( | const char * | name, | |
const char * | type, | |||
long | channel_num, | |||
long | sample_per_second, | |||
long | bit_per_sample | |||
) |
ピストンノイズ生成
ピストンノイズを生成します。 ファイルが見つからないなどのエラー発生時は NULL を返します。 また、ピストンコラージュ自体を生成していない場合はバッファは生成されても、 音声は正常にビルドされていません。
name | リソース or ファイル名 | |
type | リソースタイプ名 | |
channel_num | チャンネル数 | |
sample_per_second | 秒間サンプリング数 | |
bit_per_sample | サンプルの量子化数 |
EXPORT void __stdcall pxeasy_Noise_Release | ( | PXTONENOISEBUFFER * | ptnoise_buffer | ) |
ピストンノイズ開放
ピストンノイズを開放します。
ptnoise_buffer | ピストンノイズバッファ |
EXPORT Result __stdcall pxeasy_Ready | ( | HWND | window_handle, | |
long | channel_num, | |||
long | sample_per_second, | |||
long | bit_per_sample, | |||
float | buffer_second, | |||
BOOL | use_directsound, | |||
PXTONEPLAY_CALLBACK | play_callback | |||
) |
pxtone 生成
pxtone を生成します。
window_handle | ウィンドウハンドル | |
channel_num | チャンネル数 (stereo: 1, mono: 2) | |
sample_per_second | 秒間サンプル数 (Hz : 44100, 22050, 11025) | |
bit_per_sample | サンプルの量子化数 (bit : 8, 16) | |
buffer_second | バッファ時間 (second : 0.1 推奨) | |
use_directsound | DirectSound を使うかどうか | |
play_callback | サンプリングごとのコールバック関数 |
EXPORT Result __stdcall pxeasy_Release | ( | void | ) |
pxtone 開放
pxtone を開放します。
EXPORT Result __stdcall pxeasy_Reset | ( | HWND | window_handle, | |
long | channel_num, | |||
long | sample_per_second, | |||
long | bit_per_sample, | |||
float | buffer_second, | |||
BOOL | use_directsound, | |||
PXTONEPLAY_CALLBACK | play_callback | |||
) |
pxtone 再設定
pxtone を再設定します。
window_handle | ウィンドウハンドル | |
channel_num | チャンネル数 (stereo: 1, mono: 2) | |
sample_per_second | 秒間サンプル数 (Hz : 44100, 22050, 11025) | |
bit_per_sample | サンプルの量子化数 (bit : 8, 16) | |
buffer_second | バッファ時間 (second : 0.1 推奨) | |
use_directsound | DirectSound を使うかどうか | |
play_callback | サンプリングごとのコールバック関数 |
EXPORT long __stdcall pxeasy_Tune_Fadeout | ( | long | fadeout_milisecond | ) |
フェードアウトスイッチを入れて現在再生サンプルを取得
フェードアウトスイッチを入れて再生サンプルを取得します。 戻り値の再生サンプルは次回の再生再開 (一時停止実装) などに使えます。
fadeout_milisecond | フェードアウトする時間 (ミリ秒) |
EXPORT const char* __stdcall pxeasy_Tune_GetComment | ( | void | ) |
曲のコメントを取得
現在読み込まれている曲のコメントを取得します。 コメントが何もない場合は NULL を返します。
EXPORT void __stdcall pxeasy_Tune_GetInformation | ( | long * | beat_num_destination, | |
float * | beat_tempo_destination, | |||
long * | beat_clock_destination, | |||
long * | meas_num_destination | |||
) |
曲情報を取得
現在読み込まれている曲情報を取得します。
beat_num_destination | 拍子数情報格納先 | |
beat_tempo_destination | 拍子のテンポ情報格納先 | |
beat_clock_destination | 拍子の時間情報格納先 | |
meas_num_destination | 小節数情報格納先 |
EXPORT const char* __stdcall pxeasy_Tune_GetName | ( | void | ) |
曲名を取得
現在読み込まれている曲の曲名を取得します。
EXPORT long __stdcall pxeasy_Tune_GetPlayMeas | ( | void | ) |
有効演奏小節を取得
現在読み込まれている曲の有効演奏小節を取得します。 有効演奏小節は LAST イベントが設定されている小節です。 LAST が存在しない場合は最後の小節を返します。
EXPORT long __stdcall pxeasy_Tune_GetRepeatMeas | ( | void | ) |
リピート小節を取得
現在読み込まれている曲のリピート小節を取得します。 リピート小節は REPEAT イベントが設定されている小節です。 ループ再生は REPEAT と LAST の間を再生し続けます。 REPEAT が存在しない場合は最初の小節 1 を返します。
EXPORT BOOL __stdcall pxeasy_Tune_IsStreaming | ( | void | ) |
再生中かどうか
現在曲が再生中かどうかを取得します。
EXPORT Result __stdcall pxeasy_Tune_Load | ( | HMODULE | module_handle, | |
const char * | resource_typename, | |||
const char * | source_name | |||
) |
ファイル・リソースから曲ファイル読み込み
ファイル・リソースから曲ファイルを読み込みます。 ファイルから読み込む場合はファイルパス以外は NULL にします。 モジュールハンドルは、WinMain, DllMain 関数などの HINSTANCE が相当します。 NULL でも問題ないかもしれませんが、 中継 dll をはさんでいるので、ちゃんと渡したほうが無難だと思います。
module_handle | リソースから読み込む場合はモジュールハンドル | |
resource_typename | リソースから読み込む場合はリソースのタイプ名 | |
source_name | リソースならリソース名・ファイルならファイル名 |
EXPORT Result __stdcall pxeasy_Tune_Read | ( | void * | memory_block, | |
long | size | |||
) |
メモリから曲読み込み
メモリから曲を読み込みます。 事前にメモリブロックに読み込まれた ptcop, pttune ファイルなどをロードします。 メモリに展開することさえできればファイル・リソース以外の特殊な形式もこの関数で読み込めます。
memory_block | 読み込むメモリブロック | |
size | メモリブロックサイズ |
EXPORT Result __stdcall pxeasy_Tune_Release | ( | void | ) |
曲開放
読み込まれている曲を開放します。
EXPORT void __stdcall pxeasy_Tune_SetLoop | ( | BOOL | enable_loop | ) |
ループ再生の切り替え
ループ再生を設定します。 デフォルトでは有効になっています。
enable_loop | ループ再生を行うかどうか |
EXPORT void __stdcall pxeasy_Tune_SetVolume | ( | float | volume | ) |
曲のボリュームを設定
曲の音量を設定します。
volume | 音量 (0.0 - 1.0) |
EXPORT Result __stdcall pxeasy_Tune_Start | ( | long | start_sample, | |
long | fadein_milisecond | |||
) |
曲再生
読み込まれている曲を再生します。
start_sample | 再生を開始する再生サンプル | |
fadein_milisecond | フェードインする時間 (ミリ秒) |
EXPORT long __stdcall pxeasy_Tune_Stop | ( | void | ) |
曲を停止して現在再生サンプルを取得
曲を停止して現在再生サンプルを取得します。 フェードアウト時間はありません。
EXPORT BOOL __stdcall pxeasy_Tune_Vomit | ( | void * | write_point, | |
long | sample_num | |||
) |
指定のアドレスに再生バッファを書き込み
指定のポインタに再生バッファを書き込みます。 自前のストリーミング機能を作る場合や、 ファイルなどの別形式への変換などに利用されます。 詳細は pxtone.h へ
write_point | 書き込みポイント | |
sample_num | 書き込むサンプル数 |