mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
The CAM menu is now completely closed when pressing the Menu key while inside a sub menu
This commit is contained in:
parent
283a6f83f9
commit
8365632b3f
4
HISTORY
4
HISTORY
@ -45,7 +45,7 @@ Video Disk Recorder Revision History
|
||||
a prepended '@' character.
|
||||
- If an instant recording is currently active, the "Main" menu now contains
|
||||
an option to stop that recording.
|
||||
- Timers are now only processed when the Menu is not active. So after editing
|
||||
- Timers are now only processed when the menu is not active. So after editing
|
||||
a timer the effect will take place only after the menu has been closed.
|
||||
In order to avoid missing a timer event by inadvertently leaving the menu
|
||||
open, the menu will be closed automatically after about two minutes of
|
||||
@ -3874,3 +3874,5 @@ Video Disk Recorder Revision History
|
||||
- The CAM menu now automatically updates itself in case of a progress display (as
|
||||
used, for instance, when updating the firmware via satellite).
|
||||
- Now skipping some funny characters sent by some CAMs at the beginning of strings.
|
||||
- The CAM menu is now completely closed when pressing the Menu key while inside
|
||||
a sub menu.
|
||||
|
16
ci.c
16
ci.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: ci.c 1.30 2005/10/02 13:10:28 kls Exp $
|
||||
* $Id: ci.c 1.31 2005/10/02 13:20:41 kls Exp $
|
||||
*/
|
||||
|
||||
#include "ci.h"
|
||||
@ -1032,6 +1032,7 @@ public:
|
||||
cCiEnquiry *Enquiry(bool Clear = false);
|
||||
bool SendMenuAnswer(uint8_t Selection);
|
||||
bool SendAnswer(const char *Text);
|
||||
bool SendCloseMMI(void);
|
||||
};
|
||||
|
||||
cCiMMI::cCiMMI(int SessionId, cCiTransportConnection *Tc)
|
||||
@ -1204,6 +1205,14 @@ bool cCiMMI::SendAnswer(const char *Text)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool cCiMMI::SendCloseMMI(void)
|
||||
{
|
||||
dbgprotocol("%d: ==> Close MMI\n", SessionId());
|
||||
SendData(AOT_CLOSE_MMI, 0);
|
||||
//XXX return value of all SendData() calls???
|
||||
return true;
|
||||
}
|
||||
|
||||
// --- cCiMenu ---------------------------------------------------------------
|
||||
|
||||
cCiMenu::cCiMenu(cCiMMI *MMI, bool Selectable)
|
||||
@ -1253,6 +1262,11 @@ bool cCiMenu::Cancel(void)
|
||||
return Select(-1);
|
||||
}
|
||||
|
||||
bool cCiMenu::Abort(void)
|
||||
{
|
||||
return mmi->SendCloseMMI();
|
||||
}
|
||||
|
||||
// --- cCiEnquiry ------------------------------------------------------------
|
||||
|
||||
cCiEnquiry::cCiEnquiry(cCiMMI *MMI)
|
||||
|
3
ci.h
3
ci.h
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: ci.h 1.15 2005/10/02 12:51:22 kls Exp $
|
||||
* $Id: ci.h 1.16 2005/10/02 13:20:41 kls Exp $
|
||||
*/
|
||||
|
||||
#ifndef __CI_H
|
||||
@ -40,6 +40,7 @@ public:
|
||||
bool Selectable(void) { return selectable; }
|
||||
bool Select(int Index);
|
||||
bool Cancel(void);
|
||||
bool Abort(void);
|
||||
bool HasUpdate(void);
|
||||
};
|
||||
|
||||
|
15
menu.c
15
menu.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: menu.c 1.367 2005/10/02 12:56:19 kls Exp $
|
||||
* $Id: menu.c 1.368 2005/10/02 13:20:41 kls Exp $
|
||||
*/
|
||||
|
||||
#include "menu.h"
|
||||
@ -1314,7 +1314,7 @@ cMenuCam::cMenuCam(cCiMenu *CiMenu)
|
||||
cMenuCam::~cMenuCam()
|
||||
{
|
||||
if (!selected)
|
||||
ciMenu->Cancel();
|
||||
ciMenu->Abort();
|
||||
delete ciMenu;
|
||||
}
|
||||
|
||||
@ -1323,8 +1323,10 @@ eOSState cMenuCam::Select(void)
|
||||
if (ciMenu->Selectable()) {
|
||||
ciMenu->Select(Current() - offset);
|
||||
dsyslog("CAM: select %d", Current() - offset);
|
||||
selected = true;
|
||||
}
|
||||
else
|
||||
ciMenu->Cancel();
|
||||
selected = true;
|
||||
return osEnd;
|
||||
}
|
||||
|
||||
@ -1338,8 +1340,13 @@ eOSState cMenuCam::ProcessKey(eKeys Key)
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
else if (state == osBack) {
|
||||
ciMenu->Cancel();
|
||||
selected = true;
|
||||
return osEnd;
|
||||
}
|
||||
if (ciMenu->HasUpdate()) {
|
||||
selected = true; // just to not call ciMenu->Cancel()
|
||||
selected = true;
|
||||
return osEnd;
|
||||
}
|
||||
return state;
|
||||
|
Loading…
Reference in New Issue
Block a user