+class SimpleNimSockets:
+ def __init__(self):
+ self.nim_sockets = []
+
+ def Parse(self):
+ self.nim_sockets = []
+
+ nim_slot_idx = -1
+ fp = file('/proc/bus/nim_sockets')
+ for line in fp:
+ line = line.strip()
+ if line == "": continue
+
+ if line.startswith('NIM Socket '):
+ nim_slot_idx += 1
+ self.nim_sockets.append({'slot_idx':str(nim_slot_idx)})
+ elif line.startswith('Type:'):
+ line_token = line.split(":")
+ self.nim_sockets[nim_slot_idx]["type"] = line_token[1].strip()
+ elif line.startswith('Name:'):
+ line_token = line.split(":")
+ self.nim_sockets[nim_slot_idx]["name"] = line_token[1].strip()
+ elif line.startswith('Frontend_Device:'):
+ line_token = line.split(":")
+ self.nim_sockets[nim_slot_idx]["frontend_device"] = line_token[1].strip()
+ elif line.startswith('Mode '):
+ line_token = line.split(":")
+ mode=[]
+ try: mode=self.nim_sockets[nim_slot_idx]["mode"]
+ except: mode=[]
+ mode.append(line_token[1].strip())
+ self.nim_sockets[nim_slot_idx]["mode"] = mode
+ elif line.startswith('I2C_Device:'):
+ line_token = line.split(":")
+ self.nim_sockets[nim_slot_idx]["i2c_device"] = line_token[1].strip()
+ fp.close()
+
+ def GetTunerName(self, socket_id, type):
+ if len(self.nim_sockets) == 0:
+ return None
+ try:
+ nim_socket = self.nim_sockets[socket_id]
+ if nim_socket['type'] in type:
+ name_token = nim_socket['name'].split(' ')
+ return name_token[2][4:-1]
+ except Exception, err:
+ print "SimpleNimSockets ->", err
+ return ""
+
+ def GetDeviceId(self, filter):
+ tuners={}
+ device_id = 0
+ socket_id = 0
+ for nim_socket in self.nim_sockets:
+ name_token = nim_socket['name'].split(' ')
+ name = name_token[2][4:-1]
+ if name == filter:
+ #print nim_socket['type'], name, device_id
+ tuners[str(socket_id)] = {'id' : device_id, 'type' : nim_socket['type']}
+ if device_id: device_id = 0
+ else: device_id = 1
+ socket_id += 1
+ return tuners
+