WinFuture-Forum.de: Projekt: Winfuture Mediadesk - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
  • 12 Seiten +
  • « Erste
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • Letzte »

Projekt: Winfuture Mediadesk Freeware MediaCenter Software

#114 Mitglied ist offline   HollaDieWaldfee2005 

  • Gruppe: aktive Mitglieder
  • Beiträge: 39
  • Beigetreten: 01. Mai 05
  • Reputation: 0

geschrieben 28. Juni 2005 - 23:11

Das Problem ist, das die Komponente DVBCore komplett undokumentiert ist und ich mehr oder weniger einfach dinge errate und das z.Z. mit erfolg. Eine Unit dafür zu machen, ist würde ich behaupten ziemlich uneffektiv, da ich z.Z. nur eine Unit und eine dll für den DVB-Spaß habe, wo aber auch alles drinne steht, blos ohne irgendwelchen brauchbaren informationen. Die Type's der Unit selbst sind riesig (auszug siehe unten) als das man das noch irgendwie vereinfach könnte. Ich bin parallel schon dabei, einfach die wie einen Senderwechsel und der gleichen per Unit zu vereinfachen, aber eine schnelle und unkomplizierte lösung wird das leider nicht.

DVBCore ist auch das einzige was überhaupt DVB-S/DVB-T/DVB-C für sogut wie alle Karten einheitlich zur Verfügung stellt, aber man merkt den beigeschmack der C++ Programmierung. Es ist auch das einzige, was überhaupt bei Delphi zur Verfügung steht.

Du könntest mir ja schicken, was du bereits alles hast. Ich arbeite es ein, lasse einen Patch generieren oder schicke dir, das packet wieder zurück.

const

(* Valid options for DVBParams. May be mixed*)
SET_DISEQ           = $0000001; //SetUp DiSEq data
SET_TUNER           = $0000002; //SetUp Tuner data
SET_PIDS            = $0000004; //SetUp PIDs Audio, Video, PCR

// Be sure you supplied all PIDs before start capture.
// if all 3 PIDs (Audio, Video, PCR) not equal zero then capture starts in Audio/Video mode.
// if Video or PCR PID equals to zero then capture starts in Audio-only mode.
// if Audio PID equals to zero then capture doesn't starts.

SET_STARTCAPTURE	= $0000018;	//Start Capture AV
SET_STOPCAPTURE  = $0000008;	//Stop	Capture AV
SET_COPYALLDATA     = $0010000; //Copy whole TP_INFO structure to internal DVBCore Cache

GET_PATINFO         = $0000100; //Get Program Association Table (PMT PIDs, Channel IDs)
GET_CATINFO         = $0000200; //Get Condotion Access Table (All EMM PIDs)
GET_PMTINFO 	 = $0000400;	//Get Program Map Table for specified channel (Audio, Video, PCR, ECM PIDs)
GET_SDTINFO 	 = $0000800;
GET_ALLPMTINFO  = $0001000;	//Same as before but for all channels from current transponder
GET_ALLTABLESINFO   = GET_PATINFO or GET_CATINFO or GET_ALLPMTINFO or GET_SDTINFO;
GET_TUNERDISEQINFO  = $0002000; //Get current parameters from Tuner and DiSEq (allways from cache)
GET_ALLINFO         = GET_PATINFO or GET_CATINFO or GET_ALLPMTINFO or GET_SDTINFO or GET_TUNERDISEQINFO;
GET_TRYFROMCACHE    = $0100000; //Try Get info from DVBCore cache if data exists, otherwise get it from stream
GET_ONLYFROMCACHE   = $0200000; //Allways get info from cache (even it's invalid. Check appropriate flags to make sure data is valid)
SET_FASTMODE  = $1000000; //Fast getting info. Call DVBParams(NULL,SET_FASTMODE) after last use this mode!

