Skip to content

Commit

Permalink
channellogos lower case bg
Browse files Browse the repository at this point in the history
  • Loading branch information
Markus Ehrnsperger committed Dec 3, 2023
1 parent 1569600 commit a33a376
Show file tree
Hide file tree
Showing 29 changed files with 280 additions and 193 deletions.
4 changes: 2 additions & 2 deletions epg_events.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -287,7 +287,7 @@ namespace vdrlive

eventId += channelId;
eventId += '_';
eventId += lexical_cast<std::string>(eId);
eventId += cSv(cToSvInt(eId));
return eventId;
}

Expand All @@ -303,7 +303,7 @@ namespace vdrlive
std::string const eIdStr = epgid.substr(delimPos+1);

channelId = tChannelID::FromString(cIdStr.c_str());
eventId = lexical_cast<tEventID>(eIdStr);
eventId = parse_int<tEventID>(eIdStr);
}

EpgInfoPtr CreateEpgInfo(std::string const &epgid, cSchedules const *schedules)
Expand Down
139 changes: 65 additions & 74 deletions epgsearch.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,8 @@ void SearchTimer::Init()
m_useDayOfWeek = false;
m_dayOfWeek = 0;
m_useEpisode = false;
m_priority = lexical_cast<int>(EPGSearchSetupValues::ReadValue("DefPriority"));
m_lifetime = lexical_cast<int>(EPGSearchSetupValues::ReadValue("DefLifetime"));
m_priority = parse_int<int>(EPGSearchSetupValues::ReadValue("DefPriority"));
m_lifetime = parse_int<int>(EPGSearchSetupValues::ReadValue("DefLifetime"));
m_fuzzytolerance = 1;
m_useInFavorites = false;
m_useAsSearchtimer = 0;
Expand All @@ -68,8 +68,8 @@ void SearchTimer::Init()
m_switchMinBefore = 1;
m_useExtEPGInfo = false;
m_useVPS = false;
m_marginstart = lexical_cast<int>(EPGSearchSetupValues::ReadValue("DefMarginStart"));
m_marginstop = lexical_cast<int>(EPGSearchSetupValues::ReadValue("DefMarginStop"));
m_marginstart = parse_int<int>(EPGSearchSetupValues::ReadValue("DefMarginStart"));
m_marginstop = parse_int<int>(EPGSearchSetupValues::ReadValue("DefMarginStop"));
m_avoidrepeats = false;
m_allowedrepeats = 0;
m_compareTitle = false;
Expand All @@ -95,55 +95,55 @@ SearchTimer::SearchTimer( std::string const& data )
std::vector<std::string>::const_iterator part = parts.begin();
for ( int i = 0; part != parts.end(); ++i, ++part ) {
switch ( i ) {
case 0: m_id = lexical_cast<int>( *part ); break;
case 0: m_id = parse_int<int>( *part ); break;
case 1: m_search = StringReplace( StringReplace( *part, "|", ":" ), "!^pipe^!", "|" ); break;
case 2: m_useTime = lexical_cast<bool>( *part ); break;
case 3: if ( m_useTime ) m_startTime = lexical_cast<int>( *part ); break;
case 4: if ( m_useTime ) m_stopTime = lexical_cast<int>( *part ); break;
case 5: m_useChannel = lexical_cast<int>( *part ); break;
case 3: if ( m_useTime ) m_startTime = parse_int<int>( *part ); break;
case 4: if ( m_useTime ) m_stopTime = parse_int<int>( *part ); break;
case 5: m_useChannel = parse_int<int>( *part ); break;
case 6: ParseChannel( *part ); break;
case 7: m_useCase = lexical_cast<int>( *part ); break;
case 8: m_mode = lexical_cast<int>( *part ); break;
case 7: m_useCase = parse_int<int>( *part ); break;
case 8: m_mode = parse_int<int>( *part ); break;
case 9: m_useTitle = lexical_cast<bool>( *part ); break;
case 10: m_useSubtitle = lexical_cast<bool>( *part ); break;
case 11: m_useDescription = lexical_cast<bool>( *part ); break;
case 12: m_useDuration = lexical_cast<bool>( *part ); break;
case 13: if ( m_useDuration ) m_minDuration = lexical_cast<int>( *part ); break;
case 14: if ( m_useDuration ) m_maxDuration = lexical_cast<int>( *part ); break;
case 15: m_useAsSearchtimer = lexical_cast<int>( *part ); break;
case 13: if ( m_useDuration ) m_minDuration = parse_int<int>( *part ); break;
case 14: if ( m_useDuration ) m_maxDuration = parse_int<int>( *part ); break;
case 15: m_useAsSearchtimer = parse_int<int>( *part ); break;
case 16: m_useDayOfWeek = lexical_cast<bool>( *part ); break;
case 17: m_dayOfWeek = lexical_cast<int>( *part ); break;
case 17: m_dayOfWeek = parse_int<int>( *part ); break;
case 18: m_useEpisode = lexical_cast<bool>( *part ); break;
case 19: m_directory = StringReplace( StringReplace( *part, "|", ":" ), "!^pipe^!", "|" ); break;
case 20: m_priority = lexical_cast<int>( *part ); break;
case 21: m_lifetime = lexical_cast<int>( *part ); break;
case 22: m_marginstart = lexical_cast<int>( *part ); break;
case 23: m_marginstop = lexical_cast<int>( *part ); break;
case 20: m_priority = parse_int<int>( *part ); break;
case 21: m_lifetime = parse_int<int>( *part ); break;
case 22: m_marginstart = parse_int<int>( *part ); break;
case 23: m_marginstop = parse_int<int>( *part ); break;
case 24: m_useVPS = lexical_cast<bool>( *part ); break;
case 25: m_action = lexical_cast<int>( *part ); break;
case 25: m_action = parse_int<int>( *part ); break;
case 26: m_useExtEPGInfo = lexical_cast<bool>( *part ); break;
case 27: ParseExtEPGInfo( *part ); break;
case 28: m_avoidrepeats = lexical_cast<bool>( *part ); break;
case 29: m_allowedrepeats = lexical_cast<int>( *part ); break;
case 29: m_allowedrepeats = parse_int<int>( *part ); break;
case 30: m_compareTitle = lexical_cast<bool>( *part ); break;
case 31: m_compareSubtitle = lexical_cast<int>( *part ); break;
case 31: m_compareSubtitle = parse_int<int>( *part ); break;
case 32: m_compareSummary = lexical_cast<bool>( *part ); break;
case 33: m_catvaluesAvoidRepeat = lexical_cast< long >( *part ); break;
case 34: m_repeatsWithinDays = lexical_cast<int>( *part ); break;
case 35: m_delAfterDays = lexical_cast<int>( *part ); break;
case 36: m_recordingsKeep = lexical_cast<int>( *part ); break;
case 37: m_switchMinBefore = lexical_cast<int>( *part ); break;
case 38: m_pauseOnNrRecordings = lexical_cast<int>( *part ); break;
case 39: m_blacklistmode = lexical_cast<int>( *part ); break;
case 33: m_catvaluesAvoidRepeat = parse_int< unsigned long >( *part ); break;
case 34: m_repeatsWithinDays = parse_int<int>( *part ); break;
case 35: m_delAfterDays = parse_int<int>( *part ); break;
case 36: m_recordingsKeep = parse_int<int>( *part ); break;
case 37: m_switchMinBefore = parse_int<int>( *part ); break;
case 38: m_pauseOnNrRecordings = parse_int<int>( *part ); break;
case 39: m_blacklistmode = parse_int<int>( *part ); break;
case 40: ParseBlacklist( *part ); break;
case 41: m_fuzzytolerance = lexical_cast<int>( *part ); break;
case 41: m_fuzzytolerance = parse_int<int>( *part ); break;
case 42: m_useInFavorites = lexical_cast<bool>( *part ); break;
case 43: m_menuTemplate = lexical_cast<int>( *part ); break;
case 44: m_delMode = lexical_cast<int>( *part ); break;
case 45: m_delAfterCountRecs = lexical_cast<int>( *part ); break;
case 46: m_delAfterDaysOfFirstRec = lexical_cast<int>( *part ); break;
case 47: m_useAsSearchTimerFrom = lexical_cast<time_t>( *part ); break;
case 48: m_useAsSearchTimerTil = lexical_cast<time_t>( *part ); break;
case 43: m_menuTemplate = parse_int<int>( *part ); break;
case 44: m_delMode = parse_int<int>( *part ); break;
case 45: m_delAfterCountRecs = parse_int<int>( *part ); break;
case 46: m_delAfterDaysOfFirstRec = parse_int<int>( *part ); break;
case 47: m_useAsSearchTimerFrom = parse_int<time_t>( *part ); break;
case 48: m_useAsSearchTimerTil = parse_int<time_t>( *part ); break;
case 49: m_ignoreMissingEPGCats = lexical_cast<bool>( *part ); break;
}
}
Expand Down Expand Up @@ -275,10 +275,10 @@ std::string SearchTimer::ToText()
void SearchTimer::ParseChannel( std::string const& data )
{
switch ( m_useChannel ) {
case NoChannel: m_channels = tr("All"); break;
case Interval: ParseChannelIDs( data ); break;
case Group: m_channels = data; break;
case FTAOnly: m_channels = tr("FTA"); break;
case NoChannel: m_channels = tr("All"); break;
case Interval: ParseChannelIDs( data ); break;
case Group: m_channels = data; break;
case FTAOnly: m_channels = tr("FTA"); break;
}
}

