Makrodefinitionen | Typdefinitionen | Funktionen | Variablen
Runtime functions

Makrodefinitionen

#define GETLINE
#define UINT   unsigned int
#define pascal

Typdefinitionen

typedef void UpdateCallback (int Box, bool Logic)

Funktionen

char pascal _export Compile (CompDlg *compDia, const wxChar *name)
bool pascal _export Activate (bool realTime, UpdateCallback *callback)
void pascal _export Stop ()
void NRT_Play ()
void pascal _export InDeviceAction (int inDevNr, enum MutaborModeType action)
void pascal _export Panic ()
bool pascal _export CheckNeedsRealTime ()
char pascal _export GetMutTag (char &isLogic, char *text, char *einsttext, char &key, int box)
char pascal _export IsLogicKey (char key)
bool pascal _export KeyChanged (int box)
bool pascal _export TSChanged (int box)
bool pascal _export InDevicesChanged ()
void pascal _export GetInDevicesMode (enum MutaborModeType *mode)
char pascal _export GetChannels (char start, int &base, int &from, int &to, int &thru)
void pascal _export SetChannels (int base, int from, int to, int thru)
void pascal _export SetAktuellesKeyboardInstrument (int instr)
int pascal _export GetAktuellesKeyboardInstrument ()
bool GetELine (const wxString &p, size_t &i, wxString &s)
DevType Str2DT (const wxString &type)
bool GetLine (char **p, char *s)
OutDeviceGetOut (int nr)
void pascal _export GetTimerData (UINT &min, UINT &max)
char pascal Compile (TDialog *compWin, const char *name)
void pascal GetDrivers (int *driver)
void pascal SetDrivers (int *driver)
void pascal ScanDevices (char *config)

Variablen

bool RealTime = false
jmp_buf weiter_gehts_nach_compilerfehler
UpdateCallbackupdatecallback
struct keyboard_ereignislast
tone_system last_tonsystem [MAX_BOX]
struct instrumentlauf_instrument
bool RealTime
jmp_buf weiter_gehts_nach_compilerfehler
UpdateCallbackupdatecallback

Makro-Dokumentation

#define GETLINE
Wert:
if ( !GetELine(config, i, s) ) \
    return

Definiert in Zeile 436 der Datei Runtime.cpp.

#define pascal

Definiert in Zeile 47 der Datei Runtime.h.

#define UINT   unsigned int

Definiert in Zeile 45 der Datei Runtime.h.


Dokumentation der benutzerdefinierten Typen

typedef void UpdateCallback(int Box, bool Logic)

Definiert in Zeile 53 der Datei Runtime.h.


Dokumentation der Funktionen

bool pascal Activate ( bool  realTime,
UpdateCallback callback 
)

Definiert in Zeile 159 der Datei Runtime.cpp.

Benutzt _(), AktionenInit(), CurrentTime, Fmeldung, GlobalReset(), InOpen(), OutClose(), OutOpen() und StartCurrentTime().

Wird benutzt von MutFrame::CmDoActivate().

                                                                              {
                RealTime = realTime;
                GlobalReset();
                AktionenInit();
                updatecallback = callback;
#if !defined(WX) || defined(__WXMSW__)

                if ( RealTime )
                        timeBeginPeriod(1);

#endif
                bool ok = OutOpen();

                if ( ok && !InOpen() ) {
                        ok = false;
                        OutClose();
                }

                if ( !ok ) {
#if !defined(WX) || defined(__WXMSW__)
                        if ( RealTime )
                                timeEndPeriod(1);
#endif
                        wxMessageBox(Fmeldung, _("Activation error"), wxOK | wxICON_ASTERISK );
                        return false;
                }

                if ( RealTime )
                        StartCurrentTime();
                else
                        CurrentTime = 0;
                return true;
        }
bool pascal CheckNeedsRealTime ( )

Definiert in Zeile 297 der Datei Runtime.cpp.

Benutzt NeedsRealTime().

Wird benutzt von MutFrame::CmDoActivate().

                                                 {
                return NeedsRealTime();
        }
char pascal _export Compile ( CompDlg compDia,
const wxChar *  name 
)

Definiert in Zeile 120 der Datei Runtime.cpp.

