forked from sin365/AxibugEmuOnline
Merge pull request 'dev_basemynes' (#4) from alienjack/AxibugEmuOnline:dev_basemynes into dev_basemynes
Reviewed-on: sin365/AxibugEmuOnline#4
This commit is contained in:
commit
65978580be
3
.gitignore
vendored
3
.gitignore
vendored
@ -3,3 +3,6 @@
|
|||||||
/AxibugEmuOnline.Client/Temp/
|
/AxibugEmuOnline.Client/Temp/
|
||||||
/AxibugEmuOnline.Client/.vs/
|
/AxibugEmuOnline.Client/.vs/
|
||||||
/AxibugEmuOnline.Client/*.csproj
|
/AxibugEmuOnline.Client/*.csproj
|
||||||
|
/AxibugEmuOnline.Client/*.sln
|
||||||
|
/AxibugEmuOnline.Client/*.sln
|
||||||
|
/AxibugEmuOnline.Client/ProjectSettings/Packages/
|
||||||
|
@ -25,7 +25,5 @@ namespace MyNes.Core
|
|||||||
void SignalToggle(bool started);
|
void SignalToggle(bool started);
|
||||||
|
|
||||||
void SetVolume(int Vol);
|
void SetVolume(int Vol);
|
||||||
|
|
||||||
void Update();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -37,7 +37,5 @@ namespace MyNes.Core
|
|||||||
void ToggleFPS(bool show_fps);
|
void ToggleFPS(bool show_fps);
|
||||||
|
|
||||||
void ApplyFilter();
|
void ApplyFilter();
|
||||||
|
|
||||||
void Update();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,7 @@ namespace MyNes.Core
|
|||||||
|
|
||||||
public static WaveRecorder WaveRecorder { get; private set; }
|
public static WaveRecorder WaveRecorder { get; private set; }
|
||||||
|
|
||||||
public static void Initialize(IFileManager fileManager)
|
public static void Initialize(IFileManager fileManager, IVideoProvider videoProvider, IAudioProvider audioProvider)
|
||||||
{
|
{
|
||||||
Tracer.WriteLine("Initializing My Nes Core ....");
|
Tracer.WriteLine("Initializing My Nes Core ....");
|
||||||
FileManager = fileManager;
|
FileManager = fileManager;
|
||||||
@ -42,6 +42,8 @@ namespace MyNes.Core
|
|||||||
.GetAssemblies()
|
.GetAssemblies()
|
||||||
.SelectMany(ass => ass.GetTypes());
|
.SelectMany(ass => ass.GetTypes());
|
||||||
|
|
||||||
|
VideoProvider = videoProvider;
|
||||||
|
AudioProvider = audioProvider;
|
||||||
foreach (var type in allTypes)
|
foreach (var type in allTypes)
|
||||||
{
|
{
|
||||||
if (type.IsSubclassOf(typeof(Board)) && !type.IsAbstract)
|
if (type.IsSubclassOf(typeof(Board)) && !type.IsAbstract)
|
||||||
@ -50,18 +52,6 @@ namespace MyNes.Core
|
|||||||
Boards.Add(board);
|
Boards.Add(board);
|
||||||
Tracer.WriteLine("Board added: " + board.Name + " [ Mapper " + board.MapperNumber + "]");
|
Tracer.WriteLine("Board added: " + board.Name + " [ Mapper " + board.MapperNumber + "]");
|
||||||
}
|
}
|
||||||
else if (VideoProvider == null && typeof(IVideoProvider).IsAssignableFrom(type) && !type.IsAbstract)
|
|
||||||
{
|
|
||||||
IVideoProvider videoProvider = Activator.CreateInstance(type) as IVideoProvider;
|
|
||||||
VideoProvider = videoProvider;
|
|
||||||
Tracer.WriteLine("Video provider setuped: " + videoProvider.Name + " [" + videoProvider.ID + "]");
|
|
||||||
}
|
|
||||||
else if (typeof(IAudioProvider).IsAssignableFrom(type) && !type.IsAbstract)
|
|
||||||
{
|
|
||||||
IAudioProvider audioProvider = Activator.CreateInstance(type) as IAudioProvider;
|
|
||||||
AudioProvider = audioProvider;
|
|
||||||
Tracer.WriteLine("Audio provider setuped: " + audioProvider.Name + " [" + audioProvider.ID + "]");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Tracer.WriteInformation("Done.");
|
Tracer.WriteInformation("Done.");
|
||||||
|
@ -167,10 +167,59 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: ac8cd27a180bf3e489b2ca27c821bffe, type: 3}
|
m_Script: {fileID: 11500000, guid: ac8cd27a180bf3e489b2ca27c821bffe, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
AS: {fileID: 1379369699}
|
VideoCom: {fileID: 0}
|
||||||
DrawImage: {fileID: 730321751}
|
AudioCom: {fileID: 0}
|
||||||
DO: {fileID: 0}
|
--- !u!1 &455467288
|
||||||
Fps: {fileID: 1680039028}
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 455467291}
|
||||||
|
- component: {fileID: 455467290}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: GameObject
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!114 &455467290
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 455467288}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 00080631f10e2834db28c37a11188a74, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
sampleRate: 44100
|
||||||
|
channels: 2
|
||||||
|
bufferLength: 1024
|
||||||
|
audioClip: {fileID: 0}
|
||||||
|
audioSource: {fileID: 0}
|
||||||
|
audioBuffer: []
|
||||||
|
isRunning: 1
|
||||||
|
--- !u!4 &455467291
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 455467288}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 253.16292, y: 149.09415, z: -2.2723875}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1 &708549044
|
--- !u!1 &708549044
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -276,13 +325,14 @@ GameObject:
|
|||||||
- component: {fileID: 730321749}
|
- component: {fileID: 730321749}
|
||||||
- component: {fileID: 730321752}
|
- component: {fileID: 730321752}
|
||||||
- component: {fileID: 730321751}
|
- component: {fileID: 730321751}
|
||||||
|
- component: {fileID: 730321753}
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: video
|
m_Name: video
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
m_StaticEditorFlags: 0
|
m_StaticEditorFlags: 0
|
||||||
m_IsActive: 1
|
m_IsActive: 0
|
||||||
--- !u!224 &730321749
|
--- !u!224 &730321749
|
||||||
RectTransform:
|
RectTransform:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -337,6 +387,19 @@ CanvasRenderer:
|
|||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 730321748}
|
m_GameObject: {fileID: 730321748}
|
||||||
m_CullTransparentMesh: 1
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &730321753
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 730321748}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: f2632911774df3c488ec24b39651c4de, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_image: {fileID: 730321751}
|
||||||
--- !u!1 &786008057
|
--- !u!1 &786008057
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -369,7 +432,6 @@ RectTransform:
|
|||||||
m_ConstrainProportionsScale: 0
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 730321749}
|
- {fileID: 730321749}
|
||||||
- {fileID: 1680039031}
|
|
||||||
- {fileID: 1379369698}
|
- {fileID: 1379369698}
|
||||||
m_Father: {fileID: 258485947}
|
m_Father: {fileID: 258485947}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
@ -611,6 +673,7 @@ GameObject:
|
|||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 1379369698}
|
- component: {fileID: 1379369698}
|
||||||
- component: {fileID: 1379369699}
|
- component: {fileID: 1379369699}
|
||||||
|
- component: {fileID: 1379369700}
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: Audio
|
m_Name: Audio
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
@ -648,7 +711,7 @@ AudioSource:
|
|||||||
serializedVersion: 4
|
serializedVersion: 4
|
||||||
OutputAudioMixerGroup: {fileID: 0}
|
OutputAudioMixerGroup: {fileID: 0}
|
||||||
m_audioClip: {fileID: 0}
|
m_audioClip: {fileID: 0}
|
||||||
m_PlayOnAwake: 1
|
m_PlayOnAwake: 0
|
||||||
m_Volume: 1
|
m_Volume: 1
|
||||||
m_Pitch: 1
|
m_Pitch: 1
|
||||||
Loop: 0
|
Loop: 0
|
||||||
@ -733,100 +796,19 @@ AudioSource:
|
|||||||
m_PreInfinity: 2
|
m_PreInfinity: 2
|
||||||
m_PostInfinity: 2
|
m_PostInfinity: 2
|
||||||
m_RotationOrder: 4
|
m_RotationOrder: 4
|
||||||
--- !u!1 &1680039027
|
--- !u!114 &1379369700
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 1680039031}
|
|
||||||
- component: {fileID: 1680039030}
|
|
||||||
- component: {fileID: 1680039028}
|
|
||||||
- component: {fileID: 1680039029}
|
|
||||||
m_Layer: 5
|
|
||||||
m_Name: fps
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!114 &1680039028
|
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInstance: {fileID: 0}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 1680039027}
|
m_GameObject: {fileID: 1379369697}
|
||||||
m_Enabled: 1
|
m_Enabled: 1
|
||||||
m_EditorHideFlags: 0
|
m_EditorHideFlags: 0
|
||||||
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
|
m_Script: {fileID: 11500000, guid: 765129d4fad76714191795975893ea9c, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
m_Material: {fileID: 0}
|
m_as: {fileID: 1379369699}
|
||||||
m_Color: {r: 0, g: 0, b: 0, a: 1}
|
|
||||||
m_RaycastTarget: 1
|
|
||||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
m_Maskable: 1
|
|
||||||
m_OnCullStateChanged:
|
|
||||||
m_PersistentCalls:
|
|
||||||
m_Calls: []
|
|
||||||
m_FontData:
|
|
||||||
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
|
||||||
m_FontSize: 14
|
|
||||||
m_FontStyle: 0
|
|
||||||
m_BestFit: 0
|
|
||||||
m_MinSize: 10
|
|
||||||
m_MaxSize: 40
|
|
||||||
m_Alignment: 0
|
|
||||||
m_AlignByGeometry: 0
|
|
||||||
m_RichText: 1
|
|
||||||
m_HorizontalOverflow: 0
|
|
||||||
m_VerticalOverflow: 0
|
|
||||||
m_LineSpacing: 1
|
|
||||||
m_Text: 12324234
|
|
||||||
--- !u!114 &1680039029
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1680039027}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
m_HorizontalFit: 2
|
|
||||||
m_VerticalFit: 2
|
|
||||||
--- !u!222 &1680039030
|
|
||||||
CanvasRenderer:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1680039027}
|
|
||||||
m_CullTransparentMesh: 1
|
|
||||||
--- !u!224 &1680039031
|
|
||||||
RectTransform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1680039027}
|
|
||||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
||||||
m_ConstrainProportionsScale: 0
|
|
||||||
m_Children: []
|
|
||||||
m_Father: {fileID: 786008058}
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
m_AnchorMin: {x: 1, y: 0}
|
|
||||||
m_AnchorMax: {x: 1, y: 0}
|
|
||||||
m_AnchoredPosition: {x: 0, y: 0}
|
|
||||||
m_SizeDelta: {x: 0, y: 0}
|
|
||||||
m_Pivot: {x: 1, y: 0}
|
|
||||||
--- !u!1660057539 &9223372036854775807
|
--- !u!1660057539 &9223372036854775807
|
||||||
SceneRoots:
|
SceneRoots:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -835,3 +817,4 @@ SceneRoots:
|
|||||||
- {fileID: 708549046}
|
- {fileID: 708549046}
|
||||||
- {fileID: 258485947}
|
- {fileID: 258485947}
|
||||||
- {fileID: 1359344834}
|
- {fileID: 1359344834}
|
||||||
|
- {fileID: 455467291}
|
||||||
|
@ -1,17 +1,11 @@
|
|||||||
using MyNes.Core;
|
using MyNes.Core;
|
||||||
using System;
|
|
||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
|
||||||
using System.IO.Pipes;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using UnityEditor.PackageManager.UI;
|
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace AxibugEmuOnline.Client
|
namespace AxibugEmuOnline.Client
|
||||||
{
|
{
|
||||||
public class AudioProvider : IAudioProvider
|
public class AudioProvider : MonoBehaviour, IAudioProvider
|
||||||
{
|
{
|
||||||
public string Name => nameof(AudioProvider);
|
public string Name => nameof(AudioProvider);
|
||||||
|
|
||||||
@ -22,47 +16,53 @@ namespace AxibugEmuOnline.Client
|
|||||||
public bool AllowFrequencyChange => true;
|
public bool AllowFrequencyChange => true;
|
||||||
|
|
||||||
private bool m_isPlaying;
|
private bool m_isPlaying;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
private AudioSource m_as;
|
private AudioSource m_as;
|
||||||
private int samples_added;
|
|
||||||
|
|
||||||
|
|
||||||
private Queue<float> _buffer = new Queue<float>();
|
private Queue<short> _buffer = new Queue<short>();
|
||||||
|
|
||||||
public void Initialize()
|
public void Initialize()
|
||||||
{
|
{
|
||||||
m_as = NesCoreProxy.Instance.AS;
|
var dummy = AudioClip.Create("dummy", 1, 1, AudioSettings.outputSampleRate, false);
|
||||||
m_as.clip = AudioClip.Create("nes wav", 48000 * 2, 1, 48000, true, OnAudioFilterRead);
|
|
||||||
m_as.loop = true;
|
|
||||||
m_as.playOnAwake = false;
|
|
||||||
m_as.spatialBlend = 0f;
|
|
||||||
|
|
||||||
|
dummy.SetData(new float[] { 1 }, 0);
|
||||||
|
m_as.clip = dummy; //just to let unity play the audiosource
|
||||||
|
m_as.loop = true;
|
||||||
|
m_as.spatialBlend = 1;
|
||||||
m_as.Play();
|
m_as.Play();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Update() { }
|
void OnAudioFilterRead(float[] data, int channels)
|
||||||
|
|
||||||
|
|
||||||
private void OnAudioFilterRead(float[] data)
|
|
||||||
{
|
{
|
||||||
lock (_buffer)
|
while (_buffer.Count >= data.Length / 2)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < data.Length; i++)
|
//Thread.Sleep(10);
|
||||||
{
|
break;
|
||||||
data[i] = _buffer.Count > 0 ? _buffer.Dequeue() : 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int step = channels;
|
||||||
|
for (int i = 0; i < data.Length; i += step)
|
||||||
|
{
|
||||||
|
var rawData = _buffer.Count > 0 ? _buffer.Dequeue() : 0;
|
||||||
|
var rawFloat = rawData / 124f;
|
||||||
|
data[i] = rawFloat;
|
||||||
|
for (int fill = 1; fill < step; fill++)
|
||||||
|
data[i + fill] = rawFloat;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int EmuAudioTimeSample = 0;
|
||||||
public void SubmitSamples(ref short[] buffer, ref int samples_a)
|
public void SubmitSamples(ref short[] buffer, ref int samples_a)
|
||||||
{
|
{
|
||||||
lock (_buffer)
|
EmuAudioTimeSample += samples_a;
|
||||||
|
for (int i = 0; i < samples_a; i++)
|
||||||
{
|
{
|
||||||
foreach (var a in buffer.Take(samples_a).ToArray())
|
_buffer.Enqueue(buffer[i]);
|
||||||
{
|
|
||||||
var floatData = (float)a / 124;
|
|
||||||
_buffer.Enqueue(floatData);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void TogglePause(bool paused)
|
public void TogglePause(bool paused)
|
||||||
|
@ -1,42 +1,48 @@
|
|||||||
using MyNes.Core;
|
using MyNes.Core;
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
|
using UnityEngine.Video;
|
||||||
|
|
||||||
namespace AxibugEmuOnline.Client
|
namespace AxibugEmuOnline.Client
|
||||||
{
|
{
|
||||||
public class UguiVideoProvider : IVideoProvider
|
public class UguiVideoProvider : MonoBehaviour, IVideoProvider
|
||||||
{
|
{
|
||||||
public string Name => "Unity UI Video";
|
public string Name => "Unity UI Video";
|
||||||
|
|
||||||
public string ID => nameof(UguiVideoProvider).GetHashCode().ToString();
|
public string ID => nameof(UguiVideoProvider).GetHashCode().ToString();
|
||||||
|
|
||||||
private int[] m_texRawBuffer = new int[256 * 240];
|
private Color[] m_texRawBuffer = new Color[256 * 240];
|
||||||
private Texture2D m_rawBufferWarper = new Texture2D(256, 240);
|
private Texture2D m_rawBufferWarper;
|
||||||
|
[SerializeField]
|
||||||
private RawImage m_image;
|
private RawImage m_image;
|
||||||
private RenderTexture m_drawRT;
|
private RenderTexture m_drawRT;
|
||||||
|
private Color temp = Color.white;
|
||||||
|
|
||||||
public void Initialize()
|
public void Initialize()
|
||||||
{
|
{
|
||||||
m_image = NesCoreProxy.Instance.DrawImage;
|
m_rawBufferWarper = new Texture2D(256, 240);
|
||||||
m_image.texture = RenderTexture.GetTemporary(256, 240, 0, UnityEngine.Experimental.Rendering.GraphicsFormat.B8G8R8A8_UNorm);
|
m_image.texture = RenderTexture.GetTemporary(256, 240, 0, UnityEngine.Experimental.Rendering.GraphicsFormat.B8G8R8A8_UNorm);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Color GetColor(uint value)
|
public void GetColor(uint value, ref Color res)
|
||||||
{
|
{
|
||||||
var r = 0xFF0000 & value;
|
var r = 0xFF0000 & value;
|
||||||
r >>= 16;
|
r >>= 16;
|
||||||
var b = 0xFF & value;
|
var b = 0xFF & value;
|
||||||
var g = 0xFF00 & value;
|
var g = 0xFF00 & value;
|
||||||
g >>= 8;
|
g >>= 8;
|
||||||
var color = new Color(r / 255f, g / 255f, b / 255f);
|
res.r = r / 255f;
|
||||||
return color;
|
res.g = g / 255f;
|
||||||
|
res.b = b / 255f;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Update()
|
public void Update()
|
||||||
{
|
{
|
||||||
var colors = m_texRawBuffer.Select(w => GetColor((uint)w)).ToArray();
|
var colors = m_texRawBuffer;
|
||||||
m_rawBufferWarper.SetPixels(colors);
|
m_rawBufferWarper.SetPixels(colors);
|
||||||
m_rawBufferWarper.Apply();
|
m_rawBufferWarper.Apply();
|
||||||
Graphics.Blit(m_rawBufferWarper, m_image.texture as RenderTexture);
|
Graphics.Blit(m_rawBufferWarper, m_image.texture as RenderTexture);
|
||||||
@ -76,7 +82,11 @@ namespace AxibugEmuOnline.Client
|
|||||||
|
|
||||||
public void SubmitFrame(ref int[] buffer)
|
public void SubmitFrame(ref int[] buffer)
|
||||||
{
|
{
|
||||||
Array.Copy(buffer, m_texRawBuffer, m_texRawBuffer.Length);
|
for (int i = 0; i < buffer.Length; i++)
|
||||||
|
{
|
||||||
|
GetColor((uint)buffer[i], ref temp);
|
||||||
|
m_texRawBuffer[i] = temp;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ResizeBegin()
|
public void ResizeBegin()
|
||||||
|
@ -7,27 +7,10 @@ namespace AxibugEmuOnline.Client.Manager
|
|||||||
{
|
{
|
||||||
public class AppEmu : IFileManager
|
public class AppEmu : IFileManager
|
||||||
{
|
{
|
||||||
public IVideoProvider UguiVideo { get; private set; }
|
public void Init(IVideoProvider videoCom,IAudioProvider audioCom)
|
||||||
public IAudioProvider Audio { get; private set; }
|
|
||||||
|
|
||||||
public void Init()
|
|
||||||
{
|
{
|
||||||
MyNesMain.Initialize(this);
|
MyNesMain.Initialize(this, videoCom, audioCom);
|
||||||
NesEmu.LoadGame("E:/rzg4.nes", out var successed, true);
|
NesEmu.LoadGame("E:/kirby.nes", out var successed, true);
|
||||||
UguiVideo = MyNesMain.VideoProvider;
|
|
||||||
Audio = MyNesMain.AudioProvider;
|
|
||||||
|
|
||||||
var fps_nes_missle = 1.0 / 59.0;
|
|
||||||
NesEmu.SetFramePeriod(ref fps_nes_missle);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Update()
|
|
||||||
{
|
|
||||||
UguiVideo.Update();
|
|
||||||
Audio.Update();
|
|
||||||
|
|
||||||
double t = Time.deltaTime;
|
|
||||||
NesEmu.SetFramePeriod(ref t);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
|
@ -10,22 +10,15 @@ namespace AxibugEmuOnline.Client
|
|||||||
{
|
{
|
||||||
public static NesCoreProxy Instance { get; private set; }
|
public static NesCoreProxy Instance { get; private set; }
|
||||||
|
|
||||||
public AudioSource AS;
|
public UguiVideoProvider VideoCom;
|
||||||
public RawImage DrawImage;
|
public AudioProvider AudioCom;
|
||||||
public DefaultAudioOutput DO;
|
|
||||||
public Text Fps;
|
|
||||||
|
|
||||||
private AppEmu m_appEnum = new AppEmu();
|
private AppEmu m_appEnum = new AppEmu();
|
||||||
|
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
Instance = this;
|
Instance = this;
|
||||||
m_appEnum.Init();
|
m_appEnum.Init(VideoCom, AudioCom);
|
||||||
}
|
|
||||||
|
|
||||||
private void Update()
|
|
||||||
{
|
|
||||||
m_appEnum.Update();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnDestroy()
|
private void OnDestroy()
|
||||||
|
@ -1,278 +0,0 @@
|
|||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
||||||
# Visual Studio 15
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.Timeline", "Unity.Timeline.csproj", "{B0DF349E-3E77-3469-A306-9F1B5D72D605}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.Timeline.Editor", "Unity.Timeline.Editor.csproj", "{9D62BFE8-89CA-74D4-0926-0EF38577DFB2}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.TextMeshPro.Editor", "Unity.TextMeshPro.Editor.csproj", "{CA8BC370-E9DD-5EB9-20CD-BBC42D4DAFE9}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.Services.Core.Internal", "Unity.Services.Core.Internal.csproj", "{1DE06E8A-0589-760E-E9EA-87943C9B27A2}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.VisualScripting.Flow", "Unity.VisualScripting.Flow.csproj", "{50133F68-097B-E953-ED70-07F18E27CE56}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnityEditor.UI", "UnityEditor.UI.csproj", "{EBE93344-EA1D-224C-E130-32FEBD7EAB84}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyNes.Core", "MyNes.Core.csproj", "{D958CC78-341F-B644-4447-8EE8CF037D34}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.PlasticSCM.Editor", "Unity.PlasticSCM.Editor.csproj", "{01C7700A-E278-B0E2-E414-4B4EA427F2CE}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.CollabProxy.Editor", "Unity.CollabProxy.Editor.csproj", "{5CB06AAE-940C-0F2C-D02D-5AB39C9E0AA8}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.VisualScripting.Core", "Unity.VisualScripting.Core.csproj", "{32FF793E-2C1B-8992-FD16-735748086B4C}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.VisualScripting.Core.Editor", "Unity.VisualScripting.Core.Editor.csproj", "{60BCA52D-8C02-4F9B-1F2B-5B166D854B69}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.VisualScripting.Flow.Editor", "Unity.VisualScripting.Flow.Editor.csproj", "{8EDC679A-229C-DDC1-7C08-C3D3AEA73F90}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnityEditor.TestRunner", "UnityEditor.TestRunner.csproj", "{F32BAC49-F2F1-CE2D-0167-1F424878F925}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.VisualScripting.SettingsProvider.Editor", "Unity.VisualScripting.SettingsProvider.Editor.csproj", "{DFF0A2FD-8EAD-ED52-E0DC-D486AF73C847}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnityEngine.TestRunner", "UnityEngine.TestRunner.csproj", "{0555AF0D-ECDE-BFBD-BBB5-8DC1A5197960}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.Services.Core.Environments.Editor", "Unity.Services.Core.Environments.Editor.csproj", "{06C2DDE3-F045-CEE5-3F03-831228DDA3A9}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.Services.Core.Editor", "Unity.Services.Core.Editor.csproj", "{7A646232-1EC4-2599-A1CD-7CF8DD15966E}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.Services.Core", "Unity.Services.Core.csproj", "{49DBA999-DF45-268E-63B2-FA94C0D1B87C}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnityEngine.UI", "UnityEngine.UI.csproj", "{2053DD51-3AE8-A5EB-65D6-04B16AA3CE66}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.VisualStudio.Editor", "Unity.VisualStudio.Editor.csproj", "{368FC675-4200-A025-912A-59AFDAA29018}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.TestTools.CodeCoverage.Editor.OpenCover.Model", "Unity.TestTools.CodeCoverage.Editor.OpenCover.Model.csproj", "{DA00146E-B874-B45F-06C9-500B0401220C}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.Rider.Editor", "Unity.Rider.Editor.csproj", "{6E165AB7-E216-7010-DFED-1C1BC39B970D}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.Services.Core.Environments.Internal", "Unity.Services.Core.Environments.Internal.csproj", "{D172DD08-1354-1BA0-9525-0E869B5020BD}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.Services.Core.Configuration", "Unity.Services.Core.Configuration.csproj", "{8F9BD7C0-7ACF-A18C-5A88-229D8B094F3F}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.VisualScripting.State.Editor", "Unity.VisualScripting.State.Editor.csproj", "{F23A84DD-FF43-F524-83B9-D17532BC1DE8}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.TestTools.CodeCoverage.Editor", "Unity.TestTools.CodeCoverage.Editor.csproj", "{649C131C-6FE6-E748-C932-651E89DFADFE}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.Services.Core.Configuration.Editor", "Unity.Services.Core.Configuration.Editor.csproj", "{CC93A1BB-FB4C-9BE7-0832-CF4AF1B69A92}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.VisualScripting.State", "Unity.VisualScripting.State.csproj", "{E912C16D-738B-1DB1-3456-24751CAB3849}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.TextMeshPro", "Unity.TextMeshPro.csproj", "{FFF816B4-207D-AC0E-3B30-C9E0CA06D257}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.Services.Core.Networking", "Unity.Services.Core.Networking.csproj", "{BD55EBED-7E44-C621-7FF4-FD7709A438F6}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.Performance.Profile-Analyzer.Editor", "Unity.Performance.Profile-Analyzer.Editor.csproj", "{F57AB79F-532A-EBC2-871B-64C9FD27FEA9}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AxibugEmuOnline.Client", "AxibugEmuOnline.Client.csproj", "{59C211A4-B928-7505-AF2E-6C604DAB3622}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.Services.Core.Scheduler", "Unity.Services.Core.Scheduler.csproj", "{2598AAB1-DA3E-A2AE-B060-D1BAF7BBE4BC}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.VSCode.Editor", "Unity.VSCode.Editor.csproj", "{5A8F066D-8FFA-AFC1-1E8E-0DE9AEAE676F}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.TestTools.CodeCoverage.Editor.OpenCover.Mono.Reflection", "Unity.TestTools.CodeCoverage.Editor.OpenCover.Mono.Reflection.csproj", "{469C328E-E07E-04A6-A566-E2ABA6732CBE}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.Settings.Editor", "Unity.Settings.Editor.csproj", "{541572F4-E051-F4F8-9B39-87BFA550E13A}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.Services.Core.Registration", "Unity.Services.Core.Registration.csproj", "{A5C76622-FE9B-BD41-A430-5208CCE95FDA}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.Services.Core.Telemetry", "Unity.Services.Core.Telemetry.csproj", "{7F93B805-8A3C-D81B-FEE7-A4CE542AB2D2}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.Services.Core.Analytics", "Unity.Services.Core.Analytics.csproj", "{83045A6C-05F6-CC92-820D-281C04862F7C}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.Services.Core.Threading", "Unity.Services.Core.Threading.csproj", "{458B6228-8612-4186-4E92-36797B16DFA3}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.EditorCoroutines.Editor", "Unity.EditorCoroutines.Editor.csproj", "{7F94681B-B8E0-DF52-D282-9411B6632E77}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.Services.Core.Device", "Unity.Services.Core.Device.csproj", "{98604E75-FAB4-80FC-A539-DE0A0CFD0687}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.Services.Core.Environments", "Unity.Services.Core.Environments.csproj", "{8576736C-D7B9-E3D7-203C-46D059601F81}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.VisualScripting.Shared.Editor", "Unity.VisualScripting.Shared.Editor.csproj", "{26BB76BB-57D1-3F9B-44BC-3ECB5B9EEF49}"
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|Any CPU = Debug|Any CPU
|
|
||||||
Release|Any CPU = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{B0DF349E-3E77-3469-A306-9F1B5D72D605}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{B0DF349E-3E77-3469-A306-9F1B5D72D605}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{B0DF349E-3E77-3469-A306-9F1B5D72D605}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{B0DF349E-3E77-3469-A306-9F1B5D72D605}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{9D62BFE8-89CA-74D4-0926-0EF38577DFB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{9D62BFE8-89CA-74D4-0926-0EF38577DFB2}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{9D62BFE8-89CA-74D4-0926-0EF38577DFB2}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{9D62BFE8-89CA-74D4-0926-0EF38577DFB2}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{CA8BC370-E9DD-5EB9-20CD-BBC42D4DAFE9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{CA8BC370-E9DD-5EB9-20CD-BBC42D4DAFE9}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{CA8BC370-E9DD-5EB9-20CD-BBC42D4DAFE9}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{CA8BC370-E9DD-5EB9-20CD-BBC42D4DAFE9}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{1DE06E8A-0589-760E-E9EA-87943C9B27A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{1DE06E8A-0589-760E-E9EA-87943C9B27A2}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{1DE06E8A-0589-760E-E9EA-87943C9B27A2}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{1DE06E8A-0589-760E-E9EA-87943C9B27A2}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{50133F68-097B-E953-ED70-07F18E27CE56}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{50133F68-097B-E953-ED70-07F18E27CE56}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{50133F68-097B-E953-ED70-07F18E27CE56}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{50133F68-097B-E953-ED70-07F18E27CE56}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{EBE93344-EA1D-224C-E130-32FEBD7EAB84}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{EBE93344-EA1D-224C-E130-32FEBD7EAB84}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{EBE93344-EA1D-224C-E130-32FEBD7EAB84}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{EBE93344-EA1D-224C-E130-32FEBD7EAB84}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{D958CC78-341F-B644-4447-8EE8CF037D34}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{D958CC78-341F-B644-4447-8EE8CF037D34}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{D958CC78-341F-B644-4447-8EE8CF037D34}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{D958CC78-341F-B644-4447-8EE8CF037D34}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{01C7700A-E278-B0E2-E414-4B4EA427F2CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{01C7700A-E278-B0E2-E414-4B4EA427F2CE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{01C7700A-E278-B0E2-E414-4B4EA427F2CE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{01C7700A-E278-B0E2-E414-4B4EA427F2CE}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{5CB06AAE-940C-0F2C-D02D-5AB39C9E0AA8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{5CB06AAE-940C-0F2C-D02D-5AB39C9E0AA8}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{5CB06AAE-940C-0F2C-D02D-5AB39C9E0AA8}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{5CB06AAE-940C-0F2C-D02D-5AB39C9E0AA8}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{32FF793E-2C1B-8992-FD16-735748086B4C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{32FF793E-2C1B-8992-FD16-735748086B4C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{32FF793E-2C1B-8992-FD16-735748086B4C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{32FF793E-2C1B-8992-FD16-735748086B4C}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{60BCA52D-8C02-4F9B-1F2B-5B166D854B69}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{60BCA52D-8C02-4F9B-1F2B-5B166D854B69}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{60BCA52D-8C02-4F9B-1F2B-5B166D854B69}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{60BCA52D-8C02-4F9B-1F2B-5B166D854B69}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{8EDC679A-229C-DDC1-7C08-C3D3AEA73F90}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{8EDC679A-229C-DDC1-7C08-C3D3AEA73F90}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{8EDC679A-229C-DDC1-7C08-C3D3AEA73F90}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{8EDC679A-229C-DDC1-7C08-C3D3AEA73F90}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{F32BAC49-F2F1-CE2D-0167-1F424878F925}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{F32BAC49-F2F1-CE2D-0167-1F424878F925}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{F32BAC49-F2F1-CE2D-0167-1F424878F925}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{F32BAC49-F2F1-CE2D-0167-1F424878F925}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{DFF0A2FD-8EAD-ED52-E0DC-D486AF73C847}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{DFF0A2FD-8EAD-ED52-E0DC-D486AF73C847}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{DFF0A2FD-8EAD-ED52-E0DC-D486AF73C847}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{DFF0A2FD-8EAD-ED52-E0DC-D486AF73C847}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{0555AF0D-ECDE-BFBD-BBB5-8DC1A5197960}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{0555AF0D-ECDE-BFBD-BBB5-8DC1A5197960}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{0555AF0D-ECDE-BFBD-BBB5-8DC1A5197960}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{0555AF0D-ECDE-BFBD-BBB5-8DC1A5197960}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{06C2DDE3-F045-CEE5-3F03-831228DDA3A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{06C2DDE3-F045-CEE5-3F03-831228DDA3A9}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{06C2DDE3-F045-CEE5-3F03-831228DDA3A9}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{06C2DDE3-F045-CEE5-3F03-831228DDA3A9}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{7A646232-1EC4-2599-A1CD-7CF8DD15966E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{7A646232-1EC4-2599-A1CD-7CF8DD15966E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{7A646232-1EC4-2599-A1CD-7CF8DD15966E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{7A646232-1EC4-2599-A1CD-7CF8DD15966E}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{49DBA999-DF45-268E-63B2-FA94C0D1B87C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{49DBA999-DF45-268E-63B2-FA94C0D1B87C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{49DBA999-DF45-268E-63B2-FA94C0D1B87C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{49DBA999-DF45-268E-63B2-FA94C0D1B87C}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{2053DD51-3AE8-A5EB-65D6-04B16AA3CE66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{2053DD51-3AE8-A5EB-65D6-04B16AA3CE66}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{2053DD51-3AE8-A5EB-65D6-04B16AA3CE66}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{2053DD51-3AE8-A5EB-65D6-04B16AA3CE66}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{368FC675-4200-A025-912A-59AFDAA29018}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{368FC675-4200-A025-912A-59AFDAA29018}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{368FC675-4200-A025-912A-59AFDAA29018}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{368FC675-4200-A025-912A-59AFDAA29018}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{DA00146E-B874-B45F-06C9-500B0401220C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{DA00146E-B874-B45F-06C9-500B0401220C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{DA00146E-B874-B45F-06C9-500B0401220C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{DA00146E-B874-B45F-06C9-500B0401220C}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{6E165AB7-E216-7010-DFED-1C1BC39B970D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{6E165AB7-E216-7010-DFED-1C1BC39B970D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{6E165AB7-E216-7010-DFED-1C1BC39B970D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{6E165AB7-E216-7010-DFED-1C1BC39B970D}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{D172DD08-1354-1BA0-9525-0E869B5020BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{D172DD08-1354-1BA0-9525-0E869B5020BD}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{D172DD08-1354-1BA0-9525-0E869B5020BD}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{D172DD08-1354-1BA0-9525-0E869B5020BD}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{8F9BD7C0-7ACF-A18C-5A88-229D8B094F3F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{8F9BD7C0-7ACF-A18C-5A88-229D8B094F3F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{8F9BD7C0-7ACF-A18C-5A88-229D8B094F3F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{8F9BD7C0-7ACF-A18C-5A88-229D8B094F3F}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{F23A84DD-FF43-F524-83B9-D17532BC1DE8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{F23A84DD-FF43-F524-83B9-D17532BC1DE8}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{F23A84DD-FF43-F524-83B9-D17532BC1DE8}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{F23A84DD-FF43-F524-83B9-D17532BC1DE8}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{649C131C-6FE6-E748-C932-651E89DFADFE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{649C131C-6FE6-E748-C932-651E89DFADFE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{649C131C-6FE6-E748-C932-651E89DFADFE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{649C131C-6FE6-E748-C932-651E89DFADFE}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{CC93A1BB-FB4C-9BE7-0832-CF4AF1B69A92}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{CC93A1BB-FB4C-9BE7-0832-CF4AF1B69A92}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{CC93A1BB-FB4C-9BE7-0832-CF4AF1B69A92}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{CC93A1BB-FB4C-9BE7-0832-CF4AF1B69A92}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{E912C16D-738B-1DB1-3456-24751CAB3849}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{E912C16D-738B-1DB1-3456-24751CAB3849}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{E912C16D-738B-1DB1-3456-24751CAB3849}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{E912C16D-738B-1DB1-3456-24751CAB3849}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{FFF816B4-207D-AC0E-3B30-C9E0CA06D257}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{FFF816B4-207D-AC0E-3B30-C9E0CA06D257}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{FFF816B4-207D-AC0E-3B30-C9E0CA06D257}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{FFF816B4-207D-AC0E-3B30-C9E0CA06D257}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{BD55EBED-7E44-C621-7FF4-FD7709A438F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{BD55EBED-7E44-C621-7FF4-FD7709A438F6}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{BD55EBED-7E44-C621-7FF4-FD7709A438F6}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{BD55EBED-7E44-C621-7FF4-FD7709A438F6}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{F57AB79F-532A-EBC2-871B-64C9FD27FEA9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{F57AB79F-532A-EBC2-871B-64C9FD27FEA9}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{F57AB79F-532A-EBC2-871B-64C9FD27FEA9}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{F57AB79F-532A-EBC2-871B-64C9FD27FEA9}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{59C211A4-B928-7505-AF2E-6C604DAB3622}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{59C211A4-B928-7505-AF2E-6C604DAB3622}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{59C211A4-B928-7505-AF2E-6C604DAB3622}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{59C211A4-B928-7505-AF2E-6C604DAB3622}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{2598AAB1-DA3E-A2AE-B060-D1BAF7BBE4BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{2598AAB1-DA3E-A2AE-B060-D1BAF7BBE4BC}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{2598AAB1-DA3E-A2AE-B060-D1BAF7BBE4BC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{2598AAB1-DA3E-A2AE-B060-D1BAF7BBE4BC}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{5A8F066D-8FFA-AFC1-1E8E-0DE9AEAE676F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{5A8F066D-8FFA-AFC1-1E8E-0DE9AEAE676F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{5A8F066D-8FFA-AFC1-1E8E-0DE9AEAE676F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{5A8F066D-8FFA-AFC1-1E8E-0DE9AEAE676F}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{469C328E-E07E-04A6-A566-E2ABA6732CBE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{469C328E-E07E-04A6-A566-E2ABA6732CBE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{469C328E-E07E-04A6-A566-E2ABA6732CBE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{469C328E-E07E-04A6-A566-E2ABA6732CBE}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{541572F4-E051-F4F8-9B39-87BFA550E13A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{541572F4-E051-F4F8-9B39-87BFA550E13A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{541572F4-E051-F4F8-9B39-87BFA550E13A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{541572F4-E051-F4F8-9B39-87BFA550E13A}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{A5C76622-FE9B-BD41-A430-5208CCE95FDA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{A5C76622-FE9B-BD41-A430-5208CCE95FDA}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{A5C76622-FE9B-BD41-A430-5208CCE95FDA}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{A5C76622-FE9B-BD41-A430-5208CCE95FDA}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{7F93B805-8A3C-D81B-FEE7-A4CE542AB2D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{7F93B805-8A3C-D81B-FEE7-A4CE542AB2D2}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{7F93B805-8A3C-D81B-FEE7-A4CE542AB2D2}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{7F93B805-8A3C-D81B-FEE7-A4CE542AB2D2}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{83045A6C-05F6-CC92-820D-281C04862F7C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{83045A6C-05F6-CC92-820D-281C04862F7C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{83045A6C-05F6-CC92-820D-281C04862F7C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{83045A6C-05F6-CC92-820D-281C04862F7C}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{458B6228-8612-4186-4E92-36797B16DFA3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{458B6228-8612-4186-4E92-36797B16DFA3}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{458B6228-8612-4186-4E92-36797B16DFA3}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{458B6228-8612-4186-4E92-36797B16DFA3}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{7F94681B-B8E0-DF52-D282-9411B6632E77}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{7F94681B-B8E0-DF52-D282-9411B6632E77}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{7F94681B-B8E0-DF52-D282-9411B6632E77}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{7F94681B-B8E0-DF52-D282-9411B6632E77}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{98604E75-FAB4-80FC-A539-DE0A0CFD0687}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{98604E75-FAB4-80FC-A539-DE0A0CFD0687}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{98604E75-FAB4-80FC-A539-DE0A0CFD0687}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{98604E75-FAB4-80FC-A539-DE0A0CFD0687}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{8576736C-D7B9-E3D7-203C-46D059601F81}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{8576736C-D7B9-E3D7-203C-46D059601F81}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{8576736C-D7B9-E3D7-203C-46D059601F81}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{8576736C-D7B9-E3D7-203C-46D059601F81}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{26BB76BB-57D1-3F9B-44BC-3ECB5B9EEF49}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{26BB76BB-57D1-3F9B-44BC-3ECB5B9EEF49}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{26BB76BB-57D1-3F9B-44BC-3ECB5B9EEF49}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{26BB76BB-57D1-3F9B-44BC-3ECB5B9EEF49}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
Loading…
Reference in New Issue
Block a user