File: camera.h

package info (click to toggle)
sameboy 1.0.2%2Bds-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 10,632 kB
  • sloc: ansic: 29,954; objc: 22,249; asm: 1,424; pascal: 1,373; makefile: 1,064; xml: 111
file content (26 lines) | stat: -rw-r--r-- 1,031 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#pragma once
#include <stdint.h>
#include "defs.h"

typedef uint8_t (*GB_camera_get_pixel_callback_t)(GB_gameboy_t *gb, uint8_t x, uint8_t y);
typedef void (*GB_camera_update_request_callback_t)(GB_gameboy_t *gb);

void GB_set_camera_get_pixel_callback(GB_gameboy_t *gb, GB_camera_get_pixel_callback_t callback);
void GB_set_camera_update_request_callback(GB_gameboy_t *gb, GB_camera_update_request_callback_t callback);
void GB_camera_updated(GB_gameboy_t *gb);

#ifdef GB_INTERNAL
internal uint8_t GB_camera_read_image(GB_gameboy_t *gb, uint16_t addr);
internal void GB_camera_write_register(GB_gameboy_t *gb, uint16_t addr, uint8_t value);
internal uint8_t GB_camera_read_register(GB_gameboy_t *gb, uint16_t addr);

enum {
    GB_CAMERA_SHOOT_AND_1D_FLAGS = 0,
    GB_CAMERA_GAIN_AND_EDGE_ENHACEMENT_FLAGS = 1,
    GB_CAMERA_EXPOSURE_HIGH = 2,
    GB_CAMERA_EXPOSURE_LOW = 3,
    GB_CAMERA_EDGE_ENHANCEMENT_INVERT_AND_VOLTAGE = 4,
    GB_CAMERA_DITHERING_PATTERN_START = 6,
    GB_CAMERA_DITHERING_PATTERN_END = 0x35,
};
#endif