Benutzt _(), calc_declaration_numbers(), Fmeldung, init_yylex(), InitCompDia(), loesche_syntax_speicher(), mutabor_programm_einlesen(), mutabor_tabellen_generator(), sd1, sd2, CompDlg::SetButtonText(), CompDlg::SetMessage() und CompDlg::SetStatus().

                                                                          {
                InitCompDia(compDia, name);
                
                if (!setjmp(weiter_gehts_nach_compilerfehler)) {
                        loesche_syntax_speicher();
                        init_yylex ();

                        mutabor_programm_einlesen ( name );

                        calc_declaration_numbers();

                        compDia->SetStatus(sd1,sd2,sd3,sd4,sd5,sd6);

                        //       show_line_number(-1);

                        compDia->SetButtonText(_("Generating tables"));
                        compDia->Refresh();

                        mutabor_tabellen_generator();


                        compDia->SetButtonText(_("Translation successful !"));
                        compDia->SetMessage(_("No error occured !"));
                        compDia->Refresh();

                        return 1;
                } else {
                        //show_line_number(-1);
                        compDia->SetButtonText(_("Translation interrupted !"));

                        compDia->SetMessage(Fmeldung);
                        compDia->Refresh();

                        return 0;
                }
        }
char pascal Compile ( TDialog *  compWin,
const char name 
)
int pascal GetAktuellesKeyboardInstrument ( )

Definiert in Zeile 399 der Datei Runtime.cpp.

Benutzt aktuelle_keyboard_box.

                                                            {
                return aktuelle_keyboard_box;
        }
char pascal GetChannels ( char  start,
int &  base,
int &  from,
int &  to,
int &  thru 
)

Definiert in Zeile 372 der Datei Runtime.cpp.

Benutzt list_of_config_instrumente, instrument::midi_bis, instrument::midi_in, instrument::midi_umleit, instrument::midi_von und instrument::next.

                                                                                              {
                if ( start )
                        lauf_instrument = list_of_config_instrumente;
                else if ( lauf_instrument )
                        lauf_instrument = lauf_instrument -> next;

                if ( !lauf_instrument ) return 0;

                base = lauf_instrument -> midi_in;

                from = lauf_instrument -> midi_von;

                to       = lauf_instrument -> midi_bis;

                thru = lauf_instrument -> midi_umleit;

                return 1;
        }
void pascal GetDrivers ( int *  driver)
bool GetELine ( const wxString &  p,
size_t &  i,
wxString &  s 
)
void pascal GetInDevicesMode ( enum MutaborModeType mode)

Definiert in Zeile 363 der Datei Runtime.cpp.

Benutzt InDevice::GetDeviceList() und InDevice::GetNext().

                                                                         {
                int nr = 0;

                for (InDevice *In = InDevice::GetDeviceList(); In; In = In->GetNext(),nr++)
                        mode[nr] = In->GetMode();
        }
bool GetLine ( char **  p,
char s 
)

Definiert in Zeile 410 der Datei Runtime.cpp.

                                        {
                if ( !p || !(*p)[0] )
                        return FALSE;

                while ( (*p)[0] == ' ' || (*p)[0] == '\n' || (*p)[0] == '\r' )
                        *p = &(*p)[1];

                if ( !(*p)[0] )
                        return FALSE;

                char *p1 = *p;

                *p = strchr(p1, '\n');

                if ( !p )
                        *p = &p1[strlen(p1)];

                int i = (*p)-p1;

                strncpy(s, p1, i);

                s[i] = 0;

                return TRUE;
        }
char pascal GetMutTag ( char isLogic,
char text,
char einsttext,
char key,
int  box 
)

Definiert in Zeile 303 der Datei Runtime.cpp.

Benutzt keyboard_ereignis::aktion, logik::einstimmungs_name, first_keyboard, do_aktion::name, keyboard_ereignis::next, keyboard_ereignis::taste und keyboard_ereignis::the_logik_to_expand.

Wird benutzt von MutLogicWnd::UpDate().

                                                                                                      {
                if ( box != -1 )
                        last = first_keyboard[box];
                else
                        if ( last ) last = last->next;

                if ( !last ) return 0;

                key = last->taste;

                strncpy(text, last->aktion->name, 20);

                isLogic = ( last->the_logik_to_expand != NULL );

                if ( isLogic && last->the_logik_to_expand->einstimmungs_name )
                        strncpy(einsttext, last->the_logik_to_expand->einstimmungs_name, 20);
                else
                        strcpy(einsttext, "");

                return 1;
        }
