mruby-mix
全て ファイル 関数 型定義 列挙型 列挙値 マクロ定義 ページ
mix.h ファイル
#include <mruby.h>

[ソースコード]

マクロ定義

#define mix_class_get(mrb, ...)   mix_class_dig(mrb, sizeof((const char*[]){ __VA_ARGS__ }) / sizeof(const char*), (const char*[]){ __VA_ARGS__ })
 
#define mix_module_get(mrb, ...)   mix_module_dig(mrb, sizeof((const char*[]){ __VA_ARGS__ }) / sizeof(const char*), (const char*[]){ __VA_ARGS__ })
 
#define mix_plugin_create(mrb, slug)   mix_plugin_get(mrb, slug)
 

型定義

typedef void(* mix_remain_handler) (mrb_state *mrb)
 
typedef void(* mix_reserve_handler) (mrb_state *mrb, mrb_float delay)
 
typedef void(* mix_log_handler) (const char *msg)
 

列挙型

enum  mix_event_env_t { MIX_EVENT_ENV_RECEIVER = 0, MIX_EVENT_ENV_NAME = 1 }
 

関数

void MRB_API mix_run (mrb_state *mrb)
 
void MRB_API mix_register_remain_handler (mrb_state *mrb, mix_remain_handler handler)
 
void MRB_API mix_register_reserve_handler (mrb_state *mrb, mix_reserve_handler handler)
 
void MRB_API mix_register_log_handler (mrb_state *mrb, mix_log_handler handler)
 
int MRB_API mix_require (mrb_state *mrb, const char *path)
 
MRB_API struct RClass * mix_class_dig (mrb_state *mrb, size_t count, const char **names)
 
MRB_API struct RClass * mix_module_dig (mrb_state *mrb, size_t count, const char **names)
 
mrb_value MRB_API mix_gui_event_new (mrb_state *mrb, const char *event, mrb_value widget, mrb_value messages, mrb_value world)
 
MRB_API mrb_value mix_plugin_get (mrb_state *mrb, const char *slug)
 
MRB_API mrb_value mix_plugin_call_arg0 (mrb_state *mrb, const char *event_name)
 
MRB_API mrb_value mix_plugin_call_arg1 (mrb_state *mrb, const char *event_name, mrb_value arg)
 
MRB_API mrb_value mix_plugin_call_argv (mrb_state *mrb, const char *event_name, mrb_int argc, const mrb_value *argv)
 
MRB_API mrb_value mix_plugin_filtering_arg1 (mrb_state *mrb, const char *event_name, mrb_value arg)
 
MRB_API mrb_value mix_plugin_filtering_argv (mrb_state *mrb, const char *event_name, mrb_int argc, const mrb_value *argv)
 
MRB_API mrb_value mix_plugin_filtering_and_nth (mrb_state *mrb, const char *event_name, mrb_int argc, const mrb_value *argv, mrb_int nth_result)
 
MRB_API mrb_value mix_plugin_event_env (mrb_state *mrb, mix_event_env_t item)
 
MRB_API mrb_value mix_plugin_event_get_receiver_from_env (mrb_state *mrb)
 
MRB_API mrb_value mix_plugin_event_get_name_from_env (mrb_state *mrb)
 
MRB_API mrb_value mix_plugin_add_event_listener (mrb_state *mrb, mrb_value plugin, const char *event_name, mrb_func_t callback)
 
MRB_API mrb_value mix_plugin_add_event_listener_proc (mrb_state *mrb, mrb_value plugin, const char *event_name, mrb_value proc)
 
MRB_API mrb_value mix_plugin_add_event_filter (mrb_state *mrb, mrb_value plugin, const char *event_name, mrb_func_t callback)
 
MRB_API mrb_value mix_plugin_add_event_filter_proc (mrb_state *mrb, mrb_value plugin, const char *event_name, mrb_value proc)
 
MRB_API mrb_value mix_spell (mrb_state *mrb, const char *spell_name, mrb_int argc, const mrb_value *argv)
 
MRB_API mrb_bool mix_spell_defined (mrb_state *mrb, const char *spell_name, mrb_int argc, const mrb_value *argv)
 
MRB_API mrb_value mix_define_spell (mrb_state *mrb, const char *spell_name, mrb_int slug_count, const mrb_sym *slugs, mrb_value condition, mrb_value body)
 
