comparison render.h @ 1551:ce1f93be0104

Small cleanup to audio interface between emulation code and renderer backend
author Michael Pavone <pavone@retrodev.com>
date Wed, 28 Mar 2018 23:36:08 -0700
parents 577253765192
children 6ce36c3f250b
comparison
equal deleted inserted replaced
1550:b525491b4e5b 1551:ce1f93be0104
68 68
69 #define FRAMEBUFFER_ODD 0 69 #define FRAMEBUFFER_ODD 0
70 #define FRAMEBUFFER_EVEN 1 70 #define FRAMEBUFFER_EVEN 1
71 71
72 #include "vdp.h" 72 #include "vdp.h"
73 #include "psg.h"
74 #include "ym2612.h"
75 73
76 typedef enum { 74 typedef enum {
77 VID_NTSC, 75 VID_NTSC,
78 VID_PAL, 76 VID_PAL,
79 NUM_VID_STD 77 NUM_VID_STD
83 #define RENDER_AXIS_BIT 0x20000000 81 #define RENDER_AXIS_BIT 0x20000000
84 #define RENDER_INVALID_NAME -1 82 #define RENDER_INVALID_NAME -1
85 #define RENDER_NOT_MAPPED -2 83 #define RENDER_NOT_MAPPED -2
86 #define RENDER_NOT_PLUGGED_IN -3 84 #define RENDER_NOT_PLUGGED_IN -3
87 85
86 typedef struct audio_source audio_source;
88 typedef void (*drop_handler)(const char *filename); 87 typedef void (*drop_handler)(const char *filename);
89 88
90 uint32_t render_map_color(uint8_t r, uint8_t g, uint8_t b); 89 uint32_t render_map_color(uint8_t r, uint8_t g, uint8_t b);
91 void render_save_screenshot(char *path); 90 void render_save_screenshot(char *path);
92 uint32_t *render_get_framebuffer(uint8_t which, int *pitch); 91 uint32_t *render_get_framebuffer(uint8_t which, int *pitch);
94 void render_init(int width, int height, char * title, uint8_t fullscreen); 93 void render_init(int width, int height, char * title, uint8_t fullscreen);
95 void render_set_video_standard(vid_std std); 94 void render_set_video_standard(vid_std std);
96 void render_toggle_fullscreen(); 95 void render_toggle_fullscreen();
97 void render_update_caption(char *title); 96 void render_update_caption(char *title);
98 void render_wait_quit(vdp_context * context); 97 void render_wait_quit(vdp_context * context);
99 void render_wait_psg(psg_context * context);
100 void render_wait_ym(ym2612_context * context);
101 void render_disable_ym();
102 void render_enable_ym();
103 uint32_t render_audio_buffer(); 98 uint32_t render_audio_buffer();
104 uint32_t render_sample_rate(); 99 uint32_t render_sample_rate();
105 void process_events(); 100 void process_events();
106 int render_width(); 101 int render_width();
107 int render_height(); 102 int render_height();
120 uint32_t render_overscan_top(); 115 uint32_t render_overscan_top();
121 uint32_t render_overscan_left(); 116 uint32_t render_overscan_left();
122 uint32_t render_elapsed_ms(void); 117 uint32_t render_elapsed_ms(void);
123 void render_sleep_ms(uint32_t delay); 118 void render_sleep_ms(uint32_t delay);
124 uint8_t render_has_gl(void); 119 uint8_t render_has_gl(void);
120 audio_source *render_audio_source(uint8_t channels);
121 int16_t *render_audio_source_buffer(audio_source *src);
122 int16_t *render_audio_ready(audio_source *src);
123 void render_reset_sources(void);
124 void render_pause_source(audio_source *src);
125 void render_resume_source(audio_source *src);
126 void render_free_source(audio_source *src);
125 127
126 #endif //RENDER_H_ 128 #endif //RENDER_H_
127 129