(**)
(* Tip: You may mix some flags. for example: (SET_DISEQ | SET_TUNER | GET_ALLINFO| SET_PIDS) *)
(* It will setup DiSEq and Tuner then gat all info about this transponder, then setup PIDS of first channel.*)
(**)
LNB_VOLT00      = 0; (* zero volt (power off)*)
LNB_POWEROFF    = 0; (* zero volt (power off)*)
LNB_VOLT13      = 13; (* 13 volt (vertical polarisation)*)
LNB_POL_VERT    = 13; (* 13 volt (vertical polarisation)*)
LNB_VOLT18      = 18; (* 18 volt (horizontal polarisation)*)
LNB_POL_HORZ    = 18; (* 18 volt (horizontal polarisation)*)

VITERBI_AUTO     = 0; (* DVB-S: automtic detection of viterbi rate*)
VITERBI_RATE_1_2 = 1; (* DVB-S: viterbi rate: 1/2*)
VITERBI_RATE_2_3 = 2; (* DVB-S: viterbi rate: 2/3*)
VITERBI_RATE_3_4 = 3; (* DVB-S: viterbi rate: 3/4*)
VITERBI_RATE_4_5 = 4; (* DVB-S: viterbi rate: 4/5*)
VITERBI_RATE_5_6 = 5; (* DVB-S: viterbi rate: 5/6*)
VITERBI_RATE_6_7 = 6; (* DVB-S: viterbi rate: 6/7*)
VITERBI_RATE_7_8 = 7; (* DVB-S: viterbi rate: 7/8*)
VITERBI_RATE_8_9 = 8; (* DVB-S: viterbi rate: 8/9*)

DVB_C_QAM_16  =0;	// DVB-C: Modulation:  16-QAM
DVB_C_QAM_32  =1;	// DVB-C: Modulation:  32-QAM
DVB_C_QAM_64  =2;	// DVB-C: Modulation:  64-QAM (default)
DVB_C_QAM_128  =3;	// DVB-C: Modulation: 128-QAM
DVB_C_QAM_256  =4;	// DVB-C: Modulation: 256-QAM

DVB_CT_BW_6MHz  =0;   // DVB-C/T BandWidth 6MHz
DVB_CT_BW_7MHz  =1;   // DVB-C/T BandWidth 7MHz
DVB_CT_BW_8MHz  =2;   // DVB-C/T BandWidth 8MHz
DVB_CT_BW_AUTO  =3;   // DVB-C/T Automatic BandWidth Detection
DVB_CT_BW_NONE  =4;   // reserved

DISEQC_NONE     = $00;
DISEQC_SIMPLE    = $10;
DISEQC_V1_0     = $20;

// DiSEqC v1.0 Constants
DISEQC_HIGH_NIBLE  = $F0;
DISEQC_LOW_BAND    = $00;
DISEQC_HIGH_BAND   = $01;
DISEQC_VERTICAL    = $00;
DISEQC_HORIZONTAL  = $02;
DISEQC_POSITION_A  = $00;
DISEQC_POSITION_B  = $04;
DISEQC_OPTION_A    = $00;
DISEQC_OPTION_B    = $08;

//For simple DiSEqC management mode
DISEQC_V1_0_LNB1   = DISEQC_V1_0 or DISEQC_POSITION_A or DISEQC_OPTION_A;
DISEQC_V1_0_LNB2   = DISEQC_V1_0 or DISEQC_POSITION_B or DISEQC_OPTION_A;
DISEQC_V1_0_LNB3   = DISEQC_V1_0 or DISEQC_POSITION_A or DISEQC_OPTION_B;
DISEQC_V1_0_LNB4   = DISEQC_V1_0 or DISEQC_POSITION_B or DISEQC_OPTION_B;

//Simple Tone switches currently not supported
DISEQC_SIMPLE_LNB1 = DISEQC_SIMPLE or DISEQC_POSITION_A;
DISEQC_SIMPLE_LNB2 = DISEQC_SIMPLE or DISEQC_POSITION_B;


