Compare commits
3 Commits
97e759f57d
...
a284edd130
Author | SHA1 | Date | |
---|---|---|---|
a284edd130 | |||
b57959b4bf | |||
724cb10bc1 |
@@ -6,6 +6,7 @@ using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.TextCore.LowLevel;
|
||||
using UnityEngine.TextCore.Text;
|
||||
using Logger = Cryville.Common.Logging.Logger;
|
||||
|
||||
namespace Cryville.Common.Unity.UI {
|
||||
[RequireComponent(typeof(TextMeshProUGUI))]
|
||||
@@ -29,12 +30,14 @@ namespace Cryville.Common.Unity.UI {
|
||||
else if (DefaultShader) ifont.material.shader = DefaultShader;
|
||||
if (_font == null) {
|
||||
_font = ifont;
|
||||
Logger.Log("main", 1, "UI", "Using main font: {0}", typeface.FullName);
|
||||
if (MaxFallbackCount <= 0) break;
|
||||
}
|
||||
else {
|
||||
if (_font.fallbackFontAssetTable == null)
|
||||
_font.fallbackFontAssetTable = new List<FontAsset>();
|
||||
_font.fallbackFontAssetTable.Add(ifont);
|
||||
Logger.Log("main", 1, "UI", "Using fallback font #{0}: {1}", _font.fallbackFontAssetTable.Count, typeface.FullName);
|
||||
if (_font.fallbackFontAssetTable.Count >= MaxFallbackCount) break;
|
||||
}
|
||||
}
|
||||
|
@@ -268,12 +268,12 @@ namespace Cryville.Crtr {
|
||||
"\nStates: c{0} / b{1}",
|
||||
cbus.ActiveStateCount, bbus.ActiveStateCount
|
||||
);
|
||||
var aTime = Game.AudioClient.Position;
|
||||
var aTime = Game.AudioClient.Position - atime0;
|
||||
var iTime = inputProxy.GetTimestampAverage();
|
||||
statusbuf.AppendFormat(
|
||||
"\nSTime: {0:G9}s {5} {6}\nATime: {1:G9}s ({3:+0.0ms;-0.0ms;0}) {5} {6}\nITime: {2:G9}s ({4:+0.0ms;-0.0ms;0}) {5} {7}",
|
||||
cbus.Time, aTime, iTime,
|
||||
(aTime - atime0 - cbus.Time) * 1e3,
|
||||
(aTime - cbus.Time) * 1e3,
|
||||
(iTime - cbus.Time) * 1e3,
|
||||
forceSyncFrames != 0 ? "(force sync)" : "",
|
||||
paused ? "(paused)" : "",
|
||||
@@ -529,7 +529,7 @@ namespace Cryville.Crtr {
|
||||
logs.text = "";
|
||||
}
|
||||
Game.AudioSequencer.Playing = true;
|
||||
atime0 = Game.AudioClient.Position - startOffset;
|
||||
atime0 = Game.AudioClient.BufferPosition - startOffset;
|
||||
inputProxy.SyncTime(cbus.Time);
|
||||
inputProxy.Activate();
|
||||
}
|
||||
|
@@ -1,4 +1,4 @@
|
||||
using Cryville.Audio.Source;
|
||||
using Cryville.Audio.Source.Libav;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
|
||||
|
@@ -9,11 +9,14 @@ using Cryville.Input;
|
||||
using Cryville.Input.Unity;
|
||||
#if UNITY_ANDROID && !UNITY_EDITOR
|
||||
using Cryville.Input.Unity.Android;
|
||||
using Cryville.Interop.Java;
|
||||
using Cryville.Interop.Java.Unity;
|
||||
#endif
|
||||
using FFmpeg.AutoGen;
|
||||
using Ionic.Zip;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using UnityEngine;
|
||||
using Logger = Cryville.Common.Logging.Logger;
|
||||
@@ -24,6 +27,7 @@ namespace Cryville.Crtr {
|
||||
public static string GameDataPath { get; private set; }
|
||||
public static string UnityDataPath { get; private set; }
|
||||
public static IAudioDeviceManager AudioManager;
|
||||
public static IAudioDevice AudioDevice;
|
||||
public static AudioClient AudioClient;
|
||||
public static SimpleSequencerSource AudioSequencer;
|
||||
public static SimpleSequencerSession AudioSession;
|
||||
@@ -50,11 +54,21 @@ namespace Cryville.Crtr {
|
||||
Application.logMessageReceivedThreaded += OnLog;
|
||||
Logger.Create("main", MainLogger);
|
||||
|
||||
Logger.Log("main", 1, "Game", "Game Version: {0}", Application.version);
|
||||
Logger.Log("main", 1, "Game", "Unity Version: {0}", Application.unityVersion);
|
||||
Logger.Log("main", 1, "Game", "Operating System: {0}", Environment.OSVersion);
|
||||
Logger.Log("main", 1, "Game", "Platform: Build = {0}, Unity = {1}", PlatformConfig.Name, Application.platform);
|
||||
Logger.Log("main", 1, "Game", "Culture: {0}, UI = {1}, System = {2}, Unity = {3}", CultureInfo.CurrentCulture, CultureInfo.CurrentUICulture, CultureInfo.InstalledUICulture, Application.systemLanguage);
|
||||
|
||||
if (_bcflag) Logger.Log("main", 2, "Game", "Reset all settings");
|
||||
|
||||
GameDataPath = Settings.Default.GameDataPath;
|
||||
UnityDataPath = Application.dataPath;
|
||||
|
||||
#if UNITY_ANDROID && !UNITY_EDITOR
|
||||
JavaVMManager.Register(JniInvoke.Instance);
|
||||
#endif
|
||||
|
||||
unity::Input.simulateMouseWithTouches = false;
|
||||
var emptyObjectArray = new object[0];
|
||||
#if UNITY_ANDROID && !UNITY_EDITOR
|
||||
@@ -83,6 +97,16 @@ namespace Cryville.Crtr {
|
||||
ffmpeg.RootPath = "";
|
||||
#else
|
||||
#error No FFmpeg search path.
|
||||
#endif
|
||||
|
||||
#if UNITY_EDITOR_WIN || UNITY_STANDALONE_WIN
|
||||
EngineBuilder.Engines.Add(typeof(Audio.Wasapi.MMDeviceEnumeratorWrapper));
|
||||
EngineBuilder.Engines.Add(typeof(Audio.WaveformAudio.WaveDeviceManager));
|
||||
#elif UNITY_ANDROID
|
||||
EngineBuilder.Engines.Add(typeof(Audio.AAudio.AAudioManager));
|
||||
EngineBuilder.Engines.Add(typeof(Audio.OpenSLES.Engine));
|
||||
#else
|
||||
#error No audio engine defined.
|
||||
#endif
|
||||
while (true) {
|
||||
try {
|
||||
@@ -93,8 +117,13 @@ namespace Cryville.Crtr {
|
||||
}
|
||||
else {
|
||||
Logger.Log("main", 1, "Audio", "Using audio API: {0}", AudioManager.GetType().Namespace);
|
||||
AudioClient = AudioManager.GetDefaultDevice(DataFlow.Out).Connect();
|
||||
AudioClient.Init(AudioClient.DefaultFormat);
|
||||
AudioDevice = AudioManager.GetDefaultDevice(DataFlow.Out);
|
||||
AudioClient = AudioDevice.Connect(AudioDevice.DefaultFormat, AudioDevice.MinimumBufferSize + AudioDevice.BurstSize);
|
||||
Logger.Log(
|
||||
"main", 1, "Audio",
|
||||
"Audio Output = {{ Name = \"{0}\", BurstSize = {1}, Format = {2}, BufferSize = {3} }}",
|
||||
AudioDevice.Name, AudioDevice.BurstSize, AudioClient.Format, AudioClient.BufferSize
|
||||
);
|
||||
AudioClient.Source = AudioSequencer = new SimpleSequencerSource();
|
||||
AudioSession = AudioSequencer.NewSession();
|
||||
AudioSequencer.Playing = true;
|
||||
@@ -141,6 +170,7 @@ namespace Cryville.Crtr {
|
||||
try {
|
||||
AudioClient.Dispose();
|
||||
AudioSequencer.Dispose();
|
||||
AudioDevice.Dispose();
|
||||
AudioManager.Dispose();
|
||||
}
|
||||
catch (Exception ex) {
|
||||
|
@@ -4,6 +4,7 @@
|
||||
"references": [
|
||||
"GUID:0bb40a8a1701f13479c68e3659a99bfd",
|
||||
"GUID:ae5eee924eae80345b704d2b7de05cc0",
|
||||
"GUID:d5131b108ee6dd54ca2648778e3198bf",
|
||||
"GUID:5686e5ee69d0e084c843d61c240d7fdb",
|
||||
"GUID:13ba8ce62aa80c74598530029cb2d649",
|
||||
"GUID:2922aa74af3b2854e81b8a8b286d8206",
|
||||
|
BIN
Assets/Plugins/Android/Cryville.Audio.AAudio.dll
Normal file
BIN
Assets/Plugins/Android/Cryville.Audio.AAudio.dll
Normal file
Binary file not shown.
67
Assets/Plugins/Android/Cryville.Audio.AAudio.dll.meta
Normal file
67
Assets/Plugins/Android/Cryville.Audio.AAudio.dll.meta
Normal file
@@ -0,0 +1,67 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ad9369519dc90f543be881c573ced066
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
: Any
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
Exclude Android: 0
|
||||
Exclude Editor: 1
|
||||
Exclude Linux64: 1
|
||||
Exclude OSXUniversal: 1
|
||||
Exclude Win: 1
|
||||
Exclude Win64: 1
|
||||
- first:
|
||||
Android: Android
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 0
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
DefaultValueInitialized: true
|
||||
- first:
|
||||
Standalone: Linux64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: Win
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: Win64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
182
Assets/Plugins/Android/Cryville.Audio.AAudio.xml
Normal file
182
Assets/Plugins/Android/Cryville.Audio.AAudio.xml
Normal file
@@ -0,0 +1,182 @@
|
||||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>Cryville.Audio.AAudio</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:Cryville.Audio.AAudio.AAudioManager">
|
||||
<summary>
|
||||
An <see cref="T:Cryville.Audio.IAudioDeviceManager" /> that interacts with AAudio.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.AAudio.AAudioManager.#ctor">
|
||||
<summary>
|
||||
Creates an instance of the <see cref="T:Cryville.Audio.AAudio.AAudioManager" /> class.
|
||||
</summary>
|
||||
<exception cref="T:System.InvalidOperationException">No Java VM is registered.</exception>
|
||||
<exception cref="T:System.PlatformNotSupportedException">AAudio is not supported on the current platform.</exception>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.AAudio.AAudioManager.Finalize">
|
||||
<summary>
|
||||
Releases all the unmanaged resources used by this instance.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.AAudio.AAudioManager.Dispose">
|
||||
<summary>
|
||||
Releases all the resources used by this instance.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.AAudio.AAudioManager.Dispose(System.Boolean)">
|
||||
<summary>
|
||||
Releases all the resources used by this instance.
|
||||
</summary>
|
||||
<param name="disposing">Whether to release managed resources.</param>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.AAudio.AAudioManager.GetDefaultDevice(Cryville.Audio.DataFlow)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.AAudio.AAudioManager.GetDevices(Cryville.Audio.DataFlow)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.AAudio.AAudioStream">
|
||||
<summary>
|
||||
An <see cref="T:Cryville.Audio.AudioClient" /> that interacts with AAudio.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.AAudio.AAudioStream.Dispose(System.Boolean)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.AAudio.AAudioStream.Device">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.AAudio.AAudioStream.Format">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.AAudio.AAudioStream.BufferSize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.AAudio.AAudioStream.MaximumLatency">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.AAudio.AAudioStream.Position">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.AAudio.AAudioStream.BufferPosition">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.AAudio.AAudioStream.Start">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.AAudio.AAudioStream.Pause">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.AAudio.AAudioStreamBuilder">
|
||||
<summary>
|
||||
An <see cref="T:Cryville.Audio.IAudioDevice" /> that interacts with AAudio.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.AAudio.AAudioStreamBuilder.Finalize">
|
||||
<summary>
|
||||
Releases all the unmanaged resources used by this instance.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.AAudio.AAudioStreamBuilder.Dispose">
|
||||
<summary>
|
||||
Releases all the resources used by this instance.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.AAudio.AAudioStreamBuilder.Dispose(System.Boolean)">
|
||||
<summary>
|
||||
Releases all the resources used by this instance.
|
||||
</summary>
|
||||
<param name="disposing">Whether to release managed resources.</param>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.AAudio.AAudioStreamBuilder.Name">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.AAudio.AAudioStreamBuilder.DataFlow">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.AAudio.AAudioStreamBuilder.BurstSize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.AAudio.AAudioStreamBuilder.MinimumBufferSize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.AAudio.AAudioStreamBuilder.DefaultBufferSize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.AAudio.AAudioStreamBuilder.DefaultFormat">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.AAudio.AAudioStreamBuilder.IsFormatSupported(Cryville.Audio.WaveFormat,System.Nullable{Cryville.Audio.WaveFormat}@,Cryville.Audio.AudioShareMode)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.AAudio.AAudioStreamBuilder.Connect(Cryville.Audio.WaveFormat,System.Int32,Cryville.Audio.AudioShareMode)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStreamBuilder_setAllowedCapturePolicy(System.IntPtr,Android.AAudio.Native.aaudio_allowed_capture_policy_t)">
|
||||
<remarks>Available since API level 29.</remarks>
|
||||
</member>
|
||||
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStreamBuilder_setAttributionTag(System.IntPtr,System.String)">
|
||||
<remarks>Available since API level 31.</remarks>
|
||||
</member>
|
||||
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStreamBuilder_setChannelMask(System.IntPtr,Android.AAudio.Native.aaudio_channel_mask_t)">
|
||||
<remarks>Available since API level 32.</remarks>
|
||||
</member>
|
||||
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStreamBuilder_setContentType(System.IntPtr,Android.AAudio.Native.aaudio_content_type_t)">
|
||||
<remarks>Available since API level 28.</remarks>
|
||||
</member>
|
||||
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStreamBuilder_setInputPreset(System.IntPtr,Android.AAudio.Native.aaudio_input_preset_t)">
|
||||
<remarks>Available since API level 28.</remarks>
|
||||
</member>
|
||||
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStreamBuilder_setIsContentSpatialized(System.IntPtr,System.Boolean)">
|
||||
<remarks>Available since API level 32.</remarks>
|
||||
</member>
|
||||
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStreamBuilder_setPackageName(System.IntPtr,System.String)">
|
||||
<remarks>Available since API level 31.</remarks>
|
||||
</member>
|
||||
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStreamBuilder_setPrivacySensitive(System.IntPtr,System.Boolean)">
|
||||
<remarks>Available since API level 30.</remarks>
|
||||
</member>
|
||||
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStreamBuilder_setSessionId(System.IntPtr,Android.AAudio.Native.aaudio_session_id_t)">
|
||||
<remarks>Available since API level 28.</remarks>
|
||||
</member>
|
||||
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStreamBuilder_setSpatializationBehavior(System.IntPtr,Android.AAudio.Native.aaudio_spatialization_behavior_t)">
|
||||
<remarks>Available since API level 32.</remarks>
|
||||
</member>
|
||||
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStreamBuilder_setUsage(System.IntPtr,Android.AAudio.Native.aaudio_usage_t)">
|
||||
<remarks>Available since API level 28.</remarks>
|
||||
</member>
|
||||
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStream_getAllowedCapturePolicy(System.IntPtr)">
|
||||
<remarks>Available since API level 29.</remarks>
|
||||
</member>
|
||||
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStream_getChannelMask(System.IntPtr)">
|
||||
<remarks>Available since API level 32.</remarks>
|
||||
</member>
|
||||
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStream_getContentType(System.IntPtr)">
|
||||
<remarks>Available since API level 28.</remarks>
|
||||
</member>
|
||||
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStream_getInputPreset(System.IntPtr)">
|
||||
<remarks>Available since API level 28.</remarks>
|
||||
</member>
|
||||
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStream_getSessionId(System.IntPtr)">
|
||||
<remarks>Available since API level 28.</remarks>
|
||||
</member>
|
||||
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStream_getSpatializationBehavior(System.IntPtr)">
|
||||
<remarks>Available since API level 32.</remarks>
|
||||
</member>
|
||||
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStream_getUsage(System.IntPtr)">
|
||||
<remarks>Available since API level 28.</remarks>
|
||||
</member>
|
||||
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStream_isContentSpatialized(System.IntPtr)">
|
||||
<remarks>Available since API level 32.</remarks>
|
||||
</member>
|
||||
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStream_isPrivacySensitive(System.IntPtr)">
|
||||
<remarks>Available since API level 30.</remarks>
|
||||
</member>
|
||||
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStream_release(System.IntPtr)">
|
||||
<remarks>Available since API level 30.</remarks>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
7
Assets/Plugins/Android/Cryville.Audio.AAudio.xml.meta
Normal file
7
Assets/Plugins/Android/Cryville.Audio.AAudio.xml.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4201f1cb0b6746a41bfa24ff30b41daa
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
BIN
Assets/Plugins/Android/Cryville.Audio.OpenSLES.dll
Normal file
BIN
Assets/Plugins/Android/Cryville.Audio.OpenSLES.dll
Normal file
Binary file not shown.
67
Assets/Plugins/Android/Cryville.Audio.OpenSLES.dll.meta
Normal file
67
Assets/Plugins/Android/Cryville.Audio.OpenSLES.dll.meta
Normal file
@@ -0,0 +1,67 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e110dd2d53d9f8944ae090166f4bc17e
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
: Any
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
Exclude Android: 0
|
||||
Exclude Editor: 1
|
||||
Exclude Linux64: 1
|
||||
Exclude OSXUniversal: 1
|
||||
Exclude Win: 1
|
||||
Exclude Win64: 1
|
||||
- first:
|
||||
Android: Android
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 0
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
DefaultValueInitialized: true
|
||||
- first:
|
||||
Standalone: Linux64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: Win
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: Win64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
142
Assets/Plugins/Android/Cryville.Audio.OpenSLES.xml
Normal file
142
Assets/Plugins/Android/Cryville.Audio.OpenSLES.xml
Normal file
@@ -0,0 +1,142 @@
|
||||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>Cryville.Audio.OpenSLES</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:Cryville.Audio.OpenSLES.Engine">
|
||||
<summary>
|
||||
An <see cref="T:Cryville.Audio.IAudioDeviceManager" /> that interacts with OpenSL ES.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSLES.Engine.#ctor">
|
||||
<summary>
|
||||
Creates an instance of the <see cref="T:Cryville.Audio.OpenSLES.Engine" /> class.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSLES.Engine.Finalize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSLES.Engine.Dispose">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSLES.Engine.Dispose(System.Boolean)">
|
||||
<summary>
|
||||
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
|
||||
</summary>
|
||||
<param name="disposing">Whether the method is being called by user.</param>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSLES.Engine.GetDefaultDevice(Cryville.Audio.DataFlow)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSLES.Engine.GetDevices(Cryville.Audio.DataFlow)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.OpenSLES.OutputClient">
|
||||
<summary>
|
||||
An <see cref="T:Cryville.Audio.AudioClient" /> that interacts with OpenSL ES.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSLES.OutputClient.Finalize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSLES.OutputClient.Dispose(System.Boolean)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.OpenSLES.OutputClient.Device">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.OpenSLES.OutputClient.Format">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.OpenSLES.OutputClient.BufferSize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.OpenSLES.OutputClient.MaximumLatency">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.OpenSLES.OutputClient.Position">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.OpenSLES.OutputClient.BufferPosition">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSLES.OutputClient.Pause">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSLES.OutputClient.Start">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.OpenSLES.OutputDevice">
|
||||
<summary>
|
||||
An <see cref="T:Cryville.Audio.IAudioDevice" /> that interacts with OpenSL ES.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSLES.OutputDevice.Finalize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSLES.OutputDevice.Dispose">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSLES.OutputDevice.Dispose(System.Boolean)">
|
||||
<summary>
|
||||
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
|
||||
</summary>
|
||||
<param name="disposing">Whether the method is being called by user.</param>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.OpenSLES.OutputDevice.Name">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.OpenSLES.OutputDevice.DataFlow">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.OpenSLES.OutputDevice.BurstSize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.OpenSLES.OutputDevice.MinimumBufferSize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.OpenSLES.OutputDevice.DefaultBufferSize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.OpenSLES.OutputDevice.DefaultFormat">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSLES.OutputDevice.IsFormatSupported(Cryville.Audio.WaveFormat,System.Nullable{Cryville.Audio.WaveFormat}@,Cryville.Audio.AudioShareMode)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSLES.OutputDevice.Connect(Cryville.Audio.WaveFormat,System.Int32,Cryville.Audio.AudioShareMode)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.OpenSLES.OpenSLException">
|
||||
<summary>
|
||||
Exception occurring in OpenSL ES.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSLES.OpenSLException.#ctor">
|
||||
<summary>
|
||||
Creates an instance of the <see cref="T:Cryville.Audio.OpenSLES.OpenSLException" /> class.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSLES.OpenSLException.#ctor(System.String)">
|
||||
<summary>
|
||||
Creates an instance of the <see cref="T:Cryville.Audio.OpenSLES.OpenSLException" /> class.
|
||||
</summary>
|
||||
<param name="message">The error message that explains the reason for the exception.</param>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSLES.OpenSLException.#ctor(System.String,System.Exception)">
|
||||
<summary>
|
||||
Creates an instance of the <see cref="T:Cryville.Audio.OpenSLES.OpenSLException" /> class.
|
||||
</summary>
|
||||
<param name="message">The error message that explains the reason for the exception.</param>
|
||||
<param name="innerException">The exception that is the cause of the current exception.</param>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSLES.OpenSLException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
|
||||
<summary>
|
||||
Creates an instance of the <see cref="T:Cryville.Audio.OpenSLES.OpenSLException" /> class with serialized data.
|
||||
</summary>
|
||||
<param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo" /> that holds the serialized object data about the exception being thrown.</param>
|
||||
<param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext" /> that contains contextual information about the source or destination.</param>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
7
Assets/Plugins/Android/Cryville.Audio.OpenSLES.xml.meta
Normal file
7
Assets/Plugins/Android/Cryville.Audio.OpenSLES.xml.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e5664850b7f66394f9d895d37af581dd
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
8
Assets/Plugins/Android/Cryville.Interop.Java.Unity.meta
Normal file
8
Assets/Plugins/Android/Cryville.Interop.Java.Unity.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: de02e2f5891544f4f94afa64472e90c7
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"name": "Cryville.Interop.Java.Unity",
|
||||
"rootNamespace": "Cryville.Interop.Java.Unity",
|
||||
"references": [],
|
||||
"includePlatforms": [
|
||||
"Android"
|
||||
],
|
||||
"excludePlatforms": [],
|
||||
"allowUnsafeCode": true,
|
||||
"overrideReferences": false,
|
||||
"precompiledReferences": [
|
||||
""
|
||||
],
|
||||
"autoReferenced": true,
|
||||
"defineConstraints": [],
|
||||
"versionDefines": [],
|
||||
"noEngineReferences": false
|
||||
}
|
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d5131b108ee6dd54ca2648778e3198bf
|
||||
AssemblyDefinitionImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
250
Assets/Plugins/Android/Cryville.Interop.Java.Unity/JniEnv.cs
Normal file
250
Assets/Plugins/Android/Cryville.Interop.Java.Unity/JniEnv.cs
Normal file
@@ -0,0 +1,250 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using UnityEngine;
|
||||
using UnsafeIL;
|
||||
|
||||
namespace Cryville.Interop.Java.Unity {
|
||||
/// <summary>
|
||||
/// The Unity Java native interface.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// <para>Methods not implemented:</para>
|
||||
/// <list type="bullet">
|
||||
/// <item><see cref="CallNonvirtualObjectMethod(IntPtr, IntPtr, IntPtr, JniValue[])" /> family</item>
|
||||
/// <item><see cref="DefineClass(string, IntPtr, IntPtr, int)" /></item>
|
||||
/// <item><see cref="GetDirectBufferAddress(IntPtr)" />, <see cref="GetDirectBufferCapacity(IntPtr)" />, and <see cref="NewDirectByteBuffer(void*, long)" /></item>
|
||||
/// <item><see cref="GetObjectRefType(IntPtr)" /></item>
|
||||
/// <item><see cref="GetPrimitiveArrayCritical(IntPtr, out bool)" /> and <see cref="ReleasePrimitiveArrayCritical(IntPtr, IntPtr, JniReleaseArrayElementsMode)" /></item>
|
||||
/// <item><see cref="GetStringUTFChars(IntPtr, out bool)" />, <see cref="GetStringUTFRegion(IntPtr, int, int, byte*)" />, <see cref="NewStringUTF(byte*)" />, and <see cref="ReleaseStringUTFChars(char*, byte*)" /></item>
|
||||
/// <item><see cref="MonitorEnter(IntPtr)" /> and <see cref="MonitorExit(IntPtr)" /></item>
|
||||
/// <item><see cref="RegisterNatives(IntPtr, JniNativeMethod[])" /> and <see cref="UnregisterNatives(IntPtr)" /></item>
|
||||
/// </list>
|
||||
/// <para>Although <see cref="AndroidJNI.GetStringUTFChars(IntPtr)" /> and <see cref="AndroidJNI.NewStringUTF(string)" /> functions are exposed by Unity, they are just identical to <see cref="AndroidJNI.GetStringChars(IntPtr)" /> and <see cref="AndroidJNI.NewString(string)" />, and potentially slower. Also, they do not expose the internal <see cref="byte" /> pointer, and thus not included in this interface.</para>
|
||||
/// <para><see cref="GetStringCritical(IntPtr, out bool)" /> and <see cref="ReleaseStringCritical(IntPtr, char*)" /> are identical to <see cref="GetStringChars(IntPtr, out bool)" /> and <see cref="ReleaseStringChars(IntPtr, char*)" /> respectively.</para>
|
||||
/// </remarks>
|
||||
public unsafe class JniEnv : IJniEnv {
|
||||
static JniEnv m_instance;
|
||||
public static JniEnv Instance {
|
||||
get {
|
||||
if (m_instance == null)
|
||||
m_instance = new JniEnv();
|
||||
return m_instance;
|
||||
}
|
||||
}
|
||||
JniEnv() { }
|
||||
public IntPtr AllocObject(IntPtr clazz) => AndroidJNI.AllocObject(clazz);
|
||||
public bool CallBooleanMethod(IntPtr obj, IntPtr methodID, JniValue[] args) => AndroidJNI.CallBooleanMethod(obj, methodID, Unsafe.As<jvalue[]>(args));
|
||||
public sbyte CallByteMethod(IntPtr obj, IntPtr methodID, JniValue[] args) => AndroidJNI.CallSByteMethod(obj, methodID, Unsafe.As<jvalue[]>(args));
|
||||
public char CallCharMethod(IntPtr obj, IntPtr methodID, JniValue[] args) => AndroidJNI.CallCharMethod(obj, methodID, Unsafe.As<jvalue[]>(args));
|
||||
public double CallDoubleMethod(IntPtr obj, IntPtr methodID, JniValue[] args) => AndroidJNI.CallDoubleMethod(obj, methodID, Unsafe.As<jvalue[]>(args));
|
||||
public float CallFloatMethod(IntPtr obj, IntPtr methodID, JniValue[] args) => AndroidJNI.CallFloatMethod(obj, methodID, Unsafe.As<jvalue[]>(args));
|
||||
public int CallIntMethod(IntPtr obj, IntPtr methodID, JniValue[] args) => AndroidJNI.CallIntMethod(obj, methodID, Unsafe.As<jvalue[]>(args));
|
||||
public long CallLongMethod(IntPtr obj, IntPtr methodID, JniValue[] args) => AndroidJNI.CallLongMethod(obj, methodID, Unsafe.As<jvalue[]>(args));
|
||||
public bool CallNonvirtualBooleanMethod(IntPtr obj, IntPtr clazz, IntPtr methodID, JniValue[] args) => throw new NotImplementedException();
|
||||
public sbyte CallNonvirtualByteMethod(IntPtr obj, IntPtr clazz, IntPtr methodID, JniValue[] args) => throw new NotImplementedException();
|
||||
public char CallNonvirtualCharMethod(IntPtr obj, IntPtr clazz, IntPtr methodID, JniValue[] args) => throw new NotImplementedException();
|
||||
public double CallNonvirtualDoubleMethod(IntPtr obj, IntPtr clazz, IntPtr methodID, JniValue[] args) => throw new NotImplementedException();
|
||||
public float CallNonvirtualFloatMethod(IntPtr obj, IntPtr clazz, IntPtr methodID, JniValue[] args) => throw new NotImplementedException();
|
||||
public int CallNonvirtualIntMethod(IntPtr obj, IntPtr clazz, IntPtr methodID, JniValue[] args) => throw new NotImplementedException();
|
||||
public long CallNonvirtualLongMethod(IntPtr obj, IntPtr clazz, IntPtr methodID, JniValue[] args) => throw new NotImplementedException();
|
||||
public IntPtr CallNonvirtualObjectMethod(IntPtr obj, IntPtr clazz, IntPtr methodID, JniValue[] args) => throw new NotImplementedException();
|
||||
public short CallNonvirtualShortMethod(IntPtr obj, IntPtr clazz, IntPtr methodID, JniValue[] args) => throw new NotImplementedException();
|
||||
public void CallNonvirtualVoidMethod(IntPtr obj, IntPtr clazz, IntPtr methodID, JniValue[] args) => throw new NotImplementedException();
|
||||
public IntPtr CallObjectMethod(IntPtr obj, IntPtr methodID, JniValue[] args) => AndroidJNI.CallObjectMethod(obj, methodID, Unsafe.As<jvalue[]>(args));
|
||||
public short CallShortMethod(IntPtr obj, IntPtr methodID, JniValue[] args) => AndroidJNI.CallShortMethod(obj, methodID, Unsafe.As<jvalue[]>(args));
|
||||
public bool CallStaticBooleanMethod(IntPtr clazz, IntPtr methodID, JniValue[] args) => AndroidJNI.CallStaticBooleanMethod(clazz, methodID, Unsafe.As<jvalue[]>(args));
|
||||
public sbyte CallStaticByteMethod(IntPtr clazz, IntPtr methodID, JniValue[] args) => AndroidJNI.CallStaticSByteMethod(clazz, methodID, Unsafe.As<jvalue[]>(args));
|
||||
public char CallStaticCharMethod(IntPtr clazz, IntPtr methodID, JniValue[] args) => AndroidJNI.CallStaticCharMethod(clazz, methodID, Unsafe.As<jvalue[]>(args));
|
||||
public double CallStaticDoubleMethod(IntPtr clazz, IntPtr methodID, JniValue[] args) => AndroidJNI.CallStaticDoubleMethod(clazz, methodID, Unsafe.As<jvalue[]>(args));
|
||||
public float CallStaticFloatMethod(IntPtr clazz, IntPtr methodID, JniValue[] args) => AndroidJNI.CallStaticFloatMethod(clazz, methodID, Unsafe.As<jvalue[]>(args));
|
||||
public int CallStaticIntMethod(IntPtr clazz, IntPtr methodID, JniValue[] args) => AndroidJNI.CallStaticIntMethod(clazz, methodID, Unsafe.As<jvalue[]>(args));
|
||||
public long CallStaticLongMethod(IntPtr clazz, IntPtr methodID, JniValue[] args) => AndroidJNI.CallStaticLongMethod(clazz, methodID, Unsafe.As<jvalue[]>(args));
|
||||
public IntPtr CallStaticObjectMethod(IntPtr clazz, IntPtr methodID, JniValue[] args) => AndroidJNI.CallStaticObjectMethod(clazz, methodID, Unsafe.As<jvalue[]>(args));
|
||||
public short CallStaticShortMethod(IntPtr clazz, IntPtr methodID, JniValue[] args) => AndroidJNI.CallStaticShortMethod(clazz, methodID, Unsafe.As<jvalue[]>(args));
|
||||
public void CallStaticVoidMethod(IntPtr clazz, IntPtr methodID, JniValue[] args) => AndroidJNI.CallStaticVoidMethod(clazz, methodID, Unsafe.As<jvalue[]>(args));
|
||||
public void CallVoidMethod(IntPtr obj, IntPtr methodID, JniValue[] args) => AndroidJNI.CallVoidMethod(obj, methodID, Unsafe.As<jvalue[]>(args));
|
||||
public IntPtr DefineClass(string name, IntPtr loader, IntPtr buf, int bufLen) => throw new NotImplementedException();
|
||||
public void DeleteGlobalRef(IntPtr globalRef) => AndroidJNI.DeleteGlobalRef(globalRef);
|
||||
public void DeleteLocalRef(IntPtr localRef) => AndroidJNI.DeleteLocalRef(localRef);
|
||||
public void DeleteWeakGlobalRef(IntPtr obj) => AndroidJNI.DeleteWeakGlobalRef(obj);
|
||||
public void EnsureLocalCapacity(int capacity) => JniException.Check((JniResult)AndroidJNI.EnsureLocalCapacity(capacity));
|
||||
public bool ExceptionCheck() => AndroidJNI.ExceptionOccurred() != IntPtr.Zero;
|
||||
public void ExceptionClear() => AndroidJNI.ExceptionClear();
|
||||
public void ExceptionDescribe() => AndroidJNI.ExceptionDescribe();
|
||||
public IntPtr ExceptionOccurred() => AndroidJNI.ExceptionOccurred();
|
||||
public void FatalError(string msg) => AndroidJNI.FatalError(msg);
|
||||
public IntPtr FindClass(string name) => AndroidJNI.FindClass(name);
|
||||
public IntPtr FromReflectedField(IntPtr field) => AndroidJNI.FromReflectedField(field);
|
||||
public IntPtr FromReflectedMethod(IntPtr method) => AndroidJNI.FromReflectedMethod(method);
|
||||
public int GetArrayLength(IntPtr array) => AndroidJNI.GetArrayLength(array);
|
||||
T* GetArrayElements<T>(IntPtr array, out bool isCopy, Func<IntPtr, int, T> func) where T : unmanaged {
|
||||
int len = GetArrayLength(array);
|
||||
T* ptr = (T*)Marshal.AllocHGlobal(len * sizeof(T));
|
||||
for (int i = 0; i < len; i++) ptr[i] = func(array, i);
|
||||
isCopy = true;
|
||||
return ptr;
|
||||
}
|
||||
void GetArrayRegion<T>(IntPtr array, int start, int len, T* buf, Func<IntPtr, int, T> func) where T : unmanaged {
|
||||
if (start < 0) throw new ArgumentOutOfRangeException(nameof(start));
|
||||
int arrLen = GetArrayLength(array);
|
||||
if (start + len > arrLen) throw new ArgumentOutOfRangeException(nameof(len));
|
||||
for (int i = 0; i < len; i++) buf[i] = func(array, start + i);
|
||||
}
|
||||
readonly static Func<IntPtr, int, bool> GetBooleanArrayElement = AndroidJNI.GetBooleanArrayElement;
|
||||
public bool* GetBooleanArrayElements(IntPtr array, out bool isCopy) => GetArrayElements(array, out isCopy, GetBooleanArrayElement);
|
||||
public void GetBooleanArrayRegion(IntPtr array, int start, int len, bool* buf) => GetArrayRegion(array, start, len, buf, GetBooleanArrayElement);
|
||||
public bool GetBooleanField(IntPtr obj, IntPtr fieldID) => AndroidJNI.GetBooleanField(obj, fieldID);
|
||||
readonly static Func<IntPtr, int, sbyte> GetSByteArrayElement = AndroidJNI.GetSByteArrayElement;
|
||||
public sbyte* GetByteArrayElements(IntPtr array, out bool isCopy) => GetArrayElements(array, out isCopy, GetSByteArrayElement);
|
||||
public void GetByteArrayRegion(IntPtr array, int start, int len, sbyte* buf) => GetArrayRegion(array, start, len, buf, GetSByteArrayElement);
|
||||
public sbyte GetByteField(IntPtr obj, IntPtr fieldID) => AndroidJNI.GetSByteField(obj, fieldID);
|
||||
readonly static Func<IntPtr, int, char> GetCharArrayElement = AndroidJNI.GetCharArrayElement;
|
||||
public char* GetCharArrayElements(IntPtr array, out bool isCopy) => GetArrayElements(array, out isCopy, GetCharArrayElement);
|
||||
public void GetCharArrayRegion(IntPtr array, int start, int len, char* buf) => GetArrayRegion(array, start, len, buf, GetCharArrayElement);
|
||||
public char GetCharField(IntPtr obj, IntPtr fieldID) => AndroidJNI.GetCharField(obj, fieldID);
|
||||
public void* GetDirectBufferAddress(IntPtr buf) => throw new NotImplementedException();
|
||||
public long GetDirectBufferCapacity(IntPtr buf) => throw new NotImplementedException();
|
||||
readonly static Func<IntPtr, int, double> GetDoubleArrayElement = AndroidJNI.GetDoubleArrayElement;
|
||||
public double* GetDoubleArrayElements(IntPtr array, out bool isCopy) => GetArrayElements(array, out isCopy, GetDoubleArrayElement);
|
||||
public void GetDoubleArrayRegion(IntPtr array, int start, int len, double* buf) => GetArrayRegion(array, start, len, buf, GetDoubleArrayElement);
|
||||
public double GetDoubleField(IntPtr obj, IntPtr fieldID) => AndroidJNI.GetDoubleField(obj, fieldID);
|
||||
public IntPtr GetFieldID(IntPtr clazz, string name, string sig) => AndroidJNI.GetFieldID(clazz, name, sig);
|
||||
readonly static Func<IntPtr, int, float> GetFloatArrayElement = AndroidJNI.GetFloatArrayElement;
|
||||
public float* GetFloatArrayElements(IntPtr array, out bool isCopy) => GetArrayElements(array, out isCopy, GetFloatArrayElement);
|
||||
public void GetFloatArrayRegion(IntPtr array, int start, int len, float* buf) => GetArrayRegion(array, start, len, buf, GetFloatArrayElement);
|
||||
public float GetFloatField(IntPtr obj, IntPtr fieldID) => AndroidJNI.GetFloatField(obj, fieldID);
|
||||
readonly static Func<IntPtr, int, int> GetIntArrayElement = AndroidJNI.GetIntArrayElement;
|
||||
public int* GetIntArrayElements(IntPtr array, out bool isCopy) => GetArrayElements(array, out isCopy, GetIntArrayElement);
|
||||
public void GetIntArrayRegion(IntPtr array, int start, int len, int* buf) => GetArrayRegion(array, start, len, buf, GetIntArrayElement);
|
||||
public int GetIntField(IntPtr obj, IntPtr fieldID) => AndroidJNI.GetIntField(obj, fieldID);
|
||||
public IJniInvoke GetJavaVM() => JniInvoke.Instance;
|
||||
readonly static Func<IntPtr, int, long> GetLongArrayElement = AndroidJNI.GetLongArrayElement;
|
||||
public long* GetLongArrayElements(IntPtr array, out bool isCopy) => GetArrayElements(array, out isCopy, GetLongArrayElement);
|
||||
public void GetLongArrayRegion(IntPtr array, int start, int len, long* buf) => GetArrayRegion(array, start, len, buf, GetLongArrayElement);
|
||||
public long GetLongField(IntPtr obj, IntPtr fieldID) => AndroidJNI.GetLongField(obj, fieldID);
|
||||
public IntPtr GetMethodID(IntPtr clazz, string name, string sig) => AndroidJNI.GetMethodID(clazz, name, sig);
|
||||
public IntPtr GetObjectArrayElement(IntPtr array, int index) => AndroidJNI.GetObjectArrayElement(array, index);
|
||||
public IntPtr GetObjectClass(IntPtr obj) => AndroidJNI.GetObjectClass(obj);
|
||||
public IntPtr GetObjectField(IntPtr obj, IntPtr fieldID) => AndroidJNI.GetObjectField(obj, fieldID);
|
||||
public JniObjectRefType GetObjectRefType(IntPtr obj) => throw new NotImplementedException();
|
||||
public IntPtr GetPrimitiveArrayCritical(IntPtr array, out bool isCopy) => throw new NotImplementedException();
|
||||
readonly static Func<IntPtr, int, short> GetShortArrayElement = AndroidJNI.GetShortArrayElement;
|
||||
public short* GetShortArrayElements(IntPtr array, out bool isCopy) => GetArrayElements(array, out isCopy, GetShortArrayElement);
|
||||
public void GetShortArrayRegion(IntPtr array, int start, int len, short* buf) => GetArrayRegion(array, start, len, buf, GetShortArrayElement);
|
||||
public short GetShortField(IntPtr obj, IntPtr fieldID) => AndroidJNI.GetShortField(obj, fieldID);
|
||||
public bool GetStaticBooleanField(IntPtr clazz, IntPtr fieldID) => AndroidJNI.GetStaticBooleanField(clazz, fieldID);
|
||||
public sbyte GetStaticByteField(IntPtr clazz, IntPtr fieldID) => AndroidJNI.GetStaticSByteField(clazz, fieldID);
|
||||
public char GetStaticCharField(IntPtr clazz, IntPtr fieldID) => AndroidJNI.GetStaticCharField(clazz, fieldID);
|
||||
public double GetStaticDoubleField(IntPtr clazz, IntPtr fieldID) => AndroidJNI.GetStaticDoubleField(clazz, fieldID);
|
||||
public IntPtr GetStaticFieldID(IntPtr clazz, string name, string sig) => AndroidJNI.GetStaticFieldID(clazz, name, sig);
|
||||
public float GetStaticFloatField(IntPtr clazz, IntPtr fieldID) => AndroidJNI.GetStaticFloatField(clazz, fieldID);
|
||||
public int GetStaticIntField(IntPtr clazz, IntPtr fieldID) => AndroidJNI.GetStaticIntField(clazz, fieldID);
|
||||
public long GetStaticLongField(IntPtr clazz, IntPtr fieldID) => AndroidJNI.GetStaticLongField(clazz, fieldID);
|
||||
public IntPtr GetStaticMethodID(IntPtr clazz, string name, string sig) => AndroidJNI.GetStaticMethodID(clazz, name, sig);
|
||||
public IntPtr GetStaticObjectField(IntPtr clazz, IntPtr fieldID) => AndroidJNI.GetStaticObjectField(clazz, fieldID);
|
||||
public short GetStaticShortField(IntPtr clazz, IntPtr fieldID) => AndroidJNI.GetStaticShortField(clazz, fieldID);
|
||||
public char* GetStringChars(IntPtr @string, out bool isCopy) {
|
||||
var str = AndroidJNI.GetStringChars(@string);
|
||||
char* ptr = (char*)Marshal.AllocHGlobal(str.Length * sizeof(char));
|
||||
for (int i = 0; i < str.Length; i++) ptr[i] = str[i];
|
||||
isCopy = true;
|
||||
return ptr;
|
||||
}
|
||||
public char* GetStringCritical(IntPtr @string, out bool isCopy) => GetStringChars(@string, out isCopy);
|
||||
public int GetStringLength(IntPtr @string) => AndroidJNI.GetStringLength(@string);
|
||||
public void GetStringRegion(IntPtr str, int start, int len, char* buf) {
|
||||
if (start < 0) throw new ArgumentOutOfRangeException(nameof(start));
|
||||
int strLen = GetStringLength(str);
|
||||
if (start + len > strLen) throw new ArgumentOutOfRangeException(nameof(len));
|
||||
var s = AndroidJNI.GetStringChars(str);
|
||||
for (int i = 0; i < len; i++) buf[i] = s[start + i];
|
||||
}
|
||||
public byte* GetStringUTFChars(IntPtr @string, out bool isCopy) => throw new NotImplementedException();
|
||||
public int GetStringUTFLength(IntPtr @string) => AndroidJNI.GetStringUTFLength(@string);
|
||||
public void GetStringUTFRegion(IntPtr str, int start, int len, byte* buf) => throw new NotImplementedException();
|
||||
public IntPtr GetSuperclass(IntPtr clazz) => AndroidJNI.GetSuperclass(clazz);
|
||||
public int GetVersion() => AndroidJNI.GetVersion();
|
||||
public bool IsAssignableFrom(IntPtr clazz1, IntPtr clazz2) => AndroidJNI.IsAssignableFrom(clazz1, clazz2);
|
||||
public bool IsInstanceOf(IntPtr obj, IntPtr clazz) => AndroidJNI.IsInstanceOf(obj, clazz);
|
||||
public bool IsSameObject(IntPtr ref1, IntPtr ref2) => AndroidJNI.IsSameObject(ref1, ref2);
|
||||
public void MonitorEnter(IntPtr obj) => throw new NotImplementedException();
|
||||
public void MonitorExit(IntPtr obj) => throw new NotImplementedException();
|
||||
public IntPtr NewBooleanArray(int length) => AndroidJNI.NewBooleanArray(length);
|
||||
public IntPtr NewByteArray(int length) => AndroidJNI.NewSByteArray(length);
|
||||
public IntPtr NewCharArray(int length) => AndroidJNI.NewCharArray(length);
|
||||
public IntPtr NewDirectByteBuffer(void* address, long capacity) => throw new NotImplementedException();
|
||||
public IntPtr NewDoubleArray(int length) => AndroidJNI.NewDoubleArray(length);
|
||||
public IntPtr NewFloatArray(int length) => AndroidJNI.NewFloatArray(length);
|
||||
public IntPtr NewGlobalRef(IntPtr obj) => AndroidJNI.NewGlobalRef(obj);
|
||||
public IntPtr NewIntArray(int length) => AndroidJNI.NewIntArray(length);
|
||||
public IntPtr NewLocalRef(IntPtr @ref) => AndroidJNI.NewLocalRef(@ref);
|
||||
public IntPtr NewLongArray(int length) => AndroidJNI.NewLongArray(length);
|
||||
public IntPtr NewObject(IntPtr clazz, IntPtr methodID, JniValue[] args) => AndroidJNI.NewObject(clazz, methodID, Unsafe.As<jvalue[]>(args));
|
||||
public IntPtr NewObjectArray(int length, IntPtr elementClass, IntPtr initialElement) => AndroidJNI.NewObjectArray(length, elementClass, initialElement);
|
||||
public IntPtr NewShortArray(int length) => AndroidJNI.NewShortArray(length);
|
||||
public IntPtr NewString(char* unicodeChars, int len) => AndroidJNI.NewString(new string(unicodeChars, 0, len));
|
||||
public IntPtr NewStringUTF(byte* bytes) => throw new NotImplementedException();
|
||||
public IntPtr NewWeakGlobalRef(IntPtr obj) => AndroidJNI.NewWeakGlobalRef(obj);
|
||||
public IntPtr PopLocalFrame(IntPtr result) => AndroidJNI.PopLocalFrame(result);
|
||||
public void PushLocalFrame(int capacity) => JniException.Check((JniResult)AndroidJNI.PushLocalFrame(capacity));
|
||||
public void RegisterNatives(IntPtr clazz, JniNativeMethod[] methods) => throw new NotImplementedException();
|
||||
public void ReleaseBooleanArrayElements(IntPtr array, bool* elems, JniReleaseArrayElementsMode mode) => Marshal.FreeHGlobal((IntPtr)elems);
|
||||
public void ReleaseByteArrayElements(IntPtr array, sbyte* elems, JniReleaseArrayElementsMode mode) => Marshal.FreeHGlobal((IntPtr)elems);
|
||||
public void ReleaseCharArrayElements(IntPtr array, char* elems, JniReleaseArrayElementsMode mode) => Marshal.FreeHGlobal((IntPtr)elems);
|
||||
public void ReleaseDoubleArrayElements(IntPtr array, double* elems, JniReleaseArrayElementsMode mode) => Marshal.FreeHGlobal((IntPtr)elems);
|
||||
public void ReleaseFloatArrayElements(IntPtr array, float* elems, JniReleaseArrayElementsMode mode) => Marshal.FreeHGlobal((IntPtr)elems);
|
||||
public void ReleaseIntArrayElements(IntPtr array, int* elems, JniReleaseArrayElementsMode mode) => Marshal.FreeHGlobal((IntPtr)elems);
|
||||
public void ReleaseLongArrayElements(IntPtr array, long* elems, JniReleaseArrayElementsMode mode) => Marshal.FreeHGlobal((IntPtr)elems);
|
||||
public void ReleasePrimitiveArrayCritical(IntPtr array, IntPtr carray, JniReleaseArrayElementsMode mode) => throw new NotImplementedException();
|
||||
public void ReleaseShortArrayElements(IntPtr array, short* elems, JniReleaseArrayElementsMode mode) => Marshal.FreeHGlobal((IntPtr)elems);
|
||||
public void ReleaseStringChars(IntPtr @string, char* chars) => Marshal.FreeHGlobal((IntPtr)chars);
|
||||
public void ReleaseStringCritical(IntPtr @string, char* carray) => Marshal.FreeHGlobal((IntPtr)carray);
|
||||
public void ReleaseStringUTFChars(char* @string, byte* utf) => throw new NotImplementedException();
|
||||
void SetArrayRegion<T>(IntPtr array, int start, int len, T* buf, Action<IntPtr, int, T> func) where T : unmanaged {
|
||||
if (start < 0) throw new ArgumentOutOfRangeException(nameof(start));
|
||||
int arrLen = GetArrayLength(array);
|
||||
if (start + len > arrLen) throw new ArgumentOutOfRangeException(nameof(len));
|
||||
for (int i = 0; i < len; i++) func(array, start + i, buf[i]);
|
||||
}
|
||||
static readonly Action<IntPtr, int, bool> SetBooleanArrayElement = AndroidJNI.SetBooleanArrayElement;
|
||||
public void SetBooleanArrayRegion(IntPtr array, int start, int len, bool* buf) => SetArrayRegion(array, start, len, buf, SetBooleanArrayElement);
|
||||
public void SetBooleanField(IntPtr obj, IntPtr fieldID, bool value) => AndroidJNI.SetBooleanField(obj, fieldID, value);
|
||||
static readonly Action<IntPtr, int, sbyte> SetSByteArrayElement = AndroidJNI.SetSByteArrayElement;
|
||||
public void SetByteArrayRegion(IntPtr array, int start, int len, sbyte* buf) => SetArrayRegion(array, start, len, buf, SetSByteArrayElement);
|
||||
public void SetByteField(IntPtr obj, IntPtr fieldID, sbyte value) => AndroidJNI.SetSByteField(obj, fieldID, value);
|
||||
static readonly Action<IntPtr, int, char> SetCharArrayElement = AndroidJNI.SetCharArrayElement;
|
||||
public void SetCharArrayRegion(IntPtr array, int start, int len, char* buf) => SetArrayRegion(array, start, len, buf, SetCharArrayElement);
|
||||
public void SetCharField(IntPtr obj, IntPtr fieldID, char value) => AndroidJNI.SetCharField(obj, fieldID, value);
|
||||
static readonly Action<IntPtr, int, double> SetDoubleArrayElement = AndroidJNI.SetDoubleArrayElement;
|
||||
public void SetDoubleArrayRegion(IntPtr array, int start, int len, double* buf) => SetArrayRegion(array, start, len, buf, SetDoubleArrayElement);
|
||||
public void SetDoubleField(IntPtr obj, IntPtr fieldID, double value) => AndroidJNI.SetDoubleField(obj, fieldID, value);
|
||||
static readonly Action<IntPtr, int, float> SetFloatArrayElement = AndroidJNI.SetFloatArrayElement;
|
||||
public void SetFloatArrayRegion(IntPtr array, int start, int len, float* buf) => SetArrayRegion(array, start, len, buf, SetFloatArrayElement);
|
||||
public void SetFloatField(IntPtr obj, IntPtr fieldID, float value) => AndroidJNI.SetFloatField(obj, fieldID, value);
|
||||
static readonly Action<IntPtr, int, int> SetIntArrayElement = AndroidJNI.SetIntArrayElement;
|
||||
public void SetIntArrayRegion(IntPtr array, int start, int len, int* buf) => SetArrayRegion(array, start, len, buf, SetIntArrayElement);
|
||||
public void SetIntField(IntPtr obj, IntPtr fieldID, int value) => AndroidJNI.SetIntField(obj, fieldID, value);
|
||||
static readonly Action<IntPtr, int, long> SetLongArrayElement = AndroidJNI.SetLongArrayElement;
|
||||
public void SetLongArrayRegion(IntPtr array, int start, int len, long* buf) => SetArrayRegion(array, start, len, buf, SetLongArrayElement);
|
||||
public void SetLongField(IntPtr obj, IntPtr fieldID, long value) => AndroidJNI.SetLongField(obj, fieldID, value);
|
||||
public void SetObjectArrayElement(IntPtr array, int index, IntPtr value) => AndroidJNI.SetObjectArrayElement(array, index, value);
|
||||
public void SetObjectField(IntPtr obj, IntPtr fieldID, IntPtr value) => AndroidJNI.SetObjectField(obj, fieldID, value);
|
||||
static readonly Action<IntPtr, int, short> SetShortArrayElement = AndroidJNI.SetShortArrayElement;
|
||||
public void SetShortArrayRegion(IntPtr array, int start, int len, short* buf) => SetArrayRegion(array, start, len, buf, SetShortArrayElement);
|
||||
public void SetShortField(IntPtr obj, IntPtr fieldID, short value) => AndroidJNI.SetShortField(obj, fieldID, value);
|
||||
public void SetStaticBooleanField(IntPtr clazz, IntPtr fieldID, bool value) => AndroidJNI.SetStaticBooleanField(clazz, fieldID, value);
|
||||
public void SetStaticByteField(IntPtr clazz, IntPtr fieldID, sbyte value) => AndroidJNI.SetStaticSByteField(clazz, fieldID, value);
|
||||
public void SetStaticCharField(IntPtr clazz, IntPtr fieldID, char value) => AndroidJNI.SetStaticCharField(clazz, fieldID, value);
|
||||
public void SetStaticDoubleField(IntPtr clazz, IntPtr fieldID, double value) => AndroidJNI.SetStaticDoubleField(clazz, fieldID, value);
|
||||
public void SetStaticFloatField(IntPtr clazz, IntPtr fieldID, float value) => AndroidJNI.SetStaticFloatField(clazz, fieldID, value);
|
||||
public void SetStaticIntField(IntPtr clazz, IntPtr fieldID, int value) => AndroidJNI.SetStaticIntField(clazz, fieldID, value);
|
||||
public void SetStaticLongField(IntPtr clazz, IntPtr fieldID, long value) => AndroidJNI.SetStaticLongField(clazz, fieldID, value);
|
||||
public void SetStaticObjectField(IntPtr clazz, IntPtr fieldID, IntPtr value) => AndroidJNI.SetStaticObjectField(clazz, fieldID, value);
|
||||
public void SetStaticShortField(IntPtr clazz, IntPtr fieldID, short value) => AndroidJNI.SetStaticShortField(clazz, fieldID, value);
|
||||
public void Throw(IntPtr obj) => JniException.Check((JniResult)AndroidJNI.Throw(obj));
|
||||
public void ThrowNew(IntPtr clazz, string message) => JniException.Check((JniResult)AndroidJNI.ThrowNew(clazz, message));
|
||||
public IntPtr ToReflectedField(IntPtr cls, IntPtr fieldID, bool isStatic) => AndroidJNI.ToReflectedField(cls, fieldID, isStatic);
|
||||
public IntPtr ToReflectedMethod(IntPtr cls, IntPtr methodID, bool isStatic) => AndroidJNI.ToReflectedMethod(cls, methodID, isStatic);
|
||||
public void UnregisterNatives(IntPtr clazz) => throw new NotImplementedException();
|
||||
}
|
||||
}
|
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6b1f96de7f76f0a4d94d988b26285984
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@@ -0,0 +1,33 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Cryville.Interop.Java.Unity {
|
||||
/// <summary>
|
||||
/// The Unity JNI Invocation API.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// <para><see cref="AttachCurrentThreadAsDaemon(JavaVMAttachArgs?)" /> and <see cref="DestroyJavaVM" /> are not implemented.</para>
|
||||
/// <para>All parameters of type <see cref="JavaVMAttachArgs" /> are not supported and ignored.</para>
|
||||
/// <para><see cref="GetEnv(int)" /> always succeeds.</para>
|
||||
/// </remarks>
|
||||
public class JniInvoke : IJniInvoke {
|
||||
static JniInvoke m_instance;
|
||||
public static JniInvoke Instance {
|
||||
get {
|
||||
if (m_instance == null)
|
||||
m_instance = new JniInvoke();
|
||||
return m_instance;
|
||||
}
|
||||
}
|
||||
JniInvoke() { }
|
||||
|
||||
public IJniEnv AttachCurrentThread(JavaVMAttachArgs? thr_args) {
|
||||
JniException.Check((JniResult)AndroidJNI.AttachCurrentThread());
|
||||
return JniEnv.Instance;
|
||||
}
|
||||
public IJniEnv AttachCurrentThreadAsDaemon(JavaVMAttachArgs? args) => throw new NotImplementedException();
|
||||
public void DestroyJavaVM() => throw new NotImplementedException();
|
||||
public void DetachCurrentThread() => JniException.Check((JniResult)AndroidJNI.DetachCurrentThread());
|
||||
public IJniEnv GetEnv(int version) => JniEnv.Instance;
|
||||
}
|
||||
}
|
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 511232398ae479147b30cd04bde51b7d
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
BIN
Assets/Plugins/Android/Cryville.Interop.Java.dll
Normal file
BIN
Assets/Plugins/Android/Cryville.Interop.Java.dll
Normal file
Binary file not shown.
76
Assets/Plugins/Android/Cryville.Interop.Java.dll.meta
Normal file
76
Assets/Plugins/Android/Cryville.Interop.Java.dll.meta
Normal file
@@ -0,0 +1,76 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 580000a8ab749bf4eaff6418a0dec9af
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
: Any
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
Exclude Android: 0
|
||||
Exclude Editor: 1
|
||||
Exclude Linux64: 1
|
||||
Exclude OSXUniversal: 1
|
||||
Exclude Win: 1
|
||||
Exclude Win64: 1
|
||||
- first:
|
||||
Android: Android
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
CPU: ARMv7
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 0
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
DefaultValueInitialized: true
|
||||
OS: AnyOS
|
||||
- first:
|
||||
Standalone: Linux64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: OSXUniversal
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: Win
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: Win64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
1520
Assets/Plugins/Android/Cryville.Interop.Java.xml
Normal file
1520
Assets/Plugins/Android/Cryville.Interop.Java.xml
Normal file
File diff suppressed because it is too large
Load Diff
7
Assets/Plugins/Android/Cryville.Interop.Java.xml.meta
Normal file
7
Assets/Plugins/Android/Cryville.Interop.Java.xml.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4ee1f570235fd5b41b27e73bd94d9220
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
BIN
Assets/Plugins/Cryville.Audio.Source.Libav.dll
Normal file
BIN
Assets/Plugins/Cryville.Audio.Source.Libav.dll
Normal file
Binary file not shown.
33
Assets/Plugins/Cryville.Audio.Source.Libav.dll.meta
Normal file
33
Assets/Plugins/Cryville.Audio.Source.Libav.dll.meta
Normal file
@@ -0,0 +1,33 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c974fcfa1d9bf9d49b2d40232f475dc4
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
DefaultValueInitialized: true
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
137
Assets/Plugins/Cryville.Audio.Source.Libav.eng-latn.xml
Normal file
137
Assets/Plugins/Cryville.Audio.Source.Libav.eng-latn.xml
Normal file
@@ -0,0 +1,137 @@
|
||||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>Cryville.Audio.Source.Libav</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:Cryville.Audio.Source.Libav.LibavFileAudioSource">
|
||||
<summary>
|
||||
An <see cref="T:Cryville.Audio.AudioStream" /> that uses Libav to demux and decode audio files.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.#ctor(System.String)">
|
||||
<summary>
|
||||
Creates an instance of the <see cref="T:Cryville.Audio.Source.Libav.LibavFileAudioSource" /> class and loads the specified <paramref name="file" />.
|
||||
</summary>
|
||||
<param name="file">The audio file.</param>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.Disposed">
|
||||
<summary>
|
||||
Whether this audio stream has been disposed.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.Dispose(System.Boolean)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.EndOfData">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.BestStreamIndex">
|
||||
<summary>
|
||||
The index to the best audio stream.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.Streams">
|
||||
<summary>
|
||||
The collection of indices to all audio streams.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.SelectStream">
|
||||
<summary>
|
||||
Selects the best stream as the source.
|
||||
</summary>
|
||||
<exception cref="T:System.InvalidOperationException">The stream has been selected.</exception>
|
||||
<remarks>
|
||||
<para>This method can only be called before <see cref="M:Cryville.Audio.AudioStream.SetFormat(Cryville.Audio.WaveFormat,System.Int32)" /> is called, which is called while setting <see cref="P:Cryville.Audio.AudioClient.Source" />.</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.SelectStream(System.Int32)">
|
||||
<summary>
|
||||
Selects a stream as the source.
|
||||
</summary>
|
||||
<param name="index">The index of the stream.</param>
|
||||
<exception cref="T:System.InvalidOperationException">The stream has been selected.</exception>
|
||||
<remarks>
|
||||
<para>This method can only be called before <see cref="M:Cryville.Audio.AudioStream.SetFormat(Cryville.Audio.WaveFormat,System.Int32)" /> is called, which is called while setting <see cref="P:Cryville.Audio.AudioClient.Source" />.</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.GetStreamDuration(System.Int32)">
|
||||
<summary>
|
||||
Gets the duration of a stream or the file.
|
||||
</summary>
|
||||
<param name="streamId">The stream index. The duration of the file is retrieved if <c>-1</c> is specified.</param>
|
||||
<returns>The duration in seconds.</returns>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.IsFormatSupported(Cryville.Audio.WaveFormat)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.OnSetFormat">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.Read(System.Byte[],System.Int32,System.Int32)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.Seek(System.Int64,System.IO.SeekOrigin)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.SeekTime(System.Double,System.IO.SeekOrigin)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.CanRead">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.CanSeek">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.CanWrite">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.Length">
|
||||
<inheritdoc />
|
||||
<remarks>
|
||||
<para>This property may be inaccurate.</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.Duration">
|
||||
<inheritdoc />
|
||||
<remarks>
|
||||
<para>This property may be inaccurate.</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.Time">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.Position">
|
||||
<inheritdoc />
|
||||
<remarks>
|
||||
<para>This property may become inaccurate after <see cref="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.Seek(System.Int64,System.IO.SeekOrigin)" /> is called.</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.Flush">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.SetLength(System.Int64)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.Write(System.Byte[],System.Int32,System.Int32)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.Source.Libav.LibavException">
|
||||
<summary>
|
||||
The exception that is thrown by Libav.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.Libav.LibavException.#ctor">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.Libav.LibavException.#ctor(System.String)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.Libav.LibavException.#ctor(System.String,System.Exception)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.Libav.LibavException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: efcc1363031f00e48bcf23b46c092deb
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
145
Assets/Plugins/Cryville.Audio.Source.Libav.xml
Normal file
145
Assets/Plugins/Cryville.Audio.Source.Libav.xml
Normal file
@@ -0,0 +1,145 @@
|
||||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>Cryville.Audio.Source.Libav</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:Cryville.Audio.Source.Libav.LibavFileAudioSource">
|
||||
<summary>
|
||||
一个使用 Libav 解流并解码音频文件的 <see cref="T:Cryville.Audio.AudioStream" />。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.#ctor(System.String)">
|
||||
<summary>
|
||||
创建一个 <see cref="T:Cryville.Audio.Source.Libav.LibavFileAudioSource" /> 类的实例并加载指定的 <paramref name="file" />。
|
||||
</summary>
|
||||
<param name="file">音频文件。</param>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.Disposed">
|
||||
<summary>
|
||||
该音频流是否已被释放。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.Dispose(System.Boolean)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.EndOfData">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.BestStreamIndex">
|
||||
<summary>
|
||||
最佳音频流的索引。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.Streams">
|
||||
<summary>
|
||||
所有音频流的索引集。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.SelectStream">
|
||||
<summary>
|
||||
选择最佳音频流作为音频源。
|
||||
</summary>
|
||||
<exception cref="T:System.InvalidOperationException">已选择音频流。</exception>
|
||||
<remarks>
|
||||
<para>
|
||||
该方法只能在 <see cref="M:Cryville.Audio.AudioStream.SetFormat(Cryville.Audio.WaveFormat,System.Int32)" /> 被调用前调用,后者会在设置 <see cref="P:Cryville.Audio.AudioClient.Source" /> 时被调用。
|
||||
</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.SelectStream(System.Int32)">
|
||||
<summary>
|
||||
选择一个音频流作为音频源。
|
||||
</summary>
|
||||
<param name="index">音频流的索引。</param>
|
||||
<exception cref="T:System.InvalidOperationException">已选择音频流。</exception>
|
||||
<remarks>
|
||||
<para>
|
||||
该方法只能在 <see cref="M:Cryville.Audio.AudioStream.SetFormat(Cryville.Audio.WaveFormat,System.Int32)" /> 被调用前调用,后者会在设置 <see cref="P:Cryville.Audio.AudioClient.Source" /> 时被调用。
|
||||
</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.GetStreamDuration(System.Int32)">
|
||||
<summary>
|
||||
获取一个流或当前文件的时长。
|
||||
</summary>
|
||||
<param name="streamId">
|
||||
流索引。如果指定 <c>-1</c> 则返回文件的时长。
|
||||
</param>
|
||||
<returns>时长(秒)。</returns>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.IsFormatSupported(Cryville.Audio.WaveFormat)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.OnSetFormat">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.Read(System.Byte[],System.Int32,System.Int32)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.Seek(System.Int64,System.IO.SeekOrigin)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.SeekTime(System.Double,System.IO.SeekOrigin)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.CanRead">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.CanSeek">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.CanWrite">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.Length">
|
||||
<inheritdoc />
|
||||
<remarks>
|
||||
<para>该属性可能不准确。</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.Duration">
|
||||
<inheritdoc />
|
||||
<remarks>
|
||||
<para>该属性可能不准确。</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.Time">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.Position">
|
||||
<inheritdoc />
|
||||
<remarks>
|
||||
<para>
|
||||
该属性在调用 <see cref="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.Seek(System.Int64,System.IO.SeekOrigin)" /> 后可能不准确。
|
||||
</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.Flush">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.SetLength(System.Int64)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.Write(System.Byte[],System.Int32,System.Int32)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.Source.Libav.LibavException">
|
||||
<summary>
|
||||
Libav 抛出的异常。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.Libav.LibavException.#ctor">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.Libav.LibavException.#ctor(System.String)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.Libav.LibavException.#ctor(System.String,System.Exception)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.Libav.LibavException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
7
Assets/Plugins/Cryville.Audio.Source.Libav.xml.meta
Normal file
7
Assets/Plugins/Cryville.Audio.Source.Libav.xml.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c6a49174395b6ab4282ba26bdaf5d051
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
@@ -23,21 +23,6 @@
|
||||
The device of the client.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.AudioClient.DefaultBufferDuration">
|
||||
<summary>
|
||||
The default buffer duration of the client in milliseconds.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.AudioClient.MinimumBufferDuration">
|
||||
<summary>
|
||||
The minimum buffer duration of the client in milliseconds.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.AudioClient.DefaultFormat">
|
||||
<summary>
|
||||
The default wave format of the device.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.AudioClient.Format">
|
||||
<summary>
|
||||
The current wave format of the connection.
|
||||
@@ -45,13 +30,16 @@
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.AudioClient.BufferSize">
|
||||
<summary>
|
||||
The buffer size in bytes.
|
||||
The buffer size in frames.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.AudioClient.MaximumLatency">
|
||||
<summary>
|
||||
The maximum latency of the connection in milliseconds.
|
||||
</summary>
|
||||
<remarks>
|
||||
<para>May be zero if the API does not provide this value.</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.AudioClient.Playing">
|
||||
<summary>
|
||||
@@ -78,24 +66,6 @@
|
||||
The audio source.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.AudioClient.IsFormatSupported(Cryville.Audio.WaveFormat,System.Nullable{Cryville.Audio.WaveFormat}@,Cryville.Audio.AudioShareMode)">
|
||||
<summary>
|
||||
Gets whether <paramref name="format" /> is supported by the device.
|
||||
</summary>
|
||||
<param name="format">The specified wave format.</param>
|
||||
<param name="suggestion">A wave format suggested by the device. <paramref name="format" /> if it is supported. <see langword="null" /> if no format is supported.</param>
|
||||
<param name="shareMode">The share mode.</param>
|
||||
<returns>Whether <paramref name="format" /> is supported.</returns>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.AudioClient.Init(Cryville.Audio.WaveFormat,System.Single,Cryville.Audio.AudioShareMode)">
|
||||
<summary>
|
||||
Initialize the client.
|
||||
</summary>
|
||||
<param name="format">The wave format.</param>
|
||||
<param name="bufferDuration">The buffer duration of the connection in milliseconds.</param>
|
||||
<param name="shareMode">The share mode of the connection.</param>
|
||||
<remarks>Different operations may occur with different API being used. Please also see the documentations of the implementing classes.</remarks>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.AudioClient.Start">
|
||||
<summary>
|
||||
Starts the wave data transmission.
|
||||
@@ -140,7 +110,7 @@
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.AudioStream.BufferSize">
|
||||
<summary>
|
||||
The buffer size in bytes.
|
||||
The buffer size in frames.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.AudioStream.EndOfData">
|
||||
@@ -153,7 +123,7 @@
|
||||
Sets the wave format and the buffer size of this audio stream.
|
||||
</summary>
|
||||
<param name="format">The wave format.</param>
|
||||
<param name="bufferSize">The buffer size in bytes.</param>
|
||||
<param name="bufferSize">The buffer size in frames.</param>
|
||||
<exception cref="T:System.InvalidOperationException">This method has already been called successfully once on the audio stream.</exception>
|
||||
<exception cref="T:System.NotSupportedException"><paramref name="format" /> is not supported by the audio stream.</exception>
|
||||
</member>
|
||||
@@ -206,6 +176,11 @@
|
||||
The data-flow direction of an audio connection.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Cryville.Audio.DataFlow.None">
|
||||
<summary>
|
||||
None.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Cryville.Audio.DataFlow.Out">
|
||||
<summary>
|
||||
Data flows from software to hardware.
|
||||
@@ -233,9 +208,12 @@
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.EngineBuilder.Create">
|
||||
<summary>
|
||||
Creates a recommended <see cref="T:Cryville.Audio.IAudioDeviceManager" />.
|
||||
Creates a <see cref="T:Cryville.Audio.IAudioDeviceManager" /> in the <see cref="F:Cryville.Audio.EngineBuilder.Engines" /> list.
|
||||
</summary>
|
||||
<returns>A recommended <see cref="T:Cryville.Audio.IAudioDeviceManager" />. <see langword="null" /> if no engine is supported.</returns>
|
||||
<returns>The first <see cref="T:Cryville.Audio.IAudioDeviceManager" /> that can be successfully created. <see langword="null" /> if no engine is supported.</returns>
|
||||
<remarks>
|
||||
<para>Add engines to <see cref="F:Cryville.Audio.EngineBuilder.Engines" /> before calling this method.</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.IAudioDevice">
|
||||
<summary>
|
||||
@@ -252,10 +230,45 @@
|
||||
The data-flow direction of the device.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.IAudioDevice.Connect">
|
||||
<member name="P:Cryville.Audio.IAudioDevice.BurstSize">
|
||||
<summary>
|
||||
The burst size of the device in frames.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.IAudioDevice.MinimumBufferSize">
|
||||
<summary>
|
||||
The minimum buffer size of the device in frames.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.IAudioDevice.DefaultBufferSize">
|
||||
<summary>
|
||||
The default buffer size of the device in frames.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.IAudioDevice.DefaultFormat">
|
||||
<summary>
|
||||
The default wave format of the device for shared-mode streams.
|
||||
</summary>
|
||||
<remarks>
|
||||
<para>For exclusive-mode streams, call <see cref="M:Cryville.Audio.IAudioDevice.IsFormatSupported(Cryville.Audio.WaveFormat,System.Nullable{Cryville.Audio.WaveFormat}@,Cryville.Audio.AudioShareMode)" /> to determine an eligible format.</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.IAudioDevice.IsFormatSupported(Cryville.Audio.WaveFormat,System.Nullable{Cryville.Audio.WaveFormat}@,Cryville.Audio.AudioShareMode)">
|
||||
<summary>
|
||||
Gets whether <paramref name="format" /> is supported by the device.
|
||||
</summary>
|
||||
<param name="format">The specified wave format.</param>
|
||||
<param name="suggestion">A wave format suggested by the device. <paramref name="format" /> if it is supported. <see langword="null" /> if no format is supported.</param>
|
||||
<param name="shareMode">The share mode.</param>
|
||||
<returns>Whether <paramref name="format" /> is supported.</returns>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.IAudioDevice.Connect(Cryville.Audio.WaveFormat,System.Int32,Cryville.Audio.AudioShareMode)">
|
||||
<summary>
|
||||
Connects to the device.
|
||||
</summary>
|
||||
<param name="format">The wave format.</param>
|
||||
<param name="bufferSize">The buffer size of the connection in frames.</param>
|
||||
<param name="shareMode">The share mode of the connection.</param>
|
||||
<returns>An <see cref="T:Cryville.Audio.AudioClient" /> for interaction with the device.</returns>
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.IAudioDeviceManager">
|
||||
@@ -278,110 +291,6 @@
|
||||
</summary>
|
||||
<param name="dataFlow">The data-flow direction.</param>
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.OpenSL.Engine">
|
||||
<summary>
|
||||
An <see cref="T:Cryville.Audio.IAudioDeviceManager" /> that interacts with OpenSL ES.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSL.Engine.#ctor">
|
||||
<summary>
|
||||
Creates an instance of the <see cref="T:Cryville.Audio.OpenSL.Engine" /> class.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSL.Engine.Finalize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSL.Engine.Dispose">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSL.Engine.Dispose(System.Boolean)">
|
||||
<summary>
|
||||
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
|
||||
</summary>
|
||||
<param name="disposing">Whether the method is being called by user.</param>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSL.Engine.GetDefaultDevice(Cryville.Audio.DataFlow)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSL.Engine.GetDevices(Cryville.Audio.DataFlow)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.OpenSL.OutputClient">
|
||||
<summary>
|
||||
An <see cref="T:Cryville.Audio.AudioClient" /> that interacts with OpenSL ES.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSL.OutputClient.Finalize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSL.OutputClient.Dispose(System.Boolean)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.OpenSL.OutputClient.Device">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.OpenSL.OutputClient.DefaultBufferDuration">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.OpenSL.OutputClient.MinimumBufferDuration">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.OpenSL.OutputClient.DefaultFormat">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.OpenSL.OutputClient.Format">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.OpenSL.OutputClient.BufferSize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.OpenSL.OutputClient.MaximumLatency">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.OpenSL.OutputClient.Position">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.OpenSL.OutputClient.BufferPosition">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSL.OutputClient.Init(Cryville.Audio.WaveFormat,System.Single,Cryville.Audio.AudioShareMode)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSL.OutputClient.IsFormatSupported(Cryville.Audio.WaveFormat,System.Nullable{Cryville.Audio.WaveFormat}@,Cryville.Audio.AudioShareMode)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSL.OutputClient.Start">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSL.OutputClient.Pause">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.OpenSL.OutputDevice">
|
||||
<summary>
|
||||
An <see cref="T:Cryville.Audio.IAudioDevice" /> that interacts with OpenSL ES.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSL.OutputDevice.Finalize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSL.OutputDevice.Dispose">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSL.OutputDevice.Dispose(System.Boolean)">
|
||||
<summary>
|
||||
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
|
||||
</summary>
|
||||
<param name="disposing">Whether the method is being called by user.</param>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.OpenSL.OutputDevice.Name">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.OpenSL.OutputDevice.DataFlow">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSL.OutputDevice.Connect">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.Source.CachedAudioSource">
|
||||
<summary>
|
||||
An <see cref="T:Cryville.Audio.AudioStream" /> that caches data for reuse.
|
||||
@@ -525,135 +434,6 @@
|
||||
<member name="M:Cryville.Audio.Source.FunctionAudioSource.Write(System.Byte[],System.Int32,System.Int32)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.Source.LibavFileAudioSource">
|
||||
<summary>
|
||||
An <see cref="T:Cryville.Audio.AudioStream" /> that uses Libav to demux and decode audio files.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.#ctor(System.String)">
|
||||
<summary>
|
||||
Creates an instance of the <see cref="T:Cryville.Audio.Source.LibavFileAudioSource" /> class and loads the specified <paramref name="file" />.
|
||||
</summary>
|
||||
<param name="file">The audio file.</param>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.Disposed">
|
||||
<summary>
|
||||
Whether this audio stream has been disposed.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.Dispose(System.Boolean)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.EndOfData">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.BestStreamIndex">
|
||||
<summary>
|
||||
The index to the best audio stream.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.Streams">
|
||||
<summary>
|
||||
The collection of indices to all audio streams.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.SelectStream">
|
||||
<summary>
|
||||
Selects the best stream as the source.
|
||||
</summary>
|
||||
<exception cref="T:System.InvalidOperationException">The stream has been selected.</exception>
|
||||
<remarks>
|
||||
<para>This method can only be called before <see cref="M:Cryville.Audio.AudioStream.SetFormat(Cryville.Audio.WaveFormat,System.Int32)" /> is called, which is called while setting <see cref="P:Cryville.Audio.AudioClient.Source" />.</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.SelectStream(System.Int32)">
|
||||
<summary>
|
||||
Selects a stream as the source.
|
||||
</summary>
|
||||
<param name="index">The index of the stream.</param>
|
||||
<exception cref="T:System.InvalidOperationException">The stream has been selected.</exception>
|
||||
<remarks>
|
||||
<para>This method can only be called before <see cref="M:Cryville.Audio.AudioStream.SetFormat(Cryville.Audio.WaveFormat,System.Int32)" /> is called, which is called while setting <see cref="P:Cryville.Audio.AudioClient.Source" />.</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.GetStreamDuration(System.Int32)">
|
||||
<summary>
|
||||
Gets the duration of a stream or the file.
|
||||
</summary>
|
||||
<param name="streamId">The stream index. The duration of the file is retrieved if <c>-1</c> is specified.</param>
|
||||
<returns>The duration in seconds.</returns>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.IsFormatSupported(Cryville.Audio.WaveFormat)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.OnSetFormat">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.Read(System.Byte[],System.Int32,System.Int32)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.Seek(System.Int64,System.IO.SeekOrigin)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.SeekTime(System.Double,System.IO.SeekOrigin)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.CanRead">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.CanSeek">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.CanWrite">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.Length">
|
||||
<inheritdoc />
|
||||
<remarks>
|
||||
<para>This property may be inaccurate.</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.Duration">
|
||||
<inheritdoc />
|
||||
<remarks>
|
||||
<para>This property may be inaccurate.</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.Time">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.Position">
|
||||
<inheritdoc />
|
||||
<remarks>
|
||||
<para>This property may become inaccurate after <see cref="M:Cryville.Audio.Source.LibavFileAudioSource.Seek(System.Int64,System.IO.SeekOrigin)" /> is called.</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.Flush">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.SetLength(System.Int64)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.Write(System.Byte[],System.Int32,System.Int32)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.Source.LibavException">
|
||||
<summary>
|
||||
The exception that is thrown by Libav.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.LibavException.#ctor">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.LibavException.#ctor(System.String)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.LibavException.#ctor(System.String,System.Exception)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.LibavException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.Source.SimpleSequencerSource">
|
||||
<summary>
|
||||
A simple <see cref="T:Cryville.Audio.AudioStream" /> that mixes sequenced audio sources.
|
||||
@@ -825,99 +605,6 @@
|
||||
Square wave.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.Wasapi.AudioClient">
|
||||
<summary>
|
||||
An <see cref="T:Cryville.Audio.AudioClient" /> that interact with Wasapi.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Wasapi.AudioClient.Finalize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Wasapi.AudioClient.Dispose(System.Boolean)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Wasapi.AudioClient.Device">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Wasapi.AudioClient.DefaultBufferDuration">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Wasapi.AudioClient.MinimumBufferDuration">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Wasapi.AudioClient.DefaultFormat">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Wasapi.AudioClient.Format">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Wasapi.AudioClient.BufferSize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Wasapi.AudioClient.MaximumLatency">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Wasapi.AudioClient.Position">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Wasapi.AudioClient.BufferPosition">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Wasapi.AudioClient.IsFormatSupported(Cryville.Audio.WaveFormat,System.Nullable{Cryville.Audio.WaveFormat}@,Cryville.Audio.AudioShareMode)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Wasapi.AudioClient.Init(Cryville.Audio.WaveFormat,System.Single,Cryville.Audio.AudioShareMode)">
|
||||
<summary>
|
||||
Initialize the client.
|
||||
</summary>
|
||||
<param name="format">The wave format.</param>
|
||||
<param name="bufferDuration">The buffer duration of the connection. The value is clamped to <see cref="P:Cryville.Audio.Wasapi.AudioClient.MinimumBufferDuration" /> if too small. If <paramref name="shareMode" /> is set to <see cref="F:Cryville.Audio.AudioShareMode.Shared" />, the buffer duration will be determined automatically despite this parameter.</param>
|
||||
<param name="shareMode">The share mode of the connection.</param>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Wasapi.AudioClient.Start">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Wasapi.AudioClient.Pause">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.Wasapi.MMDevice">
|
||||
<summary>
|
||||
An <see cref="T:Cryville.Audio.IAudioDevice" /> that interacts with Wasapi.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Wasapi.MMDevice.Properties">
|
||||
<summary>
|
||||
The properties of the device.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Wasapi.MMDevice.Name">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Wasapi.MMDevice.DataFlow">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Wasapi.MMDevice.Connect">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.Wasapi.MMDeviceEnumerator">
|
||||
<summary>
|
||||
An <see cref="T:Cryville.Audio.IAudioDeviceManager" /> that interact with Wasapi.
|
||||
</summary>
|
||||
<remarks>
|
||||
<c>Cryville.Audio.WasapiWrapper.dll</c> is required.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Wasapi.MMDeviceEnumerator.#ctor">
|
||||
<summary>
|
||||
Creates an instance of the <see cref="T:Cryville.Audio.Wasapi.MMDeviceEnumerator" /> class.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Wasapi.MMDeviceEnumerator.GetDevices(Cryville.Audio.DataFlow)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Wasapi.MMDeviceEnumerator.GetDefaultDevice(Cryville.Audio.DataFlow)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.WaveFormat">
|
||||
<summary>
|
||||
The wave format.
|
||||
@@ -930,7 +617,7 @@
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WaveFormat.SampleRate">
|
||||
<summary>
|
||||
The sample rate (samples per second.)
|
||||
The sample rate (samples per channel per second, i.e. frames per second.)
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WaveFormat.SampleFormat">
|
||||
@@ -943,6 +630,11 @@
|
||||
Bit count per sample.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WaveFormat.FrameSize">
|
||||
<summary>
|
||||
Bytes per frame.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WaveFormat.BytesPerSecond">
|
||||
<summary>
|
||||
Bytes per second.
|
||||
@@ -1019,109 +711,5 @@
|
||||
IEEE 754 double precision floating-point sample format.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.WinMM.WaveOutClient">
|
||||
<summary>
|
||||
An <see cref="T:Cryville.Audio.AudioClient" /> that interacts with WinMM.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WinMM.WaveOutClient.Finalize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WinMM.WaveOutClient.Dispose(System.Boolean)">
|
||||
<summary>
|
||||
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
|
||||
</summary>
|
||||
<param name="disposing">Whether the method is being called by user.</param>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WinMM.WaveOutClient.Device">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WinMM.WaveOutClient.DefaultBufferDuration">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WinMM.WaveOutClient.MinimumBufferDuration">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WinMM.WaveOutClient.DefaultFormat">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WinMM.WaveOutClient.Format">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WinMM.WaveOutClient.BufferSize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WinMM.WaveOutClient.MaximumLatency">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WinMM.WaveOutClient.Position">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WinMM.WaveOutClient.BufferPosition">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WinMM.WaveOutClient.Init(Cryville.Audio.WaveFormat,System.Single,Cryville.Audio.AudioShareMode)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WinMM.WaveOutClient.IsFormatSupported(Cryville.Audio.WaveFormat,System.Nullable{Cryville.Audio.WaveFormat}@,Cryville.Audio.AudioShareMode)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WinMM.WaveOutClient.Start">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WinMM.WaveOutClient.Pause">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.WinMM.WaveOutDevice">
|
||||
<summary>
|
||||
An <see cref="T:Cryville.Audio.IAudioDevice" /> that interacts with WinMM.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WinMM.WaveOutDevice.Dispose">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WinMM.WaveOutDevice.Dispose(System.Boolean)">
|
||||
<summary>
|
||||
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
|
||||
</summary>
|
||||
<param name="disposing">Whether the method is being called by user.</param>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WinMM.WaveOutDevice.Name">
|
||||
<summary>
|
||||
The friendly name of the device.
|
||||
</summary>
|
||||
<remarks>Due to technical reason, this field is truncated if it has more than 31 characters.</remarks>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WinMM.WaveOutDevice.DataFlow">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WinMM.WaveOutDevice.Connect">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.WinMM.WaveDeviceManager">
|
||||
<summary>
|
||||
An <see cref="T:Cryville.Audio.IAudioDeviceManager" /> that interacts with WinMM.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WinMM.WaveDeviceManager.#ctor">
|
||||
<summary>
|
||||
Creates an instance of the <see cref="T:Cryville.Audio.WinMM.WaveDeviceManager" /> class.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WinMM.WaveDeviceManager.Dispose">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WinMM.WaveDeviceManager.Dispose(System.Boolean)">
|
||||
<summary>
|
||||
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
|
||||
</summary>
|
||||
<param name="disposing">Whether the method is being called by user.</param>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WinMM.WaveDeviceManager.GetDefaultDevice(Cryville.Audio.DataFlow)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WinMM.WaveDeviceManager.GetDevices(Cryville.Audio.DataFlow)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
||||
|
@@ -23,21 +23,6 @@
|
||||
客户端的设备。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.AudioClient.DefaultBufferDuration">
|
||||
<summary>
|
||||
客户端的默认缓存时长(毫秒)。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.AudioClient.MinimumBufferDuration">
|
||||
<summary>
|
||||
客户端的最小缓存时长(毫秒)。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.AudioClient.DefaultFormat">
|
||||
<summary>
|
||||
设备的默认波形格式。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.AudioClient.Format">
|
||||
<summary>
|
||||
当前连接使用的波形格式。
|
||||
@@ -45,13 +30,16 @@
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.AudioClient.BufferSize">
|
||||
<summary>
|
||||
缓存大小(字节)。
|
||||
缓存大小(帧)。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.AudioClient.MaximumLatency">
|
||||
<summary>
|
||||
连接的最大延迟(毫秒)。
|
||||
</summary>
|
||||
<remarks>
|
||||
<para>如果 API 不提供最大延迟,则该值为 0。</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.AudioClient.Playing">
|
||||
<summary>
|
||||
@@ -78,28 +66,6 @@
|
||||
音频源。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.AudioClient.IsFormatSupported(Cryville.Audio.WaveFormat,System.Nullable{Cryville.Audio.WaveFormat}@,Cryville.Audio.AudioShareMode)">
|
||||
<summary>
|
||||
获取设备是否支持 <paramref name="format" />。
|
||||
</summary>
|
||||
<param name="format">指定的波形格式。</param>
|
||||
<param name="suggestion">
|
||||
设备建议的波形格式。如果设备支持 <paramref name="format" /> 则直接返回该参数。如果设备不支持任何格式则返回 <see langword="null" />。
|
||||
</param>
|
||||
<param name="shareMode">共享模式。</param>
|
||||
<returns>
|
||||
设备是否支持 <paramref name="format" />。
|
||||
</returns>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.AudioClient.Init(Cryville.Audio.WaveFormat,System.Single,Cryville.Audio.AudioShareMode)">
|
||||
<summary>
|
||||
初始化客户端。
|
||||
</summary>
|
||||
<param name="format">波形格式。</param>
|
||||
<param name="bufferDuration">连接的缓存时长(毫秒)。</param>
|
||||
<param name="shareMode">连接的共享模式。</param>
|
||||
<remarks>不同 API 可能会执行不同的操作。参见实现类的文档。</remarks>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.AudioClient.Start">
|
||||
<summary>
|
||||
开始传输波形数据。
|
||||
@@ -144,7 +110,7 @@
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.AudioStream.BufferSize">
|
||||
<summary>
|
||||
缓存大小(字节)。
|
||||
缓存大小(帧)。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.AudioStream.EndOfData">
|
||||
@@ -157,7 +123,7 @@
|
||||
设置音频流的波形格式和缓存大小。
|
||||
</summary>
|
||||
<param name="format">波形格式。</param>
|
||||
<param name="bufferSize">缓存大小(字节)。</param>
|
||||
<param name="bufferSize">缓存大小(帧)。</param>
|
||||
<exception cref="T:System.InvalidOperationException">该方法在当前音频流上已被成功调用过一次。</exception>
|
||||
<exception cref="T:System.NotSupportedException">
|
||||
音频流不支持 <paramref name="format" />。
|
||||
@@ -218,6 +184,11 @@
|
||||
音频连接的数据流向。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Cryville.Audio.DataFlow.None">
|
||||
<summary>
|
||||
无。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Cryville.Audio.DataFlow.Out">
|
||||
<summary>
|
||||
数据从软件流向硬件。
|
||||
@@ -245,11 +216,16 @@
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.EngineBuilder.Create">
|
||||
<summary>
|
||||
创建一个推荐的 <see cref="T:Cryville.Audio.IAudioDeviceManager" />。
|
||||
创建 <see cref="F:Cryville.Audio.EngineBuilder.Engines" /> 列表中的一个 <see cref="T:Cryville.Audio.IAudioDeviceManager" />。
|
||||
</summary>
|
||||
<returns>
|
||||
一个推荐的 <see cref="T:Cryville.Audio.IAudioDeviceManager" />。如果没有支持的引擎则返回 <see langword="null" />。
|
||||
第一个能够被成功创建的 <see cref="T:Cryville.Audio.IAudioDeviceManager" />。如果没有支持的引擎则返回 <see langword="null" />。
|
||||
</returns>
|
||||
<remarks>
|
||||
<para>
|
||||
调用该方法前,先在 <see cref="F:Cryville.Audio.EngineBuilder.Engines" /> 中添加引擎。
|
||||
</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.IAudioDevice">
|
||||
<summary>
|
||||
@@ -266,10 +242,51 @@
|
||||
设备的数据流向。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.IAudioDevice.Connect">
|
||||
<member name="P:Cryville.Audio.IAudioDevice.BurstSize">
|
||||
<summary>
|
||||
设备的脉冲大小(帧)。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.IAudioDevice.MinimumBufferDuration">
|
||||
<summary>
|
||||
设备的最小缓存大小(帧)。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.IAudioDevice.DefaultBufferDuration">
|
||||
<summary>
|
||||
设备的默认缓存大小(帧)。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.IAudioDevice.DefaultFormat">
|
||||
<summary>
|
||||
设备在共享模式下的默认波形格式。
|
||||
</summary>
|
||||
<remarks>
|
||||
<para>
|
||||
对于独占模式的流,调用 <see cref="M:Cryville.Audio.IAudioDevice.IsFormatSupported(Cryville.Audio.WaveFormat,System.Nullable{Cryville.Audio.WaveFormat}@,Cryville.Audio.AudioShareMode)" /> 以确定可用的格式。
|
||||
</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.IAudioDevice.IsFormatSupported(Cryville.Audio.WaveFormat,System.Nullable{Cryville.Audio.WaveFormat}@,Cryville.Audio.AudioShareMode)">
|
||||
<summary>
|
||||
获取设备是否支持 <paramref name="format" />。
|
||||
</summary>
|
||||
<param name="format">指定的波形格式。</param>
|
||||
<param name="suggestion">
|
||||
设备建议的波形格式。如果设备支持 <paramref name="format" /> 则直接返回该参数。如果设备不支持任何格式则返回 <see langword="null" />。
|
||||
</param>
|
||||
<param name="shareMode">共享模式。</param>
|
||||
<returns>
|
||||
设备是否支持 <paramref name="format" />。
|
||||
</returns>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.IAudioDevice.Connect(Cryville.Audio.WaveFormat,System.Int32,Cryville.Audio.AudioShareMode)">
|
||||
<summary>
|
||||
连接到设备。
|
||||
</summary>
|
||||
<param name="format">波形格式。</param>
|
||||
<param name="bufferSize">连接的缓存大小(帧)。</param>
|
||||
<param name="shareMode">连接的共享模式。</param>
|
||||
<returns>
|
||||
一个用于与设备交互的 <see cref="T:Cryville.Audio.AudioClient" />。
|
||||
</returns>
|
||||
@@ -294,110 +311,6 @@
|
||||
</summary>
|
||||
<param name="dataFlow">数据流向。</param>
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.OpenSL.Engine">
|
||||
<summary>
|
||||
一个与 OpenSL ES 交互的 <see cref="T:Cryville.Audio.IAudioDeviceManager" />。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSL.Engine.#ctor">
|
||||
<summary>
|
||||
创建一个 <see cref="T:Cryville.Audio.OpenSL.Engine" /> 类的实例。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSL.Engine.Finalize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSL.Engine.Dispose">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSL.Engine.Dispose(System.Boolean)">
|
||||
<summary>
|
||||
执行与释放或重置非托管资源关联的应用程序定义的任务。
|
||||
</summary>
|
||||
<param name="disposing">该方法是否由用户调用。</param>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSL.Engine.GetDefaultDevice(Cryville.Audio.DataFlow)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSL.Engine.GetDevices(Cryville.Audio.DataFlow)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.OpenSL.OutputClient">
|
||||
<summary>
|
||||
一个与 OpenSL ES 交互的 <see cref="T:Cryville.Audio.AudioClient" />。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSL.OutputClient.Finalize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSL.OutputClient.Dispose(System.Boolean)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.OpenSL.OutputClient.Device">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.OpenSL.OutputClient.DefaultBufferDuration">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.OpenSL.OutputClient.MinimumBufferDuration">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.OpenSL.OutputClient.DefaultFormat">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.OpenSL.OutputClient.Format">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.OpenSL.OutputClient.BufferSize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.OpenSL.OutputClient.MaximumLatency">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.OpenSL.OutputClient.Position">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.OpenSL.OutputClient.BufferPosition">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSL.OutputClient.Init(Cryville.Audio.WaveFormat,System.Single,Cryville.Audio.AudioShareMode)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSL.OutputClient.IsFormatSupported(Cryville.Audio.WaveFormat,System.Nullable{Cryville.Audio.WaveFormat}@,Cryville.Audio.AudioShareMode)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSL.OutputClient.Start">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSL.OutputClient.Pause">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.OpenSL.OutputDevice">
|
||||
<summary>
|
||||
一个与 OpenSL ES 交互的 <see cref="T:Cryville.Audio.IAudioDevice" />。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSL.OutputDevice.Finalize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSL.OutputDevice.Dispose">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSL.OutputDevice.Dispose(System.Boolean)">
|
||||
<summary>
|
||||
执行与释放或重置非托管资源关联的应用程序定义的任务。
|
||||
</summary>
|
||||
<param name="disposing">该方法是否由用户调用。</param>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.OpenSL.OutputDevice.Name">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.OpenSL.OutputDevice.DataFlow">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.OpenSL.OutputDevice.Connect">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.Source.CachedAudioSource">
|
||||
<summary>
|
||||
一个缓存数据并对其进行复用的 <see cref="T:Cryville.Audio.AudioStream" />。
|
||||
@@ -547,143 +460,6 @@
|
||||
<member name="M:Cryville.Audio.Source.FunctionAudioSource.Write(System.Byte[],System.Int32,System.Int32)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.Source.LibavFileAudioSource">
|
||||
<summary>
|
||||
一个使用 Libav 解流并解码音频文件的 <see cref="T:Cryville.Audio.AudioStream" />。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.#ctor(System.String)">
|
||||
<summary>
|
||||
创建一个 <see cref="T:Cryville.Audio.Source.LibavFileAudioSource" /> 类的实例并加载指定的 <paramref name="file" />。
|
||||
</summary>
|
||||
<param name="file">音频文件。</param>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.Disposed">
|
||||
<summary>
|
||||
该音频流是否已被释放。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.Dispose(System.Boolean)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.EndOfData">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.BestStreamIndex">
|
||||
<summary>
|
||||
最佳音频流的索引。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.Streams">
|
||||
<summary>
|
||||
所有音频流的索引集。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.SelectStream">
|
||||
<summary>
|
||||
选择最佳音频流作为音频源。
|
||||
</summary>
|
||||
<exception cref="T:System.InvalidOperationException">已选择音频流。</exception>
|
||||
<remarks>
|
||||
<para>
|
||||
该方法只能在 <see cref="M:Cryville.Audio.AudioStream.SetFormat(Cryville.Audio.WaveFormat,System.Int32)" /> 被调用前调用,后者会在设置 <see cref="P:Cryville.Audio.AudioClient.Source" /> 时被调用。
|
||||
</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.SelectStream(System.Int32)">
|
||||
<summary>
|
||||
选择一个音频流作为音频源。
|
||||
</summary>
|
||||
<param name="index">音频流的索引。</param>
|
||||
<exception cref="T:System.InvalidOperationException">已选择音频流。</exception>
|
||||
<remarks>
|
||||
<para>
|
||||
该方法只能在 <see cref="M:Cryville.Audio.AudioStream.SetFormat(Cryville.Audio.WaveFormat,System.Int32)" /> 被调用前调用,后者会在设置 <see cref="P:Cryville.Audio.AudioClient.Source" /> 时被调用。
|
||||
</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.GetStreamDuration(System.Int32)">
|
||||
<summary>
|
||||
获取一个流或当前文件的时长。
|
||||
</summary>
|
||||
<param name="streamId">
|
||||
流索引。如果指定 <c>-1</c> 则返回文件的时长。
|
||||
</param>
|
||||
<returns>时长(秒)。</returns>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.IsFormatSupported(Cryville.Audio.WaveFormat)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.OnSetFormat">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.Read(System.Byte[],System.Int32,System.Int32)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.Seek(System.Int64,System.IO.SeekOrigin)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.SeekTime(System.Double,System.IO.SeekOrigin)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.CanRead">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.CanSeek">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.CanWrite">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.Length">
|
||||
<inheritdoc />
|
||||
<remarks>
|
||||
<para>该属性可能不准确。</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.Duration">
|
||||
<inheritdoc />
|
||||
<remarks>
|
||||
<para>该属性可能不准确。</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.Time">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.Position">
|
||||
<inheritdoc />
|
||||
<remarks>
|
||||
<para>
|
||||
该属性在调用 <see cref="M:Cryville.Audio.Source.LibavFileAudioSource.Seek(System.Int64,System.IO.SeekOrigin)" /> 后可能不准确。
|
||||
</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.Flush">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.SetLength(System.Int64)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.Write(System.Byte[],System.Int32,System.Int32)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.Source.LibavException">
|
||||
<summary>
|
||||
Libav 抛出的异常。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.LibavException.#ctor">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.LibavException.#ctor(System.String)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.LibavException.#ctor(System.String,System.Exception)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Source.LibavException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.Source.SimpleSequencerSource">
|
||||
<summary>
|
||||
一个对序列中的音频源进行混音的简单 <see cref="T:Cryville.Audio.AudioStream" />。
|
||||
@@ -881,101 +657,6 @@
|
||||
方波。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.Wasapi.AudioClient">
|
||||
<summary>
|
||||
一个与 Wasapi 交互的 <see cref="T:Cryville.Audio.AudioClient" />。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Wasapi.AudioClient.Finalize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Wasapi.AudioClient.Dispose(System.Boolean)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Wasapi.AudioClient.Device">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Wasapi.AudioClient.DefaultBufferDuration">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Wasapi.AudioClient.MinimumBufferDuration">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Wasapi.AudioClient.DefaultFormat">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Wasapi.AudioClient.Format">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Wasapi.AudioClient.BufferSize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Wasapi.AudioClient.MaximumLatency">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Wasapi.AudioClient.Position">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Wasapi.AudioClient.BufferPosition">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Wasapi.AudioClient.IsFormatSupported(Cryville.Audio.WaveFormat,System.Nullable{Cryville.Audio.WaveFormat}@,Cryville.Audio.AudioShareMode)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Wasapi.AudioClient.Init(Cryville.Audio.WaveFormat,System.Single,Cryville.Audio.AudioShareMode)">
|
||||
<summary>
|
||||
初始化客户端。
|
||||
</summary>
|
||||
<param name="format">波形格式。</param>
|
||||
<param name="bufferDuration">
|
||||
连接的缓存时长(毫秒)。如果该值太小,则其将被限制到 <see cref="P:Cryville.Audio.Wasapi.AudioClient.MinimumBufferDuration" />。如果 <paramref name="shareMode" /> 为 <see cref="F:Cryville.Audio.AudioShareMode.Shared" />,缓存时长将自动决定,且该参数无效。
|
||||
</param>
|
||||
<param name="shareMode">连接的共享模式。</param>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Wasapi.AudioClient.Start">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Wasapi.AudioClient.Pause">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.Wasapi.MMDevice">
|
||||
<summary>
|
||||
一个与 Wasapi 交互的 <see cref="T:Cryville.Audio.IAudioDevice" />。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Wasapi.MMDevice.Properties">
|
||||
<summary>
|
||||
设备的属性。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Wasapi.MMDevice.Name">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Wasapi.MMDevice.DataFlow">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Wasapi.MMDevice.Connect">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.Wasapi.MMDeviceEnumerator">
|
||||
<summary>
|
||||
一个与 Wasapi 交互的 <see cref="T:Cryville.Audio.IAudioDeviceManager" />。
|
||||
</summary>
|
||||
<remarks>
|
||||
需要 <c>Cryville.Audio.WasapiWrapper.dll</c>。
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Wasapi.MMDeviceEnumerator.#ctor">
|
||||
<summary>
|
||||
创建一个 <see cref="T:Cryville.Audio.Wasapi.MMDeviceEnumerator" /> 类的实例。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Wasapi.MMDeviceEnumerator.GetDevices(Cryville.Audio.DataFlow)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Wasapi.MMDeviceEnumerator.GetDefaultDevice(Cryville.Audio.DataFlow)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.WaveFormat">
|
||||
<summary>
|
||||
波形格式。
|
||||
@@ -988,7 +669,7 @@
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WaveFormat.SampleRate">
|
||||
<summary>
|
||||
采样率(每秒样本数)。
|
||||
采样率(每秒每频道样本数,即每秒帧数)。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WaveFormat.SampleFormat">
|
||||
@@ -1001,6 +682,11 @@
|
||||
每样本位数。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WaveFormat.FrameSize">
|
||||
<summary>
|
||||
每帧字节数。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WaveFormat.BytesPerSecond">
|
||||
<summary>
|
||||
每秒字节数。
|
||||
@@ -1077,109 +763,5 @@
|
||||
IEEE 754 双精度浮点型样本格式。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.WinMM.WaveOutClient">
|
||||
<summary>
|
||||
一个与 WinMM 交互的 <see cref="T:Cryville.Audio.AudioClient" />。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WinMM.WaveOutClient.Finalize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WinMM.WaveOutClient.Dispose(System.Boolean)">
|
||||
<summary>
|
||||
执行与释放或重置非托管资源关联的应用程序定义的任务。
|
||||
</summary>
|
||||
<param name="disposing">该方法是否由用户调用。</param>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WinMM.WaveOutClient.Device">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WinMM.WaveOutClient.DefaultBufferDuration">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WinMM.WaveOutClient.MinimumBufferDuration">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WinMM.WaveOutClient.DefaultFormat">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WinMM.WaveOutClient.Format">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WinMM.WaveOutClient.BufferSize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WinMM.WaveOutClient.MaximumLatency">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WinMM.WaveOutClient.Position">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WinMM.WaveOutClient.BufferPosition">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WinMM.WaveOutClient.Init(Cryville.Audio.WaveFormat,System.Single,Cryville.Audio.AudioShareMode)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WinMM.WaveOutClient.IsFormatSupported(Cryville.Audio.WaveFormat,System.Nullable{Cryville.Audio.WaveFormat}@,Cryville.Audio.AudioShareMode)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WinMM.WaveOutClient.Start">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WinMM.WaveOutClient.Pause">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.WinMM.WaveOutDevice">
|
||||
<summary>
|
||||
一个与 WinMM 交互的 <see cref="T:Cryville.Audio.IAudioDevice" />。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WinMM.WaveOutDevice.Dispose">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WinMM.WaveOutDevice.Dispose(System.Boolean)">
|
||||
<summary>
|
||||
执行与释放或重置非托管资源关联的应用程序定义的任务。
|
||||
</summary>
|
||||
<param name="disposing">该方法是否由用户调用。</param>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WinMM.WaveOutDevice.Name">
|
||||
<summary>
|
||||
设备的通俗名称。
|
||||
</summary>
|
||||
<remarks>由于技术原因,该属性最大字符数限制为 31。</remarks>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WinMM.WaveOutDevice.DataFlow">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WinMM.WaveOutDevice.Connect">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.WinMM.WaveDeviceManager">
|
||||
<summary>
|
||||
一个与 WinMM 交互的 <see cref="T:Cryville.Audio.IAudioDeviceManager" />。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WinMM.WaveDeviceManager.#ctor">
|
||||
<summary>
|
||||
创建一个 <see cref="T:Cryville.Audio.WinMM.WaveDeviceManager" /> 类的实例。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WinMM.WaveDeviceManager.Dispose">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WinMM.WaveDeviceManager.Dispose(System.Boolean)">
|
||||
<summary>
|
||||
执行与释放或重置非托管资源关联的应用程序定义的任务。
|
||||
</summary>
|
||||
<param name="disposing">该方法是否由用户调用。</param>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WinMM.WaveDeviceManager.GetDefaultDevice(Cryville.Audio.DataFlow)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WinMM.WaveDeviceManager.GetDevices(Cryville.Audio.DataFlow)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
||||
|
BIN
Assets/Plugins/Windows/Cryville.Audio.Wasapi.dll
Normal file
BIN
Assets/Plugins/Windows/Cryville.Audio.Wasapi.dll
Normal file
Binary file not shown.
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 671e2cc4c4fd8174c943970b5968263f
|
||||
guid: 5ab893d5d77528b4e99b869dc7d253c7
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
@@ -18,8 +18,8 @@ PluginImporter:
|
||||
settings:
|
||||
Exclude Android: 1
|
||||
Exclude Editor: 0
|
||||
Exclude Linux64: 0
|
||||
Exclude OSXUniversal: 0
|
||||
Exclude Linux64: 1
|
||||
Exclude OSXUniversal: 1
|
||||
Exclude Win: 0
|
||||
Exclude Win64: 0
|
||||
- first:
|
||||
@@ -40,17 +40,17 @@ PluginImporter:
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
DefaultValueInitialized: true
|
||||
OS: AnyOS
|
||||
OS: Windows
|
||||
- first:
|
||||
Standalone: Linux64
|
||||
second:
|
||||
enabled: 1
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: OSXUniversal
|
||||
second:
|
||||
enabled: 1
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
@@ -65,6 +65,12 @@ PluginImporter:
|
||||
enabled: 1
|
||||
settings:
|
||||
CPU: x86_64
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
96
Assets/Plugins/Windows/Cryville.Audio.Wasapi.xml
Normal file
96
Assets/Plugins/Windows/Cryville.Audio.Wasapi.xml
Normal file
@@ -0,0 +1,96 @@
|
||||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>Cryville.Audio.Wasapi</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:Cryville.Audio.Wasapi.AudioClientWrapper">
|
||||
<summary>
|
||||
An <see cref="T:Cryville.Audio.AudioClient" /> that interact with Wasapi.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Wasapi.AudioClientWrapper.Finalize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Wasapi.AudioClientWrapper.Dispose(System.Boolean)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Wasapi.AudioClientWrapper.Device">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Wasapi.AudioClientWrapper.Format">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Wasapi.AudioClientWrapper.BufferSize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Wasapi.AudioClientWrapper.MaximumLatency">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Wasapi.AudioClientWrapper.Position">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Wasapi.AudioClientWrapper.BufferPosition">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Wasapi.AudioClientWrapper.Start">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Wasapi.AudioClientWrapper.Pause">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.Wasapi.MMDeviceEnumeratorWrapper">
|
||||
<summary>
|
||||
An <see cref="T:Cryville.Audio.IAudioDeviceManager" /> that interact with Wasapi.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Wasapi.MMDeviceEnumeratorWrapper.#ctor">
|
||||
<summary>
|
||||
Creates an instance of the <see cref="T:Cryville.Audio.Wasapi.MMDeviceEnumeratorWrapper" /> class.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Wasapi.MMDeviceEnumeratorWrapper.GetDevices(Cryville.Audio.DataFlow)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Wasapi.MMDeviceEnumeratorWrapper.GetDefaultDevice(Cryville.Audio.DataFlow)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.Wasapi.MMDeviceWrapper">
|
||||
<summary>
|
||||
An <see cref="T:Cryville.Audio.IAudioDevice" /> that interacts with Wasapi.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Wasapi.MMDeviceWrapper.Dispose(System.Boolean)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Wasapi.MMDeviceWrapper.Properties">
|
||||
<summary>
|
||||
The properties of the device.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Wasapi.MMDeviceWrapper.Name">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Wasapi.MMDeviceWrapper.DataFlow">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Wasapi.MMDeviceWrapper.BurstSize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Wasapi.MMDeviceWrapper.MinimumBufferSize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Wasapi.MMDeviceWrapper.DefaultBufferSize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.Wasapi.MMDeviceWrapper.DefaultFormat">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Wasapi.MMDeviceWrapper.IsFormatSupported(Cryville.Audio.WaveFormat,System.Nullable{Cryville.Audio.WaveFormat}@,Cryville.Audio.AudioShareMode)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.Wasapi.MMDeviceWrapper.Connect(Cryville.Audio.WaveFormat,System.Int32,Cryville.Audio.AudioShareMode)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
7
Assets/Plugins/Windows/Cryville.Audio.Wasapi.xml.meta
Normal file
7
Assets/Plugins/Windows/Cryville.Audio.Wasapi.xml.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3a357bb0bbd7eed4eb2b4e2065d0c379
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
BIN
Assets/Plugins/Windows/Cryville.Audio.WaveformAudio.dll
Normal file
BIN
Assets/Plugins/Windows/Cryville.Audio.WaveformAudio.dll
Normal file
Binary file not shown.
76
Assets/Plugins/Windows/Cryville.Audio.WaveformAudio.dll.meta
Normal file
76
Assets/Plugins/Windows/Cryville.Audio.WaveformAudio.dll.meta
Normal file
@@ -0,0 +1,76 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 49202906464ea5c448327df934d2a0ac
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
: Any
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
Exclude Android: 1
|
||||
Exclude Editor: 0
|
||||
Exclude Linux64: 1
|
||||
Exclude OSXUniversal: 1
|
||||
Exclude Win: 0
|
||||
Exclude Win64: 0
|
||||
- first:
|
||||
Android: Android
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: ARMv7
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 0
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
DefaultValueInitialized: true
|
||||
OS: Windows
|
||||
- first:
|
||||
Standalone: Linux64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: OSXUniversal
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: Win
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
CPU: x86
|
||||
- first:
|
||||
Standalone: Win64
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
CPU: x86_64
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
142
Assets/Plugins/Windows/Cryville.Audio.WaveformAudio.xml
Normal file
142
Assets/Plugins/Windows/Cryville.Audio.WaveformAudio.xml
Normal file
@@ -0,0 +1,142 @@
|
||||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>Cryville.Audio.WaveformAudio</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:Microsoft.Windows.MmSysCom.MultimediaSystemException">
|
||||
<summary>
|
||||
Exception occurring in Multimedia System.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Windows.MmSysCom.MultimediaSystemException.#ctor">
|
||||
<summary>
|
||||
Creates an instance of the <see cref="T:Microsoft.Windows.MmSysCom.MultimediaSystemException" /> class.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Windows.MmSysCom.MultimediaSystemException.#ctor(System.String)">
|
||||
<summary>
|
||||
Creates an instance of the <see cref="T:Microsoft.Windows.MmSysCom.MultimediaSystemException" /> class.
|
||||
<param name="message">The error message that explains the reason for the exception.</param>
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Windows.MmSysCom.MultimediaSystemException.#ctor(System.String,System.Exception)">
|
||||
<summary>
|
||||
Creates an instance of the <see cref="T:Microsoft.Windows.MmSysCom.MultimediaSystemException" /> class.
|
||||
</summary>
|
||||
<param name="message">The error message that explains the reason for the exception.</param>
|
||||
<param name="innerException">The exception that is the cause of the current exception.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Windows.MmSysCom.MultimediaSystemException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
|
||||
<summary>
|
||||
Creates an instance of the <see cref="T:Microsoft.Windows.MmSysCom.MultimediaSystemException" /> class with serialized data.
|
||||
</summary>
|
||||
<param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo" /> that holds the serialized object data about the exception being thrown.</param>
|
||||
<param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext" /> that contains contextual information about the source or destination.</param>
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.WaveformAudio.WaveOutClient">
|
||||
<summary>
|
||||
An <see cref="T:Cryville.Audio.AudioClient" /> that interacts with WinMM.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WaveformAudio.WaveOutClient.Finalize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WaveformAudio.WaveOutClient.Dispose(System.Boolean)">
|
||||
<summary>
|
||||
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
|
||||
</summary>
|
||||
<param name="disposing">Whether the method is being called by user.</param>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WaveformAudio.WaveOutClient.Device">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WaveformAudio.WaveOutClient.Format">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WaveformAudio.WaveOutClient.BufferSize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WaveformAudio.WaveOutClient.MaximumLatency">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WaveformAudio.WaveOutClient.Position">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WaveformAudio.WaveOutClient.BufferPosition">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WaveformAudio.WaveOutClient.Start">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WaveformAudio.WaveOutClient.Pause">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.WaveformAudio.WaveOutDevice">
|
||||
<summary>
|
||||
An <see cref="T:Cryville.Audio.IAudioDevice" /> that interacts with WinMM.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WaveformAudio.WaveOutDevice.Dispose">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WaveformAudio.WaveOutDevice.Dispose(System.Boolean)">
|
||||
<summary>
|
||||
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
|
||||
</summary>
|
||||
<param name="disposing">Whether the method is being called by user.</param>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WaveformAudio.WaveOutDevice.Name">
|
||||
<summary>
|
||||
The friendly name of the device.
|
||||
</summary>
|
||||
<remarks>Due to technical reason, this field is truncated if it has more than 31 characters.</remarks>
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WaveformAudio.WaveOutDevice.DataFlow">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WaveformAudio.WaveOutDevice.BurstSize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WaveformAudio.WaveOutDevice.MinimumBufferSize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WaveformAudio.WaveOutDevice.DefaultBufferSize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.Audio.WaveformAudio.WaveOutDevice.DefaultFormat">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WaveformAudio.WaveOutDevice.IsFormatSupported(Cryville.Audio.WaveFormat,System.Nullable{Cryville.Audio.WaveFormat}@,Cryville.Audio.AudioShareMode)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WaveformAudio.WaveOutDevice.Connect(Cryville.Audio.WaveFormat,System.Int32,Cryville.Audio.AudioShareMode)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Cryville.Audio.WaveformAudio.WaveDeviceManager">
|
||||
<summary>
|
||||
An <see cref="T:Cryville.Audio.IAudioDeviceManager" /> that interacts with WinMM.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WaveformAudio.WaveDeviceManager.#ctor">
|
||||
<summary>
|
||||
Creates an instance of the <see cref="T:Cryville.Audio.WaveformAudio.WaveDeviceManager" /> class.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WaveformAudio.WaveDeviceManager.Dispose">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WaveformAudio.WaveDeviceManager.Dispose(System.Boolean)">
|
||||
<summary>
|
||||
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
|
||||
</summary>
|
||||
<param name="disposing">Whether the method is being called by user.</param>
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WaveformAudio.WaveDeviceManager.GetDefaultDevice(Cryville.Audio.DataFlow)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Cryville.Audio.WaveformAudio.WaveDeviceManager.GetDevices(Cryville.Audio.DataFlow)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 03693f94c587a8d4b8d9bc16e9990cf9
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Reference in New Issue
Block a user