mirror of
https://github.com/tuxbox-fork-migrations/recycled-ni-neutrino.git
synced 2025-09-02 10:21:04 +02:00
Merge branch 'dvbsi++' of coolstreamtech.de:cst-public-gui-neutrino into dvbsi++
Origin commit data
------------------
Commit: 57fcc92482
Author: [CST] Focus <focus.cst@gmail.com>
Date: 2012-10-29 (Mon, 29 Oct 2012)
This commit is contained in:
@@ -1085,7 +1085,8 @@ printf("[neutrino] CSectionsdClient::EVT_GOT_CN_EPG\n");
|
||||
break;
|
||||
case CTimerdClient::EVT_ANNOUNCE_ZAPTO :
|
||||
*msg = NeutrinoMessages::ANNOUNCE_ZAPTO;
|
||||
*data = 0;
|
||||
*data = (neutrino_msg_data_t)p;
|
||||
dont_delete_p = true;
|
||||
break;
|
||||
case CTimerdClient::EVT_ANNOUNCE_SHUTDOWN :
|
||||
*msg = NeutrinoMessages::ANNOUNCE_SHUTDOWN;
|
||||
|
@@ -73,8 +73,10 @@ CVFD::CVFD()
|
||||
|
||||
CVFD::~CVFD()
|
||||
{
|
||||
if(fd > 0)
|
||||
if(fd > 0){
|
||||
close(fd);
|
||||
fd = -1;
|
||||
}
|
||||
}
|
||||
|
||||
CVFD* CVFD::getInstance()
|
||||
@@ -678,7 +680,7 @@ void CVFD::Clear()
|
||||
|
||||
void CVFD::ShowIcon(vfd_icon icon, bool show)
|
||||
{
|
||||
if(!has_lcd) return;
|
||||
if(!has_lcd || fd < 0) return;
|
||||
//printf("CVFD::ShowIcon %s %x\n", show ? "show" : "hide", (int) icon);
|
||||
int ret = ioctl(fd, show ? IOC_VFD_SET_ICON : IOC_VFD_CLEAR_ICON, icon);
|
||||
if(ret < 0)
|
||||
|
@@ -66,6 +66,8 @@
|
||||
#define NEUTRINO_RECORDING_ENDED_SCRIPT CONFIGDIR "/recording.end"
|
||||
#define NEUTRINO_ENTER_STANDBY_SCRIPT CONFIGDIR "/standby.on"
|
||||
#define NEUTRINO_LEAVE_STANDBY_SCRIPT CONFIGDIR "/standby.off"
|
||||
#define NEUTRINO_ENTER_DEEPSTANDBY_SCRIPT CONFIGDIR "/deepstandby.on"
|
||||
#define NEUTRINO_LEAVE_DEEPSTANDBY_SCRIPT CONFIGDIR "/deepstandby.off"
|
||||
#define MOVIEPLAYER_START_SCRIPT CONFIGDIR "/movieplayer.start"
|
||||
#define MOVIEPLAYER_END_SCRIPT CONFIGDIR "/movieplayer.end"
|
||||
|
||||
|
@@ -1,16 +1,22 @@
|
||||
AM_CPPFLAGS = -fno-rtti -fno-exceptions
|
||||
#AM_CPPFLAGS = -fno-rtti
|
||||
|
||||
BUILT_SOURCES = svn_version.h
|
||||
|
||||
svn_version.h:
|
||||
@if test -d .svn ; then \
|
||||
sleep 180 && rm svn_version.h & echo "#define SVNVERSION \"$$(svnversion -n || echo svn_oops!)\" " > svn_version.h ; \
|
||||
BUILT_SOURCES = git_version.h
|
||||
git_version.h: makeversion
|
||||
@if test -d ../../.git; then \
|
||||
echo "#define GITVERSION \"$$(git describe --dirty || echo `date` )\" " > git_version.h.tmp ; \
|
||||
if diff -q git_version.h git_version.h.tmp >/dev/null 2>&1 ; then \
|
||||
rm -f git_version.h.tmp ; \
|
||||
else \
|
||||
rm -f git_version.h ; \
|
||||
mv git_version.h.tmp git_version.h ; \
|
||||
fi; \
|
||||
else \
|
||||
rm svn_version.h; echo '#define BUILT_DATE "'`date`'"' > svn_version.h ; \
|
||||
rm git_version.h; echo '#define BUILT_DATE "'`date`'"' > git_version.h ; \
|
||||
fi
|
||||
noinst_HEADERS = git_version.h
|
||||
|
||||
.PHONY: makeversion
|
||||
|
||||
noinst_HEADERS = svn_version.h
|
||||
|
||||
SUBDIRS = widget bedit
|
||||
|
||||
|
@@ -337,7 +337,7 @@ int CBouquetList::show(bool bShowChannelList)
|
||||
CVFD::getInstance()->setMode(CVFD::MODE_MENU_UTF8, "");
|
||||
fheight = g_Font[SNeutrinoSettings::FONT_TYPE_CHANNELLIST]->getHeight();
|
||||
|
||||
width = w_max (need_width, g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_SMALL]->getWidth()*52);//500
|
||||
width = w_max (need_width, 20);//500
|
||||
height = h_max (16 * fheight, 40);
|
||||
|
||||
/* assuming all color icons must have same size */
|
||||
|
@@ -39,8 +39,8 @@
|
||||
#include <system/flashtool.h>
|
||||
#include <video.h>
|
||||
|
||||
#include "svn_version.h"
|
||||
#define SVN_REV "SVN Rev.:"
|
||||
#include "git_version.h"
|
||||
#define GIT_DESC "GIT Desc.:"
|
||||
#define GIT_REV "GIT Build:"
|
||||
extern cVideo * videoDecoder;
|
||||
|
||||
@@ -92,8 +92,8 @@ void CImageInfo::Init(void)
|
||||
offset = tmpoffset;
|
||||
}
|
||||
}
|
||||
#ifdef SVNVERSION
|
||||
int off_tmp = g_Font[font_info]->getRenderWidth(SVN_REV);
|
||||
#ifdef GITVERSION
|
||||
int off_tmp = g_Font[font_info]->getRenderWidth(GIT_DESC);
|
||||
#else
|
||||
int off_tmp = g_Font[font_info]->getRenderWidth(GIT_REV);
|
||||
#endif
|
||||
@@ -206,8 +206,8 @@ void CImageInfo::paint()
|
||||
const char * version = config.getString("version", "no version").c_str();
|
||||
const char * docs = config.getString("docs", "http://wiki.neutrino-hd.de").c_str();
|
||||
const char * forum = config.getString("forum", "http://forum.tuxbox.org").c_str();
|
||||
#ifdef SVNVERSION
|
||||
const char * builddate = config.getString("builddate", SVNVERSION).c_str();
|
||||
#ifdef GITVERSION
|
||||
const char * builddate = GITVERSION;
|
||||
#else
|
||||
const char * builddate = config.getString("builddate", BUILT_DATE).c_str();
|
||||
#endif
|
||||
@@ -244,8 +244,8 @@ void CImageInfo::paint()
|
||||
paintLine(xpos+offset, font_info, Version_Kernel.c_str());
|
||||
|
||||
ypos += iheight;
|
||||
#ifdef SVNVERSION
|
||||
paintLine(xpos , font_info, SVN_REV);
|
||||
#ifdef GITVERSION
|
||||
paintLine(xpos , font_info, GIT_DESC);
|
||||
#else
|
||||
paintLine(xpos , font_info, GIT_REV);
|
||||
#endif
|
||||
|
128
src/neutrino.cpp
128
src/neutrino.cpp
@@ -1751,10 +1751,9 @@ void wake_up( bool &wakeup)
|
||||
}
|
||||
printf("[timerd] wakeup from standby: %s\n", wakeup ? "yes" : "no");
|
||||
if(!wakeup){
|
||||
const char *neutrino_leave_deepstandby_script = CONFIGDIR "/deepstandby.off";
|
||||
printf("[%s] executing %s\n",__FILE__ ,neutrino_leave_deepstandby_script);
|
||||
if (my_system(neutrino_leave_deepstandby_script) != 0)
|
||||
perror( neutrino_leave_deepstandby_script );
|
||||
puts("[neutrino.cpp] executing " NEUTRINO_LEAVE_DEEPSTANDBY_SCRIPT ".");
|
||||
if (my_system(NEUTRINO_LEAVE_DEEPSTANDBY_SCRIPT) != 0)
|
||||
perror(NEUTRINO_LEAVE_DEEPSTANDBY_SCRIPT " failed");
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1858,9 +1857,9 @@ TIMER_START();
|
||||
dprintf(DEBUG_NORMAL, "g_info.has_fan: %d\n", g_info.has_fan);
|
||||
//fan speed
|
||||
if (g_info.has_fan) {
|
||||
CFanControlNotifier * funNotifier= new CFanControlNotifier();
|
||||
funNotifier->changeNotify(NONEXISTANT_LOCALE, (void*) &g_settings.fan_speed);
|
||||
delete funNotifier;
|
||||
CFanControlNotifier * fanNotifier= new CFanControlNotifier();
|
||||
fanNotifier->changeNotify(NONEXISTANT_LOCALE, (void*) &g_settings.fan_speed);
|
||||
delete fanNotifier;
|
||||
}
|
||||
|
||||
dvbsub_init();
|
||||
@@ -2630,8 +2629,7 @@ _repeat:
|
||||
return res;
|
||||
}
|
||||
else if( msg == NeutrinoMessages::ZAPTO) {
|
||||
CTimerd::EventInfo * eventinfo;
|
||||
eventinfo = (CTimerd::EventInfo *) data;
|
||||
CTimerd::EventInfo * eventinfo = (CTimerd::EventInfo *) data;
|
||||
if(recordingstatus==0) {
|
||||
bool isTVMode = CServiceManager::getInstance()->IsChannelTVChannel(eventinfo->channel_id);
|
||||
|
||||
@@ -2653,52 +2651,19 @@ _repeat:
|
||||
standbyMode( false );
|
||||
}
|
||||
if( mode != mode_scart ) {
|
||||
CTimerd::RecordingInfo * eventinfo = (CTimerd::RecordingInfo *) data;
|
||||
std::string name = g_Locale->getText(LOCALE_ZAPTOTIMER_ANNOUNCE);
|
||||
|
||||
CTimerd::TimerList tmpTimerList;
|
||||
CTimerdClient tmpTimerdClient;
|
||||
|
||||
tmpTimerList.clear();
|
||||
tmpTimerdClient.getTimerList( tmpTimerList );
|
||||
|
||||
if( !tmpTimerList.empty() ) {
|
||||
sort( tmpTimerList.begin(), tmpTimerList.end() );
|
||||
|
||||
CTimerd::responseGetTimer &timer = tmpTimerList[0];
|
||||
|
||||
name += "\n";
|
||||
|
||||
std::string zAddData = CServiceManager::getInstance()->GetServiceName(timer.channel_id);
|
||||
if( zAddData.empty()) {
|
||||
zAddData = g_Locale->getText(LOCALE_TIMERLIST_PROGRAM_UNKNOWN);
|
||||
}
|
||||
|
||||
if(timer.epgID!=0) {
|
||||
CEPGData epgdata;
|
||||
zAddData += " :\n";
|
||||
if (CEitManager::getInstance()->getEPGid(timer.epgID, timer.epg_starttime, &epgdata)) {
|
||||
zAddData += epgdata.title;
|
||||
}
|
||||
else if(strlen(timer.epgTitle)!=0) {
|
||||
zAddData += timer.epgTitle;
|
||||
}
|
||||
}
|
||||
else if(strlen(timer.epgTitle)!=0) {
|
||||
zAddData += timer.epgTitle;
|
||||
}
|
||||
|
||||
name += zAddData;
|
||||
}
|
||||
getAnnounceEpgName( eventinfo, name);
|
||||
ShowHintUTF( LOCALE_MESSAGEBOX_INFO, name.c_str() );
|
||||
}
|
||||
|
||||
delete [] (unsigned char*) data;
|
||||
return messages_return::handled;
|
||||
}
|
||||
else if( msg == NeutrinoMessages::ANNOUNCE_RECORD) {
|
||||
my_system(NEUTRINO_RECORDING_TIMER_SCRIPT);
|
||||
|
||||
CTimerd::RecordingInfo * eventinfo = (CTimerd::RecordingInfo *) data;
|
||||
if (g_settings.recording_type == RECORDING_FILE) {
|
||||
char * recordingDir = ((CTimerd::RecordingInfo*)data)->recordingDir;
|
||||
char * recordingDir = eventinfo->recordingDir;
|
||||
for(int i=0 ; i < NETWORK_NFS_NR_OF_ENTRIES ; i++) {
|
||||
if (strcmp(g_settings.network_nfs_local_dir[i],recordingDir) == 0) {
|
||||
printf("[neutrino] waking up %s (%s)\n",g_settings.network_nfs_ip[i].c_str(),recordingDir);
|
||||
@@ -2712,18 +2677,21 @@ _repeat:
|
||||
}
|
||||
}
|
||||
|
||||
if( g_settings.recording_zap_on_announce && (mode != mode_standby) ) {
|
||||
if( g_settings.recording_zap_on_announce && (mode != mode_standby) && (eventinfo->channel_id != CZapit::getInstance()->GetCurrentChannelID())) {
|
||||
//TODO check transponder ?
|
||||
CRecordManager::getInstance()->StopAutoRecord();
|
||||
if(!CRecordManager::getInstance()->RecordingStatus()) {
|
||||
dvbsub_stop(); //FIXME if same channel ?
|
||||
t_channel_id channel_id=((CTimerd::RecordingInfo*)data)->channel_id;
|
||||
dvbsub_stop();
|
||||
t_channel_id channel_id=eventinfo->channel_id;
|
||||
g_Zapit->zapTo_serviceID_NOWAIT(channel_id);
|
||||
}
|
||||
}
|
||||
if(( mode != mode_scart ) && ( mode != mode_standby )){
|
||||
std::string name = g_Locale->getText(LOCALE_RECORDTIMER_ANNOUNCE);
|
||||
getAnnounceEpgName(eventinfo, name);
|
||||
ShowHintUTF(LOCALE_MESSAGEBOX_INFO, name.c_str());
|
||||
}
|
||||
delete[] (unsigned char*) data;
|
||||
if( mode != mode_scart )
|
||||
ShowHintUTF(LOCALE_MESSAGEBOX_INFO, g_Locale->getText(LOCALE_RECORDTIMER_ANNOUNCE));
|
||||
return messages_return::handled;
|
||||
}
|
||||
else if( msg == NeutrinoMessages::ANNOUNCE_SLEEPTIMER) {
|
||||
@@ -2944,10 +2912,9 @@ void CNeutrinoApp::ExitRun(const bool /*write_si*/, int retcode)
|
||||
saveSetup(NEUTRINO_SETTINGS_FILE);
|
||||
|
||||
if(retcode) {
|
||||
const char *neutrino_enter_deepstandby_script = CONFIGDIR "/deepstandby.on";
|
||||
printf("[%s] executing %s\n",__FILE__ ,neutrino_enter_deepstandby_script);
|
||||
if (my_system(neutrino_enter_deepstandby_script) != 0)
|
||||
perror(neutrino_enter_deepstandby_script );
|
||||
puts("[neutrino.cpp] executing " NEUTRINO_ENTER_DEEPSTANDBY_SCRIPT ".");
|
||||
if (my_system(NEUTRINO_ENTER_DEEPSTANDBY_SCRIPT) != 0)
|
||||
perror(NEUTRINO_ENTER_DEEPSTANDBY_SCRIPT " failed");
|
||||
|
||||
printf("entering off state\n");
|
||||
mode = mode_off;
|
||||
@@ -3020,9 +2987,9 @@ void CNeutrinoApp::ExitRun(const bool /*write_si*/, int retcode)
|
||||
powerManager->SetStandby(true, true);
|
||||
if (g_info.delivery_system == DVB_S && (cs_get_revision() < 8)) {
|
||||
int fspeed = 0;
|
||||
CFanControlNotifier * funNotifier= new CFanControlNotifier();
|
||||
funNotifier->changeNotify(NONEXISTANT_LOCALE, (void *) &fspeed);
|
||||
delete funNotifier;
|
||||
CFanControlNotifier * fanNotifier= new CFanControlNotifier();
|
||||
fanNotifier->changeNotify(NONEXISTANT_LOCALE, (void *) &fspeed);
|
||||
delete fanNotifier;
|
||||
}
|
||||
if (powerManager) {
|
||||
powerManager->Close();
|
||||
@@ -3055,8 +3022,8 @@ void CNeutrinoApp::ExitRun(const bool /*write_si*/, int retcode)
|
||||
//fan speed
|
||||
if (g_info.has_fan) {
|
||||
int fspeed = 0;
|
||||
CFanControlNotifier funNotifier;
|
||||
funNotifier.changeNotify(NONEXISTANT_LOCALE, (void *) &fspeed);
|
||||
CFanControlNotifier fanNotifier;
|
||||
fanNotifier.changeNotify(NONEXISTANT_LOCALE, (void *) &fspeed);
|
||||
}
|
||||
//CVFD::getInstance()->ShowText(g_Locale->getText(LOCALE_MAINMENU_REBOOT));
|
||||
stop_video();
|
||||
@@ -3245,9 +3212,9 @@ void CNeutrinoApp::standbyMode( bool bOnOff, bool fromDeepStandby )
|
||||
//fan speed
|
||||
if (g_info.has_fan) {
|
||||
int fspeed = 1;
|
||||
CFanControlNotifier * funNotifier= new CFanControlNotifier();
|
||||
funNotifier->changeNotify(NONEXISTANT_LOCALE, (void *) &fspeed);
|
||||
delete funNotifier;
|
||||
CFanControlNotifier * fanNotifier= new CFanControlNotifier();
|
||||
fanNotifier->changeNotify(NONEXISTANT_LOCALE, (void *) &fspeed);
|
||||
delete fanNotifier;
|
||||
}
|
||||
frameBuffer->setActive(false);
|
||||
// Active standby on
|
||||
@@ -3272,9 +3239,9 @@ void CNeutrinoApp::standbyMode( bool bOnOff, bool fromDeepStandby )
|
||||
frameBuffer->setActive(true);
|
||||
//fan speed
|
||||
if (g_info.has_fan) {
|
||||
CFanControlNotifier * funNotifier= new CFanControlNotifier();
|
||||
funNotifier->changeNotify(NONEXISTANT_LOCALE, (void*) &g_settings.fan_speed);
|
||||
delete funNotifier;
|
||||
CFanControlNotifier * fanNotifier= new CFanControlNotifier();
|
||||
fanNotifier->changeNotify(NONEXISTANT_LOCALE, (void*) &g_settings.fan_speed);
|
||||
delete fanNotifier;
|
||||
}
|
||||
|
||||
puts("[neutrino.cpp] executing " NEUTRINO_LEAVE_STANDBY_SCRIPT ".");
|
||||
@@ -3870,6 +3837,33 @@ void CNeutrinoApp::SDT_ReloadChannels()
|
||||
}
|
||||
}
|
||||
|
||||
void CNeutrinoApp::getAnnounceEpgName(CTimerd::RecordingInfo * eventinfo, std::string &name)
|
||||
{
|
||||
|
||||
name += "\n";
|
||||
|
||||
std::string zAddData = CServiceManager::getInstance()->GetServiceName(eventinfo->channel_id);
|
||||
if( zAddData.empty()) {
|
||||
zAddData = g_Locale->getText(LOCALE_TIMERLIST_PROGRAM_UNKNOWN);
|
||||
}
|
||||
|
||||
if(eventinfo->epgID!=0) {
|
||||
CEPGData epgdata;
|
||||
zAddData += " :\n";
|
||||
if (CEitManager::getInstance()->getEPGid(eventinfo->epgID, eventinfo->epg_starttime, &epgdata)) {
|
||||
zAddData += epgdata.title;
|
||||
}
|
||||
else if(strlen(eventinfo->epgTitle)!=0) {
|
||||
zAddData += eventinfo->epgTitle;
|
||||
}
|
||||
}
|
||||
else if(strlen(eventinfo->epgTitle)!=0) {
|
||||
zAddData += eventinfo->epgTitle;
|
||||
}
|
||||
|
||||
name += zAddData;
|
||||
}
|
||||
|
||||
void CNeutrinoApp::Cleanup()
|
||||
{
|
||||
#ifdef EXIT_CLEANUP
|
||||
|
@@ -136,6 +136,7 @@ private:
|
||||
void scartMode( bool bOnOff );
|
||||
void standbyMode( bool bOnOff, bool fromDeepStandby = false );
|
||||
void saveEpg(bool cvfd_mode);
|
||||
void getAnnounceEpgName(CTimerd::RecordingInfo * eventinfo, std::string &name);
|
||||
|
||||
void ExitRun(const bool write_si = true, int retcode = 0);
|
||||
void RealRun(CMenuWidget &mainSettings);
|
||||
|
@@ -246,14 +246,14 @@ std::string trim(std::string &str, const std::string &trimChars /*= " \n\r\t"*/)
|
||||
CFileHelpers::CFileHelpers()
|
||||
{
|
||||
FileBufSize = 0xFFFF;
|
||||
FileBuf = (char*)malloc(FileBufSize);
|
||||
FileBuf = new char[FileBufSize];
|
||||
doCopyFlag = true;
|
||||
}
|
||||
|
||||
CFileHelpers::~CFileHelpers()
|
||||
{
|
||||
if (FileBuf != NULL)
|
||||
free(FileBuf);
|
||||
delete [] FileBuf;
|
||||
}
|
||||
|
||||
CFileHelpers* CFileHelpers::getInstance()
|
||||
@@ -271,7 +271,7 @@ bool CFileHelpers::copyFile(const char *Src, const char *Dst, mode_t mode)
|
||||
if ((fd1 = open(Src, O_RDONLY)) < 0)
|
||||
return false;
|
||||
if ((fd2 = open(Dst, O_WRONLY | O_CREAT)) < 0) {
|
||||
close(fd2);
|
||||
close(fd1);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -294,8 +294,11 @@ bool CFileHelpers::copyFile(const char *Src, const char *Dst, mode_t mode)
|
||||
if (doCopyFlag) {
|
||||
lseek64(fd2, 0, SEEK_SET);
|
||||
off64_t fsizeDst64 = lseek64(fd2, 0, SEEK_END);
|
||||
if (fsizeSrc64 != fsizeDst64)
|
||||
if (fsizeSrc64 != fsizeDst64){
|
||||
close(fd1);
|
||||
close(fd2);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
else { // < 2GB
|
||||
@@ -316,8 +319,11 @@ bool CFileHelpers::copyFile(const char *Src, const char *Dst, mode_t mode)
|
||||
if (doCopyFlag) {
|
||||
lseek(fd2, 0, SEEK_SET);
|
||||
long fsizeDst = lseek(fd2, 0, SEEK_END);
|
||||
if (fsizeSrc != fsizeDst)
|
||||
if (fsizeSrc != fsizeDst){
|
||||
close(fd1);
|
||||
close(fd2);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
close(fd1);
|
||||
|
@@ -1250,8 +1250,15 @@ void CTimerEvent_Record::Refresh()
|
||||
//=============================================================
|
||||
void CTimerEvent_Zapto::announceEvent()
|
||||
{
|
||||
Refresh();
|
||||
CTimerd::RecordingInfo ri=eventInfo;
|
||||
ri.eventID=eventID;
|
||||
ri.recordingDir[0] = 0;
|
||||
strcpy(ri.epgTitle, epgTitle.substr(0,sizeof(ri.epgTitle)-1).c_str());
|
||||
|
||||
CTimerManager::getInstance()->getEventServer()->sendEvent(CTimerdClient::EVT_ANNOUNCE_ZAPTO,
|
||||
CEventServer::INITID_TIMERD);
|
||||
CEventServer::INITID_TIMERD,
|
||||
&ri,sizeof(CTimerd::RecordingInfo));
|
||||
}
|
||||
//------------------------------------------------------------
|
||||
void CTimerEvent_Zapto::fireEvent()
|
||||
|
Reference in New Issue
Block a user