Files
recycled-ni-neutrino/src/gui/infoviewer.h
vanhofen 09d2eb6e89 CInfoViewerBB: fix infobar ratio webtv
Signed-off-by: M. Liebmann <tuxcode.bbg@gmail.com>


Origin commit data
------------------
Branch: ni/coolstream
Commit: 45968b339d
Author: vanhofen <vanhofen@gmx.de>
Date: 2015-10-19 (Mon, 19 Oct 2015)



------------------
This commit was generated by Migit
2015-10-21 12:31:04 +02:00

194 lines
5.6 KiB
C++

/*
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 __infoview__
#define __infoview__
#include <sectionsdclient/sectionsdclient.h>
#include <driver/rcinput.h>
#include <driver/fontrenderer.h>
#include <system/settings.h>
#include <string>
#include <zapit/channel.h>
#include <gui/components/cc.h>
class CFrameBuffer;
class COSDFader;
class CInfoViewerBB;
class CInfoViewer
{
private:
CFrameBuffer * frameBuffer;
CInfoViewerBB* infoViewerBB;
CComponentsFrmClock *clock;
bool gotTime;
bool recordModeActive;
#ifndef SKIP_CA_STATUS
bool CA_Status;
#endif
int InfoHeightY;
bool fileplay;
int ButtonWidth;
// dimensions of radiotext window
int rt_dx;
int rt_dy;
int rt_x;
int rt_y;
int rt_h;
int rt_w;
std::string ChannelName;
int ChanNameX;
int ChanNameY;
int ChanWidth;
int ChanHeight;
CSectionsdClient::CurrentNextInfo info_CurrentNext;
CSectionsdClient::CurrentNextInfo oldinfo;
t_channel_id current_channel_id;
t_channel_id current_epg_id;
//uint32_t fadeTimer;
COSDFader fader;
int time_width;
int time_height;
int info_time_width;
bool newfreq ;
static const short bar_width = 72;
static event_id_t last_curr_id, last_next_id;
uint64_t timeoutEnd;
void setInfobarTimeout(int timeout_ext = 0);
CChannelEventList evtlist;
CChannelEventList::iterator eli;
int lastsnr, lastsig, lasttime;
CProgressBar *snrscale, *sigscale, *timescale;
bool casysChange;
bool channellogoChange;
uint32_t lcdUpdateTimer;
void paintBackground(int col_Numbox);
void paintHead();
void show_Data( bool calledFromEvent = false );
void display_Info(const char *current, const char *next, bool UTF8 = true,
bool starttimes = true, const int pb_pos = -1,
const char *runningStart = NULL, const char *runningRest = NULL,
const char *nextStart = NULL, const char *nextDuration = NULL,
bool update_current = true, bool update_next = true);
void initClock();
void showRecordIcon(const bool show);
void showIcon_Tuner() const;
void showFailure();
void showMotorMoving(int duration);
void showLcdPercentOver();
int showChannelLogo(const t_channel_id logo_channel_id, const int channel_number_width);
void showRadiotext();
void killRadiotext();
//small infobox, shows a small textbox with a short message text,
//text must be located in a file named /tmp/infobar.txt
CComponentsInfoBox *infobar_txt;
void showInfoFile();
void killInfobarText();
//void loop(int fadeValue, bool show_dot ,bool fadeIn);
void loop(bool show_dot);
std::string eventname;
void show_current_next(bool new_chan, int epgpos);
void reset_allScala();
void check_channellogo_ca_SettingsChange();
void sendNoEpg(const t_channel_id channel_id);
public:
bool chanready;
bool is_visible;
bool virtual_zap_mode;
char aspectRatio;
uint32_t sec_timer_id;
int BoxStartX;
int BoxStartY;
int BoxEndX;
int BoxEndY;
int ChanInfoX;
bool showButtonBar;
bool isVolscale;
CInfoViewer();
~CInfoViewer();
void showMovieTitle(const int playState, const t_channel_id &channel_id, const std::string &title,
const std::string &g_file_epg, const std::string &g_file_epg1,
const int duration, const int curr_pos, const int repeat_mode);
void start();
void showEpgInfo();
void showTitle(CZapitChannel * channel, const bool calledFromNumZap = false, int epgpos = 0);
void showTitle(t_channel_id channel_id, const bool calledFromNumZap = false, int epgpos = 0);
void lookAheadEPG(const int ChanNum, const std::string & Channel, const t_channel_id new_channel_id = 0, const bool calledFromNumZap = false); //alpha: fix for nvod subchannel update
void killTitle();
CSectionsdClient::CurrentNextInfo getEPG(const t_channel_id for_channel_id, CSectionsdClient::CurrentNextInfo &info);
void showSubchan();
//void Set_CA_Status(int Status);
int handleMsg(const neutrino_msg_t msg, neutrino_msg_data_t data);
void clearVirtualZapMode() {virtual_zap_mode = false;}
void changePB();
void showSNR();
void Init(void);
bool SDT_freq_update;
void setUpdateTimer(uint64_t interval);
uint32_t getUpdateTimer(void) { return lcdUpdateTimer; }
inline t_channel_id get_current_channel_id(void) { return current_channel_id; }
};
#if 0
class CInfoViewerHandler : public CMenuTarget
{
public:
int exec( CMenuTarget* parent, const std::string &actionkey);
int doMenu();
};
#endif
#endif