UMD_Impl.pas ( File view )

  • By sathex 2016-03-20
  • View(s):0
  • Download(s):0
  • Point(s): 1
			unit UMD_Impl;

interface

uses UnitMDInterface,UMDDefs,Windows,SysUtils,Messages,
     Forms,UDVBCoreToMD,DVBCore,Classes;

type TMultiDec=Class(TObject)
  private
    function GetMultiDecWindow: HWND;
    procedure SetHotKey(const Value: CHAR);
    procedure SetmvarSelfClass(const Value: TObject);
    function GetDLLID: integer;
    Procedure RegisterClass;
    procedure SetOnStart(const Value: TMDOnStart);
    procedure SetOnExit(const Value: TMDOnExit);
    procedure SetOnMenuSelect(const Value: TMDOnMenuSelect);
    procedure SetOnHotKey(const Value: TMDOnHotKey);
    procedure SetOnChannelChange(const Value: TMDOnChannelChange);
    procedure SetOnFilterClose(const Value: TMDOnFilterClose);
    procedure SetOnRecPlay(const Value: TMDOnRecPlay);
    procedure SetOnOSDKey(const Value: TMDOnOSDKey);
    procedure SetOnFilterData(const Value: TMDOnFilterData);
    function GetDLLName: string;
    procedure SetDLLName(const Value: string);
    function GetPlugInFolder: string;
    function GetAPIVersion: string;
    function GetPlugInFile: string;
    function GetFiltersBufferPendingSize: DWORD;
    function GetFilterName(const index: integer): string;
    function GetFilterTransferredData(const index: integer): int64;
    function GetFilterTransferredDataFromHandle(const FilterHandle: integer): int64;
    function GetFilterElapsedSinceLastReceive(const FilterHandle: integer): DWORD;
    function GetAPIVersionMultiDec: DWORD;
    function GetPlugInSystem: MDAPI_PLUGIN_SYSTEM;
    function GetDockedWindow: BOOLEAN;
    procedure SetDockedWindow(const Value: BOOLEAN);
  Protected
    Events: TMultiDecPlugInEvents;
    mvarSelfClass: TObject;
    mvarCalculatedMultidecAPIVersion: DWORD;
    function SplitString(st: String): TStringList;
  Public
    property OnStart: TMDOnStart read Events.OnStart write SetOnStart;
    property OnExit: TMDOnExit read Events.OnExit write SetOnExit;
    property OnMenuSelect: TMDOnMenuSelect read Events.OnMenuSelect write SetOnMenuSelect;
    property OnHotKey: TMDOnHotKey read Events.OnHotKey write SetOnHotKey;
    property OnChannelChange: TMDOnChannelChange read Events.OnChannelChange write SetOnChannelChange;
    property OnFilterClose: TMDOnFilterClose read Events.OnFilterClose write SetOnFilterClose;
    property OnRecPlay: TMDOnRecPlay read Events.OnRecPlay write SetOnRecPlay;
    property OnOSDKey: TMDOnOSDKey read Events.OnOSDKey write SetOnOSDKey;
    property OnFilterData: TMDOnFilterData read Events.OnFilterData write SetOnFilterData;
    property Owner: TObject read mvarSelfClass write SetmvarSelfClass;
    property FiltersBufferPendingSize: DWORD read GetFiltersBufferPendingSize;

    property MultiDecWindow: HWND read GetMultiDecWindow;
    property DLL_ID: integer read GetDLLID;
    Property HotKey: CHAR write SetHotKey;
    property DLL_Name: string read GetDLLName write SetDLLName;
    property PlugInFolder: string read GetPlugInFolder;
    property APIVersion: string read GetAPIVersion;
    property APIVersionMultiDec: DWORD read GetAPIVersionMultiDec;
    property PlugInFile: string read GetPlugInFile;
    property PlugInSystem: MDAPI_PLUGIN_SYSTEM read GetPlugInSystem;
    property DockedWindow: BOOLEAN read GetDockedWindow write SetDockedWindow;

    function StartFilter(PID: WORD; FilterType: integer; Name: String): integer;
    procedure StopFilter(FilterHandle: integer; Inmediate: Boolean);
    Procedure StopAllFilters(Inmediate: Boolean);
    Function GetFilterRunningTime(FilterHandle: integer): DWORD;
    property FilterName[const index: integer]: string read GetFilterName;
    property FilterTransferredData[const index: integer]: int64 read GetFilterTransferredData;
    property FilterTransferredDataFromHandle[const FilterHandle: integer]: int64 read GetFilterTransferredDataFromHandle;
    property FilterElapsedSinceLastReceive[const FilterHandle: integer]: DWORD read GetFilterElapsedSinceLastReceive;

    function CheckMenuItem(MenuItemID: integer; Checked: Boolean): Boolean;
    procedure SendDecryptWord(WordIndex: BYTE; WordValue: PBYTEARRAY);
    procedure ResetDecryptWords;
    function GetCurrentDecryptWordsPointer(): PBYTEARRAY;
    function SetProgram(Programm: TMDProgram82): Boolean;

    Constructor Create;
    Destructor Destroy; override;
