ps2sdk  1.1
A collection of Open Source libraries used for developing applications on Sony's PlayStation 2® (PS2).
librm.h File Reference
#include <librm-common.h>
+ Include dependency graph for librm.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  remote_data
 

Macros

#define RM_INIT   0x000012FF
 
#define RM_READY   0x005A12FF
 
#define RM_KEYPRESSED   0x145A12FF
 
#define RM_NOREMOTE   0xFFFFFFFF
 
#define RM_NONE   0x00000000
 
#define RM_AUDIO   0x0040D649
 
#define RM_SHUFFLE   0x0050D349
 
#define RM_ANGLE   0x0050D649
 
#define RM_PROGRAM   0x00F0D149
 
#define RM_SUBTITLE   0x0030D649
 
#define RM_REPEAT   0x00C0D249
 
#define RM_SLOW_BACK   0x0000D649
 
#define RM_SLOW_FORW   0x0010D649
 
#define RM_SCAN_BACK   0x0030D349
 
#define RM_SCAN_FORW   0x0040D349
 
#define RM_ONE   0x0000D049
 
#define RM_TWO   0x0010D049
 
#define RM_THREE   0x0020D049
 
#define RM_FOUR   0x0030D049
 
#define RM_FIVE   0x0040D049
 
#define RM_SIX   0x0050D049
 
#define RM_SEVEN   0x0060D049
 
#define RM_EIGHT   0x0070D049
 
#define RM_NINE   0x0080D049
 
#define RM_ZERO   0x0090D049
 
#define RM_CLEAR   0x00F0D049
 
#define RM_TIME   0x0080D249
 
#define RM_PREV   0x0000D349
 
#define RM_NEXT   0x0010D349
 
#define RM_ATOB   0x00A0D249
 
#define RM_PLAY   0x0020D349
 
#define RM_PAUSE   0x0090D349
 
#define RM_STOP   0x0080D349
 
#define RM_DISPLAY   0x0040D549
 
#define RM_TITLE   0x00A0D149
 
#define RM_MENU   0x00B0D149
 
#define RM_RETURN   0x00E0D049
 
#define RM_TRIANGLE   0x00C0D5DA
 
#define RM_SQUARE   0x00F0D5DA
 
#define RM_CIRCLE   0x00D0D5DA
 
#define RM_CROSS   0x00E0D5DA
 
#define RM_UP   0x0040D5DA
 
#define RM_DOWN   0x00A0D749
 
#define RM_LEFT   0x00B0D749
 
#define RM_RIGHT   0x0050D5DA
 
#define RM_ENTER   0x00B0D049
 
#define RM_L1   0x00A0D5DA
 
#define RM_L2   0x0080D5DA
 
#define RM_L3   0x0010D5DA
 
#define RM_R1   0x00B0D5DA
 
#define RM_R2   0x0090D5DA
 
#define RM_R3   0x0020D5DA
 
#define RM_START   0x0030D5DA
 
#define RM_SELECT   0x0000D5DA
 
#define RM_EJECT   0x0060D1DA
 
#define RM_RESET   0x0050D1DA
 

Functions

int RMMan_Init (void)
 
int RMMan_End (void)
 
int RMMan_Open (int port, int slot, void *pData)
 
int RMMan_Close (int port, int slot)
 
void RMMan_Read (int port, int slot, struct remote_data *data)
 
u32 RMMan_GetModuleVersion (void)
 

Detailed Description

RPC Interface for PS2 Remote Control Driver (RMMAN)

Definition in file librm.h.

Macro Definition Documentation

◆ RM_ANGLE

#define RM_ANGLE   0x0050D649

Definition at line 37 of file librm.h.

◆ RM_ATOB

#define RM_ATOB   0x00A0D249

Definition at line 59 of file librm.h.

◆ RM_AUDIO

#define RM_AUDIO   0x0040D649

Definition at line 35 of file librm.h.

◆ RM_CIRCLE

#define RM_CIRCLE   0x00D0D5DA

Definition at line 69 of file librm.h.

◆ RM_CLEAR

#define RM_CLEAR   0x00F0D049

Definition at line 55 of file librm.h.

◆ RM_CROSS

#define RM_CROSS   0x00E0D5DA

