#[repr(C)]pub struct EDIT_HANDLE {Show 26 fields
pub call_edit_section: unsafe extern "C" fn(func_proc_edit: unsafe extern "C" fn(edit: *mut EDIT_SECTION)) -> bool,
pub call_edit_section_param: unsafe extern "C" fn(param: *mut c_void, func_proc_edit: unsafe extern "C" fn(param: *mut c_void, edit: *mut EDIT_SECTION)) -> bool,
pub get_edit_info: unsafe extern "C" fn(info: *mut EDIT_INFO, info_size: i32),
pub restart_host_app: unsafe extern "C" fn(),
pub enum_effect_name: unsafe extern "C" fn(param: *mut c_void, func_proc_enum_effect: unsafe extern "C" fn(param: *mut c_void, name: LPCWSTR, type: i32, flag: i32)),
pub enum_module_info: unsafe extern "C" fn(param: *mut c_void, func_proc_enum_module: unsafe extern "C" fn(param: *mut c_void, info: *mut MODULE_INFO)),
pub get_host_app_window: unsafe extern "C" fn() -> HWND,
pub get_edit_state: unsafe extern "C" fn() -> i32,
pub call_read_section: unsafe extern "C" fn(func_proc_read_section: unsafe extern "C" fn(edit: *mut EDIT_SECTION)) -> bool,
pub call_read_section_param: unsafe extern "C" fn(param: *mut c_void, func_proc_read_section: unsafe extern "C" fn(param: *mut c_void, edit: *mut EDIT_SECTION)) -> bool,
pub enum_effect_item: unsafe extern "C" fn(effect: LPCWSTR, param: *mut c_void, func_proc_enum_effect_item: unsafe extern "C" fn(param: *mut c_void, name: LPCWSTR, type: i32)) -> bool,
pub rendering_scene_video: unsafe extern "C" fn(frame: i32, param: *mut c_void, func_proc_rendering_video: unsafe extern "C" fn(param: *mut c_void, frame: i32, buffer: *const c_void, width: i32, height: i32, pitch: i32)) -> bool,
pub rendering_scene_audio: unsafe extern "C" fn(frame: i32, param: *mut c_void, func_proc_rendering_audio: unsafe extern "C" fn(param: *mut c_void, frame: i32, buffer0: *const f32, buffer1: *const f32, sample_num: i32)) -> bool,
pub wait_rendering_task: unsafe extern "C" fn(),
pub enum_font_name: unsafe extern "C" fn(param: *mut c_void, func_proc_enum_font: unsafe extern "C" fn(param: *mut c_void, name: LPCWSTR)),
pub enum_palette_name: unsafe extern "C" fn(param: *mut c_void, func_proc_enum_palette: unsafe extern "C" fn(param: *mut c_void, name: LPCWSTR)),
pub rendering_object_video: unsafe extern "C" fn(object: OBJECT_HANDLE, frame: i32, apply_effect: bool, param: *mut c_void, func_proc_rendering_video: unsafe extern "C" fn(param: *mut c_void, frame: i32, buffer: *const c_void, width: i32, height: i32, pitch: i32)) -> bool,
pub rendering_object_audio: unsafe extern "C" fn(object: OBJECT_HANDLE, frame: i32, apply_effect: bool, param: *mut c_void, func_proc_rendering_audio: unsafe extern "C" fn(param: *mut c_void, frame: i32, buffer0: *const f32, buffer1: *const f32, sample_num: i32)) -> bool,
pub get_effect_item_group_names: unsafe extern "C" fn(effect: LPCWSTR, item: LPCWSTR, item_names: *mut LPCWSTR, item_num: i32, item_index: *mut i32) -> i32,
pub enum_scene_name: unsafe extern "C" fn(param: *mut c_void, func_proc_enum_scene: unsafe extern "C" fn(param: *mut c_void, name: LPCWSTR, scene_id: i32)),
pub select_scene: unsafe extern "C" fn(scene_id: i32) -> bool,
pub create_scene: unsafe extern "C" fn(name: LPCWSTR, label: LPCWSTR, width: i32, height: i32, rate: i32, scale: i32, sample_rate: i32, background: EDIT_INFO_COLOR) -> bool,
pub create_project: unsafe extern "C" fn(width: i32, height: i32, rate: i32, scale: i32, sample_rate: i32, background: EDIT_INFO_COLOR, show_confirm: bool) -> bool,
pub open_project_file: unsafe extern "C" fn(file: LPCWSTR, show_confirm: bool) -> bool,
pub save_project_file: unsafe extern "C" fn(file: LPCWSTR) -> bool,
pub output_file: unsafe extern "C" fn(file: LPCWSTR, output_plugin: LPCWSTR, param: *mut c_void, func_project_config: Option<unsafe extern "C" fn(param: *mut c_void, project: *mut PROJECT_FILE)>) -> bool,
}Expand description
編集ハンドル構造体 get_host_app_window()以外はRegisterPlugin処理内から利用出来ません
Fields§
§call_edit_section: unsafe extern "C" fn(func_proc_edit: unsafe extern "C" fn(edit: *mut EDIT_SECTION)) -> boolプロジェクトデータの編集をする為のコールバック関数(func_proc_edit)を呼び出します 編集情報を排他制御する為に更新ロック状態のコールバック関数内で編集処理をする形になります コールバック関数内で編集したオブジェクトは纏めてUndoに登録されます コールバック関数はメインスレッドから呼ばれます func_proc_edit : 編集処理のコールバック関数 戻り値 : trueなら成功 編集が出来ない場合(出力中等)に失敗します
call_edit_section_param: unsafe extern "C" fn(param: *mut c_void, func_proc_edit: unsafe extern "C" fn(param: *mut c_void, edit: *mut EDIT_SECTION)) -> boolcall_edit_section()に引数paramを渡せるようにした関数です param : 任意のユーザーデータのポインタ
get_edit_info: unsafe extern "C" fn(info: *mut EDIT_INFO, info_size: i32)編集情報を取得します 編集情報を排他制御する為に参照ロックします。※同一スレッドで既にロック状態の場合はそのまま取得します。 info : 編集情報の格納先へのポインタ info_size : 編集情報の格納先のサイズ ※EDIT_INFOと異なる場合はサイズ分のみ取得されます
restart_host_app: unsafe extern "C" fn()ホストアプリケーションを再起動します
enum_effect_name: unsafe extern "C" fn(param: *mut c_void, func_proc_enum_effect: unsafe extern "C" fn(param: *mut c_void, name: LPCWSTR, type: i32, flag: i32))エフェクト名の一覧をコールバック関数(func_proc_enum_effect)で取得します param : 任意のユーザーデータのポインタ func_proc_enum_effect : エフェクト名の取得処理のコールバック関数
enum_module_info: unsafe extern "C" fn(param: *mut c_void, func_proc_enum_module: unsafe extern "C" fn(param: *mut c_void, info: *mut MODULE_INFO))モジュール情報の一覧をコールバック関数(func_proc_enum_module)で取得します param : 任意のユーザーデータのポインタ func_proc_enum_module : モジュール情報の取得処理のコールバック関数
get_host_app_window: unsafe extern "C" fn() -> HWNDホストアプリケーションのメインウィンドウのハンドルを取得します
get_edit_state: unsafe extern "C" fn() -> i32編集状態を取得します
call_read_section: unsafe extern "C" fn(func_proc_read_section: unsafe extern "C" fn(edit: *mut EDIT_SECTION)) -> boolプロジェクトデータを参照する為のコールバック関数(func_proc_read_section)を呼び出します 参照中にデータが更新されないように参照ロック状態のコールバック関数内で処理をする形になります EDIT_SECTIONの更新系の関数等は利用出来ません ※EDIT_SECTIONの各項目に記載しています コールバック関数は呼び出し元と同じスレッドで呼ばれます func_proc_read_section : コールバック関数 戻り値 : trueなら成功 参照が出来ない場合(出力中等)に失敗します
call_read_section_param: unsafe extern "C" fn(param: *mut c_void, func_proc_read_section: unsafe extern "C" fn(param: *mut c_void, edit: *mut EDIT_SECTION)) -> boolcall_read_section()に引数paramを渡せるようにした関数です param : 任意のユーザーデータのポインタ
enum_effect_item: unsafe extern "C" fn(effect: LPCWSTR, param: *mut c_void, func_proc_enum_effect_item: unsafe extern "C" fn(param: *mut c_void, name: LPCWSTR, type: i32)) -> boolエフェクトの設定項目の一覧をコールバック関数(func_proc_enum_effect_item)で取得します effect : 対象のエフェクト名 (エイリアスファイルのeffect.nameの値) param : 任意のユーザーデータのポインタ func_proc_enum_effect_item : エフェクトの設定項目の取得処理のコールバック関数 戻り値 : 取得出来た場合はtrue (対象が見つからない場合は失敗します)
rendering_scene_video: unsafe extern "C" fn(frame: i32, param: *mut c_void, func_proc_rendering_video: unsafe extern "C" fn(param: *mut c_void, frame: i32, buffer: *const c_void, width: i32, height: i32, pitch: i32)) -> bool現在のシーンの映像のレンダリングをします この関数はレンダリングのタスクを追加するのみで完了します レンダリング完了時はイベント通知スレッドからコールバック関数が呼ばれます frame : レンダリング対象のフレーム番号 param : 任意のユーザーデータのポインタ func_proc_rendering_video : レンダリング完了時に呼ばれるコールバック関数 buffer : レンダリングした画像データへのポインタ ※PIXEL_RGBA形式 width,height : レンダリングした画像サイズ pitch : レンダリングした画像データの横1ラインのバイト数 戻り値 : レンダリング要求が成功した場合はtrue (出力中等は失敗します)
rendering_scene_audio: unsafe extern "C" fn(frame: i32, param: *mut c_void, func_proc_rendering_audio: unsafe extern "C" fn(param: *mut c_void, frame: i32, buffer0: *const f32, buffer1: *const f32, sample_num: i32)) -> bool現在のシーンの音声のレンダリングをします この関数はレンダリングのタスクを追加するのみで完了します レンダリング完了時はイベント通知スレッドからコールバック関数が呼ばれます frame : レンダリング対象のフレーム番号 param : 任意のユーザーデータのポインタ func_proc_rendering_audio : レンダリング完了時に呼ばれるコールバック関数 buffer0 : レンダリングした音声データ(左チャンネル)へのポインタ ※PCM(float)32bit形式 buffer1 : レンダリングした音声データ(右チャンネル)へのポインタ ※PCM(float)32bit形式 sample_num : レンダリングした音声のサンプル数 戻り値 : レンダリング要求が成功した場合はtrue (出力中等は失敗します)
wait_rendering_task: unsafe extern "C" fn()レンダリング中のタスクが全て完了するまで待機します ※参照ロック、編集ロック状態で呼び出すとデッドロックする可能性があります
enum_font_name: unsafe extern "C" fn(param: *mut c_void, func_proc_enum_font: unsafe extern "C" fn(param: *mut c_void, name: LPCWSTR))フォント名の一覧をコールバック関数(func_proc_enum_font)で取得します param : 任意のユーザーデータのポインタ func_proc_enum_font : フォント名の取得処理のコールバック関数
enum_palette_name: unsafe extern "C" fn(param: *mut c_void, func_proc_enum_palette: unsafe extern "C" fn(param: *mut c_void, name: LPCWSTR))パレット名の一覧をコールバック関数(func_proc_enum_palette)で取得します パレット情報を排他制御する為に参照ロックします。※同一スレッドで既にロック状態の場合はそのまま取得します。 param : 任意のユーザーデータのポインタ func_proc_enum_palette : パレット名の取得処理のコールバック関数
rendering_object_video: unsafe extern "C" fn(object: OBJECT_HANDLE, frame: i32, apply_effect: bool, param: *mut c_void, func_proc_rendering_video: unsafe extern "C" fn(param: *mut c_void, frame: i32, buffer: *const c_void, width: i32, height: i32, pitch: i32)) -> bool指定のオブジェクトの映像のレンダリングをします この関数はレンダリングのタスクを追加するのみで完了します レンダリング完了時はイベント通知スレッドからコールバック関数が呼ばれます object : レンダリング対象のオブジェクトのハンドル frame : レンダリング対象のフレーム番号 apply_effect : 追加のフィルタ効果を反映するか? ※グループ制御の追加効果は反映されません param : 任意のユーザーデータのポインタ func_proc_rendering_video : レンダリング完了時に呼ばれるコールバック関数 buffer : レンダリングした画像データへのポインタ ※PIXEL_RGBA形式 width,height : レンダリングした画像サイズ pitch : レンダリングした画像データの横1ラインのバイト数 戻り値 : レンダリング要求が成功した場合はtrue (対象外のオブジェクトや出力中等は失敗します)
rendering_object_audio: unsafe extern "C" fn(object: OBJECT_HANDLE, frame: i32, apply_effect: bool, param: *mut c_void, func_proc_rendering_audio: unsafe extern "C" fn(param: *mut c_void, frame: i32, buffer0: *const f32, buffer1: *const f32, sample_num: i32)) -> bool指定のオブジェクトの音声のレンダリングをします この関数はレンダリングのタスクを追加するのみで完了します レンダリング完了時はイベント通知スレッドからコールバック関数が呼ばれます object : レンダリング対象のオブジェクトのハンドル frame : レンダリング対象のフレーム番号 apply_effect : 追加のフィルタ効果を反映するか? ※グループ制御の追加効果は反映されません param : 任意のユーザーデータのポインタ func_proc_rendering_audio : レンダリング完了時に呼ばれるコールバック関数 buffer0 : レンダリングした音声データ(左チャンネル)へのポインタ ※PCM(float)32bit形式 buffer1 : レンダリングした音声データ(右チャンネル)へのポインタ ※PCM(float)32bit形式 sample_num : レンダリングした音声のサンプル数 戻り値 : レンダリング要求が成功した場合はtrue (出力中等は失敗します)
get_effect_item_group_names: unsafe extern "C" fn(effect: LPCWSTR, item: LPCWSTR, item_names: *mut LPCWSTR, item_num: i32, item_index: *mut i32) -> i32指定の設定項目が所属するグループの所属アイテム名を取得します グループ項目を直接指定することも出来ます (item_indexにはnullptrを指定します) effect : 対象のエフェクト名 (エイリアスファイルのeffect.nameの値) item : 対象の設定項目の名称 (エイリアスファイルのキーの名称) item_names : グループの所属アイテム名の格納先へのポインタ item_num : グループの所属アイテム名の格納先の数 item_index : 対象の設定項目のグループ内のインデックスの格納先へのポインタ (nullptrの場合は格納しません) 戻り値 : 取得出来た所属アイテム名の数 (グループに所属していない場合は0を返却) item_namesがnullptrの場合は所属アイテム数を返却します
enum_scene_name: unsafe extern "C" fn(param: *mut c_void, func_proc_enum_scene: unsafe extern "C" fn(param: *mut c_void, name: LPCWSTR, scene_id: i32))シーン名の一覧をコールバック関数(func_proc_enum_scene)で取得します シーン情報を排他制御する為に参照ロックします。※同一スレッドで既にロック状態の場合はそのまま取得します。 param : 任意のユーザーデータのポインタ func_proc_enum_scene : シーン名の取得処理のコールバック関数
select_scene: unsafe extern "C" fn(scene_id: i32) -> bool指定のシーンに切り替えます 参照ロック、編集ロック状態では利用出来ません scene_id : シーンのID 戻り値 : 成功した場合はtrue (シーンが存在しない場合や出力中等は失敗します)
create_scene: unsafe extern "C" fn(name: LPCWSTR, label: LPCWSTR, width: i32, height: i32, rate: i32, scale: i32, sample_rate: i32, background: EDIT_INFO_COLOR) -> boolシーンを作成します (作成したシーンに切り替わります) 参照ロック、編集ロック状態では利用出来ません name : シーン名 label : シーンのラベル (nullptrか空文字を指定するとラベル無し) width, height : シーンの解像度 rate, scale : シーンのフレームレート sample_rate : シーンのサンプリングレート background : シーンの背景色 (background.aが255以外の場合は透明色) 戻り値 : 成功した場合はtrue (出力中等は失敗します)
create_project: unsafe extern "C" fn(width: i32, height: i32, rate: i32, scale: i32, sample_rate: i32, background: EDIT_INFO_COLOR, show_confirm: bool) -> boolプロジェクトを新規作成します 参照ロック、編集ロック状態では利用出来ません width, height : シーンの解像度 rate, scale : シーンのフレームレート sample_rate : シーンのサンプリングレート background : シーンの背景色 (background.aが255以外の場合は透明色) show_confirm : 現在のプロジェクトの保存・キャンセルの確認ダイアログを表示する 戻り値 : 成功した場合はtrue (出力中等は失敗します)
open_project_file: unsafe extern "C" fn(file: LPCWSTR, show_confirm: bool) -> bool指定のプロジェクトファイルを開きます 参照ロック、編集ロック状態では利用出来ません file : プロジェクトファイルのパス show_confirm : 現在のプロジェクトの保存・キャンセルの確認ダイアログを表示する 戻り値 : 成功した場合はtrue (出力中等は失敗します)
save_project_file: unsafe extern "C" fn(file: LPCWSTR) -> bool指定のプロジェクトファイルへ保存します (自動バックアップと同じ処理で保存されます) 参照ロック、編集ロック状態では利用出来ません file : プロジェクトファイルのパス 戻り値 : 成功した場合はtrue (出力中等は失敗します)
output_file: unsafe extern "C" fn(file: LPCWSTR, output_plugin: LPCWSTR, param: *mut c_void, func_project_config: Option<unsafe extern "C" fn(param: *mut c_void, project: *mut PROJECT_FILE)>) -> bool現在のシーンを出力プラグインでファイル出力します この関数はファイル出力を開始するのみで完了します 参照ロック、編集ロック状態では利用出来ません file : 出力ファイルのパス output_plugin : 出力プラグイン名 func_project_config : 出力開始時にプロジェクトのファイル出力設定を反映させるコールバック関数 (nullptrなら呼ばれません) ※出力プラグインのFLAG_PROJECT_CONFIGが有効の場合にfunc_save_project_config()と同じ設定をすることで反映出来ます 戻り値 : 成功した場合はtrue (出力中等は失敗します)
Implementations§
Source§impl EDIT_HANDLE
impl EDIT_HANDLE
Sourcepub const EFFECT_TYPE_FILTER: i32 = 1
pub const EFFECT_TYPE_FILTER: i32 = 1
エフェクト種別 ※今後追加される可能性があります フィルタ効果
Sourcepub const EFFECT_TYPE_INPUT: i32 = 2
pub const EFFECT_TYPE_INPUT: i32 = 2
メディア入力
Sourcepub const EFFECT_TYPE_TRANSITION: i32 = 3
pub const EFFECT_TYPE_TRANSITION: i32 = 3
シーンチェンジ
Sourcepub const EFFECT_TYPE_CONTROL: i32 = 4
pub const EFFECT_TYPE_CONTROL: i32 = 4
オブジェクト制御
Sourcepub const EFFECT_TYPE_OUTPUT: i32 = 5
pub const EFFECT_TYPE_OUTPUT: i32 = 5
メディア出力 エフェクトフラグ ※今後追加される可能性があります
Sourcepub const EFFECT_FLAG_VIDEO: i32 = 1
pub const EFFECT_FLAG_VIDEO: i32 = 1
画像をサポート
Sourcepub const EFFECT_FLAG_AUDIO: i32 = 2
pub const EFFECT_FLAG_AUDIO: i32 = 2
音声をサポート
Sourcepub const EFFECT_FLAG_FILTER: i32 = 4
pub const EFFECT_FLAG_FILTER: i32 = 4
フィルタオブジェクトをサポート
Sourcepub const EFFECT_FLAG_CAMERA: i32 = 8
pub const EFFECT_FLAG_CAMERA: i32 = 8
カメラ効果をサポート
Sourcepub const EDIT_STATE_EDIT: i32 = 0
pub const EDIT_STATE_EDIT: i32 = 0
編集中
Sourcepub const EDIT_STATE_PLAY: i32 = 1
pub const EDIT_STATE_PLAY: i32 = 1
プレビュー再生中
Sourcepub const EDIT_STATE_SAVE: i32 = 2
pub const EDIT_STATE_SAVE: i32 = 2
ファイル出力中
Sourcepub const EFFECT_ITEM_TYPE_INTEGER: i32 = 1
pub const EFFECT_ITEM_TYPE_INTEGER: i32 = 1
設定項目種別 ※今後追加される可能性があります 整数
Sourcepub const EFFECT_ITEM_TYPE_NUMBER: i32 = 2
pub const EFFECT_ITEM_TYPE_NUMBER: i32 = 2
数値(トラックバー)
Sourcepub const EFFECT_ITEM_TYPE_CHECK: i32 = 3
pub const EFFECT_ITEM_TYPE_CHECK: i32 = 3
チェックボックス
Sourcepub const EFFECT_ITEM_TYPE_TEXT: i32 = 4
pub const EFFECT_ITEM_TYPE_TEXT: i32 = 4
テキスト
Sourcepub const EFFECT_ITEM_TYPE_STRING: i32 = 5
pub const EFFECT_ITEM_TYPE_STRING: i32 = 5
文字列
Sourcepub const EFFECT_ITEM_TYPE_FILE: i32 = 6
pub const EFFECT_ITEM_TYPE_FILE: i32 = 6
ファイル
Sourcepub const EFFECT_ITEM_TYPE_COLOR: i32 = 7
pub const EFFECT_ITEM_TYPE_COLOR: i32 = 7
色
Sourcepub const EFFECT_ITEM_TYPE_SELECT: i32 = 8
pub const EFFECT_ITEM_TYPE_SELECT: i32 = 8
リスト選択
Sourcepub const EFFECT_ITEM_TYPE_SCENE: i32 = 9
pub const EFFECT_ITEM_TYPE_SCENE: i32 = 9
シーン
Sourcepub const EFFECT_ITEM_TYPE_RANGE: i32 = 10
pub const EFFECT_ITEM_TYPE_RANGE: i32 = 10
レイヤー範囲
Sourcepub const EFFECT_ITEM_TYPE_COMBO: i32 = 11
pub const EFFECT_ITEM_TYPE_COMBO: i32 = 11
リストと文字の複合
Sourcepub const EFFECT_ITEM_TYPE_MASK: i32 = 12
pub const EFFECT_ITEM_TYPE_MASK: i32 = 12
マスク
Sourcepub const EFFECT_ITEM_TYPE_FONT: i32 = 13
pub const EFFECT_ITEM_TYPE_FONT: i32 = 13
フォント
Sourcepub const EFFECT_ITEM_TYPE_FIGURE: i32 = 14
pub const EFFECT_ITEM_TYPE_FIGURE: i32 = 14
図形
Sourcepub const EFFECT_ITEM_TYPE_DATA: i32 = 15
pub const EFFECT_ITEM_TYPE_DATA: i32 = 15
データ
Sourcepub const EFFECT_ITEM_TYPE_FOLDER: i32 = 16
pub const EFFECT_ITEM_TYPE_FOLDER: i32 = 16
フォルダ
Sourcepub const EFFECT_ITEM_TYPE_NUMBER_GROUP: i32 = 17
pub const EFFECT_ITEM_TYPE_NUMBER_GROUP: i32 = 17
数値(トラックバー)グループ
Sourcepub const EFFECT_ITEM_TYPE_GROUP: i32 = 18
pub const EFFECT_ITEM_TYPE_GROUP: i32 = 18
設定グループ(明示的なグループのみ) ※設定値無し
Sourcepub const EFFECT_ITEM_TYPE_SEPARATOR: i32 = 19
pub const EFFECT_ITEM_TYPE_SEPARATOR: i32 = 19
セパレーター ※設定値無し