# ------------------------------------------------------------------------------ # Define Dbox2 Function setup_channel(dbox_ipaddr, httpport, streamport, dbox_currentmode, chid) # This function sets up the dbox ready to stream & streams the HTTP link # Return Type: String def setup_stream(dbox_ipaddr, httpport, streamport, dbox_currentmode, chid): change = change_channel(dbox_ipaddr, httpport, chid) pids = get_allpids(dbox_ipaddr, httpport) selected_pid = pids[1][0] if len(pids) > 2: class SelectAudioStream(xbmcgui.WindowDialog): def __init__(setaudio): setaudio.bg = xbmcgui.ControlImage(200,25,520,500, 'panel2.png') setaudio.addControl(setaudio.bg) setaudio.header = xbmcgui.ControlLabel(305,95,245,25, 'Select Audio Stream', 'font13', '0xFFFFFFFF', '', 0x00000002) setaudio.addControl(setaudio.header) setaudio.list = xbmcgui.ControlList(230,130,400,320) setaudio.addControl(setaudio.list) setaudio.setFocus(setaudio.list) stream_count = 0 for x in pids[1:]: stream_count = stream_count + 1 listitem = xbmcgui.ListItem() listitem.setLabel(str(stream_count) + '. ' + x[1]) setaudio.list.addItem(listitem) def onControl(setaudio, control): pass def onAction(setaudio, action): if action == ACTION_SELECT_ITEM: setaudio.position = setaudio.list.getSelectedPosition() selected_pid = pids[position + 1][0] setaudio.removeControl(setaudio.list) setaudio.removeControl(setaudio.header) setaudio.removeControl(setaudio.bg) setaudio.close() if action == ACTION_PREVIOUS_MENU or action == ACTION_B_BUTTON: setaudio.removeControl(setaudio.list) setaudio.removeControl(setaudio.header) setaudio.removeControl(setaudio.bg) setaudio.close() show_setaudio = SelectAudioStream() show_setaudio.doModal() if dbox_currentmode == 'tv': httplink = str('http://' + dbox_ipaddr + ':' + streamport + '/' + hex(int(pids[0][0]))[2:] + ',' + hex(int(selected_pid))[2:]) else: httplink = str('http://' + dbox_ipaddr + ':' + streamport + '/' + hex(int(selected_pid))[2:]) xbmc.executebuiltin('xbmc.playmedia(' + httplink + ')') del show_setaudio