Exemplo n.º 1
0
def gamepad(timestamp, buttons, l_trigger, r_trigger, l_thumb_x, l_thumb_y,
            r_thumb_x, r_thumb_y, **kwargs):
    """
    Assemble gamepad input message.

    Args:
        timestamp (longlong): Timestamp.
        buttons (:class:`GamePadButton`): Bitmask of pressed gamepad buttons.
        l_trigger (float): LT.
        r_trigger (float): RT.
        l_thumb_x (float): Position of left thumbstick, X-Axis.
        l_thumb_y (float): Position of left thumbstick, Y-Axis.
        r_thumb_x (float): Position of right thumbstick, X-Axis.
        r_thumb_y (float): Position of right thumbstick, Y-Axis.

    Returns:
        :class:`XStructObj`: Instance of :class:`:class:`XStructObj``.
    """
    return message.struct(
        header=_message_header(MessageType.Gamepad, **kwargs),
        protected_payload=message.gamepad(timestamp=timestamp,
                                          buttons=buttons,
                                          left_trigger=l_trigger,
                                          right_trigger=r_trigger,
                                          left_thumbstick_x=l_thumb_x,
                                          left_thumbstick_y=l_thumb_y,
                                          right_thumbstick_x=r_thumb_x,
                                          right_thumbstick_y=r_thumb_y))
Exemplo n.º 2
0
def local_join(client_info, **kwargs):
    """
    Assemble LocalJoin message.

    Args:
        client_info (object): Instance of :class:`WindowsClientInfo`
                              or :class:`AndroidClientInfo`.

    Returns:
        :class:`XStructObj`: Instance of :class:`:class:`XStructObj``.
    """
    return message.struct(
        header=_message_header(MessageType.LocalJoin,
                               CHANNEL_CORE,
                               need_ack=True,
                               **kwargs),
        protected_payload=message.local_join(
            device_type=client_info.DeviceType,
            native_width=client_info.NativeWidth,
            native_height=client_info.NativeHeight,
            dpi_x=client_info.DpiX,
            dpi_y=client_info.DpiY,
            device_capabilities=client_info.DeviceCapabilities,
            client_version=client_info.ClientVersion,
            os_major_version=client_info.OSMajor,
            os_minor_version=client_info.OSMinor,
            display_name=client_info.DisplayName))
Exemplo n.º 3
0
def title_auxiliary_stream(**kwargs):
    """
    Assemble Auxiliary Stream message

    Returns:
         :class:`XStructObj`: Instance of :class:`XStructObj`
    """
    return message.struct(
        header=_message_header(MessageType.AuxilaryStream,
                               need_ack=True,
                               **kwargs),
        protected_payload=message.auxiliary_stream(connection_info_flag=0))
Exemplo n.º 4
0
def power_off(liveid, **kwargs):
    """
    Assemble PowerOff message.

    Args:
        liveid (str): Live ID of console.

    Returns:
        :class:`XStructObj`: Instance of :class:`:class:`XStructObj``.
    """
    return message.struct(header=_message_header(MessageType.PowerOff,
                                                 CHANNEL_CORE, **kwargs),
                          protected_payload=message.power_off(liveid=liveid))
Exemplo n.º 5
0
def unsnap(unknown, **kwargs):
    """
    Assemble unsnap message.

    Args:
        unknown (int): Unknown value.

    Returns:
        :class:`XStructObj`: Instance of :class:`:class:`XStructObj``.
    """
    return message.struct(header=_message_header(MessageType.Unsnap,
                                                 CHANNEL_CORE, **kwargs),
                          protected_payload=message.unsnap(unk=unknown))
Exemplo n.º 6
0
def json(text, **kwargs):
    """
    Assemble JSON message.

    Args:
        text (str): Text string.

    Returns:
        :class:`XStructObj`: Instance of :class:`:class:`XStructObj``.
    """
    return message.struct(header=_message_header(MessageType.Json,
                                                 need_ack=True,
                                                 **kwargs),
                          protected_payload=message.json(text=text))