SPECTRAL_INVERSION_AUTO = 2; (* automatic detection of spectral inversion*)
SPECTRAL_INVERSION_ON   = 0; (* spectral inversion*)
SPECTRAL_INVERSION_OFF  = 1; (* no spectral inversion*)

(* const for wDataValid*)
PAT_VALID  =1;	//info about PAT is valid
CAT_VALID  =2;	//info about Condition Access in current structure is valid
PMT_VALID  =4;
SDT_VALID  =8;

(*const for wCount, wChCount*)
CURRENT_NONE        = $FFFF;

TPI_CA_COUNT	=64;
TPI_AUD_COUNT	=16;
TXT_MGZ_COUNT	=4;
TPI_CH_COUNT	=128;
TPI_NAME_LEN	=64;

//For AUD_PID->dwFlags
DVB_AUDIO_ISO11172  =$00;
DVB_AUDIO_ISO13818  =$01;
DVB_AUDIO_AC3  =$02;
DVB_AUDIO_TYPEMASK	=$0F;

type

CA_INFO = packed record
    wCount:     WORD; (*Quantity of PIDs*)
    wCurrent:   WORD; //Current PID. For current EMM dont use this field. use Channel.wEMMCurrent instead!
    wCA_Type:   packed array [0..TPI_CA_COUNT-1] of WORD; (*Type of CA system (i.e. Viaccess = 0x0500)*)
    wPID:       packed array [0..TPI_CA_COUNT-1] of WORD; (*PID for CA*)
end;

AUD_PID = packed record
    wCount:     WORD; (*Quantity of PIDs*)
    wCurrent:   WORD; (*Current PID*)
    wPID:       packed array [0..TPI_AUD_COUNT-1] of WORD; (*PID :)*)
    dwFlags:    packed array [0..TPI_AUD_COUNT-1] of DWORD; //see DVB_AUDIO_*
end;

TXT_MGZ = packed record
    wCount:     WORD; //Quantity of Magazines
    wCurrent:   WORD; //Current Magazine
    wOpt:       packed array [0..TXT_MGZ_COUNT-1] of WORD;  //Option bits: 0-7 page number, 8-10 - magazine number, 11-15 - Teletext Type
    dwLang:     packed array [0..TXT_MGZ_COUNT-1] of DWORD; //Language ID for Magazine
end;

CH_INFO = packed record
    wDataValid: WORD;       //Flag for validating data in all fields except wSID and wPMT (validate these fields by TP_INFO.wDataValid)
	dwUserFlags:DWORD;  //User defined flags or variable;
    wSID:       WORD;       //Channel ID
    wPMT:       WORD;       //PID for Program Map Table
	wTeletext:  WORD; 	 //Teletext PID. 0 if none
    wType:      WORD;
    wScrambled: WORD;
    Ch_Name:    packed array [0..TPI_NAME_LEN-1] of char; (*Channel Name*)
    Prov_Name:  packed array [0..TPI_NAME_LEN-1] of char; (*Provider Name*)
    wPCR:       WORD;       //PID for Program Clock Reference
    wVideo:     WORD;       //Video PID
    Audio:      AUD_PID;    //Array of Audio PIDs
    TxtMgz:     TXT_MGZ;    //Array of Teletext Magazines
	wEMMCurrent:WORD;      //Current EMM pid for current channel
    ECM:        CA_INFO;    //Array or ECM PIDs
end;

