Kā pamainīt Dreambox DM800 ieraksta funkcionalitāti

Šodien sanāca šmuce — mans dreambox uzkārās un pēc tam vairs nerādīja tā kā vajadzēja. Es nodomāju, ka ir pienācis laiks uzlikt jaunāku versiju. Tik ilgi, kamēr viss strādā un rāda, es neko neaiztieku. Cilvēki jau smējās gan par mani, ka es uz sava DM 800 HD turu Gemini 3.9 versiju, ja jau ir pieejama 4.2 versija. Bet, nu labi – šodien uzliku jauno versiju. Kā es spļaudījos par šo versiju. Ilgi.

Izlaidīsim liriku. Šo ierakstu sāku rakstīt, lai aprakstītu vienu joku, ko izveicu ar jauno Gemini 4.20. Kādus piecus gadus lietoju Dreambox DM7000, kur bija pilnīgi atšķirīga arhitektūra un cita programmatūra, kā arī tā pa šiem gadiem bija smalki pieslīpēta. Jaunajam DM 800 HD programmatūra, tomēr ir vēl pazaļa, lai gan ir tie paši izstrādātāji, tomēr dzelži un platforma ir pilnīgi atšķirīga.

Viena no lietām, kas man ļoti nepatika jaunajā Gemini 4.20 bija ieraksta funkcija. DM7000 ieraksta funkcija slēpās zem vienas pogas, kas aktivizēja speciālu režīmu un tikai šajā režīmā varēja nospiest ieraksta pogu, lai sāktu ierakstīt raidījumu un citu pogu, lai to apstādinātu.

DM800 ieraksta funkcija ir pabāzta apakšā zem atsevišķas pogas, kas ir aktīva jebkurā momentā – spied tikai un raksti. Bet ir viens ļoti nepatīkams moments – nospiežot šo pogu, uz ekrāna parādās dialoga logs, kurā lietotājam jautā – kā, tad tu gribi rakstīt. Rakstīt, kamēr uz diska pietiek vietas, rakstīt X minūtes, rakstīt līdz plkst. XX:XX utt. It kā jau forši, bet vismaz 90% gadījumu es rakstu uzreiz un līdz brīdim, kamēr pārtraucu to darīt. Ja gribu ierakstīt kādu raidījumu vai filmu, kas tiks rādīta noteiktā laikā, tad tam ir atvēlēta īpaša sadaļa – taimeris, kurā arī ieraksta no cikiem līdz cikiem rakstīt, kādu kanālu rakstīt utt. Ko tu domājies – uzliku to sūdu 4.20 un tur pa mani ir tā nopietni paņirgājušies.

Katrai lietai ir savi plusi un mīnusi. Dreambox DM800 HD izmanto Enigma2 platformu, kas ir rakstīta Python valodā un visus šos failus var brīvi labot. Iepriekš Dreambox DM7000 pamata platforma tika ierakstīta kā viens kopums un pamainot kaut ko vajadzēja visu to pārkompilēt un pāršūt visu dzelzi. Vienīgais ar ko vēl varēja spēlēties bija atsevišķi skripti, kas darīja kaut kādas primitīvas lietas. Tie bija Shell skripti, kas bija ar ierobežotu funkcionalitāti, jo kastei bija kaut kādi pārsimt kilobaiti brīvi ar rakstīšanas iespējām.

Dreambox DM800 vietas ir pietiekami un lielāko daļu ar Python skriptiem var brīvi mainīt. Es par to sapriecājos jau pirms dažiem mēnešiem, kad pielaboju vienu spraudni, kas nedarbojās kā man patīk. Bez maz čurāju biksēs, ka es to paveicu.

Šodien apstākļi piespieda piesēsties pie konsoles vēlreiz. Tagad esam nonākuši līdz būtiskākai daļai – ko un kā es pamainīju.

Uzdevums

1. Es gribu, lai Dreambox sāktu rakstīt tiklīdz es nospiežu ierakstīšanas pogu un neuzdod liekus jautājumus par to, kā es gribu ierakstīt un cik ilgi. Jautājumus varēs uzdot pēc tam.

Šobrīd Gemini 4.20 tiek piedāvāta iespēja:

add recording (stop after current event)

agrāk kā pirmā izvēlne bija:

add recording (indefinitely)

Tas ir līdz, kamēr tev disks pilns, ja laicīgi neapstādini. Man liekas, ka bija loģiska izvēle. 🙂 Kurš idiņš tur ķērās klāt?

2. Otra lieta, kuru es gribu. Lai būtu tā kā bija agrāk, kad nospiežot to pašu ieraksta pogu, parādās izvēlne, kur kā pirmā izvēle ir iezīmēta apturēšanas iespēja.

stop recording

Kāds, kurš nedraudzējās ar galvu ir ielicis kaut ko mistisku:

add recording (stop after current event)

Savukārt apstādināšanas izvēlne ir kāda 7 pēc kārtas. Man ir jāspiež bulta uz leju 6 reizes, lai tika tiktu līdz vajadzīgai lietai. Vai tiešām jau esam degradējušies tik tālu, ka tikai dauņi tagad programmē?

Kā to izdarīt

Tā kā es Pythonā nemāku programmēt, tad vadījos pēc kaut kādas loģikas.

