Exemplo n.º 1
0
    global updateAvailableEvent
    updateAvailableEvent.wait()
    returndata = []
    r = {}
    r['changes'] = True
    returndata.append(r)
    return json.dumps(returndata)


def __updateAvailableCallback():
    global updateAvailableEvent
    updateAvailableEvent.set()


def __resetUpdateAvailableEventThread():
    global updateAvailableEvent
    while True:
        updateAvailableEvent.wait()
        updateAvailableEvent.clear()


raumfeld.registerChangeCallback(__updateAvailableCallback)
raumfeld.init()

# Start observing the device list
resetUpdateAvailableEventThread = threading.Thread(
    target=__resetUpdateAvailableEventThread)
resetUpdateAvailableEventThread.daemon = True
resetUpdateAvailableEventThread.start()

run(host='0.0.0.0', port=8080, debug=True)
Exemplo n.º 2
0
    """Returns when an update in the DataStructure happened"""
    global updateAvailableEvent
    updateAvailableEvent.wait()
    returndata = []
    r = {}
    r['changes'] = True
    returndata.append(r)
    return json.dumps(returndata)


def __updateAvailableCallback():
    global updateAvailableEvent
    updateAvailableEvent.set()

def __resetUpdateAvailableEventThread():
    global updateAvailableEvent
    while True:
        updateAvailableEvent.wait()
        updateAvailableEvent.clear()
        

raumfeld.registerChangeCallback(__updateAvailableCallback)
raumfeld.init()
print("Host URL: " +raumfeld.hostBaseURL)

# Start observing the device list
resetUpdateAvailableEventThread = threading.Thread(target=__resetUpdateAvailableEventThread)
resetUpdateAvailableEventThread.daemon = True
resetUpdateAvailableEventThread.start()

run(host='0.0.0.0', port=8080, debug=True)
Exemplo n.º 3
0
                      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... ##########"
    )

    #kueche = raumfeld.getRoomsByName(u'Küche')[0]
    #kuecheZone = raumfeld.getZoneWithRoomName(u'Wohnzimmer')[0]
    #status = kuecheZone.mute
    #print("Mute: {0}".format(status))
    #kueche.mute = not status
    #kuecheZone.play()
    #print("Volume: {0}".format(kuecheZone.volume))

    #raumfeld.connectRoomToZone(kueche.UDN)


raumfeld.setLogging(logging.WARN)
raumfeld.registerChangeCallback(dataHasBeenUpdated)
raumfeld.init()  # or with the host IP: raumfeld.init("192.168.0.10")
print("Host URL: " + raumfeld.hostBaseURL)

# To QUIT press any key...
raw_input()
Exemplo n.º 4
0
* getZoneWithRoom(room_obj) returns the Zone containing the provided room object
* getZoneWithRoomName(name) returns the Zone containing a room defined by its name
* getZoneWithRoomUDN(udn) returns the Zone containing a room defined by its UDN

Zone-Configuration-Functions are:
* dropRoomByUDN(udn) drops a room from its Zone
* connectRoomToZone(room_udn, [zone_udn(optional)] puts the room with the given roomUDN in the zone with the zoneUDN. If no zone_udn is provided, a new zone is created

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: " +
Exemplo n.º 5
0
        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... ##########")
     
    #kueche = raumfeld.getRoomsByName(u'Küche')[0]
    #kuecheZone = raumfeld.getZoneWithRoomName(u'Wohnzimmer')[0]
    #status = kuecheZone.mute
    #print("Mute: {0}".format(status))
    #kueche.mute = not status
    #kuecheZone.play()
    #print("Volume: {0}".format(kuecheZone.volume))
     
    #raumfeld.connectRoomToZone(kueche.UDN)
    

raumfeld.setLogging(logging.WARN);
raumfeld.registerChangeCallback(dataHasBeenUpdated)
raumfeld.init() # or with the host IP: raumfeld.init("192.168.0.10")
print("Host URL: " +raumfeld.hostBaseURL)

# To QUIT press any key...
raw_input()
Exemplo n.º 6
0
            playlist_items, item_count = browse_children(all_tracks['id'])
        elif cur_meta['class'] == 'object.item.audioItem.audioBroadcast.radio':
            playlist_items, item_count = [cur_meta], '0'
        else:
            playlist_items, item_count = browse_children(cur_meta['parentID'])
    except:
        playlist_items, item_count = [cur_meta], '0'
    __browseLock.release()

    return template('playlist', playlist_items = playlist_items, queue_id = queue_id, item_count = item_count, cur_track = cur_track)

raumfeld.registerChangeCallback(discover_active_zone)
raumfeld.debug = True

if os.path.isfile('host_ip')==False:
    raumfeld.init()
else:
    with open('host_ip', 'a+') as f:
        host_ip = f.readlines()[0]
    raumfeld.init(host_ip)

check_title_change_thread = threading.Thread(target=check_title_change)
check_title_change_thread.daemon = True
check_title_change_thread.start()

resetUpdateAvailableEventThread = threading.Thread(target=__resetUpdateAvailableEventThread)
resetUpdateAvailableEventThread.daemon = True
resetUpdateAvailableEventThread.start()


from gevent.pywsgi import WSGIServer