TP_INFO = packed record
    HdrVer:         DWORD;  //Structure version. Please check this for sure data is in expected form*)
    wDataValid:     WORD;   //Flag for validating data in wChCount, wChCurrent, all EMMs, all wPMT and all wSID*)
	dwUserFlags:    DWORD;  //User defined flags or variable
    DiSEqData:      packed array [0..31] of BYTE; //Data for DiSEq
    bDiSEqLen:      BYTE;   //Length of DiSEq Data
    bDiSEqToneburst:BYTE;
    dwSymbRate:     DWORD;  //Symbol Rate of Transponder (DVB-S and DVB-C only)
    dwFreq:         DWORD;  //Frequency
    dwLNB_Power:    DWORD;  //Power for LNB (DVB-S only)
    dwInversion:    DWORD;  //Spectral Inversion
    dwLOF:          DWORD;  //LOF for DVB-S, QAM for DVB-C
    bF22KHz:        BOOL;   //ON/OFF 22KHz (DVB-S only)
    dwViterbi:      DWORD;  //Viterbi Rate (DVB-S only)
    wChCount:       WORD;   //Quantity of Channels of current transponder
    wChCurrent:     WORD;   //Current Channel
    Channel:        packed array [0..TPI_CH_COUNT-1] of CH_INFO; //Channel Map
    EMM:            CA_INFO;//Array of EMM PIDs
    wSatID:         WORD;   //it's a position of Satellite in degrees. i.e.: 0360, 0192, 0050..
     	 //mustbe filled by application before set-up tuner if it supports DiSEqC plugins.
	wNetID:         WORD;	//Network ID
	wTSID:          WORD;	//Transport Stream ID
end;

pTP_INFO = ^TP_INFO;

(*Main management function to SET/GET parameters about transponder and channels*)
function DVBParams(TP_Info: pTP_INFO;  Options: DWORD): DWORD; stdcall; external 'DVBCore.dll';

0

Anzeige



#115 _gani7777_

  • Gruppe: Gäste

geschrieben 29. Juni 2005 - 14:31

@normanbauer :

