?? main.pas
字號:
unit Main;
interface
uses
Windows;
const
GIR_TRUE = 1;
GIR_FALSE = 0;
DEVICE_NUMBER = 802;
type
PByteArray = ^TByteArray;
TByteArray = array[0..32767] of Byte;
p_command = ^ t_command;
t_command = record
critical_section:_RTL_CRITICAL_SECTION;
Name : PChar;
ActionType : integer;
ActionSubType : integer;
sValue1 : PChar;
sValue2 : PChar;
sValue3 : PChar;
bValue1 : integer;
bValue2 : integer;
bValue3 : integer;
iValue1 : Integer;
iValue2 : Integer;
iValue3 : Integer;
lValue1 : Integer;
lValue2 : Integer;
lValue3 : Integer;
Binary : PByteArray;
Size : integer;
end;
PointerToPChar = ^PChar;
t_event_cb = function (eventstring : PCHAR; device : integer; payload :pointer; len : integer): integer; stdcall;
t_get_int_variable = function (name: PCHAR):integer;stdcall;
t_get_double_variable = function (name: PCHAR):integer;stdcall;
t_get_string_variable = function (name: PCHAR; buffer: PCHAR; len: integer):integer;stdcall;
t_set_int_variable = function (name: PCHAR; value : Integer):integer; stdcall;
t_set_double_variable = function (name: PCHAR; value : double):integer; stdcall;
t_set_string_variable = function (name: PCHAR; value : PCHAR):integer; stdcall;
t_delete_variable = procedure(name: PCHAR);stdcall;
t_open_list_variables = function ():integer;stdcall;
t_get_first_variable = function ():integer;stdcall;
t_close_list_variables = function ():integer;stdcall;
t_get_next_int_variable = function (name: PCHAR; len : integer; value : pInteger):integer;stdcall;
t_get_next_double_variable = function (name: PCHAR; len : integer; value : pDouble):integer;stdcall;
t_get_next_string_variable = function (name: PCHAR; len : integer; value : pCHAR; size: integer):integer;stdcall;
t_run_parser = function (str : PCHAR; error_value : pInteger ): integer;stdcall;
t_target_callback = procedure (HWN: HWND; command: p_command); stdcall;
t_set_command = procedure (command: p_command);stdcall;
t_target_enum = procedure (id : integer; callback :t_target_callback); stdcall;
t_realloc_pchar = procedure (old : PointerToPchar; newPCHAR: PChar); stdcall;
t_show_osd = procedure (timer : integer ); stdcall;
t_hide_osd = procedure ( ) ; stdcall;
t_start_osd_draw = function (var hwn: HWND; var dc: HDC; user : integer): integer; stdcall;
t_stop_osd_draw = procedure (dc : HDC);stdcall;
t_treepicker_show = function (parent : HWND; command_id : integer):integer;stdcall;
t_register_cb = function (id : integer; event_cb : t_event_cb; prefix : PCHAR; source_id : integer):integer; stdcall;
t_get_link_name = function (lvalue: integer; store : PCHAR; size : integer):integer; stdcall;
t_parse_girder_reg = function (orig: PCHAR; store: PCHAR; size : integer): integer; stdcall;
t_i18n_translate = function (orig: PCHAR; store: PCHAR; size : integer): integer; stdcall;
t_get_osd_settings = function (setting : integer) : DWORD ; stdcall;
t_get_osd_fontname = function (store : PCHAR; size : integer ):integer; stdcall;
t_send_event = function (eventstring : PCHAR; payload: pbytearray; len : integer; device : integer):integer; stdcall;
t_trigger_command = function (command_id : integer):integer; stdcall;
t_gir_malloc = function (size : integer ):pointer; stdcall;
t_gir_free = procedure (p : pointer); stdcall;
s_functions_1 = record
size : DWORD;
parse_girder_reg : t_parse_girder_reg;
get_link_name : t_get_link_name;
set_command : t_set_command;
target_enum : t_target_enum;
realloc_pchar : t_realloc_pchar;
show_osd : t_show_osd;
hide_osd : t_hide_osd;
start_osd_draw : t_start_osd_draw;
stop_osd_draw : t_stop_osd_draw;
treepicker_show : t_treepicker_show;
register_cb : t_register_cb;
i18n_translate : t_i18n_translate;
get_osd_settings : t_get_osd_settings;
get_osd_fontname : t_get_osd_fontname;
gir_malloc : t_gir_malloc;
gir_free : t_gir_free;
get_int_var : t_get_int_variable;
get_double_var : t_get_double_variable;
get_string_var : t_get_string_variable;
set_int_var : t_set_int_variable;
set_double_var : t_set_double_variable;
set_string_var : t_set_string_variable;
delete_var : t_delete_variable;
run_parser : t_run_parser;
send_event : t_send_event;
trigger_command : t_trigger_command;
parent_hwnd : HWND;
end;
function gir_open(gir_major_ver, gir_minor_ver, gir_micro_ver : integer; api_struct : Pointer ):integer; stdcall;
function gir_close():integer; stdcall;
function gir_start():integer; stdcall;
function gir_stop():integer; stdcall;
procedure gir_config(); stdcall;
procedure gir_name(data : PCHAR; len : integer); stdcall;
procedure gir_version(data : PCHAR; len : integer); stdcall;
procedure gir_description(data : PCHAR; len : integer); stdcall;
function gir_devicenum():integer; stdcall;
function gir_requested_api(max_api : integer ) : integer ;stdcall;
var
support: s_functions_1;
implementation
uses
ComThrd,saa713x;
procedure gir_description(data : PCHAR; len : integer); stdcall;
const
description = 'Written by Figyo (c) 2003';
begin
FillChar(data^,len,0);
Move(description,data^,length(description));
end;
procedure gir_name(data : PCHAR; len : integer); stdcall;
const name = 'ManliTV Remote control (WDM)';
begin
FillChar(data^,len,0);
Move(name,data^,length(name));
end;
procedure gir_version(data : PCHAR; len : integer); stdcall;
const ver = '1.00';
begin
FillChar(data^,len,0);
Move(ver,data,length(ver));
end;
function gir_devicenum():integer; stdcall;
begin
Result := DEVICE_NUMBER;
end;
function gir_requested_api(max_api : integer ) : integer ;stdcall;
begin
result:=1;
end;
function gir_open(gir_major_ver, gir_minor_ver, gir_micro_ver : integer; api_struct : Pointer ):integer; stdcall;
var
i: integer;
begin
result := gir_true;
for i:=0 to sizeof ( s_functions_1 ) -1 do
pbytearray(@support)[i] := pbytearray(api_struct)[i];
if (support.size <> sizeof(s_functions_1)) then begin
result := gir_false;
exit;
end;
end;
function gir_close():integer; stdcall;
begin
result:=gir_TRUE;
if hPollThread <> 0 then begin
PollThreadTerminate();
PollThreadWaitFor();
end;
end;
function gir_start():integer; stdcall;
begin
PollThreadCreate();
Result:=GIR_true;
end;
function gir_stop():integer; stdcall;
begin
if hPollThread <> 0 then begin
PollThreadTerminate();
PollThreadWaitFor();
end;
Result := GIR_TRUE;
end;
procedure gir_config(); stdcall;
begin
MessageBox(0,'Nothing to configure :)','Information',MB_OK + MB_IconInformation);
// RC_LowGpioPin := $08;
// RC_HighGpioPin := $0c;
// RC_ResetGpioPin := $0f;
// RC_StatusGpioPin := $0e;
end;
end.
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -