/// <summary> /// Check and fix any problem with hardware. /// </summary> private void CheckDriver() { //Get number of driver available int DriverNumber = 0; CheckError(m_System.getNumDrivers(ref DriverNumber)); //Driver checking #region Solve hardware problems //If there's 0 driver, no sound if (DriverNumber <= 0) { CheckError(m_System.setOutput(OUTPUTTYPE.NOSOUND)); } else { //Get driver capability int MinFreq = 0, MaxFreq = 0; CAPS Capability = CAPS.NONE; SPEAKERMODE Speakermode = SPEAKERMODE.STEREO; CheckError(m_System.getDriverCaps(0, ref Capability, ref MinFreq, ref MaxFreq, ref Speakermode)); //Set spearker mode according to the driver CheckError(m_System.setSpeakerMode(Speakermode)); //Set buffer if not using hardware accceleration if ((Capability & CAPS.HARDWARE_EMULATED) == CAPS.HARDWARE_EMULATED) { CheckError(m_System.setDSPBufferSize(Global.EMULATED_BUFFERSIZE, Global.EMULATED_BUFFERCOUNT)); } //Get user driver data GUID Guid = new GUID(); StringBuilder DriverName = new StringBuilder(Global.MAX_DRIVERNAME); CheckError(m_System.getDriverInfo(0, DriverName, Global.MAX_DRIVERNAME, ref Guid)); //If driver is sigmatel if (DriverName.Equals(new StringBuilder((Global.SIGMATEL_DRIVERNAME)))) { //Fix crackling CheckError(m_System.setSoftwareFormat( Global.SIGMATEL_SAMPLERATE, SOUND_FORMAT.PCMFLOAT, 0, 0, DSP_RESAMPLER.LINEAR)); } } #endregion }
private static extern RESULT FMOD_System_GetRecordDriverCaps(IntPtr system, int id, ref CAPS caps, ref int minfrequency, ref int maxfrequency);
private static extern RESULT FMOD_System_GetDriverCaps(IntPtr system, int id, ref CAPS caps, ref int minfrequency, ref int maxfrequency, ref SPEAKERMODE controlpanelspeakermode);
public RESULT getRecordDriverCaps(int id, ref CAPS caps, ref int minfrequency, ref int maxfrequency) { return FMOD_System_GetRecordDriverCaps(systemraw, id, ref caps, ref minfrequency, ref maxfrequency); }
public RESULT getDriverCaps(int id, ref CAPS caps, ref int minfrequency, ref int maxfrequency, ref SPEAKERMODE controlpanelspeakermode) { return FMOD_System_GetDriverCaps(systemraw, id, ref caps, ref minfrequency, ref maxfrequency, ref controlpanelspeakermode); }
private static extern RESULT FMOD_System_GetDriverCaps(IntPtr system, int id, ref CAPS caps, ref int controlpaneloutputrate, ref SPEAKERMODE controlpanelspeakermode);
public RESULT getDriverCaps(int id, ref CAPS caps, ref int controlpaneloutputrate, ref SPEAKERMODE controlpanelspeakermode) { return FMOD_System_GetDriverCaps(systemraw, id, ref caps, ref controlpaneloutputrate, ref controlpanelspeakermode); }
public static extern int GetDeviceCaps(IntPtr hdc, CAPS iIndex);
private static async Task AutoModAsync(SocketCommandContext Context, bool isCommand) { Task <bool>[] isZalgo = { Zalgo.IsZalgoAsync(Context), configDatabase.AntiZalgo.GetAntiZalgoAsync(Context.Guild) }; Task <bool>[] isSpam = { Spam.IsSpamAsync(Context), configDatabase.AntiSpam.GetAntiSpamAsync(Context.Guild) }; Task <bool>[] isSingleSpam = { Spam.IsSingleSpamAsync(Context), configDatabase.AntiSingleSpam.GetAntiSingleSpamAsync(Context.Guild) }; Task <bool>[] isMassMention = { MassMention.IsMassMentionAsync(Context), configDatabase.AntiMassMention.GetAntiMassMentionAsync(Context.Guild) }; Task <bool>[] isCaps = { CAPS.ISCAPSASYNC(Context), configDatabase.AntiCaps.GetAntiCapsAsync(Context.Guild) }; Task <bool>[] isInvite = { Invite.HasInviteAsync(Context), configDatabase.AntiInvite.GetAntiInviteAsync(Context.Guild) }; Task <bool>[] isLink = { Link.IsLinkAsync(Context), configDatabase.AntiLink.GetAntiLinkAsync(Context.Guild) }; if (await configDatabase.AutoSurveillance.GetAutoSurveillanceAsync(Context.Guild)) { if (await AutoSurveillanceAsync(Context)) { return; } } if ((await Task.WhenAll(isZalgo)).All(x => x)) { await new Zalgo(Context).WarnAsync(); } else if (((await Task.WhenAll(isSpam)).All(x => x) || (await Task.WhenAll(isSingleSpam)).All(x => x)) && !isCommand) { await new Spam(Context).WarnAsync(); } else if ((await Task.WhenAll(isMassMention)).All(x => x)) { await new MassMention(Context).WarnAsync(); } else if ((await Task.WhenAll(isCaps)).All(x => x)) { await new CAPS(Context).WARNASYNC(); } else if ((await Task.WhenAll(isInvite)).All(x => x)) { await new Invite(Context).RemoveAsync(); } else if ((await Task.WhenAll(isLink)).All(x => x)) { await new Link(Context).RemoveAsync(); } }
public bool HasFlag(CAPS flag) { return((Caps & (uint)flag) == (uint)flag); }