Definition at line 70 of file librm.h.

◆ RM_DISPLAY

#define RM_DISPLAY   0x0040D549

Definition at line 63 of file librm.h.

◆ RM_DOWN

#define RM_DOWN   0x00A0D749

Definition at line 72 of file librm.h.

◆ RM_EIGHT

#define RM_EIGHT   0x0070D049

Definition at line 52 of file librm.h.

◆ RM_EJECT

#define RM_EJECT   0x0060D1DA

Definition at line 84 of file librm.h.

◆ RM_ENTER

#define RM_ENTER   0x00B0D049

Definition at line 75 of file librm.h.

◆ RM_FIVE

#define RM_FIVE   0x0040D049

Definition at line 49 of file librm.h.

◆ RM_FOUR

#define RM_FOUR   0x0030D049

Definition at line 48 of file librm.h.

◆ RM_INIT

#define RM_INIT   0x000012FF

Definition at line 28 of file librm.h.

◆ RM_KEYPRESSED

#define RM_KEYPRESSED   0x145A12FF

Definition at line 30 of file librm.h.

◆ RM_L1

#define RM_L1   0x00A0D5DA

Definition at line 76 of file librm.h.

◆ RM_L2

#define RM_L2   0x0080D5DA

Definition at line 77 of file librm.h.

◆ RM_L3

#define RM_L3   0x0010D5DA

Definition at line 78 of file librm.h.

◆ RM_LEFT

#define RM_LEFT   0x00B0D749

Definition at line 73 of file librm.h.

◆ RM_MENU

#define RM_MENU   0x00B0D149

Definition at line 65 of file librm.h.

◆ RM_NEXT

#define RM_NEXT   0x0010D349

Definition at line 58 of file librm.h.

◆ RM_NINE

#define RM_NINE   0x0080D049

Definition at line 53 of file librm.h.

◆ RM_NONE

#define RM_NONE   0x00000000

Definition at line 34 of file librm.h.

◆ RM_NOREMOTE

#define RM_NOREMOTE   0xFFFFFFFF

Definition at line 31 of file librm.h.

◆ RM_ONE

#define RM_ONE   0x0000D049

Definition at line 45 of file librm.h.

◆ RM_PAUSE

#define RM_PAUSE   0x0090D349

Definition at line 61 of file librm.h.

◆ RM_PLAY

#define RM_PLAY   0x0020D349

Definition at line 60 of file librm.h.

◆ RM_PREV

#define RM_PREV   0x0000D349

Definition at line 57 of file librm.h.

◆ RM_PROGRAM

#define RM_PROGRAM   0x00F0D149

Definition at line 38 of file librm.h.

◆ RM_R1

#define RM_R1   0x00B0D5DA

Definition at line 79 of file librm.h.

◆ RM_R2

#define RM_R2   0x0090D5DA

Definition at line 80 of file librm.h.

◆ RM_R3

#define RM_R3   0x0020D5DA

Definition at line 81 of file librm.h.

◆ RM_READY

#define RM_READY   0x005A12FF

Definition at line 29 of file librm.h.

◆ RM_REPEAT

#define RM_REPEAT   0x00C0D249

Definition at line 40 of file librm.h.

◆ RM_RESET

#define RM_RESET   0x0050D1DA

Definition at line 85 of file librm.h.

◆ RM_RETURN

#define RM_RETURN   0x00E0D049

Definition at line 66 of file librm.h.

◆ RM_RIGHT

#define RM_RIGHT   0x0050D5DA

Definition at line 74 of file librm.h.

◆ RM_SCAN_BACK

#define RM_SCAN_BACK   0x0030D349

Definition at line 43 of file librm.h.

◆ RM_SCAN_FORW

#define RM_SCAN_FORW   0x0040D349

Definition at line 44 of file librm.h.

◆ RM_SELECT

#define RM_SELECT   0x0000D5DA

Definition at line 83 of file librm.h.

◆ RM_SEVEN

#define RM_SEVEN   0x0060D049

Definition at line 51 of file librm.h.

◆ RM_SHUFFLE

#define RM_SHUFFLE   0x0050D349

Definition at line 36 of file librm.h.

◆ RM_SIX

