vmcp.facades

facades module of vmcp package.

 1#!/usr/bin/env python3
 2# -*- coding: utf-8 -*-
 3# SPDX-License-Identifier: AGPL-3.0-or-later
 4
 5"""``facades`` module of ``vmcp`` package."""
 6
 7from collections.abc import Callable
 8from .osc.channel import Receiver
 9from .events import Event
10
11
12def on_receive(
13    receiver: Receiver,
14    event: type[Event],
15    handler: Callable[[Event], None]
16) -> None:
17    """Event-based receiving handler registration facade method.
18
19    Args:
20        receiver (Receiver):
21            OSC receiver instance.
22        event (type[Event]):
23            Event type class.
24        handler (Callable[[Event], None]):
25            Arbitrary handler function or method.
26
27    """
28    receiver.register_handler(
29        event.ADDRESS_PATTERN,
30        lambda *args, **kwargs: handler(
31            event.from_message_data(*args, **kwargs)
32        ),
33        (
34            receiver.system.backend.ARG_READERNAME +
35            receiver.system.backend.ARG_ADDRESS +
36            receiver.system.backend.ARG_DATA
37        )
38    )
def on_receive( receiver: vmcp.osc.channel.receiver.Receiver, event: type[vmcp.events.Event], handler: collections.abc.Callable[[vmcp.events.Event], None]) -> None:
13def on_receive(
14    receiver: Receiver,
15    event: type[Event],
16    handler: Callable[[Event], None]
17) -> None:
18    """Event-based receiving handler registration facade method.
19
20    Args:
21        receiver (Receiver):
22            OSC receiver instance.
23        event (type[Event]):
24            Event type class.
25        handler (Callable[[Event], None]):
26            Arbitrary handler function or method.
27
28    """
29    receiver.register_handler(
30        event.ADDRESS_PATTERN,
31        lambda *args, **kwargs: handler(
32            event.from_message_data(*args, **kwargs)
33        ),
34        (
35            receiver.system.backend.ARG_READERNAME +
36            receiver.system.backend.ARG_ADDRESS +
37            receiver.system.backend.ARG_DATA
38        )
39    )

Event-based receiving handler registration facade method.

Args: receiver (Receiver): OSC receiver instance. event (type[Event]): Event type class. handler (Callable[[Event], None]): Arbitrary handler function or method.