52 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 | 
						|
    This file is part of libgtemu, a library for Gigatron emulation.
 | 
						|
    Copyright (C) 2019 David Heiko Kolf
 | 
						|
 | 
						|
    Published under the BSD-2-Clause license.
 | 
						|
    https://opensource.org/licenses/BSD-2-Clause
 | 
						|
 | 
						|
*/
 | 
						|
 | 
						|
#ifndef GTSDL_H
 | 
						|
#define GTSDL_H 1
 | 
						|
 | 
						|
#include <SDL2/SDL.h>
 | 
						|
 | 
						|
#include "gtemu.h"
 | 
						|
 | 
						|
struct GTSDLState {
 | 
						|
	SDL_Window *mainwin;
 | 
						|
	SDL_Renderer *mainrenderer;
 | 
						|
	SDL_Texture *gamescreen;
 | 
						|
	SDL_AudioDeviceID audiodev;
 | 
						|
	int standalone;
 | 
						|
	int audiofreq;
 | 
						|
	int fps;
 | 
						|
	unsigned int nextframe3, nextsecondtime;
 | 
						|
	unsigned int framecount;
 | 
						|
};
 | 
						|
 | 
						|
extern int gtsdl_openwindow (struct GTSDLState *s, const char *title);
 | 
						|
 | 
						|
extern SDL_AudioCallback gtsdl_getaudiocallback();
 | 
						|
 | 
						|
extern int gtsdl_setup (struct GTSDLState *s, SDL_Renderer *renderer,
 | 
						|
	SDL_AudioDeviceID audiodev, SDL_AudioSpec *audiospec);
 | 
						|
 | 
						|
extern void gtsdl_close (struct GTSDLState *s);
 | 
						|
 | 
						|
extern int gtsdl_getaudiofreq (struct GTSDLState *s);
 | 
						|
 | 
						|
extern SDL_Texture *gtsdl_render (struct GTSDLState *s, struct GTState *gt,
 | 
						|
	struct GTPeriph *ph);
 | 
						|
 | 
						|
extern int gtsdl_runuiframe (struct GTSDLState *s, struct GTState *gt,
 | 
						|
	struct GTPeriph *ph, SDL_Event *ev);
 | 
						|
 | 
						|
extern int gtsdl_handleevent (struct GTSDLState *s, struct GTState *gt,
 | 
						|
	struct GTPeriph *ph, SDL_Event *ev);
 | 
						|
 | 
						|
#endif /* GTSDL_H */
 | 
						|
 |