Geilo. Das sieht für mich nach einem Grund aus wieder einmal am VDR zu arbeiten.
Posts by novice the 2nd
-
-
-
Hallo,
wie kann man zur Webinterface index Seite (Please select an application:...) einen Eintag hinzufügen?
-
meine Gründe für KDE: Activities, Krunner, gekoppeltes Terminal in Dolphin, KMail+Kontact, Konfigurierbarkeit
-
Schön und gut, aber wozu? Eine vernünftige Fernbedienung hat genügend Tasten.
Oder wozu ist der gut?Ja, meine hat keine eigenen VOL Tasten.
Der Post sollte auch keine Aufforderung für eine Integration in yaVDR sein. Spart aber eventuell anderen das Anpassen... -
Hier der VOLCTRL Patch von Frank Schmirler (http://vdr.schmirler.de/volctrl ), angepasst für yaVDR (vdr 2.0.6).
-
Du solltest im recording hooks, aber noch die gleichzeitig laufenden Aufnahmen mit zählen, sonst gibt es Probleme bei überlappenden Timern.
So würds auch gehen ;-). Aber das Skript zählt die Aufrufe, in der 'blink' Variable, schon mit.
Unter easyvdr 2.0 wurde in den letzten Tagen das Plugin reaktiviert und arbeitet mit blinkd zusammen.
Unter Ubuntu ist blinkd leider nicht mehr dabei. Selbst compilieren und bei Updates immer darauf achten wollte ich mir sparen.
-
Da ich meine Recording LED wieder zum Leben erwecken wollte und blinkd veraltet zu sein scheint hab ich das ganze schnell mit einem Skipt nachgebaut.
Code
Display More#!/usr/bin/env python import fcntl import os import time import thread PIPE_NAME = '/dev/blink' KDSETLED = 0x4B32 SCR_LED = 0x01 NUM_LED = 0x02 CAP_LED = 0x04 blink = 0 def read_pipe(): global blink pipe = open(PIPE_NAME, 'r') while True: b = pipe.read(1) if b == '1': blink += 1 elif b == '0': blink -= 1 elif b == 'c': blink = 0 time.sleep(1) console = os.open('/dev/console', os.O_NOCTTY) if not os.path.exists(PIPE_NAME): os.mkfifo(PIPE_NAME) os.chmod(PIPE_NAME, 0666) thread.start_new_thread(read_pipe, ()) try: while True: if blink > 0: fcntl.ioctl(console, KDSETLED, CAP_LED) time.sleep(0.5) fcntl.ioctl(console, KDSETLED, 0) time.sleep(0.9) else: fcntl.ioctl(console, KDSETLED, 0) time.sleep(1) finally: if os.path.exists(PIPE_NAME): os.remove(PIPE_NAME)
Dieses starte ich als Service beim Systemstart. Über '/dev/blink' kann man dann die LED aktivieren und wieder aussschalten.
Die Verbindung zum VDR geschieht über recording hooks:
Beim Starten einer Aufnahme wird
ausgeführt. Und am Ende
. -
ich finde da sollte man differenzieren: wenn ich nur mal kurz zurückspulen will, um etwas das ich verpasst habe nochmal anzuschauen, dann sehe ich keinen Grund darin, den Puffer direkt auf Platte zu schreiben. Wenn ich allerdings Pause drücke, dann sollte schon eine Direktaufnahme inklusive des bisherigen Puffers erzeugt werden.
Ich finde da das Verhalten vom alten Livebuffer am logischten: Solange man mit dem Buffer im RAM auskommt bleibt er im RAM (egal ob man schon mal pausiert oder zurückgespult hat). Wenn der Buffer im RAM nicht mehr reicht (z.B. wenn lang Pausiert wird) wird der Buffer auf der Festplatte fortgesetzt.
Und nur mal ein paar Gedanken wegen dem Problem mit dem Schreiben des Buffers auf die Platte:
- Gibt es eine Möglichkeit hinter einem File den RAM Inhalt zu verstecken (also das Gegenteil von mmap)?
- Eventuell kann man sowas mit FUSE basteln. (Wahrscheinlich wär es aber einfacher gleich dem VDR das lesen aus dem RAM beizubringen)
- Oder 'ramfs'?
- Wenns mit 'tmpfs' funktioniert könnte man sich die Erweiterung des Buffers auf die reale Festplatte sparen, da das dann vom OS durch Swapping übernommen wird?MfG
-
nein. ich hab nur eine Fernbedienung. Die Datei war bei mir schon so. Ich habe nur die letzte Zeile hinzugefügt.
-
ja, ist historisch gewachsen...
-
Ah sorry. Ich verwende eine Hauppauge Fernbedienung.
Diese: http://wiki.ctbot.de/images/Hauppauge_mvp.jpg -
OK. Dann hier mal meine config Dateien...
/etc/rc_keymaps/rc-dvbsky
# table rc-dvbsky, type: RC-5
0x003d KEY_POWER2
0x0001 KEY_1
0x0002 KEY_2
0x0003 KEY_3
0x0004 KEY_4
0x0005 KEY_5
0x0006 KEY_6
0x0007 KEY_7
0x0008 KEY_8
0x0009 KEY_9
0x0000 KEY_0
0x000d KEY_MENU
0x0020 KEY_UP
0x0021 KEY_DOWN
0x0011 KEY_LEFT
0x0010 KEY_RIGHT
0x0025 KEY_OK
0x001f KEY_ESC
0x000b KEY_RED
0x002e KEY_GREEN
0x0038 KEY_YELLOW
0x0029 KEY_BLUE
0x0024 KEY_BACK
0x0030 KEY_PAUSE
0x001e KEY_NEXT
0x0037 KEY_RECORD
0x0035 KEY_PLAY
0x0036 KEY_STOP
0x000c KEY_VOLUMEDOWN
0x003c KEY_VOLUMEUP
0x0034 KEY_FASTFORWARD
0x0032 KEY_REWIND
0x000f KEY_MUTE/etc/rc_maps.cgf
#
# Keymaps table
#
# This table creates an association between a keycode file and a kernel
# driver. It can be used to automatically override a keycode definition.
#
# Although not yet tested, it is mented to be added at udev.
#
# To use, you just need to run:
# ./ir-keytable -a
#
# Or, if the remote is not the first device:
# ./ir-keytable -a -s rc1 # for RC at rc1
## Format:
# driver - name of the driver provided via uevent - use * for any driver
# table - RC keymap table, provided via uevent - use * for any table
# file - file name. If directory is not specified, it will default to
# /etc/rc_keymaps.
# For example:
# driver table file
# cx8800 * ./keycodes/rc5_hauppauge_new
# * rc-avermedia-m135a-rm-jx ./keycodes/kworld_315u
# saa7134 rc-avermedia-m135a-rm-jx ./keycodes/keycodes/nec_terratec_cinergy_xs
# em28xx * ./keycodes/kworld_315u
# * * ./keycodes/rc5_hauppauge_new# Table to automatically load the rc maps for the bundled IR's provided with the
# devices supported by the linux kernel#driver table file
#* rc-twinhan1027 twinhan_vp1027_dvbs
#* rc-videomate-s350 videomate_s350
#* rc-msi-tvanywhere-plus msi_tvanywhere_plus
#* rc-msi-digivox-iii msi_digivox_iii
#* rc-eztv eztv
#* rc-msi-digivox-ii msi_digivox_ii
#* rc-azurewave-ad-tu700 azurewave_ad_tu700
#* rc-gotview7135 gotview7135
#* rc-dib0700-nec dib0700_nec
#* rc-lme2510 lme2510
#* rc-dntv-live-dvbt-pro dntv_live_dvbt_pro
#* rc-tbs-nec tbs_nec
#* rc-encore-enltv encore_enltv
#* rc-nec-terratec-cinergy-xs nec_terratec_cinergy_xs
#* rc-proteus-2309 proteus_2309
#* rc-msi-tvanywhere msi_tvanywhere
#* rc-fusionhdtv-mce fusionhdtv_mce
#* rc-avermedia-cardbus avermedia_cardbus
#* rc-cinergy cinergy
#* rc-imon-pad imon_pad
#* rc-em-terratec em_terratec
#* rc-behold behold
#* rc-gadmei-rm008z gadmei_rm008z
#* rc-behold-columbus behold_columbus
#* rc-genius-tvgo-a11mce genius_tvgo_a11mce
#* rc-kaiomy kaiomy
#* rc-flydvb flydvb
#* rc-leadtek-y04g0051 leadtek_y04g0051
#* rc-videomate-tv-pvr videomate_tv_pvr
#* rc-iodata-bctv7e iodata_bctv7e
#* rc-budget-ci-old budget_ci_old
#* rc-dm1105-nec dm1105_nec
#* rc-dntv-live-dvb-t dntv_live_dvb_t
#* rc-anysee anysee
#* rc-tt-1500 tt_1500
#* rc-flyvideo flyvideo
#* rc-pixelview pixelview
#* rc-streamzap streamzap
#* rc-kworld-plus-tv-analog kworld_plus_tv_analog
#* rc-apac-viewcomp apac_viewcomp
#* rc-avermedia-a16d avermedia_a16d
#* rc-digitalnow-tinytwin digitalnow_tinytwin
#* rc-real-audio-220-32-keys real_audio_220_32_keys
#* rc-avermedia-m733a-rm-k6 avermedia_m733a_rm_k6
#* rc-winfast-usbii-deluxe winfast_usbii_deluxe
#* rc-pixelview-mk12 pixelview_mk12
#* rc-pinnacle-color pinnacle_color
#* rc-pinnacle-pctv-hd pinnacle_pctv_hd
#* rc-terratec-cinergy-xs terratec_cinergy_xs
#* rc-alink-dtu-m alink_dtu_m
#* rc-imon-mce imon_mce
#* rc-rc6-mce rc6_mce
#* rc-pv951 pv951
#* rc-kworld-315u kworld_315u
#* rc-nebula nebula
#* rc-encore-enltv-fm53 encore_enltv_fm53
#* rc-asus-pc39 asus_pc39
#* rc-dib0700-rc5 dib0700_rc5
#* rc-pinnacle-grey pinnacle_grey
#* rc-pctv-sedna pctv_sedna
#* rc-ati-tv-wonder-hd-600 ati_tv_wonder_hd_600
#* rc-videomate-m1f videomate_m1f
#* rc-cinergy-1400 cinergy_1400
#* rc-adstech-dvb-t-pci adstech_dvb_t_pci
#* rc-terratec-slim terratec_slim
#* rc-purpletv purpletv
#* rc-total-media-in-hand total_media_in_hand
#* rc-powercolor-real-angel powercolor_real_angel
#* rc-manli manli
#* rc-digittrade digittrade
#* rc-pixelview-002t pixelview_002t
#* rc-norwood norwood
#* rc-pixelview-new pixelview_new
#* rc-avermedia avermedia
#* rc-technisat-usb2 technisat_usb2
#* rc-trekstor trekstor
#* rc-avertv-303 avertv_303
#* rc-evga-indtube evga_indtube
#* rc-avermedia-dvbt avermedia_dvbt
#* rc-avermedia-rm-ks avermedia_rm_ks
#* rc-rc5-hauppauge hauppauge
#* rc-winfast winfast
#* rc-avermedia-m135a avermedia_m135a
#* rc-npgtech npgtech
#* rc-encore-enltv2 encore_enltv2
#* rc-tevii-nec tevii_nec
# * * a800 # found in a800.c
# * * af9005 # found in af9005-remote.c
# * * cinergyt2 # found in cinergyT2-core.c
# * * dvico_mce # found in cxusb.c
# * * dvico_portable # found in cxusb.c
# * * d680_dmb # found in cxusb.c
# * * dibusb # found in dibusb-common.c
# * * digitv # found in digitv.c
# * * dtt200u # found in dtt200u.c
# * * dw210x # found in dw2102.c
# * * tevii # found in dw2102.c
# * * tbs # found in dw2102.c
# * * megasky # found in m920x.c
# * * tvwalkertwin # found in m920x.c
# * * pinnacle310e # found in m920x.c
# * * haupp # found in nova-t-usb2.c
# * * opera1 # found in opera1.c
# * * vp702x # found in vp702x.c
# * * vp7045 # found in vp7045.c
ir-kbd-i2c rc-hauppauge /lib/udev/rc_keymaps/rc-hauppauge
imon rc-imon-pad /lib/udev/rc_keymaps/rc-imon-pad
imon rc-imon-mce /lib/udev/rc_keymaps/rc-imon-mce
mceusb rc-rc6-mce /lib/udev/rc_keymaps/HOPLOrc6
mantis_core * /lib/udev/rc_keymaps/skystarhd2
* rc-tt-1500 /lib/udev/rc_keymaps/rc-tt-1500
nuvoton-cir rc-rc6-mce /lib/udev/rc_keymaps/rc-rc6-mce
ati_remote rc-medion-x10 /lib/udev/rc_keymaps/rc-medion-x10
ati_remote rc-medion-x10-or2x /lib/udev/rc_keymaps/rc-medion-x10-or2x
ati_remote rc-medion-x10-digitainer /lib/udev/rc_keymaps/rc-medion-x10-digitainer
dvb_usb_dvbsky rc-dvbsky /etc/rc_keymaps/rc-dvbskyAn weitere Einstellungen kann ich mich nicht mehr erinnern.
-
Kaffeine läßt sich trotzdem noch nicht so richtig bedienen.
Funktionierts mittlerweile mit VDR oder XBMC?
Ich hab bei mir kurz die Fernbedienung mit VLC probiert, aber erfolglos. Das funktioniert nicht out-of-the-box. Aber Seahawk hat dazu ja schon ein paar Links gepostet. -
Vielleicht solltest du die Befehle dann detach und attach nennen, um das von REMO abzugrenzen.
Werd ich in der nächsten Version anpassen...
Dann waere dein Plugin aber recht ueberfluessig , denke ich mal.
Ich seh da kein VDR Plugin... aber viele Wege führen nach Rom. Dieses ist jedenfalls nicht speziell für XBOX Gamepads gemacht.
-
Ich kann grade nicht an den VDR, aber kann man durch ein Ab- und Anschalten des Gamepad durch die SVDRP-Kommandis des Plugin auch einen nachträglich angesteckten Empfänger nutzbar machen?
Ja, das sollte funktionieren, beim ENABLE Kommando macht das Plugin fast das gleiche wie bei einem VDR restart. Nur die keymap.txt wird nicht neu eingelesen, aber das wär leicht zu ändern.
-
Hallo,
ich wollte es gerade mal bauen, aber er bricht mit dieser Fehlermeldung ab:Danke! Deine Änderungen hab ich ins Repository übernommen.
Das Plugin funktioniert schon sehr gut, nur bei den analogen Schultertasten des XBOX 360 Controllers bin ich noch auf der Suche nach den optimalen Einstellungen, weil die je nach Druckstufe unterschiedliche Events liefern:
...Seht aus als wenn beim Drücken und Loslassen ein event ausgelöst wird. Mann darf dann nur einem Generic Event (hier 26 oder 27) eine Taste zuordnen. Eventuell benötigen diese Tasten aber noch eine Sonderbehandlung. Ich werd mir das anschaun sobald ich ein XBOX Gamepad hab.
Ups, Kommando zurück, das mit remo on/off klappt schon.
Ursprünglich hab ich die SVDRP Kommandos dafür vorgesehen, dass man das Joystick Device freigeben kann (also z.B.: /dev/input/js0). Das ist aber anscheinend gar nicht notwendig. Zumindest in XBMC funktioniert das Gamepad auch ohne Deaktivierung vom Gamepad Plugin.
-
Hi,
ich hab die erste Version des gamepad Plugin released.
Es erlaubt die VDR Steuerung mittels Joystick Devices. Analogsticks können wie Buttons verwendet werden. Für jeden Button kann die Belegung konfiguriert werden. Weiters kann pro Button ein automatisches Repeatintervall bei gedrückthalten des Buttons konfiguriert werden (So kann zum Beispiel die Lautstärke mittels Analogsticks verändert werden).
Weitere Details stehen in der README.Das Plugin gibts bei VDR Developer:
http://projects.vdr-developer.org/projects/plg-gamepadObwohl ich noch keines hab möchte ich in Zukunft ein XBOX Gamepad verwenden, das hat die richtigen Farbtasten für die VDR Steuerung.
-
... und hier die erste Version:
http://projects.vdr-developer.org/projects/plg-gamepad -
Aha, dann war die Änderung so klein, dass es mir nicht wirlkich aufgefallen ist.
Habs jetzt auf 26px eingestellt, das passt für mich perfekt.Nochmals Danke!