Welcome to Xbox-Smartglass-Nano’s documentation!

xbox.nano.manager module

exception xbox.nano.manager.NanoManagerError

Bases: Exception

class xbox.nano.manager.NanoManager(console)

Bases: xbox.sg.manager.Manager

PROTOCOL_MAJOR_VERSION = 6
PROTOCOL_MINOR_VERSION = 0
async start_stream(config: dict = {'audioBufferLengthHns': '10000000', 'audioFecType': '0', 'audioSyncCompressFactor': '0.99', 'audioSyncCompressLatency': '100', 'audioSyncDesiredLatency': '40', 'audioSyncLengthenFactor': '1.01', 'audioSyncMaxLatency': '170', 'audioSyncMinLatency': '10', 'audioSyncPolicy': '1', 'dynamicBitrateScaleFactor': '1', 'dynamicBitrateUpdateMs': '5000', 'enableAudioChat': 'true', 'enableDynamicBitrate': 'false', 'enableOpusAudio': 'false', 'enableOpusChatAudio': 'true', 'enableVideoFrameAcks': 'false', 'inputReadsPerSecond': '120', 'sendKeyframesOverTCP': 'false', 'udpBurstDurationMs': '11', 'udpMaxSendPacketsInWinsock': '250', 'udpSubBurstGroups': '5', 'urcpFixedRate': '-1', 'urcpKeepAliveTimeoutMs': '0', 'urcpMaximumRate': '10000000', 'urcpMaximumWindow': '1310720', 'urcpMinimumRate': '256000', 'urcpType': '0', 'videoFecLevel': '3', 'videoFecType': '0', 'videoMaximumFrameRate': '60', 'videoMaximumHeight': '720', 'videoMaximumWidth': '1280', 'videoPacketDefragTimeoutMs': '16', 'videoPacketUtilization': '0'})
async stop_stream()
async start_gamestream(client)
property client_major_version
property client_minor_version
property stream_connected
property stream_state
property streaming
property stream_enabled
property stream_can_be_enabled
property server_major_version
property server_minor_version
property wireless
property transmit_linkspeed
property wireless_channel
property session_id
property tcp_port
property udp_port

xbox.nano.protocol module

exception xbox.nano.protocol.NanoProtocolError

Bases: Exception

class xbox.nano.protocol.NanoProtocol(client, address: str, session_id, tcp_port: int, udp_port: int)

Bases: object

Client sends ChannelClientHandshake with generated connection id Server responds with ChannelServerHandshake with connection id

UDP protocol sends HandShakeUDP 0x1 with connection ID in RTP header

Server sends ChannelCreates and ChannelOpens Client responds with ChannelOpens (copying possible flags)

async start()
async stop()
async connect(timeout=10)
get_channel(channel_class)

Get channel instance by channel class identifier

Parameters

channel_class (ChannelClass) – Enum member of ChannelClass

Returns

Instance of channel

Return type

Channel

channel_control_handshake(connection_id=None)
channel_create(name, flags, channel_id)
channel_open(flags, channel_id)
channel_close(flags, channel_id)
udp_handshake()
exception xbox.nano.protocol.ControlProtocolError

Bases: Exception

class xbox.nano.protocol.ControlProtocol(address: str, port: int, nano: xbox.nano.protocol.NanoProtocol)

Bases: object

BUFFER_SIZE = 4096
async start()
async stop()
async handle(data)
queue(msg)
flush()
send_message(msg)
exception xbox.nano.protocol.StreamerProtocolError

Bases: Exception

class xbox.nano.protocol.StreamerProtocol(nano: xbox.nano.protocol.NanoProtocol)

Bases: object

connection_made(transport)
datagram_received(data, addr)
error_received(exc)
connection_lost(exc)
send_message(msg)

Indices and tables