end;

implementation

var
    CW: array [0..1,0..7] of BYTE;
{
 TMultiDec 
}

function TMultiDec.CheckMenuItem(MenuItemID: integer;
  Checked: Boolean): Boolean;
var
    NS: integer;
begin
    if MD.PlugInSystem=MDAPI_DVBCORE Then begin
        //Non sense in DVBCore API
        Result:=false;
        exit;
    end;
    //CheckMenuItem(GetMenu(m_MultiDecWindow),IDM_SAMPLE_STARTFILTER,m_filter_running ? MF_CHECKED:MF_UNCHECKED);
    if Checked Then begin
        NS:=MF_CHECKED;
    end else begin
        NS:=MF_UNCHECKED;
    end;
    NS:=NS or MF_BYCOMMAND;
    if Windows.CheckMenuItem(GetMenu(MD.WindowHandle),MenuItemID,NS)=$FFFFFFFF Then begin
        Result:=false;
    end else begin
        Result:=true;
    end;
end;

constructor TMultiDec.Create;
begin
    Inherited;
    MD.RegisterClass(Self,Events);
    ResetDecryptWords;
end;

destructor TMultiDec.Destroy;
begin
  inherited;
end;

function TMultiDec.GetAPIVersion: string;
begin
    Result:=MD.APIVersion;
end;

function TMultiDec.GetAPIVersionMultiDec: DWORD;
var
    API: string;
    L: TStringList;
    code: integer;
    v: single;
    s: String;
begin
    if mvarCalculatedMultidecAPIVersion<>0 Then begin
        Result:=mvarCalculatedMultidecAPIVersion;
        Exit;
    end;
    if MD.PlugInSystem<>MDAPI_MULTIDEC Then begin
        Result:=0;
        Exit;
    end;
    API:=MD.APIVersion;
    L:=SplitString(API);
    s:=l.Strings[2];
    val(s,v,code);
    v:=v*100;
    s:='$'+inttostr(round(v));
    Val(s,v,code);
    L.Free;
    mvarCalculatedMultidecAPIVersion:=Round(V);
    Result:=Round(V);
end;

function TMultiDec.GetCurrentDecryptWordsPointer: PBYTEARRAY;
begin
    Result:=@CW[0,0];
end;

function TMultiDec.GetDLLID: integer;
begin
    Result:=MD.DLL_ID;
end;

function TMultiDec.GetDLLName: string;
begin
    Result:=MD.DLLName;
end;

function TMultiDec.GetDockedWindow: BOOLEAN;
begin
    Result:=MD.DockedWindows;
end;

function TMultiDec.GetFilterElapsedSinceLastReceive(
  const FilterHandle: integer): DWORD;
begin
    Result:=MD.FilterElapsedSinceLastReceive[FilterHandle];
end;

function TMultiDec.GetFilterName(const index: integer): string;
begin
    Result:=MD.FilterName[index];
end;

function TMultiDec.GetFilterRunningTime(FilterHandle: integer): DWORD;
begin
    Result:=MD.GetFilterRunningTime(FilterHandle);
end;

function TMultiDec.GetFiltersBufferPendingSize: DWORD;
begin
    Result:=MD.FiltersBufferPending;
end;

function TMultiDec.GetFilterTransferredData(const index: integer): int64;
begin
    Result:=MD.FilterTransferredData[index];
end;

function TMultiDec.GetFilterTransferredDataFromHandle(const FilterHandle: integer): int64;
begin
    Result:=MD.FilterTransferredDataFromHandle[FilterHandle];
