#2
i have made the ProgEdit channel editor.
maybe i can help you - or i can impement what you want.
please let me know, if you want to make your own thing or if i should integrate it.
i think, for me it is very easy and less work to do this for you :)

cu camel

#############################################
ProgDVB 4.80.5 - ProgDVBChannelsListFormat.h

namespace ChListFormat{
// Channels.dat file
///////////////////////////////////////////////////////////////////////////////////////
const char TUNER_TYPE_ERROR = 0;
const char TUNER_TYPE_UNKNOW = 1;
const char TUNER_TYPE_DVB_S = 2;
const char TUNER_TYPE_DVB_C = 3;
const char TUNER_TYPE_DVB_T = 4;


const char CHT_TV = 0;
const char CHT_RADIO = 1;
const char CHT_OTHER = 2;


const char EST_AUDIO = 1;
const char EST_SUBTITLE = 2;
const char EST_TELETEXT_PAGE = 3;
const char EST_AC3_AUDIO = 4;
const char EST_CA_SYSTEM = 5;
const char EST_PROG_DVB_BIN = 6;

const int StorageFileHeaderID =0x22DFBC3B;
const int StorageFileHeaderVer =114;


const int MAX_LNG_STREAM_COUNT=40;

struct TStorageFileHeader{
unsigned int m_ID;
unsigned int m_Version;
unsigned int m_HeaderSize;
unsigned int m_FileLength;
unsigned int m_ItemCount;
};


struct TChannelIDStruct{
unsigned __int16 m_TID;
unsigned __int16 m_SID;
unsigned __int16 m_SatPosition;
unsigned __int16 m_LNB;
unsigned __int16 m_NID;
unsigned __int16 m_PCR;

int m_Frequency;
};


struct TLngStream{
char m_StreamType;
char m_SubType;
char m_Language[4];

__int16 m_composition_page_id_PageNumber;
__int16 m_ancillary_page_id_MagazineNumber;
__int16 m_Pid;

};

struct TDeviceID{
unsigned int m_SubID;
char m_Type;
unsigned __int64 m_DllID;
};

struct TChannelIdEx{
ChListFormat::TChannelIDStruct m_ID;
ChListFormat::TDeviceID m_DeviceID;
};

struct TChannelInfoStruct{
__int16 m_StructSize;

ChListFormat::TChannelIDStruct m_ID;

wchar_t m_Caption[64];
wchar_t m_ServiceLabel[32];
wchar_t m_ProviderLabel[32];
wchar_t m_NetworkName[32];

unsigned __int16 m_VideoPID;
unsigned __int16 m_TeletextPID;
unsigned __int16 m_PCR_PID;
unsigned __int16 m_PMT_PID;
unsigned __int16 m_ECM_PID;

char m_ServiceStatus; // EIT_schedule_flag (1Bit) + EIT_present_following_flag (1Bit)
// + Running status (3Bit) + free_CA_mode (1Bit)
TLngStream m_LngStreams[ChListFormat::MAX_LNG_STREAM_COUNT];
char m_LngStreamCount;
char m_CurrentAudio;
char m_CurrentSubtitle;
unsigned char m_ChannelMask;

int m_SymbolRate;
unsigned int m_Qam;
OLD_BOOL m_Pol;

char m_Quality;
char m_Level;

int m_ChannelNumber;
OLD_BOOL m_IsCanUpdate;
unsigned int m_Ratio;

bool m_AdultChannel;
bool m_bIsAvcVideo;
bool m_bIsDVB_S2;
char m_FEC; // auto,1/2,2/3,3/4,3/5,4/5,5/6,5/11,7/8,8/9

TDeviceID m_DeviceID;
};

///////////////////////////////////////////////////////////////////////////////////////
////////////////////// Tree files format //////////////////////////////////////////////////
const int ChannelTreeHeaderID =0x42DFBC3A;
const int ChannelTreeHeaderVer =106;

typedef enum LIST_TYPE {
LT_NULL=-1,
LT_FAVORITES=0,
LT_DYNAMIC=1
} LIST_TYPE;

typedef enum GROUP_TYPE{
GT_SAT_NAME=0,
GT_NETWORK_NAME=1,
GT_PROV_NAME=2,
GT_TRANSPONDER=3,
GT_NONE=4
}GROUP_TYPE;

typedef enum SORT_TYPE{
ST_UNSORT=-1,
ST_CAPTION=0,
ST_NUMBER=1,
ST_TYPE=2
};

struct TDynamicListFilterItem {
__int16 m_Position;
unsigned char m_Lnb;
ChListFormat::TDeviceID m_DeviceID;
};

struct TChannelTreeFileHeader2{
unsigned int m_ID;
unsigned int m_Version;
unsigned int m_HeaderSize;
unsigned int m_FileLength;
unsigned int m_ItemCount;
OLD_BOOL m_bRequestForDelete;
LIST_TYPE m_Type;
};
struct TChannelTreeFileHeader:public TChannelTreeFileHeader2{
OLD_BOOL m_ChannelTypes[3]; // tv,radio,other
wchar_t m_Caption[64];
int m_SatPosiotions[500]; // not used in >=106
int m_SatPosiotionCount; // not used in >=106
SORT_TYPE m_SortType;
GROUP_TYPE m_GroupType;
OLD_BOOL m_bShowNumber;
OLD_BOOL m_bLocalNumber;
__int16 m_FilterItemCount; // 106
//ChListFormat::TDynamicListFilterItem; m_DynamicListFilterItems[m_FilterItemCount]
} ;

struct TChannelTreeFolder{
unsigned int m_StructSize;
wchar_t m_Caption[64];
unsigned int m_ChannelsCount;
// after that TChannelIDStruct[m_ChannelsCount]
};

};
#pragma pack(pop)

