ps2sdk  1.1
A collection of Open Source libraries used for developing applications on Sony's PlayStation 2® (PS2).
camera-test.c File Reference
#include "../include/ps2cam_rpc.h"
#include "libjpg.h"
#include "fileio.h"
#include "kernel.h"
#include "sifrpc.h"
#include "loadfile.h"
#include "stdio.h"
+ Include dependency graph for camera-test.c:

Go to the source code of this file.

Functions

int main (int argc, char *argv[])
 

Variables

char jpg_buffer [500512]
 
jpgDatainfo
 
PS2CAM_DEVICE_INFO caminfo
 
PS2CAM_DEVICE_CONFIG cfg
 
int * iopval
 

Function Documentation

◆ main()

int main ( int  argc,
char *  argv[] 
)

Definition at line 24 of file camera-test.c.

25 {
26  static int ret;
27  static int devid;
28  static int fh;
29 
30  SifInitRpc(0);
31  fioInit();
32 
33 
34 
35  SifLoadModule("rom0:SIO2MAN", 0, 0);
36  SifLoadModule("host:usbd.irx", 0, 0);
37  SifLoadModule("host:ps2cam.irx", 0, 0);
38 
39 
40  printf("binding...\n");
41 
42  PS2CamInit(0);
43 
44 
45 
46 
47  while(1)
48  {
49 
50  ret = PS2CamGetDeviceCount();
51  printf("there is %d camera connected\n",ret);
52  if(ret > 0)break;
53  }
54 
55  devid = PS2CamOpenDevice(0);
56  printf("device %d ID == %d\n",0,devid);
57 
58 
59 
60 
61 
62  while(1)
63  {
64  ret = PS2CamGetDeviceStatus(devid);
65  if(ret==2)break;
66  }
67 
68 
69 
70  printf("status =%d\n",ret);
71 
72  ret = PS2CamSetDeviceBandwidth(devid, 4);
73  printf("set Bandwidth = %d\n",ret);
74 
75  cfg.ssize = sizeof(cfg);
77  cfg.width = 640;
78  cfg.height = 480;
79  cfg.x_offset =0x00;
80  cfg.y_offset =0x00;
81  cfg.h_divider =0;
82  cfg.v_divider =0;
83  cfg.framerate =30;
84 
85  PS2CamSetDeviceConfig(devid, &cfg);
86 
87 
88 
89 
90 
91  caminfo.ssize = sizeof(caminfo);
93 
94  printf("info = %s (%d)\n",(char *)&caminfo.product_name[0],caminfo.ssize);
95 
96 
97 
98 
99  // capture and save jpg to host
100 
101  // loop and capture a valid frame
102  while(1)
103  {
104  ret = PS2CamExtractFrame(devid, jpg_buffer, 500512);
105  if(ret>0)break; // valid frame
106  if(ret<0)break; // error
107 
108  printf("frame skiped\n");
109  }
110 
111 
112 
113 
114 
115 
116  if(ret>0)
117  {
118  printf("frame captured\n");
119 
120  fh = open("host:image.jpg", O_WRONLY|O_CREAT|O_TRUNC);
121 
122 
123  write(fh, jpg_buffer, ret);
124 
125 
126 
127  close(fh);
128  }
129  else
130  {
131  printf("error capturing image (%d)\n",ret);
132  }
133 
134 
135 
136 
137 
138 
139 
140  while(1)
141  {
142  //do nothing
143  }
144 
145 
146 
147 
148  return 0;
149 }
char jpg_buffer[500512]
Definition: camera-test.c:10
PS2CAM_DEVICE_CONFIG cfg
Definition: camera-test.c:18
PS2CAM_DEVICE_INFO caminfo
Definition: camera-test.c:16
int fioInit(void)
int SifLoadModule(const char *path, int arg_len, const char *args)
int PS2CamExtractFrame(int handle, char *buffer, int bufsize)
Definition: ps2cam_rpc.c:284
#define CAM_CONFIG_MASK_DIVIDER
Definition: ps2cam_rpc.h:52
int PS2CamGetDeviceCount(void)
Definition: ps2cam_rpc.c:102
#define CAM_CONFIG_MASK_DIMENSION
Definition: ps2cam_rpc.h:50
int PS2CamInit(int mode)
Definition: ps2cam_rpc.c:37
int PS2CamGetDeviceInfo(int handle, PS2CAM_DEVICE_INFO *info)
Definition: ps2cam_rpc.c:170
int PS2CamSetDeviceBandwidth(int handle, char bandwidth)
Definition: ps2cam_rpc.c:194
#define CAM_CONFIG_MASK_FRAMERATE
Definition: ps2cam_rpc.h:53
#define CAM_CONFIG_MASK_OFFSET
Definition: ps2cam_rpc.h:51
int PS2CamSetDeviceConfig(int handle, PS2CAM_DEVICE_CONFIG *cfg)
Definition: ps2cam_rpc.c:267
int PS2CamOpenDevice(int device_index)
Definition: ps2cam_rpc.c:118
int PS2CamGetDeviceStatus(int handle)
Definition: ps2cam_rpc.c:151
void SifInitRpc(int mode)
unsigned short framerate
Definition: ps2cam_rpc.h:140
unsigned short x_offset
Definition: ps2cam_rpc.h:132
unsigned short width
Definition: ps2cam_rpc.h:128
unsigned char v_divider
Definition: ps2cam_rpc.h:138
unsigned int mask
Definition: ps2cam_rpc.h:126
unsigned int ssize
Definition: ps2cam_rpc.h:124
unsigned char h_divider
Definition: ps2cam_rpc.h:136
unsigned short y_offset
Definition: ps2cam_rpc.h:134
unsigned short height
Definition: ps2cam_rpc.h:130
unsigned int ssize
Definition: ps2cam_rpc.h:107
unsigned char product_name[32]
Definition: ps2cam_rpc.h:115

References CAM_CONFIG_MASK_DIMENSION, CAM_CONFIG_MASK_DIVIDER, CAM_CONFIG_MASK_FRAMERATE, CAM_CONFIG_MASK_OFFSET, caminfo, cfg, fioInit(), PS2CAM_DEVICE_CONFIG::framerate, PS2CAM_DEVICE_CONFIG::h_divider, PS2CAM_DEVICE_CONFIG::height, jpg_buffer, PS2CAM_DEVICE_CONFIG::mask, PS2CAM_DEVICE_INFO::product_name, PS2CamExtractFrame(), PS2CamGetDeviceCount(), PS2CamGetDeviceInfo(), PS2CamGetDeviceStatus(), PS2CamInit(), PS2CamOpenDevice(), PS2CamSetDeviceBandwidth(), PS2CamSetDeviceConfig(), SifInitRpc(), SifLoadModule(), PS2CAM_DEVICE_INFO::ssize, PS2CAM_DEVICE_CONFIG::ssize, PS2CAM_DEVICE_CONFIG::v_divider, PS2CAM_DEVICE_CONFIG::width, PS2CAM_DEVICE_CONFIG::x_offset, and PS2CAM_DEVICE_CONFIG::y_offset.

Variable Documentation

◆ caminfo

Definition at line 16 of file camera-test.c.

Referenced by main().

◆ cfg

Definition at line 18 of file camera-test.c.

Referenced by main(), and PS2CamSetDeviceConfig().

◆ info

◆ iopval

int* iopval

Definition at line 21 of file camera-test.c.

◆ jpg_buffer

char jpg_buffer[500512]

Definition at line 10 of file camera-test.c.

Referenced by main().