MRB_API mrb_value mix_miquire_load_all (mrb_state *mrb)
 
MRB_API mrb_value mix_miquire_load_all_failfast (mrb_state *mrb)
 
MRB_API void mix_miquire_append_loadpath (mrb_state *mrb, mrb_value loadpath)
 
MRB_API void mix_miquire_append_loadpath_cstr (mrb_state *mrb, const char *loadpath)
 

マクロ定義詳解

◆ mix_class_get

#define mix_class_get (   mrb,
  ... 
)    mix_class_dig(mrb, sizeof((const char*[]){ __VA_ARGS__ }) / sizeof(const char*), (const char*[]){ __VA_ARGS__ })

◆ mix_module_get

#define mix_module_get (   mrb,
  ... 
)    mix_module_dig(mrb, sizeof((const char*[]){ __VA_ARGS__ }) / sizeof(const char*), (const char*[]){ __VA_ARGS__ })

◆ mix_plugin_create

#define mix_plugin_create (   mrb,
  slug 
)    mix_plugin_get(mrb, slug)

mix_plugin_get() のエイリアス

型定義詳解

◆ mix_log_handler

typedef void(* mix_log_handler) (const char *msg)

◆ mix_remain_handler

typedef void(* mix_remain_handler) (mrb_state *mrb)

mix_register_remain_handler() で使えるコールバック関数の仕様。

◆ mix_reserve_handler

typedef void(* mix_reserve_handler) (mrb_state *mrb, mrb_float delay)

mix_register_reserve_handler() で使えるコールバック関数の仕様。

引数
delayイベントが何秒後に予約されたかの値。コールバックされた時点からこの時間が経過したら mix_run() が呼ばれることを期待している。

列挙型詳解

◆ mix_event_env_t

mix_plugin_event_env() で取得可能な情報の識別子。

列挙値
MIX_EVENT_ENV_RECEIVER 

実行中のイベントリスナーが登録されているPlugin

MIX_EVENT_ENV_NAME 

実行中のイベントの名前 (Symbol)

