gearmulator

Emulation of classic VA synths of the late 90s/2000s that are based on Motorola 56300 family DSPs
Log | Files | Refs | Submodules | README | LICENSE

pfatal.cxx (1041B)


      1 /*
      2  *
      3  *  C++ Portable Types Library (PTypes)
      4  *  Version 2.1.1  Released 27-Jun-2007
      5  *
      6  *  Copyright (C) 2001-2007 Hovik Melikyan
      7  *
      8  *  http://www.melikyan.com/ptypes/
      9  *
     10  */
     11 
     12 #include <stdlib.h>
     13 #include <stdio.h>
     14 #include <string.h>
     15 
     16 #include "pport.h"
     17 
     18 #if defined(WIN32) && !defined(NO_CRIT_MSGBOX)
     19 #  include <windows.h>
     20 #  define CRIT_MSGBOX
     21 #endif
     22 
     23 
     24 namespace ptypes {
     25 
     26 
     27 static void ptdecl defhandler(int code, const char* msg) 
     28 {
     29 #ifdef CRIT_MSGBOX
     30     char buf[2048];
     31     _snprintf(buf, sizeof(buf) - 1, "Fatal [%05x]: %s", code, msg);
     32     MessageBoxA(0, buf, "Internal error", MB_OK | MB_ICONSTOP);
     33 #else
     34     fprintf(stderr, "\nInternal [%04x]: %s\n", code, msg);
     35 #endif
     36 }
     37 
     38 static _pcrithandler crith = defhandler;
     39 
     40 
     41 _pcrithandler ptdecl getcrithandler() 
     42 {
     43     return crith;
     44 }
     45 
     46 
     47 _pcrithandler ptdecl setcrithandler(_pcrithandler newh) 
     48 {
     49     _pcrithandler ret = crith;
     50     crith = newh;
     51     return ret;
     52 }
     53 
     54 
     55 void ptdecl fatal(int code, const char* msg)
     56 {
     57     if (crith != nil)
     58         (*crith)(code, msg);
     59     exit(code);
     60 }
     61 
     62 
     63 }