Thread: [Commits] : Tuxbox-GIT: apps branch master updated. CVS-Final-467-ge2d920c
Tuxbox Sources
Brought to you by:
dbt1
|
From: GetAway <tux...@ne...> - 2015-02-10 14:39:36
|
Project "Tuxbox-GIT: apps":
The branch, master has been updated
via e2d920c55095f45c80d882089f1a178ca7582cc1 (commit)
via 4a17373dc5ca00e740b452e7b16c99a21b691d44 (commit)
via a5445b977803e344c342199074c67af8d34155e3 (commit)
via 565784e0b973752ab1007c937353cff0e85a54b6 (commit)
via bc156a9bee86fe626d56afe18b111d9836c52c61 (commit)
via bfc7b0329fcf827e43c4d3875a9c626d55cc4a5c (commit)
via 4f28db6d87ae9c34ece8f3bc11d6227f3a8ca6b1 (commit)
via ed95433d569739ce7d05670789fbf8bdafbd92d5 (commit)
via a0eb7ce18585b8f1e34c83b816906ddb85aa42b7 (commit)
via 3236e654dc0d9b5a08c3701a774d24b0d5ea2c7d (commit)
via e957d242d357edb15822fea173d1b1c0f102adb3 (commit)
via d80721f01e97f446d4313878a16cae18cb574570 (commit)
via abbadf0b98661a6e115583f5a08f0284f82b3dcb (commit)
from bd00fae5b436145ba55b97d1bc5056abee856698 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit e2d920c55095f45c80d882089f1a178ca7582cc1
Author: Christian Schuett <Gau...@ho...>
Date: Mon Feb 9 18:55:53 2015 +0100
Neutrino picture viewer: show selected play list entry on LCD
Signed-off-by: Christian Schuett <Gau...@ho...>
Signed-off-by: GetAway <get...@t-...>
diff --git a/tuxbox/neutrino/src/gui/pictureviewer.cpp b/tuxbox/neutrino/src/gui/pictureviewer.cpp
index 0d18f1a..25aede2 100644
--- a/tuxbox/neutrino/src/gui/pictureviewer.cpp
+++ b/tuxbox/neutrino/src/gui/pictureviewer.cpp
@@ -374,6 +374,7 @@ int CPictureViewerGui::show()
std::sort(playlist.begin(), playlist.end(), comparePictureByDate);
}
update = true;
+ CLCD::getInstance()->setMode(CLCD::MODE_MENU_UTF8, g_Locale->getText(LOCALE_PICTUREVIEWER_HEAD));
}
}
else if (msg == CRCInput::RC_yellow)
@@ -555,6 +556,11 @@ void CPictureViewerGui::paintItem(int pos)
int w = g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->getRenderWidth(timestring);
g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->RenderString(x+10,ypos+fheight, width-30 - w, tmp, color, fheight);
g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->RenderString(x+width-20-w,ypos+fheight, w, timestring, color, fheight);
+ if (liststart+pos == selected)
+ {
+ CLCD::getInstance()->showMenuText(0, tmp.c_str());
+ CLCD::getInstance()->showMenuText(1, timestring);
+ }
}
// printf("paintItem}\n");
}
commit 4a17373dc5ca00e740b452e7b16c99a21b691d44
Author: Christian Schuett <Gau...@ho...>
Date: Sun Feb 8 16:54:39 2015 +0100
Neutrino picture viewer: fix possible segfault when adding entries
after removing the last entry from the play list and readding new
entries, you get a segfault
Signed-off-by: Christian Schuett <Gau...@ho...>
Signed-off-by: GetAway <get...@t-...>
diff --git a/tuxbox/neutrino/src/gui/pictureviewer.cpp b/tuxbox/neutrino/src/gui/pictureviewer.cpp
index fe3fb6d..0d18f1a 100644
--- a/tuxbox/neutrino/src/gui/pictureviewer.cpp
+++ b/tuxbox/neutrino/src/gui/pictureviewer.cpp
@@ -324,7 +324,7 @@ int CPictureViewerGui::show()
CViewList::iterator p = playlist.begin() + selected;
playlist.erase(p);
if (selected >= playlist.size())
- selected = playlist.size()-1;
+ selected = playlist.empty() ? 0 : playlist.size() - 1;
update = true;
}
}
commit a5445b977803e344c342199074c67af8d34155e3
Author: Christian Schuett <Gau...@ho...>
Date: Sun Feb 8 16:47:17 2015 +0100
Neutrino audioplayer: clear whole screen after removing last entry
after removing the last entry from the play list, there are left
some artefacts on the screen
Signed-off-by: Christian Schuett <Gau...@ho...>
Signed-off-by: GetAway <get...@t-...>
diff --git a/tuxbox/neutrino/src/gui/audioplayer.cpp b/tuxbox/neutrino/src/gui/audioplayer.cpp
index db74b41..3c2dd77 100644
--- a/tuxbox/neutrino/src/gui/audioplayer.cpp
+++ b/tuxbox/neutrino/src/gui/audioplayer.cpp
@@ -567,9 +567,11 @@ int CAudioPlayerGui::show()
m_current--;
//stop(); // Stop if song is deleted, next song will be startet automat.
}
- if(m_selected >= m_playlist.size())
- m_selected = m_playlist.empty() ? m_playlist.size() : m_playlist.size() - 1;
- update = true;
+ if (m_selected >= m_playlist.size())
+ m_selected = m_playlist.empty() ? 0 : m_playlist.size() - 1;
+ if (m_playlist.empty())
+ clear_before_update = true;
+ update = true;
}
}
else if(m_key_level == 1)
commit 565784e0b973752ab1007c937353cff0e85a54b6
Author: Christian Schuett <Gau...@ho...>
Date: Sat Feb 7 21:01:33 2015 +0100
Neutrino movieplayer: always show play mode next to progress bar on LCD
Signed-off-by: Christian Schuett <Gau...@ho...>
Signed-off-by: GetAway <get...@t-...>
diff --git a/tuxbox/neutrino/src/driver/lcdd.cpp b/tuxbox/neutrino/src/driver/lcdd.cpp
index 39f3548..2266bcd 100644
--- a/tuxbox/neutrino/src/driver/lcdd.cpp
+++ b/tuxbox/neutrino/src/driver/lcdd.cpp
@@ -577,7 +577,41 @@ void CLCD::setMoviePlaymode(const PLAYMODES playmode)
if (mode != MODE_MOVIE)
return;
- showAudioPlayMode(movie_playmode);
+ switch (g_settings.lcd_setting[SNeutrinoSettings::LCD_SHOW_VOLUME])
+ {
+ case STATUSLINE_PLAYTIME:
+ showAudioPlayMode(movie_playmode);
+ break;
+ case STATUSLINE_BOTH:
+ case STATUSLINE_BOTH_AUDIO:
+ display.draw_fill_rect(0, 0, 10, 10, CLCDDisplay::PIXEL_OFF);
+ switch (movie_playmode)
+ {
+ case PLAYMODE_PLAY:
+ {
+ int x = 3, y = 1;
+ display.draw_line(x , y , x , y+8, CLCDDisplay::PIXEL_ON);
+ display.draw_line(x+1, y+1, x+1, y+7, CLCDDisplay::PIXEL_ON);
+ display.draw_line(x+2, y+2, x+2, y+6, CLCDDisplay::PIXEL_ON);
+ display.draw_line(x+3, y+3, x+3, y+5, CLCDDisplay::PIXEL_ON);
+ display.draw_line(x+4, y+4, x+4, y+4, CLCDDisplay::PIXEL_ON);
+ }
+ break;
+ case PLAYMODE_PAUSE:
+ display.draw_line(1, 2, 1, 8, CLCDDisplay::PIXEL_ON);
+ display.draw_line(2, 2, 2, 8, CLCDDisplay::PIXEL_ON);
+ display.draw_line(6, 2, 6, 8, CLCDDisplay::PIXEL_ON);
+ display.draw_line(7, 2, 7, 8, CLCDDisplay::PIXEL_ON);
+ break;
+ default:
+ break;
+ }
+ wake_up();
+ displayUpdate();
+ break;
+ default:
+ break;
+ }
}
void CLCD::setMovieInfo(const std::string big, const std::string small)
diff --git a/tuxbox/neutrino/src/gui/movieplayer.cpp b/tuxbox/neutrino/src/gui/movieplayer.cpp
index 14cb876..21d887f 100644
--- a/tuxbox/neutrino/src/gui/movieplayer.cpp
+++ b/tuxbox/neutrino/src/gui/movieplayer.cpp
@@ -1357,15 +1357,6 @@ void updateLcd(const std::string & big, const std::string & small)
case CMoviePlayerGui::PAUSE:
playmode = CLCD::PLAYMODE_PAUSE;
break;
-
- case CMoviePlayerGui::REW:
- playmode = CLCD::PLAYMODE_REV;
- break;
-
- case CMoviePlayerGui::FF:
- playmode = CLCD::PLAYMODE_FF;
- break;
-
default:
playmode = CLCD::PLAYMODE_PLAY;
break;
commit bc156a9bee86fe626d56afe18b111d9836c52c61
Author: Stefan Seyfried <se...@tu...>
Date: Thu Feb 5 16:36:48 2015 +0100
my_system: fix -Wclobbered warnings
Signed-off-by: GetAway <get...@t-...>
diff --git a/tuxbox/neutrino/src/system/helper.cpp b/tuxbox/neutrino/src/system/helper.cpp
index 6bd2bcb..66505f4 100644
--- a/tuxbox/neutrino/src/system/helper.cpp
+++ b/tuxbox/neutrino/src/system/helper.cpp
@@ -70,7 +70,7 @@ int my_system(const char * cmd)
int my_system(int argc, const char *arg, ...)
{
- int i = 0, ret = 0, childExit = 0;
+ int i = 0, ret, childExit = 0;
#define ARGV_MAX 64
/* static right now but could be made dynamic if necessary */
int argv_max = ARGV_MAX;
@@ -100,6 +100,7 @@ int my_system(int argc, const char *arg, ...)
ret = -errno;
break;
case 0: /* child process */
+ ret = 0;
for(i = 3; i < maxfd; i++)
close(i);
if (setsid() == -1)
@@ -112,6 +113,7 @@ int my_system(int argc, const char *arg, ...)
}
_exit(ret); // terminate c h i l d proces s only
default: /* parent returns to calling process */
+ ret = 0;
waitpid(pid, &childExit, 0);
if (WEXITSTATUS(childExit) != 0)
ret = (signed char)WEXITSTATUS(childExit);
commit bfc7b0329fcf827e43c4d3875a9c626d55cc4a5c
Author: Christian Schuett <Gau...@ho...>
Date: Wed Jan 28 20:07:57 2015 +0100
Neutrino audioplayer: fix SMS input
Signed-off-by: Christian Schuett <Gau...@ho...>
Signed-off-by: GetAway <get...@t-...>
diff --git a/tuxbox/neutrino/src/gui/audioplayer.cpp b/tuxbox/neutrino/src/gui/audioplayer.cpp
index c4785d1..db74b41 100644
--- a/tuxbox/neutrino/src/gui/audioplayer.cpp
+++ b/tuxbox/neutrino/src/gui/audioplayer.cpp
@@ -759,36 +759,11 @@ int CAudioPlayerGui::show()
{
//printf("select by name\n");
unsigned char smsKey = 0;
- do
- {
- smsKey = m_SMSKeyInput.handleMsg(msg);
- //printf(" new key: %c", smsKey);
- g_RCInput->getMsg_ms(&msg, &data, AUDIOPLAYERGUI_SMSKEY_TIMEOUT - 200);
-
-
-/* show a hint box with current char (too slow at the moment?)*/
-// char selectedKey[1];
-// sprintf(selectedKey,"%c",smsKey);
-// int x1 = getScreenStartX(0) - 50;
-// int y1 = getScreenStartY(0);
-// int h = g_Font[SNeutrinoSettings::FONT_TYPE_CHANNEL_NUM_ZAP]->getHeight();
-// int w = g_Font[SNeutrinoSettings::FONT_TYPE_CHANNEL_NUM_ZAP]->getRenderWidth(selectedKey);
-// m_frameBuffer->paintBoxRel(x1 - 7, y1 - h - 5, w + 14, h + 10, COL_MENUCONTENT_PLUS_6);
-// m_frameBuffer->paintBoxRel(x1 - 4, y1 - h - 3, w + 8, h + 6, COL_MENUCONTENTSELECTED_PLUS_0);
-// g_Font[SNeutrinoSettings::FONT_TYPE_CHANNEL_NUM_ZAP]
-// ->RenderString(x1,y1,w+1,selectedKey,COL_MENUCONTENTSELECTED,0);
-
-
- } while (CRCInput::isNumeric(msg) && !(m_playlist.empty()));
-
- if (msg == CRCInput::RC_timeout
- || msg == CRCInput::RC_nokey)
+ if (getSMSKeyInput(msg, smsKey))
{
//printf("selected key: %c\n",smsKey);
selectTitle(smsKey);
- update = true;
}
- m_SMSKeyInput.resetOldKey();
}
else
{
@@ -796,9 +771,8 @@ int CAudioPlayerGui::show()
int val = 0;
if (getNumericInput(msg,val))
m_selected = std::min((int)m_playlist.size(), val) - 1;
- update = true;
}
-
+ update = true;
}
#ifdef ENABLE_GUI_MOUNT
@@ -2324,13 +2298,14 @@ bool CAudioPlayerGui::getNumericInput(neutrino_msg_t& msg, int& val) {
neutrino_msg_data_t data;
int x1 = getScreenStartX(0) - 50;
int y1 = getScreenStartY(0);
+ int w = 0;
+ int h = g_Font[SNeutrinoSettings::FONT_TYPE_CHANNEL_NUM_ZAP]->getHeight();
char str[11];
do
{
val = val * 10 + CRCInput::getNumericValue(msg);
sprintf(str, "%d", val);
- int w = g_Font[SNeutrinoSettings::FONT_TYPE_CHANNEL_NUM_ZAP]->getRenderWidth(str);
- int h = g_Font[SNeutrinoSettings::FONT_TYPE_CHANNEL_NUM_ZAP]->getHeight();
+ w = g_Font[SNeutrinoSettings::FONT_TYPE_CHANNEL_NUM_ZAP]->getRenderWidth(str);
m_frameBuffer->paintBoxRel(x1 - 7, y1 - h - 5, w + 14, h + 10, COL_MENUCONTENT_PLUS_6);
m_frameBuffer->paintBoxRel(x1 - 4, y1 - h - 3, w + 8, h + 6, COL_MENUCONTENTSELECTED_PLUS_0);
g_Font[SNeutrinoSettings::FONT_TYPE_CHANNEL_NUM_ZAP]->RenderString(x1, y1, w + 1, str, COL_MENUCONTENTSELECTED, 0);
@@ -2346,12 +2321,48 @@ bool CAudioPlayerGui::getNumericInput(neutrino_msg_t& msg, int& val) {
continue;
break;
}
- } while (g_RCInput->isNumeric(msg) && val < 1000000);
+ } while (CRCInput::isNumeric(msg) && val < 1000000);
return (msg == CRCInput::RC_ok);
}
//------------------------------------------------------------------------
+bool CAudioPlayerGui::getSMSKeyInput(neutrino_msg_t& msg, unsigned char& smsKey)
+{
+ neutrino_msg_data_t data;
+ int x1 = getScreenStartX(0) - 50;
+ int y1 = getScreenStartY(0);
+ int w = 0;
+ int h = g_Font[SNeutrinoSettings::FONT_TYPE_CHANNEL_NUM_ZAP]->getHeight();
+ char selectedKey[2];
+ do
+ {
+ smsKey = m_SMSKeyInput.handleMsg(msg);
+ //printf(" new key: %c\n", smsKey);
+ sprintf(selectedKey, "%c", smsKey);
+ w = std::max(w, g_Font[SNeutrinoSettings::FONT_TYPE_CHANNEL_NUM_ZAP]->getRenderWidth(selectedKey));
+ m_frameBuffer->paintBoxRel(x1 - 7, y1 - h - 5, w + 14, h + 10, COL_MENUCONTENT_PLUS_6);
+ m_frameBuffer->paintBoxRel(x1 - 4, y1 - h - 3, w + 8, h + 6, COL_MENUCONTENTSELECTED_PLUS_0);
+ g_Font[SNeutrinoSettings::FONT_TYPE_CHANNEL_NUM_ZAP]->RenderString(x1, y1, w + 1, selectedKey, COL_MENUCONTENTSELECTED, 0);
+ while (true)
+ {
+ g_RCInput->getMsg_ms(&msg, &data, AUDIOPLAYERGUI_SMSKEY_TIMEOUT - 200);
+ if (msg > CRCInput::RC_MaxRC && msg != CRCInput::RC_timeout)
+ { // not a key event
+ CNeutrinoApp::getInstance()->handleMsg(msg, data);
+ continue;
+ }
+ if (msg & (CRCInput::RC_Repeat|CRCInput::RC_Release)) // repeat / release
+ continue;
+ break;
+ }
+ } while (CRCInput::isNumeric(msg));
+ m_SMSKeyInput.resetOldKey();
+ return (msg == CRCInput::RC_timeout || msg == CRCInput::RC_nokey);
+}
+
+//------------------------------------------------------------------------
+
void CAudioPlayerGui::getFileInfoToDisplay(std::string &info, CAudiofileExt &file)
{
@@ -2525,21 +2536,8 @@ void CAudioPlayerGui::selectTitle(unsigned char selectionChar)
return;
}
- int prevselected = m_selected;
m_selected = i;
-
- paintItem(prevselected - m_liststart);
- unsigned int oldliststart = m_liststart;
m_liststart = (m_selected / m_listmaxshow)*m_listmaxshow;
- //printf("before paint\n");
- if(oldliststart != m_liststart)
- {
- paint();
- }
- else
- {
- paintItem(m_selected - m_liststart);
- }
}
//------------------------------------------------------------------------
diff --git a/tuxbox/neutrino/src/gui/audioplayer.h b/tuxbox/neutrino/src/gui/audioplayer.h
index 19d04b1..cf76696 100644
--- a/tuxbox/neutrino/src/gui/audioplayer.h
+++ b/tuxbox/neutrino/src/gui/audioplayer.h
@@ -168,6 +168,7 @@ class CAudioPlayerGui : public CMenuTarget
void showMetaData();
void screensaver(bool on);
bool getNumericInput(neutrino_msg_t& msg,int& val);
+ bool getSMSKeyInput(neutrino_msg_t& msg, unsigned char& smsKey);
void addToPlaylist(CAudiofileExt &file);
void removeFromPlaylist(long pos);
commit 4f28db6d87ae9c34ece8f3bc11d6227f3a8ca6b1
Author: Christian Schuett <Gau...@ho...>
Date: Sat Jan 24 21:42:37 2015 +0100
Neutrino audioplayer: don't update full LCD every second
also remove an unnecessary head refresh because mute icon in head
was removed some years ago
Signed-off-by: Christian Schuett <Gau...@ho...>
Signed-off-by: GetAway <get...@t-...>
diff --git a/tuxbox/neutrino/src/gui/audioplayer.cpp b/tuxbox/neutrino/src/gui/audioplayer.cpp
index 4c1dbf2..c4785d1 100644
--- a/tuxbox/neutrino/src/gui/audioplayer.cpp
+++ b/tuxbox/neutrino/src/gui/audioplayer.cpp
@@ -836,15 +836,20 @@ int CAudioPlayerGui::show()
{
CNeutrinoApp::getInstance()->handleMsg( msg, data );
}
+ else if(msg == g_settings.key_volume_up ||
+ msg == g_settings.key_volume_down ||
+ msg == NeutrinoMessages::EVT_VOLCHANGED ||
+ msg == NeutrinoMessages::EVT_MUTECHANGED)
+ {
+ CNeutrinoApp::getInstance()->handleMsg( msg, data );
+ paintLCD();
+ }
else
{
if( CNeutrinoApp::getInstance()->handleMsg( msg, data ) & messages_return::cancel_all )
{
loop = false;
}
- // update mute icon
- paintHead();
- paintLCD();
}
}
hide();
commit ed95433d569739ce7d05670789fbf8bdafbd92d5
Author: Christian Schuett <Gau...@ho...>
Date: Sat Jan 24 19:57:55 2015 +0100
Neutrino: fix calculation of button bar height in some media players
this affects audioplayer, picture viewer and UPnP browser
Signed-off-by: Christian Schuett <Gau...@ho...>
Signed-off-by: GetAway <get...@t-...>
diff --git a/tuxbox/neutrino/src/gui/audioplayer.cpp b/tuxbox/neutrino/src/gui/audioplayer.cpp
index eb84e00..4c1dbf2 100644
--- a/tuxbox/neutrino/src/gui/audioplayer.cpp
+++ b/tuxbox/neutrino/src/gui/audioplayer.cpp
@@ -251,7 +251,7 @@ int CAudioPlayerGui::exec(CMenuTarget* parent, const std::string &)
m_width = w_max(720, 2 * ConnectLineBox_Width);
m_height = h_max(570, 0);
m_sheight = g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_SMALL]->getHeight();
- m_buttonHeight = std::min(25, m_sheight);
+ m_buttonHeight = std::max(25, m_sheight);
m_frameBuffer->getIconSize(NEUTRINO_ICON_MP3, &m_ticonwidth, &m_ticonheight);
m_theight = std::max(m_ticonheight, g_Font[SNeutrinoSettings::FONT_TYPE_MENU_TITLE]->getHeight());
m_fheight = g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->getHeight();
diff --git a/tuxbox/neutrino/src/gui/pictureviewer.cpp b/tuxbox/neutrino/src/gui/pictureviewer.cpp
index 877c19a..fe3fb6d 100644
--- a/tuxbox/neutrino/src/gui/pictureviewer.cpp
+++ b/tuxbox/neutrino/src/gui/pictureviewer.cpp
@@ -123,7 +123,7 @@ int CPictureViewerGui::exec(CMenuTarget* parent, const std::string & /*actionKey
width = w_max (710, 30);
height = h_max (570, 0);
sheight = g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_SMALL]->getHeight();
- buttonHeight = std::min(25, sheight);
+ buttonHeight = std::max(25, sheight);
frameBuffer->getIconSize(NEUTRINO_ICON_MP3, &ticonwidth, &ticonheight);
theight = std::max(ticonheight, g_Font[SNeutrinoSettings::FONT_TYPE_MENU_TITLE]->getHeight());
fheight = g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->getHeight();
diff --git a/tuxbox/neutrino/src/gui/upnpbrowser.cpp b/tuxbox/neutrino/src/gui/upnpbrowser.cpp
index aa92039..6087ccf 100644
--- a/tuxbox/neutrino/src/gui/upnpbrowser.cpp
+++ b/tuxbox/neutrino/src/gui/upnpbrowser.cpp
@@ -137,7 +137,7 @@ int CUpnpBrowserGui::exec(CMenuTarget* parent, const std::string & /*actionKey*/
m_width = w_max(710, ConnectLineBox_Width);
m_height = h_max(570, 0);
m_sheight = g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_SMALL]->getHeight();
- m_buttonHeight = std::min(25, m_sheight);
+ m_buttonHeight = std::max(25, m_sheight);
m_frameBuffer->getIconSize(NEUTRINO_ICON_UPNP, &m_ticonwidth, &m_ticonheight);
m_theight = std::max(m_ticonheight, g_Font[SNeutrinoSettings::FONT_TYPE_MENU_TITLE]->getHeight());
m_mheight = g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->getHeight();
commit a0eb7ce18585b8f1e34c83b816906ddb85aa42b7
Author: Jacek Jendrzej <cra...@go...>
Date: Fri Jan 16 22:11:37 2015 +0100
nhttpd: ywebserver.cpp - fix possible segfault (svenhoefer)
Signed-off-by: Christian Schuett <Gau...@ho...>
Signed-off-by: GetAway <get...@t-...>
diff --git a/tuxbox/neutrino/daemons/nhttpd/yhttpd_core/ywebserver.cpp b/tuxbox/neutrino/daemons/nhttpd/yhttpd_core/ywebserver.cpp
index 1e3a99e..4b44757 100644
--- a/tuxbox/neutrino/daemons/nhttpd/yhttpd_core/ywebserver.cpp
+++ b/tuxbox/neutrino/daemons/nhttpd/yhttpd_core/ywebserver.cpp
@@ -416,6 +416,10 @@ bool CWebserver::handle_connection(CySocket *newSock)
// create arguments
TWebserverConnectionArgs *newConn = new TWebserverConnectionArgs;
+ if (!newConn) {
+ dperror("CWebserver TWebserverConnectionArgs error!\n");
+ return false;
+ }
newConn->ySock = newSock;
newConn->ySock->handling = true;
newConn->WebserverBackref = this;
@@ -456,23 +460,27 @@ bool CWebserver::handle_connection(CySocket *newSock)
//-------------------------------------------------------------------------
void *WebThread(void *args)
{
- CWebserverConnection *con;
- CWebserver *ws;
TWebserverConnectionArgs *newConn = (TWebserverConnectionArgs *) args;
- ws = newConn->WebserverBackref;
+ if (!newConn) {
+ dperror("WebThread called without arguments!\n");
+ return NULL;
+ }
bool is_threaded = newConn->is_treaded;
if(is_threaded)
log_level_printf(1,"++ Thread 0x06%X gestartet\n", (int) pthread_self());
- if (!newConn) {
- dperror("WebThread called without arguments!\n");
- if(newConn->is_treaded)
- pthread_exit(NULL);
- }
-
// (1) create & init Connection
- con = new CWebserverConnection(ws);
+ CWebserver *ws = newConn->WebserverBackref;
+ if (!ws) {
+ dperror("WebThread CWebserver error!\n");
+ return NULL;
+ }
+ CWebserverConnection *con = new CWebserverConnection(ws);
+ if (!con) {
+ dperror("WebThread CWebserverConnection error!\n");
+ return NULL;
+ }
con->Request.UrlData["clientaddr"] = newConn->ySock->get_client_ip(); // TODO:here?
con->sock = newConn->ySock; // give socket reference
newConn->ySock->handling = true; // dont handle this socket now be webserver main loop
commit 3236e654dc0d9b5a08c3701a774d24b0d5ea2c7d
Author: Christian Schuett <Gau...@ho...>
Date: Fri Jan 16 21:28:13 2015 +0100
Neutrino locales: add missing dots to two entries
Signed-off-by: Christian Schuett <Gau...@ho...>
Signed-off-by: GetAway <get...@t-...>
diff --git a/tuxbox/neutrino/data/locale/deutsch.locale b/tuxbox/neutrino/data/locale/deutsch.locale
index 4f2b9fd..4a26c68 100644
--- a/tuxbox/neutrino/data/locale/deutsch.locale
+++ b/tuxbox/neutrino/data/locale/deutsch.locale
@@ -860,7 +860,7 @@ moviebrowser.info_head Film Informationen
moviebrowser.info_head_update Inhalte in allen sichtbaren Filminfos speichern
moviebrowser.info_info1 Info 1
moviebrowser.info_info2 Info 2
-moviebrowser.info_length Spieldauer (Min)
+moviebrowser.info_length Spieldauer (Min.)
moviebrowser.info_parental_lockage Altersfreigabe
moviebrowser.info_parental_lockage_0year immer
moviebrowser.info_parental_lockage_12year 12 Jahre
@@ -918,7 +918,7 @@ moviebrowser.short_genre_major Genre
moviebrowser.short_genre_minor Genre
moviebrowser.short_info1 Info 1
moviebrowser.short_info2 Info 2
-moviebrowser.short_length Min
+moviebrowser.short_length Min.
moviebrowser.short_parental_lockage FSK
moviebrowser.short_path Pfad
moviebrowser.short_prevplaydate Zuletzt
diff --git a/tuxbox/neutrino/data/locale/english.locale b/tuxbox/neutrino/data/locale/english.locale
index 6f95b6e..c13e022 100644
--- a/tuxbox/neutrino/data/locale/english.locale
+++ b/tuxbox/neutrino/data/locale/english.locale
@@ -860,7 +860,7 @@ moviebrowser.info_head Film Informations
moviebrowser.info_head_update Save changes in all movie info files
moviebrowser.info_info1 Info 1
moviebrowser.info_info2 Info 2
-moviebrowser.info_length Length (Min)
+moviebrowser.info_length Length (min.)
moviebrowser.info_parental_lockage Parental Lock age
moviebrowser.info_parental_lockage_0year always
moviebrowser.info_parental_lockage_12year 12 years
@@ -918,7 +918,7 @@ moviebrowser.short_genre_major Genre
moviebrowser.short_genre_minor Genre
moviebrowser.short_info1 Info 1
moviebrowser.short_info2 Info 2
-moviebrowser.short_length Min
+moviebrowser.short_length Min.
moviebrowser.short_parental_lockage Age
moviebrowser.short_path Path
moviebrowser.short_prevplaydate Last
commit e957d242d357edb15822fea173d1b1c0f102adb3
Author: m4...@gm... <m4...@gm...>
Date: Tue Jan 6 16:51:23 2015 +0100
libconnection/basicserver: raise queue limit
Signed-off-by: GetAway <get...@t-...>
diff --git a/misc/libs/libconnection/basicserver.cpp b/misc/libs/libconnection/basicserver.cpp
index 84f511d..dcfc38b 100644
--- a/misc/libs/libconnection/basicserver.cpp
+++ b/misc/libs/libconnection/basicserver.cpp
@@ -106,7 +106,7 @@ bool CBasicServer::prepare(const char* socketname)
return false;
}
-#define N_connection_requests_queued 5
+#define N_connection_requests_queued 128
if (listen(sock_fd, N_connection_requests_queued) != 0)
{
commit d80721f01e97f446d4313878a16cae18cb574570
Author: m4...@gm... <m4...@gm...>
Date: Tue Jan 6 16:51:07 2015 +0100
libconnection/basicsocket: use poll() instead of select()
Signed-off-by: GetAway <get...@t-...>
diff --git a/misc/libs/libconnection/basicsocket.cpp b/misc/libs/libconnection/basicsocket.cpp
index 80dc3a2..cf69656 100644
--- a/misc/libs/libconnection/basicsocket.cpp
+++ b/misc/libs/libconnection/basicsocket.cpp
@@ -29,52 +29,52 @@
#include <stdio.h>
#include <sys/socket.h>
#include <sys/types.h>
-#include <unistd.h>
+#include <poll.h>
bool send_data(int fd, const void * data, const size_t size, const timeval timeout)
{
- fd_set writefds;
- timeval tv;
- const void * buffer;
- size_t n;
- int rc;
- int olderr;
+ char *buffer = (char *)data;
+ size_t left = size;
- n = size;
-
- while (n > 0)
+ while (left > 0)
{
- buffer = (void *)((char *)data + (size - n));
- rc = ::send(fd, buffer, n, MSG_DONTWAIT | MSG_NOSIGNAL);
+ int len = ::send(fd, buffer, left, MSG_DONTWAIT | MSG_NOSIGNAL);
- if (rc == -1)
+ if (len < 0)
{
- olderr = errno;
- if (errno != EAGAIN) // this is "write would block...", which is not an error
- fprintf(stderr,"[basicsocket] send_data: %m (n = %d/%d, pid = %d)\n", n, size, getpid());
- if (olderr == EPIPE)
- return false;
+ perror("[basicsocket] send_data");
- FD_ZERO(&writefds);
- FD_SET(fd, &writefds);
+ if (errno != EINTR && errno != EAGAIN)
+ return false;
- tv = timeout;
+ struct pollfd pfd;
+ pfd.fd = fd;
+ pfd.events = POLLOUT;
+ pfd.revents = 0;
- rc = select(fd + 1, NULL, &writefds, NULL, &tv);
+ int rc = poll(&pfd, 1, timeout.tv_sec * 1000 + timeout.tv_usec / 1000);
if (rc == 0)
{
printf("[basicsocket] send timed out.\n");
return false;
}
- if (rc == -1)
+ if (rc < 0)
+ {
+ perror("[basicsocket] send_data poll");
+ return false;
+ }
+ if (!(pfd.revents & POLLOUT))
{
- perror("[basicsocket] send_data select");
+ perror("[basicsocket] send_data POLLOUT");
return false;
}
}
else
- n -= rc;
+ {
+ buffer += len;
+ left -= len;
+ }
}
return true;
}
@@ -82,58 +82,55 @@ bool send_data(int fd, const void * data, const size_t size, const timeval timeo
bool receive_data(int fd, void * data, const size_t size, const timeval timeout)
{
- fd_set readfds;
- timeval tv;
- void * buffer;
- size_t n;
- int rc;
-
- n = size;
+ char *buffer = (char *)data;
+ size_t left = size;
- while (n > 0)
+ while (left > 0)
{
- FD_ZERO(&readfds);
- FD_SET(fd, &readfds);
+ struct pollfd pfd;
+ pfd.fd = fd;
+ pfd.events = POLLIN;
+ pfd.revents = 0;
- tv = timeout;
+ int to = timeout.tv_sec * 1000 + timeout.tv_usec / 1000;
- rc = select(fd + 1, &readfds, NULL, NULL, &tv);
+ int rc = poll(&pfd, 1, to);
if (rc == 0)
{
- printf("[basicsocket] receive timed out. waiting process %d\n", getpid());
+ printf("[basicsocket] recv timed out.\n");
return false;
}
- if (rc == -1)
+ if (rc < 0)
{
- perror("[basicsocket] receive_data select");
+ perror("[basicsocket] recv_data poll");
return false;
}
- buffer = (void *)((char *)data + (size - n));
- rc = ::recv(fd, buffer, n, MSG_DONTWAIT | MSG_NOSIGNAL);
-
- if ((rc == 0) || (rc == -1))
+ if (!(pfd.revents & POLLIN))
{
- if (rc == -1)
- {
- perror("[basicsocket] receive_data");
+ perror("[basicsocket] recv_data POLLIN");
+ return false;
+ }
+ int len = ::recv(fd, data, left, MSG_DONTWAIT | MSG_NOSIGNAL);
- if (errno == EPIPE)
- return false;
- }
- else
- {
- /*
- * silently return false
- *
- * printf("[basicsocket] no more data\n");
- */
+ if (len > 0) {
+ left -= len;
+ buffer += len;
+ } else if (len < 0)
+ {
+ perror("[basicsocket] receive_data");
+ if (errno != EINTR && errno != EAGAIN)
return false;
- }
-
}
- else
- n -= rc;
+ else // len == 0
+ {
+ /*
+ * silently return false
+ *
+ * printf("[basicsocket] no more data\n");
+ */
+ return false;
+ }
}
return true;
}
commit abbadf0b98661a6e115583f5a08f0284f82b3dcb
Author: Christian Schuett <Gau...@ho...>
Date: Thu Jan 1 17:47:44 2015 +0100
Neutrino language setup: always mark current language when opening menu
if you open the language menu, move the cursor to a new language,
leave this menu with home key and enter it again, the selected
language is now always the current one
Signed-off-by: Christian Schuett <Gau...@ho...>
Signed-off-by: GetAway <get...@t-...>
diff --git a/tuxbox/neutrino/src/gui/osd_setup.cpp b/tuxbox/neutrino/src/gui/osd_setup.cpp
index 8539241..efe5f43 100644
--- a/tuxbox/neutrino/src/gui/osd_setup.cpp
+++ b/tuxbox/neutrino/src/gui/osd_setup.cpp
@@ -169,6 +169,12 @@ int COsdSetup::exec(CMenuTarget* parent, const std::string &actionKey)
int res = showOsdChannelListSetup();
return res;
}
+ else if (actionKey == "show_language_setup")
+ {
+ COsdLangSetup osd_lang(menue_title);
+ int res = osd_lang.exec(NULL, "");
+ return res;
+ }
else if (actionKey=="select_font")
{
CFile file;
@@ -269,8 +275,7 @@ int COsdSetup::showOsdSetup()
CMenuWidget *osd_setup_colors = new CMenuWidget(menue_title, menue_icon, width);
// language
- COsdLangSetup *osd_lang = new COsdLangSetup(menue_title);
- CMenuForwarder *osd_lang_fw = new CMenuForwarder(LOCALE_MAINSETTINGS_LANGUAGE, true, g_settings.language, osd_lang, NULL, CRCInput::RC_red);
+ CMenuForwarder *osd_lang_fw = new CMenuForwarder(LOCALE_MAINSETTINGS_LANGUAGE, true, g_settings.language, this, "show_language_setup", CRCInput::RC_red);
//osd color setup forwarder
CMenuForwarder *osd_setup_color_sub_fw = new CMenuForwarder(LOCALE_OSDSETTINGS_COLORMENU_HEAD, true, NULL, osd_setup_colors, NULL, CRCInput::RC_green);
@@ -355,7 +360,6 @@ int COsdSetup::showOsdSetup()
delete osd_setup;
delete osd_setup_colors;
- delete osd_lang;
delete osd_themes;
delete osd_screen;
#ifdef HAVE_DBOX_HARDWARE
-----------------------------------------------------------------------
Summary of changes:
misc/libs/libconnection/basicserver.cpp | 2 +-
misc/libs/libconnection/basicsocket.cpp | 119 ++++++++++----------
.../daemons/nhttpd/yhttpd_core/ywebserver.cpp | 28 +++--
tuxbox/neutrino/data/locale/deutsch.locale | 4 +-
tuxbox/neutrino/data/locale/english.locale | 4 +-
tuxbox/neutrino/src/driver/lcdd.cpp ...
[truncated message content] |