|
|
|
@@ -295,14 +295,41 @@ int CTimerList::exec(CMenuTarget* parent, const std::string & actionKey)
|
|
|
|
|
const char * key = actionKey.c_str();
|
|
|
|
|
|
|
|
|
|
if(actionKey == "add_ip") {
|
|
|
|
|
std::string remoteip;
|
|
|
|
|
CIPInput remotebox_NetworkIP(LOCALE_REMOTEBOX_IP , &remoteip);
|
|
|
|
|
remotebox_NetworkIP.enableSaveScreen(true);
|
|
|
|
|
if ((remotebox_NetworkIP.exec(NULL,"") == true) && (!remoteip.empty())) {
|
|
|
|
|
remboxmenu->addItem(new CMenuForwarder(remoteip, true, NULL, this, "cha_ip"));
|
|
|
|
|
remotebox_NetworkIP.hide();
|
|
|
|
|
std::string rbname,rbaddress,user,pass = "";
|
|
|
|
|
std::string port = "80";
|
|
|
|
|
CKeyboardInput remotebox_name(LOCALE_REMOTEBOX_RBNAME , &rbname, 25);
|
|
|
|
|
remotebox_name.forceSaveScreen(true);
|
|
|
|
|
CKeyboardInput remotebox_address(LOCALE_REMOTEBOX_RBADDR , &rbaddress, 50);
|
|
|
|
|
remotebox_address.forceSaveScreen(true);
|
|
|
|
|
CStringInput remotebox_port(LOCALE_REMOTEBOX_PORT , &port, 5);
|
|
|
|
|
remotebox_port.forceSaveScreen(true);
|
|
|
|
|
CKeyboardInput remotebox_user(LOCALE_REMOTEBOX_USER , &user, 15);
|
|
|
|
|
remotebox_user.forceSaveScreen(true);
|
|
|
|
|
CKeyboardInput remotebox_pass(LOCALE_REMOTEBOX_PASS , &pass, 15);
|
|
|
|
|
remotebox_pass.forceSaveScreen(true);
|
|
|
|
|
CMenuWidget * rbsetup = new CMenuWidget(LOCALE_REMOTEBOX_HEAD, NEUTRINO_ICON_TIMER);
|
|
|
|
|
rbsetup->addItem(new CMenuForwarder(LOCALE_REMOTEBOX_RBNAME, true, rbname, &remotebox_name));
|
|
|
|
|
rbsetup->addItem(new CMenuForwarder(LOCALE_REMOTEBOX_RBADDR, true, rbaddress, &remotebox_address));
|
|
|
|
|
rbsetup->addItem(new CMenuForwarder(LOCALE_REMOTEBOX_PORT, true, port, &remotebox_port));
|
|
|
|
|
rbsetup->addItem(new CMenuForwarder(LOCALE_REMOTEBOX_USER, true, user, &remotebox_user));
|
|
|
|
|
rbsetup->addItem(new CMenuForwarder(LOCALE_REMOTEBOX_PASS, true, pass, &remotebox_pass));
|
|
|
|
|
rbsetup->enableSaveScreen(true);
|
|
|
|
|
if ((rbsetup->exec(NULL,"") == true) && (!rbaddress.empty())) {
|
|
|
|
|
remboxmenu->addItem(new CMenuForwarder(rbname, true, NULL, this, "cha_ip"));
|
|
|
|
|
rbsetup->hide();
|
|
|
|
|
remboxmenu->enableSaveScreen(false);
|
|
|
|
|
remboxmenu->hide();
|
|
|
|
|
timer_remotebox_item timer_rb;
|
|
|
|
|
timer_rb.rbaddress = rbaddress;
|
|
|
|
|
if (!timer_rb.rbaddress.empty()) {
|
|
|
|
|
timer_rb.port = atoi(port);
|
|
|
|
|
timer_rb.user = user;
|
|
|
|
|
timer_rb.pass = pass;
|
|
|
|
|
timer_rb.rbname = rbname;
|
|
|
|
|
if (timer_rb.rbname.empty())
|
|
|
|
|
timer_rb.rbname = timer_rb.rbaddress;
|
|
|
|
|
g_settings.timer_remotebox_ip.push_back(timer_rb);
|
|
|
|
|
}
|
|
|
|
|
changed = true;
|
|
|
|
|
}
|
|
|
|
|
return menu_return::RETURN_REPAINT;
|
|
|
|
@@ -324,12 +351,30 @@ int CTimerList::exec(CMenuTarget* parent, const std::string & actionKey)
|
|
|
|
|
bselected = remboxmenu->getSelected();
|
|
|
|
|
CMenuItem* item = remboxmenu->getItem(bselected);
|
|
|
|
|
CMenuForwarder *f = static_cast<CMenuForwarder*>(item);
|
|
|
|
|
std::string remoteip = f->getName();
|
|
|
|
|
CIPInput remotebox_NetworkIP(LOCALE_REMOTEBOX_IP , &remoteip);
|
|
|
|
|
remotebox_NetworkIP.enableSaveScreen(true);
|
|
|
|
|
if (remotebox_NetworkIP.exec(NULL,"") == true) {
|
|
|
|
|
f->setName(remoteip);
|
|
|
|
|
remotebox_NetworkIP.hide();
|
|
|
|
|
std::vector<timer_remotebox_item>::iterator it = g_settings.timer_remotebox_ip.begin();
|
|
|
|
|
std::advance(it,bselected-item_offset);
|
|
|
|
|
std::string port = to_string(it->port);
|
|
|
|
|
CKeyboardInput remotebox_name(LOCALE_REMOTEBOX_RBNAME , &it->rbname, 25);
|
|
|
|
|
remotebox_name.forceSaveScreen(true);
|
|
|
|
|
CKeyboardInput remotebox_address(LOCALE_REMOTEBOX_RBADDR , &it->rbaddress, 50);
|
|
|
|
|
remotebox_address.forceSaveScreen(true);
|
|
|
|
|
CStringInput remotebox_port(LOCALE_REMOTEBOX_PORT , &port, 5);
|
|
|
|
|
remotebox_port.forceSaveScreen(true);
|
|
|
|
|
CKeyboardInput remotebox_user(LOCALE_REMOTEBOX_USER , &it->user, 15);
|
|
|
|
|
remotebox_user.forceSaveScreen(true);
|
|
|
|
|
CKeyboardInput remotebox_pass(LOCALE_REMOTEBOX_PASS , &it->pass, 15);
|
|
|
|
|
remotebox_pass.forceSaveScreen(true);
|
|
|
|
|
CMenuWidget * rbsetup = new CMenuWidget(LOCALE_REMOTEBOX_HEAD, NEUTRINO_ICON_TIMER);
|
|
|
|
|
rbsetup->addItem(new CMenuForwarder(LOCALE_REMOTEBOX_RBNAME, true, it->rbname, &remotebox_name));
|
|
|
|
|
rbsetup->addItem(new CMenuForwarder(LOCALE_REMOTEBOX_RBADDR, true, it->rbaddress, &remotebox_address));
|
|
|
|
|
rbsetup->addItem(new CMenuForwarder(LOCALE_REMOTEBOX_PORT, true, port, &remotebox_port));
|
|
|
|
|
rbsetup->addItem(new CMenuForwarder(LOCALE_REMOTEBOX_USER, true, it->user, &remotebox_user));
|
|
|
|
|
rbsetup->addItem(new CMenuForwarder(LOCALE_REMOTEBOX_PASS, true, it->pass, &remotebox_pass));
|
|
|
|
|
rbsetup->enableSaveScreen(true);
|
|
|
|
|
if ((rbsetup->exec(NULL,"") == true) && (!it->rbaddress.empty())) {
|
|
|
|
|
it->port = atoi(port);
|
|
|
|
|
f->setName(it->rbname);
|
|
|
|
|
rbsetup->hide();
|
|
|
|
|
remboxmenu->enableSaveScreen(false);
|
|
|
|
|
remboxmenu->hide();
|
|
|
|
|
changed = true;
|
|
|
|
@@ -360,7 +405,7 @@ int CTimerList::exec(CMenuTarget* parent, const std::string & actionKey)
|
|
|
|
|
CHTTPTool httpTool;
|
|
|
|
|
std::string r_url;
|
|
|
|
|
r_url = "http://";
|
|
|
|
|
r_url += timerlist[selected].remotebox_ip;
|
|
|
|
|
r_url += RemoteBoxConnectUrl(timerlist[selected].remotebox_name);
|
|
|
|
|
r_url += "/control/timer?action=new&update=1";
|
|
|
|
|
r_url += "&alarm=" + to_string((int)timerlist[selected].alarmTime);
|
|
|
|
|
r_url += "&stop=" + to_string((int)timerlist[selected].stopTime);
|
|
|
|
@@ -381,12 +426,12 @@ int CTimerList::exec(CMenuTarget* parent, const std::string & actionKey)
|
|
|
|
|
}
|
|
|
|
|
return menu_return::RETURN_EXIT;
|
|
|
|
|
}
|
|
|
|
|
else if ((strcmp(key, "send_remotetimer") == 0) && remoteChanExists(timerlist[selected].channel_id))
|
|
|
|
|
else if ((strcmp(key, "send_remotetimer") == 0) && RemoteBoxChanExists(timerlist[selected].channel_id))
|
|
|
|
|
{
|
|
|
|
|
CHTTPTool httpTool;
|
|
|
|
|
std::string r_url;
|
|
|
|
|
r_url = "http://";
|
|
|
|
|
r_url += timerlist[selected].remotebox_ip;
|
|
|
|
|
r_url += RemoteBoxConnectUrl(timerlist[selected].remotebox_name);
|
|
|
|
|
r_url += "/control/timer?action=new";
|
|
|
|
|
r_url += "&alarm=" + to_string((int)timerlist[selected].alarmTime + timerlist[selected].rem_pre);
|
|
|
|
|
r_url += "&stop=" + to_string((int)timerlist[selected].stopTime - timerlist[selected].rem_post);
|
|
|
|
@@ -400,11 +445,11 @@ int CTimerList::exec(CMenuTarget* parent, const std::string & actionKey)
|
|
|
|
|
if (r_url=="ok")
|
|
|
|
|
Timer->removeTimerEvent(timerlist[selected].eventID);
|
|
|
|
|
}
|
|
|
|
|
else if ((strcmp(key, "fetch_remotetimer") == 0) && localChanExists(timerlist[selected].channel_id))
|
|
|
|
|
else if ((strcmp(key, "fetch_remotetimer") == 0) && LocalBoxChanExists(timerlist[selected].channel_id))
|
|
|
|
|
{
|
|
|
|
|
int pre,post;
|
|
|
|
|
Timer->getRecordingSafety(pre,post);
|
|
|
|
|
std::string remotebox_ip = timerlist[selected].remotebox_ip;
|
|
|
|
|
std::string remotebox_name = timerlist[selected].remotebox_name;
|
|
|
|
|
std::string eventID = to_string((int)timerlist[selected].eventID);
|
|
|
|
|
|
|
|
|
|
int res = Timer->addRecordTimerEvent(timerlist[selected].channel_id, timerlist[selected].alarmTime + pre,
|
|
|
|
@@ -426,7 +471,7 @@ int CTimerList::exec(CMenuTarget* parent, const std::string & actionKey)
|
|
|
|
|
CHTTPTool httpTool;
|
|
|
|
|
std::string r_url;
|
|
|
|
|
r_url = "http://";
|
|
|
|
|
r_url += remotebox_ip;
|
|
|
|
|
r_url += RemoteBoxConnectUrl(remotebox_name);
|
|
|
|
|
r_url += "/control/timer?action=remove";
|
|
|
|
|
r_url += "&id=" + eventID;
|
|
|
|
|
//printf("[remotetimer] url:%s\n",r_url.c_str());
|
|
|
|
@@ -439,7 +484,7 @@ int CTimerList::exec(CMenuTarget* parent, const std::string & actionKey)
|
|
|
|
|
CHTTPTool httpTool;
|
|
|
|
|
std::string r_url;
|
|
|
|
|
r_url = "http://";
|
|
|
|
|
r_url += timerlist[selected].remotebox_ip;
|
|
|
|
|
r_url += RemoteBoxConnectUrl(timerlist[selected].remotebox_name);
|
|
|
|
|
r_url += "/control/timer?action=remove";
|
|
|
|
|
r_url += "&id=" + to_string((int)timerlist[selected].eventID);
|
|
|
|
|
//printf("[remotetimer] url:%s\n",r_url.c_str());
|
|
|
|
@@ -451,7 +496,7 @@ int CTimerList::exec(CMenuTarget* parent, const std::string & actionKey)
|
|
|
|
|
CHTTPTool httpTool;
|
|
|
|
|
std::string r_url;
|
|
|
|
|
r_url = "http://";
|
|
|
|
|
r_url += timerlist[selected].remotebox_ip;
|
|
|
|
|
r_url += RemoteBoxConnectUrl(timerlist[selected].remotebox_name);
|
|
|
|
|
r_url += "/control/timer?action=new&update=1";
|
|
|
|
|
r_url += "&alarm=" + to_string((int)timerlist[selected].alarmTime);
|
|
|
|
|
r_url += "&stop=" + to_string((int)timerlist[selected].stopTime);
|
|
|
|
@@ -609,7 +654,7 @@ void CTimerList::updateEvents(void)
|
|
|
|
|
{
|
|
|
|
|
timerlist.clear();
|
|
|
|
|
Timer->getTimerList (timerlist);
|
|
|
|
|
remoteTimerList (timerlist);
|
|
|
|
|
RemoteBoxTimerList (timerlist);
|
|
|
|
|
sort(timerlist.begin(), timerlist.end());
|
|
|
|
|
|
|
|
|
|
theight = g_Font[SNeutrinoSettings::FONT_TYPE_MENU_TITLE]->getHeight();
|
|
|
|
@@ -640,37 +685,38 @@ void CTimerList::updateEvents(void)
|
|
|
|
|
y = getScreenStartY(height);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CTimerList::select_remotebox_ip()
|
|
|
|
|
void CTimerList::RemoteBoxSelect()
|
|
|
|
|
{
|
|
|
|
|
int select = 0;
|
|
|
|
|
CMenuWidget *m = new CMenuWidget(LOCALE_REMOTEBOX_HEAD, NEUTRINO_ICON_TIMER);
|
|
|
|
|
CMenuSelectorTarget * selector = new CMenuSelectorTarget(&select);
|
|
|
|
|
|
|
|
|
|
for (std::list<std::string>::iterator it = g_settings.timer_remotebox_ip.begin(); it != g_settings.timer_remotebox_ip.end(); ++it)
|
|
|
|
|
m->addItem(new CMenuForwarder(*it, true, NULL, selector, to_string(std::distance(g_settings.timer_remotebox_ip.begin(),it)).c_str()));
|
|
|
|
|
for (std::vector<timer_remotebox_item>::iterator it = g_settings.timer_remotebox_ip.begin(); it != g_settings.timer_remotebox_ip.end(); ++it)
|
|
|
|
|
m->addItem(new CMenuForwarder(it->rbname, true, NULL, selector, to_string(std::distance(g_settings.timer_remotebox_ip.begin(),it)).c_str()));
|
|
|
|
|
|
|
|
|
|
m->enableSaveScreen(true);
|
|
|
|
|
m->exec(NULL, "");
|
|
|
|
|
|
|
|
|
|
delete selector;
|
|
|
|
|
|
|
|
|
|
std::list<std::string>::iterator it = g_settings.timer_remotebox_ip.begin();
|
|
|
|
|
std::vector<timer_remotebox_item>::iterator it = g_settings.timer_remotebox_ip.begin();
|
|
|
|
|
std::advance(it,select);
|
|
|
|
|
if (askUserOnRemoteTimerConflict(timerlist[selected].announceTime, timerlist[selected].stopTime, (char*) it->c_str()))
|
|
|
|
|
if (askUserOnRemoteTimerConflict(timerlist[selected].announceTime, timerlist[selected].stopTime, (char*) it->rbname.c_str()))
|
|
|
|
|
{
|
|
|
|
|
strncpy(timerlist[selected].remotebox_ip,it->c_str(),sizeof(timerlist[selected].remotebox_ip));
|
|
|
|
|
timerlist[selected].remotebox_ip[sizeof(timerlist[selected].remotebox_ip) - 1] = 0;
|
|
|
|
|
strncpy(timerlist[selected].remotebox_name,it->rbname.c_str(),sizeof(timerlist[selected].remotebox_name));
|
|
|
|
|
timerlist[selected].remotebox_name[sizeof(timerlist[selected].remotebox_name) - 1] = 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool CTimerList::remoteChanExists(t_channel_id channel_id)
|
|
|
|
|
bool CTimerList::RemoteBoxChanExists(t_channel_id channel_id)
|
|
|
|
|
{
|
|
|
|
|
if (strcmp(timerlist[selected].remotebox_ip,"") == 0)
|
|
|
|
|
if (strcmp(timerlist[selected].remotebox_name,"") == 0)
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
|
|
CHTTPTool httpTool;
|
|
|
|
|
std::string r_url;
|
|
|
|
|
r_url = "http://";
|
|
|
|
|
r_url += timerlist[selected].remotebox_ip;
|
|
|
|
|
r_url += RemoteBoxConnectUrl(timerlist[selected].remotebox_name);
|
|
|
|
|
r_url += "/control/getchannel?format=json&id=";
|
|
|
|
|
r_url += string_printf_helper(PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS, channel_id);
|
|
|
|
|
r_url = httpTool.downloadString(r_url, -1, httpConnectTimeout);
|
|
|
|
@@ -692,7 +738,7 @@ bool CTimerList::remoteChanExists(t_channel_id channel_id)
|
|
|
|
|
return (r_url == "true");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool CTimerList::localChanExists(t_channel_id channel_id)
|
|
|
|
|
bool CTimerList::LocalBoxChanExists(t_channel_id channel_id)
|
|
|
|
|
{
|
|
|
|
|
CZapitChannel * channel = CServiceManager::getInstance()->FindChannel(channel_id);
|
|
|
|
|
if (channel)
|
|
|
|
@@ -701,17 +747,33 @@ bool CTimerList::localChanExists(t_channel_id channel_id)
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CTimerList::remoteTimerList(CTimerd::TimerList &rtimerlist)
|
|
|
|
|
std::string CTimerList::RemoteBoxConnectUrl(std::string _rbname)
|
|
|
|
|
{
|
|
|
|
|
std::string c_url = "";
|
|
|
|
|
for (std::vector<timer_remotebox_item>::iterator it = g_settings.timer_remotebox_ip.begin();
|
|
|
|
|
it != g_settings.timer_remotebox_ip.end(); ++it) {
|
|
|
|
|
if (it->rbname == _rbname) {
|
|
|
|
|
if (!it->user.empty() && !it->pass.empty())
|
|
|
|
|
c_url += it->user + ":" + it->pass +"@";
|
|
|
|
|
c_url += it->rbaddress;
|
|
|
|
|
c_url += ":" + to_string(it->port);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return c_url;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CTimerList::RemoteBoxTimerList(CTimerd::TimerList &rtimerlist)
|
|
|
|
|
{
|
|
|
|
|
if (g_settings.timer_remotebox_ip.size() == 0)
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
CHTTPTool httpTool;
|
|
|
|
|
std::string r_url;
|
|
|
|
|
for (std::list<std::string>::iterator it = g_settings.timer_remotebox_ip.begin();
|
|
|
|
|
for (std::vector<timer_remotebox_item>::iterator it = g_settings.timer_remotebox_ip.begin();
|
|
|
|
|
it != g_settings.timer_remotebox_ip.end(); ++it) {
|
|
|
|
|
r_url = "http://";
|
|
|
|
|
r_url += *it;
|
|
|
|
|
r_url += RemoteBoxConnectUrl(it->rbname);
|
|
|
|
|
r_url += "/control/timer?format=json";
|
|
|
|
|
r_url = httpTool.downloadString(r_url, -1, httpConnectTimeout);
|
|
|
|
|
//printf("[remotetimer] timers:%s\n",r_url.c_str());
|
|
|
|
@@ -735,8 +797,8 @@ void CTimerList::remoteTimerList(CTimerd::TimerList &rtimerlist)
|
|
|
|
|
for (unsigned int i= 0; i<remotetimers.size();i++) {
|
|
|
|
|
CTimerd::responseGetTimer rtimer;
|
|
|
|
|
if ( atoi(remotetimers[i].get("type_number","").asString()) == 5) {
|
|
|
|
|
strncpy(rtimer.remotebox_ip,it->c_str(),sizeof(rtimer.remotebox_ip));
|
|
|
|
|
rtimer.remotebox_ip[sizeof(rtimer.remotebox_ip) - 1] = 0;
|
|
|
|
|
strncpy(rtimer.remotebox_name,it->rbname.c_str(),sizeof(rtimer.remotebox_name));
|
|
|
|
|
rtimer.remotebox_name[sizeof(rtimer.remotebox_name) - 1] = 0;
|
|
|
|
|
rtimer.rem_pre = rem_pre;
|
|
|
|
|
rtimer.rem_post = rem_post;
|
|
|
|
|
rtimer.eventID = atoi(remotetimers[i].get("id","").asString());
|
|
|
|
@@ -845,7 +907,7 @@ int CTimerList::show()
|
|
|
|
|
else if ((msg == CRCInput::RC_play) && !(timerlist.empty()) && (g_settings.timer_remotebox_ip.size() > 0))
|
|
|
|
|
{
|
|
|
|
|
if (timerlist[selected].eventType == CTimerd::TIMER_RECORD ) {
|
|
|
|
|
select_remotebox_ip();
|
|
|
|
|
RemoteBoxSelect();
|
|
|
|
|
if (exec(this,"send_remotetimer"))
|
|
|
|
|
{
|
|
|
|
|
res=menu_return::RETURN_EXIT_ALL;
|
|
|
|
@@ -911,7 +973,7 @@ int CTimerList::show()
|
|
|
|
|
}
|
|
|
|
|
else if (msg==CRCInput::RC_setup)
|
|
|
|
|
{
|
|
|
|
|
update = enterRemoteBox();
|
|
|
|
|
update = RemoteBoxSetup();
|
|
|
|
|
}
|
|
|
|
|
else if (msg==CRCInput::RC_yellow)
|
|
|
|
|
{
|
|
|
|
@@ -975,7 +1037,7 @@ void CTimerList::hide()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool CTimerList::enterRemoteBox()
|
|
|
|
|
bool CTimerList::RemoteBoxSetup()
|
|
|
|
|
{
|
|
|
|
|
bool ret = false;
|
|
|
|
|
remboxmenu = new CMenuWidget(LOCALE_REMOTEBOX_HEAD, NEUTRINO_ICON_TIMER);
|
|
|
|
@@ -985,20 +1047,24 @@ bool CTimerList::enterRemoteBox()
|
|
|
|
|
remboxmenu->addIntroItems();
|
|
|
|
|
|
|
|
|
|
item_offset = remboxmenu->getItemsCount();
|
|
|
|
|
for (std::list<std::string>::iterator it = g_settings.timer_remotebox_ip.begin();
|
|
|
|
|
for (std::vector<timer_remotebox_item>::iterator it = g_settings.timer_remotebox_ip.begin();
|
|
|
|
|
it != g_settings.timer_remotebox_ip.end(); ++it)
|
|
|
|
|
remboxmenu->addItem(new CMenuForwarder(*it, true, NULL, this, "cha_ip"));
|
|
|
|
|
remboxmenu->addItem(new CMenuForwarder(it->rbname, true, NULL, this, "cha_ip"));
|
|
|
|
|
|
|
|
|
|
remboxmenu->setFooter(RemoteBoxFooterButtons, RemoteBoxFooterButtonCount);
|
|
|
|
|
|
|
|
|
|
remboxmenu->enableSaveScreen(true);
|
|
|
|
|
remboxmenu->exec(NULL, "");
|
|
|
|
|
if (changed) {
|
|
|
|
|
std::vector<timer_remotebox_item> old_timer_remotebox_ip = g_settings.timer_remotebox_ip;
|
|
|
|
|
g_settings.timer_remotebox_ip.clear();
|
|
|
|
|
for (int i = item_offset; i < remboxmenu->getItemsCount(); i++) {
|
|
|
|
|
CMenuItem *item = remboxmenu->getItem(i);
|
|
|
|
|
CMenuForwarder *f = static_cast<CMenuForwarder*>(item);
|
|
|
|
|
g_settings.timer_remotebox_ip.push_back(f->getName());
|
|
|
|
|
for (std::vector<timer_remotebox_item>::iterator it = old_timer_remotebox_ip.begin();
|
|
|
|
|
it != old_timer_remotebox_ip.end(); ++it)
|
|
|
|
|
if (it->rbname == f->getName()) {
|
|
|
|
|
g_settings.timer_remotebox_ip.push_back(*it);}
|
|
|
|
|
}
|
|
|
|
|
changed = false;
|
|
|
|
|
ret = true;
|
|
|
|
@@ -1066,7 +1132,7 @@ void CTimerList::paintItem(int pos)
|
|
|
|
|
sprintf(srepeatcount,"%ux",timer.repeatCount);
|
|
|
|
|
g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->RenderString(x+fw*13+(real_width-fw*23)/2,ypos+fheight, (real_width-fw*13)/2-5, srepeatcount, color, fheight);
|
|
|
|
|
}
|
|
|
|
|
std::string t_type = (timer.eventType == CTimerd::TIMER_REMOTEBOX) ? std::string(convertTimerType2String(timer.eventType)) + " (" + std::string(timer.remotebox_ip) + ")" : convertTimerType2String(timer.eventType);
|
|
|
|
|
std::string t_type = (timer.eventType == CTimerd::TIMER_REMOTEBOX) ? std::string(convertTimerType2String(timer.eventType)) + " (" + std::string(timer.remotebox_name) + ")" : convertTimerType2String(timer.eventType);
|
|
|
|
|
g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->RenderString(x+fw*13+(real_width-fw*13)/2,ypos+fheight, (real_width-fw*13)/2-5, t_type, color, fheight);
|
|
|
|
|
|
|
|
|
|
// paint rec icon when recording in progress
|
|
|
|
@@ -1148,7 +1214,7 @@ void CTimerList::paintItem(int pos)
|
|
|
|
|
CHTTPTool httpTool;
|
|
|
|
|
std::string r_url;
|
|
|
|
|
r_url = "http://";
|
|
|
|
|
r_url += std::string(timer.remotebox_ip);
|
|
|
|
|
r_url += RemoteBoxConnectUrl(timer.remotebox_name);
|
|
|
|
|
r_url += "/control/getchannel?format=json&id=";
|
|
|
|
|
r_url += string_printf_helper(PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS, timer.channel_id);
|
|
|
|
|
r_url = httpTool.downloadString(r_url, -1, httpConnectTimeout);
|
|
|
|
@@ -1680,7 +1746,7 @@ int CTimerList::newTimer()
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool CTimerList::askUserOnRemoteTimerConflict(time_t announceTime, time_t stopTime, char * remotebox_ip)
|
|
|
|
|
bool CTimerList::askUserOnRemoteTimerConflict(time_t announceTime, time_t stopTime, char * remotebox_name)
|
|
|
|
|
{
|
|
|
|
|
CTimerd::TimerList overlappingTimers;
|
|
|
|
|
int pre,post;
|
|
|
|
@@ -1690,7 +1756,7 @@ bool CTimerList::askUserOnRemoteTimerConflict(time_t announceTime, time_t stopTi
|
|
|
|
|
it != timerlist.end();++it)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
if (strcmp(it->remotebox_ip,remotebox_ip) == 0) {
|
|
|
|
|
if (strcmp(it->remotebox_name,remotebox_name) == 0) {
|
|
|
|
|
|
|
|
|
|
if(it->stopTime != 0 && stopTime != 0)
|
|
|
|
|
{
|
|
|
|
|