15 March, 2009

Archlinux og TV

Så virker flimmeren. Mit gamle Hauppauge tvkort blev uden videre genkendt af ivtv. Installationen er enkel:

# pacman -S ivtv

Ændrede chmod til 770 på /dev/video0

Så fungerede

# ivtv-tune -d/dev/video0 -f 217.25

Hvilket er DR.

Afprøvede derefter mit python tk/tcl interface, der fungerede uden videre. Elegant er det ikke; men det virker...

---
#! /usr/bin/env python
# file: tkinterExp.py
"""
Python program that changes the TV channel via ivtv-tune.

By: Per Thykjaer Jensen
Email: per at multimusen dot dk
Url: http://multimusen.dk
Blog: http://multimusen.blogspot.com

Copyright: GNU / GPL2 2008
"""

# titel


# import
import sys, Tkinter, subprocess

# kanaler dict
frekvenser = dict(
Animal = 831.25,
ARD = 259.25,
# BBCPrime = 791.25,
BBCEntertainment = 791.25,
BBCWorld = 783.25,
Cartoon = 815.25,
# Charlie = 623.25,
CNN = 703.25,
CNBC = 847.25,
Discovery = 695.25,
Disney = 735.25,
dk4 = 807.25,
DR1 = 217.25,
DR2 = 203.25,
Ekstra = 375.25,
Eurosport = 759.25,
Hallmark = 727.25,
Infokanalen = 175.25,
Jetix = 727.25,

Kanal4Q = 359.25,
Kanal6M = 639.25,
SVT4 = 252.25,
Kanal5 = 671.25,
MTV = 719.25,
NatGeo = 847.25,
NDR = 767.25,
NOTV2 = 168.25,
Sat1 = 245.25,
SBS = 359.25,
Sverige1 = 182.25,
Sverige2 = 189.25,
TCM = 823.25,
TV2Charlie = 623.25,
TV2Film = 743.25,
TV2NEWS = 631.25,
TV2 = 210.25,
TV2Sport = 751.25,
TV3 = 471.25,
TV3PL = 647.25,
TV4 = 252.25,
VH1 = 799.25,
Voice = 775.25,
ZDF = 383.25,
Nickelodeon = 839.25
)

# ivtv %f henter vaerdi ind
ivtv = "ivtv-tune -f%f"

# henter datastroem fra tv-kortet
# subprocess.call("cat /dev/video0 > flimmer.mpg &", shell=True)
# unoedvendigt brug mplayer /dev/video0

# skifter kanal
def skiftKanal(kanal):
subprocess.call(ivtv % kanal, shell=True)

#taeller
i = 0

# funktionen skaber knapper
def knappen(Xkanal,rw,cl):
a = Tkinter.Button(text = teksten, width=12, command=lambda: skiftKanal(Xkanal)).grid(row=rw,column=cl)


# knapper skabes i loop
while i < 10:
teksten = str(frekvenser.items()[i][0])
kanal = int(frekvenser.items()[i][1])
knappen(kanal,i,0)
i = i + 1

# flere
while i < 20:
teksten = str(frekvenser.items()[i][0])
kanal = int(frekvenser.items()[i][1])
knappen(kanal,i-10,1)
i = i + 1

# flere
while i < 30:
teksten = str(frekvenser.items()[i][0])
kanal = int(frekvenser.items()[i][1])
knappen(kanal,i-20,2)
i = i + 1

# og de sidste kanaler
while i < len(frekvenser):
teksten = str(frekvenser.items()[i][0])
kanal = int(frekvenser.items()[i][1])
knappen(kanal,i-30,3)
i = i + 1

# eksekverer loopet
Tkinter.mainloop()

No comments: