Skip to content

Commit

Permalink
Convert to std::array and std::string. (mythfrontend)
Browse files Browse the repository at this point in the history
  • Loading branch information
linuxdude42 committed Aug 28, 2020
1 parent 54b4dd0 commit 381e8cf
Show file tree
Hide file tree
Showing 9 changed files with 75 additions and 95 deletions.
8 changes: 4 additions & 4 deletions mythtv/programs/mythfrontend/audiogeneralsettings.cpp
Expand Up @@ -650,15 +650,15 @@ void AudioTestThread::run()
{
RunProlog();
m_interrupted = false;
int smptelayout[7][8] = {
std::array<std::array<int,8>,7> smptelayout {{
{ 0, 1, 1 }, //stereo
{ }, //not used
{ }, //not used
{ 0, 2, 1, 4, 3 }, //5.0
{ 0, 2, 1, 5, 4, 3 }, //5.1
{ 0, 2, 1, 6, 4, 5, 3 }, //6.1
{ 0, 2, 1, 7, 5, 4, 6, 3 }, //7.1
};
}};

if (m_audioOutput)
{
Expand Down Expand Up @@ -1094,7 +1094,7 @@ HostComboBoxSetting *AudioConfigSettings::MixerDevice()
return gc;
}

const char* AudioConfigSettings::kMixerControlControls[] =
const std::array<const char *,2> AudioConfigSettings::kMixerControlControls
{QT_TR_NOOP("PCM"),
QT_TR_NOOP("Master")};

Expand All @@ -1104,7 +1104,7 @@ HostComboBoxSetting *AudioConfigSettings::MixerControl()

gc->setLabel(tr("Mixer controls"));

for (auto & control : kMixerControlControls)
for (const auto & control : kMixerControlControls)
gc->addSelection(tr(control), control);

gc->setHelpText(tr("Changing the volume adjusts the selected mixer."));
Expand Down
2 changes: 1 addition & 1 deletion mythtv/programs/mythfrontend/audiogeneralsettings.h
Expand Up @@ -111,7 +111,7 @@ class AudioConfigSettings : public GroupSetting

int m_maxSpeakers {0};
QString m_lastAudioDevice;
static const char *kMixerControlControls[];
static const std::array<const char *,2> kMixerControlControls;
};

class AudioDeviceComboBox : public HostComboBoxSetting
Expand Down
4 changes: 2 additions & 2 deletions mythtv/programs/mythfrontend/globalsettings.cpp
Expand Up @@ -1384,7 +1384,7 @@ void PlaybackSettings::CreateNewPlaybackProfileSlot(const QString &name)

