viz1090/sdl1090/init.c
Nathan aff3e48bbc trying 90 degree lables
Former-commit-id: 416a4800a52e43f2583252650e6345f88fa7f988
Former-commit-id: 5efa8306924bca3a336db7412480ee40b3876dbc
2017-10-06 11:34:36 -05:00

117 lines
2.5 KiB
C

#include "dump1090.h"
#include "init.h"
#include "SDL/SDL_getenv.h"
void mouseSetup() {
#ifdef RPI
wiringPiSetupGpio() ;
pinMode(23, INPUT);
pullUpDnControl (23, PUD_UP);
pinMode(22, INPUT);
pullUpDnControl (22, PUD_UP);
pinMode(27, INPUT);
pullUpDnControl (27, PUD_UP);
#endif
}
void init(char *title)
{
// raspberry pi compiler flag enables these options
#ifdef RPI
putenv((char*)"FRAMEBUFFER=/dev/fb1");
putenv((char*)"SDL_FBDEV=/dev/fb1");
#endif
mouseSetup();
/* Initialise SDL */
if (SDL_Init(SDL_INIT_VIDEO) < 0)
{
printf("Could not initialize SDL: %s\n", SDL_GetError());
exit(1);
}
/* Initialise SDL_TTF */
if (TTF_Init() < 0)
{
printf("Couldn't initialize SDL TTF: %s\n", SDL_GetError());
exit(1);
}
SDL_ShowCursor(SDL_DISABLE);
#ifdef RPI
const SDL_VideoInfo* vInfo = SDL_GetVideoInfo();
if (!vInfo) {
fprintf(stderr,"ERROR in SDL_GetVideoInfo(): %s\n",SDL_GetError());
exit(1);
}
Modes.screen_width = vInfo->current_w;
Modes.screen_height = vInfo->current_h;
Modes.screen_depth = vInfo->vfmt->BitsPerPixel;
Modes.screen_upscale = 1;
#endif
if(Modes.screen_upscale > 1) {
game.bigScreen = SDL_SetVideoMode(Modes.screen_width * Modes.screen_upscale, Modes.screen_height * Modes.screen_upscale, Modes.screen_depth, SDL_HWPALETTE|SDL_DOUBLEBUF);
game.screen = SDL_CreateRGBSurface(0, Modes.screen_width, Modes.screen_height, Modes.screen_depth, 0, 0, 0, 0);
} else {
game.screen = SDL_SetVideoMode(Modes.screen_width, Modes.screen_height, Modes.screen_depth, SDL_HWPALETTE|SDL_DOUBLEBUF);
}
if (game.screen == NULL)
{
printf("Couldn't set screen mode to %d x %d: %s\n", Modes.screen_width, Modes.screen_height, SDL_GetError());
exit(1);
}
/* Load the font */
game.font = loadFont("font/TerminusTTF-Bold-4.46.0.ttf", 12);
game.listFont = loadFont("font/TerminusTTF-Bold-4.46.0.ttf", 18);
game.messageFont = loadFont("font/TerminusTTF-Bold-4.46.0.ttf", 34);
game.labelFont = loadFont("font/TerminusTTF-Bold-4.46.0.ttf", 16);
game.messageFontWidth = 17;
game.messageFontHeight = 34;
game.labelFontWidth = 5;
game.labelFontHeight = 10;
/* Set the screen title */
SDL_WM_SetCaption(title, NULL);
initMaps();
}
void cleanup()
{
/* Close the font */
closeFont(game.font);
/* Close SDL_TTF */
TTF_Quit();
/* Shut down SDL */
SDL_Quit();
}