"""Command-line entry point; --help works without Tk or Bluetooth installed.""" import argparse def main(argv=None): parser = argparse.ArgumentParser(description="Samsung Sound Tower desktop controller") parser.add_argument( "--address", default="", help="Speaker Bluetooth MAC address, or an outgoing COM port" ) parser.add_argument("--channel", type=int, default=1, choices=range(1, 31)) parser.add_argument( "--prepare", action="store_true", help="Experimental: initialize Windows Bluetooth before RFCOMM", ) parser.add_argument( "--transport", choices=("ble", "rfcomm"), default="ble", help="Control transport (default: Samsung BLE FFA0)", ) args = parser.parse_args(argv) # Keep Tk out of the CLI import path, headless tests, and package consumers. from controller.gui import launch launch(args.address, args.channel, args.prepare, args.transport) if __name__ == "__main__": main()