int EXPORT GMSynthMIDIEvent(short mmsg, short val1, short val2) { if (CheckHandle()) return GMSYNTH_ERR_BADHANDLE; theSynth->ImmediateEvent(mmsg, val1, val2); return 0; }
void write(PCWSTR path, PCVOID data, size_t bytesToWrite, bool rewrite) { DWORD creationDisposition = rewrite ? CREATE_ALWAYS : CREATE_NEW; memory::auto_close<HANDLE> file(CheckHandle(::CreateFileW(path, GENERIC_WRITE, 0, nullptr, creationDisposition, FILE_ATTRIBUTE_NORMAL, nullptr))); write(file, data, bytesToWrite); }
int EXPORT GMSynthMIDIKbdIn(int onoff, int device) { if (CheckHandle()) return GMSYNTH_ERR_BADHANDLE; return theSynth->MidiIn(onoff, device); }
int EXPORT GMSynthResume() { if (CheckHandle()) return GMSYNTH_ERR_BADHANDLE; return theSynth->Resume(); }
int EXPORT GMSynthGenerate(const char *fileName) { if (CheckHandle()) return GMSYNTH_ERR_BADHANDLE; return theSynth->Generate(fileName); }
int EXPORT GMSynthMetaData(int id, long *vals) { if (CheckHandle()) return GMSYNTH_ERR_BADHANDLE; return theSynth->GetMetaData(id, vals); }
int EXPORT GMSynthMetaText(int id, char *txt, size_t len) { if (CheckHandle()) return GMSYNTH_ERR_BADHANDLE; return theSynth->GetMetaText(id, txt, len); }
int EXPORT GMSynthLoadSequence(const char *fileName, const char *sbnkName, unsigned short mask) { if (CheckHandle()) return GMSYNTH_ERR_BADHANDLE; return theSynth->LoadSequence(fileName, sbnkName, mask); }
int EXPORT GMSynthLoadSoundBank(const char *fileName, const char *alias, int preload, float scl) { if (CheckHandle()) return GMSYNTH_ERR_BADHANDLE; return theSynth->LoadSoundBank(alias, fileName, preload, scl); }
int EXPORT GMSynthSetVolume(float db, float rv) { if (CheckHandle()) return GMSYNTH_ERR_BADHANDLE; theSynth->SetVolume(db, rv); return 0; }
int EXPORT GMSynthSetCallback(GMSYNTHCB cb, bsUint32 cbRate, void *arg) { if (CheckHandle()) return GMSYNTH_ERR_BADHANDLE; theSynth->SetCallback(cb, cbRate, arg); return 0; }
int EXPORT GMSynthStart(int mode, float start, float end, void *dev) { if (CheckHandle()) return GMSYNTH_ERR_BADHANDLE; theSynth->SetWaveDevice(dev); theSynth->SetTimes(start, end); return theSynth->Start(mode); }
uint64_t get_inode(PCWSTR path, size_t * nlink) { memory::auto_close<HANDLE> file(CheckHandle(::CreateFileW(path, FILE_READ_ATTRIBUTES, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, nullptr, OPEN_EXISTING, FILE_FLAG_OPEN_REPARSE_POINT | FILE_FLAG_BACKUP_SEMANTICS, nullptr))); BY_HANDLE_FILE_INFORMATION info; CheckApi(::GetFileInformationByHandle(file, &info)); if (nlink) *nlink = info.nNumberOfLinks; return make_uint64(info.nFileIndexHigh, info.nFileIndexLow); }
/* * Function will allow a user to change his handle */ void Chg_Handle() { char *Handle, *temp; Handle = calloc(81, sizeof(char)); temp = calloc(81, sizeof(char)); ReadExitinfo(); Syslog('+', "Old handle \"%s\"", exitinfo.sHandle); while (TRUE) { Enter(1); /* Enter a handle (Enter to Quit): */ pout(LIGHTBLUE, BLACK, (char *) Language(412)); colour(CFG.InputColourF, CFG.InputColourB); GetstrC(temp, 34); if ((strcmp(temp, "")) == 0) { free(Handle); free(temp); return; } strcpy(Handle, tlcap(temp)); if (CheckHandle(Handle) || CheckUnixNames(Handle)) { pout(LIGHTRED, BLACK, (char *)"\r\nThat handle is already been used\r\n"); } else if (CheckName(Handle)) { pout(LIGHTRED, BLACK, (char *)"\r\nThat name is already been used\r\n"); } else if((strcasecmp(Handle, "sysop")) == 0) { pout(LIGHTRED, BLACK, (char *)"\r\nYou cannot use Sysop as a handle\r\n"); } else if(strcmp(temp, "") != 0) { Setup(exitinfo.sHandle, temp); pout(LIGHTGREEN, BLACK, (char *)"\r\nHandle Changed!\r\n\r\n"); Syslog('+', "New handle \"%s\"", exitinfo.sHandle); break; } } WriteExitinfo(); free(temp); free(Handle); }
Map::Map(const Facade & wf, size_type size, bool write) : m_size(simstd::min(wf.size(), size)), m_frame(check_frame(DEFAULT_FRAME)), m_map(CheckHandle(::CreateFileMapping(wf, nullptr, (write) ? PAGE_READWRITE : PAGE_READONLY, high_part_64(m_size), low_part_64(m_size), nullptr))), m_write(write) { }
int EXPORT GMSynthUnload() { if (CheckHandle()) return GMSYNTH_ERR_BADHANDLE; return theSynth->Unload(); }
int EXPORT GMSynthGetPreset(short bank, short preset, char *txt, size_t len) { if (CheckHandle()) return GMSYNTH_ERR_BADHANDLE; return theSynth->GetPreset(bank, preset, txt, len); }
/// Return a list of valid bank numbers. /// Pass in a NULL for banks to get the maximum number. int EXPORT GMSynthGetBanks(short *banks, size_t len) { if (CheckHandle()) return GMSYNTH_ERR_BADHANDLE; return theSynth->GetBanks(banks, len); }