Beispiel #1
0
    def __init__(self, track, num, r_range):
        """
        :type track: plugin.track.Track
        :type num: int
        :type r_range: plugin.range.Range
        """
        self.track = track
        self.server = track.server

        self.stream_num = num
        self.range = r_range

        # HTTP request/response
        self.request = None
        self.response = None
        self.headers = None

        # Content info
        self.content_range = None
        self.content_length = None
        self.total_length = None

        # Data buffering
        self.read_thread = None
        self.read_sleep = None

        self.buffer = bytearray()

        self.on_open = REvent()
        self.on_reading = Event()

        self.state = ''

        self.request_lock = Lock()
        self.request_seq = 0
Beispiel #2
0

def plugin_callback(method, kwargs=None, async=False):
    """ Invokes callbacks on the plugin instance

    :param method:     The method on the SpotifyPlugin class to call.
    :param kwargs:     A dictionary of keyward args to pass to the method.
    """

    Log.Debug('plugin_callback - method: %s, kwargs: %s, async: %s' % (method, kwargs, async))

    kwargs = kwargs or {}
    result = None

    if async:
        on_complete = REvent()

        kwargs['callback'] = lambda result: on_complete.set(result)

        method(host, **kwargs)

        result = on_complete.wait(30)
    else:
        result = method(host, **kwargs)

    if result is None:
        if async:
            return MessageContainer(
                header=L("MSG_CALLBACK_TIMEOUT_TITLE"),
                message=L("MSG_CALLBACK_TIMEOUT_BODY")
            )