■ HOME exo2srt_srt2exo

AviUtl ExEdit2 Plugin SDK ( The MIT License https://opensource.org/license/mit ) Copyright (c) 2025 Kenkun

39 >>> 44

[2026/4/12]
[auf2] FILTER_ITEM_SEPARATORを追加
[aux2] EDIT_HANDLEにget_edit_state()を追加
[aux2] EDIT_SECTIONの幾つかの関数の実装を改善
[au2pkg] package.iniにuninstallSubFolderFileの項目を追加

[2026/4/18]
[aux2] EDIT_HANDLEにcall_read_section,call_read_section_param()を追加

[2026/4/26]
[aux2] call_edit_section()のコールバック関数を呼び出し元と同じスレッドで呼ばれるように修正
[aux2] enum_effect_name()のエフェクト種別にEFFECT_TYPE_CONTROL,EFFECT_TYPE_OUTPUTを追加
[aux2] EDIT_HANDLEにenum_effect_item()を追加

[2026/4/28]
[aux2] call_edit_section()のコールバック関数をメインスレッドで呼ばれるように修正 ※色々問題があるので戻します
[aux2] enum_effect_name()のエフェクトフラグにEFFECT_FLAG_CAMERAを追加

[2026/5/4]
[aux2] HOST_APP_TABLEにregister_object_item_menu(),register_object_item_menu_param()を追加

AviUtl2_SDK_39_>>>_44_dif_fix

//--------------------------------------------------------------------
config2.h

//--------------------------------------------------------------------
filter2.h

39
44  追加
// セパレーター項目構造体
// 例:FILTER_ITEM_SEPARATOR separator = { L"中心座標" };
struct  FILTER_ITEM_SEPARATOR {
    FILTER_ITEM_SEPARATOR(LPCWSTR name) : name(name) {}
    LPCWSTR type =  L"separator" ;     // 設定の種別
    LPCWSTR name;                    // 設定名
};

//--------------------------------------------------------------------
input2.h

//--------------------------------------------------------------------
logger2.h

//--------------------------------------------------------------------
module2.h

//--------------------------------------------------------------------
output2.h

//--------------------------------------------------------------------
plugin2.h

39
    // オブジェクト設定ウィンドウで選択するオブジェクトを設定します (コールバック処理の終了時に設定されます)
    // object   : オブジェクトのハンドル
     void  (*set_focus_object)(OBJECT_HANDLE object);
44
    // オブジェクト設定ウィンドウで選択するオブジェクトを設定します (call_read_section利用不可)
    // ※コールバック処理の終了時に設定されます
    // object   : オブジェクトのハンドル
     void  (*set_focus_object)(OBJECT_HANDLE object);

//////////////////////////////////
39
    // 現在のレイヤー・フレーム位置を設定します ※設定出来る範囲に調整されます
    // layer    : レイヤー番号
    // frame    : フレーム番号
     void  (*set_cursor_layer_frame)( int  layer,  int  frame);
44
    // 現在のレイヤー・フレーム位置を設定します (call_read_section利用不可)
    // ※設定出来る範囲に調整されます
    // layer    : レイヤー番号
    // frame    : フレーム番号
     void  (*set_cursor_layer_frame)( int  layer,  int  frame);

//////////////////////////////////
39
    // フレーム範囲選択を設定します ※設定出来る範囲に調整されます
    // start,end    : 開始終了フレーム番号
    //                開始終了フレームの両方に-1を指定すると選択を解除します
     void  (*set_select_range)( int  start,  int  end);
44
    // フレーム範囲選択を設定します (call_read_section利用不可)
    // ※設定出来る範囲に調整されます
    // start,end    : 開始終了フレーム番号
    //                開始終了フレームの両方に-1を指定すると選択を解除します
     void  (*set_select_range)( int  start,  int  end);

//////////////////////////////////
39
    // シーン名を設定します ※シーンの操作は現状Undoに非対応です
    // name     : シーン名
    //            ※シーン名は必須になります (nullptrや空文字の場合は変更しません)
     void  (*set_scene_name)(LPCWSTR name);
44
    // シーン名を設定します (call_read_section利用不可)
    // ※シーンの操作は現状Undoに非対応です
    // name     : シーン名
    //            ※シーン名は必須になります (nullptrや空文字の場合は変更しません)
     void  (*set_scene_name)(LPCWSTR name);

//////////////////////////////////
39
    // シーンの解像度を設定します ※シーンの操作は現状Undoに非対応です
    // width    : 横のサイズ
    // height   : 縦のサイズ
     void  (*set_scene_size)( int  width,  int  height);
44
    // シーンの解像度を設定します  (call_read_section利用不可)
    // ※シーンの操作は現状Undoに非対応です
    // width    : 横のサイズ
    // height   : 縦のサイズ
     void  (*set_scene_size)( int  width,  int  height);

//////////////////////////////////
39
    // シーンのフレームレートを設定します ※シーンの操作は現状Undoに非対応です
    // rate     : フレームレート
    // scale    : フレームレートのスケール
     void  (*set_scene_frame_rate)( int  rate,  int  scale);
44
    // シーンのフレームレートを設定します (call_read_section利用不可)
    // ※シーンの操作は現状Undoに非対応です
    // rate     : フレームレート
    // scale    : フレームレートのスケール
     void  (*set_scene_frame_rate)( int  rate,  int  scale);

//////////////////////////////////
39
    // シーンのサンプリングレートを設定します ※シーンの操作は現状Undoに非対応です
    // sample_rate  : サンプリングレート
     void  (*set_scene_sample_rate)( int  sample_rate);
44
    // シーンのサンプリングレートを設定します (call_read_section利用不可)
    // ※シーンの操作は現状Undoに非対応です
    // sample_rate  : サンプリングレート
     void  (*set_scene_sample_rate)( int  sample_rate);

//////////////////////////////////
39
    // エフェクト名の一覧をコールバック関数(func_proc_enum_effect)で取得します
    // param                    : 任意のユーザーデータのポインタ
    // func_proc_enum_effect    : エフェクト名の取得処理のコールバック関数
     void  (*enum_effect_name)( void*  param,  void  (*func_proc_enum_effect)( void*  param, LPCWSTR name,  int  type,  int  flag));
    // エフェクト種別 ※今後追加される可能性があります
     static   constexpr   int  EFFECT_TYPE_FILTER     =  1 ;     // フィルタ効果
     static   constexpr   int  EFFECT_TYPE_INPUT      =  2 ;     // メディア入力
     static   constexpr   int  EFFECT_TYPE_TRANSITION =  3 ;     // シーンチェンジ
    // エフェクトフラグ ※今後追加される可能性があります
     static   constexpr   int  EFFECT_FLAG_VIDEO      =  1 ;     // 画像をサポート
     static   constexpr   int  EFFECT_FLAG_AUDIO      =  2 ;     // 音声をサポート
     static   constexpr   int  EFFECT_FLAG_FILTER     =  4 ;     // フィルタオブジェクトをサポート
44
    // エフェクト名の一覧をコールバック関数(func_proc_enum_effect)で取得します
    // param                    : 任意のユーザーデータのポインタ
    // func_proc_enum_effect    : エフェクト名の取得処理のコールバック関数
     void  (*enum_effect_name)( void*  param,  void  (*func_proc_enum_effect)( void*  param, LPCWSTR name,  int  type,  int  flag));
    // エフェクト種別 ※今後追加される可能性があります
     static   constexpr   int  EFFECT_TYPE_FILTER     =  1 ;     // フィルタ効果
     static   constexpr   int  EFFECT_TYPE_INPUT      =  2 ;     // メディア入力
     static   constexpr   int  EFFECT_TYPE_TRANSITION =  3 ;     // シーンチェンジ
     static   constexpr   int  EFFECT_TYPE_CONTROL    =  4 ;     // オブジェクト制御
     static   constexpr   int  EFFECT_TYPE_OUTPUT     =  5 ;     // メディア出力
    // エフェクトフラグ ※今後追加される可能性があります
     static   constexpr   int  EFFECT_FLAG_VIDEO      =  1 ;     // 画像をサポート
     static   constexpr   int  EFFECT_FLAG_AUDIO      =  2 ;     // 音声をサポート
     static   constexpr   int  EFFECT_FLAG_FILTER     =  4 ;     // フィルタオブジェクトをサポート
     static   constexpr   int  EFFECT_FLAG_CAMERA     =  8 ;     // カメラ効果をサポート

//////////////////////////////////
39
44  追加
    // 編集状態を取得します
     int  (*get_edit_state)();
     static   constexpr   int  EDIT_STATE_EDIT =  0 ;    // 編集中
     static   constexpr   int  EDIT_STATE_PLAY =  1 ;    // プレビュー再生中
     static   constexpr   int  EDIT_STATE_SAVE =  2 ;    // ファイル出力中

    // プロジェクトデータを参照する為のコールバック関数(func_proc_read_section)を呼び出します
    // 参照中にデータが更新されないように参照ロック状態のコールバック関数内で処理をする形になります
    // EDIT_SECTIONの更新系の関数等は利用出来ません ※EDIT_SECTIONの各項目に記載しています
    // コールバック関数は呼び出し元と同じスレッドで呼ばれます
    // func_proc_read_section   : コールバック関数
    // 戻り値                   : trueなら成功
    //                            参照が出来ない場合(出力中等)に失敗します
     bool  (*call_read_section)( void  (*func_proc_read_section)(EDIT_SECTION *  edit));

    // call_read_section()に引数paramを渡せるようにした関数です
    // param            : 任意のユーザーデータのポインタ
     bool  (*call_read_section_param)( void*  param,  void  (*func_proc_read_section)( void*  param, EDIT_SECTION *  edit));

    // エフェクトの設定項目の一覧をコールバック関数(func_proc_enum_effect_item)で取得します
    // effect                       : 対象のエフェクト名 (エイリアスファイルのeffect.nameの値)
    // param                        : 任意のユーザーデータのポインタ
    // func_proc_enum_effect_item   : エフェクトの設定項目の取得処理のコールバック関数
    // 戻り値                       : 取得出来た場合はtrue (対象が見つからない場合は失敗します)
     bool  (*enum_effect_item)(LPCWSTR effect,  void*  param,  void  (*func_proc_enum_effect_item)( void*  param, LPCWSTR name,  int  type));
    // 設定項目種別 ※今後追加される可能性があります
     static   constexpr   int  EFFECT_ITEM_TYPE_INTEGER   =  1 ;     // 整数
     static   constexpr   int  EFFECT_ITEM_TYPE_NUMBER    =  2 ;     // 数値
     static   constexpr   int  EFFECT_ITEM_TYPE_CHECK     =  3 ;     // チェックボックス
     static   constexpr   int  EFFECT_ITEM_TYPE_TEXT      =  4 ;     // テキスト
     static   constexpr   int  EFFECT_ITEM_TYPE_STRING    =  5 ;     // 文字列
     static   constexpr   int  EFFECT_ITEM_TYPE_FILE      =  6 ;     // ファイル
     static   constexpr   int  EFFECT_ITEM_TYPE_COLOR     =  7 ;     // 色
     static   constexpr   int  EFFECT_ITEM_TYPE_SELECT    =  8 ;     // リスト選択
     static   constexpr   int  EFFECT_ITEM_TYPE_SCENE     =  9 ;     // シーン
     static   constexpr   int  EFFECT_ITEM_TYPE_RANGE     =  10 ;    // レイヤー範囲
     static   constexpr   int  EFFECT_ITEM_TYPE_COMBO     =  11 ;    // リストと文字の複合
     static   constexpr   int  EFFECT_ITEM_TYPE_MASK      =  12 ;    // マスク
     static   constexpr   int  EFFECT_ITEM_TYPE_FONT      =  13 ;    // フォント
     static   constexpr   int  EFFECT_ITEM_TYPE_FIGURE    =  14 ;    // 図形
     static   constexpr   int  EFFECT_ITEM_TYPE_DATA      =  15 ;    // データ
     static   constexpr   int  EFFECT_ITEM_TYPE_FOLDER    =  16 ;    // フォルダ

//////////////////////////////////
39
44  追加
    // オブジェクト編集の設定項目メニューを登録する (オブジェクト編集の右クリックメニューに追加されます)
    // name                     : 設定項目メニューの名称
    // allow_effect_only        : エフェクトのみを許可するか? ※trueの場合はitemがnullptrで呼ばれるケースを許可します
    // func_proc_item_menu      : 設定項目メニュー選択時のコールバック関数
    // ※コールバック関数の引数はget_object_item_value()の引数と同じ形式になります
     void  (*register_object_item_menu)(LPCWSTR name,  bool  allow_effect_only,  void  (*func_proc_item_menu)(EDIT_SECTION *  edit, OBJECT_HANDLE object, LPCWSTR effect, LPCWSTR item));

    // オブジェクト編集の設定項目メニューを登録する (オブジェクト編集の右クリックメニューに追加されます)
    // 引数paramを渡して編集セクションにしないでコールバックを呼び出します
    // name                     : 設定項目メニューの名称
    // allow_effect_only        : エフェクトのみを許可するか? ※trueの場合はitemがnullptrで呼ばれるケースを許可します
    // param                    : 任意のユーザーデータのポインタ
    // func_proc_item_menu      : 設定項目メニュー選択時のコールバック関数
    // ※コールバック関数の引数はget_object_item_value()の引数と同じ形式になります
     void  (*register_object_item_menu_param)(LPCWSTR name,  bool  allow_effect_only,  void*  param,  void  (*func_proc_item_menu)( void*  param, OBJECT_HANDLE object, LPCWSTR effect, LPCWSTR item));

//--------------------------------------------------------------------