Ejemplo n.º 1
0
class HardwareDeviceSource(DeviceSource):
    def __init__(self):
        super().__init__()
        self.mgr = DeviceManager()

    def rescan(self) -> Sequence[str]:
        return [d.id().decode("ascii") for d in self.mgr.enumerate()]

    def get_scanned(self, identifier: str) -> Optional[StreamDeck]:
        for dev in self.enumerate():
            if dev.id().decode("ascii") == identifier:
                return dev
        return None

    def matches(self, identifier: str, deck: StreamDeck) -> bool:
        deck.open()
        try:
            return deck.get_serial_number() == identifier
        finally:
            deck.close()

    def request(self, user_ident: str) -> None:
        pass

    def enumerate(self) -> Sequence[StreamDeck]:
        return self.mgr.enumerate()
Ejemplo n.º 2
0
    with deck:
        deck.open()
        deck.set_key_image(0, test_key_image)
        deck.close()


if __name__ == "__main__":
    logging.basicConfig(level=logging.INFO)

    parser = argparse.ArgumentParser(description="StreamDeck Library test.")
    parser.add_argument("--model", help="Stream Deck model name to test")
    parser.add_argument("--test", help="Stream Deck test to run")
    args = parser.parse_args()

    manager = DeviceManager(transport="dummy")
    streamdecks = manager.enumerate()

    test_streamdecks = streamdecks
    if args.model:
        test_streamdecks = [
            deck for deck in test_streamdecks if deck.deck_type() == args.model
        ]

    if len(test_streamdecks) == 0:
        logging.error(
            "Error: No Stream Decks to test. Known models: {}".format(
                [d.deck_type() for d in streamdecks]))
        sys.exit(1)

    tests = {
        "PIL Helpers": test_pil_helpers,