mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-08-27 15:32:59 +02:00
our current experimental Neutrino branch
git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-experimental@27 e54a6e83-5905-42d5-8d5c-058d10e6a962
This commit is contained in:
375
lib/sectionsdclient/sectionsdMsg.h
Normal file
375
lib/sectionsdclient/sectionsdMsg.h
Normal file
@@ -0,0 +1,375 @@
|
||||
#ifndef SECTIONSDMSG_H
|
||||
#define SECTIONSDMSG_H
|
||||
//
|
||||
// $Id: sectionsdMsg.h,v 1.16 2007/01/07 23:34:55 guenther Exp $
|
||||
//
|
||||
// sectionsdMsg.h (header file with msg-definitions for sectionsd)
|
||||
// (dbox-II-project)
|
||||
//
|
||||
// Copyright (C) 2001 by fnbrd,
|
||||
// 2002 by thegoodguy
|
||||
//
|
||||
// Homepage: http://dbox2.elxsi.de
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation; either version 2 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
|
||||
|
||||
#include <connection/basicmessage.h>
|
||||
#include <zapit/client/zapittypes.h> /* t_channel_id */
|
||||
|
||||
|
||||
#define SECTIONSD_UDS_NAME "/tmp/sectionsd.sock"
|
||||
|
||||
|
||||
struct sectionsd
|
||||
{
|
||||
static const CBasicMessage::t_version ACTVERSION = 5;
|
||||
|
||||
struct msgRequestHeader
|
||||
{
|
||||
unsigned char version;
|
||||
unsigned char command;
|
||||
unsigned short stuff_bytes;
|
||||
unsigned int dataLength;
|
||||
} __attribute__ ((packed)) ;
|
||||
|
||||
struct msgResponseHeader
|
||||
{
|
||||
unsigned int dataLength;
|
||||
} __attribute__ ((packed)) ;
|
||||
|
||||
enum commands
|
||||
{
|
||||
/* actualEPGchannelName=0,*/
|
||||
dummy1,
|
||||
dummy3, //actualEventListTVshort, // commandEventListTV
|
||||
/*currentNextInformation,*/
|
||||
dummy2,
|
||||
dumpStatusinformation, // commandDumpStatusInformation
|
||||
/*allEventsChannelName,*/
|
||||
allEventsChannelIDSearch, // commandAllEventsChannelIDSearch
|
||||
dummy4, // setHoursToCache,
|
||||
dummy5, // setHoursExtendedCache,
|
||||
dummy6, // setEventsAreOldInMinutes,
|
||||
dummy7, // dumpAllServices, // commandDumpAllServices
|
||||
dummy8, // actualEventListRadioshort, // commandEventListRadio
|
||||
dummy9, // getNextEPG, // commandGetNextEPG
|
||||
dummy10,// getNextShort, // commandGetNextShort
|
||||
pauseScanning, // commandPauseScanning // for the grabbers ;)
|
||||
getIsScanningActive, // commandGetIsScanningActive
|
||||
actualEPGchannelID, // commandActualEPGchannelID
|
||||
actualEventListTVshortIDs, // commandEventListTVids
|
||||
actualEventListRadioShortIDs, // commandEventListRadioIDs
|
||||
currentNextInformationID, // commandCurrentNextInfoChannelID
|
||||
epgEPGid, // commandEPGepgID
|
||||
epgEPGidShort, // commandEPGepgIDshort
|
||||
ComponentTagsUniqueKey, // commandComponentTagsUniqueKey
|
||||
allEventsChannelID_, // commandAllEventsChannelID
|
||||
timesNVODservice, // commandTimesNVODservice
|
||||
getEPGPrevNext, // commandGetEPGPrevNext
|
||||
getIsTimeSet, // commandGetIsTimeSet
|
||||
serviceChanged, // commandserviceChanged
|
||||
LinkageDescriptorsUniqueKey, // commandLinkageDescriptorsUniqueKey
|
||||
pauseSorting, // commandPauseSorting
|
||||
CMD_registerEvents, // commandRegisterEventClient
|
||||
CMD_unregisterEvents, // commandUnRegisterEventClient
|
||||
#ifdef ENABLE_PPT
|
||||
setPrivatePid, // commandSetPrivatePid
|
||||
#else
|
||||
dummy11_setPrivatePid,
|
||||
#endif
|
||||
setSectionsdScanMode, // commandSetSectionsdScanMode
|
||||
freeMemory, // commandFreeMemory
|
||||
readSIfromXML, // commandReadSIfromXML
|
||||
writeSI2XML, // commandWriteSI2XML
|
||||
|
||||
LoadLanguages, // commandLoadLanguages
|
||||
SaveLanguages, // commandSaveLanguages
|
||||
SetLanguages, // commandSetLanguages
|
||||
GetLanguages, // commandGetLanguages
|
||||
SetLanguageMode, // commandSetLanguageMode
|
||||
GetLanguageMode, // commandGetLanguageMode
|
||||
setConfig, // commandSetConfig
|
||||
Restart, // commandRestart
|
||||
ping,
|
||||
|
||||
numberOfCommands // <- no actual command, end of command marker
|
||||
};
|
||||
|
||||
struct commandGetEPGid
|
||||
{
|
||||
unsigned long long eventid;
|
||||
time_t starttime;
|
||||
} __attribute__ ((packed)) ;
|
||||
|
||||
struct commandSetServiceChanged
|
||||
{
|
||||
t_channel_id channel_id;
|
||||
bool requestEvent;
|
||||
};
|
||||
|
||||
struct responseIsTimeSet
|
||||
{
|
||||
bool IsTimeSet;
|
||||
};
|
||||
|
||||
struct commandSetConfig
|
||||
{
|
||||
int scanMode;
|
||||
int epg_cache;
|
||||
int epg_old_events;
|
||||
unsigned int epg_max_events;
|
||||
int network_ntprefresh;
|
||||
int network_ntpenable;
|
||||
int epg_extendedcache;
|
||||
// std::string network_ntpserver;
|
||||
// std::string epg_dir;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
//
|
||||
// Description of Commands:
|
||||
//
|
||||
// If a command is recognize then sectionsd will always send a response.
|
||||
// When requested datas are not found the data length of the response is 0.
|
||||
//
|
||||
// actualEPGchannelName:
|
||||
// data of request:
|
||||
// is channel name with trailing 0 (c-string)
|
||||
// data of response:
|
||||
// is a string (c-string) describing the EPG (for
|
||||
// compatibility with old epgd)
|
||||
//
|
||||
// actualEventListTVshort:
|
||||
// data of request:
|
||||
// -
|
||||
// data of response:
|
||||
// is a string (c-string) with all cached actual events,
|
||||
// 3 lines per service, first line unique-event-key, second line service name, third line event name
|
||||
//
|
||||
// currentNextInformation:
|
||||
// data of request:
|
||||
// is channel name with trailing 0 (c-string)
|
||||
// data of response:
|
||||
// is a string (c-string) describing the current/next EPGs
|
||||
//
|
||||
// dumpStatusinformation:
|
||||
// data of request:
|
||||
// -
|
||||
// data of response:
|
||||
// is a string (c-string) describing current status of sectionsd
|
||||
//
|
||||
// allEventsChannelName:
|
||||
// data of request:
|
||||
// is channel name with trailing 0 (c-string)
|
||||
// data of response:
|
||||
// is a string (c-string) describing the cached events for the requestet channel
|
||||
// 1 line per event, format: uniqueEventKey DD.MM HH:MM durationInMinutes Event name
|
||||
//
|
||||
// setHoursToCache
|
||||
// data of request:
|
||||
// unsigned short (hours to cache)
|
||||
// data of response:
|
||||
// -
|
||||
//
|
||||
// setEventsAreOldInMinutes
|
||||
// data of request:
|
||||
// unsigned short (minutes after events are old (after their end time))
|
||||
// data of response:
|
||||
// -
|
||||
//
|
||||
// dumpAllServicesinformation:
|
||||
// data of request:
|
||||
// -
|
||||
// data of response:
|
||||
// is a string (c-string) with all cached services
|
||||
// 3 lines per service
|
||||
// 1. line: unique-service-key, service-ID, service-type, eitScheduleFlag (bool),
|
||||
// eitPresentFollowingFlag (bool), runningStatus (bool),
|
||||
// freeCAmode (bool), number of nvod services
|
||||
// 2. line: service name
|
||||
// 3. line: provider name
|
||||
//
|
||||
// actualEventListRadioshort:
|
||||
// data of request:
|
||||
// -
|
||||
// data of response:
|
||||
// is a string (c-string) with all cached actual events,
|
||||
// 3 lines per service, first line unique-event-key, second line service name, third line event name
|
||||
//
|
||||
// getNextEPG:
|
||||
// data of request:
|
||||
// 8 bytes (long long in 32 bit world) with unique key (binary) of the event for wich the next should be delivered
|
||||
// 4 bytes with start time (ctime) of the above event
|
||||
// data of response:
|
||||
// is a string (c-string) describing the EPG:
|
||||
// unique key (long long, hex) 0xff name 0xff text 0xff extended text 0xff start time GMT (ctime, hex ) 0xff duration (seconds, hex)
|
||||
//
|
||||
// getNextShort:
|
||||
// data of request:
|
||||
// 8 bytes (long long in 32 bit world) with unique key (binary) of the event for wich the next should be delivered
|
||||
// 4 bytes with start time (ctime) of the above event
|
||||
// data of response:
|
||||
// is a string (c-string) describing the Event in short terms:
|
||||
// 1. line unique key (long long, hex), 2. line name, 3. line start time GMT (ctime, hex ), 4 line duration (seconds, hex)
|
||||
//
|
||||
// pauseScanning:
|
||||
// data of request:
|
||||
// int (1 = pause, 0 = continue)
|
||||
// data of response:
|
||||
// -
|
||||
//
|
||||
// actualEPGchannelID:
|
||||
// data of request:
|
||||
// is channel ID
|
||||
// data of response:
|
||||
// is a string (c-string) describing the EPG:
|
||||
// unique key (long long, hex) 0xff name 0xff text 0xff extended text 0xff start time GMT (ctime, hex ) 0xff duration (seconds, hex) 0xff
|
||||
//
|
||||
// actualEventListTVshortIDs:
|
||||
// data of request:
|
||||
// -
|
||||
// data of response:
|
||||
// for every service:
|
||||
// 1. unique-service-key (4 bytes)
|
||||
// 2. unique-event-key (8 bytes)
|
||||
// 3. event name (c-string with 0)
|
||||
//
|
||||
// actualEventListRadioShortIDs:
|
||||
// data of request:
|
||||
// -
|
||||
// data of response:
|
||||
// 1. unique-service-key (4 bytes)
|
||||
// 2. unique-event-key (8 bytes)
|
||||
// 3. event name (c-string with 0)
|
||||
//
|
||||
// currentNextInformationID:
|
||||
// data of request:
|
||||
// 4 byte channel ID (4 byte, onid<<16+sid)
|
||||
// 1 byte number of Events (noch nicht implementiert)
|
||||
// data of response:
|
||||
// is a string (c-string) describing the current/next EPGs
|
||||
// every event:
|
||||
// 1. 8 bytes unique key (unsigned long long),
|
||||
// 2. struct sectionsdTime (8 bytes)
|
||||
// 3. name (c-string with 0)
|
||||
//
|
||||
// epgEPGid:
|
||||
// data of request:
|
||||
// unique epg ID (8 byte)
|
||||
// time_t starttime GMT (4 bytes)
|
||||
// data of response:
|
||||
// is a string (c-string) describing the EPG:
|
||||
// name 0xff text 0xff extended text 0xff start time GMT (ctime, hex ) 0xff duration (seconds, hex) 0xff
|
||||
//
|
||||
// epgEPGidShort:
|
||||
// data of request:
|
||||
// unique epg ID (8 byte)
|
||||
// data of response:
|
||||
// is a string (c-string) describing the EPG:
|
||||
// name 0xff text 0xff extended text 0xff
|
||||
//
|
||||
// CurrentComponentTags
|
||||
// - gets all ComponentDescriptor-Tags for the currently running Event
|
||||
//
|
||||
// data of request:
|
||||
// is channel ID (4 byte, onid<<16+sid)
|
||||
// data of response:
|
||||
// for each component-descriptor (zB %02hhx %02hhx %02hhx\n%s\n)
|
||||
// componentTag
|
||||
// componentType
|
||||
// streamContent
|
||||
// component.c_str
|
||||
//
|
||||
// allEventsChannelID:
|
||||
// data of request:
|
||||
// is channel ID
|
||||
// data of response:
|
||||
// is a string (c-string) describing the cached events for the requestet channel
|
||||
// 1 line per event, format: uniqueEventKey DD.MM HH:MM durationInMinutes Event name
|
||||
//
|
||||
// timesNVODservice
|
||||
// data of request:
|
||||
// is channel ID
|
||||
// data of response:
|
||||
// for every (sub-)channel
|
||||
// channelID (4 byte, onid<<16+sid)
|
||||
// transportStreamID (2 byte)
|
||||
// start time (4 bytes ctime)
|
||||
// duration (4 bytes unsigned)
|
||||
//
|
||||
// getEPGPrevNext
|
||||
// data of request:
|
||||
// 8 bytes (long long in 32 bit world) with unique key (binary) of the event for wich the next should be delivered
|
||||
// 4 bytes with start time (ctime) of the above event
|
||||
// data of response:
|
||||
// is a string (c-string) describing the EPG:
|
||||
// unique key (long long, hex) 0xff start time GMT (ctime, hex ) for previous event
|
||||
// unique key (long long, hex) 0xff start time GMT (ctime, hex ) for next event
|
||||
|
||||
//
|
||||
// LoadLanguages
|
||||
// data of request:
|
||||
// none
|
||||
// data of response:
|
||||
// success status (sizeof(bool))
|
||||
//
|
||||
// SaveLanguages
|
||||
// data of request:
|
||||
// none
|
||||
// data of response:
|
||||
// success status (sizeof(bool))
|
||||
//
|
||||
// SetLanguages
|
||||
// data of request:
|
||||
// n * 3 bytes (iso_639_2 language codes)
|
||||
// data of response:
|
||||
// success status (sizeof(bool))
|
||||
//
|
||||
// GetLanguages
|
||||
// data of request:
|
||||
// none
|
||||
// data of response:
|
||||
// n * 3 bytes (iso_639_2 language codes)
|
||||
//
|
||||
// SetLanguageMode
|
||||
// data of request:
|
||||
// mode (sizeof(CSectionsdClient::SIlanguageMode_t),
|
||||
// ALL, FIRST_FIRST, FIRST_ALL, ALL_FIRST or ALL_ALL)
|
||||
// data of response:
|
||||
// success status (sizeof(bool))
|
||||
//
|
||||
// GetLanguageMode
|
||||
// data of request:
|
||||
// none
|
||||
// data of response:
|
||||
// mode (see above)
|
||||
//
|
||||
// setConfig
|
||||
// data of request:
|
||||
// int scanMode; -> updating of services and bouquets -> saved in auto_scanning
|
||||
// int epg_cache; -> in days -> saved in secondsToCache
|
||||
// int epg_old_events; -> in hours -> saved in oldEventsAre
|
||||
// unsigned int epg_max_events; -> #of saved events -> saved in max_events
|
||||
// int network_ntprefresh; -> time refresh intervall -> saved in ntprefresh
|
||||
// int network_ntpenable; -> time refresh via ntp server -> saved in ntpenable
|
||||
// std::string network_ntpserver; -> ntpserver -> saved in ntpserver
|
||||
// std::string epg_dir; -> epg_dir to im/export the epg xml files -> saved in epg_file
|
||||
// data of response:
|
||||
// -
|
||||
|
||||
#endif // SECTIONSDMSG_H
|
Reference in New Issue
Block a user