summaryrefslogtreecommitdiffstats
path: root/abs/core/live-installer/autocard.py
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core/live-installer/autocard.py')
-rwxr-xr-xabs/core/live-installer/autocard.py302
1 files changed, 0 insertions, 302 deletions
diff --git a/abs/core/live-installer/autocard.py b/abs/core/live-installer/autocard.py
deleted file mode 100755
index b59b8d6..0000000
--- a/abs/core/live-installer/autocard.py
+++ /dev/null
@@ -1,302 +0,0 @@
-#!/usr/bin/python
-# import MySQL module
-#jm
-import MySQLdb
-import sys
-import getopt
-import socket
-import os
-import time
-import string
-import glob
-from string import letters
-from string import digits
-
-def INSERTCARD_INTOMYTH(Device,Driver,Cardvendor):
- global currenthostname
- print Device
- print Driver,
- print Cardvendor
- cursor = db.cursor()
- insert = "false"
- if Driver == "ivtv" :
- cardtype="MPEG"
- defaultinput="Tuner 1"
- insert="true"
- if Cardvendor == "pcHDTV HD3000 HDTV":
- insert="false"
- cardtype ="whocares"
-
- #print insert
- if insert == "true" :
- cursor.execute("INSERT INTO capturecard (videodevice,cardtype,defaultinput,hostname) VALUES(%s,%s,%s,%s);",(Device,cardtype,defaultinput,currenthostname))
-
-def INSERTHDR_INTOMYTH(deviceid,tuner_number):
- cardtype='HDHOMERUN'
- defaultinput='MPEG2TS'
- global currenthostname
- print deviceid
- print cardtype
- print defaultinput
- print tuner_number
- cursor = db.cursor()
- #print insert
- cursor.execute("INSERT INTO capturecard (videodevice,cardtype,defaultinput,dbox2_port ,hostname) VALUES(%s,%s,%s,%s,%s);",(deviceid,cardtype,defaultinput,tuner_number,currenthostname))
-
-def INSERTAUTOCARD():
- global cardlist
- global currenthostname
- # create a cursor
- cursor = db.cursor()
-
-
- for i in range( 1 , len(cardlist)):
- insert = "false"
-# print cardlist[i]
- Device=cardlist[i][0]
- Driver=cardlist[i][1]
- Cardvendor=cardlist[i][2]
- Businfo=cardlist[i][3]
- if Driver == "ivtv" :
- insert="true"
- devicestatus="unused"
- if Cardvendor == "pcHDTV HD3000 HDTV":
- insert="false"
- cardtype ="whocares"
- if Driver == "hdr":
- insert="true"
- devicestatus="unused"
-
- if insert == "true" :
- cursor.execute("delete from autocard where uniqid=%s;",(Businfo))
- if Driver=="hdr":
- Cardvendor="HDHOMERUN Tuner 1"
- cursor.execute("INSERT INTO autocard (dev,driver,description,uniqid,devicestatus,hostname) VALUES(%s,%s,%s,%s,%s,%s);",(Device,Driver,Cardvendor,Businfo,devicestatus,currenthostname))
- Cardvendor="HDHOMERUN Tuner 2"
- cursor.execute("INSERT INTO autocard (dev,driver,description,uniqid,devicestatus,hostname) VALUES(%s,%s,%s,%s,%s,%s);",(Device,Driver,Cardvendor,Businfo,devicestatus,currenthostname))
-
- else:
- cursor.execute("INSERT INTO autocard (dev,driver,description,uniqid,devicestatus,hostname) VALUES(%s,%s,%s,%s,%s,%s);",(Device,Driver,Cardvendor,Businfo,devicestatus,currenthostname))
-
-
-
-def PRINTINFO():
- global cardlist
-
- for list in cardlist:
- if list != "_placeholder_":
- print list
- #print "-------------"
-
-def GATHER_HDR():
- global cardlist
- command="/usr/bin/hdhomerun_config --discover"
- results=os.popen(command,'r')
- line=results.readline()
- if line.strip().split()[0] == "no":
- print "HDHOMERUN not detected"
- else:
- print line
- hdrdevice=line.strip().split()[2]
- print hdrdevice
- Driver="hdr"
- Device=hdrdevice
- Cardtype="HDHOMERUN"
- Businfo=hdrdevice
- cardprops = [Device,Driver , Cardtype , Businfo]
- cardlist.append(cardprops)
-
-
-def GATHER_v4l_CARDS():
- global cardlist
- cardlist=["_placeholder_"]
- # print "Looking for v4l cards"
- try:
- filelist = os.listdir('/dev/v4l/')
- except OSError:
- filelist=" "
- #fakelist=['/dev/v4l/video3', 'ivtv', 'WinTV PVR 500 (unit #2)', '0000:04:09.0']
- #cardlist.append(fakelist)
- try:
- filelist = glob.glob("/dev/v4l/video?")
- Driver=""
- Cardtype=""
- Businfo=""
- numcards = 0
- for Device in filelist:
- #print card
- numcards = numcards+1
- cmd = 'v4l2-ctl -D -d' + Device
- for line in os.popen(cmd).readlines():
- #print line
- pos = string.find(line,"Driver name")
- if pos >=0:
- splitline= line.split(':')
- Driver=splitline[1].strip()
- pos = string.find(line,"Card type")
- if pos >=0:
- splitline= line.split(':')
- Cardtype=splitline[1].strip()
-
- pos = string.find(line,"Bus info")
- if pos >=0:
- splitline= line.split(':',1)
- Businfo=splitline[1].strip()
-
- #print Device,Driver , Cardtype , Businfo,numcards
- cardprops = [Device,Driver , Cardtype , Businfo]
- cardlist.append(cardprops)
- except IOError:
- print "no v4l cards found"
- sys.exit(2)
-
-
-def WRITEUDEV_IVTV():
- global insertmyth
- cursor = db.cursor()
- #add ivtv,cid lookup loop through until empty.
- cursor.execute("select distinct(uniqid) from autocard where driver='ivtv' and devicestatus='will-add'")
- cidrows = cursor.fetchall()
- for row in cidrows:
- cid=row[0]
- cursor.execute("select dev,driver,description,devicestatus,hostname from autocard where uniqid=%s limit 1;",(cid))
- result = cursor.fetchone()
- description=result[2]
- driver='DRIVERS==\"ivtv\"'
- ATTRNAME='ATTR{name}=="ivtv? encoder MPG"'
- KERNELS='KERNELS==\"'
- KERNELS+=cid
- KERNELS+="\""
- #filter out non digit or chars
- keep=letters.join(digits)
- description=filter(lambda c: c in keep, description)
- devnode="ivtv/"
- #devnode+=description + "_"
- udevcid=cid.partition(":")
- devnode+=udevcid[2]
- devnode+="_video"
- UDEV_RULE=driver +', '+ATTRNAME+', '+ KERNELS +', ' + 'NAME=\"' + devnode + '"'
- print "Here is the udev rule"
- print UDEV_RULE
- filename='/etc/udev/rules.d/11-ivtv-'+cid+'.rules'
- file = open(filename,'w')
- file.write(UDEV_RULE)
- if ( insertmyth == "true"):
- devnode="/dev/"+devnode
- INSERTCARD_INTOMYTH(devnode,"ivtv",description)
- cursor.execute("update autocard set devicestatus='done' where uniqid=%s;",(cid))
-#now insert HDR
- cursor.execute("select distinct(uniqid),description from autocard where driver='hdr' and devicestatus='will-add'")
- cidrows = cursor.fetchall()
- for row in cidrows:
- if ( insertmyth == "true"):
- deviceid=row[0]
- #cardtype="HDHOMRUN"
- #defaultinput="MPEG2TS"
- dbox2_port=row[1]
- tuner_number=dbox2_port.rpartition(' ')[2]
- INSERTHDR_INTOMYTH(deviceid,tuner_number)
- cursor.execute("update autocard set devicestatus='done' where uniqid=%s and description=%s;",(deviceid,dbox2_port))
-
-
-
-def CLEARAUTOCARD():
- cursor = db.cursor()
- cursor.execute("delete from autocard")
-
-def RELOADUDEV():
- print "relaoding udev rules"
- os.system('udevcontrol reload_rules')
- os.system('rmmod ivtv')
- os.system('udevtrigger')
-
-
-def usage():
- print " -h help"
- print " -g gather and print out the found cards"
- print " -w write out the udev rules"
- print " -i insert cards into myth that are marked will-add(only used with -w)"
- print " -r reload udev rules"
- print " -c clear the autocard db"
-
-def main(argv):
- global db
- global cardlist
- global currenthostname
- currenthostname=""
- writeudev="false"
- global insertmyth
- insertmyth ="false"
-
- db = MySQLdb.connect(host="localhost", user="mythtv", passwd="mythtv", db="mythconverg")
- try:
- cursor = db.cursor()
- cursor.execute("describe autocard;")
- except MySQLdb.Error, e:
- cursor.execute("create table autocard(dev varchar(50),driver varchar(50),description varchar(50),uniqid varchar(50), devicestatus varchar(50),hostname varchar(50));")
- print "table created"
-
- if ( currenthostname == "" ):
- currenthostname = socket.gethostname()
-
-
- try:
- opts, args = getopt.getopt(argv, "hgwirc", ["help", "gathercards", "writeudev" ,"insert" , "reloadudev" , "clearautocard"] )
- except getopt.GetoptError:
- sys.exit(2)
- for opt, arg in opts:
- if opt in ("-h", "--help"):
- usage()
- sys.exit()
- elif opt in ( "-g" , "--gathercards"):
- GATHER_v4l_CARDS()
- GATHER_HDR()
- INSERTAUTOCARD()
- PRINTINFO()
- elif opt in ("-w", "--writeudev"):
- writeudev="true"
- elif opt in ("-i", "--insert"):
- insertmyth="true"
- elif opt in ( "-r" , "--reloadudev"):
- RELOADUDEV()
- elif opt in ( "-c" , "--clearautocard"):
- CLEARAUTOCARD()
-
-
- if ( writeudev == "true"):
- WRITEUDEV_IVTV()
-
-
-
-
-
-
-if __name__ == "__main__":
- main(sys.argv[1:])
-
-
-
-
-
-#mysql> create table autocard(dev varchar(50),driver varchar(50),description varchar(50),uniqid varchar(50), devicestatus varchar(50),hostname varchar(50));
-#Query OK, 0 rows affected (0.14 sec)
-
-#mysql> describe autocard;
-#+--------------+-------------+------+-----+---------+-------+
-#| Field | Type | Null | Key | Default | Extra |
-#+--------------+-------------+------+-----+---------+-------+
-#| dev | varchar(50) | YES | | NULL | |
-#| driver | varchar(50) | YES | | NULL | |
-#| description | varchar(50) | YES | | NULL | |
-#| uniqid | varchar(50) | YES | | NULL | |
-#| devicestatus | varchar(50) | YES | | NULL | |
-#| hostname | varchar(50) | YES | | NULL | |
-#+--------------+-------------+------+-----+---------+-------+
-
-
-
-
-
-
-
-