Wirst du den Code veröffentlichen ? :(
0

#116 Mitglied ist offline   normanbauer 

  • Gruppe: aktive Mitglieder
  • Beiträge: 139
  • Beigetreten: 09. Juni 05
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 29. Juni 2005 - 14:35

Zitat (gani7777: 29.06.2005, 15:31)

@normanbauer :

Wirst du den Code veröffentlichen ? :(
<{POST_SNAPBACK}>


nein!
0

#117 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.701
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 29. Juni 2005 - 14:38

Es gibt ja Delphi-Decompiler :(

Spaß beiseite...
Warum denn? Du könntest das doch ohne Probleme unter die GPL stellen...
0

#118 _Benjamin_

  • Gruppe: Gäste

geschrieben 29. Juni 2005 - 14:44

die frage die sich für mich stellt sin eventuelle lizenzprobleme mit den schnitstellen und den weg ins TV ala GEZ usw ?

würd mich ma interessieren
0

#119 Mitglied ist offline   normanbauer 

  • Gruppe: aktive Mitglieder
  • Beiträge: 139
  • Beigetreten: 09. Juni 05
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 29. Juni 2005 - 14:44

Könnte ich theoretischer Weise tun - tu ich aber nicht :( . Das ganze wird Freeware - nicht open source.
Ist eigentlich aber auch gar nicht das Thema hier.
0

#120 Mitglied ist offline   normanbauer 

  • Gruppe: aktive Mitglieder
  • Beiträge: 139
  • Beigetreten: 09. Juni 05
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 29. Juni 2005 - 14:47

Zitat

die frage die sich für mich stellt sin eventuelle lizenzprobleme mit den schnitstellen und den weg ins TV ala GEZ usw ?

Da sollte es keine Probleme geben. Alles was ich tue, ist DirectShow benutzen :(
0

#121 Mitglied ist offline   tavoc 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.437
  • Beigetreten: 22. Juli 04
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 29. Juni 2005 - 15:16

Lizenzprobleme gibts keine, gez muss man auch nicht zahlen(noch nicht).

@witi es gibt aber programme die den code dann so komprimieren/verkleinern das diese kompilier nicht mehr so recht gehen und es viel schwieriger ist klartext zu bekommen, leider kosten die bissel was .
your IP is 127.0.0.1 or ::1
you are running an OS
you use a Browser
I know so much about you...
0

#122 Mitglied ist offline   normanbauer 

  • Gruppe: aktive Mitglieder
  • Beiträge: 139
  • Beigetreten: 09. Juni 05
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 29. Juni 2005 - 21:48

So mal wieder ne neue Demo hochgeladen!

http://www.normanbau...ndex.php?s=wfmd

Und bitte nicht meckern, dass da "nichts" funktioniert!
0

#123 _Benjamin_

  • Gruppe: Gäste

geschrieben 29. Juni 2005 - 21:56

bei 1280x1024 ist ein kleiner fehler bei den buttons unten, siehe anhang
0

#124 Mitglied ist offline   MaDDiN 

  • Gruppe: aktive Mitglieder
  • Beiträge: 992
  • Beigetreten: 18. Juni 03
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Stink Tönis

geschrieben 29. Juni 2005 - 21:59

Zitat (Benjamin: 29.06.2005, 22:56)

bei 1280x1024 ist ein kleiner fehler bei den buttons unten, siehe anhang
<{POST_SNAPBACK}>


Mhh... hab die gleich Auflösung, hab den Fehler aber nicht :cool:
0

#125 Mitglied ist offline   normanbauer 

  • Gruppe: aktive Mitglieder
  • Beiträge: 139
  • Beigetreten: 09. Juni 05
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 29. Juni 2005 - 22:01

Das wird mit den XP visual styles zusammen hängen. Wenn oben die Titlebar größer oder kleiner ist, stimmen die Anchors für die Kontrollen nicht mehr. Muss ich den Käse wohl manuell berechnen. Weil ich hab das Problem auch nicht.
Ich kanns leider nit darauf schieben, dass es beta ist. Weil ist ja nicht mal alpha :cool:

/edit: Überprüft, hängt damit zusammen, aber nur im Hauptmenu, oder?

Dieser Beitrag wurde von normanbauer bearbeitet: 29. Juni 2005 - 22:02

0

#126 _Benjamin_

  • Gruppe: Gäste

geschrieben 29. Juni 2005 - 22:03

achso ... joar hab HMMXP als skin ... wenn de diesbezüglich ne änderung hast, sag bescheid, dann test ichs gerne nochmal ^^


Edit: ja!

Dieser Beitrag wurde von Benjamin bearbeitet: 29. Juni 2005 - 22:03

0

#127 Mitglied ist offline   normanbauer 

  • Gruppe: aktive Mitglieder
  • Beiträge: 139
  • Beigetreten: 09. Juni 05
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 29. Juni 2005 - 22:08

Joar, heut nit mehr. Ist auch im Moment nicht soooo wichtig. Wichtiger ist die kommenden Tage der Audioplayer.
0

#128 Mitglied ist offline   asgard 

  • Gruppe: aktive Mitglieder
  • Beiträge: 470
  • Beigetreten: 13. November 03
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 30. Juni 2005 - 13:32

@normanbauer

also die pre-alpha sagt mir schon sehr zu.
aber ich hab nochmal ne kleine frage:
da ich nicht über den normalen antennenanschluss an meinen tv-karten schaue sondern über die s-video (zur zeit nicht anderst möglich) eingang und line_in fernschaue wäre es verdammt genial wenn du da so ne einstellung einbaust... muss auch nicht gleich sein reicht wenns dann irgendwann in der final drin ist. Vielleicht hatteste das aber auch schon vor, ist ja noch ne sehr frühe version.

Wenn du das machen könntest wär sicher nicht nur ich dir dankbar.

edit:
was noch ganz cool wäre wenn du bei klickbaren elementen den mouse-cursor zur hand machst.

Und die Fehlermeldung mit der ich nichts anfangen kann ;)



mfg

Dieser Beitrag wurde von asgard bearbeitet: 30. Juni 2005 - 13:41

0

Thema verteilen:


  • 12 Seiten +
  • « Erste
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0