ホーム › Media.KernelStreaming › TRANSPORTBASICPARMS
TRANSPORTBASICPARMS
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| TimeFormat | INT | 4 | +0 | +0 | 時間表現の形式を示す値。 |
| TimeReference | INT | 4 | +4 | +4 | 時間の基準(タイムコード/カウンタ等)を示す。 |
| Superimpose | INT | 4 | +8 | +8 | スーパーインポーズの有無/設定を示す。 |
| EndStopAction | INT | 4 | +12 | +12 | テープ終端到達時の動作を示す。 |
| RecordFormat | INT | 4 | +16 | +16 | 録画フォーマットを示す値。 |
| StepFrames | INT | 4 | +20 | +20 | ステップ送りのフレーム数を示す。 |
| SetpField | INT | 4 | +24 | +24 | ステップ対象のフィールドを示す。 |
| Preroll | INT | 4 | +28 | +28 | プリロール量を示す。 |
| RecPreroll | INT | 4 | +32 | +32 | 録画プリロール量を示す。 |
| Postroll | INT | 4 | +36 | +36 | ポストロール量を示す。 |
| EditDelay | INT | 4 | +40 | +40 | 編集動作の遅延量を示す。 |
| PlayTCDelay | INT | 4 | +44 | +44 | 再生時タイムコードの遅延量を示す。 |
| RecTCDelay | INT | 4 | +48 | +48 | 録画時タイムコードの遅延量を示す。 |
| EditField | INT | 4 | +52 | +52 | 編集対象のフィールドを示す。 |
| FrameServo | INT | 4 | +56 | +56 | フレームサーボの設定を示す。 |
| ColorFrameServo | INT | 4 | +60 | +60 | カラーフレームサーボの設定を示す。 |
| ServoRef | INT | 4 | +64 | +64 | サーボの基準信号を示す。 |
| WarnGenlock | INT | 4 | +68 | +68 | ゲンロック警告の有無を示す。 |
| SetTracking | INT | 4 | +72 | +72 | トラッキング調整値を示す。 |
| VolumeName | CHAR | 40 | +76 | +76 | ボリューム名の文字列(先頭CHAR、固定長配列)。 |
| Ballistic | INT | 80 | +116 | +116 | バリスティック(可変速)動作の設定を示す。 |
| Speed | INT | 4 | +196 | +196 | 再生/送り速度を示す。 |
| CounterFormat | INT | 4 | +200 | +200 | カウンタ表示形式を示す。 |
| TunerChannel | INT | 4 | +204 | +204 | チューナのチャンネル番号を示す。 |
| TunerNumber | INT | 4 | +208 | +208 | 対象チューナの番号を示す。 |
| TimerEvent | INT | 4 | +212 | +212 | タイマイベントの種別を示す。 |
| TimerStartDay | INT | 4 | +216 | +216 | タイマ開始日を示す。 |
| TimerStartTime | INT | 4 | +220 | +220 | タイマ開始時刻を示す。 |
| TimerStopDay | INT | 4 | +224 | +224 | タイマ停止日を示す。 |
| TimerStopTime | INT | 4 | +228 | +228 | タイマ停止時刻を示す。 |
各言語での定義
#include <windows.h>
// TRANSPORTBASICPARMS (x64 232 / x86 232 バイト)
typedef struct TRANSPORTBASICPARMS {
INT TimeFormat;
INT TimeReference;
INT Superimpose;
INT EndStopAction;
INT RecordFormat;
INT StepFrames;
INT SetpField;
INT Preroll;
INT RecPreroll;
INT Postroll;
INT EditDelay;
INT PlayTCDelay;
INT RecTCDelay;
INT EditField;
INT FrameServo;
INT ColorFrameServo;
INT ServoRef;
INT WarnGenlock;
INT SetTracking;
CHAR VolumeName[40];
INT Ballistic[20];
INT Speed;
INT CounterFormat;
INT TunerChannel;
INT TunerNumber;
INT TimerEvent;
INT TimerStartDay;
INT TimerStartTime;
INT TimerStopDay;
INT TimerStopTime;
} TRANSPORTBASICPARMS;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct TRANSPORTBASICPARMS
{
public int TimeFormat;
public int TimeReference;
public int Superimpose;
public int EndStopAction;
public int RecordFormat;
public int StepFrames;
public int SetpField;
public int Preroll;
public int RecPreroll;
public int Postroll;
public int EditDelay;
public int PlayTCDelay;
public int RecTCDelay;
public int EditField;
public int FrameServo;
public int ColorFrameServo;
public int ServoRef;
public int WarnGenlock;
public int SetTracking;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 40)] public sbyte[] VolumeName;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)] public int[] Ballistic;
public int Speed;
public int CounterFormat;
public int TunerChannel;
public int TunerNumber;
public int TimerEvent;
public int TimerStartDay;
public int TimerStartTime;
public int TimerStopDay;
public int TimerStopTime;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure TRANSPORTBASICPARMS
Public TimeFormat As Integer
Public TimeReference As Integer
Public Superimpose As Integer
Public EndStopAction As Integer
Public RecordFormat As Integer
Public StepFrames As Integer
Public SetpField As Integer
Public Preroll As Integer
Public RecPreroll As Integer
Public Postroll As Integer
Public EditDelay As Integer
Public PlayTCDelay As Integer
Public RecTCDelay As Integer
Public EditField As Integer
Public FrameServo As Integer
Public ColorFrameServo As Integer
Public ServoRef As Integer
Public WarnGenlock As Integer
Public SetTracking As Integer
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=40)> Public VolumeName() As SByte
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=20)> Public Ballistic() As Integer
Public Speed As Integer
Public CounterFormat As Integer
Public TunerChannel As Integer
Public TunerNumber As Integer
Public TimerEvent As Integer
Public TimerStartDay As Integer
Public TimerStartTime As Integer
Public TimerStopDay As Integer
Public TimerStopTime As Integer
End Structureimport ctypes
from ctypes import wintypes
class TRANSPORTBASICPARMS(ctypes.Structure):
_fields_ = [
("TimeFormat", ctypes.c_int),
("TimeReference", ctypes.c_int),
("Superimpose", ctypes.c_int),
("EndStopAction", ctypes.c_int),
("RecordFormat", ctypes.c_int),
("StepFrames", ctypes.c_int),
("SetpField", ctypes.c_int),
("Preroll", ctypes.c_int),
("RecPreroll", ctypes.c_int),
("Postroll", ctypes.c_int),
("EditDelay", ctypes.c_int),
("PlayTCDelay", ctypes.c_int),
("RecTCDelay", ctypes.c_int),
("EditField", ctypes.c_int),
("FrameServo", ctypes.c_int),
("ColorFrameServo", ctypes.c_int),
("ServoRef", ctypes.c_int),
("WarnGenlock", ctypes.c_int),
("SetTracking", ctypes.c_int),
("VolumeName", ctypes.c_byte * 40),
("Ballistic", ctypes.c_int * 20),
("Speed", ctypes.c_int),
("CounterFormat", ctypes.c_int),
("TunerChannel", ctypes.c_int),
("TunerNumber", ctypes.c_int),
("TimerEvent", ctypes.c_int),
("TimerStartDay", ctypes.c_int),
("TimerStartTime", ctypes.c_int),
("TimerStopDay", ctypes.c_int),
("TimerStopTime", ctypes.c_int),
]#[repr(C)]
pub struct TRANSPORTBASICPARMS {
pub TimeFormat: i32,
pub TimeReference: i32,
pub Superimpose: i32,
pub EndStopAction: i32,
pub RecordFormat: i32,
pub StepFrames: i32,
pub SetpField: i32,
pub Preroll: i32,
pub RecPreroll: i32,
pub Postroll: i32,
pub EditDelay: i32,
pub PlayTCDelay: i32,
pub RecTCDelay: i32,
pub EditField: i32,
pub FrameServo: i32,
pub ColorFrameServo: i32,
pub ServoRef: i32,
pub WarnGenlock: i32,
pub SetTracking: i32,
pub VolumeName: [i8; 40],
pub Ballistic: [i32; 20],
pub Speed: i32,
pub CounterFormat: i32,
pub TunerChannel: i32,
pub TunerNumber: i32,
pub TimerEvent: i32,
pub TimerStartDay: i32,
pub TimerStartTime: i32,
pub TimerStopDay: i32,
pub TimerStopTime: i32,
}import "golang.org/x/sys/windows"
type TRANSPORTBASICPARMS struct {
TimeFormat int32
TimeReference int32
Superimpose int32
EndStopAction int32
RecordFormat int32
StepFrames int32
SetpField int32
Preroll int32
RecPreroll int32
Postroll int32
EditDelay int32
PlayTCDelay int32
RecTCDelay int32
EditField int32
FrameServo int32
ColorFrameServo int32
ServoRef int32
WarnGenlock int32
SetTracking int32
VolumeName [40]int8
Ballistic [20]int32
Speed int32
CounterFormat int32
TunerChannel int32
TunerNumber int32
TimerEvent int32
TimerStartDay int32
TimerStartTime int32
TimerStopDay int32
TimerStopTime int32
}type
TRANSPORTBASICPARMS = record
TimeFormat: Integer;
TimeReference: Integer;
Superimpose: Integer;
EndStopAction: Integer;
RecordFormat: Integer;
StepFrames: Integer;
SetpField: Integer;
Preroll: Integer;
RecPreroll: Integer;
Postroll: Integer;
EditDelay: Integer;
PlayTCDelay: Integer;
RecTCDelay: Integer;
EditField: Integer;
FrameServo: Integer;
ColorFrameServo: Integer;
ServoRef: Integer;
WarnGenlock: Integer;
SetTracking: Integer;
VolumeName: array[0..39] of Shortint;
Ballistic: array[0..19] of Integer;
Speed: Integer;
CounterFormat: Integer;
TunerChannel: Integer;
TunerNumber: Integer;
TimerEvent: Integer;
TimerStartDay: Integer;
TimerStartTime: Integer;
TimerStopDay: Integer;
TimerStopTime: Integer;
end;const TRANSPORTBASICPARMS = extern struct {
TimeFormat: i32,
TimeReference: i32,
Superimpose: i32,
EndStopAction: i32,
RecordFormat: i32,
StepFrames: i32,
SetpField: i32,
Preroll: i32,
RecPreroll: i32,
Postroll: i32,
EditDelay: i32,
PlayTCDelay: i32,
RecTCDelay: i32,
EditField: i32,
FrameServo: i32,
ColorFrameServo: i32,
ServoRef: i32,
WarnGenlock: i32,
SetTracking: i32,
VolumeName: [40]i8,
Ballistic: [20]i32,
Speed: i32,
CounterFormat: i32,
TunerChannel: i32,
TunerNumber: i32,
TimerEvent: i32,
TimerStartDay: i32,
TimerStartTime: i32,
TimerStopDay: i32,
TimerStopTime: i32,
};type
TRANSPORTBASICPARMS {.bycopy.} = object
TimeFormat: int32
TimeReference: int32
Superimpose: int32
EndStopAction: int32
RecordFormat: int32
StepFrames: int32
SetpField: int32
Preroll: int32
RecPreroll: int32
Postroll: int32
EditDelay: int32
PlayTCDelay: int32
RecTCDelay: int32
EditField: int32
FrameServo: int32
ColorFrameServo: int32
ServoRef: int32
WarnGenlock: int32
SetTracking: int32
VolumeName: array[40, int8]
Ballistic: array[20, int32]
Speed: int32
CounterFormat: int32
TunerChannel: int32
TunerNumber: int32
TimerEvent: int32
TimerStartDay: int32
TimerStartTime: int32
TimerStopDay: int32
TimerStopTime: int32struct TRANSPORTBASICPARMS
{
int TimeFormat;
int TimeReference;
int Superimpose;
int EndStopAction;
int RecordFormat;
int StepFrames;
int SetpField;
int Preroll;
int RecPreroll;
int Postroll;
int EditDelay;
int PlayTCDelay;
int RecTCDelay;
int EditField;
int FrameServo;
int ColorFrameServo;
int ServoRef;
int WarnGenlock;
int SetTracking;
byte[40] VolumeName;
int[20] Ballistic;
int Speed;
int CounterFormat;
int TunerChannel;
int TunerNumber;
int TimerEvent;
int TimerStartDay;
int TimerStartTime;
int TimerStopDay;
int TimerStopTime;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; TRANSPORTBASICPARMS サイズ: 232 バイト(x64)
dim st, 58 ; 4byte整数×58(構造体サイズ 232 / 4 切り上げ)
; TimeFormat : INT (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; TimeReference : INT (+4, 4byte) st.1 = 値 / 値 = st.1 (lpoke/lpeek も可)
; Superimpose : INT (+8, 4byte) st.2 = 値 / 値 = st.2 (lpoke/lpeek も可)
; EndStopAction : INT (+12, 4byte) st.3 = 値 / 値 = st.3 (lpoke/lpeek も可)
; RecordFormat : INT (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; StepFrames : INT (+20, 4byte) st.5 = 値 / 値 = st.5 (lpoke/lpeek も可)
; SetpField : INT (+24, 4byte) st.6 = 値 / 値 = st.6 (lpoke/lpeek も可)
; Preroll : INT (+28, 4byte) st.7 = 値 / 値 = st.7 (lpoke/lpeek も可)
; RecPreroll : INT (+32, 4byte) st.8 = 値 / 値 = st.8 (lpoke/lpeek も可)
; Postroll : INT (+36, 4byte) st.9 = 値 / 値 = st.9 (lpoke/lpeek も可)
; EditDelay : INT (+40, 4byte) st.10 = 値 / 値 = st.10 (lpoke/lpeek も可)
; PlayTCDelay : INT (+44, 4byte) st.11 = 値 / 値 = st.11 (lpoke/lpeek も可)
; RecTCDelay : INT (+48, 4byte) st.12 = 値 / 値 = st.12 (lpoke/lpeek も可)
; EditField : INT (+52, 4byte) st.13 = 値 / 値 = st.13 (lpoke/lpeek も可)
; FrameServo : INT (+56, 4byte) st.14 = 値 / 値 = st.14 (lpoke/lpeek も可)
; ColorFrameServo : INT (+60, 4byte) st.15 = 値 / 値 = st.15 (lpoke/lpeek も可)
; ServoRef : INT (+64, 4byte) st.16 = 値 / 値 = st.16 (lpoke/lpeek も可)
; WarnGenlock : INT (+68, 4byte) st.17 = 値 / 値 = st.17 (lpoke/lpeek も可)
; SetTracking : INT (+72, 4byte) st.18 = 値 / 値 = st.18 (lpoke/lpeek も可)
; VolumeName : CHAR (+76, 40byte) varptr(st)+76 を基点に操作(40byte:入れ子/配列)
; Ballistic : INT (+116, 80byte) varptr(st)+116 を基点に操作(80byte:入れ子/配列)
; Speed : INT (+196, 4byte) st.49 = 値 / 値 = st.49 (lpoke/lpeek も可)
; CounterFormat : INT (+200, 4byte) st.50 = 値 / 値 = st.50 (lpoke/lpeek も可)
; TunerChannel : INT (+204, 4byte) st.51 = 値 / 値 = st.51 (lpoke/lpeek も可)
; TunerNumber : INT (+208, 4byte) st.52 = 値 / 値 = st.52 (lpoke/lpeek も可)
; TimerEvent : INT (+212, 4byte) st.53 = 値 / 値 = st.53 (lpoke/lpeek も可)
; TimerStartDay : INT (+216, 4byte) st.54 = 値 / 値 = st.54 (lpoke/lpeek も可)
; TimerStartTime : INT (+220, 4byte) st.55 = 値 / 値 = st.55 (lpoke/lpeek も可)
; TimerStopDay : INT (+224, 4byte) st.56 = 値 / 値 = st.56 (lpoke/lpeek も可)
; TimerStopTime : INT (+228, 4byte) st.57 = 値 / 値 = st.57 (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global TRANSPORTBASICPARMS
#field int TimeFormat
#field int TimeReference
#field int Superimpose
#field int EndStopAction
#field int RecordFormat
#field int StepFrames
#field int SetpField
#field int Preroll
#field int RecPreroll
#field int Postroll
#field int EditDelay
#field int PlayTCDelay
#field int RecTCDelay
#field int EditField
#field int FrameServo
#field int ColorFrameServo
#field int ServoRef
#field int WarnGenlock
#field int SetTracking
#field char VolumeName 40
#field int Ballistic 20
#field int Speed
#field int CounterFormat
#field int TunerChannel
#field int TunerNumber
#field int TimerEvent
#field int TimerStartDay
#field int TimerStartTime
#field int TimerStopDay
#field int TimerStopTime
#endstruct
stdim st, TRANSPORTBASICPARMS ; NSTRUCT 変数を確保
st->TimeFormat = 100
mes "TimeFormat=" + st->TimeFormat