/* Neutrino-GUI - DBoxII-Project Copyright (C) 2001 Steffen Hehn 'McClean' Homepage: http://dbox.cyberphoria.org/ Kommentar: Diese GUI wurde von Grund auf neu programmiert und sollte nun vom Aufbau und auch den Ausbaumoeglichkeiten gut aussehen. Neutrino basiert auf der Client-Server Idee, diese GUI ist also von der direkten DBox- Steuerung getrennt. Diese wird dann von Daemons uebernommen. License: GPL 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. */ #ifndef __remotecontrol__ #define __remotecontrol__ #include #include #include #include struct st_rmsg { unsigned char version; unsigned char cmd; unsigned char param; unsigned short param2; char param3[30]; }; class CSubService { private: struct CZapitClient::commandAddSubServices service; t_satellite_position satellitePosition; public: time_t startzeit; unsigned dauer; std::string subservice_name; CSubService(const t_original_network_id, const t_service_id, const t_transport_stream_id, const std::string &asubservice_name); CSubService(const t_original_network_id, const t_service_id, const t_transport_stream_id, const time_t astartzeit, const unsigned adauer); t_channel_id getChannelID(void) const; inline const struct CZapitClient::commandAddSubServices getAsZapitSubService(void) const { return service; } }; typedef std::vector CSubServiceListSorted; class CRemoteControl { //unsigned int current_programm_timer; uint64_t zap_completion_timeout; std::string current_channel_name; int current_channel_num; t_channel_id current_sub_channel_id; void getNVODs(); void getSubChannels(); void copySubChannelsToZapit(void); public: t_channel_id current_channel_id; uint64_t current_EPGid; //uint64_t next_EPGid; CZapitClient::responseGetPIDs current_PIDs; // APID - Details bool has_ac3; bool has_unresolved_ctags; // SubChannel/NVOD - Details CSubServiceListSorted subChannels; int selected_subchannel; bool are_subchannels; bool needs_nvods; int director_mode; // Video / Parental-Lock bool is_video_started; CRemoteControl(); void zapTo_ChannelID(const t_channel_id channel_id, const std::string &channame, int channum, const bool start_video = true); void startvideo(); void stopvideo(); void queryAPIDs(); void setAPID(uint32_t APID); void processAPIDnames(); const std::string &setSubChannel(const int numSub, const bool force_zap = false); const std::string &subChannelUp(void); const std::string &subChannelDown(void); void radioMode(); void tvMode(); int handleMsg(const neutrino_msg_t msg, neutrino_msg_data_t data); inline const std::string &getCurrentChannelName(void) const { return current_channel_name; } inline const int &getCurrentChannelNumber(void) const { return current_channel_num; } }; #endif