20  {
26  MIX_EVENT_ENV_LENGTH

関数詳解

◆ mix_class_dig()

MRB_API struct RClass* mix_class_dig ( mrb_state *  mrb,
size_t  count,
const char **  names 
)

ネストした空間に対するmrb_class_getの簡易版。

◆ mix_define_spell()

MRB_API mrb_value mix_define_spell ( mrb_state *  mrb,
const char *  spell_name,
mrb_int  slug_count,
const mrb_sym *  slugs,
mrb_value  condition,
mrb_value  body 
)

Spellを定義する。

引数
spell_nameSpellの名前
slug_count引数となるModelのslugの数
slugs引数となるModelのslugの配列
condition前提条件のProc。不要な場合は mrb_nil_value() で省略可能。
body呼び出された際に実行するProc。
参照
https://reference.mikutter.hachune.net/basis/2017/12/11/spell.html
戻り値
定義に成功した場合はtrue

◆ mix_gui_event_new()

mrb_value MRB_API mix_gui_event_new ( mrb_state *  mrb,
const char *  event,
mrb_value  widget,
mrb_value  messages,
mrb_value  world 
)

commandのProc呼出引数として使うPlugin::GUI::Eventを生成する。 この関数を使うにはmruby-mix-polyfill-gtkが必要。

引数
eventコマンドイベントの発生元。mikutterのメニューコマンドおよびショートカットコマンドでは contextmenu が使用される。
widgetコマンドイベントが発生したWidget。例えば、Plugin::GUI::TimelineやPlugin::GUI::Postboxのインスタンスを渡す。
messages関連するMessageを格納したArray。Messageとしての振る舞いを持ったDiva::Modelとして渡す必要がある。
worldこのイベントを処理する必要のあるWorld。明示的な指定が必要なければ、単にカレントのWorldを渡す。
戻り値
Plugin::GUI::Event

◆ mix_miquire_append_loadpath()

MRB_API void mix_miquire_append_loadpath ( mrb_state *  mrb,
mrb_value  loadpath 
)

Mix::Miquire.load_path の末尾にエントリを追加する。

引数
loadpath追加するエントリ

◆ mix_miquire_append_loadpath_cstr()

MRB_API void mix_miquire_append_loadpath_cstr ( mrb_state *  mrb,
const char *  loadpath 
)

Mix::Miquire.load_path の末尾に文字列のエントリを追加する。 この関数を使ってファイルシステム上のプラグインを読み込むためには、mruby-mix-miquire-fsが必要。

引数
loadpath追加するエントリ

◆ mix_miquire_load_all()

MRB_API mrb_value mix_miquire_load_all ( mrb_state *  mrb)

Mix::Miquire.load_all を呼び出す。

戻り値
読み込んだプラグインのslugの配列と読み込みに失敗したプラグインのslugの配列。 例: [[:foo, :bar, ...], [:baz, ...]]

◆ mix_miquire_load_all_failfast()

MRB_API mrb_value mix_miquire_load_all_failfast ( mrb_state *  mrb)

Mix::Miquire.load_all を呼び出す。ただし、1つでも読み込みに失敗したら例外をスローする。

戻り値
mix_miquire_load_all() と同じ。ただし、読み込みに失敗した側の配列は常に空となる。

◆ mix_module_dig()

MRB_API struct RClass* mix_module_dig ( mrb_state *  mrb,
size_t  count,
const char **  names 
)

ネストした空間に対するmrb_module_getの簡易版。

◆ mix_plugin_add_event_filter()

MRB_API mrb_value mix_plugin_add_event_filter ( mrb_state *  mrb,
mrb_value  plugin,
const char *  event_name,
mrb_func_t  callback 
)

Pluginにネイティブのイベントフィルタを登録する。

引数
pluginPlugin
event_nameイベント名
callbackコールバック
戻り値
Pluggaloid::Filter

◆ mix_plugin_add_event_filter_proc()

MRB_API mrb_value mix_plugin_add_event_filter_proc ( mrb_state *  mrb,
mrb_value  plugin,
const char *  event_name,
mrb_value  proc 
)

Pluginにイベントフィルタを登録する。

引数
pluginPlugin
event_nameイベント名
procコールバック (Proc)
戻り値
Pluggaloid::Filter

◆ mix_plugin_add_event_listener()

MRB_API mrb_value mix_plugin_add_event_listener ( mrb_state *  mrb,
mrb_value  plugin,
const char *  event_name,
mrb_func_t  callback 
)

Pluginにネイティブのイベントリスナーを登録する。

引数
pluginPlugin
event_nameイベント名
callbackコールバック
戻り値
Pluggaloid::Listener

◆ mix_plugin_add_event_listener_proc()

MRB_API mrb_value mix_plugin_add_event_listener_proc ( mrb_state *  mrb,
mrb_value  plugin,
const char *  event_name,
mrb_value  proc 
)

Pluginにイベントリスナーを登録する。

引数
pluginPlugin
event_nameイベント名
procコールバック (Proc)
戻り値
Pluggaloid::Listener

◆ mix_plugin_call_arg0()

MRB_API mrb_value mix_plugin_call_arg0 ( mrb_state *  mrb,
const char *  event_name 
)

引数なしでイベントを発生させる。

引数
event_nameイベント名
戻り値
Delayer

◆ mix_plugin_call_arg1()

MRB_API mrb_value mix_plugin_call_arg1 ( mrb_state *  mrb,
const char *  event_name,
mrb_value  arg 
)

1つの引数を持ったイベントを発生させる。

引数
event_nameイベント名
arg最初の引数
戻り値
Delayer

◆ mix_plugin_call_argv()

MRB_API mrb_value mix_plugin_call_argv ( mrb_state *  mrb,
const char *  event_name,
mrb_int  argc,
const mrb_value *  argv 
)

任意数の引数を持ったイベントを発生させる。

引数
event_nameイベント名
argc引数の数
argv引数の配列
戻り値
Delayer

◆ mix_plugin_event_env()

MRB_API mrb_value mix_plugin_event_env ( mrb_state *  mrb,
mix_event_env_t  item 
)

現在実行中のイベントに関する変数(イベント名など)を取得する。 イベントリスナー関数の外で呼び出してはいけない。

引数
item取得する情報

◆ mix_plugin_event_get_name_from_env()

MRB_API mrb_value mix_plugin_event_get_name_from_env ( mrb_state *  mrb)

現在実行中のイベントの名前を取得する。 イベントリスナー関数の外で呼び出してはいけない。

戻り値
Symbol
非推奨:
mix_plugin_event_env() を使うこと。

◆ mix_plugin_event_get_receiver_from_env()

MRB_API mrb_value mix_plugin_event_get_receiver_from_env ( mrb_state *  mrb)

現在実行中のイベントリスナーが登録されているPluginを取得する。 イベントリスナー関数の外で呼び出してはいけない。

戻り値
Plugin
非推奨:
mix_plugin_event_env() を使うこと。

◆ mix_plugin_filtering_and_nth()

MRB_API mrb_value mix_plugin_filtering_and_nth ( mrb_state *  mrb,
const char *  event_name,
mrb_int  argc,
const mrb_value *  argv,
mrb_int  nth_result 
)

任意数の引数をフィルタリングし、結果の nth_result 番目を取り出す。

引数
event_nameイベント名
argc引数の数
argv引数の配列
nth_resultフィルタ結果から取り出す要素の序数
戻り値
フィルタされた引数の nth_result 番目の値

◆ mix_plugin_filtering_arg1()

MRB_API mrb_value mix_plugin_filtering_arg1 ( mrb_state *  mrb,
const char *  event_name,
mrb_value  arg 
)

1つの引数をフィルタリングした結果を返す。

引数
event_nameイベント名
arg最初の引数
戻り値
フィルタされた引数

◆ mix_plugin_filtering_argv()

MRB_API mrb_value mix_plugin_filtering_argv ( mrb_state *  mrb,
const char *  event_name,
mrb_int  argc,
const mrb_value *  argv 
)

任意数の引数をフィルタリングした結果を返す。

引数
event_nameイベント名
argc引数の数
argv引数の配列
戻り値
フィルタされた引数の配列

◆ mix_plugin_get()

MRB_API mrb_value mix_plugin_get ( mrb_state *  mrb,
const char *  slug 
)

Pluginのインスタンスを取得、または新規作成します。

引数
slugプラグインのslug

◆ mix_register_log_handler()

void MRB_API mix_register_log_handler ( mrb_state *  mrb,
mix_log_handler  handler 
)

utils.rb経由で出力されたログを受け取るコールバックを登録する。

◆ mix_register_remain_handler()

void MRB_API mix_register_remain_handler ( mrb_state *  mrb,
mix_remain_handler  handler 
)

イベントがキューされた際に呼び出されるコールバックを登録する。 ホスト側で持っているイベントループにキューするために使える。

◆ mix_register_reserve_handler()

void MRB_API mix_register_reserve_handler ( mrb_state *  mrb,
mix_reserve_handler  handler 
)

ある時間が経過した後に実行されることを期待したイベントがキューされた際に呼び出されるコールバックを登録する。 mix_register_remain_handler() と同様の目的で使える。

◆ mix_require()

int MRB_API mix_require ( mrb_state *  mrb,
const char *  path 
)

Kernel.requireを呼び出す。 この関数を使う場合はmruby-requireを依存関係に加えること。

引数
path読み込むファイルのフルパス

◆ mix_run()

void MRB_API mix_run ( mrb_state *  mrb)

キューされているイベントを全て処理する。

◆ mix_spell()

MRB_API mrb_value mix_spell ( mrb_state *  mrb,
const char *  spell_name,
mrb_int  argc,
const mrb_value *  argv 
)

Spellを呼び出す。

引数
spell_nameSpellの名前
argc引数の数
argv引数の配列
戻り値
Delayer::Deferred

◆ mix_spell_defined()

MRB_API mrb_bool mix_spell_defined ( mrb_state *  mrb,
const char *  spell_name,
mrb_int  argc,
const mrb_value *  argv 
)

指定した引数に応答できるSpellが定義されているかを確認する。

引数
spell_nameSpellの名前
argc引数の数
argv引数の配列
戻り値
呼び出し可能であればTRUE
mix_event_env_t
mix_event_env_t
Definition: mix.h:20
MIX_EVENT_ENV_RECEIVER
@ MIX_EVENT_ENV_RECEIVER
Definition: mix.h:22
MIX_EVENT_ENV_NAME
@ MIX_EVENT_ENV_NAME
Definition: mix.h:24