1 /*---------------------------------------------------------------------------*
2   Project:  Horizon
3   File:     ir_Types.h
4 
5   Copyright (C)2009-2012 Nintendo Co., Ltd.  All rights reserved.
6 
7   These coded instructions, statements, and computer programs contain
8   proprietary information of Nintendo of America Inc. and/or Nintendo
9   Company Ltd., and are protected by Federal copyright law.  They may
10   not be disclosed to third parties or copied or duplicated in any form,
11   in whole or in part, without the prior written consent of Nintendo.
12 
13   $Rev: 46347 $
14  *---------------------------------------------------------------------------*/
15 
16 #ifndef NN_IR_CTR_IR_TYPES_H_
17 #define NN_IR_CTR_IR_TYPES_H_
18 
19 #include <nn/fnd/fnd_TimeSpan.h>
20 
21 namespace nn {
22 namespace ir {
23 namespace CTR {
24 
25     /* Delimiter, session ID, data size (1-byte or 2-byte), CRC */
26     const size_t FREE_PACKET_BORDER_SIZE = 64;      //
27     const size_t FREE_PACKET_HEADER_FOOTER_SIZE_UNDER_BORDER = 4;   //
28     const size_t FREE_PACKET_HEADER_FOOTER_SIZE_OVER_BORDER  = 5;   //
29 
30     const size_t PAYLOAD_SIZE_MAX = 0x3FFF;     //
31     const size_t NECESSARY_BUFFER_SIZE_FOR_CONNECTION = 8;  //
32 
33     const size_t CONNECTION_REQUEST_PACKET_SIZE = 8;    //
34     const size_t CONNECTION_REPLY_PACKET_SIZE = 5;      //
35 
36     const size_t MANAGEMENT_BUFFER_ALLIGNMENT_SIZE = 8;     //
37 
38     /* Please see man pages for details
39 
40     */
41     enum BaudRate
42     {
43         /*
44          * Defined as constants to maintain compatibility with the previous APIs.
45          * You must be careful not to change the constants when you edit them.
46          */
47         BAUD_RATE_115200 = 3,
48         BAUD_RATE_96000 = 4,
49         BAUD_RATE_72000 = 5,
50         BAUD_RATE_48000 = 6,
51         BAUD_RATE_36000 = 7,
52         BAUD_RATE_24000 = 8,
53         BAUD_RATE_18000 = 9,
54         BAUD_RATE_12000 = 10,
55         BAUD_RATE_9600 = 11,
56         BAUD_RATE_6000 = 12,
57         BAUD_RATE_3000 = 13,
58         BAUD_RATE_57600 = 14,
59         BAUD_RATE_38400 = 15,
60         BAUD_RATE_19200 = 16,
61         BAUD_RATE_7200  = 17,
62         BAUD_RATE_4800  = 18
63     };
64 
65 
66 
67     /* Please see man pages for details
68 
69     */
70     enum ConnectionStatus
71     {
72         CONNECTION_STATUS_STOPPED,              //
73         CONNECTION_STATUS_TRYING_TO_CONNECT,    //
74         CONNECTION_STATUS_CONNECTED,            //
75         CONNECTION_STATUS_DISCONNECTING,        //
76         CONNECTION_STATUS_FATAL_ERROR           //
77     };
78 
79     /* Please see man pages for details
80 
81     */
82     enum TryingToConnectStatus
83     {
84         TRYING_TO_CONNECT_STATUS_NONE,              //
85         TRYING_TO_CONNECT_STATUS_SENDING_REQUEST,   //
86         TRYING_TO_CONNECT_STATUS_WAITING_REPLY,     //
87         TRYING_TO_CONNECT_STATUS_WAITING_REQUEST,   //
88         TRYING_TO_CONNECT_STATUS_SENDING_REPLY      //
89     };
90 
91     /* Please see man pages for details
92 
93     */
94     enum MachineId
95     {
96         MACHINE_ID_CTR = 0x00       //
97     };
98 
99     /* Please see man pages for details
100 
101     */
102     enum ConnectionRole
103     {
104         CONNECTION_ROLE_NONE,       //
105         CONNECTION_ROLE_TO_REQUIRE, //
106         CONNECTION_ROLE_TO_WAIT      //
107     };
108 }
109 }
110 }
111 
112 #endif  //NN_IR_CTR_IR_TYPES_H_
113 
114