#endif
Last edited by camel on Fri Dec 29, 2006 8:43 pm, edited 1 time in total.

#3
hello everybody

i hesitated to open a new post since i have a similar question
if fact i own a humax 5400 and a skystar 2 card using PROGDVB, my plan is to issue a converter which take the setting of my humax 540 into progDVB.
I already have the DLL that allow me to deal with setting format of humax and i am looking for similar or at least for some description of the channel list format PROGDVB expect to receive in order to write the correct software
do you think you can help ?
best regards and wishes for new year

#4
of course - i think i can help you.
poss. solution:
1.) you send me a file for humax settings. and also the file definition.
for humax files - it can happen, that the file i have to import in one time shot a channel.dat + channeltree, because in progdvb - one file is for all infos about the channels - and one extra file is for favorites (order of channels). but i'm ready for all stuff :)

2.) maybe you can prog in vbasic 2003 - and we can work together on the source.

i'm ready for all duty stuff :)

cu camel

#5
hello camel
tks for fast answer and proposal,
in fact i program in windev 11 (which is a L5G specific language)
the idea was just to have either the description of the file or a dll with entry point documented.
for humax , i use FV3DLL.dll which provide all stuff necessary to convert
the multi section text file (antenna,network,transponder,services, provider,favorites) into specific hnf compressed format and then into binary hdf to download in the humax, so if you can provide me with description of both data and tree file , i will save a lot of time
tks and best rgds

#6
what are the main function which you would need in ProgEdit ?

1.) import of the HDF files - which give then the channel.dat + channeltree
2.) export to HDF files - as source will then be used channel.dat + channeltree

is this correct ?

or do you only need import ?

so - well please send me die def for the hdf file + an example file + textz list of senders which are inside

thanks cu camel
tfs wrote:hello camel
tks for fast answer and proposal,
in fact i program in windev 11 (which is a L5G specific language)
the idea was just to have either the description of the file or a dll with entry point documented.
for humax , i use FV3DLL.dll which provide all stuff necessary to convert
the multi section text file (antenna,network,transponder,services, provider,favorites) into specific hnf compressed format and then into binary hdf to download in the humax, so if you can provide me with description of both data and tree file , i will save a lot of time
tks and best rgds

#7
hello camel

you misunderstood the point , the only thing i need is the description
of the progdvb channel file format, thats all

#8
tfs wrote:hello camel

you misunderstood the point , the only thing i need is the description
of the progdvb channel file format, thats all
ok - then open your eyes - and see above

cu camel

#10
Hello Camel,

first of all, best wishes for this new year :)



Regarding my applicaiton, i would need a little windows exe that perform the following things:
- take one command line parameter that specifies dat file location and another one that specifies where to create the new file
- create a text file that contains channel list (i mean name + position)

CNN 1
TF1 2
RAI Uno 3
etc...

I'm dont know c programming but if u could give me a start, i think i could perform this application

thanks in advance for ur help :)

Olixelle

#11
olixelle wrote: Regarding my applicaiton, i would need a little windows exe that perform the following things:
- take one command line parameter that specifies dat file location and another one that specifies where to create the new file
- create a text file that contains channel list (i mean name + position)
CNN 1
TF1 2
RAI Uno 3
etc...
is it a must be, that it works on command line ?

because to implement a ascii text file like your wish is amount 5min work for me - if it also enough that progedit will do this.

so - let me know exactly what should be inside the list.

ex: from internal list (channel list)
1.) Name of channel
2.) TAB stopp -> think about what to take - because PREMIERE 1 1 could it be ? - and is it then clear for you ?
3.) channel number (which is inside in the channel list)

ex: from internal tree list (channel tree list)
1.) Name of channel
2.) TAB stopp
3.) number like it is ordered

for command line - it would be much more work - so think about how often you need this

cu camel

#12
Hi Camel,

in fact my software is in .net 1.1
Command line argument is the easiest way for me to launch your exe from my program
However, we could set path information in a ini file for example
If not, i'll copy ur exe in the correct directory

Regarding channel list, tabulation is ok as text separator

Another question: i dont know differences between tree list & channel list :(

thks :)

#13
olixelle wrote:Hi Camel,

in fact my software is in .net 1.1
Command line argument is the easiest way for me to launch your exe from my program
However, we could set path information in a ini file for example
If not, i'll copy ur exe in the correct directory

Regarding channel list, tabulation is ok as text separator

Another question: i dont know differences between tree list & channel list
.) the differnet is, that the channel list include all channels from Progdvb
the "channel list tree" include "like a link" the channels which are your favorties.
try may programm and switch to mode: "channel list tree" or "channel list manager" -> then try to load my settings + channellist.tree -> and you'll see what i mean

.) as i told - at this moement -> to much work for command line modus

cu camel

#14
Camel,

ok i understand difference between channel & tree list.
I need channel list as my soft already include a channel selector.

Could u provide me such a soft:
- windows exe
- has to be in dat file directory
- create a text file with channel name / tabulation / channel index in the same directory

?

thks :)

#15
olixelle wrote:Camel,

ok i understand difference between channel & tree list.
I need channel list as my soft already include a channel selector.

Could u provide me such a soft:
- windows exe
- has to be in dat file directory
- create a text file with channel name / tabulation / channel index in the same directory

?

thks :)
well relax - i will buit some extra options, giv eme some hours....