#define RM_SIX   0x0050D049

Definition at line 50 of file librm.h.

◆ RM_SLOW_BACK

#define RM_SLOW_BACK   0x0000D649

Definition at line 41 of file librm.h.

◆ RM_SLOW_FORW

#define RM_SLOW_FORW   0x0010D649

Definition at line 42 of file librm.h.

◆ RM_SQUARE

#define RM_SQUARE   0x00F0D5DA

Definition at line 68 of file librm.h.

◆ RM_START

#define RM_START   0x0030D5DA

Definition at line 82 of file librm.h.

◆ RM_STOP

#define RM_STOP   0x0080D349

Definition at line 62 of file librm.h.

◆ RM_SUBTITLE

#define RM_SUBTITLE   0x0030D649

Definition at line 39 of file librm.h.

◆ RM_THREE

#define RM_THREE   0x0020D049

Definition at line 47 of file librm.h.

◆ RM_TIME

#define RM_TIME   0x0080D249

Definition at line 56 of file librm.h.

◆ RM_TITLE

#define RM_TITLE   0x00A0D149

Definition at line 64 of file librm.h.

◆ RM_TRIANGLE

#define RM_TRIANGLE   0x00C0D5DA

Definition at line 67 of file librm.h.

◆ RM_TWO

#define RM_TWO   0x0010D049

Definition at line 46 of file librm.h.

◆ RM_UP

#define RM_UP   0x0040D5DA

Definition at line 71 of file librm.h.

◆ RM_ZERO

#define RM_ZERO   0x0090D049

Definition at line 54 of file librm.h.

Function Documentation

◆ RMMan_Close()

int RMMan_Close ( int  port,
int  slot 
)

Definition at line 138 of file librm.c.

140 {
141  if((port < 0) || (port > 1) || (slot != 0))
142  {
143  printf("Error, port must be 0 or 1 and slot set to 0\n");
144  return 0;
145  }
146 
147  if(!ports[port].opened)
148  {
149  return 0;
150  }
151 
152  buffer.cmd.command = RMMAN_RPCFUNC_CLOSE;
153  buffer.cmd.port = port;
154  buffer.cmd.slot = slot;
155 
156  if (SifCallRpc(&rmmanif, 0, 0, &buffer, 128, &buffer, 128, NULL, NULL) < 0)
157  return 0;
158 
159  return buffer.cmd.result;
160 }
s32 slot
Definition: libpad.c:176
s32 port
Definition: libpad.c:176
@ RMMAN_RPCFUNC_CLOSE
Definition: librm-common.h:47
static SifRpcClientData_t rmmanif
Definition: librm.c:23
static struct rmRpcPacket buffer
Definition: librm.c:24
static struct port_state ports[2]
Definition: librm.c:33
int SifCallRpc(SifRpcClientData_t *client, int rpc_number, int mode, void *send, int ssize, void *receive, int rsize, SifRpcEndFunc_t end_function, void *end_param)
struct rmRpcPacket::@61::@63 cmd
#define NULL
Definition: tamtypes.h:91

References buffer, rmRpcPacket::cmd, NULL, port, ports, RMMAN_RPCFUNC_CLOSE, rmmanif, SifCallRpc(), and slot.

Referenced by main().

◆ RMMan_End()

int RMMan_End ( void  )

Definition at line 127 of file librm.c.

129 {
130  buffer.cmd.command = RMMAN_RPCFUNC_END;
131 
132  if (SifCallRpc(&rmmanif, 0, 0, &buffer, 128, &buffer, 128, NULL, NULL) < 0)
133  return 0;
134 
135  return buffer.cmd.result;
136 }
@ RMMAN_RPCFUNC_END
Definition: librm-common.h:45

References buffer, rmRpcPacket::cmd, NULL, RMMAN_RPCFUNC_END, rmmanif, and SifCallRpc().

Referenced by main().

◆ RMMan_GetModuleVersion()

u32 RMMan_GetModuleVersion ( void  )

Definition at line 87 of file librm.c.

89 {
91 
92  if (SifCallRpc(&rmmanif, 0, 0, &buffer, 128, &buffer, 128, NULL, NULL) < 0)
93  return 0;
94 
95  return buffer.cmd.result;
96 }
@ RMMAN_RPCFUNC_VERSION
Definition: librm-common.h:49