OutDevice * GetOut ( int  nr)

Definiert in Zeile 443 der Datei Runtime.cpp.

Benutzt DEBUGLOG2, OutDevice::GetDeviceList(), Device::GetDevId() und OutDevice::GetNext().

Wird benutzt von ERoute::newRoute().

                                  {
                DEBUGLOG2(other,_T("Nr.: %d"),nr);

                if ( nr < 0 )
                        return 0;

                OutDevice *Out = OutDevice::GetDeviceList();

                while ( Out ) {
                        if (Out->GetDevId() == nr) break;

                        Out = Out->GetNext();

                        DEBUGLOG2(other,_T("Nr.: %d, Out: %x"),nr, Out);
                }

                return Out;
        }
void pascal GetTimerData ( UINT &  min,
UINT &  max 
)

Definiert in Zeile 624 der Datei Runtime.cpp.

                                                               {
#if !defined(WX) || defined(__WXMSW__)
                TIMECAPS TimeCaps;
                timeGetDevCaps(&TimeCaps, sizeof(TIMECAPS));
                min = TimeCaps.wPeriodMin;
                max = TimeCaps.wPeriodMax;
#else
                //TODO
#endif
        }
void pascal InDeviceAction ( int  inDevNr,
enum MutaborModeType  action 
)

Definiert in Zeile 240 der Datei Runtime.cpp.

Benutzt InDevice::GetDeviceList(), InDevice::GetMode(), InDevice::GetNext(), MutaborDeviceCompileError, MutaborDevicePause, MutaborDevicePlay, MutaborDeviceStop, MutaborDeviceTimingError, MutaborDeviceUnregistered, NRT_Play(), InDevice::Pause(), InDevice::Play() und InDevice::Stop().

                                                                                     {
//  return; entkoppeln (zum debuggen)

                if ( !RealTime ) {
                        NRT_Play();
                        return;
                }

                InDevice *In = InDevice::GetDeviceList();

                while ( In && inDevNr ) {
                        In = In->GetNext();
                        inDevNr--;
                }

                if ( !In || In->GetMode() == MutaborDeviceCompileError ) return;
                switch ( action ) {

                case MutaborDeviceStop:
                        In->Stop();
                        break;

                case MutaborDevicePlay:
                        In->Play();
                        break;

                case MutaborDevicePause:
                        In->Pause();
                        break;

                case MutaborDeviceUnregistered:
                        std::cerr << "Device is unregistered. Aborting.";
                        abort();

                case MutaborDeviceCompileError:
                        std::cerr << "Unhandled compile error. Aborting.";
                        abort();

                case MutaborDeviceTimingError:
                        std::cerr << "Unhandled timing error. Aborting.";
                        abort();
                }
        }
bool pascal InDevicesChanged ( )

Definiert in Zeile 357 der Datei Runtime.cpp.

Benutzt InDevChanged.

Wird benutzt von MutFrame::UpdateUI().

                                               {
                char flag = InDevChanged;
                InDevChanged = 0;
                return flag;
        }
char pascal IsLogicKey ( char  key)

Definiert in Zeile 325 der Datei Runtime.cpp.

Benutzt aktuelle_keyboard_box, first_keyboard, keyboard_ereignis::next, keyboard_ereignis::taste und keyboard_ereignis::the_logik_to_expand.

Wird benutzt von MutLogicWnd::CmTaste().

                                                 {

                struct keyboard_ereignis *last = first_keyboard[aktuelle_keyboard_box];

                while ( last ) {
                        if ( key == last->taste )
                                return last->the_logik_to_expand != NULL;

                        last = last->next;
                }

                return 2;
        }
bool pascal KeyChanged ( int  box)

Definiert in Zeile 339 der Datei Runtime.cpp.

Benutzt keys_changed.

Wird benutzt von MutFrame::UpdateUI().

                                                {
                int flag = keys_changed[box];
                keys_changed[box] = 0;
                return flag;
        }
void NRT_Play ( )