Expand All @@ -287,12 +287,8 @@ void SearchTimer::ParseChannelIDs( std::string const& data )
std::vector<std::string> parts = StringSplit( data, '|' );
m_channelMin = lexical_cast<tChannelID>( parts[ 0 ] );

#if VDRVERSNUM >= 20301
LOCK_CHANNELS_READ;
cChannel const* channel = Channels->GetByChannelID( m_channelMin );
#else
cChannel const* channel = Channels.GetByChannelID( m_channelMin );
#endif
if ( channel != 0 )
m_channels = channel->Name();

Expand Down Expand Up @@ -401,11 +397,9 @@ bool SearchTimers::Save(SearchTimer* searchtimer)

SearchTimer* SearchTimers::GetByTimerId( std::string const& id )
{
for (SearchTimers::iterator timer = m_timers.begin(); timer != m_timers.end(); ++timer)
if (timer->Id() == lexical_cast<int>(id))
return &*timer;
return NULL;

for (SearchTimers::iterator timer = m_timers.begin(); timer != m_timers.end(); ++timer)
if (timer->Id() == parse_int<int>(id)) return &*timer;
return NULL;
}

bool SearchTimers::ToggleActive(std::string const& id)
Expand All @@ -425,7 +419,7 @@ bool SearchTimers::Delete(std::string const& id)
if ( !CheckEpgsearchVersion() || cPluginManager::CallFirstService(ServiceInterface, &service) == 0 )
throw HtmlError( tr("EPGSearch version outdated! Please update.") );

