Interneta raidstaciju uztvērējs, kurš atbalsta MP3 plūsmas caur HTTP, MMS, ShoutCast un Wowza M3U. Attēlo raidījumu sarakstu un ļauj regulēt skaļumu. Vairākiem kanāliem ļauj skatīties studijas tiešraidi un uzzināt skanējušās dziesmas.
Komplektā nāk visi Rīgas kanāli, BBC pamatkanāli, Itālijas (Rai), Krievijas (ВГТРК) un Ukrainas (НРКУ) valsts radio, Eirodziesmas, Eiroziņas vairākās valodās, ЭХО Москвы, Ретро FM, Тавр un 101.ru daudzējādie kanāli. Ikonas un radioaparāta izskats iedvesmots ar VEF 202, kuru jaunībā mēdza klausīties autors. Kanālu izvēli noteica autora, viņa draugu un radu gaume, kā arī tieksme pēc pilnības.
Uzstādīšanai atpako Radio21.zip uz izvēlēto mapi, piemēram, C:\Program Files\Radio. Programmas darbība nebūs traucēta, ja mapē nebūs ieraksta tiesības. Komplekta sastāvs:
- Radio.exe – raidstaciju uztvērējs, šo failu jāpiesprauž uzdevumu joslai pilnvērtīgai darbībai.
- Radio.xml – Rīgas un daži citi kanāli, kuriem nāk līdzi tikai logotips. Šeit rakstāmi kanāli, kuriem nav raidījumu saraksta vai tas ir Icy formātā.
Katru kanālu apraksta viens
Channel
elements sadaļāChannels
. Tam ir obligāts atribūtiCaption
(sarakstā un virsrakstā attēlojamais nosaukums) un kāds no norādošiem plūsmu (satur tās pilno adresi):Url
pirmkārt MMS kanāliem,Icy
ShoutCast kanāliem bez dziesmu saraksta unIcyGuide
ar dziesmu sarakstu. Neobligātie atribūti irTime
(laika joslas nosaukums pulksteņa attēlošanai, iespējamās vērtības skatīt Windows reģistrā HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones, noņemot beigās “ Standard Time”),Homepage
(kanāla mājaslapas adrese) unLogoId
(logotipa identifikators sadaļāLogos
). Vienam vai vairākiem kanāliem var būt pievienots logotipa attēls, Base64 pārkodēts PNG fails, kuru ievieto elementāLogo
ar unikālu atribūtaId
vērtību, uz kuru atsaucāsChannel
elementā. - NAudio.dll – bibliotēka, kura palīdz atskaņot MP3. Tā nav nepieciešama MMS kanāliem, piemēram, BBC.
- *.Station.dll – raidstacijas ar vienu vai vairākiem kanāliem, kuriem pieejams noformējums un raidījumu saraksts.
Darbībai nepieciešams .NET Framework 4.5.1 vai jaunāks (esošo versiju var pārbaudīt ar Smallest .NET palīdzību), Windows versija sākot ar 7, der arī Server paveidi. Zem Windows 7 un 8 pirmo reizi palaižot programmu no pieejamiem kanāliem tiek izveidots un parādīts saīšņu saraksts.
Ja palaišanas brīdī parādās ugunsmūra brīdinājums, tad Radio.exe ir aizliedzami ienākošie savienojumi (tādi nav paredzēti no attālinātiem datoriem) un atļaujami izejošie. Pēdējais atskaņotais kanāls tiek iegaumēts, tāpēc nākošajā reizē var laist, nelietojot saīšņu sarakstu. Saīšņu saraksts ir tīrāms ar operētājsistēmas standartlīdzekļiem (kontekstizvēlnē nospiežot Noņemt no šī saraksta), tad nevēlamie kanāli tiks saglabāti konfigurācijas failā. Tas attiecas arī uz 101.ru un Pieci.lv kanāliem, kurus izvēlas iestatījumu logos.
Lai atinstalētu programmu, ja apnikuši visi kanāli, jādzēš atpakotās mapes saturu un mapi C:\Users\{lietotāja vārds}\AppData\Local\Dr.Dax_Labs\Radio.exe_Url_{burti un cipari}
(šī mape jādzēš arī, ja palaišanas brīdī saņem paziņojumu Configuration system failed to initialize).
G Ieslēgt/izslēgt raidījumu sarakstu
T Ieslēgt/izslēgt pulksteni ar studijas laiku
M Ieslēgt/izslēgt skaņu
↑ Palielināt skaļumu
↓ Samazināt skaļumu
C Kopēt uz starpliktuvi pašreizējā raidījuma datus
X Kopēt iepriekšējā raidījuma datus
H Atvērt kanāla mājaslapu
F1 Atvērt informācija par pašreizējo raidījumu
F2 Atvērt agrāk skanējušo raidījumu sarakstu
F3 Atvērt video translāciju no studijas
F4 Atvērt stacijas iestatījumus
Autors izmanto Visual Studio 2013, bet iespējams salikt projektu no komandrindas ar MSBuild palīdzību. NAudio bibliotēka piesaistīta ar NuGet starpniecību.
Stacija parasti pārstāv vienu raidošo uzņēmumu, piemēram, valsts radiokompāniju vai mēdiju grupu. Stacijas glabājas atsevišķās bibliotēkās ar paplašinājumu .Station.dll
. Radio uztvērējs ielādē visus šādus failus palaišanas brīdī un sarakstā attēlo pēc DLL nosaukumiem alfabēta secībā.
Stacija ir klase, kura manto no Station
klases vai tās apakšklases. Katrā bibliotēkā (DLL) jābūt tieši vienai stacijai, jo bibliotēkas, nevis klases, nosaukums tiek lietots, lai atšķirtu kanālus.
Stacijas konstruktorā tiek noteikti visu tās kanālu numuri, nosaukumi un piesaistītās ikonas. Kanālu secību nosaka stacija ar pievienošanas kārtību. Ja stacijas kanāliem ir kopīga laika josla, to arī norāda konstruktorā. Konstruktoram nav jāveic citi uzdevumi, lai stacija ātrāk ielādētos programmas palaišanas brīdī.
Kanālu numerāciju nosaka stacijas autors, katrai stacijai teorētiski var būt kanāli ar numuriem no 0 līdz 4294967295 (datu tips uint
, neoligāti pēc kārtas), bet praksē tos ierobežo saīšņu saraksta garums, kuru nosaka lietotājs.
Katrai stacijai ir metode GetChannel
, kura atgriež kanālu instances. Kanāliem ir divas pamatklases, UrlChannel
, plūsmām, kuras atskaņo WPF MediaPlayer
, un StreamChannel
(tā mantinieki IcyChannel
un SegmentedChannel
) visām pārējām plūsmām. Drīkst mantot arī no Channel
, bet iekļautajās stacijās pietiek ar minētajām trim.
Katram kanālam obligāta ir tā plūsmas adrese. Papildus var norādīt kanāla logotipu (bet sarakstā – ikonu), studijas laika joslu (lai klausītājs spētu novērtēt raidījumu vadītāju nosauktos laikus), raidījumu saraksta avotu un programmas loga noformējumu, kā arī komandu izvēlni.
Kanāliem ir jāspēj automātiski atjaunot atskaņošanu, ja notikusi kāda kļūme, raidījumu sarakstam šāda iespēja pagaidām nav paredzēta.
Raidījumu saraksts var nākt no ShoutCast plūsmas (pamatklase IcyGuide
un tās vienkāršākā gadījuma realizācija SimpleIcyGuide
), biežas servera taujāšanas (PollingGuide
, piemēram, eiroziņām, vai TimedGuide
, kā tas ir 101.ru) vai retas (vienreiz diennaktī) servera taujāšanas (ListedGuide
, kuras piemēri ir visām valsts stacijām).
Raidījumu sarakstu klases var kombinēt, piemēram, lai attēlotu dienas raidījumu, ja nav zināma pašreizējā dziesma, kā tas ir radio NABA un SWH.
No raidījumu saraksta programmas logā attēlo iepriekšējo, pašreizējo un gaidāmo (ne vienmēr nākamo) raidījumus, par kuriem zināms sākuma un beigu laiks, nosaukums un apraksts (skatīt klasi Broadcast
). Visbiežāk nosaukums atbilst dziesmas nosaukumam, bet aprakstā ir izpildītājs. Beigu laiks var būt fiktīvs, ja sarakstā netiek rādīts raidījuma ilgums.
Noformējumu veido ar klases Brand
konstruktoru, kuram norāda krāsas un otas loga elementiem. Otas var būt gan vienkārši gradienti, gan attēli, bet nekas mainīgs. Katram kanālam var piešķirt savu ikonu; stacijai vēlams, lai būtu vismaz viena ikona. Vairākas ikonas vienai stacijai, piemēram, Latvijas radio, pievienojamas kā res fails, kurš veidots ar bezmaksas rīku ResEdit. Šajā rīkā tad arī jānorāda versijas informācija. Ja res failā lieto ikonu nosaukumus nevis numurus, tad noskaidrojot to kārtas numurus ir jāņem vērā, ka tās tiek kārtotas alfabēta secībā.
Kanālu logotipi (PNG faili) jāpievieno ar Build Action Resource un jāizgūst ar stacijas metodi GetResourceImage
. Vēlams logotipa izmēram nepārsniegt 192x152 pikseļus. Attēla malu garumiem jādalās ar divi bez atlikuma, lai tas saglabātu skaidrību centrējot.
Katram kanālam un raidījumu sarakstam var būt līdz piecām komandām, kuras izsaucamas no programmas izvēlnes. Bieži sastopamām komandām pieejamas ikonas (uzskaitījums MenuIcon
) un tās izsaucamas ar funkcionālo taustiņu palīdzību. Lai iekļautos izvēlnē, jāmantojas no Menu
klases, konstruktorā jānorāda pieejamās komandas un lietotāja izvēle jāapstrādā metodē HandleCommand
. Komandu izvēlne tiek padota kanāla vai raidījumu saraksta konstruktoram.
Īpaša komanda ir Information
, jo to iespējams izsaukt arī ar pogu zem radiouztvērēja sīktēla uzdevumu joslā; pēc tās izsaukšanas ir jāatver pašreizējā raidījuma Tīmekļa lappuse (vai jāpaziņo, ka informācija nav pieejama).
Koda autors ir Dr.Dax (Staņislavs Klaušs), ja koda komentāros nav minēts savādāk, un viņš atļauj to brīvi izmantot citos projektos. Visi grafiskie faili pieder Dr.Dax vai raidstacijām un tos aizliegts izmantot citos projektos vai izplatīt atsevišķi no Dr.Dax Radio.
Pilnīga savietojamība netiek nodrošināta, bet pastāv iezīmju mantojamība. Versiju numuri mainās reti, tāpēc jāpievērš uzmanība salikšanas datumam, kuru var apskatīt logā Par Radio.
- 1.0 – Viena XML stacija ar
MediaElement
uztvērēja lomā. - 2.0 – Vairākas stacijas ar raidījumu sarakstiem un savu noformējumu. MP3 plūsmošanas paveidu atbalsts.
- 2.1 – Izvēlne ar komandām un iestatījumiem. Stacijas ar maināmu kanālu sarakstu. Video uztveršana no studijām.