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

TUNER_ANALOG_CAPS_S

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

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

フィールド

フィールドサイズx64x86説明
ModeDWORD4+0+0対象とするアナログチューナ動作モード。
StandardsSupportedDWORD4+4+4サポートするアナログ放送方式を示すフラグ。
MinFrequencyDWORD4+8+8同調可能な最小周波数をHz単位で示す。
MaxFrequencyDWORD4+12+12同調可能な最大周波数をHz単位で示す。
TuningGranularityDWORD4+16+16周波数同調の最小刻み幅をHz単位で示す。
SettlingTimeDWORD4+20+20周波数切替後に信号が安定するまでの時間(ミリ秒)。
ScanSensingRangeDWORD4+24+24スキャン時の信号検出感度範囲を示す。
FineTuneSensingRangeDWORD4+28+28微調整時の信号検出感度範囲を示す。

各言語での定義

#include <windows.h>

// TUNER_ANALOG_CAPS_S  (x64 32 / x86 32 バイト)
typedef struct TUNER_ANALOG_CAPS_S {
    DWORD Mode;
    DWORD StandardsSupported;
    DWORD MinFrequency;
    DWORD MaxFrequency;
    DWORD TuningGranularity;
    DWORD SettlingTime;
    DWORD ScanSensingRange;
    DWORD FineTuneSensingRange;
} TUNER_ANALOG_CAPS_S;
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct TUNER_ANALOG_CAPS_S
{
    public uint Mode;
    public uint StandardsSupported;
    public uint MinFrequency;
    public uint MaxFrequency;
    public uint TuningGranularity;
    public uint SettlingTime;
    public uint ScanSensingRange;
    public uint FineTuneSensingRange;
}
Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure TUNER_ANALOG_CAPS_S
    Public Mode As UInteger
    Public StandardsSupported As UInteger
    Public MinFrequency As UInteger
    Public MaxFrequency As UInteger
    Public TuningGranularity As UInteger
    Public SettlingTime As UInteger
    Public ScanSensingRange As UInteger
    Public FineTuneSensingRange As UInteger
End Structure
import ctypes
from ctypes import wintypes

class TUNER_ANALOG_CAPS_S(ctypes.Structure):
    _fields_ = [
        ("Mode", wintypes.DWORD),
        ("StandardsSupported", wintypes.DWORD),
        ("MinFrequency", wintypes.DWORD),
        ("MaxFrequency", wintypes.DWORD),
        ("TuningGranularity", wintypes.DWORD),
        ("SettlingTime", wintypes.DWORD),
        ("ScanSensingRange", wintypes.DWORD),
        ("FineTuneSensingRange", wintypes.DWORD),
    ]
#[repr(C)]
pub struct TUNER_ANALOG_CAPS_S {
    pub Mode: u32,
    pub StandardsSupported: u32,
    pub MinFrequency: u32,
    pub MaxFrequency: u32,
    pub TuningGranularity: u32,
    pub SettlingTime: u32,
    pub ScanSensingRange: u32,
    pub FineTuneSensingRange: u32,
}
import "golang.org/x/sys/windows"

type TUNER_ANALOG_CAPS_S struct {
	Mode uint32
	StandardsSupported uint32
	MinFrequency uint32
	MaxFrequency uint32
	TuningGranularity uint32
	SettlingTime uint32
	ScanSensingRange uint32
	FineTuneSensingRange uint32
}
type
  TUNER_ANALOG_CAPS_S = record
    Mode: DWORD;
    StandardsSupported: DWORD;
    MinFrequency: DWORD;
    MaxFrequency: DWORD;
    TuningGranularity: DWORD;
    SettlingTime: DWORD;
    ScanSensingRange: DWORD;
    FineTuneSensingRange: DWORD;
  end;
const TUNER_ANALOG_CAPS_S = extern struct {
    Mode: u32,
    StandardsSupported: u32,
    MinFrequency: u32,
    MaxFrequency: u32,
    TuningGranularity: u32,
    SettlingTime: u32,
    ScanSensingRange: u32,
    FineTuneSensingRange: u32,
};
type
  TUNER_ANALOG_CAPS_S {.bycopy.} = object
    Mode: uint32
    StandardsSupported: uint32
    MinFrequency: uint32
    MaxFrequency: uint32
    TuningGranularity: uint32
    SettlingTime: uint32
    ScanSensingRange: uint32
    FineTuneSensingRange: uint32
struct TUNER_ANALOG_CAPS_S
{
    uint Mode;
    uint StandardsSupported;
    uint MinFrequency;
    uint MaxFrequency;
    uint TuningGranularity;
    uint SettlingTime;
    uint ScanSensingRange;
    uint FineTuneSensingRange;
}

HSP用 定義

HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。

; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; TUNER_ANALOG_CAPS_S サイズ: 32 バイト(x64)
dim st, 8    ; 4byte整数×8(構造体サイズ 32 / 4 切り上げ)
; Mode : DWORD (+0, 4byte)  st.0 = 値  /  値 = st.0   (lpoke/lpeek も可)
; StandardsSupported : DWORD (+4, 4byte)  st.1 = 値  /  値 = st.1   (lpoke/lpeek も可)
; MinFrequency : DWORD (+8, 4byte)  st.2 = 値  /  値 = st.2   (lpoke/lpeek も可)
; MaxFrequency : DWORD (+12, 4byte)  st.3 = 値  /  値 = st.3   (lpoke/lpeek も可)
; TuningGranularity : DWORD (+16, 4byte)  st.4 = 値  /  値 = st.4   (lpoke/lpeek も可)
; SettlingTime : DWORD (+20, 4byte)  st.5 = 値  /  値 = st.5   (lpoke/lpeek も可)
; ScanSensingRange : DWORD (+24, 4byte)  st.6 = 値  /  値 = st.6   (lpoke/lpeek も可)
; FineTuneSensingRange : DWORD (+28, 4byte)  st.7 = 値  /  値 = st.7   (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global TUNER_ANALOG_CAPS_S
    #field int Mode
    #field int StandardsSupported
    #field int MinFrequency
    #field int MaxFrequency
    #field int TuningGranularity
    #field int SettlingTime
    #field int ScanSensingRange
    #field int FineTuneSensingRange
#endstruct

stdim st, TUNER_ANALOG_CAPS_S        ; NSTRUCT 変数を確保
st->Mode = 100
mes "Mode=" + st->Mode