static HostComboBoxSetting *PlayBoxOrdering()
{
QString str[4] =
std::array<QString,4> str
{
PlaybackSettings::tr("Sort all sub-titles/multi-titles Ascending"),
PlaybackSettings::tr("Sort all sub-titles/multi-titles Descending"),
Expand All @@ -1405,7 +1405,7 @@ static HostComboBoxSetting *PlayBoxOrdering()

gc->setLabel(PlaybackSettings::tr("Episode sort orderings"));

for (int i = 0; i < 4; ++i)
for (size_t i = 0; i < str.size(); ++i)
gc->addSelection(str[i], QString::number(i));

gc->setValue(3);
Expand Down
2 changes: 1 addition & 1 deletion mythtv/programs/mythfrontend/guidegrid.h
Expand Up @@ -34,7 +34,7 @@ class MythUIGuideGrid;

using db_chan_list_t = vector<ChannelInfo> ;
using db_chan_list_list_t = vector<db_chan_list_t>;
using ProgInfoGuideArray = ProgramInfo *[MAX_DISPLAY_CHANS][MAX_DISPLAY_TIMES];
using ProgInfoGuideArray = array<array<ProgramInfo *,MAX_DISPLAY_TIMES>,MAX_DISPLAY_CHANS>;

class JumpToChannel;
class JumpToChannelListener
Expand Down
79 changes: 44 additions & 35 deletions mythtv/programs/mythfrontend/playbackbox.cpp
@@ -1,5 +1,8 @@
#include "playbackbox.h"

// C++
#include <array>

// QT
#include <QCoreApplication>
#include <QDateTime>
Expand Down Expand Up @@ -198,7 +201,7 @@ static bool comp_season_rev_less_than(
return comp_season_rev(a, b) < 0;
}

static const uint s_artDelay[] =
static const std::array<const uint,3> s_artDelay
{ kArtworkFanTimeout, kArtworkBannerTimeout, kArtworkCoverTimeout,};

static PlaybackBox::ViewMask m_viewMaskToggle(PlaybackBox::ViewMask mask,
Expand Down Expand Up @@ -758,13 +761,16 @@ void PlaybackBox::UpdateUIListItem(ProgramInfo *pginfo,
}
}

static const char *disp_flags[] = { "playlist", "watched", "preserve",
"cutlist", "autoexpire", "editing",
"bookmark", "inuse", "transcoded" };
static const std::array<const std::string,9> disp_flags
{
"playlist", "watched", "preserve",
"cutlist", "autoexpire", "editing",
"bookmark", "inuse", "transcoded"
};

void PlaybackBox::SetItemIcons(MythUIButtonListItem *item, ProgramInfo* pginfo)
{
bool disp_flag_stat[sizeof(disp_flags)/sizeof(char*)];
std::array<bool,disp_flags.size()> disp_flag_stat {};

disp_flag_stat[0] = m_playList.contains(pginfo->GetRecordingID());
disp_flag_stat[1] = pginfo->IsWatched();
Expand All @@ -776,8 +782,9 @@ void PlaybackBox::SetItemIcons(MythUIButtonListItem *item, ProgramInfo* pginfo)
disp_flag_stat[7] = pginfo->IsInUsePlaying();
disp_flag_stat[8] = ((pginfo->GetProgramFlags() & FL_TRANSCODED) != 0U);

for (size_t i = 0; i < sizeof(disp_flags) / sizeof(char*); ++i)
item->DisplayState(disp_flag_stat[i] ? "yes" : "no", disp_flags[i]);
for (size_t i = 0; i < disp_flags.size(); ++i)
item->DisplayState(disp_flag_stat[i] ? "yes" : "no",
QString::fromStdString(disp_flags[i]));
}

void PlaybackBox::UpdateUIListItem(MythUIButtonListItem *item,
Expand Down Expand Up @@ -3114,6 +3121,28 @@ MythMenu* PlaybackBox::createRecordingMenu(void)
return menu;
}

static constexpr int kMaxJobs {7};
static const std::array<const int,kMaxJobs> kJobs
{
JOB_TRANSCODE,
JOB_COMMFLAG,
JOB_METADATA,
JOB_USERJOB1,
JOB_USERJOB2,
JOB_USERJOB3,
JOB_USERJOB4,
};
static const std::array<const char *,kMaxJobs*2> kMySlots
{ // stop start
SLOT(doBeginTranscoding()), SLOT(createTranscodingProfilesMenu()),
SLOT(doBeginFlagging()), SLOT(doBeginFlagging()),
SLOT(doBeginLookup()), SLOT(doBeginLookup()),
SLOT(doBeginUserJob1()), SLOT(doBeginUserJob1()),
SLOT(doBeginUserJob2()), SLOT(doBeginUserJob2()),
SLOT(doBeginUserJob3()), SLOT(doBeginUserJob3()),
SLOT(doBeginUserJob4()), SLOT(doBeginUserJob4()),
};

MythMenu* PlaybackBox::createJobMenu()
{
ProgramInfo *pginfo = GetCurrentProgram();
Expand All @@ -3126,7 +3155,7 @@ MythMenu* PlaybackBox::createJobMenu()

QString command;

bool add[7] =
const std::array<const bool,kMaxJobs> add
{
true,
true,
Expand All @@ -3136,17 +3165,7 @@ MythMenu* PlaybackBox::createJobMenu()
!gCoreContext->GetSetting("UserJob3", "").isEmpty(),
!gCoreContext->GetSetting("UserJob4", "").isEmpty(),
};
int jobs[7] =
{
JOB_TRANSCODE,
JOB_COMMFLAG,
JOB_METADATA,
JOB_USERJOB1,
JOB_USERJOB2,
JOB_USERJOB3,
JOB_USERJOB4,
};
QString desc[14] =
const std::array<const QString,kMaxJobs*2> desc
{
// stop start
tr("Stop Transcoding"), tr("Begin Transcoding"),
Expand All @@ -3157,18 +3176,8 @@ MythMenu* PlaybackBox::createJobMenu()
"3", "3",
"4", "4",
};
const char *myslots[14] =
{ // stop start
SLOT(doBeginTranscoding()), SLOT(createTranscodingProfilesMenu()),
SLOT(doBeginFlagging()), SLOT(doBeginFlagging()),
SLOT(doBeginLookup()), SLOT(doBeginLookup()),
SLOT(doBeginUserJob1()), SLOT(doBeginUserJob1()),
SLOT(doBeginUserJob2()), SLOT(doBeginUserJob2()),
SLOT(doBeginUserJob3()), SLOT(doBeginUserJob3()),
SLOT(doBeginUserJob4()), SLOT(doBeginUserJob4()),
};

for (size_t i = 0; i < sizeof(add) / sizeof(bool); i++)
for (size_t i = 0; i < kMaxJobs; i++)
{
if (!add[i])
continue;
Expand All @@ -3185,10 +3194,10 @@ MythMenu* PlaybackBox::createJobMenu()
}

bool running = JobQueue::IsJobQueuedOrRunning(
jobs[i], pginfo->GetChanID(), pginfo->GetRecordingStartTime());
kJobs[i], pginfo->GetChanID(), pginfo->GetRecordingStartTime());

const char *slot = myslots[i * 2 + (running ? 0 : 1)];
MythMenu *submenu = (slot == myslots[1] ? createTranscodingProfilesMenu() : nullptr);
const char *slot = kMySlots[i * 2 + (running ? 0 : 1)];
MythMenu *submenu = (slot == kMySlots[1] ? createTranscodingProfilesMenu() : nullptr);

menu->AddItem((running) ? stop_desc : start_desc, slot, submenu);
}
Expand Down Expand Up @@ -3675,9 +3684,9 @@ ProgramInfo *PlaybackBox::FindProgramInUILists(uint recordingID,
const QString& recgroup)
{
// LiveTV ProgramInfo's are not in the aggregated list
ProgramList::iterator _it[2] = {
std::array<ProgramList::iterator,2> _it {
m_progLists[tr("Live TV").toLower()].begin(), m_progLists[""].begin() };
ProgramList::iterator _end[2] = {
std::array<ProgramList::iterator,2> _end {
m_progLists[tr("Live TV").toLower()].end(), m_progLists[""].end() };

if (recgroup != "LiveTV")
Expand Down
4 changes: 2 additions & 2 deletions mythtv/programs/mythfrontend/playbackbox.h
Expand Up @@ -351,8 +351,8 @@ class PlaybackBox : public ScheduleCommon

QString m_artHostOverride;
constexpr static int kNumArtImages = 3;
MythUIImage *m_artImage[kNumArtImages] {};
QTimer *m_artTimer[kNumArtImages] {};
std::array<MythUIImage*,kNumArtImages> m_artImage {};
std::array<QTimer*,kNumArtImages> m_artTimer {};

InfoMap m_currentMap;

Expand Down
49 changes: 10 additions & 39 deletions mythtv/programs/mythfrontend/progfind.cpp
Expand Up @@ -703,31 +703,21 @@ void ProgFinder::restoreSelectedData(QString &data)
// Japanese specific program finder

// japanese HIRAGANA list and more
const QChar JaProgFinder::kSearchChars[] =
const std::vector<QChar> JaProgFinder::kSearchChars
{
// "あ", "か", "さ", "た",
QChar(0x3042), QChar(0x304b), QChar(0x3055), QChar(0x305f),
// "な", "は", "ま", "や",
QChar(0x306a), QChar(0x306f), QChar(0x307e), QChar(0x3084),
// "ら", "わ", "英", "数",
QChar(0x3089), QChar(0x308f), QChar(0x82f1), QChar(0x6570),
0,
};

JaProgFinder::JaProgFinder(MythScreenStack *parentStack, bool gg,
TV *player, bool embedVideo)
: ProgFinder(parentStack, gg, player, embedVideo)
{
for (m_numberOfSearchChars = 0; !kSearchChars[m_numberOfSearchChars].isNull();
++m_numberOfSearchChars)
;
}

void JaProgFinder::initAlphabetList()
{
for (int charNum = 0; charNum < m_numberOfSearchChars; ++charNum)
for (auto search_char : kSearchChars)
{
new MythUIButtonListItem(m_alphabetList, QString(kSearchChars[charNum]));
new MythUIButtonListItem(m_alphabetList, QString(search_char));
}
}

Expand Down Expand Up @@ -818,7 +808,7 @@ void JaProgFinder::restoreSelectedData(QString& data)
// Hebrew specific program finder

// Hebrew alphabet list and more
const QChar HeProgFinder::kSearchChars[] =
const std::vector<QChar> HeProgFinder::kSearchChars
{
// "א", "ב", "ג", "ד",
QChar(0x5d0), QChar(0x5d1), QChar(0x5d2), QChar(0x5d3),
Expand All @@ -832,23 +822,13 @@ const QChar HeProgFinder::kSearchChars[] =
QChar(0x5e4), QChar(0x5e6), QChar(0x5e7), QChar(0x5e8),
// "ש", "ת", "E", "#",
QChar(0x5e9), QChar(0x5ea), QChar('E'), QChar('#'),
QChar(0),
};

HeProgFinder::HeProgFinder(MythScreenStack *parentStack, bool gg,
TV *player, bool embedVideo)
: ProgFinder(parentStack, gg, player, embedVideo)
{
for (m_numberOfSearchChars = 0; !kSearchChars[m_numberOfSearchChars].isNull();
++m_numberOfSearchChars)
;
}

void HeProgFinder::initAlphabetList()
{
for (int charNum = 0; charNum < m_numberOfSearchChars; ++charNum)
for (auto search_char : kSearchChars)
{
new MythUIButtonListItem(m_alphabetList, QString(kSearchChars[charNum]));
new MythUIButtonListItem(m_alphabetList, QString(search_char));
}
}

Expand Down Expand Up @@ -916,7 +896,7 @@ void HeProgFinder::restoreSelectedData(QString& data)

// Cyrrilic specific program finder
// Cyrrilic alphabet list and more
const QChar RuProgFinder::kSearchChars[] =
const std::vector<QChar> RuProgFinder::kSearchChars
{
// "А", "Б", "В", "Г",
QChar(0x410), QChar(0x411), QChar(0x412), QChar(0x413),
Expand Down Expand Up @@ -944,23 +924,14 @@ const QChar RuProgFinder::kSearchChars[] =
QChar('M'), QChar('N'), QChar('O'), QChar('P'),
QChar('Q'), QChar('R'), QChar('S'), QChar('T'),
QChar('U'), QChar('V'), QChar('W'), QChar('X'),
QChar('Y'), QChar('Z'), 0
QChar('Y'), QChar('Z')
};

RuProgFinder::RuProgFinder(MythScreenStack *parentStack, bool gg,
TV *player, bool embedVideo)
: ProgFinder(parentStack, gg, player, embedVideo)
{
for (m_numberOfSearchChars = 0; !kSearchChars[m_numberOfSearchChars].isNull();
++m_numberOfSearchChars)
;
}

void RuProgFinder::initAlphabetList()
{
for (int charNum = 0; charNum < m_numberOfSearchChars; ++charNum)
for (auto search_char : kSearchChars)
{
new MythUIButtonListItem(m_alphabetList, kSearchChars[charNum]);
new MythUIButtonListItem(m_alphabetList, search_char);
}
}

Expand Down

0 comments on commit 381e8cf

Please sign in to comment.