1. Atveram failu, kas atrodas šeit:
/usr/lib/enigma2/python/Screens/InfoBarGenerics.py
2. Kaut kur ap 1607 rindiņu atrodas funkcija, kas tiek izsaukta, kad nospiež ieraksta pogu.

Šeit ir izrāvums no rindiņām Python failā InfoBarGenerics.py, kuras es pamainīju.

1.      if self.isInstantRecordRunning():
2.      self.session.openWithCallback(self.recordQuestionCallback, ChoiceBox, \
3.      title=_("A recording is currently running.\nWhat do you want to do?"), \
4.      list=((_("stop recording"), "stop"), \
5.      (_("add recording (stop after current event)"), "event"), \
6.      (_("add recording (enter recording duration)"), "manualduration"), \
7.      (_("add recording (enter recording endtime)"), "manualendtime"), \
8.      (_("add recording (indefinitely)"), "indefinitely"), \
9.      (_("change recording (duration)"), "changeduration"), \
10.      (_("change recording (endtime)"), "changeendtime"), \
11.      (_("do nothing"), "no")))
12.      else:
13.      # Let's change the way we start to record 2009.05.03
14.      self.startInstantRecording() # don't fuck our brains, just start the recording!
15.      # self.session.openWithCallback(self.recordQuestionCallback, ChoiceBox, \
16.      # title=_("Start recording?"), \
17.      # list=((_("add recording (indefinitely)"), "indefinitely"), \
18.      # (_("add recording (stop after current event)"), "event"), \
19.      # (_("add recording (enter recording duration)"), "manualduration"), \
20.      # (_("add recording (enter recording endtime)"), "manualendtime"), \
21.      # (_("don't record"), "no")))

3. Saglabājam izmaiņas un iemetam atpakaļ Dreamboxā.

4. Tā kā šīs ir grafiskās izmaiņas, tad pietiek ar to, ka pārstartējam GUI. Nu un viss – baudam dzīvi.

Tie, kas nevēlas ņemties ar kodu, var lejupielādēt InfoBarGenerics.py 72KiB failu.

Rezultāts

1. Nospiežot record jeb ieraksta pogu, sākas ieraksts. Nav nekādu dialogu vai kā tamlīdzīga. Ja ir vēlme, lai būtu dialogi, kas pajautā, ko gribi darīt, tad var atkomentēt rindiņas, sākot no 15 līdz 21 un aizkomentēt 14-to. Tad būs tā pati funkcionalitāte, kas bija iepriekš, kad kā pirmā izvēle bija sākt ierakstīt bez nekādiem ierobežojumiem.

2. Ja ieraksts ir sācies un tiek nospiesta ieraksta poga, tad parādās dialogs, kas manā gadījumā atkal ir pamainīts un kā pirmā izvēle ir iespēja šo ierakstu apstādināt.

Principā ir iespējams arī šo dialogu novākt, bet es uzskatu, ka ir gadījumi, kad tu gribi apstādināt ierakstu pēc dažām minūtēm vai arī plkst. tikos un tikos.

Būšu priecīgs, ja atsauksies kāds programmētājs, kurš pats ir kaut ko mainījis Dreamboxā uz Enigma 2 un ir gatavs kādreiz sniegt kādu konsultāciju vai ieteiktu, kur šādas viltības ir aprakstītas, kā arī varbūt izlabos manas korekcijas, jo es neesmu pārliecināts, ka tieši šādi to vajadzēja darīt. 😉

5 thoughts on “Kā pamainīt Dreambox DM800 ieraksta funkcionalitāti

  1. Taka

    boot.lv foruma sat sadaļā pietiekami daudzi ņemas ar DM-800, varbūt apstāsti savu sāpi tur. Atsaucīga publika.
    Bet nu diemžēl jāsaka, ka HD tjuneru ražošanā ne Dream Multimedia ne Gemini komanda nav uzdevumu augstumos. Savu ieguldījumu tur protams ienes arī pazaļā Enigma 2, bet godīgi sakot, no šiem abiem kantoriem biju gaidījis ko vairāk.
    Ir arī iespēja izmēģināt alternatīvos imidžus, piem. Nabilo, bet baidos, ka visa HD tjuneru ar TĀM funkcijām 😉 būšana vēl ir stipri pazaļa.
    Vispār pēdējā laikā Gemini komanda ir sākusi spēcīgi aizrauties ar dažādām fancy fīčām, tai vietā lai slīpētu stabilitāti un ķertu mušas. Tas tomēr ir prioritārāk, nekā iebāzt tjunerī torrent klientu…

    Atbildēt
  2. Boldriks

    Klusībā gaidu, kad Dreammultimedia beidzot izputēs ar savu cenu politiku un nāks pie prāta. Kā gan var gaidīt, lai attīstās enigma2 (gemini), ja pats tuneris ir gauži dārgs un štruntīgs. Pietiks ar vienu lielu un stabilu tirgus pārdalītāju, lai situācija izmainītos. Tad arī paņemšu HD tuneri.

    Atbildēt
  3. Toska

    Nezinu, kas to izdomaja, bet tas ir vnk. debīli, ielikt to uzlecošo joslu IE is missing updates.. un tad redirektēt uz Mozilla…

    Atradušies Mozilla fani.

    Atbildēt

Atbildēt uz komentāru ragulops Atcelt atbildi

Tava e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti kā *