Exemplo n.º 7
0
def stop_channel(channel_id, **kwargs):
    """
    Assemble StopChannel message.

    Args:
        channel_id (int): Channel Id to stop.

    Returns:
        :class:`XStructObj`: Instance of :class:`:class:`XStructObj``.
    """
    return message.struct(
        header=_message_header(MessageType.StopChannel, CHANNEL_CORE,
                               **kwargs),
        protected_payload=message.stop_channel(target_channel_id=channel_id))
Exemplo n.º 8
0
def disconnect(reason, error_code, **kwargs):
    """
    Assemble Disconnect message.

    Args:
        reason (:class:`xbox.sg.enum.DisconnectReason`): Disconnect reason.
        error_code (int): Error code.

    Returns:
        :class:`XStructObj`: Instance of :class:`:class:`XStructObj``.
    """
    return message.struct(
        header=_message_header(MessageType.Disconnect, CHANNEL_CORE, **kwargs),
        protected_payload=message.disconnect(reason=reason,
                                             error_code=error_code))
Exemplo n.º 9
0
def title_launch(location, uri, **kwargs):
    """
    Assemble TitleLaunch message.

    Args:
        location (:class:`ActiveTitleLocation`): Location.
        uri (str): Uri string for title to launch.

    Returns:
        :class:`XStructObj`: Instance of :class:`:class:`XStructObj``.
    """
    return message.struct(header=_message_header(MessageType.TitleLaunch,
                                                 CHANNEL_CORE, **kwargs),
                          protected_payload=message.title_launch(
                              location=location, uri=uri))
Exemplo n.º 10
0
def systemtext_ack(session_id, text_version, **kwargs):
    """
    Assemble SystemText Acknowledge message

    Args:
        session_id (int): Text session Id
        text_version (int): Text version to acknowledge

    Returns:
        :class:`XStructObj`: Instance of :class:`:class:`XStructObj``.
    """
    return message.struct(header=_message_header(MessageType.SystemTextAck,
                                                 need_ack=True,
                                                 **kwargs),
                          protected_payload=message.system_text_acknowledge(
                              text_session_id=session_id,
                              text_version_ack=text_version))
Exemplo n.º 11
0
def acknowledge(low_watermark, processed_list, rejected_list, **kwargs):
    """
    Assemble acknowledgement message.

    Args:
        low_watermark (int): Low Watermark.
        processed_list (list): List of processed message sequence numbers.
        rejected_list (list): List of rejected message sequence numbers.

    Returns:
        :class:`XStructObj`: Instance of :class:`:class:`XStructObj``.
    """
    return message.struct(header=_message_header(MessageType.Ack, **kwargs),
                          protected_payload=message.acknowledge(
                              low_watermark=low_watermark,
                              processed_list=processed_list,
                              rejected_list=rejected_list))
Exemplo n.º 12
0
def systemtext_input(session_id,
                     base_version,
                     submitted_version,
                     total_text_len,
                     selection_start,
                     selection_length,
                     flags,
                     text_chunk_byte_start,
                     text_chunk,
                     delta=None,
                     **kwargs):
    """
    Assemble SystemText Input message

    Args:
        session_id (int): Textt session Id
        base_version (int): Base version
        submitted_version (int): Submitted Version
        total_text_len (int): Total text length
        selection_start (int): Selection start
        selection_length (int): Selection length
        flags (int): Input flags
        text_chunk_byte_start (int): Start byte of text chunk
        text_chunk (str): Actual text to send
        delta (NoneType): Unknown

    Returns:
        :class:`XStructObj`: Instance of :class:`:class:`XStructObj``.
    """
    return message.struct(
        header=_message_header(MessageType.SystemTextInput,
                               need_ack=True,
                               **kwargs),
        protected_payload=message.system_text_input(
            text_session_id=session_id,
            base_version=base_version,
            submitted_version=submitted_version,
            total_text_byte_len=total_text_len,
            selection_start=selection_start,
            selection_length=selection_length,
            flags=flags,
            text_chunk_byte_start=text_chunk_byte_start,
            text_chunk=text_chunk
            # delta=delta
        ))
