|
Packit |
713213 |
/*
|
|
Packit |
713213 |
* 1394-Based Digital Camera Control Library
|
|
Packit |
713213 |
*
|
|
Packit |
713213 |
* Platform specific headers
|
|
Packit |
713213 |
*
|
|
Packit |
713213 |
* Written by David Moore <dcm@acm.org>
|
|
Packit |
713213 |
*
|
|
Packit |
713213 |
* This library is free software; you can redistribute it and/or
|
|
Packit |
713213 |
* modify it under the terms of the GNU Lesser General Public
|
|
Packit |
713213 |
* License as published by the Free Software Foundation; either
|
|
Packit |
713213 |
* version 2.1 of the License, or (at your option) any later version.
|
|
Packit |
713213 |
*
|
|
Packit |
713213 |
* This library is distributed in the hope that it will be useful,
|
|
Packit |
713213 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit |
713213 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Packit |
713213 |
* Lesser General Public License for more details.
|
|
Packit |
713213 |
*
|
|
Packit |
713213 |
* You should have received a copy of the GNU Lesser General Public
|
|
Packit |
713213 |
* License along with this library; if not, write to the Free Software
|
|
Packit |
713213 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
Packit |
713213 |
*/
|
|
Packit |
713213 |
|
|
Packit |
713213 |
#ifndef __DC1394_PLATFORM_H__
|
|
Packit |
713213 |
#define __DC1394_PLATFORM_H__
|
|
Packit |
713213 |
|
|
Packit |
713213 |
#include <stdint.h>
|
|
Packit |
713213 |
#include <dc1394/camera.h>
|
|
Packit |
713213 |
|
|
Packit |
713213 |
#include "config.h"
|
|
Packit |
713213 |
|
|
Packit |
713213 |
#ifdef HAVE_MACOSX
|
|
Packit |
713213 |
#include <CoreFoundation/CoreFoundation.h>
|
|
Packit |
713213 |
#endif
|
|
Packit |
713213 |
|
|
Packit |
713213 |
typedef struct _platform_t platform_t;
|
|
Packit |
713213 |
typedef struct _platform_device_t platform_device_t;
|
|
Packit |
713213 |
typedef struct _platform_camera_t platform_camera_t;
|
|
Packit |
713213 |
|
|
Packit |
713213 |
typedef struct _platform_device_list_t {
|
|
Packit |
713213 |
platform_t * p;
|
|
Packit |
713213 |
platform_device_t ** devices;
|
|
Packit |
713213 |
int num_devices;
|
|
Packit |
713213 |
} platform_device_list_t;
|
|
Packit |
713213 |
|
|
Packit |
713213 |
typedef struct _platform_dispatch_t {
|
|
Packit |
713213 |
platform_t * (*platform_new)(void);
|
|
Packit |
713213 |
void (*platform_free)(platform_t *);
|
|
Packit |
713213 |
|
|
Packit |
713213 |
platform_device_list_t * (*get_device_list)(platform_t *);
|
|
Packit |
713213 |
void (*free_device_list)(platform_device_list_t *);
|
|
Packit |
713213 |
int (*device_get_config_rom)(platform_device_t *, uint32_t *, int *);
|
|
Packit |
713213 |
|
|
Packit |
713213 |
platform_camera_t * (*camera_new)(platform_t *, platform_device_t *,
|
|
Packit |
713213 |
uint32_t);
|
|
Packit |
713213 |
void (*camera_free)(platform_camera_t *);
|
|
Packit |
713213 |
void (*camera_set_parent)(platform_camera_t *, dc1394camera_t *);
|
|
Packit |
713213 |
|
|
Packit |
713213 |
dc1394error_t (*camera_read)(platform_camera_t *, uint64_t,
|
|
Packit |
713213 |
uint32_t *, int);
|
|
Packit |
713213 |
dc1394error_t (*camera_write)(platform_camera_t *, uint64_t,
|
|
Packit |
713213 |
const uint32_t *, int);
|
|
Packit |
713213 |
|
|
Packit |
713213 |
dc1394error_t (*reset_bus)(platform_camera_t *);
|
|
Packit |
713213 |
dc1394error_t (*read_cycle_timer)(platform_camera_t *, uint32_t *,
|
|
Packit |
713213 |
uint64_t *);
|
|
Packit |
713213 |
dc1394error_t (*camera_get_node)(platform_camera_t *, uint32_t *,
|
|
Packit |
713213 |
uint32_t *);
|
|
Packit |
713213 |
dc1394error_t (*camera_print_info)(platform_camera_t *, FILE *);
|
|
Packit |
713213 |
dc1394error_t (*set_broadcast)(platform_camera_t *, dc1394bool_t);
|
|
Packit |
713213 |
dc1394error_t (*get_broadcast)(platform_camera_t *, dc1394bool_t *);
|
|
Packit |
713213 |
|
|
Packit |
713213 |
dc1394error_t (*capture_setup)(platform_camera_t *, uint32_t, uint32_t);
|
|
Packit |
713213 |
dc1394error_t (*capture_stop)(platform_camera_t *);
|
|
Packit |
713213 |
|
|
Packit |
713213 |
dc1394error_t (*capture_dequeue)(platform_camera_t *,
|
|
Packit |
713213 |
dc1394capture_policy_t, dc1394video_frame_t **);
|
|
Packit |
713213 |
dc1394error_t (*capture_enqueue)(platform_camera_t *,
|
|
Packit |
713213 |
dc1394video_frame_t *);
|
|
Packit |
713213 |
|
|
Packit |
713213 |
int (*capture_get_fileno)(platform_camera_t *);
|
|
Packit |
713213 |
dc1394bool_t (*capture_is_frame_corrupt)(platform_camera_t *,
|
|
Packit |
713213 |
dc1394video_frame_t *);
|
|
Packit |
713213 |
|
|
Packit |
713213 |
dc1394error_t (*iso_set_persist)(platform_camera_t *);
|
|
Packit |
713213 |
dc1394error_t (*iso_allocate_channel)(platform_camera_t *, uint64_t,
|
|
Packit |
713213 |
int *);
|
|
Packit |
713213 |
dc1394error_t (*iso_release_channel)(platform_camera_t *, int);
|
|
Packit |
713213 |
dc1394error_t (*iso_allocate_bandwidth)(platform_camera_t *, int);
|
|
Packit |
713213 |
dc1394error_t (*iso_release_bandwidth)(platform_camera_t *, int);
|
|
Packit |
713213 |
dc1394error_t (*capture_set_callback)(platform_camera_t * , dc1394capture_callback_t , void * );
|
|
Packit |
713213 |
|
|
Packit |
713213 |
#ifdef HAVE_MACOSX
|
|
Packit |
713213 |
dc1394error_t (*capture_schedule_with_runloop)(platform_camera_t * , CFRunLoopRef , CFStringRef);
|
|
Packit |
713213 |
#else
|
|
Packit |
713213 |
dc1394error_t (*capture_schedule_with_runloop)(platform_camera_t *);
|
|
Packit |
713213 |
|
|
Packit |
713213 |
#endif
|
|
Packit |
713213 |
|
|
Packit |
713213 |
} platform_dispatch_t;
|
|
Packit |
713213 |
|
|
Packit |
713213 |
|
|
Packit |
713213 |
#endif
|