Merge branch 'bug_747_cancel_waiting_tasks' into experimental
authorFraxinas <andreas.frisch@multimedia-labs.de>
Mon, 11 Apr 2011 16:02:34 +0000 (18:02 +0200)
committerFraxinas <andreas.frisch@multimedia-labs.de>
Mon, 11 Apr 2011 16:02:34 +0000 (18:02 +0200)
57 files changed:
data/setup.xml
lib/base/thread.cpp
lib/driver/rcsdl.cpp
lib/dvb/db.cpp
lib/dvb/dvb.cpp
lib/dvb/frontend.cpp
lib/dvb/frontend.h
lib/dvb/sec.cpp
lib/gdi/picexif.cpp
lib/python/Components/NimManager.py
lib/python/Components/PluginComponent.py
lib/python/Components/UsageConfig.py
lib/python/Components/config.py
lib/python/Plugins/Extensions/GraphMultiEPG/plugin.py
lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py
lib/python/Plugins/SystemPlugins/Satfinder/plugin.py
lib/python/Plugins/SystemPlugins/Videomode/VideoHardware.py
lib/python/Screens/ChannelSelection.py
lib/python/Screens/DefaultWizard.py
lib/python/Screens/InfoBarGenerics.py
lib/python/Screens/InputBox.py
lib/python/Screens/ScanSetup.py
lib/python/Screens/Screen.py
lib/python/Screens/ServiceInfo.py
lib/python/Tools/Directories.py
lib/python/Tools/Transponder.py
lib/python/connections.h
mytest.py
po/ar.po
po/ca.po
po/cs.po
po/da.po
po/de.po
po/el.po
po/en.po
po/es.po
po/et.po
po/fi.po
po/fr.po
po/fy.po
po/hr.po
po/hu.po
po/is.po
po/it.po
po/lt.po
po/lv.po
po/nl.po
po/no.po
po/pl.po
po/pt.po
po/ru.po
po/sk.po
po/sl.po
po/sr.po
po/sv.po
po/tr.po
po/uk.po

index 5f7cbf6..8620709 100755 (executable)
@@ -28,6 +28,7 @@
                        <item level="2" text="Load Length of Movies in Movielist">config.usage.load_length_of_movies_in_moviellist</item>
                        <item level="1" text="Show positioner movement">config.usage.showdish</item>
                        <item level="1" text="Enable multiple bouquets">config.usage.multibouquet</item>
+                       <item level="1" text="Multi-EPG bouquet selection">config.usage.multiepg_ask_bouquet</item>
                        <item level="1" text="Change bouquets in quickzap">config.usage.quickzap_bouquet_change</item>
                        <item level="1" text="Alternative radio mode">config.usage.e1like_radio_mode</item>
                        <item level="1" text="Action on long powerbutton press">config.usage.on_long_powerpress</item>
index fa923de..1fda6a4 100644 (file)
@@ -58,7 +58,12 @@ int eThread::runAsync(int prio, int policy)
                pthread_attr_setschedpolicy(&attr, policy);
                pthread_attr_setschedparam(&attr, &p);
        }