end;

function TMultiDec.GetMultiDecWindow: HWND;
begin
    Result:=MD.WindowHandle;
end;

function TMultiDec.GetPlugInFile: string;
begin
    Result:=MD.PlugInFile;
end;

function TMultiDec.GetPlugInFolder: string;
begin
    Result:=MD.PlugInFolder;
end;

function TMultiDec.GetPlugInSystem: MDAPI_PLUGIN_SYSTEM;
begin
    Result:=MD.PlugInSystem;
end;

procedure TMultiDec.RegisterClass;
begin
    MD.RegisterClass(mvarSelfClass,Events);
end;
...
...
(Please download the complete source code to view)
			
...
Expand> <Close

Want complete source code? Download it here

Point(s): 1

Download
0 lines left, continue to read
Sponsored links

File list

Tips: You can preview the content of files by clicking file names^_^
Name Size Date
About.rtf20.49 kB2005-03-15|17:16
changelog.txt4.26 kB2005-03-15|17:16
clean.bat92.00 B2005-01-05|02:35
DVBCore.pas31.98 kB2004-12-17|23:45
frmPPVInfo.dfm15.69 kB2004-12-19|19:54
frmPPVInfo.pas6.17 kB2005-03-03|01:02
01.96 kB
About.bmp3.05 kB2004-12-17|23:52
About.ico2.40 kB2004-12-17|23:52
Add.bmp1.30 kB2004-12-17|23:52
bluenote.ico7.23 kB2004-12-17|23:52
bug.jpg6.04 kB2005-01-05|02:35
CAM.ico2.40 kB2004-12-17|23:52
Close.bmp3.05 kB2004-12-17|23:52
EPG.bmp1.05 kB2005-01-05|21:10
EPG.ico1.37 kB2004-12-17|23:52
EPGOFF.bmp1.62 kB2004-12-17|23:52
EPGON.bmp1.62 kB2004-12-17|23:52
EPG_Gliph.bmp3.43 kB2004-12-17|23:52
Event.ico1.37 kB2004-12-17|23:52
jetons.ico1.37 kB2004-12-17|23:52
leftLogo.bmp9.96 kB2004-12-17|23:52
logger.ico1.68 kB2004-12-17|23:52
MagicWand.bmp1.30 kB2004-12-17|23:52
MagicWand.ico1.37 kB2004-12-17|23:52
MAS.ico1.37 kB2004-12-17|23:52
MENOS.ico1.37 kB2004-12-17|23:52
nemesis.ico4.19 kB2004-12-17|23:52
Phoenix.ico1.72 kB2004-12-17|23:52
Provider.ico1.37 kB2004-12-17|23:52
Remove.bmp1.30 kB2004-12-17|23:52
Reset.bmp3.05 kB2004-12-17|23:52
Restart.bmp1.30 kB2004-12-17|23:52
Save.bmp2.05 kB2004-12-17|23:52
scriptengine.ico7.23 kB2004-12-17|23:52
ScriptsEngine.bmp6.80 kB2004-12-17|23:52
Tools.bmp246.00 B2004-12-17|23:52
tuxprogramming.jpg4.15 kB2005-01-13|19:01
V9Card.jpg11.00 kB2005-03-03|01:02
IFSI_IniFiles.pas10.45 kB2004-12-19|19:54
MpgLib.DLL141.50 kB2004-12-24|17:03
PMCAM0.00 B2005-03-15|17:18
PMCAM4.67 kB2005-01-05|17:24
PMCAM4.69 kB2005-01-05|17:24
PMCAM4.52 kB2005-01-05|17:24
PMCAM.rc3.60 kB2004-12-17|23:47
PMCAM2.dpr6.30 kB2005-03-11|20:15
PMCAM2.res1.70 kB2005-03-15|17:16
PMCAM2StandAlone.dpr1.19 kB2005-03-03|01:02
PMCAM2StandAlone.res4.95 kB2005-03-11|20:15
PMCAMMenu.rc259.00 B2004-12-26|20:10
PMCAMMenu.RES162.25 kB2005-03-15|17:16
rUPClickSplitter.res740.00 B2004-12-19|19:54
santa_rock.jpg5.65 kB2004-12-24|17:59
UBitManager.pas4.18 kB2004-12-17|23:45
uDecode123.pas4.01 kB2004-12-29|01:33
UDVBConditionalAccessSystemNames.pas1.49 kB2004-12-17|23:45
UDVBCoreToMD.pas4.59 kB2004-12-17|23:45
UDVBPIDNames.pas1.23 kB2004-12-17|23:45
UDVBTablesHolder.pas2.68 kB2004-12-28|02:17
UEPGEntry.pas3.29 kB2004-12-17|23:45
UEPGMHW.dfm7.72 kB2005-01-11|02:38
UEPGMHW.pas40.85 kB2005-01-11|02:38
UfrmAddFilter.dfm6.86 kB2004-12-17|23:46
UfrmAddFilter.pas3.68 kB2004-12-17|23:45
UfrmCAM.dfm217.00 kB2005-03-15|03:22
UfrmCAM.pas159.37 kB2005-03-15|17:16
ufrmDLLForm.dfm420.00 B2004-12-19|19:54
ufrmDLLForm.pas1.87 kB2004-12-26|20:10
UfrmEMM.dfm1.28 kB2004-12-17|23:46
UfrmEMM.pas1.47 kB2004-12-17|23:45
UfrmEPGAdvanced.dfm7.01 kB2005-01-05|21:10
UfrmEPGAdvanced.pas2.56 kB2005-01-05|21:10
UfrmMHWEPGEntries.dfm3.81 kB2004-12-17|23:46
UfrmMHWEPGEntries.pas4.33 kB2004-12-17|23:45
ufrmMHWRadio.dfm35.85 kB2005-01-21|18:53
ufrmMHWRadio.pas37.84 kB2005-01-21|18:53
UfrmPMTDetails.dfm2.31 kB2005-01-21|18:53
UfrmPMTDetails.pas2.74 kB2005-01-21|18:53
UfrmWarningOnExit.dfm15.64 kB2005-01-05|21:10
UfrmWarningOnExit.pas1.44 kB2005-01-05|21:10
ULogEngine.pas15.89 kB2005-03-12|17:11
UMDDefs.pas4.07 kB2005-03-03|01:02
UMD_Impl.pas11.26 kB2005-03-03|01:02
United32.pas14.20 kB2004-12-17|23:45
UnitISO639_3.pas10.04 kB2005-03-03|01:02
UnitMDInterface.pas28.92 kB2005-03-15|03:22
UnitTimer.pas1.39 kB2004-12-17|23:45
Unit_CRC32.pas3.62 kB2004-12-17|23:45
uPESToTS.pas6.11 kB2005-03-03|01:02
UScriptFunctions.pas2.97 kB2005-01-03|16:45
UScriptsEditor.dfm58.10 kB2005-01-21|18:53
UScriptsEditor.pas22.02 kB2005-03-03|01:02
USECAManager.pas18.26 kB2005-03-03|01:02
USECATableStore.pas12.92 kB2004-12-17|23:45
USECA_EMM.pas7.74 kB2005-03-12|03:36
USmartCardISO.pas14.45 kB2004-12-17|23:45
UTfrmMultiDec.dfm407.00 B2005-01-21|18:53
UTfrmMultiDec.pas4.38 kB2005-01-21|18:53
UTranslate.pas6.49 kB2004-12-24|17:03
UTS184ToBitFilter.pas36.28 kB2005-03-11|20:15
uUPClickSplitter.dcr488.00 B2004-12-19|19:54
uUPClickSplitter.dcu18.09 kB2005-03-03|01:02
uUPClickSplitter.pas20.43 kB2004-12-26|20:10
PMCAM2_2.50.zip870.87 kB2016-03-19|22:08
...
Sponsored links

UMD_Impl.pas (1.30 MB)

Need 1 point
Your Point(s)

Your Point isn't enough.

Get point immediately by PayPal

More(Debit card / Credit card / PayPal Credit / Online Banking)

Submit your source codes. Get more point

LOGIN

Don't have an account? Register now
Need any help?
Mail to: support@codeforge.com

切换到中文版?

CodeForge Chinese Version
CodeForge English Version

Where are you going?

^_^"Oops ...

Sorry!This guy is mysterious, its blog hasn't been opened, try another, please!
OK

Warm tip!

CodeForge to FavoriteFavorite by Ctrl+D