|
SkyAdapterTunerGet
/ получение информации о тюнере /
int SkyAdapterTunerGet(DWORD AdapterHandle, TTunerStatus* TunerStatus, int tsSize);
применение:
struct TTunerStatus
{
DWORD freq; // hz
DWORD lof; // hz
DWORD sr; // ksym
DWORD fec; // 0=auto 1=1/2 2=2/3 3=3/4 4=5/6 5=7/8 6=auto
DWORD pol; // 0=horizontal 1=vertical;
DWORD lnb_switch; // 0
DWORD diseqc; // 0=none $10002=SimpleA $10006=SimpleB
// $20002=Pos_A - Opt_A
// $20006=Pos_B - Opt_A
// $2000A=Pos_A - Opt_B
// $2000E=Pos_B - Opt_B
DWORD u1; // ?
DWORD sigq; // value 3 if tuner locked /
значение 3 если тюнер залочен
DWORD u2; // ?
DWORD u3; // 1 - this value gets in
time while switching tuner an another freq
DWORD u4; // ?
DWORD u5; // ?
DWORD sig_str; // signal strength 0-100 (but realy there
is something wrong (values like 0, 128, 255))
DWORD u6; // ?
DWORD u7; // ?
BYTE u161; // ? u16[1] - 232 unknown if driver < 4.3.0
/ 1
BYTE u162; // ? u16[2] - 3 = tuner locked = sigq / 1
BYTE u163; // ? u16[3] - unknown / signal level
BYTE u164; // ? u16[4] - unknown / unknown
BYTE u165; // ? u16[5] - 1 / unknown
BYTE u166; // ? u16[6] - 1 / unknown
BYTE u167; // ? u16[7] - signal level = u64[3]
BYTE u168; // ? u16[8] - value = sig_str
DWORD u64[30]; // ? u64[3] - real tuner signal level 0-100
/ реальный уровень сигнала
// u64[1]/1000 = SNR (if drivers >= 4.3.0)
};
int (WINAPIV* SkyAdapterTunerGet)(int, DWORD*);
HMODULE skydll;
DWORD AdapterHandle;
TTunerStatus TunerStatus;
skydll=LoadLibrary("SkyDll.dll");
(FARPROC&)SkyAdapterTunerGet=GetProcAddress(skydll,"SkyAdapterTunerGet");
if(SkyAdapterTunerGet(AdapterHandle, &TunerStatus, sizeof(TunerStatus))) return 0;
примечание:
результат выполнения = 0 если нет ошибок
/
|