Exemplo n.º 13
0
def game_dvr_record(start_time_delta, end_time_delta, **kwargs):
    """
    Assemble Game DVR record message.

    Args:
        start_time_delta (int): Start Time delta.
        end_time_delta (int): End Time delta.

    Returns:
        :class:`XStructObj`: Instance of :class:`:class:`XStructObj``.
    """
    return message.struct(header=_message_header(MessageType.GameDvrRecord,
                                                 CHANNEL_CORE,
                                                 need_ack=True,
                                                 **kwargs),
                          protected_payload=message.game_dvr_record(
                              start_time_delta=start_time_delta,
                              end_time_delta=end_time_delta))
Exemplo n.º 14
0
def message_fragment(msg_type, sequence_begin, sequence_end, data, **kwargs):
    """
    Assemble fragmented message.

    Args:
        msg_type (int): Base Message Type.
        sequence_begin (int): Sequence number with first fragment.
        sequence_end (int): Last sequence number (+1) containing fragment.
        data (bytes): Plaintext MessagePacket payload fragment.

    Returns:
        :class:`XStructObj`: Instance of :class:`:class:`XStructObj``.
    """
    return message.struct(header=_message_header(msg_type,
                                                 is_fragment=True,
                                                 **kwargs),
                          protected_payload=message.fragment(
                              sequence_begin=sequence_begin,
                              sequence_end=sequence_end,
                              data=data))
def message_fragment(msg_type, sequence_begin, sequence_end, data, **kwargs):
    """
    Assemble fragmented message.

    Args:
        channel_id (int): Target Channel Id to send the message to.
        msg_type (int): Base Message Type.
        sequence_begin (int): Start position of data chunk.
        sequence_end (int): End position of data chunk.
        data (str): Base64-encoded data chunk.

    Returns:
        :class:`XStructObj`: Instance of :class:`:class:`XStructObj``.
    """
    return message.struct(header=_message_header(msg_type,
                                                 is_fragment=True,
                                                 **kwargs),
                          protected_payload=message.fragment(
                              sequence_begin=sequence_begin,
                              sequence_end=sequence_end,
                              data=data))
Exemplo n.º 16
0
def systemtext_done(session_id, text_version, flags, result, **kwargs):
    """
    Assemble SystemText Done message

    Args:
        session_id (int): Text session Id
        text_version (int): Text version
        flags (int): Flags
        result (:class:`TextResult`): Text result

    Returns:
        :class:`XStructObj`: Instance of :class:`:class:`XStructObj``.
    """
    return message.struct(header=_message_header(MessageType.SystemTextDone,
                                                 need_ack=True,
                                                 **kwargs),
                          protected_payload=message.system_text_done(
                              text_session_id=session_id,
                              text_version=text_version,
                              flags=flags,
                              result=result))
Exemplo n.º 17
0
def media_command(request_id, title_id, command, seek_position, **kwargs):
    """
    Assemble Media Command message.

    Args:
        request_id (int): Request Id of MediaCommand.
        title_id (int): Title Id of Application to control.
        command (:class:`MediaControlCommand`): Media Command.
        seek_position (ulonglong): Seek position.

     Returns:
        :class:`XStructObj`: Instance of :class:`:class:`XStructObj``.
    """
    return message.struct(header=_message_header(MessageType.MediaCommand,
                                                 need_ack=True,
                                                 **kwargs),
                          protected_payload=message.media_command(
                              request_id=request_id,
                              title_id=title_id,
                              command=command,
                              seek_position=seek_position))
Exemplo n.º 18
0
def start_channel(channel_request_id, title_id, service, activity_id,
                  **kwargs):
    """
    Assemble StartChannelRequest message.

    Args:
        channel_request_id (int): Incrementing Channel Request Id.
        title_id (int): Title Id, usually 0.
        service (:class:`MessageTarget`): Member of :class:`MessageTarget`.
        activity_id (int): Activity Id, usually 0.

    Returns:
        :class:`XStructObj`: Instance of :class:`:class:`XStructObj``.
    """
    return message.struct(
        header=_message_header(MessageType.StartChannelRequest,
                               CHANNEL_CORE,
                               need_ack=True,
                               **kwargs),
        protected_payload=message.start_channel_request(
            channel_request_id=channel_request_id,
            title_id=title_id,
            service=service,
            activity_id=activity_id))