if (service.handler->DelSearchTimer(lexical_cast<int>( id )))
if (service.handler->DelSearchTimer(parse_int<int>( id )))
return Reload();
return false;
}
Expand All @@ -447,23 +441,20 @@ bool SearchTimer::BlacklistSelected(int id) const

ExtEPGInfo::ExtEPGInfo( std::string const& data )
{
m_id = -1;
m_searchmode = 0;

std::vector<std::string> parts = StringSplit( data, '|' );
try {
std::vector<std::string>::const_iterator part = parts.begin();
for ( int i = 0; part != parts.end(); ++i, ++part ) {
switch ( i ) {
case 0: m_id = lexical_cast<int>( *part ); break;
case 1: m_name = *part; break;
case 2: m_menuname = *part; break;
case 3: ParseValues( *part ); break;
case 4: m_searchmode = lexical_cast<int>( *part ); break;
}
}
} catch ( bad_lexical_cast const& ex ) {
}
m_id = -1;
m_searchmode = 0;

std::vector<std::string> parts = StringSplit( data, '|' );
std::vector<std::string>::const_iterator part = parts.begin();
for ( int i = 0; part != parts.end(); ++i, ++part ) {
switch ( i ) {
case 0: m_id = parse_int<int>( *part ); break;
case 1: m_name = *part; break;
case 2: m_menuname = *part; break;
case 3: ParseValues( *part ); break;
case 4: m_searchmode = parse_int<int>( *part ); break;
}
}
}

