//--------------------------------------------------------------------------
//
//                  "UserScreenMode.h"
//
//  HEADER file for "UserScreenMode.o", ŠASWare 1993, by Ekke Verheul.
//
//  The use of this header and the objectfile "UserScreenMode.o" is FREE for
//  non-comercial purposes. Anyone else MUST register first, but that is not
//  a punishment is it? If you send me you name and address and #include the
//  PD-fee (read the readme-file !) you will receive ALL the latest versions
//  of my PD-programs INCLUDING the C-source of "UserScreenMode.o"...
//
//                                                            Oh, lucky you!
//
//--------------------------------------------------------------------------

#include <graphics/displayinfo.h>

typedef struct {
    ULONG ModeID;
    ULONG OScan;
    ULONG Width;
    ULONG Height;
    ULONG Depth;
} SCRMODE;

typedef struct {
    UBYTE title[16]; //--- keep it short!
    ULONG include;
    ULONG exclude;
} PRPT;

extern int __asm UserScreenMode( register __a1 UBYTE *   PublicScreenName,
                                 register __a2 SCRMODE * DataToFill,
                                 register __a3 PRPT **   PropList
                               );

extern int __asm ModeName ( register __d0 ULONG Mode,
                            register __a0 UBYTE *Name
                          );


#define DIPF_ALL  ~0L
#define DIPF_NONE  0L

extern LONG USM_Error;

#define ERR_GFXLIB 1   //--- Can't open graphics.library v37
#define ERR_INTLIB 2   //--- Can't open intuition.library v37
#define ERR_GTSLIB 3   //--- Can't open gadtools.library v37
#define ERR_PBSLCK 4   //--- Can't lock public screen
#define ERR_VSLINF 5   //--- Can't get public screen's visual info
#define ERR_NO_MEM 6   //--- Out of memory
#define ERR_NO_WIN 7   //--- Can't open window


#ifdef USM_ERRTXT      //--- define this only in the module that uses the texts!
UBYTE *USM_ErrorTxt[] =
{
    "",
    "Can't open graphics.library v37",
    "Can't open intuition.library v37",
    "Can't open gadtools.library v37",
    "Can't lock public screen",
    "Can't get public screen's visual info",
    "Out of memory",
    "Can't open window",
};
#define USM_ERROR USM_ErrorTxt[USM_Error]
#endif