<%pre> #include <vdr/channels.h> #include "exception.h" #include "setup.h" #include "tools.h" using namespace vdrlive; </%pre> <%args> name = "channel"; selected; onchange; bool channelid = false; </%args> <%session scope="global"> bool logged_in(false); </%session> <{ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); }> <%cpp> ReadLock channelsLock( Channels ); if ( !channelsLock ) throw HtmlError( tr("Couldn't aquire access to channels, please try again later.") ); int lastChannel = LiveSetup().GetLastChannel(); </%cpp> <select name="<$ name $>" <{ reply.out() << ( !onchange.empty() ? "onchange=\""+onchange+"\"" : "" ); }>> % for ( cChannel *listChannel = Channels.First(); listChannel && listChannel->Number() <= lastChannel; % listChannel = Channels.Next( listChannel ) ) { % if ( listChannel->GroupSep() || *listChannel->Name() == '\0' ) % continue; % % std::string listChannelId = *listChannel->GetChannelID().ToString(); <option value="<? channelid ? *listChannel->GetChannelID().ToString() ?><? !channelid ? listChannel->Number() ?>" <{ reply.out() << ( listChannelId == selected ? "selected=\"selected\"" : "" ); }>><$ listChannel->Name() $></option> % } </select>