References buffer, rmRpcPacket::cmd, NULL, RMMAN_RPCFUNC_VERSION, rmmanif, and SifCallRpc().

Referenced by main().

◆ RMMan_Init()

int RMMan_Init ( void  )

Definition at line 54 of file librm.c.

56 {
57  if(rmman_init)
58  {
59  printf("RMMan Library already initialised\n");
60  return 0;
61  }
62 
64 
65  do {
66  if (SifBindRpc(&rmmanif, RMMAN_RPC_ID, 0) < 0) {
67  return -1;
68  }
69  nopdelay();
70  } while(!rmmanif.server);
71 
72  buffer.cmd.command = RMMAN_RPCFUNC_INIT;
73 
74  if (SifCallRpc(&rmmanif, 0, 0, &buffer, 128, &buffer, 128, NULL, NULL) < 0)
75  return -1;
76 
77  ports[0].opened = 0;
78  ports[0].rmData = NULL;
79  ports[1].opened = 1;
80  ports[1].rmData = NULL;
81 
82  rmman_init = 1;
83 
84  return buffer.cmd.result;
85 }
static void nopdelay(void)
Definition: kernel.h:141
#define RMMAN_RPC_ID
Definition: librm-common.h:42
@ RMMAN_RPCFUNC_INIT
Definition: librm-common.h:46
static int rmman_init
Definition: librm.c:25
int SifBindRpc(SifRpcClientData_t *client, int rpc_number, int mode)
struct t_SifRpcServerData * server
Definition: sifrpc.h:142
struct rmEEData * rmData
Definition: librm.c:30
int opened
Definition: librm.c:29

References buffer, rmRpcPacket::cmd, nopdelay(), NULL, port_state::opened, ports, port_state::rmData, rmman_init, RMMAN_RPC_ID, RMMAN_RPCFUNC_INIT, rmmanif, SifRpcClientData_t::server, SifBindRpc(), and SifCallRpc().

Referenced by main().

◆ RMMan_Open()

int RMMan_Open ( int  port,
int  slot,
void *  pData 
)

Definition at line 98 of file librm.c.

100 {
101  if((port < 0) || (port > 1) || (slot != 0))
102  {
103  printf("Error, port must be 0 or 1 and slot set to 0\n");
104  return 0;
105  }
106 
107  if((u32) pData & 0x3F)
108  {
109  printf("Error, pData not aligned to 64byte boundary");
110  return 0;
111  }
112 
113  buffer.cmd.command = RMMAN_RPCFUNC_OPEN;
114  buffer.cmd.port = port;
115  buffer.cmd.slot = slot;
116  buffer.cmd.data = pData;
117 
118  if (SifCallRpc(&rmmanif, 0, 0, &buffer, 128, &buffer, 128, NULL, NULL) < 0)
119  return 0;
120 
121  ports[port].opened = 1;
122  ports[port].rmData = pData;
123 
124  return buffer.cmd.result;
125 }
@ RMMAN_RPCFUNC_OPEN
Definition: librm-common.h:48
unsigned int u32
Definition: tamtypes.h:30

References buffer, rmRpcPacket::cmd, NULL, port_state::opened, port, ports, port_state::rmData, RMMAN_RPCFUNC_OPEN, rmmanif, SifCallRpc(), and slot.

Referenced by main().

◆ RMMan_Read()

void RMMan_Read ( int  port,
int  slot,
struct remote_data data 
)

Definition at line 162 of file librm.c.

163 {
164  struct rmEEData *pdata;
165 
166  if((port < 0) || (port > 1) || (slot != 0))
167  {
168  printf("Error, port must be 0 or 1 and slot set to 0\n");
169  return;
170  }
171 
172  pdata = rmGetDmaStr(port, slot);
173 
174  memcpy(data, pdata->data, 8);
175 }
u32 data
Definition: libmouse.c:36
static struct rmEEData * rmGetDmaStr(int port, int slot)
Definition: librm.c:36
u8 data[32]
Definition: librm-common.h:35

References rmEEData::data, data, port, rmGetDmaStr(), and slot.

Referenced by main().