Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 27 additions & 2 deletions limelightlib-python/limelight.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,34 @@ def listen_for_responses(port,timeout=1):
pass
return discovered_devices

def discover_limelights(broadcast_port=5809, listen_port=5809, timeout=2, debug=False):
def discover_limelights(broadcast_port=5809, listen_port=5809, timeout=2, debug=False, return_names=False):
broadcast_on_all_interfaces("LLPhoneHome",broadcast_port,debug)
return listen_for_responses(listen_port,timeout)
ips = listen_for_responses(listen_port, timeout)

results = []
for ip in ips:
name = None
if return_names:
try:
ll = Limelight(ip)
name = ll.get_name()
except Exception as e:
if debug:
print(f"Failed to get name for {ip}: {e}")
results.append({"ip": ip, "name": name})
return results

def get_ip_by_name(discovered, name):
for entry in discovered:
if entry["name"] == name:
return entry["ip"]
return None

def get_name_by_ip(discovered, ip_address):
for entry in discovered:
if entry["ip"] == ip_address:
return entry["name"]
return None

class Limelight:
def __init__(self, address):
Expand Down