def ctct(): __active_zoneLock.acquire() # Get Volume current_volume = str(active_zone.volume) # Get zones if zone management is turned on if zones_on: zones = raumfeld.getZones() active_zone_str_helper = [active_zone_udn == zone.UDN for zone in zones] active_zone_str_helper = [re.sub('True', 'Active', str(no)) for no in active_zone_str_helper] active_zone_str_helper = [re.sub('False', 'Activate', str(no)) for no in active_zone_str_helper] unassigned = raumfeld.getUnassignedRooms() else: active_zone_str_helper = [] zones = [] unassigned = [] sleep(1) TState = str(active_zone.transport_state) if str(TState) == "STOPPED" or str(TState) == "PAUSED_PLAYBACK": play_button = 'play_shiny.png' else: play_button = 'pause_shiny.png' __active_zoneLock.release() return template('controls', play_button=play_button, zones_on=zones_on, zones=zones, unassigned=unassigned, active_zone_str_helper=active_zone_str_helper, current_volume=current_volume)
def discover_active_zone(): __active_zoneLock.acquire() global active_zone active_zone = raumfeld.getZoneByUDN(active_zone_udn) if active_zone == None: active_zone = raumfeld.getZones()[0] sleep(2) __active_zoneLock.release() return active_zone
def getZones(): """Returns the Zone names and UDNs in JSON format""" returndata = {} returndata["data"] = [] returndata["success"] = False for zone in raumfeld.getZones(): z = {} z['name'] = zone.Name z['udn'] = zone.UDN returndata["data"].append(z) returndata["success"] = True return json.dumps(returndata)
def dataHasBeenUpdated(): print("########## " + strftime("%Y-%m-%d %H:%M:%S", gmtime()) + " ##########") print("Zones:") for zone in raumfeld.getZones(): print("UDN: " + zone.UDN + " Name: " + zone.Name + " Location: " + zone.Location) for room in zone.getRooms(): print("\tUDN: " + room.UDN + " Name: " + room.Name) for renderer in room.getRenderers(): print("\t\tUDN: " + renderer.UDN + " Name: " + renderer.Name + " Location: " + renderer.Location + " Volume: " + unicode(renderer.volume)) print("Unassigned Rooms:") for room in raumfeld.getUnassignedRooms(): print("Name: " + room.Name + " UDN: " + room.UDN) for renderer in room.getRenderers(): print("\tUDN: " + renderer.UDN + " Name: " + renderer.Name + " Location: " + renderer.Location) print("########## This gets updated when the config changes. To QUIT press any key... ##########")
def zone(udn): """Change active zone by UDN""" global active_zone_udn zone = raumfeld.getZoneByUDN(udn) if zone != None: active_zone_udn = udn else: zones = raumfeld.getZones() zone = zones[0] active_zone_udn = zone.UDN with open('active_zone_udn', 'w') as f: f.write(active_zone_udn) sleep(ctct_sleep) discover_active_zone() redirect('/ctct')
def info(): __active_zoneLock.acquire() zones = raumfeld.getZones() active_zone_str_helper = [active_zone_udn == zone.UDN for zone in zones] active_zone_str_helper = [re.sub('True', 'Active', str(no)) for no in active_zone_str_helper] active_zone_str_helper = [re.sub('False', 'Activate', str(no)) for no in active_zone_str_helper] unassigned = raumfeld.getUnassignedRooms() current_track = active_zone.position_info current_media = active_zone.media_info track_raw = unicode(current_track['track_metadata']).encode('utf8') tree = ET.fromstring(track_raw) track_meta = didl_to_dict(tree)[0] tree = ET.fromstring(unicode(current_track['track_metadata']).encode('utf8')) media_meta = didl_to_dict(tree)[0] host_address = raumfeld.hostBaseURL host_ip = re.findall( r'[0-9]+(?:\.[0-9]+){3}', host_address)[0] __active_zoneLock.release() return template('info', zones=zones, unassigned=unassigned, active_zone_str_helper=active_zone_str_helper, track_meta = track_meta, media_meta = media_meta, host_ip = host_ip)
def dataHasBeenUpdated(): print("########## " + strftime("%Y-%m-%d %H:%M:%S", gmtime()) + " ##########") print("Zones:") for zone in raumfeld.getZones(): print("UDN: " + zone.UDN + " Name: " + zone.Name + " Location: " + zone.Location) for room in zone.getRooms(): print("\tUDN: " + room.UDN + " Name: " + room.Name) for renderer in room.getRenderers(): print("\t\tUDN: " + renderer.UDN + " Name: " + renderer.Name + " Location: " + renderer.Location + " Volume: " + unicode(renderer.volume)) print("Unassigned Rooms:") for room in raumfeld.getUnassignedRooms(): print("Name: " + room.Name + " UDN: " + room.UDN) for renderer in room.getRenderers(): print("\tUDN: " + renderer.UDN + " Name: " + renderer.Name + " Location: " + renderer.Location) print( "########## This gets updated when the config changes. To QUIT press any key... ##########" )
Global variables: * hostBaseURL (readonly) the base URL of the host * debug (True/False) to show debug messages ''' import raumfeld raumfeld.debug = True raumfeld.init("10.10.10.93") #raw_input('Press any key to end...') print(raumfeld.hostBaseURL) inp = '' while inp == '': print("Zones:") for zone in raumfeld.getZones(): print("UDN: " + zone.UDN + " Name: " + zone.Name + " Location: " + zone.Location) for room in zone.getRooms(): print("\tUDN: " + room.UDN + " Name: " + room.Name) for renderer in room.getRenderers(): print("\t\tUDN: " + renderer.UDN + " Name: " + renderer.Name + " Location: " + renderer.Location + " Volume: " + unicode(renderer.volume)) print("Unassigned Rooms:") for room in raumfeld.getUnassignedRooms(): print("Name: " + room.Name + " UDN: " + room.UDN) for renderer in room.getRenderers(): print("\tUDN: " + renderer.UDN + " Name: " + renderer.Name + " Location: " + renderer.Location)