mirror of
https://github.com/tuxbox-fork-migrations/recycled-ni-neutrino.git
synced 2025-08-31 09:21:09 +02:00
Merge branch 'ni/tuxbox' into ni/mp/tuxbox
Conflicts:
src/gui/audioplayer.cpp
Origin commit data
------------------
Commit: 197dfd1c41
Author: vanhofen <vanhofen@gmx.de>
Date: 2017-06-18 (Sun, 18 Jun 2017)
This commit is contained in:
@@ -160,8 +160,8 @@ audioplayer.add_loc Lokale Radioliste
|
||||
audioplayer.add_sc SHOUTcast
|
||||
audioplayer.artist_title Interpret, Titel
|
||||
audioplayer.building_search_index Erstelle Suchindex
|
||||
audioplayer.button_select_title_by_id Suche n. ID
|
||||
audioplayer.button_select_title_by_name Suche n. Name
|
||||
audioplayer.button_select_title_by_id Suche nach ID
|
||||
audioplayer.button_select_title_by_name Suche nach Name
|
||||
audioplayer.defdir Start-Verzeichnis
|
||||
audioplayer.delete Entfernen
|
||||
audioplayer.deleteall Alle entfernen
|
||||
|
@@ -50,7 +50,7 @@ static void clear_queue();
|
||||
int dvbsub_init() {
|
||||
int trc;
|
||||
|
||||
sub_debug.set_level(2);
|
||||
sub_debug.set_level(3);
|
||||
|
||||
reader_running = true;
|
||||
dvbsub_stopped = 1;
|
||||
@@ -103,11 +103,7 @@ int dvbsub_start(int pid)
|
||||
pid_change_req = 1;
|
||||
}
|
||||
}
|
||||
#if 0
|
||||
printf("[dvb-sub] ***************************************** start, stopped %d pid %x\n", dvbsub_stopped, dvbsub_pid);
|
||||
while(!dvbsub_stopped)
|
||||
usleep(10);
|
||||
#endif
|
||||
|
||||
if(dvbsub_pid > 0) {
|
||||
dvbsub_stopped = 0;
|
||||
dvbsub_paused = false;
|
||||
@@ -248,11 +244,8 @@ static void* reader_thread(void * /*arg*/)
|
||||
set_threadname("dvbsub:reader");
|
||||
|
||||
dmx = new cDemux(0);
|
||||
#if HAVE_TRIPLEDRAGON
|
||||
dmx->Open(DMX_PES_CHANNEL, NULL, 16*1024);
|
||||
#else
|
||||
dmx->Open(DMX_PES_CHANNEL, NULL, 64*1024);
|
||||
#endif
|
||||
|
||||
while (reader_running) {
|
||||
if(dvbsub_stopped /*dvbsub_paused*/) {
|
||||
sub_debug.print(Debug::VERBOSE, "%s stopped\n", __FUNCTION__);
|
||||
@@ -310,17 +303,6 @@ static void* reader_thread(void * /*arg*/)
|
||||
count += len;
|
||||
}
|
||||
}
|
||||
#if 0
|
||||
for(int i = 6; i < packlen - 4; i++) {
|
||||
if(!memcmp(&buf[i], "\x00\x00\x01\xbd", 4)) {
|
||||
int plen = getbits(&buf[i], 4*8, 16) + 6;
|
||||
sub_debug.print(Debug::VERBOSE, "[subtitles] ******************* PES header at %d ?! *******************\n", i);
|
||||
sub_debug.print(Debug::VERBOSE, "[subtitles] start code: %02x%02x%02x%02x len %d\n", buf[i+0], buf[i+1], buf[i+2], buf[i+3], plen);
|
||||
free(buf);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if(!dvbsub_stopped /*!dvbsub_paused*/) {
|
||||
sub_debug.print(Debug::VERBOSE, "[subtitles] *** new packet, len %d buf 0x%x pts-stc diff %lld ***\n", count, buf, get_pts_stc_delta(get_pts(buf)));
|
||||
@@ -400,11 +382,6 @@ static void* dvbsub_thread(void* /*arg*/)
|
||||
dataoffset = packet[8] + 8 + 1;
|
||||
if (packet[dataoffset] != 0x20) {
|
||||
sub_debug.print(Debug::VERBOSE, "Not a dvb subtitle packet, discard it (len %d)\n", packlen);
|
||||
#if 0
|
||||
for(int i = 0; i < packlen; i++)
|
||||
printf("%02X ", packet[i]);
|
||||
printf("\n");
|
||||
#endif
|
||||
goto next_round;
|
||||
}
|
||||
|
||||
|
@@ -36,8 +36,6 @@ static bool DebugConverter = true;
|
||||
|
||||
#define dbgconverter(a...) if (DebugConverter) sub_debug.print(Debug::VERBOSE, a)
|
||||
|
||||
// --- cDvbSubtitleBitmaps ---------------------------------------------------
|
||||
|
||||
class cDvbSubtitleBitmaps : public cListObject
|
||||
{
|
||||
private:
|
||||
@@ -88,16 +86,7 @@ fb_pixel_t * simple_resize32(uint8_t * orgin, uint32_t * colors, int nb_colors,
|
||||
fb_pixel_t *cr,*l;
|
||||
int i,j,k,ip;
|
||||
|
||||
#ifndef HAVE_SPARK_HARDWARE
|
||||
cr = (fb_pixel_t *) malloc(dx*dy*sizeof(fb_pixel_t));
|
||||
|
||||
if(cr == NULL) {
|
||||
printf("Error: malloc\n");
|
||||
return NULL;
|
||||
}
|
||||
#else
|
||||
cr = CFrameBuffer::getInstance()->getBackBufferPointer();
|
||||
#endif
|
||||
l = cr;
|
||||
|
||||
for(j = 0; j < dy; j++, l += dx)
|
||||
@@ -116,29 +105,8 @@ fb_pixel_t * simple_resize32(uint8_t * orgin, uint32_t * colors, int nb_colors,
|
||||
void cDvbSubtitleBitmaps::Draw(int &min_x, int &min_y, int &max_x, int &max_y)
|
||||
{
|
||||
int i;
|
||||
#ifndef HAVE_SPARK_HARDWARE
|
||||
int stride = CFrameBuffer::getInstance()->getScreenWidth(true);
|
||||
#if 0
|
||||
int wd = CFrameBuffer::getInstance()->getScreenWidth();
|
||||
int xstart = CFrameBuffer::getInstance()->getScreenX();
|
||||
int yend = CFrameBuffer::getInstance()->getScreenY() + CFrameBuffer::getInstance()->getScreenHeight();
|
||||
int ystart = CFrameBuffer::getInstance()->getScreenY();
|
||||
#endif
|
||||
uint32_t *sublfb = CFrameBuffer::getInstance()->getFrameBufferPointer();
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
dbgconverter("cDvbSubtitleBitmaps::Draw: %d bitmaps, x= %d, width= %d yend=%d stride %d\n", Count(), xstart, wd, yend, stride);
|
||||
#endif
|
||||
|
||||
int sw = CFrameBuffer::getInstance()->getScreenWidth(true);
|
||||
int sh = CFrameBuffer::getInstance()->getScreenHeight(true);
|
||||
#if 0
|
||||
double xc = (double) CFrameBuffer::getInstance()->getScreenWidth(true)/(double) 720;
|
||||
double yc = (double) CFrameBuffer::getInstance()->getScreenHeight(true)/(double) 576;
|
||||
xc = yc; //FIXME should we scale also to full width ?
|
||||
int xf = int(xc * (double) 720);
|
||||
#endif
|
||||
|
||||
for (i = 0; i < Count(); i++) {
|
||||
#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(57, 5, 0)
|
||||
@@ -150,26 +118,13 @@ void cDvbSubtitleBitmaps::Draw(int &min_x, int &min_y, int &max_x, int &max_y)
|
||||
int height = sub.rects[i]->h;
|
||||
int xoff, yoff;
|
||||
|
||||
#if 0
|
||||
int nw = int(width == 1280 ? ((double) width / xc) : ((double) width * xc));
|
||||
int nh = int((double) height * yc);
|
||||
|
||||
int xdiff = (wd > xf) ? ((wd - xf) / 2) : 0;
|
||||
xoff = int(sub.rects[i]->x*xc + xstart + xdiff);
|
||||
if(sub.rects[i]->y < 576/2) {
|
||||
yoff = int(ystart + sub.rects[i]->y*yc);
|
||||
} else {
|
||||
yoff = int(yend - ((width == 1280 ? 704:576) - (double) (sub.rects[i]->y + height))*yc - nh);
|
||||
if(yoff < ystart)
|
||||
yoff = ystart;
|
||||
}
|
||||
#endif
|
||||
int h2 = 576;
|
||||
switch (width)
|
||||
{
|
||||
case 1280: h2 = 720; break;
|
||||
case 1920: h2 = 1080; break;
|
||||
}
|
||||
|
||||
xoff = sub.rects[i]->x * sw / width;
|
||||
yoff = sub.rects[i]->y * sh / h2;
|
||||
int nw = width * sw / width;
|
||||
@@ -184,18 +139,8 @@ void cDvbSubtitleBitmaps::Draw(int &min_x, int &min_y, int &max_x, int &max_y)
|
||||
fb_pixel_t * newdata = simple_resize32 (sub.rects[i]->data[0], colors, sub.rects[i]->nb_colors, width, height, nw, nh);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_SPARK_HARDWARE
|
||||
// CFrameBuffer::getInstance()->waitForIdle();
|
||||
CFrameBuffer::getInstance()->blit2FB(newdata, nw, nh, xoff, yoff, 0, 0);
|
||||
#else
|
||||
fb_pixel_t * ptr = newdata;
|
||||
for (int y2 = 0; y2 < nh; y2++) {
|
||||
int y = (yoff + y2) * stride;
|
||||
for (int x2 = 0; x2 < nw; x2++)
|
||||
*(sublfb + xoff + x2 + y) = *ptr++;
|
||||
}
|
||||
free(newdata);
|
||||
#endif
|
||||
|
||||
if(min_x > xoff)
|
||||
min_x = xoff;
|
||||
@@ -213,7 +158,6 @@ void cDvbSubtitleBitmaps::Draw(int &min_x, int &min_y, int &max_x, int &max_y)
|
||||
}
|
||||
|
||||
static int screen_w, screen_h, screen_x, screen_y;
|
||||
// --- cDvbSubtitleConverter -------------------------------------------------
|
||||
|
||||
cDvbSubtitleConverter::cDvbSubtitleConverter(void)
|
||||
{
|
||||
@@ -280,24 +224,21 @@ void cDvbSubtitleConverter::Pause(bool pause)
|
||||
Clear();
|
||||
running = false;
|
||||
Unlock();
|
||||
//Reset();
|
||||
} else {
|
||||
//Reset();
|
||||
running = true;
|
||||
}
|
||||
}
|
||||
|
||||
void cDvbSubtitleConverter::Clear(void)
|
||||
{
|
||||
dbgconverter("cDvbSubtitleConverter::Clear: x=% d y= %d, w= %d, h= %d\n", min_x, min_y, max_x-min_x, max_y-min_y);
|
||||
if(running && (max_x-min_x > 0) && (max_y-min_y > 0)) {
|
||||
dbgconverter("cDvbSubtitleConverter::Clear: x=% d y= %d, w= %d, h= %d\n", min_x, min_y, max_x-min_x, max_y-min_y);
|
||||
CFrameBuffer::getInstance()->paintBackgroundBoxRel (min_x, min_y, max_x-min_x, max_y-min_y);
|
||||
/* reset area to clear */
|
||||
min_x = screen_w;
|
||||
min_y = screen_h;
|
||||
max_x = screen_x;
|
||||
max_y = screen_h;
|
||||
//CFrameBuffer::getInstance()->paintBackground();
|
||||
max_y = screen_y;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -331,7 +272,6 @@ int cDvbSubtitleConverter::Convert(const uchar *Data, int Length, int64_t pts)
|
||||
avpkt.size = Length;
|
||||
|
||||
dbgconverter("cDvbSubtitleConverter::Convert: sub %x pkt %x pts %lld\n", sub, &avpkt, pts);
|
||||
//avctx->sub_id = (anc_page << 16) | comp_page; //FIXME not patched ffmpeg needs this !
|
||||
|
||||
avcodec_decode_subtitle2(avctx, sub, &got_subtitle, &avpkt);
|
||||
dbgconverter("cDvbSubtitleConverter::Convert: pts %lld subs ? %s, %d bitmaps\n", pts, got_subtitle? "yes" : "no", sub->num_rects);
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,17 +1,9 @@
|
||||
/*
|
||||
$Id: audioplayer.h,v 1.24 2009/10/03 10:36:29 seife Exp $
|
||||
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.
|
||||
|
||||
Copyright (C) 2009 Stefan Seyfried
|
||||
Copyright (C) 2017 Sven Hoefer
|
||||
|
||||
License: GPL
|
||||
|
||||
@@ -26,8 +18,7 @@
|
||||
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.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __audioplayergui__
|
||||
@@ -56,7 +47,6 @@ class CFrameBuffer;
|
||||
class CAudiofileExt : public CAudiofile
|
||||
{
|
||||
public:
|
||||
|
||||
CAudiofileExt();
|
||||
|
||||
CAudiofileExt(std::string name, CFile::FileType type);
|
||||
@@ -65,7 +55,6 @@ public:
|
||||
|
||||
void operator=(const CAudiofileExt& src);
|
||||
|
||||
|
||||
char firstChar;
|
||||
};
|
||||
|
||||
@@ -74,14 +63,9 @@ typedef std::vector<CAudiofileExt> CAudioPlayList;
|
||||
class RandomNumber
|
||||
{
|
||||
public:
|
||||
RandomNumber()
|
||||
{
|
||||
std::srand(time(0));
|
||||
}
|
||||
RandomNumber() { std::srand(time(0)); }
|
||||
|
||||
int operator()(int n){
|
||||
return std::rand() / (1.0 + RAND_MAX) * n;
|
||||
}
|
||||
int operator()(int n) { return std::rand() / (1.0 + RAND_MAX) * n; }
|
||||
};
|
||||
|
||||
class CAudioPlayerGui : public CMenuTarget
|
||||
@@ -96,7 +80,11 @@ class CAudioPlayerGui : public CMenuTarget
|
||||
REV
|
||||
};
|
||||
|
||||
enum DisplayOrder {ARTIST_TITLE = 0, TITLE_ARTIST=1};
|
||||
enum DisplayOrder
|
||||
{
|
||||
ARTIST_TITLE = 0,
|
||||
TITLE_ARTIST=1
|
||||
};
|
||||
|
||||
private:
|
||||
void Init(void);
|
||||
@@ -105,10 +93,10 @@ class CAudioPlayerGui : public CMenuTarget
|
||||
int m_current;
|
||||
unsigned int m_liststart;
|
||||
unsigned int m_listmaxshow;
|
||||
int m_fheight; // Fonthoehe Playlist-Inhalt
|
||||
int m_theight; // Fonthoehe Playlist-Titel
|
||||
int m_sheight; // Fonthoehe MP Info
|
||||
int m_buttonHeight;
|
||||
int m_item_height;
|
||||
int m_header_height;
|
||||
int m_meta_height;
|
||||
int m_button_height;
|
||||
int m_title_height;
|
||||
int m_info_height;
|
||||
int m_key_level;
|
||||
@@ -119,7 +107,6 @@ class CAudioPlayerGui : public CMenuTarget
|
||||
std::string m_metainfo;
|
||||
bool m_select_title_by_name;
|
||||
bool m_show_playlist;
|
||||
|
||||
bool m_playlistHasChanged;
|
||||
|
||||
CAudioPlayList m_playlist;
|
||||
@@ -139,8 +126,8 @@ class CAudioPlayerGui : public CMenuTarget
|
||||
int m_idletime;
|
||||
bool m_screensaver;
|
||||
bool m_inetmode;
|
||||
CComponentsDetailsLine *dline;
|
||||
CComponentsInfoBox *ibox;
|
||||
CComponentsDetailsLine *m_detailsline;
|
||||
CComponentsInfoBox *m_infobox;
|
||||
|
||||
SMSKeyInput m_SMSKeyInput;
|
||||
|
||||
@@ -148,16 +135,16 @@ class CAudioPlayerGui : public CMenuTarget
|
||||
void paint();
|
||||
void paintHead();
|
||||
void paintFoot();
|
||||
void paintInfo();
|
||||
void paintTitleBox();
|
||||
void paintCover();
|
||||
void paintLCD();
|
||||
void paintDetailsLine(int pos);
|
||||
void clearDetailsLine();
|
||||
void hide();
|
||||
|
||||
void get_id3(CAudiofileExt * audiofile);
|
||||
void get_mp3info(CAudiofileExt * audiofile);
|
||||
CFileFilter audiofilefilter;
|
||||
void paintItemID3DetailsLine (int pos);
|
||||
void clearItemID3DetailsLine ();
|
||||
void ff(unsigned int seconds=0);
|
||||
void rev(unsigned int seconds=0);
|
||||
int getNext();
|
||||
@@ -197,6 +184,7 @@ class CAudioPlayerGui : public CMenuTarget
|
||||
void readDir_ic(void);
|
||||
|
||||
void selectTitle(unsigned char selectionChar);
|
||||
|
||||
/**
|
||||
* Appends the file information to the given string.
|
||||
* @param fileInfo a string where the file information will be appended
|
||||
@@ -231,8 +219,7 @@ class CAudioPlayerGui : public CMenuTarget
|
||||
* @return the location of absFilename as seen from fromDir
|
||||
* (relative path)
|
||||
*/
|
||||
std::string absPath2Rel(const std::string& fromDir,
|
||||
const std::string& absFilename);
|
||||
std::string absPath2Rel(const std::string& fromDir, const std::string& absFilename);
|
||||
|
||||
/**
|
||||
* Asks the user if the file filename should be overwritten or not
|
||||
@@ -240,6 +227,7 @@ class CAudioPlayerGui : public CMenuTarget
|
||||
* @return true if file should be overwritten, false otherwise
|
||||
*/
|
||||
bool askToOverwriteFile(const std::string& filename);
|
||||
|
||||
bool openFilebrowser(void);
|
||||
bool openSCbrowser(void);
|
||||
bool clearPlaylist(void);
|
||||
@@ -262,5 +250,4 @@ class CAudioPlayerGui : public CMenuTarget
|
||||
int getAudioPlayerM_current() { return m_current; }
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
@@ -156,17 +156,10 @@ int COsdHelpers::isVideoSystem1080(int res)
|
||||
return false;
|
||||
}
|
||||
|
||||
#ifdef ENABLE_CHANGE_OSD_RESOLUTION
|
||||
int COsdHelpers::getVideoSystem()
|
||||
{
|
||||
return videoDecoder->GetVideoSystem();
|
||||
}
|
||||
#else
|
||||
int COsdHelpers::getVideoSystem()
|
||||
{
|
||||
return g_settings.video_Mode;
|
||||
}
|
||||
#endif
|
||||
|
||||
uint32_t COsdHelpers::getOsdResolution()
|
||||
{
|
||||
|
@@ -1562,27 +1562,7 @@ CMenuOptionNumberChooser::CMenuOptionNumberChooser(const neutrino_locale_t Name,
|
||||
const int print_offset, const int special_value, const neutrino_locale_t special_value_name, bool sliderOn)
|
||||
: CAbstractMenuOptionChooser(Active, DirectKey, IconName)
|
||||
{
|
||||
name = Name;
|
||||
optionValue = OptionValue;
|
||||
|
||||
lower_bound = min_value;
|
||||
upper_bound = max_value;
|
||||
|
||||
display_offset = print_offset;
|
||||
|
||||
localized_value = special_value;
|
||||
localized_value_name = special_value_name;
|
||||
|
||||
display_offset = print_offset;
|
||||
nameString = "";
|
||||
numberFormat = "%d";
|
||||
numberFormatFunction = NULL;
|
||||
observ = Observ;
|
||||
slider_on = sliderOn;
|
||||
|
||||
numeric_input = false;
|
||||
|
||||
directKeyOK = false;
|
||||
init(Name, "", OptionValue, min_value, max_value, print_offset, special_value, special_value_name, Observ, sliderOn);
|
||||
}
|
||||
|
||||
CMenuOptionNumberChooser::CMenuOptionNumberChooser( const std::string &Name, int * const OptionValue, const bool Active,
|
||||
@@ -1591,26 +1571,35 @@ CMenuOptionNumberChooser::CMenuOptionNumberChooser(const std::string &Name, int
|
||||
const int print_offset, const int special_value, const neutrino_locale_t special_value_name, bool sliderOn)
|
||||
: CAbstractMenuOptionChooser(Active, DirectKey, IconName)
|
||||
{
|
||||
name = NONEXISTANT_LOCALE;
|
||||
optionValue = OptionValue;
|
||||
init(NONEXISTANT_LOCALE, Name, OptionValue, min_value, max_value, print_offset, special_value, special_value_name, Observ, sliderOn);
|
||||
}
|
||||
|
||||
void CMenuOptionNumberChooser::init( const neutrino_locale_t& lName,
|
||||
const std::string &sName,
|
||||
int* const Option_Value,
|
||||
const int& min_value,
|
||||
const int& max_value,
|
||||
const int& print_offset,
|
||||
const int& special_value,
|
||||
const neutrino_locale_t& special_value_name,
|
||||
CChangeObserver * const Observ,
|
||||
bool sliderOn)
|
||||
{
|
||||
name = lName;
|
||||
nameString = sName;
|
||||
optionValue = Option_Value;
|
||||
lower_bound = min_value;
|
||||
upper_bound = max_value;
|
||||
|
||||
display_offset = print_offset;
|
||||
|
||||
localized_value = special_value;
|
||||
localized_value_name = special_value_name;
|
||||
|
||||
nameString = Name;
|
||||
numberFormat = "%d";
|
||||
numberFormatFunction = NULL;
|
||||
observ = Observ;
|
||||
slider_on = sliderOn;
|
||||
|
||||
numeric_input = false;
|
||||
|
||||
numberFormat = "%d";
|
||||
numberFormatFunction = NULL;
|
||||
directKeyOK = false;
|
||||
numeric_input = false;
|
||||
}
|
||||
|
||||
int CMenuOptionNumberChooser::exec(CMenuTarget*)
|
||||
@@ -1734,74 +1723,36 @@ int CMenuOptionNumberChooser::getWidth(void)
|
||||
return width;
|
||||
}
|
||||
|
||||
CMenuOptionChooser::CMenuOptionChooser(const neutrino_locale_t OptionName, int * const OptionValue, const struct keyval * const Options, const unsigned Number_Of_Options,
|
||||
const bool Active, CChangeObserver * const Observ, const neutrino_msg_t DirectKey, const char * const IconName, bool Pulldown, bool OptionsSort)
|
||||
: CAbstractMenuOptionChooser(Active, DirectKey, IconName)
|
||||
{
|
||||
nameString = "";
|
||||
name = OptionName;
|
||||
optionValue = OptionValue;
|
||||
number_of_options = Number_Of_Options;
|
||||
observ = Observ;
|
||||
pulldown = Pulldown;
|
||||
optionsSort = OptionsSort;
|
||||
for (unsigned int i = 0; i < number_of_options; i++)
|
||||
{
|
||||
struct keyval_ext opt;
|
||||
opt = Options[i];
|
||||
options.push_back(opt);
|
||||
}
|
||||
}
|
||||
|
||||
CMenuOptionChooser::CMenuOptionChooser(const std::string &OptionName, int * const OptionValue, const struct keyval * const Options, const unsigned Number_Of_Options,
|
||||
const bool Active, CChangeObserver * const Observ, const neutrino_msg_t DirectKey, const char * const IconName, bool Pulldown, bool OptionsSort)
|
||||
: CAbstractMenuOptionChooser(Active, DirectKey, IconName)
|
||||
{
|
||||
nameString = OptionName;
|
||||
name = NONEXISTANT_LOCALE;
|
||||
optionValue = OptionValue;
|
||||
number_of_options = Number_Of_Options;
|
||||
observ = Observ;
|
||||
pulldown = Pulldown;
|
||||
optionsSort = OptionsSort;
|
||||
for (unsigned int i = 0; i < number_of_options; i++)
|
||||
{
|
||||
struct keyval_ext opt;
|
||||
opt = Options[i];
|
||||
options.push_back(opt);
|
||||
}
|
||||
}
|
||||
|
||||
CMenuOptionChooser::CMenuOptionChooser(const neutrino_locale_t OptionName, int * const OptionValue, const struct keyval_ext * const Options,
|
||||
const unsigned Number_Of_Options, const bool Active, CChangeObserver * const Observ,
|
||||
CMenuOptionChooser::CMenuOptionChooser( const neutrino_locale_t OptionName, int * const OptionValue, const struct keyval * const Options, const size_t Number_Of_Options,
|
||||
const bool Active, CChangeObserver * const Observ,
|
||||
const neutrino_msg_t DirectKey, const char * const IconName, bool Pulldown, bool OptionsSort)
|
||||
: CAbstractMenuOptionChooser(Active, DirectKey, IconName)
|
||||
{
|
||||
nameString = "";
|
||||
name = OptionName;
|
||||
optionValue = OptionValue;
|
||||
number_of_options = Number_Of_Options;
|
||||
observ = Observ;
|
||||
pulldown = Pulldown;
|
||||
optionsSort = OptionsSort;
|
||||
for (unsigned int i = 0; i < number_of_options; i++)
|
||||
options.push_back(Options[i]);
|
||||
init("", OptionName, OptionValue, Options, NULL, NULL, Number_Of_Options, Observ, Pulldown, OptionsSort);
|
||||
}
|
||||
|
||||
CMenuOptionChooser::CMenuOptionChooser(const std::string &OptionName, int * const OptionValue, const struct keyval_ext * const Options,
|
||||
const unsigned Number_Of_Options, const bool Active, CChangeObserver * const Observ,
|
||||
CMenuOptionChooser::CMenuOptionChooser( const std::string &OptionName, int * const OptionValue, const struct keyval * const Options, const size_t Number_Of_Options,
|
||||
const bool Active, CChangeObserver * const Observ,
|
||||
const neutrino_msg_t DirectKey, const char * const IconName, bool Pulldown, bool OptionsSort)
|
||||
: CAbstractMenuOptionChooser(Active, DirectKey, IconName)
|
||||
{
|
||||
nameString = OptionName;
|
||||
name = NONEXISTANT_LOCALE;
|
||||
optionValue = OptionValue;
|
||||
number_of_options = Number_Of_Options;
|
||||
observ = Observ;
|
||||
pulldown = Pulldown;
|
||||
optionsSort = OptionsSort;
|
||||
for (unsigned int i = 0; i < number_of_options; i++)
|
||||
options.push_back(Options[i]);
|
||||
init(OptionName, NONEXISTANT_LOCALE, OptionValue, Options, NULL, NULL, Number_Of_Options, Observ, Pulldown, OptionsSort);
|
||||
}
|
||||
|
||||
CMenuOptionChooser::CMenuOptionChooser( const neutrino_locale_t OptionName, int * const OptionValue, const struct keyval_ext * const Options, const size_t Number_Of_Options,
|
||||
const bool Active, CChangeObserver * const Observ,
|
||||
const neutrino_msg_t DirectKey, const char * const IconName, bool Pulldown, bool OptionsSort)
|
||||
: CAbstractMenuOptionChooser(Active, DirectKey, IconName)
|
||||
{
|
||||
init("", OptionName, OptionValue, NULL, Options, NULL, Number_Of_Options, Observ, Pulldown, OptionsSort);
|
||||
}
|
||||
|
||||
CMenuOptionChooser::CMenuOptionChooser( const std::string &OptionName, int * const OptionValue, const struct keyval_ext * const Options, const size_t Number_Of_Options,
|
||||
const bool Active, CChangeObserver * const Observ,
|
||||
const neutrino_msg_t DirectKey, const char * const IconName, bool Pulldown, bool OptionsSort)
|
||||
: CAbstractMenuOptionChooser(Active, DirectKey, IconName)
|
||||
{
|
||||
init(OptionName, NONEXISTANT_LOCALE, OptionValue, NULL, Options, NULL, Number_Of_Options, Observ, Pulldown, OptionsSort);
|
||||
}
|
||||
|
||||
CMenuOptionChooser::CMenuOptionChooser( const neutrino_locale_t OptionName, int * const OptionValue, std::vector<keyval_ext> &Options,
|
||||
@@ -1809,14 +1760,7 @@ CMenuOptionChooser::CMenuOptionChooser(const neutrino_locale_t OptionName, int *
|
||||
const neutrino_msg_t DirectKey, const char * const IconName, bool Pulldown, bool OptionsSort)
|
||||
: CAbstractMenuOptionChooser(Active, DirectKey, IconName)
|
||||
{
|
||||
nameString = "";
|
||||
name = OptionName;
|
||||
optionValue = OptionValue;
|
||||
options = Options;
|
||||
number_of_options = options.size();
|
||||
observ = Observ;
|
||||
pulldown = Pulldown;
|
||||
optionsSort = OptionsSort;
|
||||
init("", OptionName, OptionValue, NULL, NULL, &Options, Options.size(), Observ, Pulldown, OptionsSort);
|
||||
}
|
||||
|
||||
CMenuOptionChooser::CMenuOptionChooser(const std::string &OptionName, int * const OptionValue, std::vector<keyval_ext> &Options,
|
||||
@@ -1824,14 +1768,7 @@ CMenuOptionChooser::CMenuOptionChooser(const std::string &OptionName, int * cons
|
||||
const neutrino_msg_t DirectKey, const char * const IconName, bool Pulldown, bool OptionsSort)
|
||||
: CAbstractMenuOptionChooser(Active, DirectKey, IconName)
|
||||
{
|
||||
nameString = OptionName;
|
||||
name = NONEXISTANT_LOCALE;
|
||||
optionValue = OptionValue;
|
||||
options = Options;
|
||||
number_of_options = options.size();
|
||||
observ = Observ;
|
||||
pulldown = Pulldown;
|
||||
optionsSort = OptionsSort;
|
||||
init(OptionName, NONEXISTANT_LOCALE, OptionValue, NULL, NULL, &Options, Options.size(), Observ, Pulldown, OptionsSort);
|
||||
}
|
||||
|
||||
CMenuOptionChooser::~CMenuOptionChooser()
|
||||
@@ -1839,13 +1776,14 @@ CMenuOptionChooser::~CMenuOptionChooser()
|
||||
clearChooserOptions();
|
||||
}
|
||||
|
||||
void CMenuOptionChooser::initVarOptionChooser( const std::string &OptionName,
|
||||
void CMenuOptionChooser::init( const std::string &OptionName,
|
||||
const neutrino_locale_t Name,
|
||||
int * const OptionValue,
|
||||
const bool Active,
|
||||
const struct keyval * const Options,
|
||||
const struct keyval_ext * const OptionsExt,
|
||||
std::vector<keyval_ext> * v_Options,
|
||||
const size_t Number_Of_Options,
|
||||
CChangeObserver * const Observ,
|
||||
neutrino_msg_t DirectKey,
|
||||
const char * IconName,
|
||||
bool Pulldown,
|
||||
bool OptionsSort)
|
||||
{
|
||||
@@ -1853,12 +1791,33 @@ void CMenuOptionChooser::initVarOptionChooser( const std::string &OptionName,
|
||||
nameString = OptionName;
|
||||
name = Name;
|
||||
optionValue = OptionValue;
|
||||
active = Active;
|
||||
number_of_options = Number_Of_Options;
|
||||
observ = Observ;
|
||||
directKey = DirectKey;
|
||||
iconName = IconName;
|
||||
pulldown = Pulldown;
|
||||
optionsSort = OptionsSort;
|
||||
|
||||
if (Options || OptionsExt)
|
||||
{
|
||||
if (Options)
|
||||
{
|
||||
for (unsigned int i = 0; i < number_of_options; i++)
|
||||
{
|
||||
struct keyval_ext opt;
|
||||
opt = Options[i];
|
||||
options.push_back(opt);
|
||||
}
|
||||
}
|
||||
|
||||
if (OptionsExt)
|
||||
{
|
||||
for (unsigned int i = 0; i < number_of_options; i++)
|
||||
options.push_back(OptionsExt[i]);
|
||||
}
|
||||
}
|
||||
else{
|
||||
if (v_Options)
|
||||
options = *v_Options;
|
||||
}
|
||||
}
|
||||
|
||||
void CMenuOptionChooser::clearChooserOptions()
|
||||
@@ -2065,20 +2024,25 @@ CMenuOptionStringChooser::CMenuOptionStringChooser(const neutrino_locale_t Optio
|
||||
const neutrino_msg_t DirectKey, const char * const IconName, bool Pulldown)
|
||||
: CMenuItem(Active, DirectKey, IconName)
|
||||
{
|
||||
nameString = "";
|
||||
name = OptionName;
|
||||
optionValuePtr = OptionValue ? OptionValue : &optionValue;
|
||||
observ = Observ;
|
||||
pulldown = Pulldown;
|
||||
init("", OptionName, OptionValue, Observ, Pulldown);
|
||||
}
|
||||
|
||||
CMenuOptionStringChooser::CMenuOptionStringChooser( const std::string &OptionName, std::string* OptionValue, bool Active, CChangeObserver* Observ,
|
||||
const neutrino_msg_t DirectKey, const char * const IconName, bool Pulldown)
|
||||
: CMenuItem(Active, DirectKey, IconName)
|
||||
{
|
||||
init(OptionName, NONEXISTANT_LOCALE, OptionValue, Observ, Pulldown);
|
||||
}
|
||||
|
||||
void CMenuOptionStringChooser::init( const std::string &OptionName,
|
||||
const neutrino_locale_t Name,
|
||||
std::string* pOptionValue,
|
||||
CChangeObserver * const Observ,
|
||||
bool Pulldown)
|
||||
{
|
||||
nameString = OptionName;
|
||||
name = NONEXISTANT_LOCALE;
|
||||
optionValuePtr = OptionValue ? OptionValue : &optionValue;
|
||||
name = Name;
|
||||
optionValuePtr = pOptionValue ? pOptionValue : &optionValue;
|
||||
observ = Observ;
|
||||
pulldown = Pulldown;
|
||||
}
|
||||
@@ -2187,44 +2151,48 @@ CMenuForwarder::CMenuForwarder(const neutrino_locale_t Text, const bool Active,
|
||||
neutrino_msg_t DirectKey, const char * const IconName, const char * const IconName_Info_right, bool IsStatic)
|
||||
: CMenuItem(Active, DirectKey, IconName, IconName_Info_right, IsStatic)
|
||||
{
|
||||
option_string_ptr = &Option;
|
||||
name = Text;
|
||||
nameString = "";
|
||||
jumpTarget = Target;
|
||||
actionKey = ActionKey ? ActionKey : "";
|
||||
init("", Text, Option, NULL, Target, ActionKey);
|
||||
}
|
||||
|
||||
CMenuForwarder::CMenuForwarder( const std::string& Text, const bool Active, const std::string &Option, CMenuTarget* Target, const char * const ActionKey,
|
||||
neutrino_msg_t DirectKey, const char * const IconName, const char * const IconName_Info_right, bool IsStatic)
|
||||
: CMenuItem(Active, DirectKey, IconName, IconName_Info_right, IsStatic)
|
||||
{
|
||||
option_string_ptr = &Option;
|
||||
name = NONEXISTANT_LOCALE;
|
||||
nameString = Text;
|
||||
jumpTarget = Target;
|
||||
actionKey = ActionKey ? ActionKey : "";
|
||||
init(Text, NONEXISTANT_LOCALE, Option, NULL, Target, ActionKey);
|
||||
}
|
||||
|
||||
CMenuForwarder::CMenuForwarder( const neutrino_locale_t Text, const bool Active, const char * const Option, CMenuTarget* Target, const char * const ActionKey,
|
||||
neutrino_msg_t DirectKey, const char * const IconName, const char * const IconName_Info_right, bool IsStatic)
|
||||
: CMenuItem(Active, DirectKey, IconName, IconName_Info_right, IsStatic)
|
||||
{
|
||||
option_string = Option ? Option : "";
|
||||
option_string_ptr = &option_string;
|
||||
name = Text;
|
||||
nameString = "";
|
||||
jumpTarget = Target;
|
||||
actionKey = ActionKey ? ActionKey : "";
|
||||
init("", Text, "", Option, Target, ActionKey);
|
||||
}
|
||||
|
||||
CMenuForwarder::CMenuForwarder( const std::string& Text, const bool Active, const char * const Option, CMenuTarget* Target, const char * const ActionKey,
|
||||
neutrino_msg_t DirectKey, const char * const IconName, const char * const IconName_Info_right, bool IsStatic)
|
||||
: CMenuItem(Active, DirectKey, IconName, IconName_Info_right, IsStatic)
|
||||
{
|
||||
option_string = Option ? Option : "";
|
||||
option_string_ptr = &option_string;
|
||||
name = NONEXISTANT_LOCALE;
|
||||
init(Text, NONEXISTANT_LOCALE, "", Option, Target, ActionKey);
|
||||
}
|
||||
|
||||
void CMenuForwarder::init( const std::string &Text,
|
||||
const neutrino_locale_t Name,
|
||||
const std::string &sOption,
|
||||
const char * const cOption,
|
||||
CMenuTarget* Target,
|
||||
const char * const ActionKey)
|
||||
{
|
||||
nameString = Text;
|
||||
name = Name;
|
||||
|
||||
if (sOption.empty())
|
||||
{
|
||||
option_string = cOption ? cOption : "";
|
||||
option_string_ptr = &option_string;
|
||||
}
|
||||
else
|
||||
option_string_ptr = &sOption;
|
||||
|
||||
jumpTarget = Target;
|
||||
actionKey = ActionKey ? ActionKey : "";
|
||||
}
|
||||
@@ -2294,18 +2262,20 @@ int CMenuForwarder::paint(bool selected)
|
||||
//-------------------------------------------------------------------------------------------------------------------------------
|
||||
CMenuSeparator::CMenuSeparator(const int Type, const neutrino_locale_t Text, bool IsStatic) : CMenuItem(false, CRCInput::RC_nokey, NULL, NULL, IsStatic)
|
||||
{
|
||||
type = Type;
|
||||
name = Text;
|
||||
nameString = "";
|
||||
init(Type, Text, "");
|
||||
}
|
||||
|
||||
CMenuSeparator::CMenuSeparator(const int Type, const std::string &Text, bool IsStatic) : CMenuItem(false, CRCInput::RC_nokey, NULL, NULL, IsStatic)
|
||||
{
|
||||
type = Type;
|
||||
name = NONEXISTANT_LOCALE;
|
||||
nameString = Text;
|
||||
init(Type, NONEXISTANT_LOCALE, Text);
|
||||
}
|
||||
|
||||
void CMenuSeparator::init(const int& Type, const neutrino_locale_t& lText, const std::string &sText)
|
||||
{
|
||||
type = Type;
|
||||
name = lText;
|
||||
nameString = sText;
|
||||
}
|
||||
|
||||
int CMenuSeparator::getHeight(void)
|
||||
{
|
||||
|
@@ -205,6 +205,9 @@ class CMenuItem : public CComponentsSignals
|
||||
class CMenuSeparator : public CMenuItem
|
||||
{
|
||||
int type;
|
||||
void init( const int& Type,
|
||||
const neutrino_locale_t& lText,
|
||||
const std::string& sText);
|
||||
|
||||
public:
|
||||
|
||||
@@ -234,6 +237,12 @@ class CMenuSeparator : public CMenuItem
|
||||
class CMenuForwarder : public CMenuItem
|
||||
{
|
||||
std::string actionKey;
|
||||
void init( const std::string &OptionName,
|
||||
const neutrino_locale_t Name,
|
||||
const std::string &sOption,
|
||||
const char * const cOption,
|
||||
CMenuTarget* Target,
|
||||
const char * const ActionKey);
|
||||
|
||||
protected:
|
||||
std::string option_string;
|
||||
@@ -322,6 +331,17 @@ private:
|
||||
std::string numberFormat;
|
||||
std::string (*numberFormatFunction)(int num);
|
||||
|
||||
void init( const neutrino_locale_t& lName,
|
||||
const std::string &sName,
|
||||
int* const Option_Value,
|
||||
const int& min_value,
|
||||
const int& max_value,
|
||||
const int& print_offset,
|
||||
const int& special_value,
|
||||
const neutrino_locale_t& special_value_name,
|
||||
CChangeObserver * const Observ,
|
||||
bool sliderOn);
|
||||
|
||||
public:
|
||||
CMenuOptionNumberChooser(const neutrino_locale_t name, int * const OptionValue, const bool Active,
|
||||
const int min_value, const int max_value, CChangeObserver * const Observ = NULL,
|
||||
@@ -389,19 +409,20 @@ class CMenuOptionChooser : public CAbstractMenuOptionChooser
|
||||
private:
|
||||
std::vector<keyval_ext> options;
|
||||
std::vector<CMenuOptionChooserOptions*> option_chooser_options_v;
|
||||
unsigned number_of_options;
|
||||
size_t number_of_options;
|
||||
CChangeObserver * observ;
|
||||
bool pulldown;
|
||||
bool optionsSort;
|
||||
|
||||
void clearChooserOptions();
|
||||
void initVarOptionChooser( const std::string &OptionName,
|
||||
void init( const std::string &OptionName,
|
||||
const neutrino_locale_t Name,
|
||||
int * const OptionValue,
|
||||
const bool Active,
|
||||
const struct keyval * const Options,
|
||||
const struct keyval_ext * const OptionsExt,
|
||||
std::vector<keyval_ext> * v_Options,
|
||||
const size_t Number_Of_Options,
|
||||
CChangeObserver * const Observ,
|
||||
neutrino_msg_t DirectKey,
|
||||
const char * IconName,
|
||||
bool Pulldown,
|
||||
bool OptionsSort
|
||||
);
|
||||
@@ -409,19 +430,19 @@ class CMenuOptionChooser : public CAbstractMenuOptionChooser
|
||||
|
||||
public:
|
||||
CMenuOptionChooser(const neutrino_locale_t Name, int * const OptionValue, const struct keyval * const Options,
|
||||
const unsigned Number_Of_Options, const bool Active = false, CChangeObserver * const Observ = NULL,
|
||||
const size_t Number_Of_Options, const bool Active = false, CChangeObserver * const Observ = NULL,
|
||||
const neutrino_msg_t DirectKey = CRCInput::RC_nokey, const char * const IconName = NULL,
|
||||
bool Pulldown = false, bool OptionsSort = false);
|
||||
CMenuOptionChooser(const neutrino_locale_t Name, int * const OptionValue, const struct keyval_ext * const Options,
|
||||
const unsigned Number_Of_Options, const bool Active = false, CChangeObserver * const Observ = NULL,
|
||||
const size_t Number_Of_Options, const bool Active = false, CChangeObserver * const Observ = NULL,
|
||||
const neutrino_msg_t DirectKey = CRCInput::RC_nokey, const char * const IconName = NULL,
|
||||
bool Pulldown = false, bool OptionsSort = false);
|
||||
CMenuOptionChooser(const std::string &Name, int * const OptionValue, const struct keyval * const Options,
|
||||
const unsigned Number_Of_Options, const bool Active = false, CChangeObserver * const Observ = NULL,
|
||||
const size_t Number_Of_Options, const bool Active = false, CChangeObserver * const Observ = NULL,
|
||||
const neutrino_msg_t DirectKey = CRCInput::RC_nokey, const char * const IconName = NULL,
|
||||
bool Pulldown = false, bool OptionsSort = false);
|
||||
bool size_t = false, bool OptionsSort = false);
|
||||
CMenuOptionChooser(const std::string &Name, int * const OptionValue, const struct keyval_ext * const Options,
|
||||
const unsigned Number_Of_Options, const bool Active = false, CChangeObserver * const Observ = NULL,
|
||||
const size_t Number_Of_Options, const bool Active = false, CChangeObserver * const Observ = NULL,
|
||||
const neutrino_msg_t DirectKey = CRCInput::RC_nokey, const char * const IconName = NULL,
|
||||
bool Pulldown = false, bool OptionsSort = false);
|
||||
CMenuOptionChooser(const neutrino_locale_t Name, int * const OptionValue, std::vector<keyval_ext> &Options,
|
||||
@@ -432,6 +453,7 @@ class CMenuOptionChooser : public CAbstractMenuOptionChooser
|
||||
const bool Active = false, CChangeObserver * const Observ = NULL,
|
||||
const neutrino_msg_t DirectKey = CRCInput::RC_nokey, const char * const IconName = NULL,
|
||||
bool Pulldown = false, bool OptionsSort = false);
|
||||
|
||||
~CMenuOptionChooser();
|
||||
|
||||
void setOption(const int newvalue);
|
||||
@@ -454,6 +476,11 @@ class CMenuOptionStringChooser : public CMenuItem
|
||||
std::vector<std::string> options;
|
||||
CChangeObserver * observ;
|
||||
bool pulldown;
|
||||
void init( const std::string &OptionName,
|
||||
const neutrino_locale_t Name,
|
||||
std::string* pOptionValue,
|
||||
CChangeObserver * const Observ,
|
||||
bool Pulldown );
|
||||
|
||||
public:
|
||||
CMenuOptionStringChooser(const neutrino_locale_t Name, std::string* OptionValue, bool Active = false,
|
||||
|
Reference in New Issue
Block a user