diff options
author | Frank Schmirler <vdr@schmirler.de> | 2010-12-02 09:48:23 +0100 |
---|---|---|
committer | Frank Schmirler <vdr@schmirler.de> | 2010-12-02 09:48:23 +0100 |
commit | 11b22d9f33d50f20cba1eaee2aadb55d3580d879 (patch) | |
tree | 5c4e7fe1046bd9cc1ef7a7b21abe118f43689902 /server/setup.c | |
parent | 435f01649c2ee8c23c21e0680d0a39e773008549 (diff) | |
download | vdr-plugin-streamdev-11b22d9f33d50f20cba1eaee2aadb55d3580d879.tar.gz vdr-plugin-streamdev-11b22d9f33d50f20cba1eaee2aadb55d3580d879.tar.bz2 |
Streamdev 0.5.0-rc1
Diffstat (limited to 'server/setup.c')
-rw-r--r-- | server/setup.c | 80 |
1 files changed, 62 insertions, 18 deletions
diff --git a/server/setup.c b/server/setup.c index 710b1fa..986f876 100644 --- a/server/setup.c +++ b/server/setup.c @@ -1,5 +1,5 @@ /* - * $Id: setup.c,v 1.6 2009/02/13 10:39:22 schmirl Exp $ + * $Id: setup.c,v 1.9.2.2 2010/06/18 19:07:32 schmirl Exp $ */ #include <vdr/menuitems.h> @@ -45,35 +45,72 @@ bool cStreamdevServerSetup::SetupParse(const char *Name, const char *Value) { return true; } +const char* cStreamdevServerMenuSetupPage::StreamTypes[st_Count - 1] = { + "TS", + "PES", + "PS", + "ES", + "EXT" +}; + +const char* cStreamdevServerMenuSetupPage::SuspendModes[sm_Count] = { + trNOOP("Offer suspend mode"), + trNOOP("Always suspended"), + trNOOP("Never suspended") +}; + cStreamdevServerMenuSetupPage::cStreamdevServerMenuSetupPage(void) { m_NewSetup = StreamdevServerSetup; + Set(); +} + +cStreamdevServerMenuSetupPage::~cStreamdevServerMenuSetupPage() { +} + +void cStreamdevServerMenuSetupPage::Set(void) { + static const char* modes[sm_Count]; + for (int i = 0; i < sm_Count; i++) + modes[i] = tr(SuspendModes[i]); + + int current = Current(); + Clear(); AddCategory (tr("Common Settings")); - AddRangeEdit(tr("Maximum Number of Clients"), m_NewSetup.MaxClients, 0, 100); - AddSuspEdit (tr("Suspend behaviour"), m_NewSetup.SuspendMode); - AddBoolEdit (tr("Client may suspend"), m_NewSetup.AllowSuspend); + Add(new cMenuEditIntItem (tr("Maximum Number of Clients"), &m_NewSetup.MaxClients, 0, 100)); + + Add(new cMenuEditStraItem(tr("Suspend behaviour"), &m_NewSetup.SuspendMode, sm_Count, modes)); + if (m_NewSetup.SuspendMode == smOffer) + Add(new cMenuEditBoolItem(tr("Client may suspend"), &m_NewSetup.AllowSuspend)); AddCategory (tr("VDR-to-VDR Server")); - AddBoolEdit (tr("Start VDR-to-VDR Server"), m_NewSetup.StartVTPServer); - AddShortEdit(tr("VDR-to-VDR Server Port"), m_NewSetup.VTPServerPort); - AddIpEdit (tr("Bind to IP"), m_NewSetup.VTPBindIP); + Add(new cMenuEditBoolItem(tr("Start VDR-to-VDR Server"), &m_NewSetup.StartVTPServer)); + Add(new cMenuEditIntItem (tr("VDR-to-VDR Server Port"), &m_NewSetup.VTPServerPort, 0, 65535)); + Add(new cMenuEditIpItem (tr("Bind to IP"), m_NewSetup.VTPBindIP)); AddCategory (tr("HTTP Server")); - AddBoolEdit (tr("Start HTTP Server"), m_NewSetup.StartHTTPServer); - AddShortEdit(tr("HTTP Server Port"), m_NewSetup.HTTPServerPort); - AddTypeEdit (tr("HTTP Streamtype"), m_NewSetup.HTTPStreamType); - AddIpEdit (tr("Bind to IP"), m_NewSetup.HTTPBindIP); + Add(new cMenuEditBoolItem(tr("Start HTTP Server"), &m_NewSetup.StartHTTPServer)); + Add(new cMenuEditIntItem (tr("HTTP Server Port"), &m_NewSetup.HTTPServerPort, 0, 65535)); + Add(new cMenuEditStraItem(tr("HTTP Streamtype"), &m_NewSetup.HTTPStreamType, st_Count - 1, StreamTypes)); + Add(new cMenuEditIpItem (tr("Bind to IP"), m_NewSetup.HTTPBindIP)); AddCategory (tr("Multicast Streaming Server")); - AddBoolEdit (tr("Start IGMP Server"), m_NewSetup.StartIGMPServer); - AddShortEdit(tr("Multicast Client Port"), m_NewSetup.IGMPClientPort); - AddTypeEdit (tr("Multicast Streamtype"), m_NewSetup.IGMPStreamType); - AddIpEdit (tr("Bind to IP"), m_NewSetup.IGMPBindIP); - SetCurrent(Get(1)); + Add(new cMenuEditBoolItem(tr("Start IGMP Server"), &m_NewSetup.StartIGMPServer)); + Add(new cMenuEditIntItem (tr("Multicast Client Port"), &m_NewSetup.IGMPClientPort, 0, 65535)); + Add(new cMenuEditStraItem(tr("Multicast Streamtype"), &m_NewSetup.IGMPStreamType, st_Count - 1, StreamTypes)); + Add(new cMenuEditIpItem (tr("Bind to IP"), m_NewSetup.IGMPBindIP)); + SetCurrent(Get(current)); + Display(); } -cStreamdevServerMenuSetupPage::~cStreamdevServerMenuSetupPage() { -} +void cStreamdevServerMenuSetupPage::AddCategory(const char *Title) { + + cString str = cString::sprintf("--- %s -------------------------------------------------" + "---------------", Title ); + cOsdItem *item = new cOsdItem(*str); + item->SetSelectable(false); + Add(item); +} + void cStreamdevServerMenuSetupPage::Store(void) { bool restart = false; if (m_NewSetup.StartVTPServer != StreamdevServerSetup.StartVTPServer @@ -110,3 +147,10 @@ void cStreamdevServerMenuSetupPage::Store(void) { cStreamdevServer::Initialize(); } +eOSState cStreamdevServerMenuSetupPage::ProcessKey(eKeys Key) { + int oldMode = m_NewSetup.SuspendMode; + eOSState state = cMenuSetupPage::ProcessKey(Key); + if (oldMode != m_NewSetup.SuspendMode) + Set(); + return state; +} |