Source-Info:
This DLL enables the communication between dboxTV and D-Box2 Neutrino.
It may be used as a template for other box interfaces.
This DLL provides functionality for the current selected box in dboxTV!
All transfered data types are compatible with other languages, so you
don't have to use delphi and this code! All functions use stdcall!
data flow: dboxTV -> DLL -> box webinterface -> dboxTV
-> e.g. dboxTV wants the current channel id
1. dboxTV calls the DLL function GetCurrentChannelID()
2. DLL function calls GetURL(URL_DBOX_ZAPTO) and returns the data to dboxTV
3. dboxTV uses the data in context
All functions were created in relationship to neutrino/neutrinoHD so there
is a high possibility to miss a function or parameter which is needed for
other interfaces and future use.
If you miss something plz send me an email to admin@dschaek.de or visit
my developer forum http:forum.dschaek.de/board.php?boardid=30
To transfer bouquet data between dll and application, dboxTV will give
you some function pointers with the Init() function which you have to
use for adding bouquets/channels and channelprograms (e.g. AddBouquet()).
The function pointers are declared in UntDataDLL.pas.
To understand the function-handling you have to know the structure:
bouquet 1 (AddBouquet(Bouquet1))
|
channel 1 (AddChannel(Bouquet1Index, Channel))
|
channelprogram 1 (AddChannelProgram(ChannelIndex, ChannelProgram))
channelprogram 2 (AddChannelProgram(ChannelIndex, ChannelProgram))
...
|
channel 2 (AddChannel(Bouquet1Index, Channel))
...
bouquet 2 (AddBouquet(Bouquet2))
...
These functions, except AddChannelProgram(), will log the given data in
dboxTV if 'Log HTTP' is enabled. For AddChannelProgram() you have
to enable 'Log EPG' in dboxTV->Options->Advanced.
You can always log directly into the 'dboxTV.log' via Log(), you
don't need to implement your own logging.
There are also function pointers for http/regex/telnet functionality of dboxTV
you can use, but you don't have to:
1.) HTTP
Have a look ar UntHttpClient.pas and Init() to understand how you can
get data from your box via http communication over the dboxTV http client.
It is based on TIEHTTPD from Kyriacos Michael, which is using the wininet.dll.
Html special chars and utf8 will be translated automatically.
2.) REGEX
All parsing is done via regex functionality of dboxTV and with a little
'know how' it is very adaptable to other circumstances.
dboxTV uses TRegExpr from Andrey V. Sorokin (http:anso.virtualave.net/)
I recommend using "TestRegExp.exe" to find the best way parsing data, if
it is working there, it will be working inside this dll.
Plz have a look at UntRegEx.pas header info to understand how TRegExpr
works and how to implement the dboxTV functions.
Html special chars and utf8 will be translated automatically.
3.) TELNET
Just a Function to send a command to the dboxTV telnet console
(login in dboxTV required)
Important: -All box functions should be implemented completely and correctly or
dboxTV shows undefined behaviour!
-The http client used in dboxTV is not thread safe so therefore the
FktGetURL_EPG is needed.
-dboxTV telnet component is asynchron, so you have to use a delay!
Files: -dboxTV_neutrino.dpr -> all dll functions and export
-UntURL.pas -> box specific urls
-UntHelpers.pas -> useful string handling functions
-UntHttpClient.pas -> http request handling using dboxTV functions
-UntRegEx.pas -> regex handling using dboxTV functions
-UntDataDLL.pas -> data structures/function pointers for exchange
with dboxTV
Übersicht über die Funktionen, die implementiert werden müssen:
Init
InitHttp
InitRegEx
Close
Check
GetBoxName
GetDLLAuthor
GetDLLVersion
GetTime
GetRecordMode
GetSPTSMode
SetSPTSMode
SetMessageOnTv
SetRCLock
SetRCUnlock
GetBoxMode
SetBoxMode
GetStreamInfo
GetStreamURL
SetUDPStreamStop
SetZapChannel
GetSubChannels
SetRCEMKey
GetCurrentChannelID
SetShutdown
SetStandby
SetWakeUp
SetReboot
GetOSDShot
GetBouquets
GetEPGCurrentChannels
GetEPGChannel
__________________ dboxTV
Philips D-Box2 (SAT)
BluePeer v1.2.1
yWeb v2.7.0.4
nhttpd/3.1.8 (yhttpd_core/1.2.0)
VLC v0.8.6h
WinXP SP2
|