view pwplib/pwplib.h @ 86:71394f177c0f

Bump version.
author Matti Hamalainen <ccr@tnsp.org>
date Tue, 19 Mar 2013 07:25:50 +0200
parents 91edd8d1a3f5
children
line wrap: on
line source

#ifndef PWP_PWPLIB_H
#define PWP_PWPLIB_H

#define PWPLIB_VERSION "1.97"

#ifdef UNIX
#define __POSIX__
#endif

/************** user interface *************/

int     pwplib_init(int argc,char**argv);
void    pwplib_end();

int     pwplib_timer();
void    pwplib_shutdown(void);
int     pwplib_init_common(void);
void    pwplib_startup();

char *  pwp_get_locale();
void    pwplib_dump_rast_plain();
int     pwp_timer_nrt();
void    pwplib_getopts();
void    pwplib_printhelp();
void    pwplib_regdestr(void(*func)());

#define pwplib_buf  pwplib.videobuf.d
#define pwplib_bufw pwplib.videobuf.width
#define pwplib_bufh pwplib.videobuf.height

#define pwplib_prep_rast() pwplib.prep_rast()
#define pwplib_dump_rast() pwplib.dump_rast()

#define pwplib_prep_attr() pwplib.prep_attr()
#define pwplib_dump_attr() pwplib.dump_attr()

#define pwplib_prep_layered() pwplib.prep_layered()
#define pwplib_dump_layered() pwplib.dump_layered()

#define pwplib_loopflush() pwplib.loopflush()

#define pwplib_setplayer(p) pwplib.player=p
#define pwplib_player() pwplib.player()

#define pwplib_sound_off(c)       pwplib.sound(c,0,0,0)
#define pwplib_sound_n(c,n) p     pwplib.sound(c,n,128,128)
#define pwplib_sound_nv(c,n,v)    pwplib.sound(c,n,v,128)
#define pwplib_sound_nvr(c,n,v,r) pwplib.sound(c,n,v,r)

#define pwplib_locale  pwplib.set.lang

#define pwplib_setup(var) pwplib.setup[SETUP_##var]

/*******************************************/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <sys/time.h>

#include <stdarg.h>
void pwpwrite(const char *, ...);

#ifdef __POSIX__

#include <unistd.h>
#include <fcntl.h>
#include <termios.h>
#include <term.h>
#include <signal.h>

#endif

#include "types.h"
#include "config.h"

#ifndef __PWPLIB_C
  extern
#endif
struct
{
   int argc;
   char**argv;

   struct
   {
      u8  *d;
      int width,height;
      int aspect;
   }videobuf;

   void(*prep_rast)();
   void(*dump_rast)();

   void(*prep_attr)();
   void(*dump_attr)();

   void(*dump_layered)();
   void(*prep_layered)();

   void(*sound)(int ch,int note,int vol,int ratio);
   void(*loopflush)();
   void(*player)();

   /*** internal stuff ***/

   int timer_counter;
   
   int(*timerfunc)();

   int setup[128];
   
   struct
   {
      char*dev;
      char*term;
      char*lang;
      char*audev;
      
      int wanthelp;
      
      int framedelay;
      int framebytes;

      int infodelay;

      char temp_pad[12];
      
      /* etc... replace the whole setup structure */
   }set;
   
   int frame;
}pwplib;

enum
{
  SETUP_NOSOUND=0,
  SETUP_NOVIDEO,

  SETUP_VOLUME,
  SETUP_TRANS,
  SETUP_COLORS,
  SETUP_RASTER,
  SETUP_HALVE,
  SETUP_TTY,
  SETUP_FPS,
  SETUP_BPS,
  SETUP_LOSSY,
  SETUP_PVP,
  SETUP_MINFPS,
  SETUP_MAXFPS,
  SETUP_SHUTUP,
  SETUP_USERHEIGHT,
  SETUP_USERWIDTH,
  SETUP_WANTHELP,
  
  SETUP_FULLSCREEN,
  SETUP_XRES,
  SETUP_YRES
};

#ifndef __PWPLIB_C
  extern
#endif
  void pwp_timer_regframe(int bytes);

typedef struct {
   char *name;
   int type;
   void *dflt;
   void **var;
} pwp_optab;

#define OPT_BIN     0
#define OPT_NOT     1
#define OPT_ONE     2
#define OPT_INT     3
#define OPT_STRING  4
#define OPT_SETDEF  5
#define OPT_NODEF   128

#define STDIN 0
#define STDOUT 1
#define STDERR 2



#endif /* PWP_PWPLIB_H */