Definiert in Zeile 212 der Datei Runtime.cpp.

Benutzt CurrentTime, DTMidiFile, InDevice::GetDeviceList(), InDevice::GetNext(), InDevChanged und CurrentTimer::Notify().

Wird benutzt von InDeviceAction().

                        {
                // start all devices

                for (InDevice *In = InDevice::GetDeviceList(); In; In = In->GetNext())
                        In->Play();

                // time slices
                bool Working = true;

                while ( Working ) {
                        Working = false;

                        for (InDevice *In = InDevice::GetDeviceList(); In; In = In->GetNext())
                                if ( In->GetMode() == 1 && In->GetType() == DTMidiFile ) {
                                        ((InMidiFile*)In)->IncDelta();
                                        Working = true;
                                }

                        CurrentTime.Notify();
                }

                // close all devices
                for (InDevice *In1 = InDevice::GetDeviceList(); In1; In1 = In1->GetNext())
                        In1->Stop();

                InDevChanged = 1;
        }
void pascal Panic ( )

Definiert in Zeile 284 der Datei Runtime.cpp.

Benutzt OutDevice::GetDeviceList(), OutDevice::GetNext(), MAX_BOX, MutResetKeys(), OutDevice::Panic() und updatecallback.

Wird benutzt von MutFrame::CmPanic().

                                    {
                OutDevice *Out = OutDevice::GetDeviceList();
                while ( Out ) {
                        Out->Panic();
                        Out = Out->GetNext();
                }
                MutResetKeys();
                for (int i = 0; i<MAX_BOX ; i++) 
                {
                        updatecallback(i,false);
                }
        }
void pascal ScanDevices ( char config)
void pascal SetAktuellesKeyboardInstrument ( int  instr)

Definiert in Zeile 395 der Datei Runtime.cpp.

Benutzt aktuelle_keyboard_box.

Wird benutzt von MutFrame::CmDoActivate().

                                                                      {
                aktuelle_keyboard_box = instr;
        }
void pascal SetChannels ( int  base,
int  from,
int  to,
int  thru 
)

Definiert in Zeile 391 der Datei Runtime.cpp.

Benutzt get_instrument_dekl() und list_of_config_instrumente.

                                                                              {
                get_instrument_dekl (base, from, to, thru, &list_of_config_instrumente);
        }
void pascal SetDrivers ( int *  driver)
void pascal Stop ( )

Definiert in Zeile 193 der Datei Runtime.cpp.

Benutzt GlobalReset(), InClose(), OutClose() und StopCurrentTime().

Wird benutzt von MutFrame::DoStop().

                                   {
                if ( RealTime )
                        StopCurrentTime();

                InClose();

                OutClose();

#if !defined(WX) || defined(__WXMSW__)
                if ( RealTime )
                        timeEndPeriod(1);

#endif
                GlobalReset();
        }
DevType Str2DT ( const wxString &  type)
bool pascal TSChanged ( int  box)

Definiert in Zeile 347 der Datei Runtime.cpp.

Benutzt mut_box und mutabor_box_type::tonesystem.

Wird benutzt von MutFrame::UpdateUI().

                                               {
                int flag = memcmp(&(last_tonsystem[box]),
                                  mut_box[box].tonesystem,
                                  (2*sizeof(int)) + sizeof(long) +
                                  (mut_box[box].tonesystem->breite*
                                   sizeof(long)) );
                last_tonsystem[box] = *(mut_box[box].tonesystem);
                return flag;
        }

Variablen-Dokumentation

Definiert in Zeile 301 der Datei Runtime.cpp.

Definiert in Zeile 345 der Datei Runtime.cpp.

Definiert in Zeile 370 der Datei Runtime.cpp.

bool RealTime = false
bool RealTime

Definiert in Zeile 157 der Datei Runtime.cpp.

Wird benutzt von FlushUpdateUI() und Panic().

Definiert in Zeile 157 der Datei Runtime.cpp.

Wird benutzt von FlushUpdateUI() und Panic().

Definiert in Zeile 118 der Datei Runtime.cpp.

Definiert in Zeile 118 der Datei Runtime.cpp.

Wird benutzt von fatal_error().


Erzeugt am Sun Aug 21 2011 10:52:00 für Mutabor von doxygen 1.7.4