Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Original file line number Diff line number Diff line change
Expand Up @@ -41,17 +41,15 @@ namespace WinterLeaf.Demo.Full.Models.User.CustomObjects.Utilities
{
public class Audio
{
public static pInvokes tst = new pInvokes();

public static void AudioServerPlay2D(string profile)
{
foreach (GameConnection clientid in tst.ClientGroup)
foreach (GameConnection clientid in pInvokes.ClientGroup)
clientid.play2D(profile);
}

public static void AudioServerPlay3D(string profile, TransformF transform)
{
foreach (GameConnection clientid in tst.ClientGroup)
foreach (GameConnection clientid in pInvokes.ClientGroup)
clientid.play3D(profile, transform);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,6 @@ namespace WinterLeaf.Demo.Full.Models.User.GameCode.Client.Audio
{
public class audio
{
private static readonly pInvokes omni = new pInvokes();

public static void initialize()
{
SingletonCreator sc = new SingletonCreator("SFXDescription", "AudioMaster");
Expand Down Expand Up @@ -124,16 +122,16 @@ public static void initialize()

// Volume channel IDs for backwards-compatibility.

omni.iGlobal["$GuiAudioType"] = 1; // Interface.
omni.iGlobal["$SimAudioType"] = 2; // Game.
omni.iGlobal["$MessageAudioType"] = 3; // Notifications.
omni.iGlobal["$MusicAudioType"] = 4; // Music.
pInvokes.iGlobal["$GuiAudioType"] = 1; // Interface.
pInvokes.iGlobal["$SimAudioType"] = 2; // Game.
pInvokes.iGlobal["$MessageAudioType"] = 3; // Notifications.
pInvokes.iGlobal["$MusicAudioType"] = 4; // Music.

omni.sGlobal["$AudioChannels[0]"] = "AudioChannelDefault";
omni.sGlobal["$AudioChannels[" + omni.sGlobal["$GuiAudioType"] + "]"] = "AudioChannelGui";
omni.sGlobal["$AudioChannels[" + omni.sGlobal["$SimAudioType"] + "]"] = "AudioChannelEffects";
omni.sGlobal["$AudioChannels[" + omni.sGlobal["$MessageAudioType"] + "]"] = "AudioChannelMessages";
omni.sGlobal["$AudioChannels[" + omni.sGlobal["$MusicAudioType"] + "]"] = "AudioChannelMusic";
pInvokes.sGlobal["$AudioChannels[0]"] = "AudioChannelDefault";
pInvokes.sGlobal["$AudioChannels[" + pInvokes.sGlobal["$GuiAudioType"] + "]"] = "AudioChannelGui";
pInvokes.sGlobal["$AudioChannels[" + pInvokes.sGlobal["$SimAudioType"] + "]"] = "AudioChannelEffects";
pInvokes.sGlobal["$AudioChannels[" + pInvokes.sGlobal["$MessageAudioType"] + "]"] = "AudioChannelMessages";
pInvokes.sGlobal["$AudioChannels[" + pInvokes.sGlobal["$MusicAudioType"] + "]"] = "AudioChannelMusic";

sc = new SingletonCreator("SimSet", "SFXPausedSet");
sc.Create();
Expand All @@ -143,105 +141,105 @@ public static void sfxStartup()
{
// The console builds should re-detect, by default, so that it plays nicely
// along side a PC build in the same script directory.
if (omni.console.GetVarString("$platform") == "xenon")
if (pInvokes.console.GetVarString("$platform") == "xenon")
{
if (omni.console.GetVarString("$pref::SFX::provider") == "DirectSound" || omni.console.GetVarString("$pref::SFX::provider") == "OpenAL")
omni.console.SetVar("$pref::SFX::provider", "");
if (omni.console.GetVarString("$pref::SFX::provider") == "")
if (pInvokes.console.GetVarString("$pref::SFX::provider") == "DirectSound" || pInvokes.console.GetVarString("$pref::SFX::provider") == "OpenAL")
pInvokes.console.SetVar("$pref::SFX::provider", "");
if (pInvokes.console.GetVarString("$pref::SFX::provider") == "")
{
omni.console.SetVar("$pref::SFX::autoDetect", 1);
omni.console.warn("Xbox360 is auto-detecting available sound providers...");
omni.console.warn(" - You may wish to alter this functionality before release (core/scripts/client/audio.cs)");
pInvokes.console.SetVar("$pref::SFX::autoDetect", 1);
pInvokes.console.warn("Xbox360 is auto-detecting available sound providers...");
pInvokes.console.warn(" - You may wish to alter this functionality before release (core/scripts/client/audio.cs)");
}
}
omni.console.print("sfxStartup...");
pInvokes.console.print("sfxStartup...");
// If we have a provider set, try initialize a device now.

if (omni.sGlobal["$pref::SFX::provider"] == "")
if (pInvokes.sGlobal["$pref::SFX::provider"] == "")
{
if (sfxInit())
return;
else
{
// Force auto-detection.
omni.bGlobal["$pref::SFX::autoDetect"] = true;
pInvokes.bGlobal["$pref::SFX::autoDetect"] = true;
if (sfxAutodetect())
return;
}
}
else
{
omni.bGlobal["$pref::SFX::autoDetect"] = true;
pInvokes.bGlobal["$pref::SFX::autoDetect"] = true;
if (sfxAutodetect())
return;
}
// Failure.
omni.console.error("Failed to initialize device!\n\n");
omni.sGlobal["$pref::SFX::provider"] = "";
omni.sGlobal["$pref::SFX::device"] = "";
pInvokes.console.error("Failed to initialize device!\n\n");
pInvokes.sGlobal["$pref::SFX::provider"] = "";
pInvokes.sGlobal["$pref::SFX::device"] = "";
}

public static bool sfxInit()
{
// This initializes the sound system device from
// the defaults in the $pref::SFX:: globals.
// If already initialized, shut down the current device first.
if (omni.Util.sfxGetDeviceInfo() != "")
if (pInvokes.Util.sfxGetDeviceInfo() != "")
sfxShutdown();
// Start it up!

int maxBuffers = omni.bGlobal["$pref::SFX::useHardware"] ? -1 : omni.iGlobal["$pref::SFX::maxSoftwareBuffers"];
if (!omni.Util.sfxCreateDevice(omni.sGlobal["$pref::SFX::provider"], omni.sGlobal["$pref::SFX::device"], omni.bGlobal["$pref::SFX::useHardware"], maxBuffers))
int maxBuffers = pInvokes.bGlobal["$pref::SFX::useHardware"] ? -1 : pInvokes.iGlobal["$pref::SFX::maxSoftwareBuffers"];
if (!pInvokes.Util.sfxCreateDevice(pInvokes.sGlobal["$pref::SFX::provider"], pInvokes.sGlobal["$pref::SFX::device"], pInvokes.bGlobal["$pref::SFX::useHardware"], maxBuffers))
return false;

// This returns a tab seperated string with
// the initialized system info.
string info = omni.Util.sfxGetDeviceInfo();
omni.sGlobal["$pref::SFX::provider"] = omni.Util.getField(info, 0);
omni.sGlobal["$pref::SFX::device"] = omni.Util.getField(info, 1);
omni.sGlobal["$pref::SFX::useHardware"] = omni.Util.getField(info, 2);
string info = pInvokes.Util.sfxGetDeviceInfo();
pInvokes.sGlobal["$pref::SFX::provider"] = pInvokes.Util.getField(info, 0);
pInvokes.sGlobal["$pref::SFX::device"] = pInvokes.Util.getField(info, 1);
pInvokes.sGlobal["$pref::SFX::useHardware"] = pInvokes.Util.getField(info, 2);

string useHardware = omni.bGlobal["$pref::SFX::useHardware"] ? "Yes" : "No";
maxBuffers = omni.Util.getField(info, 3).AsInt();
string useHardware = pInvokes.bGlobal["$pref::SFX::useHardware"] ? "Yes" : "No";
maxBuffers = pInvokes.Util.getField(info, 3).AsInt();

omni.console.print(" Provider: " + omni.console.GetVarString("$pref::SFX::provider"));
omni.console.print(" Device: " + omni.console.GetVarString("$pref::SFX::device"));
omni.console.print(" Hardware: " + useHardware);
omni.console.print(" Buffers: " + maxBuffers.AsString());
pInvokes.console.print(" Provider: " + pInvokes.console.GetVarString("$pref::SFX::provider"));
pInvokes.console.print(" Device: " + pInvokes.console.GetVarString("$pref::SFX::device"));
pInvokes.console.print(" Hardware: " + useHardware);
pInvokes.console.print(" Buffers: " + maxBuffers.AsString());

if (omni.Util.isDefined("$pref::SFX::distanceModel") && omni.sGlobal["$pref::SFX::distanceModel"] != "")
if (pInvokes.Util.isDefined("$pref::SFX::distanceModel") && pInvokes.sGlobal["$pref::SFX::distanceModel"] != "")
{
TypeSFXDistanceModel t = omni.sGlobal["$pref::SFX::distanceModel"];
omni.Util.sfxSetDistanceModel(t);
TypeSFXDistanceModel t = pInvokes.sGlobal["$pref::SFX::distanceModel"];
pInvokes.Util.sfxSetDistanceModel(t);
}
if (omni.Util.isDefined("$pref::SFX::dopplerFactor"))
omni.Util.sfxSetDopplerFactor(omni.fGlobal["$pref::SFX::dopplerFactor"]);
if (pInvokes.Util.isDefined("$pref::SFX::dopplerFactor"))
pInvokes.Util.sfxSetDopplerFactor(pInvokes.fGlobal["$pref::SFX::dopplerFactor"]);

if (omni.Util.isDefined("$pref::SFX::rolloffFactor") && omni.sGlobal["$pref::SFX::rolloffFactor"] != "")
omni.Util.sfxSetRolloffFactor(omni.fGlobal["$pref::SFX::rolloffFactor"]);
if (pInvokes.Util.isDefined("$pref::SFX::rolloffFactor") && pInvokes.sGlobal["$pref::SFX::rolloffFactor"] != "")
pInvokes.Util.sfxSetRolloffFactor(pInvokes.fGlobal["$pref::SFX::rolloffFactor"]);
// Restore master volume.

sfxSetMasterVolume(omni.fGlobal["$pref::SFX::masterVolume"]);
sfxSetMasterVolume(pInvokes.fGlobal["$pref::SFX::masterVolume"]);

// Restore channel volumes.
for (int channel = 0; channel <= 8; channel++)
sfxSetChannelVolume(((SimSet) channel), omni.fGlobal["$pref::SFX::channelVolume[" + channel.AsString() + "]"]);
sfxSetChannelVolume(((SimSet) channel), pInvokes.fGlobal["$pref::SFX::channelVolume[" + channel.AsString() + "]"]);
return true;
}

// Destroys the current sound system device.
public static void sfxShutdown()
{
omni.fGlobal["$pref::SFX::masterVolume"] = sfxGetMasterVolume();
pInvokes.fGlobal["$pref::SFX::masterVolume"] = sfxGetMasterVolume();

for (int channel = 0; channel <= 8; channel++)
omni.sGlobal["$pref::SFX::channelVolume[" + channel.AsString() + "]"] = sfxGetChannelVolume(channel);
pInvokes.sGlobal["$pref::SFX::channelVolume[" + channel.AsString() + "]"] = sfxGetChannelVolume(channel);

// We're assuming here that a null info
// string means that no device is loaded.
if (omni.Util.sfxGetDeviceInfo() == "")
if (pInvokes.Util.sfxGetDeviceInfo() == "")
return;
omni.Util.sfxDeleteDevice();
pInvokes.Util.sfxDeleteDevice();
}

// Determines which of the two SFX providers is preferable.
Expand Down Expand Up @@ -272,17 +270,17 @@ public static string sfxCompareProvider(string providerA, string providerB)
public static bool sfxAutodetect()
{
// Get all the available devices.
string devices = omni.Util.sfxGetAvailableDevices();
string devices = pInvokes.Util.sfxGetAvailableDevices();
// Collect and sort the devices by preferentiality.

int count = omni.Util.getRecordCount(devices);
int count = pInvokes.Util.getRecordCount(devices);

ArrayObject deviceTrySequence = new ObjectCreator("ArrayObject").Create().AsString();

for (int i = 0; i < count; i++)
{
string info = omni.Util.getRecord(devices, i);
string provider = omni.Util.getField(info, 0);
string info = pInvokes.Util.getRecord(devices, i);
string provider = pInvokes.Util.getField(info, 0);
deviceTrySequence.push_back(provider, info);
}
deviceTrySequence.sortfk("sfxCompareProvider");
Expand All @@ -293,31 +291,31 @@ public static bool sfxAutodetect()
{
string provider = deviceTrySequence.getKey(i);
string info = deviceTrySequence.getValue(i);
omni.sGlobal["$pref::SFX::provider"] = provider;
omni.sGlobal["$pref::SFX::device"] = omni.Util.getField(info, 1);
omni.sGlobal["$pref::SFX::useHardware"] = omni.Util.getField(info, 2);
pInvokes.sGlobal["$pref::SFX::provider"] = provider;
pInvokes.sGlobal["$pref::SFX::device"] = pInvokes.Util.getField(info, 1);
pInvokes.sGlobal["$pref::SFX::useHardware"] = pInvokes.Util.getField(info, 2);
// By default we've decided to avoid hardware devices as
// they are buggy and prone to problems.
omni.bGlobal["$pref::SFX::useHardware"] = false;
pInvokes.bGlobal["$pref::SFX::useHardware"] = false;
if (!sfxInit())
continue;
omni.bGlobal["$pref::SFX::autoDetect"] = false;
pInvokes.bGlobal["$pref::SFX::autoDetect"] = false;
deviceTrySequence.delete();
return true;
}
// Found no suitable device.
omni.console.error("sfxAutodetect - Could not initialize a valid SFX device.");
omni.sGlobal["$pref::SFX::provider"] = "";
omni.sGlobal["$pref::SFX::device"] = "";
omni.sGlobal["$pref::SFX::useHardware"] = "";
pInvokes.console.error("sfxAutodetect - Could not initialize a valid SFX device.");
pInvokes.sGlobal["$pref::SFX::provider"] = "";
pInvokes.sGlobal["$pref::SFX::device"] = "";
pInvokes.sGlobal["$pref::SFX::useHardware"] = "";
deviceTrySequence.delete();
return false;
}

[ConsoleInteraction(true)]
public static SFXSource sfxOldChannelToGroup(string channel)
{
return omni.sGlobal["$AudioChannels[" + channel + "]"];
return pInvokes.sGlobal["$AudioChannels[" + channel + "]"];
}

[ConsoleInteraction(true)]
Expand All @@ -326,9 +324,9 @@ public static string sfxGroupToOldChannel(string group)
string id = group.getID().AsString();
for (int i = 0;; i++)
{
if (!omni.isGlobal["$AudioChannels[" + i.AsString() + "]"])
if (!pInvokes.isGlobal["$AudioChannels[" + i.AsString() + "]"])
return "-1";
else if (omni.sGlobal["$AudioChannels[" + i.AsString() + "]"] == id)
else if (pInvokes.sGlobal["$AudioChannels[" + i.AsString() + "]"] == id)
return i.AsString();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,6 @@ namespace WinterLeaf.Demo.Full.Models.User.GameCode.Client.Audio
// before SFXProfile's (the sound itself) when creating new ones
public class audioData
{
private static readonly pInvokes omni = new pInvokes();

public static void initialize()
{
SingletonCreator sc = new SingletonCreator("SFXDescription", "BulletFireDesc : AudioEffect");
Expand All @@ -62,8 +60,8 @@ public static void initialize()
sc["pitch"] = 1.4;
sc.Create();

if (omni.Util.isFile("scripts/client/audioData.cs"))
omni.Util.exec("scripts/client/audioData.cs", false, false);
if (pInvokes.Util.isFile("scripts/client/audioData.cs"))
pInvokes.Util.exec("scripts/client/audioData.cs", false, false);
}
}
}
Loading