-       
+
+       if (the_thread) {
+               eDebug("old thread joined %d", pthread_join(the_thread, 0));
+               the_thread = 0;
+       }
+
        if (pthread_create(&the_thread, &attr, wrapper, this))
        {
                pthread_attr_destroy(&attr);
@@ -69,7 +74,7 @@ int eThread::runAsync(int prio, int policy)
        
        pthread_attr_destroy(&attr);
        return 0;
-}                     
+}
 
 int eThread::run(int prio, int policy)
 {
index 145b23c..0705cb0 100644 (file)
@@ -1,3 +1,4 @@
+#include <lib/base/etrace.h>
 #include <lib/driver/rcsdl.h>
 //#include <lib/actions/action.h>
 #include <lib/base/init.h>
@@ -18,6 +19,8 @@ eSDLInputDevice::~eSDLInputDevice()
 
 void eSDLInputDevice::handleCode(long arg)
 {
+       D_ENTER();
+
        const SDL_KeyboardEvent *event = (const SDL_KeyboardEvent *)arg;
        const SDL_keysym *key = &event->keysym;
        int km = input->getKeyboardMode();
@@ -32,48 +35,43 @@ void eSDLInputDevice::handleCode(long arg)
 
        if (km == eRCInput::kmNone) {
                code = translateKey(key->sym);
+               D_PRINT("translated code: %d", code);
        } else {
-               // ASCII keys should only generate key press events
-               if (flags == eRCKey::flagBreak)
-                       return;
-
-               eDebug("unicode=%04x scancode=%02x", m_unicode, key->scancode);
-               if (m_unicode & 0xff80) {
-                       eDebug("SDL: skipping unicode character");
-                       return;
-               }
-               code = m_unicode & ~0xff80;
-               // unicode not set...!? use key symbol
-               if (code == 0) {
-                       // keysym is ascii
-                       if (key->sym >= 128) {
-                               eDebug("SDL: cannot emulate ASCII");
-                               return;
-                       }
-                       eDebug("SDL: emulate ASCII");
+               code = m_unicode;
+               D_PRINT("native virtual code: %d / sym: %d", code, key->sym);
+               if ((code == 0) && (key->sym < 128)) {
                        code = key->sym;
+                       D_PRINT("ASCII code: %u", code);
                }
-               if (km == eRCInput::kmAscii) {
-                       // skip ESC c or ESC '[' c
-                       if (m_escape) {
-                               if (code != '[')
-                                       m_escape = false;
-                               return;
-                       }
 
-                       if (code == SDLK_ESCAPE)
-                               m_escape = true;
+               if ((km == eRCInput::kmAscii) &&
+                   ((code < SDLK_SPACE) ||
+                    (code == 0x7e) ||
+                    (code == SDLK_DELETE) ||
+                    (code > 255))) {
+                       code = translateKey(key->sym);
+               } else {
+                       // ASCII keys should only generate key press events
+                       if (flags == eRCKey::flagBreak)
+                               D_RETURN();
 
-                       if ((code < SDLK_SPACE) ||
-                           (code == 0x7e) ||   // really?
-                           (code == SDLK_DELETE))
-                               return;
+                       if (km == eRCInput::kmAscii) {
+                               // skip ESC c or ESC '[' c
+                               if (m_escape) {
+                                       if (code != '[')
+                                               m_escape = false;
+                                       D_RETURN();
+                               }
+                               if (code == SDLK_ESCAPE)
+                                       m_escape = true;
+                       }
+                       flags |= eRCKey::flagAscii;
                }
-               flags |= eRCKey::flagAscii;
        }
 
-       eDebug("SDL code=%d flags=%d", code, flags);
+       D_PRINT("code=%d (%#x) flags=%d (%#x)", code, code, flags, flags);
        input->keyPressed(eRCKey(this, code, flags));
+       D_RETURN();
 }
 
 const char *eSDLInputDevice::getDescription() const
index 522035e..0547407 100644 (file)
@@ -325,19 +325,11 @@ void eDVBDB::loadServicelist(const char *file)
 {
        eDebug("---- opening lame channel db");
        FILE *f=fopen(file, "rt");
-       if (!f && strcmp(file, eEnv::resolve("${sysconfdir}/enigma2/lamedb").c_str()) == 0)
-       {
-               struct stat s;
-               if ( !stat("lamedb", &s) )
-               {
-                       if ( !stat(eEnv::resolve("${sysconfdir}/enigma2").c_str(), &s) )
-                       {
-                               rename("lamedb", eEnv::resolve("${sysconfdir}/enigma2/lamedb").c_str());
-                               reloadServicelist();
-                       }
-               }
+       if (!f) {
+               eDebug("can't open %s: %m", file);
                return;
        }
+
        char line[256];
        int version=3;
        if ((!fgets(line, 256, f)) || sscanf(line, "eDVB services /%d/", &version) != 1)
@@ -623,24 +615,16 @@ void eDVBDB::loadBouquet(const char *path)
        p+=path;
        eDebug("loading bouquet... %s", p.c_str());
        FILE *fp=fopen(p.c_str(), "rt");
-       int entries=0;
        if (!fp)
        {
-               struct stat s;
-               if ( !stat(path, &s) )
-               {
-                       rename(path, p.c_str() );
-                       loadBouquet(path);
-                       return;
-               }
-               eDebug("failed to open.");
-               if ( strstr(path, "bouquets.tv") )
+               eDebug("can't open %s: %m", p.c_str());
+               if (!strcmp(path, "bouquets.tv"))
                {
                        eDebug("recreate bouquets.tv");
                        bouquet.m_bouquet_name="Bouquets (TV)";
                        bouquet.flushChanges();
                }
-               else if ( strstr(path, "bouquets.radio") )
+               else if (!strcmp(path, "bouquets.radio"))
                {
                        eDebug("recreate bouquets.radio");
                        bouquet.m_bouquet_name="Bouquets (Radio)";
@@ -648,6 +632,7 @@ void eDVBDB::loadBouquet(const char *path)
                }
                return;
        }
+       int entries=0;
        char line[256];
        bool read_descr=false;
        eServiceReference *e = NULL;
index 6f9a67f..0b1bdc2 100644 (file)
@@ -145,19 +145,20 @@ eDVBAdapterLinux::eDVBAdapterLinux(int nr): m_nr(nr)
 #endif
                if (stat(filename, &s))
                        break;
-               ePtr<eDVBFrontend> fe;
+               eDVBFrontend *fe;
 
                {
                        int ok = 0;
-                       fe = new eDVBFrontend(m_nr, num_fe, ok);
+                       fe = new eDVBFrontend(m_nr, num_fe, ok, true);
                        if (ok)
-                               m_frontend.push_back(fe);
+                               m_simulate_frontend.push_back(ePtr<eDVBFrontend>(fe));
                }
+
                {
                        int ok = 0;
-                       fe = new eDVBFrontend(m_nr, num_fe, ok, true);
+                       fe = new eDVBFrontend(m_nr, num_fe, ok, false, fe);
                        if (ok)
-                               m_simulate_frontend.push_back(fe);
+                               m_frontend.push_back(ePtr<eDVBFrontend>(fe));
                }
                ++num_fe;
        }
index b5de46c..5718896 100644 (file)
@@ -453,8 +453,8 @@ DEFINE_REF(eDVBFrontend);
 
 int eDVBFrontend::PriorityOrder=0;
 
-eDVBFrontend::eDVBFrontend(int adap, int fe, int &ok, bool simulate)
-       :m_simulate(simulate), m_enabled(false), m_type(-1), m_dvbid(fe), m_slotid(fe)
+eDVBFrontend::eDVBFrontend(int adap, int fe, int &ok, bool simulate, eDVBFrontend *simulate_fe)
+       :m_simulate(simulate), m_enabled(false), m_type(-1), m_simulate_fe(simulate_fe), m_dvbid(fe), m_slotid(fe)
        ,m_fd(-1), m_rotor_mode(false), m_need_rotor_workaround(false), m_can_handle_dvbs2(false)
        ,m_state(stateClosed), m_timeout(0), m_tuneTimer(0)
 #if HAVE_DVB_API_VERSION < 3
@@ -503,10 +503,10 @@ int eDVBFrontend::openFrontend()
 #else
        dvb_frontend_info fe_info;
 #endif
-       eDebugNoSimulate("opening frontend %d", m_dvbid);
-       if (m_fd < 0)
+       if (!m_simulate)
        {
-               if (!m_simulate || m_type == -1)
+               eDebug("opening frontend %d", m_dvbid);
+               if (m_fd < 0)
                {
                        m_fd = ::open(m_filename, O_RDWR|O_NONBLOCK);
                        if (m_fd < 0)
@@ -515,70 +515,69 @@ int eDVBFrontend::openFrontend()
                                return -1;
                        }
                }
-       }
-       else
-               eWarning("frontend %d already opened", m_dvbid);
-       if (m_type == -1)
-       {
-               if (::ioctl(m_fd, FE_GET_INFO, &fe_info) < 0)
+               else
+                       eWarning("frontend %d already opened", m_dvbid);
+               if (m_type == -1)
                {
-                       eWarning("ioctl FE_GET_INFO failed");
-                       ::close(m_fd);
-                       m_fd = -1;
-                       return -1;
-               }
+                       if (::ioctl(m_fd, FE_GET_INFO, &fe_info) < 0)
+                       {
+                               eWarning("ioctl FE_GET_INFO failed");
+                               ::close(m_fd);
+                               m_fd = -1;
+                               return -1;
+                       }
 
-               switch (fe_info.type)
-               {
-               case FE_QPSK:
-                       m_type = iDVBFrontend::feSatellite;
-                       break;
-               case FE_QAM:
-                       m_type = iDVBFrontend::feCable;
-                       break;
-               case FE_OFDM:
-                       m_type = iDVBFrontend::feTerrestrial;
-                       break;
-               default:
-                       eWarning("unknown frontend type.");
-                       ::close(m_fd);
-                       m_fd = -1;
-                       return -1;
+                       switch (fe_info.type)
+                       {
+                       case FE_QPSK:
+                               m_type = iDVBFrontend::feSatellite;
+                               break;
+                       case FE_QAM:
+                               m_type = iDVBFrontend::feCable;
+                               break;
+                       case FE_OFDM:
+                               m_type = iDVBFrontend::feTerrestrial;
+                               break;
+                       default:
+                               eWarning("unknown frontend type.");
+                               ::close(m_fd);
+                               m_fd = -1;
+                               return -1;
+                       }
+                       if (m_simulate_fe)
+                               m_simulate_fe->m_type = m_type;
+                       eDebugNoSimulate("detected %s frontend", "satellite\0cable\0    terrestrial"+fe_info.type*10);
                }
-               eDebugNoSimulate("detected %s frontend", "satellite\0cable\0    terrestrial"+fe_info.type*10);
-       }
 
 #if HAVE_DVB_API_VERSION < 3
-       if (m_type == iDVBFrontend::feSatellite)
-       {
-                       if (m_secfd < 0)
-                       {
-                               if (!m_simulate)
+               if (m_type == iDVBFrontend::feSatellite)
+               {
+                               if (m_secfd < 0)
                                {
-                                       m_secfd = ::open(m_sec_filename, O_RDWR);
-                                       if (m_secfd < 0)
+                                       if (!m_simulate)
                                        {
-                                               eWarning("failed! (%s) %m", m_sec_filename);
-                                               ::close(m_fd);
-                                               m_fd=-1;
-                                               return -1;
+                                               m_secfd = ::open(m_sec_filename, O_RDWR);
+                                               if (m_secfd < 0)
+                                               {
+                                                       eWarning("failed! (%s) %m", m_sec_filename);
+                                                       ::close(m_fd);
+                                                       m_fd=-1;
+                                                       return -1;
+                                               }
                                        }
                                }
-                       }
-                       else
-                               eWarning("sec %d already opened", m_dvbid);
-       }
+                               else
+                                       eWarning("sec %d already opened", m_dvbid);
+               }
 #endif
 
-       setTone(iDVBFrontend::toneOff);
-       setVoltage(iDVBFrontend::voltageOff);
-
-       if (!m_simulate)
-       {
                m_sn = eSocketNotifier::create(eApp, m_fd, eSocketNotifier::Read, false);
                CONNECT(m_sn->activated, eDVBFrontend::feEvent);
        }
 
+       setTone(iDVBFrontend::toneOff);
+       setVoltage(iDVBFrontend::voltageOff);
+
        return 0;
 }
 
index bef4a18..5887f40 100644 (file)
@@ -72,6 +72,7 @@ private:
        bool m_simulate;
        bool m_enabled;
        int m_type;
+       eDVBFrontend *m_simulate_fe; // only used to set frontend type in dvb.cpp
        int m_dvbid;
        int m_slotid;
        int m_fd;
@@ -115,7 +116,7 @@ private:
        bool setSecSequencePos(int steps);
        static int PriorityOrder;
 public:
-       eDVBFrontend(int adap, int fe, int &ok, bool simulate=false);
+       eDVBFrontend(int adap, int fe, int &ok, bool simulate=false, eDVBFrontend *simulate_fe=NULL);
        virtual ~eDVBFrontend();
 
        int readInputpower();
index a2bc886..851e9b1 100644 (file)
@@ -324,6 +324,10 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA
                        bool diseqc13V = voltage_mode == eDVBSatelliteSwitchParameters::HV_13;
                        bool is_unicable = lnb_param.SatCR_idx != -1;
 
+                       bool useGotoXX = false;
+                       int RotorCmd=-1;
+                       int send_mask = 0;
+
                        lnb_param.guard_offset = 0; //HACK
 
                        frontend.setData(eDVBFrontend::SATCR, lnb_param.SatCR_idx);
@@ -374,7 +378,7 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA
                        if(!is_unicable)
                        {
                                // calc Frequency
-                               int local= abs(sat.frequency 
+                               int local= abs(sat.frequency
                                        - lof);
                                parm.FREQUENCY = ((((local * 2) / 125) + 1) / 2) * 125;
                                frontend.setData(eDVBFrontend::FREQ_OFFSET, sat.frequency - parm.FREQUENCY);
@@ -396,7 +400,7 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA
                        }
                        else
                        {
-                               int tmp1 = abs(sat.frequency 
+                               int tmp1 = abs(sat.frequency
                                                -lof)
                                                + lnb_param.SatCRvco
                                                - 1400000
@@ -411,6 +415,7 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA
                                                eDebug("[prepare] UnicableTuningWord %#04x",lnb_param.UnicableTuningWord);
                                                eDebug("[prepare] guard_offset %d",lnb_param.guard_offset);
                                frontend.setData(eDVBFrontend::FREQ_OFFSET, (lnb_param.UnicableTuningWord & 0x3FF) *4000 + 1400000 + lof - (2 * (lnb_param.SatCRvco - (tmp1-tmp2))) );
+                               voltage = VOLTAGE(13);
                        }
 
                        if (diseqc_mode >= eDVBSatelliteDiseqcParameters::V1_0)
@@ -433,7 +438,7 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA
                                        (di_param.m_toneburst_param != eDVBSatelliteDiseqcParameters::NO);
                                bool changed_burst = send_burst && (forceChanged || toneburst != lastToneburst);
 
-                               int send_mask = 0; /*
+                               /* send_mask
                                        1 must send csw
                                        2 must send ucsw
                                        4 send toneburst first
@@ -459,7 +464,7 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA
                                        if (di_param.m_command_order==4 && send_burst)
                                                send_mask |= 8;
                                }
-                               if (changed_csw) 
+                               if (changed_csw)
                                {
                                        if ( di_param.m_use_fast
                                                && di_param.m_committed_cmd < eDVBSatelliteDiseqcParameters::SENDNO
@@ -485,388 +490,201 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA
                                                eDebugNoNewLine("0");
                                eDebug("");
 #endif
-                               if (doSetVoltageToneFrontend)
+                               if ( diseqc_mode == eDVBSatelliteDiseqcParameters::V1_2
+                                       && !sat.no_rotor_command_on_tune )
                                {
-                                       int RotorCmd=-1;
-                                       bool useGotoXX = false;
-                                       if ( diseqc_mode == eDVBSatelliteDiseqcParameters::V1_2
-                                               && !sat.no_rotor_command_on_tune )
+                                       if (sw_param.m_rotorPosNum) // we have stored rotor pos?
+                                               RotorCmd=sw_param.m_rotorPosNum;
+                                       else  // we must calc gotoxx cmd
                                        {
-                                               if (sw_param.m_rotorPosNum) // we have stored rotor pos?
-                                                       RotorCmd=sw_param.m_rotorPosNum;
-                                               else  // we must calc gotoxx cmd
-                                               {
-                                                       eDebugNoSimulate("Entry for %d,%d? not in Rotor Table found... i try gotoXX?", sat.orbital_position / 10, sat.orbital_position % 10 );
-                                                       useGotoXX = true;
-       
-                                                       double  SatLon = abs(sat.orbital_position)/10.00,
-                                                                       SiteLat = rotor_param.m_gotoxx_parameters.m_latitude,
-                                                                       SiteLon = rotor_param.m_gotoxx_parameters.m_longitude;
-       
-                                                       if ( rotor_param.m_gotoxx_parameters.m_la_direction == eDVBSatelliteRotorParameters::SOUTH )
-                                                               SiteLat = -SiteLat;
-       
-                                                       if ( rotor_param.m_gotoxx_parameters.m_lo_direction == eDVBSatelliteRotorParameters::WEST )
-                                                               SiteLon = 360 - SiteLon;
-       
-                                                       eDebugNoSimulate("siteLatitude = %lf, siteLongitude = %lf, %lf degrees", SiteLat, SiteLon, SatLon );
-                                                       double satHourAngle =
-                                                               calcSatHourangle( SatLon, SiteLat, SiteLon );
-                                                       eDebugNoSimulate("PolarmountHourAngle=%lf", satHourAngle );
-       
-                                                       static int gotoXTable[10] =
-                                                               { 0x00, 0x02, 0x03, 0x05, 0x06, 0x08, 0x0A, 0x0B, 0x0D, 0x0E };
-       
-                                                       if (SiteLat >= 0) // Northern Hemisphere
-                                                       {
-                                                               int tmp=(int)round( fabs( 180 - satHourAngle ) * 10.0 );
-                                                               RotorCmd = (tmp/10)*0x10 + gotoXTable[ tmp % 10 ];
-       
-                                                               if (satHourAngle < 180) // the east
-                                                                       RotorCmd |= 0xE000;
-                                                               else                                    // west
-                                                                       RotorCmd |= 0xD000;
-                                                       }
-                                                       else // Southern Hemisphere
-                                                       {
-                                                               if (satHourAngle < 180) // the east
-                                                               {
-                                                                       int tmp=(int)round( fabs( satHourAngle ) * 10.0 );
-                                                                       RotorCmd = (tmp/10)*0x10 + gotoXTable[ tmp % 10 ];
-                                                                       RotorCmd |= 0xD000;
-                                                               }
-                                                               else // west
-                                                               {
-                                                                       int tmp=(int)round( fabs( 360 - satHourAngle ) * 10.0 );
-                                                                       RotorCmd = (tmp/10)*0x10 + gotoXTable[ tmp % 10 ];
-                                                                       RotorCmd |= 0xE000;
-                                                               }
-                                                       }
-                                                       eDebugNoSimulate("RotorCmd = %04x", RotorCmd);
-                                               }
-                                       }
+                                               eDebugNoSimulate("Entry for %d,%d? not in Rotor Table found... i try gotoXX?", sat.orbital_position / 10, sat.orbital_position % 10 );
+                                               useGotoXX = true;
 
-                                       if ( send_mask )
-                                       {
-                                               int diseqc_repeats = diseqc_mode > eDVBSatelliteDiseqcParameters::V1_0 ? di_param.m_repeats : 0;
-                                               int vlt = iDVBFrontend::voltageOff;
-                                               eSecCommand::pair compare;
-                                               compare.steps = +3;
-                                               compare.tone = iDVBFrontend::toneOff;
-                                               sec_sequence.push_back( eSecCommand(eSecCommand::IF_TONE_GOTO, compare) );
-                                               sec_sequence.push_back( eSecCommand(eSecCommand::SET_TONE, iDVBFrontend::toneOff) );
-                                               sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_CONT_TONE_DISABLE_BEFORE_DISEQC]) );
-
-                                               if (diseqc13V)
-                                                       vlt = iDVBFrontend::voltage13;
-                                               else if ( RotorCmd != -1 && RotorCmd != lastRotorCmd )
-                                               {
-                                                       if (rotor_param.m_inputpower_parameters.m_use)
-                                                               vlt = VOLTAGE(18);  // in input power mode set 18V for measure input power
-                                                       else
-                                                               vlt = VOLTAGE(13);  // in normal mode start turning with 13V
-                                               }
-                                               else
-                                                       vlt = voltage;
+                                               double  SatLon = abs(sat.orbital_position)/10.00,
+                                                               SiteLat = rotor_param.m_gotoxx_parameters.m_latitude,
+                                                               SiteLon = rotor_param.m_gotoxx_parameters.m_longitude;
 
-                                               // check if voltage is already correct..
-                                               compare.voltage = vlt;
-                                               compare.steps = +7;
-                                               sec_sequence.push_back( eSecCommand(eSecCommand::IF_VOLTAGE_GOTO, compare) );
+                                               if ( rotor_param.m_gotoxx_parameters.m_la_direction == eDVBSatelliteRotorParameters::SOUTH )
+                                                       SiteLat = -SiteLat;
 
-                                               // check if voltage is disabled
-                                               compare.voltage = iDVBFrontend::voltageOff;
-                                               compare.steps = +4;
-                                               sec_sequence.push_back( eSecCommand(eSecCommand::IF_VOLTAGE_GOTO, compare) );
+                                               if ( rotor_param.m_gotoxx_parameters.m_lo_direction == eDVBSatelliteRotorParameters::WEST )
+                                                       SiteLon = 360 - SiteLon;
 
-                                               // voltage is changed... use DELAY_AFTER_VOLTAGE_CHANGE_BEFORE_SWITCH_CMDS
-                                               sec_sequence.push_back( eSecCommand(eSecCommand::SET_VOLTAGE, vlt) );
-                                               sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_VOLTAGE_CHANGE_BEFORE_SWITCH_CMDS]) );
-                                               sec_sequence.push_back( eSecCommand(eSecCommand::GOTO, +3) );
+                                               eDebugNoSimulate("siteLatitude = %lf, siteLongitude = %lf, %lf degrees", SiteLat, SiteLon, SatLon );
+                                               double satHourAngle =
+                                                       calcSatHourangle( SatLon, SiteLat, SiteLon );
+                                               eDebugNoSimulate("PolarmountHourAngle=%lf", satHourAngle );
 
-                                               // voltage was disabled.. use DELAY_AFTER_ENABLE_VOLTAGE_BEFORE_SWITCH_CMDS
-                                               sec_sequence.push_back( eSecCommand(eSecCommand::SET_VOLTAGE, vlt) );
-                                               sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_ENABLE_VOLTAGE_BEFORE_SWITCH_CMDS]) );
+                                               static int gotoXTable[10] =
+                                                       { 0x00, 0x02, 0x03, 0x05, 0x06, 0x08, 0x0A, 0x0B, 0x0D, 0x0E };
 
-                                               sec_sequence.push_back( eSecCommand(eSecCommand::INVALIDATE_CURRENT_SWITCHPARMS) );
-                                               if (needDiSEqCReset)
+                                               if (SiteLat >= 0) // Northern Hemisphere
                                                {
-                                                       eDVBDiseqcCommand diseqc;
-                                                       memset(diseqc.data, 0, MAX_DISEQC_LENGTH);
-                                                       diseqc.len = 3;
-                                                       diseqc.data[0] = 0xE0;
-                                                       diseqc.data[1] = 0;
-                                                       diseqc.data[2] = 0;
-                                                       // diseqc reset
-                                                       sec_sequence.push_back( eSecCommand(eSecCommand::SEND_DISEQC, diseqc) );
-                                                       sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_DISEQC_RESET_CMD]) );
-                                                       diseqc.data[2] = 3;
-                                                       // diseqc peripherial powersupply on
-                                                       sec_sequence.push_back( eSecCommand(eSecCommand::SEND_DISEQC, diseqc) );
-                                                       sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_DISEQC_PERIPHERIAL_POWERON_CMD]) );
-                                               }
+                                                       int tmp=(int)round( fabs( 180 - satHourAngle ) * 10.0 );
+                                                       RotorCmd = (tmp/10)*0x10 + gotoXTable[ tmp % 10 ];
 
-                                               for (int seq_repeat = 0; seq_repeat < (di_param.m_seq_repeat?2:1); ++seq_repeat)
+                                                       if (satHourAngle < 180) // the east
+                                                               RotorCmd |= 0xE000;
+                                                       else                                    // west
+                                                               RotorCmd |= 0xD000;
+                                               }
+                                               else // Southern Hemisphere
                                                {
-                                                       if ( send_mask & 4 )
-                                                       {
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SEND_TONEBURST, di_param.m_toneburst_param) );
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_TONEBURST]) );
-                                                       }
-
-                                                       int loops=0;
-
-                                                       if ( send_mask & 1 )
-                                                               ++loops;
-                                                       if ( send_mask & 2 )
-                                                               ++loops;
-
-                                                       loops <<= diseqc_repeats;
-
-                                                       for ( int i = 0; i < loops;)  // fill commands...
+                                                       if (satHourAngle < 180) // the east
                                                        {
-                                                               eDVBDiseqcCommand diseqc;
-                                                               memset(diseqc.data, 0, MAX_DISEQC_LENGTH);
-                                                               diseqc.len = 4;
-                                                               diseqc.data[0] = i ? 0xE1 : 0xE0;
-                                                               diseqc.data[1] = 0x10;
-                                                               if ( (send_mask & 2) && (di_param.m_command_order & 4) )
-                                                               {
-                                                                       diseqc.data[2] = 0x39;
-                                                                       diseqc.data[3] = ucsw;
-                                                               }
-                                                               else if ( send_mask & 1 )
-                                                               {
-                                                                       diseqc.data[2] = 0x38;
-                                                                       diseqc.data[3] = csw;
-                                                               }
-                                                               else  // no committed command confed.. so send uncommitted..
-                                                               {
-                                                                       diseqc.data[2] = 0x39;
-                                                                       diseqc.data[3] = ucsw;
-                                                               }
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SEND_DISEQC, diseqc) );
-
-                                                               i++;
-                                                               if ( i < loops )
-                                                               {
-                                                                       int cmd=0;
-                                                                       if (diseqc.data[2] == 0x38 && (send_mask & 2))
-                                                                               cmd=0x39;
-                                                                       else if (diseqc.data[2] == 0x39 && (send_mask & 1))
-                                                                               cmd=0x38;
-                                                                       int tmp = m_params[DELAY_BETWEEN_DISEQC_REPEATS];
-                                                                       if (cmd)
-                                                                       {
-                                                                               int delay = diseqc_repeats ? (tmp - 54) / 2 : tmp;  // standard says 100msek between two repeated commands
-                                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, delay) );
-                                                                               diseqc.data[2]=cmd;
-                                                                               diseqc.data[3]=(cmd==0x38) ? csw : ucsw;
-                                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SEND_DISEQC, diseqc) );
-                                                                               ++i;
-                                                                               if ( i < loops )
-                                                                                       sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, delay ) );
-                                                                               else
-                                                                                       sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_LAST_DISEQC_CMD]) );
-                                                                       }
-                                                                       else  // delay 120msek when no command is in repeat gap
-                                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, tmp) );
-                                                               }
-                                                               else
-                                                                       sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_LAST_DISEQC_CMD]) );
+                                                               int tmp=(int)round( fabs( satHourAngle ) * 10.0 );
+                                                               RotorCmd = (tmp/10)*0x10 + gotoXTable[ tmp % 10 ];
+                                                               RotorCmd |= 0xD000;
                                                        }
-
-                                                       if ( send_mask & 8 )  // toneburst at end of sequence
+                                                       else // west
                                                        {
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SEND_TONEBURST, di_param.m_toneburst_param) );
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_TONEBURST]) );
+                                                               int tmp=(int)round( fabs( 360 - satHourAngle ) * 10.0 );
+                                                               RotorCmd = (tmp/10)*0x10 + gotoXTable[ tmp % 10 ];
+                                                               RotorCmd |= 0xE000;
                                                        }
-
-                                                       if (di_param.m_seq_repeat && seq_repeat == 0)
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_BEFORE_SEQUENCE_REPEAT]) );
                                                }
+                                               eDebugNoSimulate("RotorCmd = %04x", RotorCmd);
                                        }
+                               }
 
-                                       eDebugNoSimulate("RotorCmd %02x, lastRotorCmd %02lx", RotorCmd, lastRotorCmd);
-                                       if ( RotorCmd != -1 && RotorCmd != lastRotorCmd )
+                               if ( send_mask )
+                               {
+                                       int diseqc_repeats = diseqc_mode > eDVBSatelliteDiseqcParameters::V1_0 ? di_param.m_repeats : 0;
+                                       int vlt = iDVBFrontend::voltageOff;
+                                       eSecCommand::pair compare;
+                                       compare.steps = +3;
+                                       compare.tone = iDVBFrontend::toneOff;
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::IF_TONE_GOTO, compare) );
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::SET_TONE, iDVBFrontend::toneOff) );
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_CONT_TONE_DISABLE_BEFORE_DISEQC]) );
+
+                                       if (diseqc13V)
+                                               vlt = iDVBFrontend::voltage13;
+                                       else if ( RotorCmd != -1 && RotorCmd != lastRotorCmd )
                                        {
-                                               eSecCommand::pair compare;
-                                               if (!send_mask && !is_unicable)
-                                               {
-                                                       compare.steps = +3;
-                                                       compare.tone = iDVBFrontend::toneOff;
-                                                       sec_sequence.push_back( eSecCommand(eSecCommand::IF_TONE_GOTO, compare) );
-                                                       sec_sequence.push_back( eSecCommand(eSecCommand::SET_TONE, iDVBFrontend::toneOff) );
-                                                       sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_CONT_TONE_DISABLE_BEFORE_DISEQC]) );
-
-                                                       compare.voltage = iDVBFrontend::voltageOff;
-                                                       compare.steps = +4;
-                                                       // the next is a check if voltage is switched off.. then we first set a voltage :)
-                                                       // else we set voltage after all diseqc stuff..
-                                                       sec_sequence.push_back( eSecCommand(eSecCommand::IF_NOT_VOLTAGE_GOTO, compare) );
-
-                                                       if (rotor_param.m_inputpower_parameters.m_use)
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SET_VOLTAGE, VOLTAGE(18)) ); // set 18V for measure input power
-                                                       else
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SET_VOLTAGE, VOLTAGE(13)) ); // in normal mode start turning with 13V
-
-                                                       sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_ENABLE_VOLTAGE_BEFORE_MOTOR_CMD]) ); // wait 750ms when voltage was disabled
-                                                       sec_sequence.push_back( eSecCommand(eSecCommand::GOTO, +9) );  // no need to send stop rotor cmd and recheck voltage
-                                               }
+                                               if (rotor_param.m_inputpower_parameters.m_use && !is_unicable)
+                                                       vlt = VOLTAGE(18);  // in input power mode set 18V for measure input power
                                                else
-                                                       sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_BETWEEN_SWITCH_AND_MOTOR_CMD]) ); // wait 700ms when diseqc changed
+                                                       vlt = VOLTAGE(13);  // in normal mode start turning with 13V
+                                       }
+                                       else
+                                               vlt = voltage;
+
+                                       // check if voltage is already correct..
+                                       compare.voltage = vlt;
+                                       compare.steps = +7;
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::IF_VOLTAGE_GOTO, compare) );
+
+                                       // check if voltage is disabled
+                                       compare.voltage = iDVBFrontend::voltageOff;
+                                       compare.steps = +4;
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::IF_VOLTAGE_GOTO, compare) );
 
+                                       // voltage is changed... use DELAY_AFTER_VOLTAGE_CHANGE_BEFORE_SWITCH_CMDS
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::SET_VOLTAGE, vlt) );
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_VOLTAGE_CHANGE_BEFORE_SWITCH_CMDS]) );
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::GOTO, +3) );
+
+                                       // voltage was disabled.. use DELAY_AFTER_ENABLE_VOLTAGE_BEFORE_SWITCH_CMDS
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::SET_VOLTAGE, vlt) );
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_ENABLE_VOLTAGE_BEFORE_SWITCH_CMDS]) );
+
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::INVALIDATE_CURRENT_SWITCHPARMS) );
+                                       if (needDiSEqCReset)
+                                       {
                                                eDVBDiseqcCommand diseqc;
                                                memset(diseqc.data, 0, MAX_DISEQC_LENGTH);
                                                diseqc.len = 3;
                                                diseqc.data[0] = 0xE0;
-                                               diseqc.data[1] = 0x31;  // positioner
-                                               diseqc.data[2] = 0x60;  // stop
-                                               sec_sequence.push_back( eSecCommand(eSecCommand::IF_ROTORPOS_VALID_GOTO, +5) );
+                                               diseqc.data[1] = 0;
+                                               diseqc.data[2] = 0;
+                                               // diseqc reset
                                                sec_sequence.push_back( eSecCommand(eSecCommand::SEND_DISEQC, diseqc) );
-                                               sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, 50) );
+                                               sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_DISEQC_RESET_CMD]) );
+                                               diseqc.data[2] = 3;
+                                               // diseqc peripherial powersupply on
                                                sec_sequence.push_back( eSecCommand(eSecCommand::SEND_DISEQC, diseqc) );
-                                               // wait 150msec after send rotor stop cmd
-                                               sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_MOTOR_STOP_CMD]) );
+                                               sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_DISEQC_PERIPHERIAL_POWERON_CMD]) );
+                                       }
 
-                                               diseqc.data[0] = 0xE0;
-                                               diseqc.data[1] = 0x31;          // positioner
-                                               if ( useGotoXX )
+                                       for (int seq_repeat = 0; seq_repeat < (di_param.m_seq_repeat?2:1); ++seq_repeat)
+                                       {
+                                               if ( send_mask & 4 )
                                                {
-                                                       diseqc.len = 5;
-                                                       diseqc.data[2] = 0x6E;  // drive to angular position
-                                                       diseqc.data[3] = ((RotorCmd & 0xFF00) / 0x100);
-                                                       diseqc.data[4] = RotorCmd & 0xFF;
+                                                       sec_sequence.push_back( eSecCommand(eSecCommand::SEND_TONEBURST, di_param.m_toneburst_param) );
+                                                       sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_TONEBURST]) );
                                                }
-                                               else
+
+                                               int loops=0;
+
+                                               if ( send_mask & 1 )
+                                                       ++loops;
+                                               if ( send_mask & 2 )
+                                                       ++loops;
+
+                                               loops <<= diseqc_repeats;
+
+                                               for ( int i = 0; i < loops;)  // fill commands...
                                                {
+                                                       eDVBDiseqcCommand diseqc;
+                                                       memset(diseqc.data, 0, MAX_DISEQC_LENGTH);
                                                        diseqc.len = 4;
-                                                       diseqc.data[2] = 0x6B;  // goto stored sat position
-                                                       diseqc.data[3] = RotorCmd;
-                                                       diseqc.data[4] = 0x00;
-                                               }
-//                                             if(!is_unicable)
-                                               {
-                                                       int mrt = m_params[MOTOR_RUNNING_TIMEOUT]; // in seconds!
-                                                       if ( rotor_param.m_inputpower_parameters.m_use && !is_unicable)
-                                                       { // use measure rotor input power to detect rotor state
-                                                               bool turn_fast = need_turn_fast(rotor_param.m_inputpower_parameters.m_turning_speed);
-                                                               eSecCommand::rotor cmd;
-                                                               eSecCommand::pair compare;
-                                                               if (turn_fast)
-                                                                       compare.voltage = VOLTAGE(18);
-                                                               else
-                                                                       compare.voltage = VOLTAGE(13);
-                                                               compare.steps = +3;
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::IF_VOLTAGE_GOTO, compare) );
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SET_VOLTAGE, compare.voltage) );
-       // measure idle power values
-                                                               compare.steps = -2;
-                                                               if (turn_fast) {
-                                                                       sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_VOLTAGE_CHANGE_BEFORE_MEASURE_IDLE_INPUTPOWER]) );  // wait 150msec after voltage change
-                                                                       sec_sequence.push_back( eSecCommand(eSecCommand::MEASURE_IDLE_INPUTPOWER, 1) );
-                                                                       compare.val = 1;
-                                                                       sec_sequence.push_back( eSecCommand(eSecCommand::IF_MEASURE_IDLE_WAS_NOT_OK_GOTO, compare) );
-                                                                       sec_sequence.push_back( eSecCommand(eSecCommand::SET_VOLTAGE, VOLTAGE(13)) );
-                                                               }
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_VOLTAGE_CHANGE_BEFORE_MEASURE_IDLE_INPUTPOWER]) );  // wait 150msec before measure
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::MEASURE_IDLE_INPUTPOWER, 0) );
-                                                               compare.val = 0;
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::IF_MEASURE_IDLE_WAS_NOT_OK_GOTO, compare) );
-       ////////////////////////////
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SET_ROTOR_DISEQC_RETRYS, m_params[MOTOR_COMMAND_RETRIES]) );  // 2 retries
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::INVALIDATE_CURRENT_ROTORPARMS) );
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SEND_DISEQC, diseqc) );
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SET_TIMEOUT, 40) );  // 2 seconds rotor start timout
-       // rotor start loop
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, 50) );  // 50msec delay
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::MEASURE_RUNNING_INPUTPOWER) );
-                                                               cmd.direction=1;  // check for running rotor
-                                                               cmd.deltaA=rotor_param.m_inputpower_parameters.m_delta;
-                                                               cmd.steps=+5;
-                                                               cmd.okcount=0;
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::IF_INPUTPOWER_DELTA_GOTO, cmd ) );  // check if rotor has started
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::IF_TIMEOUT_GOTO, +2 ) );  // timeout .. we assume now the rotor is already at the correct position
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::GOTO, -4) );  // goto loop start
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::IF_NO_MORE_ROTOR_DISEQC_RETRYS_GOTO, turn_fast ? 10 : 9 ) );  // timeout .. we assume now the rotor is already at the correct position 
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::GOTO, -8) );  // goto loop start
-       ////////////////////
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SET_ROTOR_MOVING) );
-                                                               if (turn_fast)
-                                                                       sec_sequence.push_back( eSecCommand(eSecCommand::SET_VOLTAGE, VOLTAGE(18)) );
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SET_TIMEOUT, mrt*20) );  // mrt is in seconds... our SLEEP time is 50ms.. so * 20
-       // rotor running loop
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, 50) );  // wait 50msec
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::MEASURE_RUNNING_INPUTPOWER) );
-                                                               cmd.direction=0;  // check for stopped rotor
-                                                               cmd.steps=+3;
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::IF_INPUTPOWER_DELTA_GOTO, cmd ) );
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::IF_TIMEOUT_GOTO, +2 ) );  // timeout ? this should never happen
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::GOTO, -4) );  // running loop start
-       /////////////////////
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::UPDATE_CURRENT_ROTORPARAMS) );
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SET_ROTOR_STOPPED) );
+                                                       diseqc.data[0] = i ? 0xE1 : 0xE0;
+                                                       diseqc.data[1] = 0x10;
+                                                       if ( (send_mask & 2) && (di_param.m_command_order & 4) )
+                                                       {
+                                                               diseqc.data[2] = 0x39;
+                                                               diseqc.data[3] = ucsw;
                                                        }
-                                                       else
-                                                       {  // use normal turning mode
-                                                               if (curRotorPos != -1)
-                                                               {               
-                                                                       mrt = abs(curRotorPos - sat.orbital_position);
-                                                                       if (mrt > 1800)
-                                                                               mrt = 3600 - mrt;
-                                                                       if (mrt % 10)
-                                                                               mrt += 10; // round a little bit
-                                                                       mrt *= 2000;  // (we assume a very slow rotor with just 0.5 degree per second here)
-                                                                       mrt /= 10000;
-                                                                       mrt += 3; // a little bit overhead
+                                                       else if ( send_mask & 1 )
+                                                       {
+                                                               diseqc.data[2] = 0x38;
+                                                               diseqc.data[3] = csw;
+                                                       }
+                                                       else  // no committed command confed.. so send uncommitted..
+                                                       {
+                                                               diseqc.data[2] = 0x39;
+                                                               diseqc.data[3] = ucsw;
+                                                       }
+                                                       sec_sequence.push_back( eSecCommand(eSecCommand::SEND_DISEQC, diseqc) );
+
+                                                       i++;
+                                                       if ( i < loops )
+                                                       {
+                                                               int cmd=0;
+                                                               if (diseqc.data[2] == 0x38 && (send_mask & 2))
+                                                                       cmd=0x39;
+                                                               else if (diseqc.data[2] == 0x39 && (send_mask & 1))
+                                                                       cmd=0x38;
+                                                               int tmp = m_params[DELAY_BETWEEN_DISEQC_REPEATS];
+                                                               if (cmd)
+                                                               {
+                                                                       int delay = diseqc_repeats ? (tmp - 54) / 2 : tmp;  // standard says 100msek between two repeated commands
+                                                                       sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, delay) );
+                                                                       diseqc.data[2]=cmd;
+                                                                       diseqc.data[3]=(cmd==0x38) ? csw : ucsw;
+                                                                       sec_sequence.push_back( eSecCommand(eSecCommand::SEND_DISEQC, diseqc) );
+                                                                       ++i;
+                                                                       if ( i < loops )
+                                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, delay ) );
+                                                                       else
+                                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_LAST_DISEQC_CMD]) );
                                                                }
-                                                               doSetVoltageToneFrontend=false;
-                                                               doSetFrontend=false;
-                                                               eSecCommand::rotor cmd;
-                                                               eSecCommand::pair compare;
-                                                               compare.voltage = VOLTAGE(13);
-                                                               compare.steps = +3;
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::IF_VOLTAGE_GOTO, compare) );
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SET_VOLTAGE, compare.voltage) );
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_VOLTAGE_CHANGE_BEFORE_MOTOR_CMD]) );  // wait 150msec after voltage change
-       
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::INVALIDATE_CURRENT_ROTORPARMS) );
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SET_ROTOR_MOVING) );
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SEND_DISEQC, diseqc) );
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, 1000) ); // sleep one second before change voltage or tone
-
-                                                               compare.voltage = voltage;
-                                                               compare.steps = +3;
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::IF_VOLTAGE_GOTO, compare) ); // correct final voltage?
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, 2000) );  // wait 2 second before set high voltage
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SET_VOLTAGE, voltage) );
-
-                                                               compare.tone = tone;
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::IF_TONE_GOTO, compare) );
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SET_TONE, tone) );
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_FINAL_CONT_TONE_CHANGE]) );
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SET_FRONTEND, 0) );
-       
-                                                               cmd.direction=1;  // check for running rotor
-                                                               cmd.deltaA=0;
-                                                               cmd.steps = +3;
-                                                               cmd.okcount=0;
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SET_TIMEOUT, mrt*4) );  // mrt is in seconds... our SLEEP time is 250ms.. so * 4
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, 250) );  // 250msec delay
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::IF_TUNER_LOCKED_GOTO, cmd ) );
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::IF_TIMEOUT_GOTO, +5 ) );
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::GOTO, -3) );  // goto loop start
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::UPDATE_CURRENT_ROTORPARAMS) );
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SET_ROTOR_STOPPED) );
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::GOTO, +4) );
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::START_TUNE_TIMEOUT, tunetimeout) );
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SET_FRONTEND, 1) );
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::GOTO, -5) );
+                                                               else  // delay 120msek when no command is in repeat gap
+                                                                       sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, tmp) );
                                                        }
-                                                       eDebug("set rotor timeout to %d seconds", mrt);
-                                                       sec_fe->setData(eDVBFrontend::NEW_ROTOR_CMD, RotorCmd);
-                                                       sec_fe->setData(eDVBFrontend::NEW_ROTOR_POS, sat.orbital_position);
+                                                       else
+                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_LAST_DISEQC_CMD]) );
                                                }
+
+                                               if ( send_mask & 8 )  // toneburst at end of sequence
+                                               {
+                                                       sec_sequence.push_back( eSecCommand(eSecCommand::SEND_TONEBURST, di_param.m_toneburst_param) );
+                                                       sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_TONEBURST]) );
+                                               }
+
+                                               if (di_param.m_seq_repeat && seq_repeat == 0)
+                                                       sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_BEFORE_SEQUENCE_REPEAT]) );
                                        }
                                }
                        }
@@ -880,22 +698,6 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA
                        sec_fe->setData(eDVBFrontend::NEW_UCSW, ucsw);
                        sec_fe->setData(eDVBFrontend::NEW_TONEBURST, di_param.m_toneburst_param);
 
-                       if (doSetVoltageToneFrontend && !is_unicable)
-                       {
-                               eSecCommand::pair compare;
-                               compare.voltage = voltage;
-                               compare.steps = +3;
-                               sec_sequence.push_back( eSecCommand(eSecCommand::IF_VOLTAGE_GOTO, compare) ); // voltage already correct ?
-                               sec_sequence.push_back( eSecCommand(eSecCommand::SET_VOLTAGE, voltage) );
-                               sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_FINAL_VOLTAGE_CHANGE]) );
-                               compare.tone = tone;
-                               sec_sequence.push_back( eSecCommand(eSecCommand::IF_TONE_GOTO, compare) );
-                               sec_sequence.push_back( eSecCommand(eSecCommand::SET_TONE, tone) );
-                               sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_FINAL_CONT_TONE_CHANGE]) );
-                       }
-
-                       sec_sequence.push_back( eSecCommand(eSecCommand::UPDATE_CURRENT_SWITCHPARMS) );
-
                        if(is_unicable)
                        {
                                // check if voltage is disabled
@@ -903,10 +705,10 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA
                                compare.steps = +3;
                                compare.voltage = iDVBFrontend::voltageOff;
                                sec_sequence.push_back( eSecCommand(eSecCommand::IF_NOT_VOLTAGE_GOTO, compare) );
-                               sec_sequence.push_back( eSecCommand(eSecCommand::SET_VOLTAGE, iDVBFrontend::voltage13) );
+                               sec_sequence.push_back( eSecCommand(eSecCommand::SET_VOLTAGE, VOLTAGE(13)) );
                                sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_ENABLE_VOLTAGE_BEFORE_SWITCH_CMDS] ) );
 
-                               sec_sequence.push_back( eSecCommand(eSecCommand::SET_VOLTAGE, iDVBFrontend::voltage18_5) );
+                               sec_sequence.push_back( eSecCommand(eSecCommand::SET_VOLTAGE, VOLTAGE(18)) );
                                sec_sequence.push_back( eSecCommand(eSecCommand::SET_TONE, iDVBFrontend::toneOff) );
                                sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_VOLTAGE_CHANGE_BEFORE_SWITCH_CMDS]) );  // wait 20 ms after voltage change
        
@@ -921,9 +723,209 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA
 
                                sec_sequence.push_back( eSecCommand(eSecCommand::SEND_DISEQC, diseqc) );
                                sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_LAST_DISEQC_CMD]) );
-                               sec_sequence.push_back( eSecCommand(eSecCommand::SET_VOLTAGE, iDVBFrontend::voltage13) );
+                               sec_sequence.push_back( eSecCommand(eSecCommand::SET_VOLTAGE, VOLTAGE(13)) );
+                               if ( RotorCmd != -1 && RotorCmd != lastRotorCmd && !rotor_param.m_inputpower_parameters.m_use)
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_VOLTAGE_CHANGE_BEFORE_MOTOR_CMD]) );  // wait 150msec after voltage change
+                       }
+
+                       eDebugNoSimulate("RotorCmd %02x, lastRotorCmd %02lx", RotorCmd, lastRotorCmd);
+                       if ( RotorCmd != -1 && RotorCmd != lastRotorCmd )
+                       {
+                               int mrt = m_params[MOTOR_RUNNING_TIMEOUT]; // in seconds!
+                               eSecCommand::pair compare;
+                               if (!send_mask && !is_unicable)
+                               {
+                                       compare.steps = +3;
+                                       compare.tone = iDVBFrontend::toneOff;
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::IF_TONE_GOTO, compare) );
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::SET_TONE, iDVBFrontend::toneOff) );
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_CONT_TONE_DISABLE_BEFORE_DISEQC]) );
+
+                                       compare.voltage = iDVBFrontend::voltageOff;
+                                       compare.steps = +4;
+                                       // the next is a check if voltage is switched off.. then we first set a voltage :)
+                                       // else we set voltage after all diseqc stuff..
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::IF_NOT_VOLTAGE_GOTO, compare) );
+
+                                       if (rotor_param.m_inputpower_parameters.m_use)
+                                               sec_sequence.push_back( eSecCommand(eSecCommand::SET_VOLTAGE, VOLTAGE(18)) ); // set 18V for measure input power
+                                       else
+                                               sec_sequence.push_back( eSecCommand(eSecCommand::SET_VOLTAGE, VOLTAGE(13)) ); // in normal mode start turning with 13V
+
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_ENABLE_VOLTAGE_BEFORE_MOTOR_CMD]) ); // wait 750ms when voltage was disabled
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::GOTO, +9) );  // no need to send stop rotor cmd and recheck voltage
+                               }
+                               else
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_BETWEEN_SWITCH_AND_MOTOR_CMD]) ); // wait 700ms when diseqc changed
+
+                               eDVBDiseqcCommand diseqc;
+                               memset(diseqc.data, 0, MAX_DISEQC_LENGTH);
+                               diseqc.len = 3;
+                               diseqc.data[0] = 0xE0;
+                               diseqc.data[1] = 0x31;  // positioner
+                               diseqc.data[2] = 0x60;  // stop
+                               sec_sequence.push_back( eSecCommand(eSecCommand::IF_ROTORPOS_VALID_GOTO, +5) );
+                               sec_sequence.push_back( eSecCommand(eSecCommand::SEND_DISEQC, diseqc) );
+                               sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, 50) );
+                               sec_sequence.push_back( eSecCommand(eSecCommand::SEND_DISEQC, diseqc) );
+                               // wait 150msec after send rotor stop cmd
+                               sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_MOTOR_STOP_CMD]) );
+
+                               diseqc.data[0] = 0xE0;
+                               diseqc.data[1] = 0x31;          // positioner
+                               if ( useGotoXX )
+                               {
+                                       diseqc.len = 5;
+                                       diseqc.data[2] = 0x6E;  // drive to angular position
+                                       diseqc.data[3] = ((RotorCmd & 0xFF00) / 0x100);
+                                       diseqc.data[4] = RotorCmd & 0xFF;
+                               }
+                               else
+                               {
+                                       diseqc.len = 4;
+                                       diseqc.data[2] = 0x6B;  // goto stored sat position
+                                       diseqc.data[3] = RotorCmd;
+                                       diseqc.data[4] = 0x00;
+                               }
+
+                       // use measure rotor input power to detect motor state
+                               if ( rotor_param.m_inputpower_parameters.m_use)
+                               {
+                                       bool turn_fast = need_turn_fast(rotor_param.m_inputpower_parameters.m_turning_speed) && !is_unicable;
+                                       eSecCommand::rotor cmd;
+                                       eSecCommand::pair compare;
+                                       if (turn_fast)
+                                               compare.voltage = VOLTAGE(18);
+                                       else
+                                               compare.voltage = VOLTAGE(13);
+                                       compare.steps = +3;
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::IF_VOLTAGE_GOTO, compare) );
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::SET_VOLTAGE, compare.voltage) );
+                       // measure idle power values
+                                       compare.steps = -2;
+                                       if (turn_fast) {
+                                               sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_VOLTAGE_CHANGE_BEFORE_MEASURE_IDLE_INPUTPOWER]) );  // wait 150msec after voltage change
+                                               sec_sequence.push_back( eSecCommand(eSecCommand::MEASURE_IDLE_INPUTPOWER, 1) );
+                                               compare.val = 1;
+                                               sec_sequence.push_back( eSecCommand(eSecCommand::IF_MEASURE_IDLE_WAS_NOT_OK_GOTO, compare) );
+                                               sec_sequence.push_back( eSecCommand(eSecCommand::SET_VOLTAGE, VOLTAGE(13)) );
+                                       }
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_VOLTAGE_CHANGE_BEFORE_MEASURE_IDLE_INPUTPOWER]) );  // wait 150msec before measure
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::MEASURE_IDLE_INPUTPOWER, 0) );
+                                       compare.val = 0;
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::IF_MEASURE_IDLE_WAS_NOT_OK_GOTO, compare) );
+                       ////////////////////////////
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::SET_ROTOR_DISEQC_RETRYS, m_params[MOTOR_COMMAND_RETRIES]) );  // 2 retries
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::INVALIDATE_CURRENT_ROTORPARMS) );
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::SEND_DISEQC, diseqc) );
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::SET_TIMEOUT, 40) );  // 2 seconds rotor start timout
+                       // rotor start loop
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, 50) );  // 50msec delay
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::MEASURE_RUNNING_INPUTPOWER) );
+                                       cmd.direction=1;  // check for running rotor
+                                       cmd.deltaA=rotor_param.m_inputpower_parameters.m_delta;
+                                       cmd.steps=+5;
+                                       cmd.okcount=0;
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::IF_INPUTPOWER_DELTA_GOTO, cmd ) );  // check if rotor has started
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::IF_TIMEOUT_GOTO, +2 ) );  // timeout .. we assume now the rotor is already at the correct position
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::GOTO, -4) );  // goto loop start
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::IF_NO_MORE_ROTOR_DISEQC_RETRYS_GOTO, turn_fast ? 10 : 9 ) );  // timeout .. we assume now the rotor is already at the correct position 
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::GOTO, -8) );  // goto loop start
+                       ////////////////////
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::SET_ROTOR_MOVING) );
+                                       if (turn_fast)
+                                               sec_sequence.push_back( eSecCommand(eSecCommand::SET_VOLTAGE, VOLTAGE(18)) );
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::SET_TIMEOUT, mrt*20) );  // mrt is in seconds... our SLEEP time is 50ms.. so * 20
+                       // rotor running loop
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, 50) );  // wait 50msec
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::MEASURE_RUNNING_INPUTPOWER) );
+                                       cmd.direction=0;  // check for stopped rotor
+                                       cmd.steps=+3;
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::IF_INPUTPOWER_DELTA_GOTO, cmd ) );
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::IF_TIMEOUT_GOTO, +2 ) );  // timeout ? this should never happen
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::GOTO, -4) );  // running loop start
+                       /////////////////////
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::UPDATE_CURRENT_ROTORPARAMS) );
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::SET_ROTOR_STOPPED) );
+                               }
+                       // use normal motor turning mode
+                               else
+                               {
+                                       if (curRotorPos != -1)
+                                       {
+                                               mrt = abs(curRotorPos - sat.orbital_position);
+                                               if (mrt > 1800)
+                                                       mrt = 3600 - mrt;
+                                               if (mrt % 10)
+                                                       mrt += 10; // round a little bit
+                                               mrt *= 2000;  // (we assume a very slow rotor with just 0.5 degree per second here)
+                                               mrt /= 10000;
+                                               mrt += 3; // a little bit overhead
+                                       }
+                                       doSetVoltageToneFrontend=false;
+                                       doSetFrontend=false;
+                                       eSecCommand::rotor cmd;
+                                       eSecCommand::pair compare;
+                                       compare.voltage = VOLTAGE(13);
+                                       compare.steps = +3;
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::IF_VOLTAGE_GOTO, compare) );
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::SET_VOLTAGE, compare.voltage) );
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_VOLTAGE_CHANGE_BEFORE_MOTOR_CMD]) );  // wait 150msec after voltage change
+
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::INVALIDATE_CURRENT_ROTORPARMS) );
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::SET_ROTOR_MOVING) );
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::SEND_DISEQC, diseqc) );
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, 1000) ); // sleep one second before change voltage or tone
+
+                                       compare.voltage = voltage;
+                                       compare.steps = +3;
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::IF_VOLTAGE_GOTO, compare) ); // correct final voltage?
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, 2000) );  // wait 2 second before set high voltage
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::SET_VOLTAGE, voltage) );
+
+                                       compare.tone = tone;
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::IF_TONE_GOTO, compare) );
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::SET_TONE, tone) );
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_FINAL_CONT_TONE_CHANGE]) );
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::SET_FRONTEND, 0) );
+
+                                       cmd.direction=1;  // check for running rotor
+                                       cmd.deltaA=0;
+                                       cmd.steps = +3;
+                                       cmd.okcount=0;
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::SET_TIMEOUT, mrt*4) );  // mrt is in seconds... our SLEEP time is 250ms.. so * 4
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, 250) );  // 250msec delay
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::IF_TUNER_LOCKED_GOTO, cmd ) );
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::IF_TIMEOUT_GOTO, +5 ) );
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::GOTO, -3) );  // goto loop start
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::UPDATE_CURRENT_ROTORPARAMS) );
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::SET_ROTOR_STOPPED) );
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::GOTO, +4) );
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::START_TUNE_TIMEOUT, tunetimeout) );
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::SET_FRONTEND, 1) );
+                                       sec_sequence.push_back( eSecCommand(eSecCommand::GOTO, -5) );
+                                       eDebug("set rotor timeout to %d seconds", mrt);
+                               }
+                               sec_fe->setData(eDVBFrontend::NEW_ROTOR_CMD, RotorCmd);
+                               sec_fe->setData(eDVBFrontend::NEW_ROTOR_POS, sat.orbital_position);
                        }
 
+                       if (doSetVoltageToneFrontend && !is_unicable)
+                       {
+                               eSecCommand::pair compare;
+                               compare.voltage = voltage;
+                               compare.steps = +3;
+                               sec_sequence.push_back( eSecCommand(eSecCommand::IF_VOLTAGE_GOTO, compare) ); // voltage already correct ?
+                               sec_sequence.push_back( eSecCommand(eSecCommand::SET_VOLTAGE, voltage) );
+                               sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_FINAL_VOLTAGE_CHANGE]) );
+                               compare.tone = tone;
+                               sec_sequence.push_back( eSecCommand(eSecCommand::IF_TONE_GOTO, compare) );
+                               sec_sequence.push_back( eSecCommand(eSecCommand::SET_TONE, tone) );
+                               sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_FINAL_CONT_TONE_CHANGE]) );
+                       }
+
+                       sec_sequence.push_back( eSecCommand(eSecCommand::UPDATE_CURRENT_SWITCHPARMS) );
+
                        if (doSetFrontend)
                        {
                                sec_sequence.push_back( eSecCommand(eSecCommand::START_TUNE_TIMEOUT, tunetimeout) );
index 2daeeff..1eacc29 100644 (file)
@@ -90,9 +90,9 @@ void Cexif::ClearExif()
 
 bool Cexif::DecodeExif(const char *filename, int Thumb)
 {
+       bool ret = false;
        FILE * hFile = fopen(filename, "r");
-       if(!hFile) return false;
-
+       if(!hFile) return ret;
 
        m_exifinfo = new EXIFINFO;
        memset(m_exifinfo,0,sizeof(EXIFINFO));
@@ -107,7 +107,8 @@ bool Cexif::DecodeExif(const char *filename, int Thumb)
        int a = fgetc(hFile);
        strcpy(m_szLastError,"EXIF-Data not found");
 
-       if (a != 0xff || fgetc(hFile) != M_SOI) return false;
+       if (a != 0xff || fgetc(hFile) != M_SOI)
+               goto decode_exif_out_false;
 
        for(;;)
        {
@@ -117,7 +118,8 @@ bool Cexif::DecodeExif(const char *filename, int Thumb)
 
                if (SectionsRead >= MAX_SECTIONS)
                {
-                       strcpy(m_szLastError,"Too many sections in jpg file"); return false;
+                       strcpy(m_szLastError,"Too many sections in jpg file");
+                       goto decode_exif_out_false;
                }
 
                for (a=0;a<7;a++)
@@ -127,13 +129,15 @@ bool Cexif::DecodeExif(const char *filename, int Thumb)
 
                        if (a >= 6)
                        {
-                               strcpy(m_szLastError,"too many padding unsigned chars\n"); return false;
+                               strcpy(m_szLastError,"too many padding unsigned chars\n");
+                               goto decode_exif_out_false;
                        }
                }
 
                if (marker == 0xff)
                {
-                       strcpy(m_szLastError,"too many padding unsigned chars!"); return false;
+                       strcpy(m_szLastError,"too many padding unsigned chars!");
+                       goto decode_exif_out_false;
                }
 
                Sections[SectionsRead].Type = marker;
@@ -145,14 +149,16 @@ bool Cexif::DecodeExif(const char *filename, int Thumb)
 
                if (itemlen < 2)
                {
-                       strcpy(m_szLastError,"invalid marker"); return false;
+                       strcpy(m_szLastError,"invalid marker");
+                       goto decode_exif_out_false;
                }
                Sections[SectionsRead].Size = itemlen;
 
                Data = (unsigned char *)malloc(itemlen);
                if (Data == NULL)
                {
-                       strcpy(m_szLastError,"Could not allocate memory"); return false;
+                       strcpy(m_szLastError,"Could not allocate memory");
+                       goto decode_exif_out_false;
                }
                Sections[SectionsRead].Data = Data;
 
@@ -163,17 +169,18 @@ bool Cexif::DecodeExif(const char *filename, int Thumb)
                got = fread(Data+2, 1, itemlen-2,hFile);
                if (got != itemlen-2)
                {
-                       strcpy(m_szLastError,"Premature end of file?"); return false;
+                       strcpy(m_szLastError,"Premature end of file?");
+                       goto decode_exif_out_false;
                }
                SectionsRead += 1;
 
                switch(marker)
                {
                case M_SOS:
-                       return true;
+                       goto decode_exif_out_true;
                case M_EOI:
                        printf("No image in jpeg!\n");
-                       return false;
+                       goto decode_exif_out_false;
                case M_COM:
                        if (HaveCom)
                        {
@@ -221,8 +228,12 @@ bool Cexif::DecodeExif(const char *filename, int Thumb)
                }
        }
 
+decode_exif_out_true:
+       ret = true;
+
+decode_exif_out_false:
        fclose(hFile);
-       return true;
+       return ret;
 }
 
 bool Cexif::process_EXIF(unsigned char * CharBuf, unsigned int length)
index 7f7dd5c..bd1a363 100644 (file)
@@ -1361,25 +1361,32 @@ def InitNimManager(nimmgr):
                slot_id = configElement.slot_id
                if nimmgr.nim_slots[slot_id].description == 'Alps BSBE2':
                        open("/proc/stb/frontend/%d/tone_amplitude" %(fe_id), "w").write(configElement.value)
-                       
+
        def tunerTypeChanged(nimmgr, configElement):
                fe_id = configElement.fe_id
-               print "tunerTypeChanged feid %d to mode %s" % (fe_id, configElement.value)
-               try:
-                       oldvalue = open("/sys/module/dvb_core/parameters/dvb_shutdown_timeout", "r").readline()
-                       open("/sys/module/dvb_core/parameters/dvb_shutdown_timeout", "w").write("0")
-               except:
-                       print "[info] no /sys/module/dvb_core/parameters/dvb_shutdown_timeout available"
-               frontend = eDVBResourceManager.getInstance().allocateRawChannel(fe_id).getFrontend()
-               frontend.closeFrontend()
-               open("/proc/stb/frontend/%d/mode" % (fe_id), "w").write(configElement.value)
-               frontend.reopenFrontend()
-               try:
-                       open("/sys/module/dvb_core/parameters/dvb_shutdown_timeout", "w").write(oldvalue)
-               except:
-                       print "[info] no /sys/module/dvb_core/parameters/dvb_shutdown_timeout available"
-               nimmgr.enumerateNIMs()
-       
+
+               cur_type = int(open("/proc/stb/frontend/%d/mode" % (fe_id), "r").read())
+               if cur_type != int(configElement.value):
+                       print "tunerTypeChanged feid %d from %d to mode %d" % (fe_id, cur_type, int(configElement.value))
+
+                       try:
+                               oldvalue = open("/sys/module/dvb_core/parameters/dvb_shutdown_timeout", "r").readline()
+                               open("/sys/module/dvb_core/parameters/dvb_shutdown_timeout", "w").write("0")
+                       except:
+                               print "[info] no /sys/module/dvb_core/parameters/dvb_shutdown_timeout available"
+
+                       frontend = eDVBResourceManager.getInstance().allocateRawChannel(fe_id).getFrontend()
+                       frontend.closeFrontend()
+                       open("/proc/stb/frontend/%d/mode" % (fe_id), "w").write(configElement.value)
+                       frontend.reopenFrontend()
+                       try:
+                               open("/sys/module/dvb_core/parameters/dvb_shutdown_timeout", "w").write(oldvalue)
+                       except:
+                               print "[info] no /sys/module/dvb_core/parameters/dvb_shutdown_timeout available"
+                       nimmgr.enumerateNIMs()
+               else:
+                       print "tuner type is already already %d" %cur_type
+
        empty_slots = 0
        for slot in nimmgr.nim_slots:
                x = slot.slot
index c6ad584..b06246b 100755 (executable)
@@ -49,7 +49,6 @@ class PluginComponent:
                        directory_category = directory + c
                        if not os_path.isdir(directory_category):
                                continue
-                       open(directory_category + "/__init__.py", "a").close()
                        for pluginname in os_listdir(directory_category):
                                path = directory_category + "/" + pluginname
                                if os_path.isdir(path):
index acbc342..ce56f0f 100644 (file)
@@ -9,6 +9,8 @@ def InitUsageConfig():
        config.usage = ConfigSubsection();
        config.usage.showdish = ConfigYesNo(default = True)
        config.usage.multibouquet = ConfigYesNo(default = False)
+       config.usage.multiepg_ask_bouquet = ConfigYesNo(default = False)
+
        config.usage.quickzap_bouquet_change = ConfigYesNo(default = False)
        config.usage.e1like_radio_mode = ConfigYesNo(default = False)
        config.usage.infobar_timeout = ConfigSelection(default = "5", choices = [
index 6e56085..5507cae 100755 (executable)
@@ -1661,9 +1661,12 @@ class Config(ConfigSubsection):
 
        def saveToFile(self, filename):
                text = self.pickle()
-               f = open(filename, "w")
-               f.write(text)
-               f.close()
+               try:
+                       f = open(filename, "w")
+                       f.write(text)
+                       f.close()
+               except IOError:
+                       print "Config: Couldn't write %s" % filename
 
        def loadFromFile(self, filename, base_file=False):
                f = open(filename, "r")
index bcc7b9b..af14578 100644 (file)
@@ -1,8 +1,9 @@
 from Plugins.Plugin import PluginDescriptor
 from GraphMultiEpg import GraphMultiEPG
-from Screens.ChannelSelection import BouquetSelector
+from Screens.ChannelSelection import BouquetSelector, SilentBouquetSelector
 from enigma import eServiceCenter, eServiceReference
 from ServiceReference import ServiceReference
+from Components.config import config
 
 Session = None
 Servicelist = None
@@ -73,6 +74,32 @@ def changeBouquetCB(direction, epg):
                        epg_bouquet = bouquet
                        epg.setServices(services)
 
+def openAskBouquet(Session, bouquets, cnt):
+       if cnt > 1: # show bouquet list
+               global bouquetSel
+               bouquetSel = Session.openWithCallback(closed, BouquetSelector, bouquets, openBouquetEPG, enableWrapAround=True)
+               dlg_stack.append(bouquetSel)
+       elif cnt == 1:
+               if not openBouquetEPG(bouquets[0][1]):
+                       cleanup()
+
+def openSilent(Servicelist, bouquets, cnt):
+       root = Servicelist.getRoot()
+       if cnt > 1: # create bouquet list
+               global bouquetSel
+               current = 0
+               rootstr = root.toCompareString()
+               for bouquet in bouquets:
+                       if bouquet[1].toCompareString() == rootstr:
+                               break
+                       current += 1
+               if current >= cnt:
+                       current = 0
+               bouquetSel = SilentBouquetSelector(bouquets, True, current)
+       if cnt >= 1: # open current bouquet
+               if not openBouquetEPG(root):
+                       cleanup()
+
 def main(session, servicelist, **kwargs):
        global Session
        Session = session
@@ -83,13 +110,10 @@ def main(session, servicelist, **kwargs):
                cnt = 0
        else:
                cnt = len(bouquets)
-       if cnt > 1: # show bouquet list
-               global bouquetSel
-               bouquetSel = Session.openWithCallback(closed, BouquetSelector, bouquets, openBouquetEPG, enableWrapAround=True)
-               dlg_stack.append(bouquetSel)
-       elif cnt == 1:
-               if not openBouquetEPG(bouquets[0][1]):
-                       cleanup()
+       if config.usage.multiepg_ask_bouquet.value:
+               openAskBouquet(session, bouquets, cnt)
+       else:
+               openSilent(servicelist, bouquets, cnt)
 
 def Plugins(**kwargs):
        name = _("Graphical Multi EPG")
index be246db..e097117 100644 (file)
@@ -441,15 +441,15 @@ class TunerScreen(ScanSetup):
                                self.scan_sat.system.value = eDVBFrontendParametersSatellite.System_DVB_S
                        self.list.append(getConfigListEntry(_('Frequency'), self.scan_sat.frequency))
                        self.list.append(getConfigListEntry(_('Inversion'), self.scan_sat.inversion))
-                       self.list.append(getConfigListEntry(_('Symbol Rate'), self.scan_sat.symbolrate))
-                       self.list.append(getConfigListEntry(_("Polarity"), self.scan_sat.polarization))
+                       self.list.append(getConfigListEntry(_('Symbol rate'), self.scan_sat.symbolrate))
+                       self.list.append(getConfigListEntry(_('Polarization'), self.scan_sat.polarization))
                        if self.scan_sat.system.value == eDVBFrontendParametersSatellite.System_DVB_S:
                                self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec))
                        elif self.scan_sat.system.value == eDVBFrontendParametersSatellite.System_DVB_S2:
                                self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec_s2))
                                self.modulationEntry = getConfigListEntry(_('Modulation'), self.scan_sat.modulation)
                                self.list.append(self.modulationEntry)
-                               self.list.append(getConfigListEntry(_('Rolloff'), self.scan_sat.rolloff))
+                               self.list.append(getConfigListEntry(_('Roll-off'), self.scan_sat.rolloff))
                                self.list.append(getConfigListEntry(_('Pilot'), self.scan_sat.pilot))
                elif tuning.type.value == "predefined_transponder":
                        self.list.append(getConfigListEntry(_("Transponder"), tuning.transponder))
index e737466..e611ca5 100644 (file)
@@ -79,15 +79,15 @@ class Satfinder(ScanSetup):
                                self.scan_sat.system.value = eDVBFrontendParametersSatellite.System_DVB_S
                        self.list.append(getConfigListEntry(_('Frequency'), self.scan_sat.frequency))
                        self.list.append(getConfigListEntry(_('Inversion'), self.scan_sat.inversion))
-                       self.list.append(getConfigListEntry(_('Symbol Rate'), self.scan_sat.symbolrate))
-                       self.list.append(getConfigListEntry(_("Polarity"), self.scan_sat.polarization))
+                       self.list.append(getConfigListEntry(_('Symbol rate'), self.scan_sat.symbolrate))
+                       self.list.append(getConfigListEntry(_('Polarization'), self.scan_sat.polarization))
                        if self.scan_sat.system.value == eDVBFrontendParametersSatellite.System_DVB_S:
                                self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec))
                        elif self.scan_sat.system.value == eDVBFrontendParametersSatellite.System_DVB_S2:
                                self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec_s2))
                                self.modulationEntry = getConfigListEntry(_('Modulation'), self.scan_sat.modulation)
                                self.list.append(self.modulationEntry)
-                               self.list.append(getConfigListEntry(_('Rolloff'), self.scan_sat.rolloff))
+                               self.list.append(getConfigListEntry(_('Roll-off'), self.scan_sat.rolloff))
                                self.list.append(getConfigListEntry(_('Pilot'), self.scan_sat.pilot))
                elif self.tuning_transponder and self.tuning_type.value == "predefined_transponder":
                        self.list.append(getConfigListEntry(_("Transponder"), self.tuning_transponder))
index dc4e8c5..6ecbfd4 100644 (file)
@@ -196,10 +196,12 @@ class VideoHardware:
                print "saveMode", port, mode, rate
                config.av.videoport.value = port
                config.av.videoport.save()
-               config.av.videomode[port].value = mode
-               config.av.videomode[port].save()
-               config.av.videorate[mode].value = rate
-               config.av.videorate[mode].save()
+               if port in config.av.videomode:
+                       config.av.videomode[port].value = mode
+                       config.av.videomode[port].save()
+               if mode in config.av.videorate:
+                       config.av.videorate[mode].value = rate
+                       config.av.videorate[mode].save()
 
        def isPortAvailable(self, port):
                # fixme
index c07e349..912d678 100644 (file)
@@ -65,6 +65,24 @@ class BouquetSelector(Screen):
        def cancelClick(self):
                self.close(False)
 
+class SilentBouquetSelector:
+       def __init__(self, bouquets, enableWrapAround=False, current=0):
+               self.bouquets = [b[1] for b in bouquets]
+               self.pos = current
+               self.count = len(bouquets)
+               self.enableWrapAround = enableWrapAround
+
+       def up(self):
+               if self.pos > 0 or self.enableWrapAround:
+                       self.pos = (self.pos - 1) % self.count
+
+       def down(self):
+               if self.pos < (self.count - 1) or self.enableWrapAround:
+                       self.pos = (self.pos + 1) % self.count
+
+       def getCurrent(self):
+               return self.bouquets[self.pos]
+
 # csel.bouquet_mark_edit values
 OFF = 0
 EDIT_BOUQUET = 1
index 73b07ac..54e241d 100644 (file)
@@ -25,9 +25,10 @@ class DefaultWizard(WizardLanguage, DreamInfoHandler):
                self["arrowup2"] = MovingPixmap()
        
        def setDirectory(self):
-               os_system("mount %s %s" % (resolveFilename(SCOPE_DEFAULTPARTITION), resolveFilename(SCOPE_DEFAULTPARTITIONMOUNTDIR)))
                self.directory = resolveFilename(SCOPE_DEFAULTPARTITIONMOUNTDIR)
                self.xmlfile = "defaultwizard.xml"
+               if self.directory:
+                       os_system("mount %s %s" % (resolveFilename(SCOPE_DEFAULTPARTITION), self.directory))
         
        def markDone(self):
                config.misc.defaultchosen.value = 0
index 2e97b59..93a4788 100644 (file)
@@ -1,4 +1,4 @@
-from ChannelSelection import ChannelSelection, BouquetSelector
+from ChannelSelection import ChannelSelection, BouquetSelector, SilentBouquetSelector
 
 from Components.ActionMap import ActionMap, HelpableActionMap
 from Components.ActionMap import NumberActionMap
@@ -559,6 +559,12 @@ class InfoBarEPG:
                        cnt = 0
                else:
                        cnt = len(bouquets)
+               if config.usage.multiepg_ask_bouquet.value:
+                       self.openMultiServiceEPGAskBouquet(bouquets, cnt, withCallback)
+               else:
+                       self.openMultiServiceEPGSilent(bouquets, cnt, withCallback)
+
+       def openMultiServiceEPGAskBouquet(self, bouquets, cnt, withCallback):
                if cnt > 1: # show bouquet list
                        if withCallback:
                                self.bouquetSel = self.session.openWithCallback(self.closed, BouquetSelector, bouquets, self.openBouquetEPG, enableWrapAround=True)
@@ -568,6 +574,21 @@ class InfoBarEPG:
                elif cnt == 1:
                        self.openBouquetEPG(bouquets[0][1], withCallback)
 
+       def openMultiServiceEPGSilent(self, bouquets, cnt, withCallback):
+               root = self.servicelist.getRoot()
+               rootstr = root.toCompareString()
+               current = 0
+               for bouquet in bouquets:
+                       if bouquet[1].toCompareString() == rootstr:
+                               break
+                       current += 1
+               if current >= cnt:
+                       current = 0
+               if cnt > 1: # create bouquet list for bouq+/-
+                       self.bouquetSel = SilentBouquetSelector(bouquets, True, self.servicelist.getBouquetNumOffset(root))
+               if cnt >= 1:
+                       self.openBouquetEPG(root, withCallback)
+
        def changeServiceCB(self, direction, epg):
                if self.serviceSel:
                        if direction > 0:
index 61ce356..7dd7b12 100644 (file)
@@ -41,9 +41,11 @@ class InputBox(Screen):
                        "9": self.keyNumberGlobal,
                        "0": self.keyNumberGlobal
                }, -1)
+
                if self["input"].type == Input.TEXT:
-                       rcinput = eRCInput.getInstance()
-                       rcinput.setKeyboardMode(rcinput.kmAscii)
+                       self.onExecBegin.append(self.setKeyboardModeAscii)
+               else:
+                       self.onExecBegin.append(self.setKeyboardModeNone)
 
        def gotAsciiCode(self):
                self["input"].handleAscii(getPrevAsciiCode())
@@ -61,13 +63,9 @@ class InputBox(Screen):
                self["input"].delete()
 
        def go(self):
-               rcinput = eRCInput.getInstance()
-               rcinput.setKeyboardMode(rcinput.kmNone)
                self.close(self["input"].getText())
 
        def cancel(self):
-               rcinput = eRCInput.getInstance()
-               rcinput.setKeyboardMode(rcinput.kmNone)
                self.close(None)
 
        def keyHome(self):
@@ -142,19 +140,13 @@ class PinInput(InputBox):
                                pass
        
        def closePinWrong(self, *args):
-               rcinput = eRCInput.getInstance()
-               rcinput.setKeyboardMode(rcinput.kmNone)
                print "args:", args
                self.close(False)
                
        def closePinCorrect(self, *args):
-               rcinput = eRCInput.getInstance()
-               rcinput.setKeyboardMode(rcinput.kmNone)
                self.close(True)
                
        def closePinCancel(self, *args):
-               rcinput = eRCInput.getInstance()
-               rcinput.setKeyboardMode(rcinput.kmNone)
                self.close(None)
                        
        def cancel(self):
index f9263d8..f8bfeb7 100644 (file)
@@ -361,15 +361,15 @@ class ScanSetup(ConfigListScreen, Screen, CableTransponderSearchSupport):
                                self.list.append(getConfigListEntry(_('Satellite'), self.scan_satselection[index_to_scan]))
                                self.list.append(getConfigListEntry(_('Frequency'), self.scan_sat.frequency))
                                self.list.append(getConfigListEntry(_('Inversion'), self.scan_sat.inversion))
-                               self.list.append(getConfigListEntry(_('Symbol Rate'), self.scan_sat.symbolrate))
-                               self.list.append(getConfigListEntry(_("Polarity"), self.scan_sat.polarization))
+                               self.list.append(getConfigListEntry(_('Symbol rate'), self.scan_sat.symbolrate))
+                               self.list.append(getConfigListEntry(_('Polarization'), self.scan_sat.polarization))
                                if self.scan_sat.system.value == eDVBFrontendParametersSatellite.System_DVB_S:
                                        self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec))
                                elif self.scan_sat.system.value == eDVBFrontendParametersSatellite.System_DVB_S2:
                                        self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec_s2))
                                        self.modulationEntry = getConfigListEntry(_('Modulation'), self.scan_sat.modulation)
                                        self.list.append(self.modulationEntry)
-                                       self.list.append(getConfigListEntry(_('Rolloff'), self.scan_sat.rolloff))
+                                       self.list.append(getConfigListEntry(_('Roll-off'), self.scan_sat.rolloff))
                                        self.list.append(getConfigListEntry(_('Pilot'), self.scan_sat.pilot))
                        elif self.scan_type.value == "single_satellite":
                                self.updateSatList()
@@ -391,7 +391,7 @@ class ScanSetup(ConfigListScreen, Screen, CableTransponderSearchSupport):
                        if self.scan_typecable.value == "single_transponder":
                                self.list.append(getConfigListEntry(_("Frequency"), self.scan_cab.frequency))
                                self.list.append(getConfigListEntry(_("Inversion"), self.scan_cab.inversion))
-                               self.list.append(getConfigListEntry(_("Symbol Rate"), self.scan_cab.symbolrate))
+                               self.list.append(getConfigListEntry(_("Symbol rate"), self.scan_cab.symbolrate))
                                self.list.append(getConfigListEntry(_("Modulation"), self.scan_cab.modulation))
                                self.list.append(getConfigListEntry(_("FEC"), self.scan_cab.fec))
                elif nim.isCompatible("DVB-T"):
@@ -399,12 +399,12 @@ class ScanSetup(ConfigListScreen, Screen, CableTransponderSearchSupport):
                                self.list.append(getConfigListEntry(_("Frequency"), self.scan_ter.frequency))
                                self.list.append(getConfigListEntry(_("Inversion"), self.scan_ter.inversion))
                                self.list.append(getConfigListEntry(_("Bandwidth"), self.scan_ter.bandwidth))
-                               self.list.append(getConfigListEntry(_("Code rate high"), self.scan_ter.fechigh))
-                               self.list.append(getConfigListEntry(_("Code rate low"), self.scan_ter.feclow))
+                               self.list.append(getConfigListEntry(_("Code rate HP"), self.scan_ter.fechigh))
+                               self.list.append(getConfigListEntry(_("Code rate LP"), self.scan_ter.feclow))
                                self.list.append(getConfigListEntry(_("Modulation"), self.scan_ter.modulation))
                                self.list.append(getConfigListEntry(_("Transmission mode"), self.scan_ter.transmission))
-                               self.list.append(getConfigListEntry(_("Guard interval mode"), self.scan_ter.guard))
-                               self.list.append(getConfigListEntry(_("Hierarchy mode"), self.scan_ter.hierarchy))
+                               self.list.append(getConfigListEntry(_("Guard interval"), self.scan_ter.guard))
+                               self.list.append(getConfigListEntry(_("Hierarchy info"), self.scan_ter.hierarchy))
                self.list.append(getConfigListEntry(_("Network scan"), self.scan_networkScan))
                self.list.append(getConfigListEntry(_("Clear before scan"), self.scan_clearallservices))
                self.list.append(getConfigListEntry(_("Only Free scan"), self.scan_onlyfree))
@@ -557,8 +557,8 @@ class ScanSetup(ConfigListScreen, Screen, CableTransponderSearchSupport):
                                (eDVBFrontendParametersSatellite.System_DVB_S2, _("DVB-S2"))])
                        self.scan_sat.frequency = ConfigInteger(default = defaultSat["frequency"], limits = (1, 99999))
                        self.scan_sat.inversion = ConfigSelection(default = defaultSat["inversion"], choices = [
-                               (eDVBFrontendParametersSatellite.Inversion_Off, _("off")),
-                               (eDVBFrontendParametersSatellite.Inversion_On, _("on")),
+                               (eDVBFrontendParametersSatellite.Inversion_Off, _("Off")),
+                               (eDVBFrontendParametersSatellite.Inversion_On, _("On")),
                                (eDVBFrontendParametersSatellite.Inversion_Unknown, _("Auto"))])
                        self.scan_sat.symbolrate = ConfigInteger(default = defaultSat["symbolrate"], limits = (1, 99999))
                        self.scan_sat.polarization = ConfigSelection(default = defaultSat["polarization"], choices = [
@@ -592,15 +592,15 @@ class ScanSetup(ConfigListScreen, Screen, CableTransponderSearchSupport):
                                (eDVBFrontendParametersSatellite.RollOff_alpha_0_25, "0.25"),
                                (eDVBFrontendParametersSatellite.RollOff_alpha_0_20, "0.20")])
                        self.scan_sat.pilot = ConfigSelection(default = defaultSat.get("pilot", eDVBFrontendParametersSatellite.Pilot_Unknown), choices = [
-                               (eDVBFrontendParametersSatellite.Pilot_Off, _("off")),
-                               (eDVBFrontendParametersSatellite.Pilot_On, _("on")),
+                               (eDVBFrontendParametersSatellite.Pilot_Off, _("Off")),
+                               (eDVBFrontendParametersSatellite.Pilot_On, _("On")),
                                (eDVBFrontendParametersSatellite.Pilot_Unknown, _("Auto"))])
 
                        # cable
                        self.scan_cab.frequency = ConfigInteger(default = defaultCab["frequency"], limits = (50, 999))
                        self.scan_cab.inversion = ConfigSelection(default = defaultCab["inversion"], choices = [
-                               (eDVBFrontendParametersCable.Inversion_Off, _("off")),
-                               (eDVBFrontendParametersCable.Inversion_On, _("on")),
+                               (eDVBFrontendParametersCable.Inversion_Off, _("Off")),
+                               (eDVBFrontendParametersCable.Inversion_On, _("On")),
                                (eDVBFrontendParametersCable.Inversion_Unknown, _("Auto"))])
                        self.scan_cab.modulation = ConfigSelection(default = defaultCab["modulation"], choices = [
                                (eDVBFrontendParametersCable.Modulation_QAM16, "16-QAM"),
@@ -622,8 +622,8 @@ class ScanSetup(ConfigListScreen, Screen, CableTransponderSearchSupport):
                        # terrestial
                        self.scan_ter.frequency = ConfigInteger(default = 466000, limits = (50000, 999000))
                        self.scan_ter.inversion = ConfigSelection(default = defaultTer["inversion"], choices = [
-                               (eDVBFrontendParametersTerrestrial.Inversion_Off, _("off")),
-                               (eDVBFrontendParametersTerrestrial.Inversion_On, _("on")),
+                               (eDVBFrontendParametersTerrestrial.Inversion_Off, _("Off")),
+                               (eDVBFrontendParametersTerrestrial.Inversion_On, _("On")),
                                (eDVBFrontendParametersTerrestrial.Inversion_Unknown, _("Auto"))])
                        # WORKAROUND: we can't use BW-auto
                        self.scan_ter.bandwidth = ConfigSelection(default = defaultTer["bandwidth"], choices = [
index f0bf773..4a0accd 100644 (file)
@@ -6,6 +6,8 @@ profile("LOAD:Source")
 from Components.Sources.Source import Source
 profile("LOAD:GUIComponent")
 from Components.GUIComponent import GUIComponent
+profile("LOAD:eRCInput")
+from enigma import eRCInput
 
 class Screen(dict, GUISkin):
 
@@ -46,6 +48,24 @@ class Screen(dict, GUISkin):
                # stand alone screens (for example web screens)
                # don't care about having or not having focus.
                self.stand_alone = False
+               self.keyboardMode = None
+
+       def saveKeyboardMode(self):
+               rcinput = eRCInput.getInstance()
+               self.keyboardMode = rcinput.getKeyboardMode()
+
+       def setKeyboardModeAscii(self):
+               rcinput = eRCInput.getInstance()
+               rcinput.setKeyboardMode(rcinput.kmAscii)
+
+       def setKeyboardModeNone(self):
+               rcinput = eRCInput.getInstance()
+               rcinput.setKeyboardMode(rcinput.kmNone)
+
+       def restoreKeyboardMode(self):
+               rcinput = eRCInput.getInstance()
+               if self.keyboardMode is not None:
+                       rcinput.setKeyboardMode(self.keyboardMode)
 
        def execBegin(self):
                self.active_components = [ ]
index fa2f447..61885df 100644 (file)
@@ -81,9 +81,9 @@ class ServiceInfo(Screen):
                        self.feinfo = None
                else:
                        self.type = TYPE_SERVICE_INFO
-                       self["red"] = Label(_("Serviceinfo"))
+                       self["red"] = Label(_("Service"))
                        self["green"] = Label(_("PIDs"))
-                       self["yellow"] = Label(_("Transponder"))
+                       self["yellow"] = Label(_("Multiplex"))
                        self["blue"] = Label(_("Tuner status"))
                        service = session.nav.getCurrentService()
                        if service is not None:
@@ -105,63 +105,63 @@ class ServiceInfo(Screen):
                                name = ServiceReference(self.session.nav.getCurrentlyPlayingServiceReference()).getServiceName()
                                refstr = self.session.nav.getCurrentlyPlayingServiceReference().toString()
                        else:
-                               name = "N/A"
-                               refstr = "N/A"
+                               name = _("N/A")
+                               refstr = _("N/A")
                        aspect = self.getServiceInfoValue(iServiceInformation.sAspect)
                        if aspect in ( 1, 2, 5, 6, 9, 0xA, 0xD, 0xE ):
-                               aspect = "4:3"
+                               aspect = _("4:3")
                        else:
-                               aspect = "16:9"
+                               aspect = _("16:9")
                        width = self.info and self.info.getInfo(iServiceInformation.sVideoWidth) or -1
                        height = self.info and self.info.getInfo(iServiceInformation.sVideoHeight) or -1
                        if width != -1 and height != -1:
-                               Labels = ( ("Name", name, TYPE_TEXT),
-                                                  ("Provider", self.getServiceInfoValue(iServiceInformation.sProvider), TYPE_TEXT),
-                                                  ("Videoformat", aspect, TYPE_TEXT),
-                                                  ("Videosize", "%dx%d" %(width, height), TYPE_TEXT),
-                                                  ("Namespace", self.getServiceInfoValue(iServiceInformation.sNamespace), TYPE_VALUE_HEX, 8),
-                                                  ("Service Reference", refstr, TYPE_TEXT))
+                               Labels = ( (_("Name"), name, TYPE_TEXT),
+                                                  (_("Provider"), self.getServiceInfoValue(iServiceInformation.sProvider), TYPE_TEXT),
+                                                  (_("Aspect ratio"), aspect, TYPE_TEXT),
+                                                  (_("Resolution"), "%dx%d" %(width, height), TYPE_TEXT),
+                                                  (_("Namespace"), self.getServiceInfoValue(iServiceInformation.sNamespace), TYPE_VALUE_HEX, 8),
+                                                  (_("Service reference"), refstr, TYPE_TEXT))
                        else:
-                               Labels = ( ("Name", name, TYPE_TEXT),
-                                                  ("Provider", self.getServiceInfoValue(iServiceInformation.sProvider), TYPE_TEXT),
-                                                  ("Videoformat", aspect, TYPE_TEXT),
-                                                  ("Namespace", self.getServiceInfoValue(iServiceInformation.sNamespace), TYPE_VALUE_HEX, 8),
-                                                  ("Service Reference", refstr, TYPE_TEXT))
+                               Labels = ( (_("Name"), name, TYPE_TEXT),
+                                                  (_("Provider"), self.getServiceInfoValue(iServiceInformation.sProvider), TYPE_TEXT),
+                                                  (_("Aspect ratio"), aspect, TYPE_TEXT),
+                                                  (_("Namespace"), self.getServiceInfoValue(iServiceInformation.sNamespace), TYPE_VALUE_HEX, 8),
+                                                  (_("Service reference"), refstr, TYPE_TEXT))
                        self.fillList(Labels)
                else:
                        if self.transponder_info:
                                tp_info = ConvertToHumanReadable(self.transponder_info)
-                               conv = { "tuner_type"           : _("Transponder Type"),
-                                                "system"                       : _("System"),
-                                                "modulation"           : _("Modulation"),
-                                                "orbital_position" : _("Orbital Position"),
-                                                "frequency"            : _("Frequency"),
-                                                "symbol_rate"          : _("Symbolrate"),
-                                                "bandwidth"            : _("Bandwidth"),
-                                                "polarization"         : _("Polarization"),
-                                                "inversion"            : _("Inversion"),
-                                                "pilot"                        : _("Pilot"),
-                                                "rolloff"                      : _("Rolloff"),
-                                                "fec_inner"            : _("FEC"),
-                                                "code_rate_lp"         : _("Coderate LP"),
-                                                "code_rate_hp"         : _("Coderate HP"),
-                                                "constellation"        : _("Constellation"),
-                                                "transmission_mode": _("Transmission Mode"),
-                                                "guard_interval"       : _("Guard Interval"),
-                                                "hierarchy_information": _("Hierarchy Information") }
+                               conv = { "tuner_type"                   : _("Type"),
+                                        "system"                       : _("System"),
+                                        "modulation"                   : _("Modulation"),
+                                        "orbital_position"             : _("Orbital position"),
+                                        "frequency"                    : _("Frequency"),
+                                        "symbol_rate"                  : _("Symbol rate"),
+                                        "bandwidth"                    : _("Bandwidth"),
+                                        "polarization"                 : _("Polarization"),
+                                        "inversion"                    : _("Inversion"),
+                                        "pilot"                        : _("Pilot"),
+                                        "rolloff"                      : _("Roll-off"),
+                                        "fec_inner"                    : _("FEC"),
+                                        "code_rate_lp"                 : _("Code rate LP"),
+                                        "code_rate_hp"                 : _("Code rate HP"),
+                                        "constellation"                : _("Constellation"),
+                                        "transmission_mode"            : _("Transmission mode"),
+                                        "guard_interval"               : _("Guard interval"),
+                                        "hierarchy_information"        : _("Hierarchy info") }
                                Labels = [(conv[i], tp_info[i], TYPE_VALUE_DEC) for i in tp_info.keys()]
                                self.fillList(Labels)
 
        def pids(self):
                if self.type == TYPE_SERVICE_INFO:
-                       Labels = ( ("VideoPID", self.getServiceInfoValue(iServiceInformation.sVideoPID), TYPE_VALUE_HEX_DEC, 4),
-                                          ("AudioPID", self.getServiceInfoValue(iServiceInformation.sAudioPID), TYPE_VALUE_HEX_DEC, 4),
-                                          ("PCRPID", self.getServiceInfoValue(iServiceInformation.sPCRPID), TYPE_VALUE_HEX_DEC, 4),
-                                          ("PMTPID", self.getServiceInfoValue(iServiceInformation.sPMTPID), TYPE_VALUE_HEX_DEC, 4),
-                                          ("TXTPID", self.getServiceInfoValue(iServiceInformation.sTXTPID), TYPE_VALUE_HEX_DEC, 4),
-                                          ("TSID", self.getServiceInfoValue(iServiceInformation.sTSID), TYPE_VALUE_HEX_DEC, 4),
-                                          ("ONID", self.getServiceInfoValue(iServiceInformation.sONID), TYPE_VALUE_HEX_DEC, 4),
-                                          ("SID", self.getServiceInfoValue(iServiceInformation.sSID), TYPE_VALUE_HEX_DEC, 4))
+                       Labels = ( (_("Video PID"), self.getServiceInfoValue(iServiceInformation.sVideoPID), TYPE_VALUE_HEX_DEC, 4),
+                                          (_("Audio PID"), self.getServiceInfoValue(iServiceInformation.sAudioPID), TYPE_VALUE_HEX_DEC, 4),
+                                          (_("PCR PID"), self.getServiceInfoValue(iServiceInformation.sPCRPID), TYPE_VALUE_HEX_DEC, 4),
+                                          (_("PMT PID"), self.getServiceInfoValue(iServiceInformation.sPMTPID), TYPE_VALUE_HEX_DEC, 4),
+                                          (_("TXT PID"), self.getServiceInfoValue(iServiceInformation.sTXTPID), TYPE_VALUE_HEX_DEC, 4),
+                                          (_("TSID"), self.getServiceInfoValue(iServiceInformation.sTSID), TYPE_VALUE_HEX_DEC, 4),
+                                          (_("ONID"), self.getServiceInfoValue(iServiceInformation.sONID), TYPE_VALUE_HEX_DEC, 4),
+                                          (_("SID"), self.getServiceInfoValue(iServiceInformation.sSID), TYPE_VALUE_HEX_DEC, 4))
                        self.fillList(Labels)
        
        def showFrontendData(self, real):
@@ -182,37 +182,38 @@ class ServiceInfo(Screen):
                if frontendDataOrg and len(frontendDataOrg):
                        frontendData = ConvertToHumanReadable(frontendDataOrg)
                        if frontendDataOrg["tuner_type"] == "DVB-S":
-                               return (("NIM", ('A', 'B', 'C', 'D')[frontendData["tuner_number"]], TYPE_TEXT),
-                                                       ("Type", frontendData["system"], TYPE_TEXT),
-                                                       ("Modulation", frontendData["modulation"], TYPE_TEXT),
-                                                       ("Orbital position", frontendData["orbital_position"], TYPE_VALUE_DEC),
-                                                       ("Frequency", frontendData["frequency"], TYPE_VALUE_DEC),
-                                                       ("Symbolrate", frontendData["symbol_rate"], TYPE_VALUE_DEC),
-                                                       ("Polarization", frontendData["polarization"], TYPE_TEXT),
-                                                       ("Inversion", frontendData["inversion"], TYPE_TEXT),
-                                                       ("FEC inner", frontendData["fec_inner"], TYPE_TEXT),
-                                                       ("Pilot", frontendData.get("pilot", None), TYPE_TEXT),
-                                                       ("Rolloff", frontendData.get("rolloff", None), TYPE_TEXT))
+                               return ((_("NIM"), ('A', 'B', 'C', 'D')[frontendData["tuner_number"]], TYPE_TEXT),
+                                               (_("Type"), frontendData["tuner_type"], TYPE_TEXT),
+                                               (_("System"), frontendData["system"], TYPE_TEXT),
+                                               (_("Modulation"), frontendData["modulation"], TYPE_TEXT),
+                                               (_("Orbital position"), frontendData["orbital_position"], TYPE_VALUE_DEC),
+                                               (_("Frequency"), frontendData["frequency"], TYPE_VALUE_DEC),
+                                               (_("Symbol rate"), frontendData["symbol_rate"], TYPE_VALUE_DEC),
+                                               (_("Polarization"), frontendData["polarization"], TYPE_TEXT),
+                                               (_("Inversion"), frontendData["inversion"], TYPE_TEXT),
+                                               (_("FEC"), frontendData["fec_inner"], TYPE_TEXT),
+                                               (_("Pilot"), frontendData.get("pilot", None), TYPE_TEXT),
+                                               (_("Roll-off"), frontendData.get("rolloff", None), TYPE_TEXT))
                        elif frontendDataOrg["tuner_type"] == "DVB-C":
-                               return (("NIM", ('A', 'B', 'C', 'D')[frontendData["tuner_number"]], TYPE_TEXT),
-                                               ("Type", frontendData["tuner_type"], TYPE_TEXT),
-                                               ("Frequency", frontendData["frequency"], TYPE_VALUE_DEC),
-                                               ("Symbolrate", frontendData["symbol_rate"], TYPE_VALUE_DEC),
-                                               ("Modulation", frontendData["modulation"], TYPE_TEXT),
-                                               ("Inversion", frontendData["inversion"], TYPE_TEXT),
-                                               ("FEC inner", frontendData["fec_inner"], TYPE_TEXT))
+                               return ((_("NIM"), ('A', 'B', 'C', 'D')[frontendData["tuner_number"]], TYPE_TEXT),
+                                               (_("Type"), frontendData["tuner_type"], TYPE_TEXT),
+                                               (_("Modulation"), frontendData["modulation"], TYPE_TEXT),
+                                               (_("Frequency"), frontendData["frequency"], TYPE_VALUE_DEC),
+                                               (_("Symbol rate"), frontendData["symbol_rate"], TYPE_VALUE_DEC),
+                                               (_("Inversion"), frontendData["inversion"], TYPE_TEXT),
+                                               (_("FEC"), frontendData["fec_inner"], TYPE_TEXT))
                        elif frontendDataOrg["tuner_type"] == "DVB-T":
-                               return (("NIM", ('A', 'B', 'C', 'D')[frontendData["tuner_number"]], TYPE_TEXT),
-                                               ("Type", frontendData["tuner_type"], TYPE_TEXT),
-                                               ("Frequency", frontendData["frequency"], TYPE_VALUE_DEC),
-                                               ("Inversion", frontendData["inversion"], TYPE_TEXT),
-                                               ("Bandwidth", frontendData["bandwidth"], TYPE_VALUE_DEC),
-                                               ("CodeRateLP", frontendData["code_rate_lp"], TYPE_TEXT),
-                                               ("CodeRateHP", frontendData["code_rate_hp"], TYPE_TEXT),
-                                               ("Constellation", frontendData["constellation"], TYPE_TEXT),
-                                               ("Transmission Mode", frontendData["transmission_mode"], TYPE_TEXT),
-                                               ("Guard Interval", frontendData["guard_interval"], TYPE_TEXT),
-                                               ("Hierarchy Inform.", frontendData["hierarchy_information"], TYPE_TEXT))
+                               return ((_("NIM"), ('A', 'B', 'C', 'D')[frontendData["tuner_number"]], TYPE_TEXT),
+                                               (_("Type"), frontendData["tuner_type"], TYPE_TEXT),
+                                               (_("Frequency"), frontendData["frequency"], TYPE_VALUE_DEC),
+                                               (_("Inversion"), frontendData["inversion"], TYPE_TEXT),
+                                               (_("Bandwidth"), frontendData["bandwidth"], TYPE_VALUE_DEC),
+                                               (_("Code rate LP"), frontendData["code_rate_lp"], TYPE_TEXT),
+                                               (_("Code rate HP"), frontendData["code_rate_hp"], TYPE_TEXT),
+                                               (_("Constellation"), frontendData["constellation"], TYPE_TEXT),
+                                               (_("Transmission mode"), frontendData["transmission_mode"], TYPE_TEXT),
+                                               (_("Guard interval"), frontendData["guard_interval"], TYPE_TEXT),
+                                               (_("Hierarchy info"), frontendData["hierarchy_information"], TYPE_TEXT))
                return [ ]
 
        def fillList(self, Labels):
@@ -237,6 +238,6 @@ class ServiceInfo(Screen):
                if v == -2:
                        v = self.info.getInfoString(what)
                elif v == -1:
-                       v = "N/A"
+                       v = _("N/A")
 
                return v
index 8e4d004..f0ef0de 100755 (executable)
@@ -118,7 +118,11 @@ def resolveFilename(scope, base = "", path_prefix = None):
 
        if flags == PATH_CREATE:
                if not pathExists(path):
-                       mkdir(path)
+                       try:
+                               mkdir(path)
+                       except OSError:
+                               print "resolveFilename: Couldn't create %s" % path
+                               return None
 
        fallbackPath = fallbackPaths.get(scope)
 
@@ -224,12 +228,13 @@ def InitFallbackFiles():
 # returns a list of tuples containing pathname and filename matching the given pattern
 # example-pattern: match all txt-files: ".*\.txt$"
 def crawlDirectory(directory, pattern):
-       expression = compile(pattern)
        list = []
-       for root, dirs, files in walk(directory):
-               for file in files:
-                       if expression.match(file) is not None:
-                               list.append((root, file))
+       if directory:
+               expression = compile(pattern)
+               for root, dirs, files in walk(directory):
+                       for file in files:
+                               if expression.match(file) is not None:
+                                       list.append((root, file))
        return list
 
 def copyfile(src, dst):
index 6868929..0b8b96a 100644 (file)
@@ -1,4 +1,5 @@
 from enigma import eDVBFrontendParametersSatellite, eDVBFrontendParametersCable, eDVBFrontendParametersTerrestrial
+from Components.NimManager import nimmanager
 
 def ConvertToHumanReadable(tp, type = None):
        ret = { }
@@ -27,6 +28,7 @@ def ConvertToHumanReadable(tp, type = None):
                        eDVBFrontendParametersSatellite.Modulation_QPSK : "QPSK",
                        eDVBFrontendParametersSatellite.Modulation_QAM16 : "QAM16",
                        eDVBFrontendParametersSatellite.Modulation_8PSK : "8PSK"}[tp["modulation"]]
+               ret["orbital_position"] = nimmanager.getSatName(int(tp["orbital_position"]))
                ret["polarization"] = {
                        eDVBFrontendParametersSatellite.Polarisation_Horizontal : _("Horizontal"),
                        eDVBFrontendParametersSatellite.Polarisation_Vertical : _("Vertical"),
index b4cd1c7..374749a 100644 (file)
@@ -80,4 +80,23 @@ public:
        }
 };
 
+template <class R, class V0, class V1, class V2>
+class PSignal3: public PSignal, public Signal3<R,V0,V1,V2>
+{
+public:
+       R operator()(V0 a0, V1 a1, V2 a2)
+       {
+               if (m_list)
+               {
+                       PyObject *pArgs = PyTuple_New(3);
+                       PyTuple_SET_ITEM(pArgs, 0, PyFrom(a0));
+                       PyTuple_SET_ITEM(pArgs, 1, PyFrom(a1));
+                       PyTuple_SET_ITEM(pArgs, 2, PyFrom(a2));
+                       callPython(pArgs);
+                       Org_Py_DECREF(pArgs);
+               }
+               return Signal3<R,V0,V1,V2>::operator()(a0, a1, a2);
+       }
+};
+
 #endif
index 7a8d7b7..99695e0 100755 (executable)
--- a/mytest.py
+++ b/mytest.py
@@ -214,6 +214,7 @@ class Session:
                        self.summary.show()
                        c.addSummary(self.summary)
 
+               c.saveKeyboardMode()
                c.execBegin()
 
                # when execBegin opened a new dialog, don't bother showing the old one.
@@ -225,6 +226,7 @@ class Session:
                self.in_exec = False
 
                self.current_dialog.execEnd()
+               self.current_dialog.restoreKeyboardMode()
                self.current_dialog.hide()
 
                if last:
index 2f6ebf5..26962db 100755 (executable)
--- a/po/ar.po
+++ b/po/ar.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: tuxbox-enigma 0.0.1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-27 12:42+0000\n"
+"POT-Creation-Date: 2011-04-01 08:09+0000\n"
 "PO-Revision-Date: 2010-08-20 00:08+0200\n"
 "Last-Translator: Hazem <moustafagamal@hotmail.com>\n"
 "Language-Team: Arabic <moustafagamal@hotmail.com>\n"
@@ -192,6 +192,12 @@ msgstr "#ffffffff"
 msgid "%H:%M"
 msgstr "%H:%M"
 
+#, python-format
+msgid ""
+"%d conflict(s) encountered when trying to add new timers:\n"
+"%s"
+msgstr ""
+
 #
 #, python-format
 msgid "%d jobs are running in the background!"
@@ -226,6 +232,10 @@ msgstr ""
 msgid "%s (%s)\n"
 msgstr "%s (%s) \n"
 
+#, python-format
+msgid "%s: %s at %s"
+msgstr ""
+
 msgid "(ZAP)"
 msgstr "(تنقل)"
 
@@ -357,10 +367,10 @@ msgstr "؟؟"
 msgid "A"
 msgstr "أ"
 
-msgid "A BackToTheRoots-Skin .. or good old times."
+msgid "A BackToTheRoots-Skin .. but with Warp-8 speed."
 msgstr ""
 
-msgid "A BackToTheRoots-Skin ... or good old times."
+msgid "A BackToTheRoots-Skin .. or good old times."
 msgstr ""
 
 msgid "A basic ftp client"
@@ -380,6 +390,9 @@ msgstr ""
 msgid "A demo plugin for TPM usage."
 msgstr ""
 
+msgid "A dreambox simulation from SG-Atlantis displays."
+msgstr ""
+
 msgid ""
 "A finished record timer wants to set your\n"
 "Dreambox to standby. Do that now?"
@@ -400,6 +413,9 @@ msgstr "دليل برامج الكترونى بيانى لكل قنوات باق
 msgid "A graphical EPG interface"
 msgstr ""
 
+msgid "A graphical EPG interface and EPG tools manager"
+msgstr ""
+
 msgid "A graphical EPG interface."
 msgstr ""
 
@@ -834,6 +850,9 @@ msgstr "أسال المستخدم"
 msgid "Aspect Ratio"
 msgstr "نسبة الجانب"
 
+msgid "Aspect ratio"
+msgstr ""
+
 msgid "Assigning providers/services/caids to a CI module"
 msgstr ""
 
@@ -847,6 +866,9 @@ msgstr "صوت"
 msgid "Audio Options..."
 msgstr "خيارات الصوت"
 
+msgid "Audio PID"
+msgstr ""
+
 #
 msgid "Audio Sync"
 msgstr ""
@@ -905,6 +927,15 @@ msgid ""
 "criteria."
 msgstr ""
 
+msgid "AutoTimer was added successfully"
+msgstr ""
+
+msgid "AutoTimer was changed successfully"
+msgstr ""
+
+msgid "AutoTimer was removed"
+msgstr ""
+
 msgid "Automatic"
 msgstr "آلى"
 
@@ -938,6 +969,24 @@ msgstr ""
 msgid "Automatically send crashlogs to Dream Multimedia"
 msgstr ""
 
+#, python-format
+msgid ""
+"Autoresolution Plugin Testmode:\n"
+"Is %s ok?"
+msgstr ""
+
+msgid "Autoresolution Switch"
+msgstr ""
+
+msgid "Autoresolution is not working in Scart/DVI-PC Mode"
+msgstr ""
+
+msgid "Autoresolution settings"
+msgstr ""
+
+msgid "Autoresolution videomode setup"
+msgstr ""
+
 msgid "Autos & Vehicles"
 msgstr "سيارات ومركبات"
 
@@ -976,6 +1025,12 @@ msgstr ""
 msgid "Back"
 msgstr "خلف"
 
+msgid "Back, lower USB Slot"
+msgstr ""
+
+msgid "Back, upper USB Slot"
+msgstr ""
+
 msgid "Background"
 msgstr "خلفيه"
 
@@ -1058,6 +1113,11 @@ msgstr "البرازيل"
 msgid "Brightness"
 msgstr "الإضاءه"
 
+msgid ""
+"Browse ORF and SAT1 Teletext independent from channel. This need I-net "
+"conection."
+msgstr ""
+
 msgid "Browse for and connect to network shares"
 msgstr ""
 
@@ -1088,6 +1148,17 @@ msgid "Bus: "
 msgstr "الناقل"
 
 msgid ""
+"By enabling this events will not be matched if they don't occur on certain "
+"dates."
+msgstr ""
+
+msgid ""
+"By enabling this you will be notified about timer conflicts found during "
+"automated polling. There is no intelligence involved, so it might bother you "
+"about the same conflict over and over."
+msgstr ""
+
+msgid ""
 "By pressing the OK Button on your remote control, the info bar is being "
 "displayed."
 msgstr "بالضغط على ذر موافق من الريموت كونترول ، سيظهر شريط المعلومات"
@@ -1325,6 +1396,12 @@ msgstr "أغلق وأحفظ التغيرات"
 msgid "Close title selection"
 msgstr "إغلاق إختيار العنوان"
 
+msgid "Code rate HP"
+msgstr ""
+
+msgid "Code rate LP"
+msgstr ""
+
 #
 msgid "Code rate high"
 msgstr ""
@@ -1491,6 +1568,10 @@ msgstr "لا يمكن فتح صوره داخل صوره"
 msgid "Couldn't record due to conflicting timer %s"
 msgstr "تعذر التسجيل بسبب مؤقت متعارض%s"
 
+#, python-format
+msgid "Couldn't record due to invalid service %s"
+msgstr ""
+
 msgid "Crashlog settings"
 msgstr "إعدادات سجل العطب"
 
@@ -1651,6 +1732,9 @@ msgstr "DVB-S"
 msgid "DVB-S2"
 msgstr "DVB-S2"
 
+msgid "DVD Drive"
+msgstr ""
+
 msgid "DVD File Browser"
 msgstr "متصفح ملفات دى فى دى"
 
@@ -1720,10 +1804,19 @@ msgstr ""
 msgid "Define a startup service for your Dreambox."
 msgstr ""
 
+msgid "Deinterlacer mode for interlaced content"
+msgstr "اسلوب فك التشابك للمحتويات المتشابكه"
+
+msgid "Deinterlacer mode for progressive content"
+msgstr "اسلوب فك التشابك للمحتويات التقدميه"
+
 #
 msgid "Delay"
 msgstr "تأخير"
 
+msgid "Delay x seconds after service started"
+msgstr "تأخير (عدد) ثوانى بعد بدأ القناه"
+
 #
 msgid "Delete"
 msgstr "أمسح"
@@ -1890,6 +1983,12 @@ msgstr ""
 "قد يستغرق ذلك بعض الوقت !"
 
 #, python-format
+msgid ""
+"Do you really want to delete %s\n"
+"%s?"
+msgstr ""
+
+#, python-format
 msgid "Do you really want to delete %s?"
 msgstr "هل تريد فعلا مسح %s ؟"
 
@@ -2182,9 +2281,28 @@ msgstr "تفعيل"
 msgid "Enable /media"
 msgstr "تفعيل /الوسيط"
 
+#
+msgid "Enable 1080p24 Mode"
+msgstr "تفعيل الوضعيه 1080p24"
+
+#
+msgid "Enable 1080p25 Mode"
+msgstr "تفعيل الوضعيه 1080p25"
+
+#
+msgid "Enable 1080p30 Mode"
+msgstr "تفعيل الوضعيه 1080p30"
+
 msgid "Enable 5V for active antenna"
 msgstr "تفعيل 5ف للهوائى النشط"
 
+#
+msgid "Enable 720p24 Mode"
+msgstr "تفعيل الوضعيه 720p24"
+
+msgid "Enable Autoresolution"
+msgstr ""
+
 msgid "Enable Cleanup Wizard?"
 msgstr "تفعيل نافذة التنظيف ؟"
 
@@ -2304,16 +2422,9 @@ msgstr ""
 "© 2006 - Stephan Reichholf"
 
 #
-msgid "Enter Fast Forward at speed"
-msgstr ""
-
-#
 msgid "Enter IP to scan..."
 msgstr ""
 
-msgid "Enter Rewind at speed"
-msgstr "أدخل سرعة الرجوع"
-
 msgid "Enter main menu..."
 msgstr "دخول القائمه الرئيسيه"
 
@@ -2541,6 +2652,11 @@ msgstr "تم النتهاء من إعادة تشغيل الشبكه"
 msgid "Finnish"
 msgstr "إنتهاء"
 
+msgid ""
+"First day to match events. No event that begins before this date will be "
+"matched."
+msgstr ""
+
 msgid "First generate your skin-style with the Ai.HD-Control plugin."
 msgstr ""
 
@@ -2559,16 +2675,18 @@ msgstr "نسق"
 #, python-format
 msgid ""
 "Found a total of %d matching Events.\n"
+"%d Timer were added and %d modified, %d conflicts encountered."
+msgstr ""
+
+#, python-format
+msgid ""
+"Found a total of %d matching Events.\n"
 "%d Timer were added and %d modified."
 msgstr ""
 "تم العثور على إجمالى %d أحداث متطابقه \n"
 "تم إضافة مؤقت %d وتم تعديل %d"
 
 #
-msgid "Frame repeat count during non-smooth winding"
-msgstr ""
-
-#
 msgid "Frame size in full view"
 msgstr ""
 
@@ -2609,6 +2727,9 @@ msgstr ""
 msgid "FritzCall shows incoming calls to your Fritz!Box on your Dreambox."
 msgstr ""
 
+msgid "Front USB Slot"
+msgstr ""
+
 msgid "Frontend for /tmp/mmi.socket"
 msgstr ""
 
@@ -2662,6 +2783,9 @@ msgstr ""
 msgid "General PCM delay (ms)"
 msgstr ""
 
+msgid "Generates and Shows TV Charts of all users having this plugin installed"
+msgstr ""
+
 #
 msgid "Genre"
 msgstr ""
@@ -2734,14 +2858,17 @@ msgid "Green boost"
 msgstr "دعم أخضر"
 
 msgid ""
-"Growlee allows your Dreambox to send short messages using the growl "
-"protocol\n"
-"like Recording started notifications to a PC running a growl client"
+"Growlee allows your Dreambox to forward notifications like 'Record started' "
+"to a PC running a growl, snarl or syslog compatible client or directly to an "
+"iPhone using prowl."
 msgstr ""
 
 msgid "Guard Interval"
 msgstr "فاصل الحرس"
 
+msgid "Guard interval"
+msgstr ""
+
 msgid "Guard interval mode"
 msgstr "وضعية فاصل الحرس"
 
@@ -2749,6 +2876,12 @@ msgstr "وضعية فاصل الحرس"
 msgid "Guess existing timer based on begin/end"
 msgstr ""
 
+msgid "HD Interlace Mode"
+msgstr ""
+
+msgid "HD Progressive Mode"
+msgstr ""
+
 msgid "HD videos"
 msgstr "فيديو فائق الوضوح"
 
@@ -2784,6 +2917,9 @@ msgstr "إسم شبكه مخفى"
 msgid "Hierarchy Information"
 msgstr "معلومات التسلسل الهرمى"
 
+msgid "Hierarchy info"
+msgstr ""
+
 msgid "Hierarchy mode"
 msgstr "وضعية التسلسل الهرمى"
 
@@ -2944,6 +3080,12 @@ msgstr "معلومات"
 msgid "Init"
 msgstr ""
 
+msgid "Initial Fast Forward speed"
+msgstr ""
+
+msgid "Initial Rewind speed"
+msgstr ""
+
 #
 msgid "Initial location in new timers"
 msgstr ""
@@ -3028,6 +3170,9 @@ msgstr "الفلاش الداخلى"
 msgid "Internal LAN adapter."
 msgstr "محول شبكه محليه داخلى"
 
+msgid "Internal USB Slot"
+msgstr ""
+
 msgid "Internal firmware updater"
 msgstr ""
 
@@ -3215,6 +3360,11 @@ msgstr "إختيار اللغـه"
 msgid "Last config"
 msgstr "التهيئه السابقه"
 
+msgid ""
+"Last day to match events. Events have to begin before this date to be "
+"matched."
+msgstr ""
+
 #
 msgid "Last speed"
 msgstr "السرعه السابقه"
@@ -3660,12 +3810,18 @@ msgstr "قائمة سجل الافلام"
 msgid "Multi EPG"
 msgstr "دليل برامج متعدد"
 
+msgid "Multi-EPG bouquet selection"
+msgstr ""
+
 msgid "Multimedia"
 msgstr "وسائط متعدده"
 
 msgid "Multiple service support"
 msgstr "دعم خدمات متعدده"
 
+msgid "Multiplex"
+msgstr ""
+
 #
 msgid "Multisat"
 msgstr "عدة أقمار"
@@ -3734,6 +3890,9 @@ msgstr ""
 msgid "NFS share"
 msgstr ""
 
+msgid "NIM"
+msgstr ""
+
 msgid "NOW"
 msgstr "الان"
 
@@ -3758,6 +3917,9 @@ msgstr "ضبط أسم الخادم"
 msgid "Nameserver settings"
 msgstr "إعدادات اسم الخادم"
 
+msgid "Namespace"
+msgstr ""
+
 msgid "Nemesis BlackBox Skin"
 msgstr ""
 
@@ -4137,6 +4299,12 @@ msgstr "شمال"
 msgid "Norwegian"
 msgstr "نرويجى"
 
+msgid "Not after"
+msgstr ""
+
+msgid "Not before"
+msgstr ""
+
 #
 #, python-format
 msgid ""
@@ -4186,6 +4354,9 @@ msgstr "موافق، أحذف إضافات اخرى"
 msgid "OK, remove some extensions"
 msgstr "موافق، أحذف بعض الاضافات"
 
+msgid "ONID"
+msgstr ""
+
 #
 msgid "OSD Settings"
 msgstr "إعدادات OSD"
@@ -4253,6 +4424,9 @@ msgstr "أدخل اسم إذا كنت ترغب فى ذلك - إختيارى-"
 msgid "Orbital Position"
 msgstr "الوضع المدارى"
 
+msgid "Orbital position"
+msgstr ""
+
 #
 msgid "Outer Bound (+/-)"
 msgstr ""
@@ -4274,9 +4448,15 @@ msgstr ""
 msgid "PAL"
 msgstr "بال"
 
+msgid "PCR PID"
+msgstr ""
+
 msgid "PIDs"
 msgstr "PIDs"
 
+msgid "PMT PID"
+msgstr ""
+
 #
 msgid "Package list update"
 msgstr "تحديث قائمة الباقات"
@@ -4706,6 +4886,9 @@ msgstr "مدخل د"
 msgid "Portuguese"
 msgstr "برتغالى"
 
+msgid "Position of finished Timers in Timerlist"
+msgstr ""
+
 #
 msgid "Positioner"
 msgstr "الموتور"
@@ -4985,6 +5168,9 @@ msgstr "تسجيلات"
 msgid "Recordings always have priority"
 msgstr "التسجيلات لها الأوليه دائما"
 
+msgid "Redirect notifications to Growl, Snarl, Prowl or Syslog"
+msgstr ""
+
 msgid "Reenter new PIN"
 msgstr ""
 
@@ -5171,6 +5357,9 @@ msgstr ""
 msgid "Restrict \"after event\" to a certain timespan?"
 msgstr ""
 
+msgid "Restrict to events on certain dates"
+msgstr ""
+
 msgid "Resume from last position"
 msgstr "إستعاده من الوضع السابق"
 
@@ -5204,6 +5393,9 @@ msgstr "سرعة العوده للخلف"
 msgid "Right"
 msgstr "يمين"
 
+msgid "Roll-off"
+msgstr ""
+
 #
 msgid "Rolloff"
 msgstr ""
@@ -5216,6 +5408,9 @@ msgstr "سرعة توليف الموتور"
 msgid "Running"
 msgstr ""
 
+msgid "Running in testmode"
+msgstr ""
+
 #
 msgid "Russia"
 msgstr "روسيا"
@@ -5227,6 +5422,21 @@ msgstr "روسى"
 msgid "S-Video"
 msgstr "S-Video"
 
+msgid "SD 25/50HZ Interlace Mode"
+msgstr ""
+
+msgid "SD 25/50HZ Progressive Mode"
+msgstr ""
+
+msgid "SD 30/60HZ Interlace Mode"
+msgstr ""
+
+msgid "SD 30/60HZ Progressive Mode"
+msgstr ""
+
+msgid "SID"
+msgstr ""
+
 #
 msgid "SINGLE LAYER DVD"
 msgstr "دى فى دى أحادى الطبقه"
@@ -5243,6 +5453,19 @@ msgstr "SNR:"
 msgid "SSID:"
 msgstr "SSID:"
 
+msgid ""
+"SVDRP is a protocol developed for the VDR software to control a set-top box "
+"remotely.\n"
+"This plugin only supports a subset of SVDRP and starts automatically using "
+"default settings.\n"
+"\n"
+"You probably don't need this plugin and should use the regular Web Interface "
+"for Enigma2 instead."
+msgstr ""
+
+msgid "SVDRP server for Enigma2"
+msgstr ""
+
 #
 msgid "Sat"
 msgstr "قمر"
@@ -5638,6 +5861,9 @@ msgid ""
 "(SID not found in PAT)"
 msgstr ""
 
+msgid "Service reference"
+msgstr ""
+
 #
 msgid "Service scan"
 msgstr "بحث عـن القنـوات"
@@ -5762,6 +5988,9 @@ msgstr ""
 msgid "Show in extension menu"
 msgstr "شاهد فى الشاشه ألإضافيه"
 
+msgid "Show info screen"
+msgstr "إظهار شاشة المعلومات"
+
 msgid "Show infobar on channel change"
 msgstr "شاهد شريط المعلومات عند تغيير القناه"
 
@@ -5771,6 +6000,9 @@ msgstr "شاهد شريط المعلومات عند تغيير الحدث"
 msgid "Show infobar on skip forward/backward"
 msgstr "شاهد شريط المعلومات عند الانتقال للأمام/الخلف"
 
+msgid "Show notification on conflicts"
+msgstr ""
+
 msgid "Show positioner movement"
 msgstr "شاهد حركة الموتور"
 
@@ -6025,6 +6257,9 @@ msgstr ""
 msgid "Start Webinterface"
 msgstr "أبدا واجهة الشبكه"
 
+msgid "Start easy your multimedia plugins with the PVR-button."
+msgstr ""
+
 #
 msgid "Start from the beginning"
 msgstr "أبدأ من البدايه"
@@ -6144,6 +6379,9 @@ msgstr "الاحد"
 msgid "Sunday"
 msgstr "الاحد"
 
+msgid "Support \"Fast Scan\"?"
+msgstr ""
+
 #
 msgid "Swap Services"
 msgstr ""
@@ -6171,6 +6409,9 @@ msgstr ""
 msgid "Symbol Rate"
 msgstr "معدل الترميز"
 
+msgid "Symbol rate"
+msgstr ""
+
 msgid "Symbolrate"
 msgstr "معدل الترميز"
 
@@ -6187,9 +6428,18 @@ msgstr ""
 msgid "TS file is too large for ISO9660 level 1!"
 msgstr ""
 
+msgid "TSID"
+msgstr ""
+
+msgid "TV Charts of all users"
+msgstr ""
+
 msgid "TV System"
 msgstr "نظام التليفزبـون"
 
+msgid "TXT PID"
+msgstr ""
+
 #
 msgid "Table of content for collection"
 msgstr ""
@@ -6218,6 +6468,9 @@ msgstr "تايوانى"
 msgid "Temperature and Fan control"
 msgstr "درجة الحراره والتحكم فى المروحه"
 
+msgid "Temperature-dependent fan control."
+msgstr ""
+
 #
 msgid "Terrestrial"
 msgstr ""
@@ -7113,10 +7366,6 @@ msgstr ""
 msgid "Use and control multiple Dreamboxes with different RCs."
 msgstr ""
 
-#
-msgid "Use non-smooth winding at speeds above"
-msgstr ""
-
 msgid "Use power measurement"
 msgstr "استخدم قـياس الطاقه"
 
@@ -7191,13 +7440,22 @@ msgstr ""
 msgid "Vali-XD skin"
 msgstr ""
 
+msgid "Vali.HD.atlantis skin"
+msgstr ""
+
 msgid "Vali.HD.nano skin"
 msgstr ""
 
+msgid "Vali.HD.warp skin"
+msgstr ""
+
 msgid ""
 "Verify your Dreambox authenticity by running the genuine dreambox plugin!"
 msgstr ""
 
+msgid "Verifying your internet connection..."
+msgstr ""
+
 msgid "Vertical"
 msgstr "رأسى"
 
@@ -7212,6 +7470,9 @@ msgstr "نافذة الضبط الدقيق للفيديو"
 msgid "Video Output"
 msgstr "مخرج الفيديو"
 
+msgid "Video PID"
+msgstr ""
+
 #
 msgid "Video Setup"
 msgstr "ضبط الفيديو"
@@ -7434,6 +7695,9 @@ msgstr ""
 msgid "Weatherforecast on your Dreambox"
 msgstr ""
 
+msgid "Web-Bouquet-Editor for PC"
+msgstr ""
+
 #
 msgid "Webinterface"
 msgstr "واجهة الشبكه"
@@ -7586,6 +7850,11 @@ msgid "What to do with submitted crashlogs?"
 msgstr ""
 
 msgid ""
+"When supporting \"Fast Scan\" the service type is ignored. You don't need to "
+"enable this unless your Image supports \"Fast Scan\" and you are using it."
+msgstr ""
+
+msgid ""
 "When this option is enabled the AutoTimer won't match events where another "
 "timer with the same description already exists in the timer list."
 msgstr ""
@@ -7824,6 +8093,12 @@ msgid ""
 "in title' is what is looked for in the EPG."
 msgstr ""
 
+msgid ""
+"You can use the EasyInfo for manage your EPG plugins from info button. You "
+"have also a new now-next event viewer. Easy-PG, the own graphical EPG bowser "
+"is also included."
+msgstr ""
+
 #
 msgid "You cannot delete this!"
 msgstr "لايمكنك مسح هذه !"
@@ -7998,6 +8273,9 @@ msgstr "إسمك (إختيارى):"
 msgid "Your network configuration has been activated."
 msgstr "تم تنشيط تكوين الشبكه"
 
+msgid "Your network is not working. Please try again."
+msgstr ""
+
 msgid "Your network mount has been activated."
 msgstr "تم تنشيط إعتلاء الشبكه."
 
@@ -8193,6 +8471,12 @@ msgstr ""
 msgid "assigned Services/Provider:"
 msgstr ""
 
+msgid "at beginning"
+msgstr ""
+
+msgid "at end"
+msgstr ""
+
 #
 #, python-format
 msgid "audio track (%s) format"
@@ -8210,6 +8494,9 @@ msgstr "مسارات الصوت"
 msgid "auto"
 msgstr "تلقائى"
 
+msgid "autotimers need a match attribute"
+msgstr ""
+
 msgid "available"
 msgstr "متاح"
 
@@ -8236,6 +8523,10 @@ msgid "blue"
 msgstr "أزرق"
 
 #
+msgid "bob"
+msgstr "شعبى"
+
+#
 #, python-format
 msgid "burn audio track (%s)"
 msgstr ""
@@ -8273,6 +8564,9 @@ msgstr "مسح قائمة العرض"
 msgid "complex"
 msgstr "مركب"
 
+msgid "config changed."
+msgstr ""
+
 #
 msgid "config menu"
 msgstr "قائمه الضبط"
@@ -8298,6 +8592,12 @@ msgstr "لا يمكن حذفها"
 msgid "create directory"
 msgstr "إنشاء دليل"
 
+msgid "creates virtual series folders from episodes"
+msgstr ""
+
+msgid "creates virtual series folders from sets of recorded episodes"
+msgstr ""
+
 #, python-format
 msgid "currently installed image: %s"
 msgstr ""
@@ -8310,6 +8610,9 @@ msgstr "يومى"
 msgid "day"
 msgstr "يوم"
 
+msgid "default"
+msgstr "إفتراضى"
+
 msgid "delete"
 msgstr "مسح"
 
@@ -8594,6 +8897,9 @@ msgstr "دقيقه"
 msgid "minutes"
 msgstr "دقائق"
 
+msgid "missing parameter \"id\""
+msgstr ""
+
 msgid "month"
 msgstr "شهر"
 
@@ -8760,9 +9066,6 @@ msgstr "أحمر"
 msgid "redesigned Kerni-HD1 skin"
 msgstr ""
 
-msgid "redirect notifications to Growl"
-msgstr ""
-
 #
 msgid "remove a nameserver entry"
 msgstr "حذف مدخلأسم الخادم"
@@ -9045,6 +9348,10 @@ msgstr ""
 msgid "tuner is not supported"
 msgstr ""
 
+#, python-format
+msgid "unable to find timer with id %i"
+msgstr ""
+
 msgid "unavailable"
 msgstr "غير متاح"
 
@@ -9183,15 +9490,6 @@ msgstr "تم الانتقال"
 #~ msgid "Default settings"
 #~ msgstr "الاعـدادات الافتـراضيه"
 
-#~ msgid "Deinterlacer mode for interlaced content"
-#~ msgstr "اسلوب فك التشابك للمحتويات المتشابكه"
-
-#~ msgid "Deinterlacer mode for progressive content"
-#~ msgstr "اسلوب فك التشابك للمحتويات التقدميه"
-
-#~ msgid "Delay x seconds after service started"
-#~ msgstr "تأخير (عدد) ثوانى بعد بدأ القناه"
-
 #~ msgid "Destination directory"
 #~ msgstr "الدليل الوجهه"
 
@@ -9215,25 +9513,12 @@ msgstr "تم الانتقال"
 #~ "الحالى؟"
 
 #
-#~ msgid "Enable 1080p24 Mode"
-#~ msgstr "تفعيل الوضعيه 1080p24"
-
-#
-#~ msgid "Enable 1080p25 Mode"
-#~ msgstr "تفعيل الوضعيه 1080p25"
-
-#
-#~ msgid "Enable 1080p30 Mode"
-#~ msgstr "تفعيل الوضعيه 1080p30"
-
-#
-#~ msgid "Enable 720p24 Mode"
-#~ msgstr "تفعيل الوضعيه 720p24"
-
-#
 #~ msgid "End"
 #~ msgstr "النهايه"
 
+#~ msgid "Enter Rewind at speed"
+#~ msgstr "أدخل سرعة الرجوع"
+
 #
 #~ msgid "Expert Setup"
 #~ msgstr "قائمه اعدادت الخبراء"
@@ -9373,9 +9658,6 @@ msgstr "تم الانتقال"
 #~ msgid "Show Satposition"
 #~ msgstr "مشاهده وضع القمر"
 
-#~ msgid "Show info screen"
-#~ msgstr "إظهار شاشة المعلومات"
-
 #
 #~ msgid "Skip confirmations"
 #~ msgstr "تخطى التأكيد"
@@ -9502,13 +9784,6 @@ msgstr "تم الانتقال"
 #~ "هل تريد وضع رقم سرى الان؟"
 
 #
-#~ msgid "bob"
-#~ msgstr "شعبى"
-
-#~ msgid "default"
-#~ msgstr "إفتراضى"
-
-#
 #~ msgid "empty/unknown"
 #~ msgstr "فارغ/غير معروف"
 
index ed5e7b1..e8ef2a3 100755 (executable)
--- a/po/ca.po
+++ b/po/ca.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ca\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-27 12:42+0000\n"
+"POT-Creation-Date: 2011-04-01 08:09+0000\n"
 "PO-Revision-Date: 2007-08-14 10:23+0200\n"
 "Last-Translator: Oriol Pellicer <oriol@elsud.org>\n"
 "Language-Team: \n"
@@ -177,6 +177,12 @@ msgstr "#ffffffff"
 msgid "%H:%M"
 msgstr "%H:%M"
 
+#, python-format
+msgid ""
+"%d conflict(s) encountered when trying to add new timers:\n"
+"%s"
+msgstr ""
+
 #
 #, python-format
 msgid "%d jobs are running in the background!"
@@ -215,6 +221,10 @@ msgstr ""
 msgid "%s (%s)\n"
 msgstr "%s (%s)\n"
 
+#, python-format
+msgid "%s: %s at %s"
+msgstr ""
+
 #
 msgid "(ZAP)"
 msgstr "(ZAPPEJAR)"
@@ -375,10 +385,10 @@ msgstr "?"
 msgid "A"
 msgstr "Un"
 
-msgid "A BackToTheRoots-Skin .. or good old times."
+msgid "A BackToTheRoots-Skin .. but with Warp-8 speed."
 msgstr ""
 
-msgid "A BackToTheRoots-Skin ... or good old times."
+msgid "A BackToTheRoots-Skin .. or good old times."
 msgstr ""
 
 msgid "A basic ftp client"
@@ -397,6 +407,9 @@ msgstr ""
 msgid "A demo plugin for TPM usage."
 msgstr ""
 
+msgid "A dreambox simulation from SG-Atlantis displays."
+msgstr ""
+
 #
 msgid ""
 "A finished record timer wants to set your\n"
@@ -420,6 +433,9 @@ msgstr ""
 msgid "A graphical EPG interface"
 msgstr ""
 
+msgid "A graphical EPG interface and EPG tools manager"
+msgstr ""
+
 msgid "A graphical EPG interface."
 msgstr ""
 
@@ -867,6 +883,9 @@ msgstr ""
 msgid "Aspect Ratio"
 msgstr "Relació d'aspecte"
 
+msgid "Aspect ratio"
+msgstr ""
+
 msgid "Assigning providers/services/caids to a CI module"
 msgstr ""
 
@@ -881,6 +900,9 @@ msgstr "So"
 msgid "Audio Options..."
 msgstr "Opcions d'àudio"
 
+msgid "Audio PID"
+msgstr ""
+
 #
 msgid "Audio Sync"
 msgstr ""
@@ -947,6 +969,15 @@ msgid ""
 "criteria."
 msgstr ""
 
+msgid "AutoTimer was added successfully"
+msgstr ""
+
+msgid "AutoTimer was changed successfully"
+msgstr ""
+
+msgid "AutoTimer was removed"
+msgstr ""
+
 #
 msgid "Automatic"
 msgstr ""
@@ -981,6 +1012,24 @@ msgstr ""
 msgid "Automatically send crashlogs to Dream Multimedia"
 msgstr ""
 
+#, python-format
+msgid ""
+"Autoresolution Plugin Testmode:\n"
+"Is %s ok?"
+msgstr ""
+
+msgid "Autoresolution Switch"
+msgstr ""
+
+msgid "Autoresolution is not working in Scart/DVI-PC Mode"
+msgstr ""
+
+msgid "Autoresolution settings"
+msgstr ""
+
+msgid "Autoresolution videomode setup"
+msgstr ""
+
 #
 msgid "Autos & Vehicles"
 msgstr ""
@@ -1023,6 +1072,12 @@ msgstr "BER:"
 msgid "Back"
 msgstr ""
 
+msgid "Back, lower USB Slot"
+msgstr ""
+
+msgid "Back, upper USB Slot"
+msgstr ""
+
 #
 msgid "Background"
 msgstr ""
@@ -1117,6 +1172,11 @@ msgstr ""
 msgid "Brightness"
 msgstr "Brillantor"
 
+msgid ""
+"Browse ORF and SAT1 Teletext independent from channel. This need I-net "
+"conection."
+msgstr ""
+
 msgid "Browse for and connect to network shares"
 msgstr ""
 
@@ -1146,6 +1206,17 @@ msgstr ""
 msgid "Bus: "
 msgstr "Bus: "
 
+msgid ""
+"By enabling this events will not be matched if they don't occur on certain "
+"dates."
+msgstr ""
+
+msgid ""
+"By enabling this you will be notified about timer conflicts found during "
+"automated polling. There is no intelligence involved, so it might bother you "
+"about the same conflict over and over."
+msgstr ""
+
 #
 msgid ""
 "By pressing the OK Button on your remote control, the info bar is being "
@@ -1413,6 +1484,12 @@ msgstr ""
 msgid "Close title selection"
 msgstr ""
 
+msgid "Code rate HP"
+msgstr ""
+
+msgid "Code rate LP"
+msgstr ""
+
 #
 msgid "Code rate high"
 msgstr "Velocitat de codi alta"
@@ -1611,6 +1688,10 @@ msgstr ""
 msgid "Couldn't record due to conflicting timer %s"
 msgstr ""
 
+#, python-format
+msgid "Couldn't record due to invalid service %s"
+msgstr ""
+
 #
 msgid "Crashlog settings"
 msgstr ""
@@ -1790,6 +1871,9 @@ msgstr "DVB-S"
 msgid "DVB-S2"
 msgstr "DVB-S2"
 
+msgid "DVD Drive"
+msgstr ""
+
 #
 msgid "DVD File Browser"
 msgstr ""
@@ -1875,10 +1959,19 @@ msgstr ""
 msgid "Define a startup service for your Dreambox."
 msgstr ""
 
+msgid "Deinterlacer mode for interlaced content"
+msgstr ""
+
+msgid "Deinterlacer mode for progressive content"
+msgstr ""
+
 #
 msgid "Delay"
 msgstr "Retard"
 
+msgid "Delay x seconds after service started"
+msgstr ""
+
 #
 msgid "Delete"
 msgstr "Esborrar"
@@ -2060,6 +2153,12 @@ msgid ""
 "This could take lots of time!"
 msgstr ""
 
+#, python-format
+msgid ""
+"Do you really want to delete %s\n"
+"%s?"
+msgstr ""
+
 #
 #, python-format
 msgid "Do you really want to delete %s?"
@@ -2394,10 +2493,25 @@ msgstr "Activar"
 msgid "Enable /media"
 msgstr ""
 
+msgid "Enable 1080p24 Mode"
+msgstr ""
+
+msgid "Enable 1080p25 Mode"
+msgstr ""
+
+msgid "Enable 1080p30 Mode"
+msgstr ""
+
 #
 msgid "Enable 5V for active antenna"
 msgstr "Activar 5V per a antena activa"
 
+msgid "Enable 720p24 Mode"
+msgstr ""
+
+msgid "Enable Autoresolution"
+msgstr ""
+
 #
 msgid "Enable Cleanup Wizard?"
 msgstr ""
@@ -2518,18 +2632,10 @@ msgid ""
 msgstr ""
 
 #
-msgid "Enter Fast Forward at speed"
-msgstr ""
-
-#
 msgid "Enter IP to scan..."
 msgstr ""
 
 #
-msgid "Enter Rewind at speed"
-msgstr ""
-
-#
 msgid "Enter main menu..."
 msgstr "Entrar al menú principal..."
 
@@ -2799,6 +2905,11 @@ msgstr ""
 msgid "Finnish"
 msgstr "Finlandès"
 
+msgid ""
+"First day to match events. No event that begins before this date will be "
+"matched."
+msgstr ""
+
 msgid "First generate your skin-style with the Ai.HD-Control plugin."
 msgstr ""
 
@@ -2818,15 +2929,17 @@ msgstr ""
 msgid "Format"
 msgstr ""
 
-#
 #, python-format
 msgid ""
 "Found a total of %d matching Events.\n"
-"%d Timer were added and %d modified."
+"%d Timer were added and %d modified, %d conflicts encountered."
 msgstr ""
 
 #
-msgid "Frame repeat count during non-smooth winding"
+#, python-format
+msgid ""
+"Found a total of %d matching Events.\n"
+"%d Timer were added and %d modified."
 msgstr ""
 
 #
@@ -2873,6 +2986,9 @@ msgstr ""
 msgid "FritzCall shows incoming calls to your Fritz!Box on your Dreambox."
 msgstr ""
 
+msgid "Front USB Slot"
+msgstr ""
+
 msgid "Frontend for /tmp/mmi.socket"
 msgstr ""
 
@@ -2927,6 +3043,9 @@ msgstr ""
 msgid "General PCM delay (ms)"
 msgstr ""
 
+msgid "Generates and Shows TV Charts of all users having this plugin installed"
+msgstr ""
+
 #
 msgid "Genre"
 msgstr "Gènere"
@@ -3005,15 +3124,18 @@ msgid "Green boost"
 msgstr ""
 
 msgid ""
-"Growlee allows your Dreambox to send short messages using the growl "
-"protocol\n"
-"like Recording started notifications to a PC running a growl client"
+"Growlee allows your Dreambox to forward notifications like 'Record started' "
+"to a PC running a growl, snarl or syslog compatible client or directly to an "
+"iPhone using prowl."
 msgstr ""
 
 #
 msgid "Guard Interval"
 msgstr "Interval de guarda"
 
+msgid "Guard interval"
+msgstr ""
+
 #
 msgid "Guard interval mode"
 msgstr "Mode interval segur"
@@ -3022,6 +3144,12 @@ msgstr "Mode interval segur"
 msgid "Guess existing timer based on begin/end"
 msgstr ""
 
+msgid "HD Interlace Mode"
+msgstr ""
+
+msgid "HD Progressive Mode"
+msgstr ""
+
 #
 msgid "HD videos"
 msgstr ""
@@ -3062,6 +3190,9 @@ msgstr ""
 msgid "Hierarchy Information"
 msgstr "Informació jeràrquica"
 
+msgid "Hierarchy info"
+msgstr ""
+
 #
 msgid "Hierarchy mode"
 msgstr "Mode jeràrquic"
@@ -3234,6 +3365,12 @@ msgstr "Informació"
 msgid "Init"
 msgstr "Iniciar"
 
+msgid "Initial Fast Forward speed"
+msgstr ""
+
+msgid "Initial Rewind speed"
+msgstr ""
+
 #
 msgid "Initial location in new timers"
 msgstr ""
@@ -3335,6 +3472,9 @@ msgstr "Flash interna"
 msgid "Internal LAN adapter."
 msgstr ""
 
+msgid "Internal USB Slot"
+msgstr ""
+
 msgid "Internal firmware updater"
 msgstr ""
 
@@ -3532,6 +3672,11 @@ msgstr "Selecció d'idioma"
 msgid "Last config"
 msgstr ""
 
+msgid ""
+"Last day to match events. Events have to begin before this date to be "
+"matched."
+msgstr ""
+
 #
 msgid "Last speed"
 msgstr ""
@@ -4013,6 +4158,9 @@ msgstr ""
 msgid "Multi EPG"
 msgstr "Multi EPG"
 
+msgid "Multi-EPG bouquet selection"
+msgstr ""
+
 #
 msgid "Multimedia"
 msgstr ""
@@ -4021,6 +4169,9 @@ msgstr ""
 msgid "Multiple service support"
 msgstr "Suport per a serveis múltiples"
 
+msgid "Multiplex"
+msgstr ""
+
 #
 msgid "Multisat"
 msgstr "Multisat"
@@ -4090,6 +4241,9 @@ msgstr ""
 msgid "NFS share"
 msgstr ""
 
+msgid "NIM"
+msgstr ""
+
 #
 msgid "NOW"
 msgstr "ARA"
@@ -4119,6 +4273,9 @@ msgstr "Configuració dels DNS"
 msgid "Nameserver settings"
 msgstr ""
 
+msgid "Namespace"
+msgstr ""
+
 msgid "Nemesis BlackBox Skin"
 msgstr ""
 
@@ -4527,6 +4684,12 @@ msgstr "Nord"
 msgid "Norwegian"
 msgstr "Noruec"
 
+msgid "Not after"
+msgstr ""
+
+msgid "Not before"
+msgstr ""
+
 #
 #, python-format
 msgid ""
@@ -4577,6 +4740,9 @@ msgstr ""
 msgid "OK, remove some extensions"
 msgstr ""
 
+msgid "ONID"
+msgstr ""
+
 #
 msgid "OSD Settings"
 msgstr "Config OSD"
@@ -4650,6 +4816,9 @@ msgstr ""
 msgid "Orbital Position"
 msgstr "Posició orbital"
 
+msgid "Orbital position"
+msgstr ""
+
 #
 msgid "Outer Bound (+/-)"
 msgstr ""
@@ -4671,11 +4840,17 @@ msgstr ""
 msgid "PAL"
 msgstr "PAL"
 
+msgid "PCR PID"
+msgstr ""
+
 #
 #, fuzzy
 msgid "PIDs"
 msgstr "PIDs"
 
+msgid "PMT PID"
+msgstr ""
+
 #
 msgid "Package list update"
 msgstr "Actualització de la llista de paquets"
@@ -5153,6 +5328,9 @@ msgstr "Port D"
 msgid "Portuguese"
 msgstr "Portuguès"
 
+msgid "Position of finished Timers in Timerlist"
+msgstr ""
+
 #
 msgid "Positioner"
 msgstr "Motor"
@@ -5478,6 +5656,9 @@ msgstr ""
 msgid "Recordings always have priority"
 msgstr "Les gravacions tenen prioritat"
 
+msgid "Redirect notifications to Growl, Snarl, Prowl or Syslog"
+msgstr ""
+
 msgid "Reenter new PIN"
 msgstr ""
 
@@ -5699,6 +5880,9 @@ msgstr ""
 msgid "Restrict \"after event\" to a certain timespan?"
 msgstr ""
 
+msgid "Restrict to events on certain dates"
+msgstr ""
+
 #
 msgid "Resume from last position"
 msgstr ""
@@ -5739,6 +5923,9 @@ msgstr ""
 msgid "Right"
 msgstr "Dreta"
 
+msgid "Roll-off"
+msgstr ""
+
 #
 #, fuzzy
 msgid "Rolloff"
@@ -5752,6 +5939,9 @@ msgstr "Velocitat de rotació del motor"
 msgid "Running"
 msgstr "Mostrant"
 
+msgid "Running in testmode"
+msgstr ""
+
 #
 msgid "Russia"
 msgstr ""
@@ -5764,6 +5954,21 @@ msgstr "Rus"
 msgid "S-Video"
 msgstr "S-Vídeo"
 
+msgid "SD 25/50HZ Interlace Mode"
+msgstr ""
+
+msgid "SD 25/50HZ Progressive Mode"
+msgstr ""
+
+msgid "SD 30/60HZ Interlace Mode"
+msgstr ""
+
+msgid "SD 30/60HZ Progressive Mode"
+msgstr ""
+
+msgid "SID"
+msgstr ""
+
 #
 msgid "SINGLE LAYER DVD"
 msgstr ""
@@ -5780,6 +5985,19 @@ msgstr ""
 msgid "SSID:"
 msgstr ""
 
+msgid ""
+"SVDRP is a protocol developed for the VDR software to control a set-top box "
+"remotely.\n"
+"This plugin only supports a subset of SVDRP and starts automatically using "
+"default settings.\n"
+"\n"
+"You probably don't need this plugin and should use the regular Web Interface "
+"for Enigma2 instead."
+msgstr ""
+
+msgid "SVDRP server for Enigma2"
+msgstr ""
+
 #
 msgid "Sat"
 msgstr "Dis"
@@ -6242,6 +6460,9 @@ msgstr ""
 "No s'ha trobat el canal!\n"
 "(No s'ha trobat el SID al PAT)"
 
+msgid "Service reference"
+msgstr ""
+
 #
 msgid "Service scan"
 msgstr "Buscar canals"
@@ -6374,6 +6595,9 @@ msgstr ""
 msgid "Show in extension menu"
 msgstr ""
 
+msgid "Show info screen"
+msgstr ""
+
 #
 msgid "Show infobar on channel change"
 msgstr "Mostrar la barra d'info canviant de canal"
@@ -6386,6 +6610,9 @@ msgstr "Mostrar la barra en canviar el programa"
 msgid "Show infobar on skip forward/backward"
 msgstr "Mostrar la barra anant endavant/enrere"
 
+msgid "Show notification on conflicts"
+msgstr ""
+
 #
 msgid "Show positioner movement"
 msgstr "Mostrar el moviment del motor"
@@ -6655,6 +6882,9 @@ msgstr ""
 msgid "Start Webinterface"
 msgstr ""
 
+msgid "Start easy your multimedia plugins with the PVR-button."
+msgstr ""
+
 #
 msgid "Start from the beginning"
 msgstr ""
@@ -6778,6 +7008,9 @@ msgstr "Diu"
 msgid "Sunday"
 msgstr "Diumenge"
 
+msgid "Support \"Fast Scan\"?"
+msgstr ""
+
 #
 msgid "Swap Services"
 msgstr "Intercanviar canals"
@@ -6806,6 +7039,9 @@ msgstr ""
 msgid "Symbol Rate"
 msgstr "Velocitat de símbol"
 
+msgid "Symbol rate"
+msgstr ""
+
 #
 msgid "Symbolrate"
 msgstr "Velocitat de símbol"
@@ -6823,10 +7059,19 @@ msgstr ""
 msgid "TS file is too large for ISO9660 level 1!"
 msgstr ""
 
+msgid "TSID"
+msgstr ""
+
+msgid "TV Charts of all users"
+msgstr ""
+
 #
 msgid "TV System"
 msgstr "Sistema de TV"
 
+msgid "TXT PID"
+msgstr ""
+
 #
 msgid "Table of content for collection"
 msgstr ""
@@ -6859,6 +7104,9 @@ msgstr ""
 msgid "Temperature and Fan control"
 msgstr ""
 
+msgid "Temperature-dependent fan control."
+msgstr ""
+
 #
 msgid "Terrestrial"
 msgstr "Terrestre"
@@ -7776,10 +8024,6 @@ msgid "Use and control multiple Dreamboxes with different RCs."
 msgstr ""
 
 #
-msgid "Use non-smooth winding at speeds above"
-msgstr ""
-
-#
 msgid "Use power measurement"
 msgstr "Utilitza les mesures de corrent"
 
@@ -7862,13 +8106,22 @@ msgstr ""
 msgid "Vali-XD skin"
 msgstr ""
 
+msgid "Vali.HD.atlantis skin"
+msgstr ""
+
 msgid "Vali.HD.nano skin"
 msgstr ""
 
+msgid "Vali.HD.warp skin"
+msgstr ""
+
 msgid ""
 "Verify your Dreambox authenticity by running the genuine dreambox plugin!"
 msgstr ""
 
+msgid "Verifying your internet connection..."
+msgstr ""
+
 #
 msgid "Vertical"
 msgstr ""
@@ -7885,6 +8138,9 @@ msgstr ""
 msgid "Video Output"
 msgstr ""
 
+msgid "Video PID"
+msgstr ""
+
 #
 msgid "Video Setup"
 msgstr ""
@@ -8125,6 +8381,9 @@ msgstr ""
 msgid "Weatherforecast on your Dreambox"
 msgstr ""
 
+msgid "Web-Bouquet-Editor for PC"
+msgstr ""
+
 #
 msgid "Webinterface"
 msgstr ""
@@ -8264,6 +8523,11 @@ msgstr "Què vols buscar?"
 msgid "What to do with submitted crashlogs?"
 msgstr ""
 
+msgid ""
+"When supporting \"Fast Scan\" the service type is ignored. You don't need to "
+"enable this unless your Image supports \"Fast Scan\" and you are using it."
+msgstr ""
+
 #
 msgid ""
 "When this option is enabled the AutoTimer won't match events where another "
@@ -8519,6 +8783,12 @@ msgid ""
 "in title' is what is looked for in the EPG."
 msgstr ""
 
+msgid ""
+"You can use the EasyInfo for manage your EPG plugins from info button. You "
+"have also a new now-next event viewer. Easy-PG, the own graphical EPG bowser "
+"is also included."
+msgstr ""
+
 #
 msgid "You cannot delete this!"
 msgstr "Això no es pot eliminar!"
@@ -8695,6 +8965,9 @@ msgstr ""
 msgid "Your network configuration has been activated."
 msgstr ""
 
+msgid "Your network is not working. Please try again."
+msgstr ""
+
 #
 msgid "Your network mount has been activated."
 msgstr ""
@@ -8912,6 +9185,12 @@ msgstr ""
 msgid "assigned Services/Provider:"
 msgstr ""
 
+msgid "at beginning"
+msgstr ""
+
+msgid "at end"
+msgstr ""
+
 #
 #, python-format
 msgid "audio track (%s) format"
@@ -8930,6 +9209,9 @@ msgstr ""
 msgid "auto"
 msgstr ""
 
+msgid "autotimers need a match attribute"
+msgstr ""
+
 #
 msgid "available"
 msgstr ""
@@ -8962,6 +9244,9 @@ msgstr "llista negra"
 msgid "blue"
 msgstr ""
 
+msgid "bob"
+msgstr ""
+
 #
 #, python-format
 msgid "burn audio track (%s)"
@@ -9003,6 +9288,9 @@ msgstr "netejar la llista"
 msgid "complex"
 msgstr "complexe"
 
+msgid "config changed."
+msgstr ""
+
 #
 msgid "config menu"
 msgstr "menú configuració"
@@ -9034,6 +9322,12 @@ msgstr ""
 msgid "create directory"
 msgstr ""
 
+msgid "creates virtual series folders from episodes"
+msgstr ""
+
+msgid "creates virtual series folders from sets of recorded episodes"
+msgstr ""
+
 #, python-format
 msgid "currently installed image: %s"
 msgstr ""
@@ -9046,6 +9340,9 @@ msgstr "diàriament"
 msgid "day"
 msgstr ""
 
+msgid "default"
+msgstr ""
+
 #
 msgid "delete"
 msgstr "esborrar"
@@ -9385,6 +9682,9 @@ msgstr "minut"
 msgid "minutes"
 msgstr "minuts"
 
+msgid "missing parameter \"id\""
+msgstr ""
+
 #
 msgid "month"
 msgstr ""
@@ -9586,9 +9886,6 @@ msgstr ""
 msgid "redesigned Kerni-HD1 skin"
 msgstr ""
 
-msgid "redirect notifications to Growl"
-msgstr ""
-
 #
 msgid "remove a nameserver entry"
 msgstr ""
@@ -9925,6 +10222,10 @@ msgstr ""
 msgid "tuner is not supported"
 msgstr ""
 
+#, python-format
+msgid "unable to find timer with id %i"
+msgstr ""
+
 #
 msgid "unavailable"
 msgstr ""
index 9c492d6..cbb336f 100755 (executable)
--- a/po/cs.po
+++ b/po/cs.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-27 12:42+0000\n"
+"POT-Creation-Date: 2011-04-01 08:09+0000\n"
 "PO-Revision-Date: 2008-09-28 18:09+0100\n"
 "Last-Translator: ws79 <ws79@centrum.cz>\n"
 "Language-Team: \n"
@@ -171,6 +171,12 @@ msgstr "#ffffffff"
 msgid "%H:%M"
 msgstr "%H:%M"
 
+#, python-format
+msgid ""
+"%d conflict(s) encountered when trying to add new timers:\n"
+"%s"
+msgstr ""
+
 #
 #, python-format
 msgid "%d jobs are running in the background!"
@@ -209,6 +215,10 @@ msgstr ""
 msgid "%s (%s)\n"
 msgstr "%s (%s)\n"
 
+#, python-format
+msgid "%s: %s at %s"
+msgstr ""
+
 #
 msgid "(ZAP)"
 msgstr "(Přepnout)"
@@ -365,10 +375,10 @@ msgstr "??"
 msgid "A"
 msgstr "A"
 
-msgid "A BackToTheRoots-Skin .. or good old times."
+msgid "A BackToTheRoots-Skin .. but with Warp-8 speed."
 msgstr ""
 
-msgid "A BackToTheRoots-Skin ... or good old times."
+msgid "A BackToTheRoots-Skin .. or good old times."
 msgstr ""
 
 msgid "A basic ftp client"
@@ -389,6 +399,9 @@ msgstr ""
 msgid "A demo plugin for TPM usage."
 msgstr ""
 
+msgid "A dreambox simulation from SG-Atlantis displays."
+msgstr ""
+
 #
 msgid ""
 "A finished record timer wants to set your\n"
@@ -409,6 +422,9 @@ msgstr "Grafické EPG pro všechny stanice ve specifickém bukletu"
 msgid "A graphical EPG interface"
 msgstr ""
 
+msgid "A graphical EPG interface and EPG tools manager"
+msgstr ""
+
 msgid "A graphical EPG interface."
 msgstr ""
 
@@ -856,6 +872,9 @@ msgstr "Zeptat se"
 msgid "Aspect Ratio"
 msgstr "Poměr"
 
+msgid "Aspect ratio"
+msgstr ""
+
 msgid "Assigning providers/services/caids to a CI module"
 msgstr ""
 
@@ -870,6 +889,9 @@ msgstr "Zvuk"
 msgid "Audio Options..."
 msgstr "Nastavení zvuku..."
 
+msgid "Audio PID"
+msgstr ""
+
 #
 msgid "Audio Sync"
 msgstr ""
@@ -936,6 +958,15 @@ msgid ""
 "criteria."
 msgstr ""
 
+msgid "AutoTimer was added successfully"
+msgstr ""
+
+msgid "AutoTimer was changed successfully"
+msgstr ""
+
+msgid "AutoTimer was removed"
+msgstr ""
+
 #
 msgid "Automatic"
 msgstr "Automatické"
@@ -970,6 +1001,24 @@ msgstr ""
 msgid "Automatically send crashlogs to Dream Multimedia"
 msgstr ""
 
+#, python-format
+msgid ""
+"Autoresolution Plugin Testmode:\n"
+"Is %s ok?"
+msgstr ""
+
+msgid "Autoresolution Switch"
+msgstr ""
+
+msgid "Autoresolution is not working in Scart/DVI-PC Mode"
+msgstr ""
+
+msgid "Autoresolution settings"
+msgstr ""
+
+msgid "Autoresolution videomode setup"
+msgstr ""
+
 #
 msgid "Autos & Vehicles"
 msgstr ""
@@ -1012,6 +1061,12 @@ msgstr "BER:"
 msgid "Back"
 msgstr "Zpět"
 
+msgid "Back, lower USB Slot"
+msgstr ""
+
+msgid "Back, upper USB Slot"
+msgstr ""
+
 #
 msgid "Background"
 msgstr ""
@@ -1106,6 +1161,11 @@ msgstr ""
 msgid "Brightness"
 msgstr "Světlost"
 
+msgid ""
+"Browse ORF and SAT1 Teletext independent from channel. This need I-net "
+"conection."
+msgstr ""
+
 msgid "Browse for and connect to network shares"
 msgstr ""
 
@@ -1135,6 +1195,17 @@ msgstr ""
 msgid "Bus: "
 msgstr "Sběrnice: "
 
+msgid ""
+"By enabling this events will not be matched if they don't occur on certain "
+"dates."
+msgstr ""
+
+msgid ""
+"By enabling this you will be notified about timer conflicts found during "
+"automated polling. There is no intelligence involved, so it might bother you "
+"about the same conflict over and over."
+msgstr ""
+
 #
 msgid ""
 "By pressing the OK Button on your remote control, the info bar is being "
@@ -1401,6 +1472,12 @@ msgstr ""
 msgid "Close title selection"
 msgstr ""
 
+msgid "Code rate HP"
+msgstr ""
+
+msgid "Code rate LP"
+msgstr ""
+
 #
 msgid "Code rate high"
 msgstr "Vysoká kódová rychlost"
@@ -1599,6 +1676,10 @@ msgstr ""
 msgid "Couldn't record due to conflicting timer %s"
 msgstr ""
 
+#, python-format
+msgid "Couldn't record due to invalid service %s"
+msgstr ""
+
 #
 msgid "Crashlog settings"
 msgstr ""
@@ -1778,6 +1859,9 @@ msgstr "DVB-S"
 msgid "DVB-S2"
 msgstr "DVB-S2"
 
+msgid "DVD Drive"
+msgstr ""
+
 #
 msgid "DVD File Browser"
 msgstr ""
@@ -1863,10 +1947,19 @@ msgstr ""
 msgid "Define a startup service for your Dreambox."
 msgstr ""
 
+msgid "Deinterlacer mode for interlaced content"
+msgstr ""
+
+msgid "Deinterlacer mode for progressive content"
+msgstr ""
+
 #
 msgid "Delay"
 msgstr "Zpožděni"
 
+msgid "Delay x seconds after service started"
+msgstr ""
+
 #
 msgid "Delete"
 msgstr "Vymazat"
@@ -2052,6 +2145,12 @@ msgstr ""
 "Opravdu chcete zkontrolovat souborový systém?\n"
 "Může to trvat dlouho!"
 
+#, python-format
+msgid ""
+"Do you really want to delete %s\n"
+"%s?"
+msgstr ""
+
 #
 #, python-format
 msgid "Do you really want to delete %s?"
@@ -2386,10 +2485,25 @@ msgstr "Povolit"
 msgid "Enable /media"
 msgstr ""
 
+msgid "Enable 1080p24 Mode"
+msgstr ""
+
+msgid "Enable 1080p25 Mode"
+msgstr ""
+
+msgid "Enable 1080p30 Mode"
+msgstr ""
+
 #
 msgid "Enable 5V for active antenna"
 msgstr "Povolit 5V pro aktivní anténu"
 
+msgid "Enable 720p24 Mode"
+msgstr ""
+
+msgid "Enable Autoresolution"
+msgstr ""
+
 #
 msgid "Enable Cleanup Wizard?"
 msgstr ""
@@ -2510,18 +2624,10 @@ msgid ""
 msgstr ""
 
 #
-msgid "Enter Fast Forward at speed"
-msgstr "Začít přetáčení vpřed na rychlosti"
-
-#
 msgid "Enter IP to scan..."
 msgstr ""
 
 #
-msgid "Enter Rewind at speed"
-msgstr "Začít přetáčení zpět na rychlosti"
-
-#
 msgid "Enter main menu..."
 msgstr "Vstoupit do menu..."
 
@@ -2790,6 +2896,11 @@ msgstr ""
 msgid "Finnish"
 msgstr "Finsky"
 
+msgid ""
+"First day to match events. No event that begins before this date will be "
+"matched."
+msgstr ""
+
 msgid "First generate your skin-style with the Ai.HD-Control plugin."
 msgstr ""
 
@@ -2809,16 +2920,18 @@ msgstr ""
 msgid "Format"
 msgstr ""
 
-#
 #, python-format
 msgid ""
 "Found a total of %d matching Events.\n"
-"%d Timer were added and %d modified."
+"%d Timer were added and %d modified, %d conflicts encountered."
 msgstr ""
 
 #
-msgid "Frame repeat count during non-smooth winding"
-msgstr "Počet opakování obrázku během skokového přetáčení"
+#, python-format
+msgid ""
+"Found a total of %d matching Events.\n"
+"%d Timer were added and %d modified."
+msgstr ""
 
 #
 msgid "Frame size in full view"
@@ -2863,6 +2976,9 @@ msgstr ""
 msgid "FritzCall shows incoming calls to your Fritz!Box on your Dreambox."
 msgstr ""
 
+msgid "Front USB Slot"
+msgstr ""
+
 msgid "Frontend for /tmp/mmi.socket"
 msgstr ""
 
@@ -2917,6 +3033,9 @@ msgstr ""
 msgid "General PCM delay (ms)"
 msgstr ""
 
+msgid "Generates and Shows TV Charts of all users having this plugin installed"
+msgstr ""
+
 #
 msgid "Genre"
 msgstr "Žánr"
@@ -2995,15 +3114,18 @@ msgid "Green boost"
 msgstr ""
 
 msgid ""
-"Growlee allows your Dreambox to send short messages using the growl "
-"protocol\n"
-"like Recording started notifications to a PC running a growl client"
+"Growlee allows your Dreambox to forward notifications like 'Record started' "
+"to a PC running a growl, snarl or syslog compatible client or directly to an "
+"iPhone using prowl."
 msgstr ""
 
 #
 msgid "Guard Interval"
 msgstr "Hlídat interval"
 
+msgid "Guard interval"
+msgstr ""
+
 #
 msgid "Guard interval mode"
 msgstr "Hlídat interval mód"
@@ -3012,6 +3134,12 @@ msgstr "Hlídat interval mód"
 msgid "Guess existing timer based on begin/end"
 msgstr ""
 
+msgid "HD Interlace Mode"
+msgstr ""
+
+msgid "HD Progressive Mode"
+msgstr ""
+
 #
 msgid "HD videos"
 msgstr ""
@@ -3052,6 +3180,9 @@ msgstr ""
 msgid "Hierarchy Information"
 msgstr "Hierarchické informace"
 
+msgid "Hierarchy info"
+msgstr ""
+
 #
 msgid "Hierarchy mode"
 msgstr "Hiearchický mód"
@@ -3232,6 +3363,12 @@ msgstr "Informace"
 msgid "Init"
 msgstr "Init"
 
+msgid "Initial Fast Forward speed"
+msgstr ""
+
+msgid "Initial Rewind speed"
+msgstr ""
+
 #
 msgid "Initial location in new timers"
 msgstr ""
@@ -3333,6 +3470,9 @@ msgstr "Interní flash"
 msgid "Internal LAN adapter."
 msgstr ""
 
+msgid "Internal USB Slot"
+msgstr ""
+
 msgid "Internal firmware updater"
 msgstr ""
 
@@ -3530,6 +3670,11 @@ msgstr "Výběr jazyka"
 msgid "Last config"
 msgstr ""
 
+msgid ""
+"Last day to match events. Events have to begin before this date to be "
+"matched."
+msgstr ""
+
 #
 msgid "Last speed"
 msgstr "Poslední rychlost"
@@ -4010,6 +4155,9 @@ msgstr "Filmové menu"
 msgid "Multi EPG"
 msgstr "Multi EPG"
 
+msgid "Multi-EPG bouquet selection"
+msgstr ""
+
 #
 msgid "Multimedia"
 msgstr ""
@@ -4018,6 +4166,9 @@ msgstr ""
 msgid "Multiple service support"
 msgstr "Podpora vícenásobného programu"
 
+msgid "Multiplex"
+msgstr ""
+
 #
 msgid "Multisat"
 msgstr "Multisat"
@@ -4087,6 +4238,9 @@ msgstr ""
 msgid "NFS share"
 msgstr ""
 
+msgid "NIM"
+msgstr ""
+
 #
 msgid "NOW"
 msgstr "NYNÍ"
@@ -4116,6 +4270,9 @@ msgstr "Nastavení DNS (nameserver)"
 msgid "Nameserver settings"
 msgstr "Nastavení DNS (nameserver)"
 
+msgid "Namespace"
+msgstr ""
+
 msgid "Nemesis BlackBox Skin"
 msgstr ""
 
@@ -4524,6 +4681,12 @@ msgstr "Severní"
 msgid "Norwegian"
 msgstr "Norsky"
 
+msgid "Not after"
+msgstr ""
+
+msgid "Not before"
+msgstr ""
+
 #
 #, python-format
 msgid ""
@@ -4577,6 +4740,9 @@ msgstr ""
 msgid "OK, remove some extensions"
 msgstr ""
 
+msgid "ONID"
+msgstr ""
+
 #
 msgid "OSD Settings"
 msgstr "Nastavení OSD"
@@ -4650,6 +4816,9 @@ msgstr ""
 msgid "Orbital Position"
 msgstr "Orbitální pozice"
 
+msgid "Orbital position"
+msgstr ""
+
 #
 msgid "Outer Bound (+/-)"
 msgstr ""
@@ -4671,10 +4840,16 @@ msgstr ""
 msgid "PAL"
 msgstr "PAL"
 
+msgid "PCR PID"
+msgstr ""
+
 #
 msgid "PIDs"
 msgstr "PIDy"
 
+msgid "PMT PID"
+msgstr ""
+
 #
 msgid "Package list update"
 msgstr "Aktualizován seznam balíčků"
@@ -5152,6 +5327,9 @@ msgstr "Port D"
 msgid "Portuguese"
 msgstr "Portugalsky"
 
+msgid "Position of finished Timers in Timerlist"
+msgstr ""
+
 #
 msgid "Positioner"
 msgstr "Positioner"
@@ -5477,6 +5655,9 @@ msgstr ""
 msgid "Recordings always have priority"
 msgstr "Nahrávání má vždy prioritu"
 
+msgid "Redirect notifications to Growl, Snarl, Prowl or Syslog"
+msgstr ""
+
 msgid "Reenter new PIN"
 msgstr ""
 
@@ -5698,6 +5879,9 @@ msgstr ""
 msgid "Restrict \"after event\" to a certain timespan?"
 msgstr ""
 
+msgid "Restrict to events on certain dates"
+msgstr ""
+
 #
 msgid "Resume from last position"
 msgstr "Pokračovat z poslední pozice"
@@ -5738,6 +5922,9 @@ msgstr "Rychlosti přetáčení zpět"
 msgid "Right"
 msgstr "Vpravo"
 
+msgid "Roll-off"
+msgstr ""
+
 #
 msgid "Rolloff"
 msgstr ""
@@ -5750,6 +5937,9 @@ msgstr "Rychlost otáčení rotoru"
 msgid "Running"
 msgstr "Zobrazuji"
 
+msgid "Running in testmode"
+msgstr ""
+
 #
 msgid "Russia"
 msgstr ""
@@ -5762,6 +5952,21 @@ msgstr "Rusky"
 msgid "S-Video"
 msgstr "S-Video"
 
+msgid "SD 25/50HZ Interlace Mode"
+msgstr ""
+
+msgid "SD 25/50HZ Progressive Mode"
+msgstr ""
+
+msgid "SD 30/60HZ Interlace Mode"
+msgstr ""
+
+msgid "SD 30/60HZ Progressive Mode"
+msgstr ""
+
+msgid "SID"
+msgstr ""
+
 #
 msgid "SINGLE LAYER DVD"
 msgstr ""
@@ -5778,6 +5983,19 @@ msgstr "SNR:"
 msgid "SSID:"
 msgstr ""
 
+msgid ""
+"SVDRP is a protocol developed for the VDR software to control a set-top box "
+"remotely.\n"
+"This plugin only supports a subset of SVDRP and starts automatically using "
+"default settings.\n"
+"\n"
+"You probably don't need this plugin and should use the regular Web Interface "
+"for Enigma2 instead."
+msgstr ""
+
+msgid "SVDRP server for Enigma2"
+msgstr ""
+
 #
 msgid "Sat"
 msgstr "So"
@@ -6239,6 +6457,9 @@ msgstr ""
 "Služba nebyla nalezena!\n"
 "(SID nebyl nalezen v PAT)"
 
+msgid "Service reference"
+msgstr ""
+
 #
 msgid "Service scan"
 msgstr "Vyhledávání služeb"
@@ -6373,6 +6594,9 @@ msgstr ""
 msgid "Show in extension menu"
 msgstr ""
 
+msgid "Show info screen"
+msgstr ""
+
 #
 msgid "Show infobar on channel change"
 msgstr "Zobrazit infobar při přepnutí programu"
@@ -6385,6 +6609,9 @@ msgstr "Zobrazit infobar při změně programu v EPG"
 msgid "Show infobar on skip forward/backward"
 msgstr "Zobrazit infobar při přeskočení dopředu / zpět"
 
+msgid "Show notification on conflicts"
+msgstr ""
+
 #
 msgid "Show positioner movement"
 msgstr "Vizualizovat otáčení satelitu."
@@ -6653,6 +6880,9 @@ msgstr ""
 msgid "Start Webinterface"
 msgstr ""
 
+msgid "Start easy your multimedia plugins with the PVR-button."
+msgstr ""
+
 #
 msgid "Start from the beginning"
 msgstr "Spustit od začátku"
@@ -6776,6 +7006,9 @@ msgstr "Ne"
 msgid "Sunday"
 msgstr "Neděle"
 
+msgid "Support \"Fast Scan\"?"
+msgstr ""
+
 #
 msgid "Swap Services"
 msgstr "Prohodit služby"
@@ -6804,6 +7037,9 @@ msgstr ""
 msgid "Symbol Rate"
 msgstr "Symbolová rychlost"
 
+msgid "Symbol rate"
+msgstr ""
+
 #
 msgid "Symbolrate"
 msgstr "Symbolová rychlost"
@@ -6827,10 +7063,19 @@ msgstr ""
 msgid "TS file is too large for ISO9660 level 1!"
 msgstr ""
 
+msgid "TSID"
+msgstr ""
+
+msgid "TV Charts of all users"
+msgstr ""
+
 #
 msgid "TV System"
 msgstr "TV systém"
 
+msgid "TXT PID"
+msgstr ""
+
 #
 msgid "Table of content for collection"
 msgstr ""
@@ -6863,6 +7108,9 @@ msgstr ""
 msgid "Temperature and Fan control"
 msgstr ""
 
+msgid "Temperature-dependent fan control."
+msgstr ""
+
 #
 msgid "Terrestrial"
 msgstr "Pozemní"
@@ -7794,10 +8042,6 @@ msgid "Use and control multiple Dreamboxes with different RCs."
 msgstr ""
 
 #
-msgid "Use non-smooth winding at speeds above"
-msgstr "Použít skokové přetáčení s rychlostmi uvedenými výše"
-
-#
 msgid "Use power measurement"
 msgstr "Použít sílu měření"
 
@@ -7879,13 +8123,22 @@ msgstr ""
 msgid "Vali-XD skin"
 msgstr ""
 
+msgid "Vali.HD.atlantis skin"
+msgstr ""
+
 msgid "Vali.HD.nano skin"
 msgstr ""
 
+msgid "Vali.HD.warp skin"
+msgstr ""
+
 msgid ""
 "Verify your Dreambox authenticity by running the genuine dreambox plugin!"
 msgstr ""
 
+msgid "Verifying your internet connection..."
+msgstr ""
+
 #
 msgid "Vertical"
 msgstr ""
@@ -7902,6 +8155,9 @@ msgstr "Průvodce doladěním obrazu"
 msgid "Video Output"
 msgstr "Video výstup"
 
+msgid "Video PID"
+msgstr ""
+
 #
 msgid "Video Setup"
 msgstr "Nastavení videa"
@@ -8147,6 +8403,9 @@ msgstr ""
 msgid "Weatherforecast on your Dreambox"
 msgstr ""
 
+msgid "Web-Bouquet-Editor for PC"
+msgstr ""
+
 #
 msgid "Webinterface"
 msgstr ""
@@ -8284,6 +8543,11 @@ msgstr "Co chcete prohledat?"
 msgid "What to do with submitted crashlogs?"
 msgstr ""
 
+msgid ""
+"When supporting \"Fast Scan\" the service type is ignored. You don't need to "
+"enable this unless your Image supports \"Fast Scan\" and you are using it."
+msgstr ""
+
 #
 msgid ""
 "When this option is enabled the AutoTimer won't match events where another "
@@ -8541,6 +8805,12 @@ msgid ""
 "in title' is what is looked for in the EPG."
 msgstr ""
 
+msgid ""
+"You can use the EasyInfo for manage your EPG plugins from info button. You "
+"have also a new now-next event viewer. Easy-PG, the own graphical EPG bowser "
+"is also included."
+msgstr ""
+
 #
 msgid "You cannot delete this!"
 msgstr "Nemůžete toto smazat!"
@@ -8721,6 +8991,9 @@ msgstr ""
 msgid "Your network configuration has been activated."
 msgstr ""
 
+msgid "Your network is not working. Please try again."
+msgstr ""
+
 #
 msgid "Your network mount has been activated."
 msgstr ""
@@ -8938,6 +9211,12 @@ msgstr ""
 msgid "assigned Services/Provider:"
 msgstr ""
 
+msgid "at beginning"
+msgstr ""
+
+msgid "at end"
+msgstr ""
+
 #
 #, python-format
 msgid "audio track (%s) format"
@@ -8956,6 +9235,9 @@ msgstr ""
 msgid "auto"
 msgstr ""
 
+msgid "autotimers need a match attribute"
+msgstr ""
+
 #
 msgid "available"
 msgstr ""
@@ -8988,6 +9270,9 @@ msgstr "černá listina"
 msgid "blue"
 msgstr ""
 
+msgid "bob"
+msgstr ""
+
 #
 #, python-format
 msgid "burn audio track (%s)"
@@ -9029,6 +9314,9 @@ msgstr "vymazat playlist"
 msgid "complex"
 msgstr "komplexní"
 
+msgid "config changed."
+msgstr ""
+
 #
 msgid "config menu"
 msgstr "Konfigurační menu"
@@ -9060,6 +9348,12 @@ msgstr ""
 msgid "create directory"
 msgstr ""
 
+msgid "creates virtual series folders from episodes"
+msgstr ""
+
+msgid "creates virtual series folders from sets of recorded episodes"
+msgstr ""
+
 #, python-format
 msgid "currently installed image: %s"
 msgstr ""
@@ -9072,6 +9366,9 @@ msgstr "denně"
 msgid "day"
 msgstr ""
 
+msgid "default"
+msgstr ""
+
 #
 msgid "delete"
 msgstr "smazat"
@@ -9411,6 +9708,9 @@ msgstr "minuta"
 msgid "minutes"
 msgstr "minuty"
 
+msgid "missing parameter \"id\""
+msgstr ""
+
 #
 msgid "month"
 msgstr ""
@@ -9609,9 +9909,6 @@ msgstr ""
 msgid "redesigned Kerni-HD1 skin"
 msgstr ""
 
-msgid "redirect notifications to Growl"
-msgstr ""
-
 #
 msgid "remove a nameserver entry"
 msgstr ""
@@ -9948,6 +10245,10 @@ msgstr "přepnout informace mezi časem, kapitolou, audiostopou, titulky"
 msgid "tuner is not supported"
 msgstr ""
 
+#, python-format
+msgid "unable to find timer with id %i"
+msgstr ""
+
 #
 msgid "unavailable"
 msgstr ""
@@ -10339,6 +10640,14 @@ msgstr "přepnutý"
 #~ "© 2006 - Stephan Reichholf"
 
 #
+#~ msgid "Enter Fast Forward at speed"
+#~ msgstr "Začít přetáčení vpřed na rychlosti"
+
+#
+#~ msgid "Enter Rewind at speed"
+#~ msgstr "Začít přetáčení zpět na rychlosti"
+
+#
 #~ msgid "Exit wizard and configure later manually"
 #~ msgstr "Ukončit průvodce a nastavit později ručně"
 
@@ -10347,6 +10656,10 @@ msgstr "přepnutý"
 #~ msgstr "Prověření souborového systému..."
 
 #
+#~ msgid "Frame repeat count during non-smooth winding"
+#~ msgstr "Počet opakování obrázku během skokového přetáčení"
+
+#
 #~ msgid "Fritz!Box FON IP address"
 #~ msgstr "Fritz!Box FON IP adresu"
 
@@ -10694,6 +11007,10 @@ msgstr "přepnutý"
 #~ msgstr "Upgrade skončil. Chcete restartovat váš Dreambox?"
 
 #
+#~ msgid "Use non-smooth winding at speeds above"
+#~ msgstr "Použít skokové přetáčení s rychlostmi uvedenými výše"
+
+#
 #~ msgid "VCR Switch"
 #~ msgstr "VCR přepínač"
 
index 266b005..1666926 100755 (executable)
--- a/po/da.po
+++ b/po/da.po
@@ -3,7 +3,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Enigma2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-27 12:42+0000\n"
+"POT-Creation-Date: 2011-04-01 08:09+0000\n"
 "PO-Revision-Date: 2010-04-13 21:10+0200\n"
 "Last-Translator: Ingmar <dreambox@ingmar.dk>\n"
 "Language-Team: jazzydane <dreambox@ingmar.dk>\n"
@@ -197,6 +197,12 @@ msgstr "#ffffffff"
 msgid "%H:%M"
 msgstr "%T:%M"
 
+#, python-format
+msgid ""
+"%d conflict(s) encountered when trying to add new timers:\n"
+"%s"
+msgstr ""
+
 #
 #, python-format
 msgid "%d jobs are running in the background!"
@@ -234,6 +240,10 @@ msgstr ""
 msgid "%s (%s)\n"
 msgstr "%s (%s)\n"
 
+#, python-format
+msgid "%s: %s at %s"
+msgstr ""
+
 #
 msgid "(ZAP)"
 msgstr "(ZAP)"
@@ -380,10 +390,10 @@ msgstr "??"
 msgid "A"
 msgstr "A"
 
-msgid "A BackToTheRoots-Skin .. or good old times."
+msgid "A BackToTheRoots-Skin .. but with Warp-8 speed."
 msgstr ""
 
-msgid "A BackToTheRoots-Skin ... or good old times."
+msgid "A BackToTheRoots-Skin .. or good old times."
 msgstr ""
 
 msgid "A basic ftp client"
@@ -404,6 +414,9 @@ msgstr ""
 msgid "A demo plugin for TPM usage."
 msgstr ""
 
+msgid "A dreambox simulation from SG-Atlantis displays."
+msgstr ""
+
 msgid ""
 "A finished record timer wants to set your\n"
 "Dreambox to standby. Do that now?"
@@ -425,6 +438,9 @@ msgstr "Grafisk EPG for alle kanaler i en specifik buket"
 msgid "A graphical EPG interface"
 msgstr ""
 
+msgid "A graphical EPG interface and EPG tools manager"
+msgstr ""
+
 msgid "A graphical EPG interface."
 msgstr ""
 
@@ -891,6 +907,9 @@ msgstr "Spørg bruger"
 msgid "Aspect Ratio"
 msgstr "Billed format"
 
+msgid "Aspect ratio"
+msgstr ""
+
 msgid "Assigning providers/services/caids to a CI module"
 msgstr ""
 
@@ -905,6 +924,9 @@ msgstr "Lyd"
 msgid "Audio Options..."
 msgstr "Lyd Valg..."
 
+msgid "Audio PID"
+msgstr ""
+
 #
 msgid "Audio Sync"
 msgstr "Lyd synk."
@@ -969,6 +991,15 @@ msgid ""
 "criteria."
 msgstr ""
 
+msgid "AutoTimer was added successfully"
+msgstr ""
+
+msgid "AutoTimer was changed successfully"
+msgstr ""
+
+msgid "AutoTimer was removed"
+msgstr ""
+
 #
 msgid "Automatic"
 msgstr "Automatisk"
@@ -1003,6 +1034,24 @@ msgstr ""
 msgid "Automatically send crashlogs to Dream Multimedia"
 msgstr ""
 
+#, python-format
+msgid ""
+"Autoresolution Plugin Testmode:\n"
+"Is %s ok?"
+msgstr ""
+
+msgid "Autoresolution Switch"
+msgstr ""
+
+msgid "Autoresolution is not working in Scart/DVI-PC Mode"
+msgstr ""
+
+msgid "Autoresolution settings"
+msgstr ""
+
+msgid "Autoresolution videomode setup"
+msgstr ""
+
 #
 msgid "Autos & Vehicles"
 msgstr ""
@@ -1045,6 +1094,12 @@ msgstr "BER:"
 msgid "Back"
 msgstr "Tilbage"
 
+msgid "Back, lower USB Slot"
+msgstr ""
+
+msgid "Back, upper USB Slot"
+msgstr ""
+
 #
 msgid "Background"
 msgstr "Baggrund"
@@ -1139,6 +1194,11 @@ msgstr ""
 msgid "Brightness"
 msgstr "Lysstyrke"
 
+msgid ""
+"Browse ORF and SAT1 Teletext independent from channel. This need I-net "
+"conection."
+msgstr ""
+
 msgid "Browse for and connect to network shares"
 msgstr ""
 
@@ -1169,6 +1229,17 @@ msgstr ""
 msgid "Bus: "
 msgstr "Bus:"
 
+msgid ""
+"By enabling this events will not be matched if they don't occur on certain "
+"dates."
+msgstr ""
+
+msgid ""
+"By enabling this you will be notified about timer conflicts found during "
+"automated polling. There is no intelligence involved, so it might bother you "
+"about the same conflict over and over."
+msgstr ""
+
 #
 msgid ""
 "By pressing the OK Button on your remote control, the info bar is being "
@@ -1435,6 +1506,12 @@ msgstr ""
 msgid "Close title selection"
 msgstr "Luk titel valg"
 
+msgid "Code rate HP"
+msgstr ""
+
+msgid "Code rate LP"
+msgstr ""
+
 #
 msgid "Code rate high"
 msgstr "Kode rate høj"
@@ -1634,6 +1711,10 @@ msgstr "Kunne ikke åbne billede i billede"
 msgid "Couldn't record due to conflicting timer %s"
 msgstr "Kan ikke optage på grund af konfliktende timere %s"
 
+#, python-format
+msgid "Couldn't record due to invalid service %s"
+msgstr ""
+
 #
 msgid "Crashlog settings"
 msgstr "Opsætning for nedbrudslog"
@@ -1814,6 +1895,9 @@ msgstr "DVB-S"
 msgid "DVB-S2"
 msgstr "DVB-S2"
 
+msgid "DVD Drive"
+msgstr ""
+
 #
 msgid "DVD File Browser"
 msgstr "DVD fil gennemsyn"
@@ -1899,10 +1983,19 @@ msgstr ""
 msgid "Define a startup service for your Dreambox."
 msgstr ""
 
+msgid "Deinterlacer mode for interlaced content"
+msgstr ""
+
+msgid "Deinterlacer mode for progressive content"
+msgstr ""
+
 #
 msgid "Delay"
 msgstr "Forsinkelse"
 
+msgid "Delay x seconds after service started"
+msgstr ""
+
 #
 msgid "Delete"
 msgstr "Slet"
@@ -2090,6 +2183,12 @@ msgstr ""
 "Vil du virkelig kontrolere filsystemet?\n"
 "Dette kan tage lang tid!"
 
+#, python-format
+msgid ""
+"Do you really want to delete %s\n"
+"%s?"
+msgstr ""
+
 #
 #, python-format
 msgid "Do you really want to delete %s?"
@@ -2428,10 +2527,25 @@ msgstr "Aktiver"
 msgid "Enable /media"
 msgstr "Aktiver /medier"
 
+msgid "Enable 1080p24 Mode"
+msgstr ""
+
+msgid "Enable 1080p25 Mode"
+msgstr ""
+
+msgid "Enable 1080p30 Mode"
+msgstr ""
+
 #
 msgid "Enable 5V for active antenna"
 msgstr "Aktivere 5V for aktiv antenne"
 
+msgid "Enable 720p24 Mode"
+msgstr ""
+
+msgid "Enable Autoresolution"
+msgstr ""
+
 #
 msgid "Enable Cleanup Wizard?"
 msgstr "Aktiver oprydningshjælper?"
@@ -2558,18 +2672,10 @@ msgstr ""
 "© 2006 - Stephan Reichholf"
 
 #
-msgid "Enter Fast Forward at speed"
-msgstr "Nuværende hastighed ved spoling"
-
-#
 msgid "Enter IP to scan..."
 msgstr ""
 
 #
-msgid "Enter Rewind at speed"
-msgstr "Sæt tilbagespolings hastighed"
-
-#
 msgid "Enter main menu..."
 msgstr "Åbne hoved menu..."
 
@@ -2841,6 +2947,11 @@ msgstr "Afsluttede genstart af dit netværk"
 msgid "Finnish"
 msgstr "Finsk"
 
+msgid ""
+"First day to match events. No event that begins before this date will be "
+"matched."
+msgstr ""
+
 msgid "First generate your skin-style with the Ai.HD-Control plugin."
 msgstr ""
 
@@ -2860,16 +2971,18 @@ msgstr "Følgende opgaver vil blive udført efter tryk på OK!"
 msgid "Format"
 msgstr "Formatere"
 
-#
 #, python-format
 msgid ""
 "Found a total of %d matching Events.\n"
-"%d Timer were added and %d modified."
+"%d Timer were added and %d modified, %d conflicts encountered."
 msgstr ""
 
 #
-msgid "Frame repeat count during non-smooth winding"
-msgstr "Billed gentagelses tæller ved hurtig spoling"
+#, python-format
+msgid ""
+"Found a total of %d matching Events.\n"
+"%d Timer were added and %d modified."
+msgstr ""
 
 #
 msgid "Frame size in full view"
@@ -2914,6 +3027,9 @@ msgstr "Frisisk"
 msgid "FritzCall shows incoming calls to your Fritz!Box on your Dreambox."
 msgstr ""
 
+msgid "Front USB Slot"
+msgstr ""
+
 msgid "Frontend for /tmp/mmi.socket"
 msgstr ""
 
@@ -2968,6 +3084,9 @@ msgstr "Almindelig PCM forsinkelse"
 msgid "General PCM delay (ms)"
 msgstr "Generel PCM forsinkelse (ms)"
 
+msgid "Generates and Shows TV Charts of all users having this plugin installed"
+msgstr ""
+
 #
 msgid "Genre"
 msgstr "Genre"
@@ -3046,15 +3165,18 @@ msgid "Green boost"
 msgstr "Grøn forstærkning"
 
 msgid ""
-"Growlee allows your Dreambox to send short messages using the growl "
-"protocol\n"
-"like Recording started notifications to a PC running a growl client"
+"Growlee allows your Dreambox to forward notifications like 'Record started' "
+"to a PC running a growl, snarl or syslog compatible client or directly to an "
+"iPhone using prowl."
 msgstr ""
 
 #
 msgid "Guard Interval"
 msgstr "Sikkerhedsinterval"
 
+msgid "Guard interval"
+msgstr ""
+
 #
 msgid "Guard interval mode"
 msgstr "Sikkerhedsinterval type"
@@ -3063,6 +3185,12 @@ msgstr "Sikkerhedsinterval type"
 msgid "Guess existing timer based on begin/end"
 msgstr ""
 
+msgid "HD Interlace Mode"
+msgstr ""
+
+msgid "HD Progressive Mode"
+msgstr ""
+
 #
 msgid "HD videos"
 msgstr ""
@@ -3103,6 +3231,9 @@ msgstr "Skjult netværksnavn"
 msgid "Hierarchy Information"
 msgstr "Hieraki information"
 
+msgid "Hierarchy info"
+msgstr ""
+
 #
 msgid "Hierarchy mode"
 msgstr "Hieraki type"
@@ -3282,6 +3413,12 @@ msgstr "Information"
 msgid "Init"
 msgstr "Initialiser"
 
+msgid "Initial Fast Forward speed"
+msgstr ""
+
+msgid "Initial Rewind speed"
+msgstr ""
+
 #
 msgid "Initial location in new timers"
 msgstr "Oprindelig placering i nye timere"
@@ -3383,6 +3520,9 @@ msgstr "Intern Flash"
 msgid "Internal LAN adapter."
 msgstr ""
 
+msgid "Internal USB Slot"
+msgstr ""
+
 msgid "Internal firmware updater"
 msgstr ""
 
@@ -3580,6 +3720,11 @@ msgstr "Valg af sprog"
 msgid "Last config"
 msgstr "Seneste opsætning"
 
+msgid ""
+"Last day to match events. Events have to begin before this date to be "
+"matched."
+msgstr ""
+
 #
 msgid "Last speed"
 msgstr "Sidste hastighed"
@@ -4060,6 +4205,9 @@ msgstr "Filmliste menu"
 msgid "Multi EPG"
 msgstr "Multi EPG"
 
+msgid "Multi-EPG bouquet selection"
+msgstr ""
+
 #
 msgid "Multimedia"
 msgstr "Multimedia"
@@ -4068,6 +4216,9 @@ msgstr "Multimedia"
 msgid "Multiple service support"
 msgstr "Multi kanal support"
 
+msgid "Multiplex"
+msgstr ""
+
 #
 msgid "Multisat"
 msgstr "Mange satellitter"
@@ -4137,6 +4288,9 @@ msgstr "NFI image flash gennemført. Tryk gul knap for at genstarte!"
 msgid "NFS share"
 msgstr ""
 
+msgid "NIM"
+msgstr ""
+
 #
 msgid "NOW"
 msgstr "NU"
@@ -4166,6 +4320,9 @@ msgstr "Navneserver opsætning"
 msgid "Nameserver settings"
 msgstr "Navneserver indstillinger"
 
+msgid "Namespace"
+msgstr ""
+
 msgid "Nemesis BlackBox Skin"
 msgstr ""
 
@@ -4586,6 +4743,12 @@ msgstr "Nord"
 msgid "Norwegian"
 msgstr "Norsk"
 
+msgid "Not after"
+msgstr ""
+
+msgid "Not before"
+msgstr ""
+
 #
 #, python-format
 msgid ""
@@ -4641,6 +4804,9 @@ msgstr "OK, fjern en anden udvidelse"
 msgid "OK, remove some extensions"
 msgstr "OK, fjern nog udvidelser"
 
+msgid "ONID"
+msgstr ""
+
 #
 msgid "OSD Settings"
 msgstr "OSD indstilling"
@@ -4714,6 +4880,9 @@ msgstr "Du kan valgfrit indtaste dit navn, hvis du vil."
 msgid "Orbital Position"
 msgstr "Kredsløbsposition"
 
+msgid "Orbital position"
+msgstr ""
+
 #
 msgid "Outer Bound (+/-)"
 msgstr ""
@@ -4735,10 +4904,16 @@ msgstr ""
 msgid "PAL"
 msgstr "PAL"
 
+msgid "PCR PID"
+msgstr ""
+
 #
 msgid "PIDs"
 msgstr "PIDs"
 
+msgid "PMT PID"
+msgstr ""
+
 #
 msgid "Package list update"
 msgstr "Pakke liste opdatering"
@@ -5232,6 +5407,9 @@ msgstr "Port D"
 msgid "Portuguese"
 msgstr "Portugisisk"
 
+msgid "Position of finished Timers in Timerlist"
+msgstr ""
+
 #
 msgid "Positioner"
 msgstr "Motor"
@@ -5557,6 +5735,9 @@ msgstr "Optaggelser"
 msgid "Recordings always have priority"
 msgstr "Optagelser har altid prioritet"
 
+msgid "Redirect notifications to Growl, Snarl, Prowl or Syslog"
+msgstr ""
+
 msgid "Reenter new PIN"
 msgstr ""
 
@@ -5778,6 +5959,9 @@ msgstr ""
 msgid "Restrict \"after event\" to a certain timespan?"
 msgstr ""
 
+msgid "Restrict to events on certain dates"
+msgstr ""
+
 #
 msgid "Resume from last position"
 msgstr "Genoptag fra sidste position"
@@ -5818,6 +6002,9 @@ msgstr "Tilbagespolings hastighed"
 msgid "Right"
 msgstr "Højre"
 
+msgid "Roll-off"
+msgstr ""
+
 #
 msgid "Rolloff"
 msgstr "Rulleaf"
@@ -5830,6 +6017,9 @@ msgstr "Motor dreje hastighed"
 msgid "Running"
 msgstr "Aktiveret"
 
+msgid "Running in testmode"
+msgstr ""
+
 #
 msgid "Russia"
 msgstr ""
@@ -5842,6 +6032,21 @@ msgstr "Russisk"
 msgid "S-Video"
 msgstr "S-Video"
 
+msgid "SD 25/50HZ Interlace Mode"
+msgstr ""
+
+msgid "SD 25/50HZ Progressive Mode"
+msgstr ""
+
+msgid "SD 30/60HZ Interlace Mode"
+msgstr ""
+
+msgid "SD 30/60HZ Progressive Mode"
+msgstr ""
+
+msgid "SID"
+msgstr ""
+
 #
 msgid "SINGLE LAYER DVD"
 msgstr ""
@@ -5858,6 +6063,19 @@ msgstr "SNR:"
 msgid "SSID:"
 msgstr "SSID:"
 
+msgid ""
+"SVDRP is a protocol developed for the VDR software to control a set-top box "
+"remotely.\n"
+"This plugin only supports a subset of SVDRP and starts automatically using "
+"default settings.\n"
+"\n"
+"You probably don't need this plugin and should use the regular Web Interface "
+"for Enigma2 instead."
+msgstr ""
+
+msgid "SVDRP server for Enigma2"
+msgstr ""
+
 #
 msgid "Sat"
 msgstr "Lør"
@@ -6319,6 +6537,9 @@ msgstr ""
 "Kanal ikke fundet!\n"
 "(SID ikke fundet i PAT)"
 
+msgid "Service reference"
+msgstr ""
+
 #
 msgid "Service scan"
 msgstr "Kanal søgning"
@@ -6453,6 +6674,9 @@ msgstr ""
 msgid "Show in extension menu"
 msgstr ""
 
+msgid "Show info screen"
+msgstr ""
+
 #
 msgid "Show infobar on channel change"
 msgstr "Vis infobjælke ved kanal skifte"
@@ -6465,6 +6689,9 @@ msgstr "Vis infobjælke ved program skifte"
 msgid "Show infobar on skip forward/backward"
 msgstr "Vis infobjælke ved skip fremspoling/tilbagespoling"
 
+msgid "Show notification on conflicts"
+msgstr ""
+
 #
 msgid "Show positioner movement"
 msgstr "Vis motor bevægelse"
@@ -6738,6 +6965,9 @@ msgstr ""
 msgid "Start Webinterface"
 msgstr "Start WebInterface"
 
+msgid "Start easy your multimedia plugins with the PVR-button."
+msgstr ""
+
 #
 msgid "Start from the beginning"
 msgstr "Start fra begyndelse"
@@ -6861,6 +7091,9 @@ msgstr "Søn"
 msgid "Sunday"
 msgstr "Søndag"
 
+msgid "Support \"Fast Scan\"?"
+msgstr ""
+
 #
 msgid "Swap Services"
 msgstr "Bytte kanaler"
@@ -6889,6 +7122,9 @@ msgstr ""
 msgid "Symbol Rate"
 msgstr "Symbolrate"
 
+msgid "Symbol rate"
+msgstr ""
+
 #
 msgid "Symbolrate"
 msgstr "Symbolrate"
@@ -6913,10 +7149,19 @@ msgstr ""
 msgid "TS file is too large for ISO9660 level 1!"
 msgstr "TS filen er for stor til ISO9660 level 1!"
 
+msgid "TSID"
+msgstr ""
+
+msgid "TV Charts of all users"
+msgstr ""
+
 #
 msgid "TV System"
 msgstr "TV system"
 
+msgid "TXT PID"
+msgstr ""
+
 #
 msgid "Table of content for collection"
 msgstr "Indholdsfortegnelse for kollektion"
@@ -6949,6 +7194,9 @@ msgstr ""
 msgid "Temperature and Fan control"
 msgstr "Kontrol af temperatur og ventilator"
 
+msgid "Temperature-dependent fan control."
+msgstr ""
+
 #
 msgid "Terrestrial"
 msgstr "DVB T"
@@ -7912,10 +8160,6 @@ msgid "Use and control multiple Dreamboxes with different RCs."
 msgstr ""
 
 #
-msgid "Use non-smooth winding at speeds above"
-msgstr "Spoling/afspilning ved brug af stillbilleder"
-
-#
 msgid "Use power measurement"
 msgstr "Brug strømmåling"
 
@@ -7997,13 +8241,22 @@ msgstr "VMGM (intro trailer)"
 msgid "Vali-XD skin"
 msgstr ""
 
+msgid "Vali.HD.atlantis skin"
+msgstr ""
+
 msgid "Vali.HD.nano skin"
 msgstr ""
 
+msgid "Vali.HD.warp skin"
+msgstr ""
+
 msgid ""
 "Verify your Dreambox authenticity by running the genuine dreambox plugin!"
 msgstr ""
 
+msgid "Verifying your internet connection..."
+msgstr ""
+
 #
 msgid "Vertical"
 msgstr "Vertikal"
@@ -8020,6 +8273,9 @@ msgstr "Video-finjusterings assistent"
 msgid "Video Output"
 msgstr "Video udgang"
 
+msgid "Video PID"
+msgstr ""
+
 #
 msgid "Video Setup"
 msgstr "Video Opsætning..."
@@ -8266,6 +8522,9 @@ msgstr ""
 msgid "Weatherforecast on your Dreambox"
 msgstr ""
 
+msgid "Web-Bouquet-Editor for PC"
+msgstr ""
+
 #
 msgid "Webinterface"
 msgstr "WebInterface"
@@ -8423,6 +8682,11 @@ msgstr "Hvad vil du søge?"
 msgid "What to do with submitted crashlogs?"
 msgstr "Hvad skal der ske med de afsendte nedbrudslogge?"
 
+msgid ""
+"When supporting \"Fast Scan\" the service type is ignored. You don't need to "
+"enable this unless your Image supports \"Fast Scan\" and you are using it."
+msgstr ""
+
 #
 msgid ""
 "When this option is enabled the AutoTimer won't match events where another "
@@ -8685,6 +8949,12 @@ msgid ""
 "in title' is what is looked for in the EPG."
 msgstr ""
 
+msgid ""
+"You can use the EasyInfo for manage your EPG plugins from info button. You "
+"have also a new now-next event viewer. Easy-PG, the own graphical EPG bowser "
+"is also included."
+msgstr ""
+
 #
 msgid "You cannot delete this!"
 msgstr "Dette kan ikke slettes!"
@@ -8885,6 +9155,9 @@ msgstr "Dit navn (valgfrit):"
 msgid "Your network configuration has been activated."
 msgstr "Din netværks opsætning er blevet aktiveret."
 
+msgid "Your network is not working. Please try again."
+msgstr ""
+
 #
 msgid "Your network mount has been activated."
 msgstr ""
@@ -9107,6 +9380,12 @@ msgstr "tilknyttede CAId'er:"
 msgid "assigned Services/Provider:"
 msgstr "tilknyttede kanaler/udbydere:"
 
+msgid "at beginning"
+msgstr ""
+
+msgid "at end"
+msgstr ""
+
 #
 #, python-format
 msgid "audio track (%s) format"
@@ -9125,6 +9404,9 @@ msgstr "lyd spor"
 msgid "auto"
 msgstr "auto"
 
+msgid "autotimers need a match attribute"
+msgstr ""
+
 #
 msgid "available"
 msgstr "tilgængelig"
@@ -9157,6 +9439,9 @@ msgstr "Sortliste"
 msgid "blue"
 msgstr "blå"
 
+msgid "bob"
+msgstr ""
+
 #
 #, python-format
 msgid "burn audio track (%s)"
@@ -9198,6 +9483,9 @@ msgstr "slet spilleliste"
 msgid "complex"
 msgstr "komplex"
 
+msgid "config changed."
+msgstr ""
+
 #
 msgid "config menu"
 msgstr "konfigurationsmenu"
@@ -9229,6 +9517,12 @@ msgstr "kunne ikke fjernes"
 msgid "create directory"
 msgstr "opret mappe"
 
+msgid "creates virtual series folders from episodes"
+msgstr ""
+
+msgid "creates virtual series folders from sets of recorded episodes"
+msgstr ""
+
 #, python-format
 msgid "currently installed image: %s"
 msgstr ""
@@ -9241,6 +9535,9 @@ msgstr "daglig"
 msgid "day"
 msgstr "dag"
 
+msgid "default"
+msgstr ""
+
 #
 msgid "delete"
 msgstr "slet"
@@ -9580,6 +9877,9 @@ msgstr "minut"
 msgid "minutes"
 msgstr "minutter"
 
+msgid "missing parameter \"id\""
+msgstr ""
+
 #
 msgid "month"
 msgstr "måned"
@@ -9778,9 +10078,6 @@ msgstr "rød"
 msgid "redesigned Kerni-HD1 skin"
 msgstr ""
 
-msgid "redirect notifications to Growl"
-msgstr ""
-
 #
 msgid "remove a nameserver entry"
 msgstr "fjern en navneserver angivelse"
@@ -10117,6 +10414,10 @@ msgstr "skift mellem tid, kapitel, lyd, undertekst info"
 msgid "tuner is not supported"
 msgstr ""
 
+#, python-format
+msgid "unable to find timer with id %i"
+msgstr ""
+
 #
 msgid "unavailable"
 msgstr "ikke tilgængelig"
@@ -10647,6 +10948,14 @@ msgstr "zappet"
 #~ "© 2006 - Stephan Reichholf"
 
 #
+#~ msgid "Enter Fast Forward at speed"
+#~ msgstr "Nuværende hastighed ved spoling"
+
+#
+#~ msgid "Enter Rewind at speed"
+#~ msgstr "Sæt tilbagespolings hastighed"
+
+#
 #~ msgid "Enter WLAN network name/SSID:"
 #~ msgstr "Indtast WLAN netværks navn/SSID"
 
@@ -10680,6 +10989,10 @@ msgstr "zappet"
 #~ msgstr "Skrift størrelse"
 
 #
+#~ msgid "Frame repeat count during non-smooth winding"
+#~ msgstr "Billed gentagelses tæller ved hurtig spoling"
+
+#
 #~ msgid "Fritz!Box FON IP address"
 #~ msgstr "Fritz!Box TELEFON IP adresse"
 
@@ -11401,6 +11714,10 @@ msgstr "zappet"
 #~ msgstr "Opgradering færdig. Vil du genstarte din DreamBox?"
 
 #
+#~ msgid "Use non-smooth winding at speeds above"
+#~ msgstr "Spoling/afspilning ved brug af stillbilleder"
+
+#
 #~ msgid "VCR Switch"
 #~ msgstr "Video Omskifter"
 
index 49fe3d8..25d141e 100755 (executable)
--- a/po/de.po
+++ b/po/de.po
@@ -7,14 +7,14 @@ msgid ""
 msgstr ""
 "Project-Id-Version: tuxbox-enigma 0.0.1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-27 12:42+0000\n"
-"PO-Revision-Date: 2010-11-01 14:20+0100\n"
-"Last-Translator: Mladen Horvat <acid-burn@opendreambox.org>\n"
+"POT-Creation-Date: 2011-04-01 08:09+0000\n"
+"PO-Revision-Date: 2011-04-04 09:38+0200\n"
+"Last-Translator: Mladen <acid-burn@opendreambox.org>\n"
 "Language-Team: none\n"
+"Language: de\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Generator: Pootle 2.0.3\n"
 "X-Poedit-Language: German\n"
@@ -135,9 +135,8 @@ msgstr ""
 "\n"
 "Anzeigen, Installieren und Entfernen verfügbarer oder installierter Pakete."
 
-#
 msgid " "
-msgstr ""
+msgstr " "
 
 #
 msgid " Results"
@@ -205,6 +204,14 @@ msgstr "#ffffffff"
 msgid "%H:%M"
 msgstr "%H:%M"
 
+#, python-format
+msgid ""
+"%d conflict(s) encountered when trying to add new timers:\n"
+"%s"
+msgstr ""
+"%d Konflikt(e) erkannt beim hinzufügen eines neuen Timers:\n"
+"%s"
+
 #
 #, python-format
 msgid "%d jobs are running in the background!"
@@ -243,6 +250,10 @@ msgstr ""
 msgid "%s (%s)\n"
 msgstr "%s (%s)\n"
 
+#, python-format
+msgid "%s: %s at %s"
+msgstr "%s: %s um %s"
+
 #
 msgid "(ZAP)"
 msgstr "(ZAP)"
@@ -375,13 +386,11 @@ msgstr "8"
 msgid "9"
 msgstr "9"
 
-#
 msgid "<Current movielist location>"
-msgstr ""
+msgstr "<Aktueller Filmlisten Ort>"
 
-#
 msgid "<Default movie location>"
-msgstr ""
+msgstr "<Standard Filmlisten Ort>"
 
 msgid "<Last timer location>"
 msgstr "<Letzter Timer Ort>"
@@ -397,12 +406,12 @@ msgstr "??"
 msgid "A"
 msgstr "A"
 
+msgid "A BackToTheRoots-Skin .. but with Warp-8 speed."
+msgstr "Ein BackToTheRoots-Skin .. aber mit Warp-8."
+
 msgid "A BackToTheRoots-Skin .. or good old times."
 msgstr "Ein BackToTheRoots-Skin"
 
-msgid "A BackToTheRoots-Skin ... or good old times."
-msgstr "Ein BackToTheRoots-Skin ... der guten alten Zeiten wegen."
-
 msgid "A basic ftp client"
 msgstr "FTP-Client für die Dreambox"
 
@@ -421,6 +430,9 @@ msgstr ""
 msgid "A demo plugin for TPM usage."
 msgstr "Ein Demo Plugin für die TPM Bedienung."
 
+msgid "A dreambox simulation from SG-Atlantis displays."
+msgstr "Ein Skin im Look der SG-Atlantis Displays."
+
 #
 msgid ""
 "A finished record timer wants to set your\n"
@@ -444,6 +456,9 @@ msgstr "Grafischer EPG für alle Kanäle eines bestimmten Bouquets"
 msgid "A graphical EPG interface"
 msgstr "Eine grafische EPG Ansicht"
 
+msgid "A graphical EPG interface and EPG tools manager"
+msgstr "Eine grafische EPG Ansicht und EPG Tools Manager."
+
 msgid "A graphical EPG interface."
 msgstr "Zeigt eine grafische EPG Ansicht."
 
@@ -787,9 +802,8 @@ msgstr "Alle"
 msgid "All Satellites"
 msgstr "Alle Satelliten"
 
-#
 msgid "All Time"
-msgstr ""
+msgstr "Alle Zeiten"
 
 #
 msgid "All non-repeating timers"
@@ -922,6 +936,9 @@ msgstr "Nutzer fragen"
 msgid "Aspect Ratio"
 msgstr "Seitenverhältnis"
 
+msgid "Aspect ratio"
+msgstr "Seitenverhältnis"
+
 msgid "Assigning providers/services/caids to a CI module"
 msgstr "Weist Providern/Services/CAIDs einem CI-Modul zu"
 
@@ -936,6 +953,9 @@ msgstr "Ton"
 msgid "Audio Options..."
 msgstr "Audio-Optionen..."
 
+msgid "Audio PID"
+msgstr "Audio PID"
+
 #
 msgid "Audio Sync"
 msgstr "Audio Sync"
@@ -1007,6 +1027,15 @@ msgstr ""
 "Das hauptsächliche und erforderliche Kriterium ist eine Textsuche im Titel "
 "der Sendung."
 
+msgid "AutoTimer was added successfully"
+msgstr "AutoTimer erfolgreich hinzugefügt"
+
+msgid "AutoTimer was changed successfully"
+msgstr "AutoTimer erfolgreich geändert"
+
+msgid "AutoTimer was removed"
+msgstr "AutoTimer wurde entfernt"
+
 #
 msgid "Automatic"
 msgstr "Automatisch"
@@ -1043,6 +1072,26 @@ msgstr "Aktualisiert automatisch EPG-Informationen"
 msgid "Automatically send crashlogs to Dream Multimedia"
 msgstr "Automatisches Versenden von Crashlogs an Dream Multimedia"
 
+#, python-format
+msgid ""
+"Autoresolution Plugin Testmode:\n"
+"Is %s ok?"
+msgstr ""
+"Autoresolution Plugin Testmodus:\n"
+"Ist %s ok?"
+
+msgid "Autoresolution Switch"
+msgstr "Autoresolution Schalter"
+
+msgid "Autoresolution is not working in Scart/DVI-PC Mode"
+msgstr "Autoresolution funktioniert nicht im Scart/DVI-PC Modus"
+
+msgid "Autoresolution settings"
+msgstr "Autoresolution Einstellungen"
+
+msgid "Autoresolution videomode setup"
+msgstr "Autoresolution Videomodus Einstellungen"
+
 #
 msgid "Autos & Vehicles"
 msgstr "Autos und Fahrzeuge"
@@ -1085,6 +1134,12 @@ msgstr "BER:"
 msgid "Back"
 msgstr "Zurück"
 
+msgid "Back, lower USB Slot"
+msgstr "Hinterer, unterer USB Port"
+
+msgid "Back, upper USB Slot"
+msgstr "Hinterer, oberer USB Port"
+
 #
 msgid "Background"
 msgstr "Hintergrund"
@@ -1149,7 +1204,6 @@ msgstr "Verhalten beim Filmende"
 msgid "Bitrate:"
 msgstr "Bitrate:"
 
-#
 msgid "Block noise reduction"
 msgstr ""
 
@@ -1179,6 +1233,11 @@ msgstr "Brasilien"
 msgid "Brightness"
 msgstr "Helligkeit"
 
+msgid ""
+"Browse ORF and SAT1 Teletext independent from channel. This need I-net "
+"conection."
+msgstr "ORF und SAT1 Internet Teletext für die Dreambox."
+
 msgid "Browse for and connect to network shares"
 msgstr "Durchsucht das Netzwerk nach NFS/CIFS Freigaben"
 
@@ -1210,6 +1269,19 @@ msgstr "Brennt Aufnahmen auf DVD"
 msgid "Bus: "
 msgstr "Bus:"
 
+msgid ""
+"By enabling this events will not be matched if they don't occur on certain "
+"dates."
+msgstr "Keine Events finden wenn Sie nicht an bestimmten Tagen auftreten."
+
+msgid ""
+"By enabling this you will be notified about timer conflicts found during "
+"automated polling. There is no intelligence involved, so it might bother you "
+"about the same conflict over and over."
+msgstr ""
+"Wenn Sie dies aktivieren werden Sie über Konflikte beim automatischen suchen "
+"benachrichtigt."
+
 #
 msgid ""
 "By pressing the OK Button on your remote control, the info bar is being "
@@ -1480,6 +1552,12 @@ msgstr "Schließen und Speichern"
 msgid "Close title selection"
 msgstr "Titelauswahl schließen"
 
+msgid "Code rate HP"
+msgstr "Empfangsrate HP"
+
+msgid "Code rate LP"
+msgstr "Empfangsrate LP"