예제 #1
0
파일: rfwr.py 프로젝트: vsxed/rf.wr.py
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)
예제 #2
0
파일: rfwr.py 프로젝트: vsxed/rf.wr.py
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
예제 #3
0
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)
예제 #4
0
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)
예제 #5
0
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... ##########")
예제 #6
0
파일: rfwr.py 프로젝트: vsxed/rf.wr.py
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')
예제 #7
0
파일: rfwr.py 프로젝트: vsxed/rf.wr.py
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)
예제 #8
0
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... ##########"
    )
예제 #9
0
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)