void ExtEPGInfo::ParseValues( std::string const& data )
Expand Down Expand Up @@ -529,7 +520,7 @@ Blacklist::Blacklist( std::string const& data )
std::vector<std::string>::const_iterator part = parts.begin();
for ( int i = 0; part != parts.end(); ++i, ++part ) {
switch ( i ) {
case 0: m_id = lexical_cast<int>( *part ); break;
case 0: m_id = parse_int<int>( *part ); break;
case 1: m_search = StringReplace( StringReplace( *part, "|", ":" ), "!^pipe^!", "|" ); break;
}
}
Expand All @@ -555,18 +546,18 @@ SearchResult::SearchResult( std::string const& data )
std::vector<std::string>::const_iterator part = parts.begin();
for ( int i = 0; part != parts.end(); ++i, ++part ) {
switch ( i ) {
case 0: m_searchId = lexical_cast<int>( *part ); break;
case 1: m_eventId = lexical_cast<u_int32_t>( *part ); break;
case 0: m_searchId = parse_int<int>( *part ); break;
case 1: m_eventId = parse_int<tEventID>( *part ); break;
case 2: m_title = StringReplace( *part, "|", ":" ); break;
case 3: m_shorttext = StringReplace( *part, "|", ":" ); break;
case 4: m_description = StringReplace( *part, "|", ":" ); break;
case 5: m_starttime = lexical_cast<unsigned long>( *part ); break;
case 6: m_stoptime = lexical_cast<unsigned long>( *part ); break;
case 5: m_starttime = parse_int<time_t>( *part ); break;
case 6: m_stoptime = parse_int<time_t>( *part ); break;
case 7: m_channel = lexical_cast<tChannelID>( *part ); break;
case 8: m_timerstart = lexical_cast<unsigned long>( *part ); break;
case 9: m_timerstop = lexical_cast<unsigned long>( *part ); break;
case 8: m_timerstart = parse_int<time_t>( *part ); break;
case 9: m_timerstop = parse_int<time_t>( *part ); break;
case 10: m_file = *part; break;
case 11: m_timerMode = lexical_cast<int>( *part ); break;
case 11: m_timerMode = parse_int<int>( *part ); break;
}
}
} catch ( bad_lexical_cast const& ex ) {
Expand Down
6 changes: 5 additions & 1 deletion live/css/styles.css
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,8 @@ img.artwork {
width: 480px
}
img.channel_logo {
max-height:32px; max-width:150px; vertical-align:middle;
max-height:32px; max-width:140px; vertical-align:middle;
background-color: #E9EFFF;
}
/* ##############################
# Infowin styles for epg infos
Expand Down Expand Up @@ -1475,6 +1476,9 @@ img.actor {
.hint-tip {
max-width: 200px; /* depends on the tip backround image width */
}
img.channel_logo {
max-height:32px; max-width:90px;
}

}
@media (hover: none) {
Expand Down
3 changes: 3 additions & 0 deletions live/themes/orange-blue/css/theme.css
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,9 @@ div.__progress {
div.__progress div.__elapsed {
background-color: #FCB840;
}
img.channel_logo {
background-color: #FCB840;
}


/* #############
Expand Down
3 changes: 3 additions & 0 deletions live/themes/redwine/css/theme.css
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,9 @@ div.__progress {
div.__progress div.__elapsed {
background-color: #FFE9FA;
}
img.channel_logo {
background-color: #FFE9FA;
}


/*
Expand Down
4 changes: 4 additions & 0 deletions live/themes/veltliner/css/theme.css
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,10 @@ div.__progress {
div.__progress div.__elapsed {
background-color: #FFCC00;
}
img.channel_logo {
background-color: #FFCC00;
}



/* #############
Expand Down
3 changes: 2 additions & 1 deletion pages/channels_widget.ecpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

#include <exception.h>
#include <setup.h>
#include <stringhelpers.h>

#if VDRVERSNUM < 20300
#include <tools.h> // ReadLock
Expand Down Expand Up @@ -41,6 +42,6 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html");
% continue;
%
% std::string listChannelId = *listChannel->GetChannelID().ToString();
<option value="<? channelid ? *listChannel->GetChannelID().ToString() ?><? !channelid ? std::to_string(listChannel->Number()) ?>"<{ reply.out() << ( listChannelId == selected ? " selected=\"selected\"" : "" ); }>><$ std::to_string(listChannel->Number()) $>: <$ listChannel->Name() $></option>
<option value="<? channelid ? *listChannel->GetChannelID().ToString() ?><? !channelid ? cSv(cToSvInt(listChannel->Number())) ?>"<{ reply.out() << ( listChannelId == selected ? " selected=\"selected\"" : "" ); }>><$ cSv(cToSvInt(listChannel->Number())) $>: <$ listChannel->Name() $></option>
% }
</select>
2 changes: 1 addition & 1 deletion pages/delete_recording.ecpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ using namespace vdrlive;
throw HtmlError( tr("Sorry, no permission. Please contact your administrator!") );
}

bool ajaxReq = !async.empty() && (lexical_cast<int>(async) != 0);
bool ajaxReq = !async.empty() && (parse_int<int>(async) != 0);
std::string referrer;

if (ajaxReq) {
Expand Down
2 changes: 1 addition & 1 deletion pages/edit_recording.ecpp
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ const cRecording* recording;
if (!cUser::CurrentUserHasRightTo(UR_EDITRECS))
throw HtmlError( tr("Sorry, no permission. Please contact your administrator!") );

bool ajaxReq = !async.empty() && (lexical_cast<int>(async) != 0);
bool ajaxReq = !async.empty() && (parse_int<int>(async) != 0);

std::string message;

Expand Down
8 changes: 4 additions & 4 deletions pages/edit_searchtimer.ecpp
Original file line number Diff line number Diff line change
Expand Up @@ -344,10 +344,10 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html");
usetitle = true;
usesubtitle = true;
usedescr = true;
priority = lexical_cast<int>(EPGSearchSetupValues::ReadValue("DefPriority"));
lifetime = lexical_cast<int>(EPGSearchSetupValues::ReadValue("DefLifetime"));
marginstart = lexical_cast<int>(EPGSearchSetupValues::ReadValue("DefMarginStart"));
marginstop = lexical_cast<int>(EPGSearchSetupValues::ReadValue("DefMarginStop"));
priority = parse_int<int>(EPGSearchSetupValues::ReadValue("DefPriority"));
lifetime = parse_int<int>(EPGSearchSetupValues::ReadValue("DefLifetime"));
marginstart = parse_int<int>(EPGSearchSetupValues::ReadValue("DefMarginStart"));
marginstop = parse_int<int>(EPGSearchSetupValues::ReadValue("DefMarginStop"));
}
</%cpp>
<& pageelems.doc_type &>
Expand Down
2 changes: 1 addition & 1 deletion pages/edit_timer.ecpp
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ const cTimer* timer;
if (!cUser::CurrentUserHasRightTo(UR_EDITTIMERS))
throw HtmlError( tr("Sorry, no permission. Please contact your administrator!") );

bool ajaxReq = !async.empty() && (lexical_cast<int>(async) != 0);
bool ajaxReq = !async.empty() && (parse_int<int>(async) != 0);

tChannelID channelid = tChannelID();
tEventID eventid = tEventID();
Expand Down
2 changes: 1 addition & 1 deletion pages/epginfo.ecpp
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ using namespace vdrlive;

pageTitle = tr("Electronic program guide information");

bool ajaxReq = !async.empty() && (lexical_cast<int>(async) != 0);
bool ajaxReq = !async.empty() && (parse_int<int>(async) != 0);

bool aboutBox = false;
if (epgid.compare(0, 4, "del_") == 0) {
Expand Down
6 changes: 3 additions & 3 deletions pages/multischedule.ecpp
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ std::vector<time_t> times_start;
thisGroup.erase( 0, channelSep+1 );
else
thisGroup = "";
int channel_no = lexical_cast< int > (thisChannel);
int channel_no = parse_int< int > (thisChannel);
#if VDRVERSNUM >= 20301
cChannel* Channel = (cChannel *)Channels->GetByNumber( channel_no );
#else
Expand Down Expand Up @@ -236,7 +236,7 @@ std::vector<time_t> times_start;
continue;
}
std::string min = (*part).substr(sep+1, (*part).npos );
offsets.push_back( lexical_cast<time_t>( hour )*60*60 + lexical_cast<time_t>( min ) *60 );
offsets.push_back( parse_int<time_t>( hour )*60*60 + parse_int<time_t>( min ) *60 );
}
catch ( const bad_lexical_cast & ) {
esyslog("live: Error parsing time '%s'", part->c_str() );
Expand Down Expand Up @@ -326,7 +326,7 @@ std::vector<time_t> times_start;
time_t sched_start = (times_start[ time_para ]/300)*300;
time_t max_hours;
try {
max_hours = lexical_cast<time_t>( LiveSetup().GetScheduleDuration() );
max_hours = parse_int<time_t>( LiveSetup().GetScheduleDuration() );
}
catch ( const bad_lexical_cast & )
{
Expand Down
Loading

0 comments on commit a33a376

Please sign in to comment.