Win32 API 日本語リファレンス
ホームMedia.KernelStreaming › TRANSPORTBASICPARMS

TRANSPORTBASICPARMS

構造体
サイズx64: 232 バイト / x86: 232 バイト

サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。

フィールド

フィールドサイズx64x86説明
TimeFormatINT4+0+0時間表現の形式を示す値。
TimeReferenceINT4+4+4時間の基準(タイムコード/カウンタ等)を示す。
SuperimposeINT4+8+8スーパーインポーズの有無/設定を示す。
EndStopActionINT4+12+12テープ終端到達時の動作を示す。
RecordFormatINT4+16+16録画フォーマットを示す値。
StepFramesINT4+20+20ステップ送りのフレーム数を示す。
SetpFieldINT4+24+24ステップ対象のフィールドを示す。
PrerollINT4+28+28プリロール量を示す。
RecPrerollINT4+32+32録画プリロール量を示す。
PostrollINT4+36+36ポストロール量を示す。
EditDelayINT4+40+40編集動作の遅延量を示す。
PlayTCDelayINT4+44+44再生時タイムコードの遅延量を示す。
RecTCDelayINT4+48+48録画時タイムコードの遅延量を示す。
EditFieldINT4+52+52編集対象のフィールドを示す。
FrameServoINT4+56+56フレームサーボの設定を示す。
ColorFrameServoINT4+60+60カラーフレームサーボの設定を示す。
ServoRefINT4+64+64サーボの基準信号を示す。
WarnGenlockINT4+68+68ゲンロック警告の有無を示す。
SetTrackingINT4+72+72トラッキング調整値を示す。
VolumeNameCHAR40+76+76ボリューム名の文字列(先頭CHAR、固定長配列)。
BallisticINT80+116+116バリスティック(可変速)動作の設定を示す。
SpeedINT4+196+196再生/送り速度を示す。
CounterFormatINT4+200+200カウンタ表示形式を示す。
TunerChannelINT4+204+204チューナのチャンネル番号を示す。
TunerNumberINT4+208+208対象チューナの番号を示す。
TimerEventINT4+212+212タイマイベントの種別を示す。
TimerStartDayINT4+216+216タイマ開始日を示す。
TimerStartTimeINT4+220+220タイマ開始時刻を示す。
TimerStopDayINT4+224+224タイマ停止日を示す。
TimerStopTimeINT4+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 Structure
import 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: int32
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;
    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