Initial upgrade to VS 2010, .NET FW 4, SL 4, XNA 4, and Windows Phone 7 CTP.

--HG--
extra : convert_revision : svn%3Affd33b8c-2492-42e0-bdc5-587b920b7d6d/trunk%4046550
This commit is contained in:
Sean Fausett 2010-05-19 23:42:10 +00:00
parent 5f8c4ce9d8
commit bc4caaf2b1
95 changed files with 3121 additions and 1463 deletions

View File

@ -1,5 +1,6 @@
using System;
using System.Runtime.InteropServices;
using System.Security;
using System.Threading;
namespace Jellyfish.Library
@ -26,6 +27,7 @@ namespace Jellyfish.Library
public sealed partial class DirectSound : IDisposable
{
[SecurityCritical]
public DirectSound(int sampleRate, int sampleChannels, int sampleBits, int sampleSize)
{
_sampleRate = sampleRate;
@ -55,6 +57,7 @@ namespace Jellyfish.Library
_thread.Join();
}
[SecurityCritical]
private void Initialize()
{
int hresult = NativeMethods.DirectSoundCreate(IntPtr.Zero, out _device, IntPtr.Zero);
@ -83,6 +86,7 @@ namespace Jellyfish.Library
_buffer.Play(0, 0, BufferPlay.Looping);
}
[SecurityCritical]
private void ClearBuffer()
{
UpdateBuffer(0, 0, BufferLock.EntireBuffer, (buffer, bufferSize) => MarshalHelpers.ZeroMemory(buffer, bufferSize));
@ -100,7 +104,7 @@ namespace Jellyfish.Library
private void UpdateBuffer(int block)
{
EventHandler<DirectSoundUpdateEventArgs> handler = Update;
var handler = Update;
if (handler != null)
{
UpdateBuffer(block * _sampleSize, _sampleSize, BufferLock.None, (buffer, bufferSize) => handler(this, DirectSoundUpdateEventArgs.Create(buffer, bufferSize)));
@ -144,6 +148,7 @@ namespace Jellyfish.Library
}
}
[SecurityCritical]
private void Run() // com mta thread
{
Initialize();

View File

@ -97,6 +97,7 @@ namespace Jellyfish.Library
void SetNotificationPositions(int dwPositionNotifies, [MarshalAs(UnmanagedType.LPArray)] BufferPositionNotify[] pcPositionNotifies);
}
[SecurityCritical]
[SuppressUnmanagedCodeSecurity]
private static class NativeMethods
{

View File

@ -1,12 +1,12 @@
using System;
using System.Runtime.InteropServices;
using System.Security.Permissions;
using System.Security;
namespace Jellyfish.Library
{
public static class GCHandleHelpers
{
[SecurityPermission(SecurityAction.LinkDemand, UnmanagedCode = true)]
[SecurityCritical]
public static void Pin(object value, Action<IntPtr> action)
{
if (action == null)

View File

@ -1,8 +1,8 @@
using System;
using System.Diagnostics.CodeAnalysis;
using System.Runtime.InteropServices;
using System.Security;
using System.Security.AccessControl;
using System.Security.Permissions;
using System.Security.Principal;
namespace Jellyfish.Library
@ -10,7 +10,6 @@ namespace Jellyfish.Library
[StructLayout(LayoutKind.Sequential)]
public sealed class SecurityAttributes
{
[SecurityPermission(SecurityAction.LinkDemand, UnmanagedCode = true)]
public SecurityAttributes()
{
_length = Marshal.SizeOf(typeof(SecurityAttributes));
@ -118,13 +117,13 @@ namespace Jellyfish.Library
base.AddAuditRule(rule);
}
[SecurityPermission(SecurityAction.LinkDemand, UnmanagedCode = true)]
[SecurityCritical]
public void GetSecurityAttributes(bool inheritable, Action<SecurityAttributes> action)
{
GetSecurityAttributes(this, inheritable, action);
}
[SecurityPermission(SecurityAction.LinkDemand, UnmanagedCode = true)]
[SecurityCritical]
public static void GetSecurityAttributes(ObjectSecurity security, bool inheritable, Action<SecurityAttributes> action)
{
if (action == null)

View File

@ -1,98 +1,122 @@

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Silverlight", "Silverlight\Jellyfish.Library.Silverlight.csproj", "{DAB11A70-D08B-4A96-8A54-E81B1DE39681}"
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Silverlight", "Silverlight\Jellyfish.Library.Silverlight.csproj", "{99CA7796-B72A-4F8C-BCDB-0D688220A331}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Wpf", "Wpf\Jellyfish.Library.Wpf.csproj", "{D47A24A9-1590-4E8A-A406-BC66D5891BFA}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Silverlight.Phone", "Silverlight\Phone\Jellyfish.Library.Silverlight.Phone.csproj", "{D4880706-29A6-449C-A2A6-3058C37583DA}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Xna", "Xna\Jellyfish.Library.Xna.csproj", "{E246958B-EAD8-48E9-844B-54718C952869}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Wpf", "Wpf\Jellyfish.Library.Wpf.csproj", "{93900841-7250-4D3A-837E-43EE3FD118DC}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Xna.Xbox", "Xna\Jellyfish.Library.Xna.Xbox.csproj", "{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Xna", "Xna\Jellyfish.Library.Xna.csproj", "{82F56318-A1FD-4078-A42F-06CAB8B97F63}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Xna.Zune", "Xna\Jellyfish.Library.Xna.Zune.csproj", "{8B5D5A39-10FA-434A-B8C4-09D4FDB96720}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Xna.Phone", "Xna\Jellyfish.Library.Xna.Phone.csproj", "{46B2BD23-3D45-4268-9979-B9CF136CC982}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Xna.Xbox", "Xna\Jellyfish.Library.Xna.Xbox.csproj", "{222412EE-A626-493F-AE72-344657A6840D}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
Debug|Mixed Platforms = Debug|Mixed Platforms
Debug|Windows Phone = Debug|Windows Phone
Debug|x86 = Debug|x86
Debug|Xbox 360 = Debug|Xbox 360
Debug|Zune = Debug|Zune
Release|Any CPU = Release|Any CPU
Release|Mixed Platforms = Release|Mixed Platforms
Release|Windows Phone = Release|Windows Phone
Release|x86 = Release|x86
Release|Xbox 360 = Release|Xbox 360
Release|Zune = Release|Zune
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{DAB11A70-D08B-4A96-8A54-E81B1DE39681}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DAB11A70-D08B-4A96-8A54-E81B1DE39681}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DAB11A70-D08B-4A96-8A54-E81B1DE39681}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{DAB11A70-D08B-4A96-8A54-E81B1DE39681}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{DAB11A70-D08B-4A96-8A54-E81B1DE39681}.Debug|x86.ActiveCfg = Debug|Any CPU
{DAB11A70-D08B-4A96-8A54-E81B1DE39681}.Debug|Xbox 360.ActiveCfg = Debug|Any CPU
{DAB11A70-D08B-4A96-8A54-E81B1DE39681}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DAB11A70-D08B-4A96-8A54-E81B1DE39681}.Release|Any CPU.Build.0 = Release|Any CPU
{DAB11A70-D08B-4A96-8A54-E81B1DE39681}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{DAB11A70-D08B-4A96-8A54-E81B1DE39681}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{DAB11A70-D08B-4A96-8A54-E81B1DE39681}.Release|x86.ActiveCfg = Release|Any CPU
{DAB11A70-D08B-4A96-8A54-E81B1DE39681}.Release|Xbox 360.ActiveCfg = Release|Any CPU
{D47A24A9-1590-4E8A-A406-BC66D5891BFA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D47A24A9-1590-4E8A-A406-BC66D5891BFA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D47A24A9-1590-4E8A-A406-BC66D5891BFA}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{D47A24A9-1590-4E8A-A406-BC66D5891BFA}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{D47A24A9-1590-4E8A-A406-BC66D5891BFA}.Debug|x86.ActiveCfg = Debug|Any CPU
{D47A24A9-1590-4E8A-A406-BC66D5891BFA}.Debug|Xbox 360.ActiveCfg = Debug|Any CPU
{D47A24A9-1590-4E8A-A406-BC66D5891BFA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D47A24A9-1590-4E8A-A406-BC66D5891BFA}.Release|Any CPU.Build.0 = Release|Any CPU
{D47A24A9-1590-4E8A-A406-BC66D5891BFA}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{D47A24A9-1590-4E8A-A406-BC66D5891BFA}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{D47A24A9-1590-4E8A-A406-BC66D5891BFA}.Release|x86.ActiveCfg = Release|Any CPU
{D47A24A9-1590-4E8A-A406-BC66D5891BFA}.Release|Xbox 360.ActiveCfg = Release|Any CPU
{E246958B-EAD8-48E9-844B-54718C952869}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Debug|Mixed Platforms.Build.0 = Debug|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Debug|x86.ActiveCfg = Debug|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Debug|x86.Build.0 = Debug|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Debug|Xbox 360.ActiveCfg = Debug|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Debug|Zune.ActiveCfg = Debug|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Release|Mixed Platforms.ActiveCfg = Release|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Release|Mixed Platforms.Build.0 = Release|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Release|x86.ActiveCfg = Release|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Release|x86.Build.0 = Release|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Release|Xbox 360.ActiveCfg = Release|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Release|Zune.ActiveCfg = Release|x86
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Debug|Mixed Platforms.ActiveCfg = Debug|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Debug|Mixed Platforms.Build.0 = Debug|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Debug|x86.ActiveCfg = Debug|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Debug|Xbox 360.ActiveCfg = Debug|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Debug|Xbox 360.Build.0 = Debug|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Debug|Zune.ActiveCfg = Debug|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Release|Mixed Platforms.ActiveCfg = Release|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Release|Mixed Platforms.Build.0 = Release|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Release|x86.ActiveCfg = Release|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Release|Xbox 360.ActiveCfg = Release|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Release|Xbox 360.Build.0 = Release|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Release|Zune.ActiveCfg = Release|Xbox 360
{A96F5631-40E1-40B0-AEE2-6F2E3368E2AE}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{A96F5631-40E1-40B0-AEE2-6F2E3368E2AE}.Debug|x86.ActiveCfg = Debug|x86
{A96F5631-40E1-40B0-AEE2-6F2E3368E2AE}.Debug|Xbox 360.ActiveCfg = Debug|x86
{A96F5631-40E1-40B0-AEE2-6F2E3368E2AE}.Debug|Zune.ActiveCfg = Debug|x86
{A96F5631-40E1-40B0-AEE2-6F2E3368E2AE}.Release|Mixed Platforms.ActiveCfg = Release|x86
{A96F5631-40E1-40B0-AEE2-6F2E3368E2AE}.Release|x86.ActiveCfg = Release|x86
{A96F5631-40E1-40B0-AEE2-6F2E3368E2AE}.Release|Xbox 360.ActiveCfg = Release|x86
{A96F5631-40E1-40B0-AEE2-6F2E3368E2AE}.Release|Zune.ActiveCfg = Release|x86
{8B5D5A39-10FA-434A-B8C4-09D4FDB96720}.Debug|Mixed Platforms.ActiveCfg = Debug|Zune
{8B5D5A39-10FA-434A-B8C4-09D4FDB96720}.Debug|Mixed Platforms.Build.0 = Debug|Zune
{8B5D5A39-10FA-434A-B8C4-09D4FDB96720}.Debug|x86.ActiveCfg = Debug|Zune
{8B5D5A39-10FA-434A-B8C4-09D4FDB96720}.Debug|Xbox 360.ActiveCfg = Debug|Zune
{8B5D5A39-10FA-434A-B8C4-09D4FDB96720}.Debug|Zune.ActiveCfg = Debug|Zune
{8B5D5A39-10FA-434A-B8C4-09D4FDB96720}.Debug|Zune.Build.0 = Debug|Zune
{8B5D5A39-10FA-434A-B8C4-09D4FDB96720}.Release|Mixed Platforms.ActiveCfg = Release|Zune
{8B5D5A39-10FA-434A-B8C4-09D4FDB96720}.Release|Mixed Platforms.Build.0 = Release|Zune
{8B5D5A39-10FA-434A-B8C4-09D4FDB96720}.Release|x86.ActiveCfg = Release|Zune
{8B5D5A39-10FA-434A-B8C4-09D4FDB96720}.Release|Xbox 360.ActiveCfg = Release|Zune
{8B5D5A39-10FA-434A-B8C4-09D4FDB96720}.Release|Zune.ActiveCfg = Release|Zune
{8B5D5A39-10FA-434A-B8C4-09D4FDB96720}.Release|Zune.Build.0 = Release|Zune
{99CA7796-B72A-4F8C-BCDB-0D688220A331}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{99CA7796-B72A-4F8C-BCDB-0D688220A331}.Debug|Any CPU.Build.0 = Debug|Any CPU
{99CA7796-B72A-4F8C-BCDB-0D688220A331}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{99CA7796-B72A-4F8C-BCDB-0D688220A331}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{99CA7796-B72A-4F8C-BCDB-0D688220A331}.Debug|Windows Phone.ActiveCfg = Debug|Any CPU
{99CA7796-B72A-4F8C-BCDB-0D688220A331}.Debug|x86.ActiveCfg = Debug|Any CPU
{99CA7796-B72A-4F8C-BCDB-0D688220A331}.Debug|Xbox 360.ActiveCfg = Debug|Any CPU
{99CA7796-B72A-4F8C-BCDB-0D688220A331}.Release|Any CPU.ActiveCfg = Release|Any CPU
{99CA7796-B72A-4F8C-BCDB-0D688220A331}.Release|Any CPU.Build.0 = Release|Any CPU
{99CA7796-B72A-4F8C-BCDB-0D688220A331}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{99CA7796-B72A-4F8C-BCDB-0D688220A331}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{99CA7796-B72A-4F8C-BCDB-0D688220A331}.Release|Windows Phone.ActiveCfg = Release|Any CPU
{99CA7796-B72A-4F8C-BCDB-0D688220A331}.Release|x86.ActiveCfg = Release|Any CPU
{99CA7796-B72A-4F8C-BCDB-0D688220A331}.Release|Xbox 360.ActiveCfg = Release|Any CPU
{D4880706-29A6-449C-A2A6-3058C37583DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D4880706-29A6-449C-A2A6-3058C37583DA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D4880706-29A6-449C-A2A6-3058C37583DA}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{D4880706-29A6-449C-A2A6-3058C37583DA}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{D4880706-29A6-449C-A2A6-3058C37583DA}.Debug|Windows Phone.ActiveCfg = Debug|Any CPU
{D4880706-29A6-449C-A2A6-3058C37583DA}.Debug|x86.ActiveCfg = Debug|Any CPU
{D4880706-29A6-449C-A2A6-3058C37583DA}.Debug|Xbox 360.ActiveCfg = Debug|Any CPU
{D4880706-29A6-449C-A2A6-3058C37583DA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D4880706-29A6-449C-A2A6-3058C37583DA}.Release|Any CPU.Build.0 = Release|Any CPU
{D4880706-29A6-449C-A2A6-3058C37583DA}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{D4880706-29A6-449C-A2A6-3058C37583DA}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{D4880706-29A6-449C-A2A6-3058C37583DA}.Release|Windows Phone.ActiveCfg = Release|Any CPU
{D4880706-29A6-449C-A2A6-3058C37583DA}.Release|x86.ActiveCfg = Release|Any CPU
{D4880706-29A6-449C-A2A6-3058C37583DA}.Release|Xbox 360.ActiveCfg = Release|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Debug|Windows Phone.ActiveCfg = Debug|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Debug|x86.ActiveCfg = Debug|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Debug|Xbox 360.ActiveCfg = Debug|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Release|Any CPU.Build.0 = Release|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Release|Windows Phone.ActiveCfg = Release|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Release|x86.ActiveCfg = Release|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Release|Xbox 360.ActiveCfg = Release|Any CPU
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Debug|Any CPU.ActiveCfg = Debug|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Debug|Mixed Platforms.Build.0 = Debug|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Debug|Windows Phone.ActiveCfg = Debug|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Debug|Windows Phone.Build.0 = Debug|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Debug|x86.ActiveCfg = Debug|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Debug|x86.Build.0 = Debug|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Debug|Xbox 360.ActiveCfg = Debug|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Debug|Xbox 360.Build.0 = Debug|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Release|Any CPU.ActiveCfg = Release|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Release|Mixed Platforms.ActiveCfg = Release|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Release|Mixed Platforms.Build.0 = Release|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Release|Windows Phone.ActiveCfg = Release|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Release|Windows Phone.Build.0 = Release|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Release|x86.ActiveCfg = Release|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Release|x86.Build.0 = Release|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Release|Xbox 360.ActiveCfg = Release|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Release|Xbox 360.Build.0 = Release|x86
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Debug|Any CPU.ActiveCfg = Debug|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Debug|Mixed Platforms.ActiveCfg = Debug|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Debug|Mixed Platforms.Build.0 = Debug|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Debug|Windows Phone.ActiveCfg = Debug|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Debug|Windows Phone.Build.0 = Debug|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Debug|x86.ActiveCfg = Debug|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Debug|Xbox 360.ActiveCfg = Debug|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Debug|Xbox 360.Build.0 = Debug|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Release|Any CPU.ActiveCfg = Release|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Release|Mixed Platforms.ActiveCfg = Release|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Release|Mixed Platforms.Build.0 = Release|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Release|Windows Phone.ActiveCfg = Release|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Release|Windows Phone.Build.0 = Release|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Release|x86.ActiveCfg = Release|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Release|Xbox 360.ActiveCfg = Release|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Release|Xbox 360.Build.0 = Release|Windows Phone
{222412EE-A626-493F-AE72-344657A6840D}.Debug|Any CPU.ActiveCfg = Debug|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Debug|Mixed Platforms.ActiveCfg = Debug|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Debug|Mixed Platforms.Build.0 = Debug|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Debug|Windows Phone.ActiveCfg = Debug|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Debug|x86.ActiveCfg = Debug|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Debug|Xbox 360.ActiveCfg = Debug|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Debug|Xbox 360.Build.0 = Debug|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Release|Any CPU.ActiveCfg = Release|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Release|Mixed Platforms.ActiveCfg = Release|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Release|Mixed Platforms.Build.0 = Release|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Release|Windows Phone.ActiveCfg = Release|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Release|x86.ActiveCfg = Release|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Release|Xbox 360.ActiveCfg = Release|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Release|Xbox 360.Build.0 = Release|Xbox 360
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -1,29 +1,33 @@
using System;
using System.Diagnostics.CodeAnalysis;
using System.Runtime.InteropServices;
using System.Security;
using System.Security.Permissions;
namespace Jellyfish.Library
{
[SecurityPermission(SecurityAction.LinkDemand, UnmanagedCode = true)]
public static class MarshalHelpers
{
[SecurityCritical]
public static void FillMemory(IntPtr buffer, int bufferSize, byte value)
{
NativeMethods.FillMemory(buffer, (IntPtr)bufferSize, value);
}
[SecurityCritical]
public static void ZeroMemory(IntPtr buffer, int bufferSize)
{
NativeMethods.ZeroMemory(buffer, (IntPtr)bufferSize);
}
[SecurityCritical]
[SuppressUnmanagedCodeSecurity]
private static class NativeMethods
{
[SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage")]
[DllImport("kernel32.dll", SetLastError = true)]
public static extern void FillMemory(IntPtr destination, IntPtr length, byte fill);
[SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage")]
[DllImport("kernel32.dll", SetLastError = true)]
public static extern void ZeroMemory(IntPtr destination, IntPtr length);
}

View File

@ -1,15 +1,13 @@
using System;
using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
using System.Runtime.ConstrainedExecution;
using System.Runtime.InteropServices;
using System.Security;
using System.Security.Permissions;
using Microsoft.Win32.SafeHandles;
namespace Jellyfish.Library
{
[SecurityPermission(SecurityAction.InheritanceDemand, UnmanagedCode = true)]
[SecurityPermission(SecurityAction.LinkDemand, UnmanagedCode = true)]
[SecurityCritical]
public abstract class SafeAllocHandle : SafeHandleZeroOrMinusOneIsInvalid
{
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
@ -19,7 +17,7 @@ namespace Jellyfish.Library
}
}
[SecurityPermission(SecurityAction.LinkDemand, UnmanagedCode = true)]
[SecurityCritical]
public sealed class SafeGlobalAllocHandle : SafeAllocHandle
{
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
@ -35,11 +33,13 @@ namespace Jellyfish.Library
SetHandle(existingHandle);
}
[SecurityCritical]
public static SafeGlobalAllocHandle Allocate(int size)
{
return Allocate(0x0, size);
}
[SecurityCritical]
public static SafeGlobalAllocHandle Allocate(byte[] value)
{
if (value == null)
@ -54,25 +54,29 @@ namespace Jellyfish.Library
}
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
[SecurityCritical]
protected override bool ReleaseHandle()
{
return (NativeMethods.GlobalFree(handle) == IntPtr.Zero);
}
[SecurityCritical]
private static SafeGlobalAllocHandle Allocate(uint flags, int size)
{
var alloc = NativeMethods.GlobalAlloc(flags, (IntPtr)size);
if (alloc.IsInvalid)
{
throw new Win32Exception();
Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWin32Error());
}
return alloc;
}
[SecurityCritical]
[SuppressUnmanagedCodeSecurity]
private static class NativeMethods
{
[SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage")]
[DllImport("kernel32.dll", SetLastError = true)]
public static extern SafeGlobalAllocHandle GlobalAlloc(uint dwFlags, IntPtr sizetBytes);
@ -82,7 +86,7 @@ namespace Jellyfish.Library
}
}
[SecurityPermission(SecurityAction.LinkDemand, UnmanagedCode = true)]
[SecurityCritical]
public sealed class SafeLocalAllocHandle : SafeAllocHandle
{
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
@ -98,11 +102,13 @@ namespace Jellyfish.Library
SetHandle(existingHandle);
}
[SecurityCritical]
public static SafeLocalAllocHandle Allocate(int size)
{
return Allocate(0x0, size);
}
[SecurityCritical]
public static SafeLocalAllocHandle Allocate(byte[] value)
{
if (value == null)
@ -117,25 +123,29 @@ namespace Jellyfish.Library
}
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
[SecurityCritical]
protected override bool ReleaseHandle()
{
return (NativeMethods.LocalFree(handle) == IntPtr.Zero);
}
[SecurityCritical]
private static SafeLocalAllocHandle Allocate(uint flags, int size)
{
var alloc = NativeMethods.LocalAlloc(flags, (IntPtr)size);
if (alloc.IsInvalid)
{
throw new Win32Exception();
Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWin32Error());
}
return alloc;
}
[SecurityCritical]
[SuppressUnmanagedCodeSecurity]
private static class NativeMethods
{
[SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage")]
[DllImport("kernel32.dll", SetLastError = true)]
public static extern SafeLocalAllocHandle LocalAlloc(uint dwFlags, IntPtr sizetBytes);

View File

@ -1,17 +1,15 @@
using System;
using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
using System.IO;
using System.Runtime.ConstrainedExecution;
using System.Runtime.InteropServices;
using System.Security;
using System.Security.AccessControl;
using System.Security.Permissions;
using Microsoft.Win32.SafeHandles;
namespace Jellyfish.Library
{
[SecurityPermission(SecurityAction.LinkDemand, UnmanagedCode = true)]
[SecurityCritical]
public sealed class SafeFileHandle : SafeHandleZeroOrMinusOneIsInvalid
{
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
@ -27,6 +25,7 @@ namespace Jellyfish.Library
SetHandle(existingHandle);
}
[SecurityCritical]
public static SafeFileHandle CreateFile(string fileName, FileAccess fileAccess, FileShare fileShare, FileMode fileMode, GeneralSecurity fileSecurity)
{
if (fileMode == FileMode.Append)
@ -41,6 +40,7 @@ namespace Jellyfish.Library
}
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
[SecurityCritical]
protected override bool ReleaseHandle()
{
return NativeMethods.CloseHandle(handle);
@ -62,6 +62,7 @@ namespace Jellyfish.Library
fileSecurity.Persist(this);
}
[SecurityCritical]
private static SafeFileHandle CreateFile(string fileName, uint fileAccess, uint fileShare, uint fileMode, uint fileOptions, GeneralSecurity fileSecurity,
bool inheritable)
{
@ -72,13 +73,14 @@ namespace Jellyfish.Library
file = NativeMethods.CreateFile(fileName, fileAccess, fileShare, securityAttributes, fileMode, fileOptions, IntPtr.Zero);
if (file.IsInvalid)
{
throw new Win32Exception();
Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWin32Error());
}
});
return file;
}
[SecurityCritical]
[SuppressUnmanagedCodeSecurity]
private static class NativeMethods
{

View File

@ -1,34 +1,42 @@
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.30729</ProductVersion>
<ProductVersion>8.0.50727</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{DAB11A70-D08B-4A96-8A54-E81B1DE39681}</ProjectGuid>
<ProjectGuid>{99CA7796-B72A-4F8C-BCDB-0D688220A331}</ProjectGuid>
<ProjectTypeGuids>{A1591282-1198-4647-A2B1-27E5FF5F6F3B};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Jellyfish.Library</RootNamespace>
<AssemblyName>Jellyfish.Library</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<TargetFrameworkIdentifier>Silverlight</TargetFrameworkIdentifier>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<SilverlightVersion>$(TargetFrameworkVersion)</SilverlightVersion>
<SilverlightApplication>false</SilverlightApplication>
<ValidateXaml>true</ValidateXaml>
<ThrowErrorsInValidation>false</ThrowErrorsInValidation>
<SignAssembly>false</SignAssembly>
<AssemblyOriginatorKeyFile>..\..\Jellyfish.snk</AssemblyOriginatorKeyFile>
<ThrowErrorsInValidation>true</ThrowErrorsInValidation>
</PropertyGroup>
<!-- This property group is only here to support building this project using the
MSBuild 3.5 toolset. In order to work correctly with this older toolset, it needs
to set the TargetFrameworkVersion to v3.5 -->
<PropertyGroup Condition="'$(MSBuildToolsVersion)' == '3.5'">
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\</OutputPath>
<DefineConstants>TRACE;DEBUG;SILVERLIGHT;CODE_ANALYSIS</DefineConstants>
<DefineConstants>DEBUG;TRACE;SILVERLIGHT;CODE_ANALYSIS</DefineConstants>
<NoStdLib>true</NoStdLib>
<NoConfig>true</NoConfig>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<RunCodeAnalysis>false</RunCodeAnalysis>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<RunCodeAnalysis>false</RunCodeAnalysis>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@ -40,29 +48,35 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<RunCodeAnalysis>false</RunCodeAnalysis>
</PropertyGroup>
<ItemGroup>
<Reference Include="System.Windows" />
<Reference Include="mscorlib" />
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml" />
<Reference Include="System.Net" />
<Reference Include="System.Windows" />
<Reference Include="System.Windows.Browser" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Serialization">
<Private>True</Private>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="..\AssemblyCommentAttribute.cs">
<Link>AssemblyCommentAttribute.cs</Link>
</Compile>
<Compile Include="..\FrameRateCounter.xaml.cs">
<Link>FrameRateCounter.xaml.cs</Link>
<DependentUpon>FrameRateCounter.xaml</DependentUpon>
</Compile>
<Compile Include="..\GlobalSuppressions.cs">
<Link>GlobalSuppressions.cs</Link>
</Compile>
<Compile Include="..\IEnumerableExtensions.cs">
<Link>IEnumerableExtensions.cs</Link>
</Compile>
<Compile Include="..\Lazy.cs">
<Link>Lazy.cs</Link>
</Compile>
<Compile Include="..\MathHelpers.cs">
<Link>MathHelpers.cs</Link>
</Compile>
@ -78,16 +92,16 @@
<Compile Include="..\WaveFormat.cs">
<Link>WaveFormat.cs</Link>
</Compile>
<Compile Include="ApplicationBase.cs" />
<Compile Include="FrameRateCounter.xaml.cs">
<DependentUpon>FrameRateCounter.xaml</DependentUpon>
<Compile Include="..\XmlSerializerHelpers.cs">
<Link>XmlSerializerHelpers.cs</Link>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="StringFormatConverter.cs" />
<Compile Include="ApplicationBase.cs" />
<Compile Include="WaveMediaStreamSource.cs" />
</ItemGroup>
<ItemGroup>
<Page Include="FrameRateCounter.xaml">
<Page Include="..\FrameRateCounter.xaml">
<Link>FrameRateCounter.xaml</Link>
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
@ -97,14 +111,7 @@
<Link>CustomDictionary.xml</Link>
</CodeAnalysisDictionary>
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Microsoft\Silverlight\v3.0\Microsoft.Silverlight.CSharp.targets" Condition="" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Silverlight\$(SilverlightVersion)\Microsoft.Silverlight.CSharp.targets" />
<ProjectExtensions>
<VisualStudio>
<FlavorProperties GUID="{A1591282-1198-4647-A2B1-27E5FF5F6F3B}">
@ -112,4 +119,11 @@
</FlavorProperties>
</VisualStudio>
</ProjectExtensions>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@ -1,7 +1,9 @@

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Silverlight", "Jellyfish.Library.Silverlight.csproj", "{DAB11A70-D08B-4A96-8A54-E81B1DE39681}"
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Silverlight", "Jellyfish.Library.Silverlight.csproj", "{99CA7796-B72A-4F8C-BCDB-0D688220A331}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Silverlight.Phone", "Phone\Jellyfish.Library.Silverlight.Phone.csproj", "{D4880706-29A6-449C-A2A6-3058C37583DA}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@ -9,10 +11,14 @@ Global
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{DAB11A70-D08B-4A96-8A54-E81B1DE39681}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DAB11A70-D08B-4A96-8A54-E81B1DE39681}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DAB11A70-D08B-4A96-8A54-E81B1DE39681}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DAB11A70-D08B-4A96-8A54-E81B1DE39681}.Release|Any CPU.Build.0 = Release|Any CPU
{99CA7796-B72A-4F8C-BCDB-0D688220A331}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{99CA7796-B72A-4F8C-BCDB-0D688220A331}.Debug|Any CPU.Build.0 = Debug|Any CPU
{99CA7796-B72A-4F8C-BCDB-0D688220A331}.Release|Any CPU.ActiveCfg = Release|Any CPU
{99CA7796-B72A-4F8C-BCDB-0D688220A331}.Release|Any CPU.Build.0 = Release|Any CPU
{D4880706-29A6-449C-A2A6-3058C37583DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D4880706-29A6-449C-A2A6-3058C37583DA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D4880706-29A6-449C-A2A6-3058C37583DA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D4880706-29A6-449C-A2A6-3058C37583DA}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -0,0 +1,119 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>10.0.20506</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{D4880706-29A6-449C-A2A6-3058C37583DA}</ProjectGuid>
<ProjectTypeGuids>{C089C8C0-30E0-4E22-80C0-CE093F111A43};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Jellyfish.Library</RootNamespace>
<AssemblyName>Jellyfish.Library</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<SilverlightVersion>$(TargetFrameworkVersion)</SilverlightVersion>
<TargetFrameworkProfile>WindowsPhone</TargetFrameworkProfile>
<TargetFrameworkIdentifier>Silverlight</TargetFrameworkIdentifier>
<SilverlightApplication>false</SilverlightApplication>
<ValidateXaml>true</ValidateXaml>
<ThrowErrorsInValidation>true</ThrowErrorsInValidation>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\</OutputPath>
<DefineConstants>DEBUG;TRACE;SILVERLIGHT;WINDOWS_PHONE;CODE_ANALYSIS</DefineConstants>
<NoStdLib>true</NoStdLib>
<NoConfig>true</NoConfig>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<RunCodeAnalysis>false</RunCodeAnalysis>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\</OutputPath>
<DefineConstants>TRACE;SILVERLIGHT;WINDOWS_PHONE;CODE_ANALYSIS</DefineConstants>
<NoStdLib>true</NoStdLib>
<NoConfig>true</NoConfig>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<RunCodeAnalysis>false</RunCodeAnalysis>
</PropertyGroup>
<ItemGroup>
<Reference Include="mscorlib" />
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Net" />
<Reference Include="System.Windows" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Serialization" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\..\AssemblyCommentAttribute.cs">
<Link>AssemblyCommentAttribute.cs</Link>
</Compile>
<Compile Include="..\..\GlobalSuppressions.cs">
<Link>GlobalSuppressions.cs</Link>
</Compile>
<Compile Include="..\..\IEnumerableExtensions.cs">
<Link>IEnumerableExtensions.cs</Link>
</Compile>
<Compile Include="..\..\MathHelpers.cs">
<Link>MathHelpers.cs</Link>
</Compile>
<Compile Include="..\..\SingletonFactory.cs">
<Link>SingletonFactory.cs</Link>
</Compile>
<Compile Include="..\..\StreamExtensions.cs">
<Link>StreamExtensions.cs</Link>
</Compile>
<Compile Include="..\..\StringBuilderExtensions.cs">
<Link>StringBuilderExtensions.cs</Link>
</Compile>
<Compile Include="..\..\WaveFormat.cs">
<Link>WaveFormat.cs</Link>
</Compile>
<Compile Include="..\..\XmlSerializerHelpers.cs">
<Link>XmlSerializerHelpers.cs</Link>
</Compile>
<Compile Include="..\ApplicationBase.cs">
<Link>ApplicationBase.cs</Link>
</Compile>
<Compile Include="..\WaveMediaStreamSource.cs">
<Link>WaveMediaStreamSource.cs</Link>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="FrameRateCounter.xaml.cs">
<DependentUpon>FrameRateCounter.xaml</DependentUpon>
</Compile>
<Compile Include="StringFormatConverter.cs" />
</ItemGroup>
<ItemGroup>
<Page Include="FrameRateCounter.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
</ItemGroup>
<ItemGroup>
<CodeAnalysisDictionary Include="..\..\CustomDictionary.xml">
<Link>CustomDictionary.xml</Link>
</CodeAnalysisDictionary>
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Microsoft\Silverlight for Phone\$(TargetFrameworkVersion)\Microsoft.Silverlight.$(TargetFrameworkProfile).Overrides.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\Silverlight for Phone\$(TargetFrameworkVersion)\Microsoft.Silverlight.CSharp.targets" />
<ProjectExtensions />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@ -0,0 +1,22 @@
using System;
using System.Reflection;
using System.Resources;
using System.Runtime.InteropServices;
using Jellyfish.Library;
[assembly: AssemblyTitle("Library")]
[assembly: AssemblyDescription("Common Library")]
[assembly: AssemblyProduct("Jellyfish.Library.Silverlight.Phone")]
[assembly: AssemblyCompany("Digital Jellyfish Design Ltd")]
[assembly: AssemblyCopyright("Copyright © 2009-2010 Digital Jellyfish Design Ltd")]
[assembly: AssemblyComment("Developed by Sean Fausett")]
[assembly: AssemblyVersion("0.1.2.0")]
[assembly: AssemblyFileVersion("0.1.2.0")]
[assembly: AssemblyInformationalVersion("0.1.2.0")]
[assembly: CLSCompliant(false)]
[assembly: ComVisible(false)]
[assembly: Guid("66034b9e-9f0b-47b0-aac4-cade9a748891")]
[assembly: NeutralResourcesLanguage("en")]

View File

@ -11,9 +11,9 @@ using Jellyfish.Library;
[assembly: AssemblyCopyright("Copyright © 2009-2010 Digital Jellyfish Design Ltd")]
[assembly: AssemblyComment("Developed by Sean Fausett")]
[assembly: AssemblyVersion("0.1.1.0")]
[assembly: AssemblyFileVersion("0.1.1.0")]
[assembly: AssemblyInformationalVersion("0.1.1.0")]
[assembly: AssemblyVersion("0.1.2.0")]
[assembly: AssemblyFileVersion("0.1.2.0")]
[assembly: AssemblyInformationalVersion("0.1.2.0")]
[assembly: CLSCompliant(false)]
[assembly: ComVisible(false)]

View File

@ -1,4 +1,5 @@
using System.Globalization;
using System;
using System.Globalization;
using System.Text;
namespace Jellyfish.Library
@ -7,16 +8,31 @@ namespace Jellyfish.Library
{
public static StringBuilder AppendHex(this StringBuilder builder, short value) // little endian
{
if (builder == null)
{
throw new ArgumentNullException("builder");
}
return builder.AppendFormat(CultureInfo.InvariantCulture, "{0:X2}{1:X2}", value & 0xFF, value >> 8);
}
public static StringBuilder AppendHex(this StringBuilder builder, int value) // little endian
{
if (builder == null)
{
throw new ArgumentNullException("builder");
}
return builder.AppendFormat(CultureInfo.InvariantCulture, "{0:X2}{1:X2}{2:X2}{3:X2}", value & 0xFF, (value >> 8) & 0xFF, (value >> 16) & 0xFF, value >> 24);
}
public static StringBuilder AppendWithoutGarbage(this StringBuilder builder, int value)
{
if (builder == null)
{
throw new ArgumentNullException("builder");
}
if (value < 0)
{
builder.Append('-');

View File

@ -1,6 +1,6 @@
using System;
using System.Diagnostics;
using System.Security.Permissions;
using System.Security;
using System.Text;
using System.Windows;
using System.Windows.Threading;
@ -9,13 +9,13 @@ namespace Jellyfish.Library
{
public class ApplicationBase : Application
{
[SecurityPermission(SecurityAction.LinkDemand, UnmanagedCode = true)]
[SecurityCritical]
public ApplicationBase() :
this(null)
{
}
[SecurityPermission(SecurityAction.LinkDemand, UnmanagedCode = true)]
[SecurityCritical]
public ApplicationBase(string name)
{
Name = name;

View File

@ -1,33 +1,30 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.30729</ProductVersion>
<ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{D47A24A9-1590-4E8A-A406-BC66D5891BFA}</ProjectGuid>
<ProjectGuid>{93900841-7250-4D3A-837E-43EE3FD118DC}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Jellyfish.Library</RootNamespace>
<AssemblyName>Jellyfish.Library</AssemblyName>
<SignAssembly>false</SignAssembly>
<AssemblyOriginatorKeyFile>..\..\Jellyfish.snk</AssemblyOriginatorKeyFile>
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>2.0</OldToolsVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\</OutputPath>
<DefineConstants>TRACE;DEBUG;WINDOWS;CODE_ANALYSIS</DefineConstants>
<DefineConstants>DEBUG;TRACE;WINDOWS;CODE_ANALYSIS</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<RunCodeAnalysis>false</RunCodeAnalysis>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<RunCodeAnalysis>false</RunCodeAnalysis>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@ -37,26 +34,19 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<RunCodeAnalysis>false</RunCodeAnalysis>
</PropertyGroup>
<ItemGroup>
<Reference Include="PresentationCore">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="PresentationFramework">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="Microsoft.CSharp" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Core" />
<Reference Include="System.Xaml" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="WindowsBase">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="WindowsBase" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\AssemblyCommentAttribute.cs">
@ -68,6 +58,10 @@
<Compile Include="..\DirectSoundInterop.cs">
<Link>DirectSoundInterop.cs</Link>
</Compile>
<Compile Include="..\FrameRateCounter.xaml.cs">
<Link>FrameRateCounter.xaml.cs</Link>
<DependentUpon>FrameRateCounter.xaml</DependentUpon>
</Compile>
<Compile Include="..\GCHandleHelpers.cs">
<Link>GCHandleHelpers.cs</Link>
</Compile>
@ -80,9 +74,6 @@
<Compile Include="..\IEnumerableExtensions.cs">
<Link>IEnumerableExtensions.cs</Link>
</Compile>
<Compile Include="..\Lazy.cs">
<Link>Lazy.cs</Link>
</Compile>
<Compile Include="..\MarshalHelpers.cs">
<Link>MarshalHelpers.cs</Link>
</Compile>
@ -110,15 +101,13 @@
<Compile Include="..\XmlSerializerHelpers.cs">
<Link>XmlSerializerHelpers.cs</Link>
</Compile>
<Compile Include="ApplicationBase.cs" />
<Compile Include="FrameRateCounter.xaml.cs">
<DependentUpon>FrameRateCounter.xaml</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="ApplicationBase.cs" />
<Compile Include="WindowExtensions.cs" />
</ItemGroup>
<ItemGroup>
<Page Include="FrameRateCounter.xaml">
<Page Include="..\FrameRateCounter.xaml">
<Link>FrameRateCounter.xaml</Link>
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
@ -128,7 +117,7 @@
<Link>CustomDictionary.xml</Link>
</CodeAnalysisDictionary>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">

View File

@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Wpf", "Jellyfish.Library.Wpf.csproj", "{D47A24A9-1590-4E8A-A406-BC66D5891BFA}"
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Wpf", "Jellyfish.Library.Wpf.csproj", "{93900841-7250-4D3A-837E-43EE3FD118DC}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@ -9,10 +9,10 @@ Global
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{D47A24A9-1590-4E8A-A406-BC66D5891BFA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D47A24A9-1590-4E8A-A406-BC66D5891BFA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D47A24A9-1590-4E8A-A406-BC66D5891BFA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D47A24A9-1590-4E8A-A406-BC66D5891BFA}.Release|Any CPU.Build.0 = Release|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -11,9 +11,9 @@ using Jellyfish.Library;
[assembly: AssemblyCopyright("Copyright © 2009-2010 Digital Jellyfish Design Ltd")]
[assembly: AssemblyComment("Developed by Sean Fausett")]
[assembly: AssemblyVersion("0.1.1.0")]
[assembly: AssemblyFileVersion("0.1.1.0")]
[assembly: AssemblyInformationalVersion("0.1.1.0")]
[assembly: AssemblyVersion("0.1.2.0")]
[assembly: AssemblyFileVersion("0.1.2.0")]
[assembly: AssemblyInformationalVersion("0.1.2.0")]
[assembly: CLSCompliant(false)]
[assembly: ComVisible(false)]

View File

@ -1,36 +0,0 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
<PropertyGroup>
<ProjectGuid>a96f5631-40e1-40b0-aee2-6f2e3368e2ae</ProjectGuid>
<ProjectTypeGuids>{96E2B04D-8817-42c6-938A-82C39BA4D311};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<XnaFrameworkVersion>v3.1</XnaFrameworkVersion>
<PlatformTarget>x86</PlatformTarget>
<OutputPath>bin\$(Platform)\$(Configuration)</OutputPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<XnaPlatform>Windows</XnaPlatform>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<XnaPlatform>Windows</XnaPlatform>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.Xna.Framework.Content.Pipeline.AudioImporters, Version=3.1.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d" />
<Reference Include="Microsoft.Xna.Framework.Content.Pipeline.EffectImporter, Version=3.1.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d" />
<Reference Include="Microsoft.Xna.Framework.Content.Pipeline.FBXImporter, Version=3.1.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d" />
<Reference Include="Microsoft.Xna.Framework.Content.Pipeline.TextureImporter, Version=3.1.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d" />
<Reference Include="Microsoft.Xna.Framework.Content.Pipeline.VideoImporters, Version=3.1.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d" />
<Reference Include="Microsoft.Xna.Framework.Content.Pipeline.XImporter, Version=3.1.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d" />
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@ -36,17 +36,22 @@ namespace Jellyfish.Library
_frameRateBuilder.Length = 0;
_frameRateBuilder.AppendWithoutGarbage(_frameRate).Append(" fps");
_spriteBatch.Begin(SpriteBlendMode.AlphaBlend, SpriteSortMode.Immediate, SaveStateMode.None);
//_spriteBatch.DrawString(_spriteFont, fps, Position - Vector2.UnitX, Color.Black); // rough outline
//_spriteBatch.DrawString(_spriteFont, fps, Position + Vector2.UnitX, Color.Black);
//_spriteBatch.DrawString(_spriteFont, fps, Position - Vector2.UnitY, Color.Black);
//_spriteBatch.DrawString(_spriteFont, fps, Position + Vector2.UnitY, Color.Black);
_spriteBatch.Begin();
//_spriteBatch.DrawString(_spriteFont, _frameRateBuilder, Position - Vector2.UnitX, Color.Black); // rough outline
//_spriteBatch.DrawString(_spriteFont, _frameRateBuilder, Position + Vector2.UnitX, Color.Black);
//_spriteBatch.DrawString(_spriteFont, _frameRateBuilder, Position - Vector2.UnitY, Color.Black);
//_spriteBatch.DrawString(_spriteFont, _frameRateBuilder, Position + Vector2.UnitY, Color.Black);
_spriteBatch.DrawString(_spriteFont, _frameRateBuilder, Position, FontColor);
_spriteBatch.End();
}
public override void Update(GameTime gameTime)
{
if (gameTime == null)
{
throw new ArgumentNullException("gameTime");
}
_elapsedTime += gameTime.ElapsedGameTime.Ticks;
if (_elapsedTime >= TimeSpan.TicksPerSecond)

View File

@ -19,7 +19,6 @@ namespace Jellyfish.Library
GraphicsDeviceManager = new GraphicsDeviceManager(this);
GraphicsDeviceService = (IGraphicsDeviceService)Services.GetService(typeof(IGraphicsDeviceService));
Components.Add(new GamerServicesComponent(this));
Content.RootDirectory = "Content";
if (!string.IsNullOrEmpty(Name))
{

View File

@ -0,0 +1,136 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{46B2BD23-3D45-4268-9979-B9CF136CC982}</ProjectGuid>
<ProjectTypeGuids>{6D335F3A-9D43-41b4-9D22-F6F17C4BE596};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">Windows Phone</Platform>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Jellyfish.Library</RootNamespace>
<AssemblyName>Jellyfish.Library</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
<XnaFrameworkVersion>v4.0</XnaFrameworkVersion>
<XnaPlatform>Windows Phone</XnaPlatform>
<XnaProfile>Reach</XnaProfile>
<XnaCrossPlatformGroupID>f1d4203f-e8dd-43ff-81b2-e4562d3ae0b6</XnaCrossPlatformGroupID>
<XnaOutputType>Library</XnaOutputType>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|Windows Phone' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Windows Phone\</OutputPath>
<DefineConstants>DEBUG;TRACE;WINDOWS_PHONE;CODE_ANALYSIS</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<NoStdLib>true</NoStdLib>
<UseVSHostingProcess>false</UseVSHostingProcess>
<XnaCompressContent>true</XnaCompressContent>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<RunCodeAnalysis>false</RunCodeAnalysis>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|Windows Phone' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Windows Phone\</OutputPath>
<DefineConstants>TRACE;WINDOWS_PHONE;CODE_ANALYSIS</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<NoStdLib>true</NoStdLib>
<UseVSHostingProcess>false</UseVSHostingProcess>
<XnaCompressContent>true</XnaCompressContent>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<RunCodeAnalysis>false</RunCodeAnalysis>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.Xna.Framework">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Game">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Graphics">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.GamerServices">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Input.Touch">
<Private>False</Private>
</Reference>
<Reference Include="mscorlib">
<Private>False</Private>
</Reference>
<Reference Include="System">
<Private>False</Private>
</Reference>
<Reference Include="System.Core">
<RequiredTargetFramework>4.0</RequiredTargetFramework>
<Private>False</Private>
</Reference>
<Reference Include="System.Xml">
<Private>False</Private>
</Reference>
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>4.0</RequiredTargetFramework>
<Private>False</Private>
</Reference>
<Reference Include="System.Xml.Serialization">
<Private>False</Private>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="..\AssemblyCommentAttribute.cs">
<Link>AssemblyCommentAttribute.cs</Link>
</Compile>
<Compile Include="..\GlobalSuppressions.cs">
<Link>GlobalSuppressions.cs</Link>
</Compile>
<Compile Include="..\IEnumerableExtensions.cs">
<Link>IEnumerableExtensions.cs</Link>
</Compile>
<Compile Include="..\Lazy.cs">
<Link>Lazy.cs</Link>
</Compile>
<Compile Include="..\MathHelpers.cs">
<Link>MathHelpers.cs</Link>
</Compile>
<Compile Include="..\SingletonFactory.cs">
<Link>SingletonFactory.cs</Link>
</Compile>
<Compile Include="..\StreamExtensions.cs">
<Link>StreamExtensions.cs</Link>
</Compile>
<Compile Include="..\StringBuilderExtensions.cs">
<Link>StringBuilderExtensions.cs</Link>
</Compile>
<Compile Include="..\WaveFormat.cs">
<Link>WaveFormat.cs</Link>
</Compile>
<Compile Include="..\XmlSerializerHelpers.cs">
<Link>XmlSerializerHelpers.cs</Link>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="FrameRateCounter.cs" />
<Compile Include="GameBase.cs" />
</ItemGroup>
<ItemGroup>
<CodeAnalysisDictionary Include="..\CustomDictionary.xml">
<Link>CustomDictionary.xml</Link>
</CodeAnalysisDictionary>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\Microsoft.Xna.GameStudio.targets" />
<!--
To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@ -1,6 +1,7 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}</ProjectGuid>
<ProjectGuid>{222412EE-A626-493F-AE72-344657A6840D}</ProjectGuid>
<ProjectTypeGuids>{6D335F3A-9D43-41b4-9D22-F6F17C4BE596};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">Xbox 360</Platform>
@ -8,56 +9,92 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Jellyfish.Library</RootNamespace>
<AssemblyName>Jellyfish.Library</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<XnaFrameworkVersion>v3.1</XnaFrameworkVersion>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
<XnaFrameworkVersion>v4.0</XnaFrameworkVersion>
<XnaPlatform>Xbox 360</XnaPlatform>
<XnaCrossPlatformGroupID>3289d0b6-d8a8-415e-8c29-dc355352cb54</XnaCrossPlatformGroupID>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
<SignAssembly>false</SignAssembly>
<AssemblyOriginatorKeyFile>..\..\Jellyfish.snk</AssemblyOriginatorKeyFile>
<XnaProfile>Reach</XnaProfile>
<XnaCrossPlatformGroupID>f1d4203f-e8dd-43ff-81b2-e4562d3ae0b6</XnaCrossPlatformGroupID>
<XnaOutputType>Library</XnaOutputType>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|Xbox 360' ">
<OutputPath>bin\Xbox\</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<NoStdLib>true</NoStdLib>
<UseVSHostingProcess>false</UseVSHostingProcess>
<PlatformTarget>x86</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<DefineConstants>TRACE;DEBUG;XBOX;XBOX360;CODE_ANALYSIS</DefineConstants>
<XnaCompressContent>true</XnaCompressContent>
<RunCodeAnalysis>false</RunCodeAnalysis>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|Xbox 360' ">
<OutputPath>bin\Xbox\</OutputPath>
<OutputPath>bin\Xbox 360\</OutputPath>
<DefineConstants>DEBUG;TRACE;XBOX;XBOX360;CODE_ANALYSIS</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<NoStdLib>true</NoStdLib>
<UseVSHostingProcess>false</UseVSHostingProcess>
<PlatformTarget>x86</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<DefineConstants>TRACE;XBOX;XBOX360;CODE_ANALYSIS</DefineConstants>
<XnaCompressContent>true</XnaCompressContent>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<RunCodeAnalysis>false</RunCodeAnalysis>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|Xbox 360' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Xbox 360\</OutputPath>
<DefineConstants>TRACE;XBOX;XBOX360;CODE_ANALYSIS</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<NoStdLib>true</NoStdLib>
<UseVSHostingProcess>false</UseVSHostingProcess>
<XnaCompressContent>true</XnaCompressContent>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<RunCodeAnalysis>false</RunCodeAnalysis>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.Xna.Framework">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Game">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Graphics">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.GamerServices">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Input.Touch">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Xact">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Video">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Avatar">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Net">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Storage">
<Private>False</Private>
</Reference>
<Reference Include="mscorlib">
<Private>False</Private>
</Reference>
<Reference Include="System">
<Private>False</Private>
</Reference>
<Reference Include="System.Core">
<RequiredTargetFramework>4.0</RequiredTargetFramework>
<Private>False</Private>
</Reference>
<Reference Include="System.Xml">
<Private>False</Private>
</Reference>
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>4.0</RequiredTargetFramework>
<Private>False</Private>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="..\AssemblyCommentAttribute.cs">
<Link>AssemblyCommentAttribute.cs</Link>
@ -89,77 +126,9 @@
<Compile Include="..\XmlSerializerHelpers.cs">
<Link>XmlSerializerHelpers.cs</Link>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="FrameRateCounter.cs" />
<Compile Include="GameBase.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<NestedContentProject Include="Content\Content.contentproj">
<Project>a96f5631-40e1-40b0-aee2-6f2e3368e2ae</Project>
<Visible>False</Visible>
</NestedContentProject>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
<ProductName>.NET Framework 2.0 %28x86%29</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
<Visible>False</Visible>
<ProductName>.NET Framework 3.0 %28x86%29</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
<Visible>False</Visible>
<ProductName>Windows Installer 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Xna.Framework.3.1">
<Visible>False</Visible>
<ProductName>Microsoft XNA Framework Redistributable 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<Reference Include="Microsoft.Xna.Framework">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Game">
<Private>False</Private>
</Reference>
<Reference Include="mscorlib">
<Private>False</Private>
</Reference>
<Reference Include="System">
<Private>False</Private>
</Reference>
<Reference Include="System.Core">
<Private>False</Private>
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Xml">
<Private>False</Private>
</Reference>
<Reference Include="System.Xml.Linq">
<Private>False</Private>
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
</ItemGroup>
<ItemGroup>
<CodeAnalysisDictionary Include="..\CustomDictionary.xml">
@ -168,11 +137,12 @@
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\Microsoft.Xna.GameStudio.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
<!--
To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@ -1,176 +0,0 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
<PropertyGroup>
<ProjectGuid>{8B5D5A39-10FA-434A-B8C4-09D4FDB96720}</ProjectGuid>
<ProjectTypeGuids>{6D335F3A-9D43-41b4-9D22-F6F17C4BE596};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">Zune</Platform>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Jellyfish.Library</RootNamespace>
<AssemblyName>Jellyfish.Library</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<XnaFrameworkVersion>v3.1</XnaFrameworkVersion>
<XnaPlatform>Zune</XnaPlatform>
<XnaCrossPlatformGroupID>3289d0b6-d8a8-415e-8c29-dc355352cb54</XnaCrossPlatformGroupID>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
<SignAssembly>false</SignAssembly>
<AssemblyOriginatorKeyFile>..\..\Jellyfish.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|Zune' ">
<OutputPath>bin\Zune\</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<NoStdLib>true</NoStdLib>
<UseVSHostingProcess>false</UseVSHostingProcess>
<PlatformTarget>x86</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<DefineConstants>TRACE;DEBUG;ZUNE;CODE_ANALYSIS</DefineConstants>
<RunCodeAnalysis>false</RunCodeAnalysis>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|Zune' ">
<OutputPath>bin\Zune\</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<NoStdLib>true</NoStdLib>
<UseVSHostingProcess>false</UseVSHostingProcess>
<PlatformTarget>x86</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<DefineConstants>TRACE;ZUNE;CODE_ANALYSIS</DefineConstants>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup>
<ItemGroup>
<Compile Include="..\AssemblyCommentAttribute.cs">
<Link>AssemblyCommentAttribute.cs</Link>
</Compile>
<Compile Include="..\GlobalSuppressions.cs">
<Link>GlobalSuppressions.cs</Link>
</Compile>
<Compile Include="..\IEnumerableExtensions.cs">
<Link>IEnumerableExtensions.cs</Link>
</Compile>
<Compile Include="..\Lazy.cs">
<Link>Lazy.cs</Link>
</Compile>
<Compile Include="..\MathHelpers.cs">
<Link>MathHelpers.cs</Link>
</Compile>
<Compile Include="..\SingletonFactory.cs">
<Link>SingletonFactory.cs</Link>
</Compile>
<Compile Include="..\StreamExtensions.cs">
<Link>StreamExtensions.cs</Link>
</Compile>
<Compile Include="..\StringBuilderExtensions.cs">
<Link>StringBuilderExtensions.cs</Link>
</Compile>
<Compile Include="..\WaveFormat.cs">
<Link>WaveFormat.cs</Link>
</Compile>
<Compile Include="..\XmlSerializerHelpers.cs">
<Link>XmlSerializerHelpers.cs</Link>
</Compile>
<Compile Include="FrameRateCounter.cs" />
<Compile Include="GameBase.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<NestedContentProject Include="Content\Content.contentproj">
<Project>a96f5631-40e1-40b0-aee2-6f2e3368e2ae</Project>
<Visible>False</Visible>
</NestedContentProject>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
<ProductName>.NET Framework 2.0 %28x86%29</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
<Visible>False</Visible>
<ProductName>.NET Framework 3.0 %28x86%29</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
<Visible>False</Visible>
<ProductName>Windows Installer 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Xna.Framework.3.1">
<Visible>False</Visible>
<ProductName>Microsoft XNA Framework Redistributable 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<Reference Include="Microsoft.Xna.Framework">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Game">
<Private>False</Private>
</Reference>
<Reference Include="mscorlib">
<Private>False</Private>
</Reference>
<Reference Include="System">
<Private>False</Private>
</Reference>
<Reference Include="System.Core">
<Private>False</Private>
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Xml">
<Private>False</Private>
</Reference>
<Reference Include="System.Xml.Linq">
<Private>False</Private>
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
</ItemGroup>
<ItemGroup>
<CodeAnalysisDictionary Include="..\CustomDictionary.xml">
<Link>CustomDictionary.xml</Link>
</CodeAnalysisDictionary>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\Microsoft.Xna.GameStudio.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@ -1,6 +1,7 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{E246958B-EAD8-48E9-844B-54718C952869}</ProjectGuid>
<ProjectGuid>{82F56318-A1FD-4078-A42F-06CAB8B97F63}</ProjectGuid>
<ProjectTypeGuids>{6D335F3A-9D43-41b4-9D22-F6F17C4BE596};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
@ -8,47 +9,34 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Jellyfish.Library</RootNamespace>
<AssemblyName>Jellyfish.Library</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<XnaFrameworkVersion>v3.1</XnaFrameworkVersion>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
<XnaFrameworkVersion>v4.0</XnaFrameworkVersion>
<XnaPlatform>Windows</XnaPlatform>
<XnaCrossPlatformGroupID>3289d0b6-d8a8-415e-8c29-dc355352cb54</XnaCrossPlatformGroupID>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
<SignAssembly>false</SignAssembly>
<AssemblyOriginatorKeyFile>..\..\Jellyfish.snk</AssemblyOriginatorKeyFile>
<XnaProfile>Reach</XnaProfile>
<XnaCrossPlatformGroupID>f1d4203f-e8dd-43ff-81b2-e4562d3ae0b6</XnaCrossPlatformGroupID>
<XnaOutputType>Library</XnaOutputType>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\</OutputPath>
<DefineConstants>TRACE;DEBUG;WINDOWS;CODE_ANALYSIS</DefineConstants>
<OutputPath>bin\x86\</OutputPath>
<DefineConstants>DEBUG;TRACE;WINDOWS;CODE_ANALYSIS</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<NoStdLib>true</NoStdLib>
<UseVSHostingProcess>false</UseVSHostingProcess>
<PlatformTarget>x86</PlatformTarget>
<XnaCompressContent>false</XnaCompressContent>
<RunCodeAnalysis>false</RunCodeAnalysis>
<XnaCompressContent>true</XnaCompressContent>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<RunCodeAnalysis>false</RunCodeAnalysis>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\</OutputPath>
<OutputPath>bin\x86\</OutputPath>
<DefineConstants>TRACE;WINDOWS;CODE_ANALYSIS</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
@ -57,26 +45,55 @@
<PlatformTarget>x86</PlatformTarget>
<XnaCompressContent>true</XnaCompressContent>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<RunCodeAnalysis>false</RunCodeAnalysis>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.Xna.Framework, Version=3.1.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d" />
<Reference Include="Microsoft.Xna.Framework.Game, Version=3.1.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d" />
<Reference Include="Microsoft.Xna.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d, processorArchitecture=x86">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Game, Version=4.0.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d, processorArchitecture=x86">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Graphics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d, processorArchitecture=x86">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.GamerServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d, processorArchitecture=x86">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Input.Touch, Version=4.0.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d, processorArchitecture=x86">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Xact, Version=4.0.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d, processorArchitecture=x86">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Video, Version=4.0.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d, processorArchitecture=x86">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Avatar, Version=4.0.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d, processorArchitecture=x86">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Net, Version=4.0.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d, processorArchitecture=x86">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Storage, Version=4.0.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d, processorArchitecture=x86">
<Private>False</Private>
</Reference>
<Reference Include="mscorlib">
<Private>False</Private>
</Reference>
<Reference Include="System">
<Private>False</Private>
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Core">
<RequiredTargetFramework>4.0</RequiredTargetFramework>
<Private>False</Private>
</Reference>
<Reference Include="System.Xml">
<Private>False</Private>
</Reference>
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
<Private>False</Private>
</Reference>
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
<RequiredTargetFramework>4.0</RequiredTargetFramework>
<Private>False</Private>
</Reference>
</ItemGroup>
@ -102,9 +119,6 @@
<Compile Include="..\IEnumerableExtensions.cs">
<Link>IEnumerableExtensions.cs</Link>
</Compile>
<Compile Include="..\Lazy.cs">
<Link>Lazy.cs</Link>
</Compile>
<Compile Include="..\MarshalHelpers.cs">
<Link>MarshalHelpers.cs</Link>
</Compile>
@ -132,52 +146,9 @@
<Compile Include="..\XmlSerializerHelpers.cs">
<Link>XmlSerializerHelpers.cs</Link>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="FrameRateCounter.cs" />
<Compile Include="GameBase.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<NestedContentProject Include="Content\Content.contentproj">
<Project>a96f5631-40e1-40b0-aee2-6f2e3368e2ae</Project>
<Visible>False</Visible>
</NestedContentProject>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
<ProductName>.NET Framework 2.0 %28x86%29</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
<Visible>False</Visible>
<ProductName>.NET Framework 3.0 %28x86%29</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
<Visible>False</Visible>
<ProductName>Windows Installer 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Xna.Framework.3.1">
<Visible>False</Visible>
<ProductName>Microsoft XNA Framework Redistributable 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<CodeAnalysisDictionary Include="..\CustomDictionary.xml">
@ -186,11 +157,12 @@
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\Microsoft.Xna.GameStudio.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
<!--
To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@ -1,68 +1,60 @@

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Xna", "Jellyfish.Library.Xna.csproj", "{E246958B-EAD8-48E9-844B-54718C952869}"
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Xna", "Jellyfish.Library.Xna.csproj", "{82F56318-A1FD-4078-A42F-06CAB8B97F63}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Xna.Xbox", "Jellyfish.Library.Xna.Xbox.csproj", "{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Xna.Phone", "Jellyfish.Library.Xna.Phone.csproj", "{46B2BD23-3D45-4268-9979-B9CF136CC982}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Xna.Zune", "Jellyfish.Library.Xna.Zune.csproj", "{8B5D5A39-10FA-434A-B8C4-09D4FDB96720}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Xna.Xbox", "Jellyfish.Library.Xna.Xbox.csproj", "{222412EE-A626-493F-AE72-344657A6840D}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Mixed Platforms = Debug|Mixed Platforms
Debug|Windows Phone = Debug|Windows Phone
Debug|x86 = Debug|x86
Debug|Xbox 360 = Debug|Xbox 360
Debug|Zune = Debug|Zune
Release|Mixed Platforms = Release|Mixed Platforms
Release|Windows Phone = Release|Windows Phone
Release|x86 = Release|x86
Release|Xbox 360 = Release|Xbox 360
Release|Zune = Release|Zune
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{E246958B-EAD8-48E9-844B-54718C952869}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Debug|Mixed Platforms.Build.0 = Debug|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Debug|x86.ActiveCfg = Debug|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Debug|x86.Build.0 = Debug|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Debug|Xbox 360.ActiveCfg = Debug|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Debug|Zune.ActiveCfg = Debug|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Release|Mixed Platforms.ActiveCfg = Release|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Release|Mixed Platforms.Build.0 = Release|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Release|x86.ActiveCfg = Release|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Release|x86.Build.0 = Release|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Release|Xbox 360.ActiveCfg = Release|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Release|Zune.ActiveCfg = Release|x86
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Debug|Mixed Platforms.ActiveCfg = Debug|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Debug|Mixed Platforms.Build.0 = Debug|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Debug|x86.ActiveCfg = Debug|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Debug|Xbox 360.ActiveCfg = Debug|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Debug|Xbox 360.Build.0 = Debug|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Debug|Zune.ActiveCfg = Debug|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Release|Mixed Platforms.ActiveCfg = Release|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Release|Mixed Platforms.Build.0 = Release|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Release|x86.ActiveCfg = Release|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Release|Xbox 360.ActiveCfg = Release|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Release|Xbox 360.Build.0 = Release|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Release|Zune.ActiveCfg = Release|Xbox 360
{A96F5631-40E1-40B0-AEE2-6F2E3368E2AE}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{A96F5631-40E1-40B0-AEE2-6F2E3368E2AE}.Debug|x86.ActiveCfg = Debug|x86
{A96F5631-40E1-40B0-AEE2-6F2E3368E2AE}.Debug|Xbox 360.ActiveCfg = Debug|x86
{A96F5631-40E1-40B0-AEE2-6F2E3368E2AE}.Debug|Zune.ActiveCfg = Debug|x86
{A96F5631-40E1-40B0-AEE2-6F2E3368E2AE}.Release|Mixed Platforms.ActiveCfg = Release|x86
{A96F5631-40E1-40B0-AEE2-6F2E3368E2AE}.Release|x86.ActiveCfg = Release|x86
{A96F5631-40E1-40B0-AEE2-6F2E3368E2AE}.Release|Xbox 360.ActiveCfg = Release|x86
{A96F5631-40E1-40B0-AEE2-6F2E3368E2AE}.Release|Zune.ActiveCfg = Release|x86
{8B5D5A39-10FA-434A-B8C4-09D4FDB96720}.Debug|Mixed Platforms.ActiveCfg = Debug|Zune
{8B5D5A39-10FA-434A-B8C4-09D4FDB96720}.Debug|Mixed Platforms.Build.0 = Debug|Zune
{8B5D5A39-10FA-434A-B8C4-09D4FDB96720}.Debug|x86.ActiveCfg = Debug|Zune
{8B5D5A39-10FA-434A-B8C4-09D4FDB96720}.Debug|Xbox 360.ActiveCfg = Debug|Zune
{8B5D5A39-10FA-434A-B8C4-09D4FDB96720}.Debug|Zune.ActiveCfg = Debug|Zune
{8B5D5A39-10FA-434A-B8C4-09D4FDB96720}.Debug|Zune.Build.0 = Debug|Zune
{8B5D5A39-10FA-434A-B8C4-09D4FDB96720}.Release|Mixed Platforms.ActiveCfg = Release|Zune
{8B5D5A39-10FA-434A-B8C4-09D4FDB96720}.Release|Mixed Platforms.Build.0 = Release|Zune
{8B5D5A39-10FA-434A-B8C4-09D4FDB96720}.Release|x86.ActiveCfg = Release|Zune
{8B5D5A39-10FA-434A-B8C4-09D4FDB96720}.Release|Xbox 360.ActiveCfg = Release|Zune
{8B5D5A39-10FA-434A-B8C4-09D4FDB96720}.Release|Zune.ActiveCfg = Release|Zune
{8B5D5A39-10FA-434A-B8C4-09D4FDB96720}.Release|Zune.Build.0 = Release|Zune
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Debug|Mixed Platforms.Build.0 = Debug|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Debug|Windows Phone.ActiveCfg = Debug|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Debug|x86.ActiveCfg = Debug|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Debug|x86.Build.0 = Debug|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Debug|Xbox 360.ActiveCfg = Debug|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Release|Mixed Platforms.ActiveCfg = Release|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Release|Mixed Platforms.Build.0 = Release|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Release|Windows Phone.ActiveCfg = Release|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Release|x86.ActiveCfg = Release|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Release|x86.Build.0 = Release|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Release|Xbox 360.ActiveCfg = Release|x86
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Debug|Mixed Platforms.ActiveCfg = Debug|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Debug|Mixed Platforms.Build.0 = Debug|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Debug|Windows Phone.ActiveCfg = Debug|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Debug|Windows Phone.Build.0 = Debug|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Debug|x86.ActiveCfg = Debug|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Debug|Xbox 360.ActiveCfg = Debug|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Release|Mixed Platforms.ActiveCfg = Release|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Release|Mixed Platforms.Build.0 = Release|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Release|Windows Phone.ActiveCfg = Release|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Release|Windows Phone.Build.0 = Release|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Release|x86.ActiveCfg = Release|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Release|Xbox 360.ActiveCfg = Release|Windows Phone
{222412EE-A626-493F-AE72-344657A6840D}.Debug|Mixed Platforms.ActiveCfg = Debug|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Debug|Mixed Platforms.Build.0 = Debug|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Debug|Windows Phone.ActiveCfg = Debug|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Debug|x86.ActiveCfg = Debug|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Debug|Xbox 360.ActiveCfg = Debug|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Debug|Xbox 360.Build.0 = Debug|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Release|Mixed Platforms.ActiveCfg = Release|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Release|Mixed Platforms.Build.0 = Release|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Release|Windows Phone.ActiveCfg = Release|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Release|x86.ActiveCfg = Release|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Release|Xbox 360.ActiveCfg = Release|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Release|Xbox 360.Build.0 = Release|Xbox 360
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -6,10 +6,10 @@ using Jellyfish.Library;
[assembly: AssemblyTitle("Library")]
[assembly: AssemblyDescription("Common Library")]
#if XBOX
#if WINDOWS_PHONE
[assembly: AssemblyProduct("Jellyfish.Library.Xna.Phone")]
#elif XBOX
[assembly: AssemblyProduct("Jellyfish.Library.Xna.Xbox")]
#elif ZUNE
[assembly: AssemblyProduct("Jellyfish.Library.Xna.Zune")]
#else
[assembly: AssemblyProduct("Jellyfish.Library.Xna")]
#endif
@ -17,11 +17,9 @@ using Jellyfish.Library;
[assembly: AssemblyCopyright("Copyright © 2009-2010 Digital Jellyfish Design Ltd")]
[assembly: AssemblyComment("Developed by Sean Fausett")]
[assembly: AssemblyVersion("0.1.1.0")]
#if WINDOWS
[assembly: AssemblyFileVersion("0.1.1.0")]
#endif
[assembly: AssemblyInformationalVersion("0.1.1.0")]
[assembly: AssemblyVersion("0.1.2.0")]
[assembly: AssemblyFileVersion("0.1.2.0")]
[assembly: AssemblyInformationalVersion("0.1.2.0")]
[assembly: CLSCompliant(false)]
[assembly: ComVisible(false)]

View File

@ -10,7 +10,7 @@ namespace Jellyfish.Virtu
public Cpu(Machine machine) :
base(machine)
{
ExecuteOpcode65N02 = new Action[OpcodeCount]
ExecuteOpCode65N02 = new Action[OpCodeCount]
{
Execute65X02Brk00, Execute65X02Ora01, Execute65N02Nop02, Execute65N02Nop03,
Execute65N02Nop04, Execute65X02Ora05, Execute65X02Asl06, Execute65N02Nop07,
@ -78,7 +78,7 @@ namespace Jellyfish.Virtu
Execute65N02NopFC, Execute65N02SbcFD, Execute65N02IncFE, Execute65N02NopFF
};
ExecuteOpcode65C02 = new Action[OpcodeCount]
ExecuteOpCode65C02 = new Action[OpCodeCount]
{
Execute65X02Brk00, Execute65X02Ora01, Execute65C02Nop02, Execute65C02Nop03,
Execute65C02Tsb04, Execute65X02Ora05, Execute65X02Asl06, Execute65C02Nop07,
@ -178,9 +178,9 @@ namespace Jellyfish.Virtu
public int Execute()
{
CC = 0;
Opcode = _memory.Read(RPC);
OpCode = _memory.Read(RPC);
RPC = (RPC + 1) & 0xFFFF;
_executeOpcode[Opcode]();
_executeOpCode[OpCode]();
Cycles += CC;
return CC;
@ -386,7 +386,7 @@ namespace Jellyfish.Virtu
}
#endregion
#region Core Opcode Actions
#region Core OpCode Actions
private void ExecuteAdc65N02(int data, int cc)
{
if ((RP & PD) == 0x0)
@ -1123,7 +1123,7 @@ namespace Jellyfish.Virtu
}
#endregion
#region 6502 Opcode Actions
#region 6502 OpCode Actions
private void Execute65X02And21() // and (zpg, x)
{
GetAddressZpgIndX();
@ -1858,7 +1858,7 @@ namespace Jellyfish.Virtu
}
#endregion
#region 65N02 Opcode Actions
#region 65N02 OpCode Actions
private void Execute65N02Adc61() // adc (zpg, x)
{
GetAddressZpgIndX();
@ -2520,7 +2520,7 @@ namespace Jellyfish.Virtu
}
#endregion
#region 65C02 Opcode Actions
#region 65C02 OpCode Actions
private void Execute65C02Adc61() // adc (zpg, x)
{
GetAddressZpgIndX();
@ -3212,7 +3212,7 @@ namespace Jellyfish.Virtu
private void UpdateSettings()
{
_executeOpcode = Machine.Settings.Cpu.Is65C02 ? ExecuteOpcode65C02 : ExecuteOpcode65N02;
_executeOpCode = Machine.Settings.Cpu.Is65C02 ? ExecuteOpCode65C02 : ExecuteOpCode65N02;
}
public int RA { get; private set; }
@ -3223,11 +3223,11 @@ namespace Jellyfish.Virtu
public int RPC { get; private set; }
public int EA { get; private set; }
public int CC { get; private set; }
public int Opcode { get; private set; }
public int OpCode { get; private set; }
public long Cycles { get; private set; }
private Memory _memory;
private Action[] _executeOpcode;
private Action[] _executeOpCode;
}
}

View File

@ -4,10 +4,10 @@ namespace Jellyfish.Virtu
{
public partial class Cpu
{
private const int OpcodeCount = 256;
private const int OpCodeCount = 256;
private readonly Action[] ExecuteOpcode65N02;
private readonly Action[] ExecuteOpcode65C02;
private readonly Action[] ExecuteOpCode65N02;
private readonly Action[] ExecuteOpCode65C02;
private const int PC = 0x01;
private const int PZ = 0x02;

View File

@ -10,7 +10,6 @@
<Recognized>
<Word>Annunciator</Word>
<Word>Dsk</Word>
<Word>Opcode</Word>
<Word>Unpause</Word>
<Word>Virtu</Word>
<Word>Xna</Word>

View File

@ -14,6 +14,15 @@ namespace Jellyfish.Virtu
public static Disk525 CreateDisk(string name, byte[] data, bool isWriteProtected)
{
if (name == null)
{
throw new ArgumentNullException("name");
}
if (data == null)
{
throw new ArgumentNullException("data");
}
if (name.EndsWith(".nib", StringComparison.OrdinalIgnoreCase) && (data.Length == TrackCount * TrackSize))
{
return new DiskNib(name, data, isWriteProtected);

View File

@ -13,7 +13,7 @@ namespace Jellyfish.Virtu
public override void Initialize()
{
_drives[0].InsertDisk("Default.dsk", StorageService.GetResourceStream("Default.dsk", 0x23000), false);
_drives[0].InsertDisk("Default.dsk", StorageService.GetResourceStream("Disks/Default.dsk", 0x23000), false);
#if WINDOWS
var settings = Machine.Settings.DiskII;

View File

@ -1,5 +1,6 @@
using System;
using System.IO;
using System.Security;
using Jellyfish.Library;
namespace Jellyfish.Virtu
@ -14,6 +15,9 @@ namespace Jellyfish.Virtu
DriveArmStepDelta[3] = new int[] { 0, 1, 0, 1, -1, 0, -1, 0, 0, 1, 0, 1, -1, 0, -1, 0 }; // phase 3
}
#if !XBOX
[SecurityCritical]
#endif
public void InsertDisk(string fileName, bool isWriteProtected)
{
using (var stream = File.OpenRead(fileName))

View File

@ -1,146 +1,228 @@

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Virtu.Silverlight", "Silverlight\Jellyfish.Virtu.Silverlight.csproj", "{5AA9C39E-DB55-4AD9-92EB-E8951D5AD680}"
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Silverlight", "..\Library\Silverlight\Jellyfish.Library.Silverlight.csproj", "{99CA7796-B72A-4F8C-BCDB-0D688220A331}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Virtu.Wpf", "Wpf\Jellyfish.Virtu.Wpf.csproj", "{D59B29AC-1105-410D-A88D-61E9C98B0C4B}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Silverlight.Phone", "..\Library\Silverlight\Phone\Jellyfish.Library.Silverlight.Phone.csproj", "{D4880706-29A6-449C-A2A6-3058C37583DA}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Virtu.Xna", "Xna\Jellyfish.Virtu.Xna.csproj", "{F72C1068-E6F3-4A6C-A404-F88626B43B7C}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Wpf", "..\Library\Wpf\Jellyfish.Library.Wpf.csproj", "{93900841-7250-4D3A-837E-43EE3FD118DC}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Virtu.Xna.Xbox", "Xna\Jellyfish.Virtu.Xna.Xbox.csproj", "{1D3618DE-F050-4350-826E-5E84BC62DEE3}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Xna", "..\Library\Xna\Jellyfish.Library.Xna.csproj", "{82F56318-A1FD-4078-A42F-06CAB8B97F63}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Silverlight", "..\Library\Silverlight\Jellyfish.Library.Silverlight.csproj", "{DAB11A70-D08B-4A96-8A54-E81B1DE39681}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Xna.Phone", "..\Library\Xna\Jellyfish.Library.Xna.Phone.csproj", "{46B2BD23-3D45-4268-9979-B9CF136CC982}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Wpf", "..\Library\Wpf\Jellyfish.Library.Wpf.csproj", "{D47A24A9-1590-4E8A-A406-BC66D5891BFA}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Xna.Xbox", "..\Library\Xna\Jellyfish.Library.Xna.Xbox.csproj", "{222412EE-A626-493F-AE72-344657A6840D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Xna", "..\Library\Xna\Jellyfish.Library.Xna.csproj", "{E246958B-EAD8-48E9-844B-54718C952869}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Virtu.Silverlight", "Silverlight\Jellyfish.Virtu.Silverlight.csproj", "{F8DB6D3A-807D-4E2D-92D5-469273E088DA}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Xna.Xbox", "..\Library\Xna\Jellyfish.Library.Xna.Xbox.csproj", "{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Virtu.Silverlight.Phone", "Silverlight\Phone\Jellyfish.Virtu.Silverlight.Phone.csproj", "{9F1025D2-E23B-4CDC-AC63-150941013963}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Virtu.Wpf", "Wpf\Jellyfish.Virtu.Wpf.csproj", "{C152D47E-BBC1-4C35-8646-465180720A72}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Virtu.Xna", "Xna\Jellyfish.Virtu.Xna.csproj", "{3D0AE444-357F-4986-859F-602CC9BB4EF6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Virtu.Xna.Content", "Xna\Content\Jellyfish.Virtu.Xna.Content.contentproj", "{C138ADC9-8F2B-414A-930D-12B489A96BBB}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Virtu.Xna.Phone", "Xna\Jellyfish.Virtu.Xna.Phone.csproj", "{AE4C0489-3A21-4264-BE20-EA6C72B24B2C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Virtu.Xna.Xbox", "Xna\Jellyfish.Virtu.Xna.Xbox.csproj", "{1400371E-AC2E-4BC5-8A52-077616F716C4}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|Mixed Platforms = Debug|Mixed Platforms
Debug|Windows Phone = Debug|Windows Phone
Debug|x86 = Debug|x86
Debug|Xbox 360 = Debug|Xbox 360
Release|Any CPU = Release|Any CPU
Release|Mixed Platforms = Release|Mixed Platforms
Release|Windows Phone = Release|Windows Phone
Release|x86 = Release|x86
Release|Xbox 360 = Release|Xbox 360
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{5AA9C39E-DB55-4AD9-92EB-E8951D5AD680}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5AA9C39E-DB55-4AD9-92EB-E8951D5AD680}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5AA9C39E-DB55-4AD9-92EB-E8951D5AD680}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{5AA9C39E-DB55-4AD9-92EB-E8951D5AD680}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{5AA9C39E-DB55-4AD9-92EB-E8951D5AD680}.Debug|x86.ActiveCfg = Debug|Any CPU
{5AA9C39E-DB55-4AD9-92EB-E8951D5AD680}.Debug|Xbox 360.ActiveCfg = Debug|Any CPU
{5AA9C39E-DB55-4AD9-92EB-E8951D5AD680}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5AA9C39E-DB55-4AD9-92EB-E8951D5AD680}.Release|Any CPU.Build.0 = Release|Any CPU
{5AA9C39E-DB55-4AD9-92EB-E8951D5AD680}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{5AA9C39E-DB55-4AD9-92EB-E8951D5AD680}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{5AA9C39E-DB55-4AD9-92EB-E8951D5AD680}.Release|x86.ActiveCfg = Release|Any CPU
{5AA9C39E-DB55-4AD9-92EB-E8951D5AD680}.Release|Xbox 360.ActiveCfg = Release|Any CPU
{D59B29AC-1105-410D-A88D-61E9C98B0C4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D59B29AC-1105-410D-A88D-61E9C98B0C4B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D59B29AC-1105-410D-A88D-61E9C98B0C4B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{D59B29AC-1105-410D-A88D-61E9C98B0C4B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{D59B29AC-1105-410D-A88D-61E9C98B0C4B}.Debug|x86.ActiveCfg = Debug|Any CPU
{D59B29AC-1105-410D-A88D-61E9C98B0C4B}.Debug|Xbox 360.ActiveCfg = Debug|Any CPU
{D59B29AC-1105-410D-A88D-61E9C98B0C4B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D59B29AC-1105-410D-A88D-61E9C98B0C4B}.Release|Any CPU.Build.0 = Release|Any CPU
{D59B29AC-1105-410D-A88D-61E9C98B0C4B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{D59B29AC-1105-410D-A88D-61E9C98B0C4B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{D59B29AC-1105-410D-A88D-61E9C98B0C4B}.Release|x86.ActiveCfg = Release|Any CPU
{D59B29AC-1105-410D-A88D-61E9C98B0C4B}.Release|Xbox 360.ActiveCfg = Release|Any CPU
{F72C1068-E6F3-4A6C-A404-F88626B43B7C}.Debug|Any CPU.ActiveCfg = Debug|x86
{F72C1068-E6F3-4A6C-A404-F88626B43B7C}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{F72C1068-E6F3-4A6C-A404-F88626B43B7C}.Debug|Mixed Platforms.Build.0 = Debug|x86
{F72C1068-E6F3-4A6C-A404-F88626B43B7C}.Debug|x86.ActiveCfg = Debug|x86
{F72C1068-E6F3-4A6C-A404-F88626B43B7C}.Debug|x86.Build.0 = Debug|x86
{F72C1068-E6F3-4A6C-A404-F88626B43B7C}.Debug|Xbox 360.ActiveCfg = Debug|x86
{F72C1068-E6F3-4A6C-A404-F88626B43B7C}.Release|Any CPU.ActiveCfg = Release|x86
{F72C1068-E6F3-4A6C-A404-F88626B43B7C}.Release|Mixed Platforms.ActiveCfg = Release|x86
{F72C1068-E6F3-4A6C-A404-F88626B43B7C}.Release|Mixed Platforms.Build.0 = Release|x86
{F72C1068-E6F3-4A6C-A404-F88626B43B7C}.Release|x86.ActiveCfg = Release|x86
{F72C1068-E6F3-4A6C-A404-F88626B43B7C}.Release|x86.Build.0 = Release|x86
{F72C1068-E6F3-4A6C-A404-F88626B43B7C}.Release|Xbox 360.ActiveCfg = Release|x86
{1D3618DE-F050-4350-826E-5E84BC62DEE3}.Debug|Any CPU.ActiveCfg = Debug|Xbox 360
{1D3618DE-F050-4350-826E-5E84BC62DEE3}.Debug|Mixed Platforms.ActiveCfg = Debug|Xbox 360
{1D3618DE-F050-4350-826E-5E84BC62DEE3}.Debug|Mixed Platforms.Build.0 = Debug|Xbox 360
{1D3618DE-F050-4350-826E-5E84BC62DEE3}.Debug|x86.ActiveCfg = Debug|Xbox 360
{1D3618DE-F050-4350-826E-5E84BC62DEE3}.Debug|Xbox 360.ActiveCfg = Debug|Xbox 360
{1D3618DE-F050-4350-826E-5E84BC62DEE3}.Debug|Xbox 360.Build.0 = Debug|Xbox 360
{1D3618DE-F050-4350-826E-5E84BC62DEE3}.Release|Any CPU.ActiveCfg = Release|Xbox 360
{1D3618DE-F050-4350-826E-5E84BC62DEE3}.Release|Mixed Platforms.ActiveCfg = Release|Xbox 360
{1D3618DE-F050-4350-826E-5E84BC62DEE3}.Release|Mixed Platforms.Build.0 = Release|Xbox 360
{1D3618DE-F050-4350-826E-5E84BC62DEE3}.Release|x86.ActiveCfg = Release|Xbox 360
{1D3618DE-F050-4350-826E-5E84BC62DEE3}.Release|Xbox 360.ActiveCfg = Release|Xbox 360
{1D3618DE-F050-4350-826E-5E84BC62DEE3}.Release|Xbox 360.Build.0 = Release|Xbox 360
{BFE4FBB9-2855-4A2B-9067-A82419579A7D}.Debug|Any CPU.ActiveCfg = Debug|x86
{BFE4FBB9-2855-4A2B-9067-A82419579A7D}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{BFE4FBB9-2855-4A2B-9067-A82419579A7D}.Debug|x86.ActiveCfg = Debug|x86
{BFE4FBB9-2855-4A2B-9067-A82419579A7D}.Debug|Xbox 360.ActiveCfg = Debug|x86
{BFE4FBB9-2855-4A2B-9067-A82419579A7D}.Release|Any CPU.ActiveCfg = Release|x86
{BFE4FBB9-2855-4A2B-9067-A82419579A7D}.Release|Mixed Platforms.ActiveCfg = Release|x86
{BFE4FBB9-2855-4A2B-9067-A82419579A7D}.Release|x86.ActiveCfg = Release|x86
{BFE4FBB9-2855-4A2B-9067-A82419579A7D}.Release|Xbox 360.ActiveCfg = Release|x86
{DAB11A70-D08B-4A96-8A54-E81B1DE39681}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DAB11A70-D08B-4A96-8A54-E81B1DE39681}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DAB11A70-D08B-4A96-8A54-E81B1DE39681}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{DAB11A70-D08B-4A96-8A54-E81B1DE39681}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{DAB11A70-D08B-4A96-8A54-E81B1DE39681}.Debug|x86.ActiveCfg = Debug|Any CPU
{DAB11A70-D08B-4A96-8A54-E81B1DE39681}.Debug|Xbox 360.ActiveCfg = Debug|Any CPU
{DAB11A70-D08B-4A96-8A54-E81B1DE39681}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DAB11A70-D08B-4A96-8A54-E81B1DE39681}.Release|Any CPU.Build.0 = Release|Any CPU
{DAB11A70-D08B-4A96-8A54-E81B1DE39681}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{DAB11A70-D08B-4A96-8A54-E81B1DE39681}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{DAB11A70-D08B-4A96-8A54-E81B1DE39681}.Release|x86.ActiveCfg = Release|Any CPU
{DAB11A70-D08B-4A96-8A54-E81B1DE39681}.Release|Xbox 360.ActiveCfg = Release|Any CPU
{D47A24A9-1590-4E8A-A406-BC66D5891BFA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D47A24A9-1590-4E8A-A406-BC66D5891BFA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D47A24A9-1590-4E8A-A406-BC66D5891BFA}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{D47A24A9-1590-4E8A-A406-BC66D5891BFA}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{D47A24A9-1590-4E8A-A406-BC66D5891BFA}.Debug|x86.ActiveCfg = Debug|Any CPU
{D47A24A9-1590-4E8A-A406-BC66D5891BFA}.Debug|Xbox 360.ActiveCfg = Debug|Any CPU
{D47A24A9-1590-4E8A-A406-BC66D5891BFA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D47A24A9-1590-4E8A-A406-BC66D5891BFA}.Release|Any CPU.Build.0 = Release|Any CPU
{D47A24A9-1590-4E8A-A406-BC66D5891BFA}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{D47A24A9-1590-4E8A-A406-BC66D5891BFA}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{D47A24A9-1590-4E8A-A406-BC66D5891BFA}.Release|x86.ActiveCfg = Release|Any CPU
{D47A24A9-1590-4E8A-A406-BC66D5891BFA}.Release|Xbox 360.ActiveCfg = Release|Any CPU
{E246958B-EAD8-48E9-844B-54718C952869}.Debug|Any CPU.ActiveCfg = Debug|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Debug|Mixed Platforms.Build.0 = Debug|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Debug|x86.ActiveCfg = Debug|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Debug|x86.Build.0 = Debug|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Debug|Xbox 360.ActiveCfg = Debug|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Release|Any CPU.ActiveCfg = Release|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Release|Mixed Platforms.ActiveCfg = Release|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Release|Mixed Platforms.Build.0 = Release|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Release|x86.ActiveCfg = Release|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Release|x86.Build.0 = Release|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Release|Xbox 360.ActiveCfg = Release|x86
{A96F5631-40E1-40B0-AEE2-6F2E3368E2AE}.Debug|Any CPU.ActiveCfg = Debug|x86
{A96F5631-40E1-40B0-AEE2-6F2E3368E2AE}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{A96F5631-40E1-40B0-AEE2-6F2E3368E2AE}.Debug|x86.ActiveCfg = Debug|x86
{A96F5631-40E1-40B0-AEE2-6F2E3368E2AE}.Debug|Xbox 360.ActiveCfg = Debug|x86
{A96F5631-40E1-40B0-AEE2-6F2E3368E2AE}.Release|Any CPU.ActiveCfg = Release|x86
{A96F5631-40E1-40B0-AEE2-6F2E3368E2AE}.Release|Mixed Platforms.ActiveCfg = Release|x86
{A96F5631-40E1-40B0-AEE2-6F2E3368E2AE}.Release|x86.ActiveCfg = Release|x86
{A96F5631-40E1-40B0-AEE2-6F2E3368E2AE}.Release|Xbox 360.ActiveCfg = Release|x86
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Debug|Any CPU.ActiveCfg = Debug|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Debug|Mixed Platforms.ActiveCfg = Debug|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Debug|Mixed Platforms.Build.0 = Debug|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Debug|x86.ActiveCfg = Debug|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Debug|Xbox 360.ActiveCfg = Debug|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Debug|Xbox 360.Build.0 = Debug|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Release|Any CPU.ActiveCfg = Release|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Release|Mixed Platforms.ActiveCfg = Release|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Release|Mixed Platforms.Build.0 = Release|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Release|x86.ActiveCfg = Release|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Release|Xbox 360.ActiveCfg = Release|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Release|Xbox 360.Build.0 = Release|Xbox 360
{99CA7796-B72A-4F8C-BCDB-0D688220A331}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{99CA7796-B72A-4F8C-BCDB-0D688220A331}.Debug|Any CPU.Build.0 = Debug|Any CPU
{99CA7796-B72A-4F8C-BCDB-0D688220A331}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{99CA7796-B72A-4F8C-BCDB-0D688220A331}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{99CA7796-B72A-4F8C-BCDB-0D688220A331}.Debug|Windows Phone.ActiveCfg = Debug|Any CPU
{99CA7796-B72A-4F8C-BCDB-0D688220A331}.Debug|x86.ActiveCfg = Debug|Any CPU
{99CA7796-B72A-4F8C-BCDB-0D688220A331}.Debug|Xbox 360.ActiveCfg = Debug|Any CPU
{99CA7796-B72A-4F8C-BCDB-0D688220A331}.Release|Any CPU.ActiveCfg = Release|Any CPU
{99CA7796-B72A-4F8C-BCDB-0D688220A331}.Release|Any CPU.Build.0 = Release|Any CPU
{99CA7796-B72A-4F8C-BCDB-0D688220A331}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{99CA7796-B72A-4F8C-BCDB-0D688220A331}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{99CA7796-B72A-4F8C-BCDB-0D688220A331}.Release|Windows Phone.ActiveCfg = Release|Any CPU
{99CA7796-B72A-4F8C-BCDB-0D688220A331}.Release|x86.ActiveCfg = Release|Any CPU
{99CA7796-B72A-4F8C-BCDB-0D688220A331}.Release|Xbox 360.ActiveCfg = Release|Any CPU
{D4880706-29A6-449C-A2A6-3058C37583DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D4880706-29A6-449C-A2A6-3058C37583DA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D4880706-29A6-449C-A2A6-3058C37583DA}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{D4880706-29A6-449C-A2A6-3058C37583DA}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{D4880706-29A6-449C-A2A6-3058C37583DA}.Debug|Windows Phone.ActiveCfg = Debug|Any CPU
{D4880706-29A6-449C-A2A6-3058C37583DA}.Debug|x86.ActiveCfg = Debug|Any CPU
{D4880706-29A6-449C-A2A6-3058C37583DA}.Debug|Xbox 360.ActiveCfg = Debug|Any CPU
{D4880706-29A6-449C-A2A6-3058C37583DA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D4880706-29A6-449C-A2A6-3058C37583DA}.Release|Any CPU.Build.0 = Release|Any CPU
{D4880706-29A6-449C-A2A6-3058C37583DA}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{D4880706-29A6-449C-A2A6-3058C37583DA}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{D4880706-29A6-449C-A2A6-3058C37583DA}.Release|Windows Phone.ActiveCfg = Release|Any CPU
{D4880706-29A6-449C-A2A6-3058C37583DA}.Release|x86.ActiveCfg = Release|Any CPU
{D4880706-29A6-449C-A2A6-3058C37583DA}.Release|Xbox 360.ActiveCfg = Release|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Debug|Windows Phone.ActiveCfg = Debug|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Debug|x86.ActiveCfg = Debug|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Debug|Xbox 360.ActiveCfg = Debug|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Release|Any CPU.Build.0 = Release|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Release|Windows Phone.ActiveCfg = Release|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Release|x86.ActiveCfg = Release|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Release|Xbox 360.ActiveCfg = Release|Any CPU
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Debug|Any CPU.ActiveCfg = Debug|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Debug|Mixed Platforms.Build.0 = Debug|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Debug|Windows Phone.ActiveCfg = Debug|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Debug|x86.ActiveCfg = Debug|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Debug|x86.Build.0 = Debug|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Debug|Xbox 360.ActiveCfg = Debug|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Release|Any CPU.ActiveCfg = Release|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Release|Mixed Platforms.ActiveCfg = Release|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Release|Mixed Platforms.Build.0 = Release|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Release|Windows Phone.ActiveCfg = Release|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Release|x86.ActiveCfg = Release|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Release|x86.Build.0 = Release|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Release|Xbox 360.ActiveCfg = Release|x86
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Debug|Any CPU.ActiveCfg = Debug|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Debug|Mixed Platforms.ActiveCfg = Debug|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Debug|Mixed Platforms.Build.0 = Debug|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Debug|Windows Phone.ActiveCfg = Debug|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Debug|Windows Phone.Build.0 = Debug|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Debug|x86.ActiveCfg = Debug|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Debug|Xbox 360.ActiveCfg = Debug|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Release|Any CPU.ActiveCfg = Release|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Release|Mixed Platforms.ActiveCfg = Release|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Release|Mixed Platforms.Build.0 = Release|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Release|Windows Phone.ActiveCfg = Release|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Release|Windows Phone.Build.0 = Release|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Release|x86.ActiveCfg = Release|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Release|Xbox 360.ActiveCfg = Release|Windows Phone
{222412EE-A626-493F-AE72-344657A6840D}.Debug|Any CPU.ActiveCfg = Debug|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Debug|Mixed Platforms.ActiveCfg = Debug|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Debug|Mixed Platforms.Build.0 = Debug|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Debug|Windows Phone.ActiveCfg = Debug|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Debug|x86.ActiveCfg = Debug|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Debug|Xbox 360.ActiveCfg = Debug|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Debug|Xbox 360.Build.0 = Debug|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Release|Any CPU.ActiveCfg = Release|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Release|Mixed Platforms.ActiveCfg = Release|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Release|Mixed Platforms.Build.0 = Release|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Release|Windows Phone.ActiveCfg = Release|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Release|x86.ActiveCfg = Release|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Release|Xbox 360.ActiveCfg = Release|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Release|Xbox 360.Build.0 = Release|Xbox 360
{F8DB6D3A-807D-4E2D-92D5-469273E088DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F8DB6D3A-807D-4E2D-92D5-469273E088DA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F8DB6D3A-807D-4E2D-92D5-469273E088DA}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{F8DB6D3A-807D-4E2D-92D5-469273E088DA}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{F8DB6D3A-807D-4E2D-92D5-469273E088DA}.Debug|Windows Phone.ActiveCfg = Debug|Any CPU
{F8DB6D3A-807D-4E2D-92D5-469273E088DA}.Debug|x86.ActiveCfg = Debug|Any CPU
{F8DB6D3A-807D-4E2D-92D5-469273E088DA}.Debug|Xbox 360.ActiveCfg = Debug|Any CPU
{F8DB6D3A-807D-4E2D-92D5-469273E088DA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F8DB6D3A-807D-4E2D-92D5-469273E088DA}.Release|Any CPU.Build.0 = Release|Any CPU
{F8DB6D3A-807D-4E2D-92D5-469273E088DA}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{F8DB6D3A-807D-4E2D-92D5-469273E088DA}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{F8DB6D3A-807D-4E2D-92D5-469273E088DA}.Release|Windows Phone.ActiveCfg = Release|Any CPU
{F8DB6D3A-807D-4E2D-92D5-469273E088DA}.Release|x86.ActiveCfg = Release|Any CPU
{F8DB6D3A-807D-4E2D-92D5-469273E088DA}.Release|Xbox 360.ActiveCfg = Release|Any CPU
{9F1025D2-E23B-4CDC-AC63-150941013963}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9F1025D2-E23B-4CDC-AC63-150941013963}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9F1025D2-E23B-4CDC-AC63-150941013963}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{9F1025D2-E23B-4CDC-AC63-150941013963}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{9F1025D2-E23B-4CDC-AC63-150941013963}.Debug|Windows Phone.ActiveCfg = Debug|Any CPU
{9F1025D2-E23B-4CDC-AC63-150941013963}.Debug|x86.ActiveCfg = Debug|Any CPU
{9F1025D2-E23B-4CDC-AC63-150941013963}.Debug|Xbox 360.ActiveCfg = Debug|Any CPU
{9F1025D2-E23B-4CDC-AC63-150941013963}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9F1025D2-E23B-4CDC-AC63-150941013963}.Release|Any CPU.Build.0 = Release|Any CPU
{9F1025D2-E23B-4CDC-AC63-150941013963}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{9F1025D2-E23B-4CDC-AC63-150941013963}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{9F1025D2-E23B-4CDC-AC63-150941013963}.Release|Windows Phone.ActiveCfg = Release|Any CPU
{9F1025D2-E23B-4CDC-AC63-150941013963}.Release|x86.ActiveCfg = Release|Any CPU
{9F1025D2-E23B-4CDC-AC63-150941013963}.Release|Xbox 360.ActiveCfg = Release|Any CPU
{C152D47E-BBC1-4C35-8646-465180720A72}.Debug|Any CPU.ActiveCfg = Debug|x86
{C152D47E-BBC1-4C35-8646-465180720A72}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{C152D47E-BBC1-4C35-8646-465180720A72}.Debug|Mixed Platforms.Build.0 = Debug|x86
{C152D47E-BBC1-4C35-8646-465180720A72}.Debug|Windows Phone.ActiveCfg = Debug|x86
{C152D47E-BBC1-4C35-8646-465180720A72}.Debug|x86.ActiveCfg = Debug|x86
{C152D47E-BBC1-4C35-8646-465180720A72}.Debug|x86.Build.0 = Debug|x86
{C152D47E-BBC1-4C35-8646-465180720A72}.Debug|Xbox 360.ActiveCfg = Debug|x86
{C152D47E-BBC1-4C35-8646-465180720A72}.Release|Any CPU.ActiveCfg = Release|x86
{C152D47E-BBC1-4C35-8646-465180720A72}.Release|Mixed Platforms.ActiveCfg = Release|x86
{C152D47E-BBC1-4C35-8646-465180720A72}.Release|Mixed Platforms.Build.0 = Release|x86
{C152D47E-BBC1-4C35-8646-465180720A72}.Release|Windows Phone.ActiveCfg = Release|x86
{C152D47E-BBC1-4C35-8646-465180720A72}.Release|x86.ActiveCfg = Release|x86
{C152D47E-BBC1-4C35-8646-465180720A72}.Release|x86.Build.0 = Release|x86
{C152D47E-BBC1-4C35-8646-465180720A72}.Release|Xbox 360.ActiveCfg = Release|x86
{3D0AE444-357F-4986-859F-602CC9BB4EF6}.Debug|Any CPU.ActiveCfg = Debug|x86
{3D0AE444-357F-4986-859F-602CC9BB4EF6}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{3D0AE444-357F-4986-859F-602CC9BB4EF6}.Debug|Mixed Platforms.Build.0 = Debug|x86
{3D0AE444-357F-4986-859F-602CC9BB4EF6}.Debug|Windows Phone.ActiveCfg = Debug|x86
{3D0AE444-357F-4986-859F-602CC9BB4EF6}.Debug|x86.ActiveCfg = Debug|x86
{3D0AE444-357F-4986-859F-602CC9BB4EF6}.Debug|x86.Build.0 = Debug|x86
{3D0AE444-357F-4986-859F-602CC9BB4EF6}.Debug|Xbox 360.ActiveCfg = Debug|x86
{3D0AE444-357F-4986-859F-602CC9BB4EF6}.Release|Any CPU.ActiveCfg = Release|x86
{3D0AE444-357F-4986-859F-602CC9BB4EF6}.Release|Mixed Platforms.ActiveCfg = Release|x86
{3D0AE444-357F-4986-859F-602CC9BB4EF6}.Release|Mixed Platforms.Build.0 = Release|x86
{3D0AE444-357F-4986-859F-602CC9BB4EF6}.Release|Windows Phone.ActiveCfg = Release|x86
{3D0AE444-357F-4986-859F-602CC9BB4EF6}.Release|x86.ActiveCfg = Release|x86
{3D0AE444-357F-4986-859F-602CC9BB4EF6}.Release|x86.Build.0 = Release|x86
{3D0AE444-357F-4986-859F-602CC9BB4EF6}.Release|Xbox 360.ActiveCfg = Release|x86
{C138ADC9-8F2B-414A-930D-12B489A96BBB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C138ADC9-8F2B-414A-930D-12B489A96BBB}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{C138ADC9-8F2B-414A-930D-12B489A96BBB}.Debug|Windows Phone.ActiveCfg = Debug|Any CPU
{C138ADC9-8F2B-414A-930D-12B489A96BBB}.Debug|x86.ActiveCfg = Debug|Any CPU
{C138ADC9-8F2B-414A-930D-12B489A96BBB}.Debug|Xbox 360.ActiveCfg = Debug|Any CPU
{C138ADC9-8F2B-414A-930D-12B489A96BBB}.Release|Any CPU.ActiveCfg = Debug|Any CPU
{C138ADC9-8F2B-414A-930D-12B489A96BBB}.Release|Mixed Platforms.ActiveCfg = Debug|Any CPU
{C138ADC9-8F2B-414A-930D-12B489A96BBB}.Release|Windows Phone.ActiveCfg = Debug|Any CPU
{C138ADC9-8F2B-414A-930D-12B489A96BBB}.Release|x86.ActiveCfg = Debug|Any CPU
{C138ADC9-8F2B-414A-930D-12B489A96BBB}.Release|Xbox 360.ActiveCfg = Debug|Any CPU
{AE4C0489-3A21-4264-BE20-EA6C72B24B2C}.Debug|Any CPU.ActiveCfg = Debug|Windows Phone
{AE4C0489-3A21-4264-BE20-EA6C72B24B2C}.Debug|Mixed Platforms.ActiveCfg = Debug|Windows Phone
{AE4C0489-3A21-4264-BE20-EA6C72B24B2C}.Debug|Mixed Platforms.Build.0 = Debug|Windows Phone
{AE4C0489-3A21-4264-BE20-EA6C72B24B2C}.Debug|Windows Phone.ActiveCfg = Debug|Windows Phone
{AE4C0489-3A21-4264-BE20-EA6C72B24B2C}.Debug|Windows Phone.Build.0 = Debug|Windows Phone
{AE4C0489-3A21-4264-BE20-EA6C72B24B2C}.Debug|Windows Phone.Deploy.0 = Debug|Windows Phone
{AE4C0489-3A21-4264-BE20-EA6C72B24B2C}.Debug|x86.ActiveCfg = Debug|Windows Phone
{AE4C0489-3A21-4264-BE20-EA6C72B24B2C}.Debug|Xbox 360.ActiveCfg = Debug|Windows Phone
{AE4C0489-3A21-4264-BE20-EA6C72B24B2C}.Release|Any CPU.ActiveCfg = Release|Windows Phone
{AE4C0489-3A21-4264-BE20-EA6C72B24B2C}.Release|Mixed Platforms.ActiveCfg = Release|Windows Phone
{AE4C0489-3A21-4264-BE20-EA6C72B24B2C}.Release|Mixed Platforms.Build.0 = Release|Windows Phone
{AE4C0489-3A21-4264-BE20-EA6C72B24B2C}.Release|Windows Phone.ActiveCfg = Release|Windows Phone
{AE4C0489-3A21-4264-BE20-EA6C72B24B2C}.Release|Windows Phone.Build.0 = Release|Windows Phone
{AE4C0489-3A21-4264-BE20-EA6C72B24B2C}.Release|Windows Phone.Deploy.0 = Release|Windows Phone
{AE4C0489-3A21-4264-BE20-EA6C72B24B2C}.Release|x86.ActiveCfg = Release|Windows Phone
{AE4C0489-3A21-4264-BE20-EA6C72B24B2C}.Release|Xbox 360.ActiveCfg = Release|Windows Phone
{1400371E-AC2E-4BC5-8A52-077616F716C4}.Debug|Any CPU.ActiveCfg = Debug|Xbox 360
{1400371E-AC2E-4BC5-8A52-077616F716C4}.Debug|Mixed Platforms.ActiveCfg = Debug|Xbox 360
{1400371E-AC2E-4BC5-8A52-077616F716C4}.Debug|Mixed Platforms.Build.0 = Debug|Xbox 360
{1400371E-AC2E-4BC5-8A52-077616F716C4}.Debug|Windows Phone.ActiveCfg = Debug|Xbox 360
{1400371E-AC2E-4BC5-8A52-077616F716C4}.Debug|x86.ActiveCfg = Debug|Xbox 360
{1400371E-AC2E-4BC5-8A52-077616F716C4}.Debug|Xbox 360.ActiveCfg = Debug|Xbox 360
{1400371E-AC2E-4BC5-8A52-077616F716C4}.Debug|Xbox 360.Build.0 = Debug|Xbox 360
{1400371E-AC2E-4BC5-8A52-077616F716C4}.Debug|Xbox 360.Deploy.0 = Debug|Xbox 360
{1400371E-AC2E-4BC5-8A52-077616F716C4}.Release|Any CPU.ActiveCfg = Release|Xbox 360
{1400371E-AC2E-4BC5-8A52-077616F716C4}.Release|Mixed Platforms.ActiveCfg = Release|Xbox 360
{1400371E-AC2E-4BC5-8A52-077616F716C4}.Release|Mixed Platforms.Build.0 = Release|Xbox 360
{1400371E-AC2E-4BC5-8A52-077616F716C4}.Release|Windows Phone.ActiveCfg = Release|Xbox 360
{1400371E-AC2E-4BC5-8A52-077616F716C4}.Release|x86.ActiveCfg = Release|Xbox 360
{1400371E-AC2E-4BC5-8A52-077616F716C4}.Release|Xbox 360.ActiveCfg = Release|Xbox 360
{1400371E-AC2E-4BC5-8A52-077616F716C4}.Release|Xbox 360.Build.0 = Release|Xbox 360
{1400371E-AC2E-4BC5-8A52-077616F716C4}.Release|Xbox 360.Deploy.0 = Release|Xbox 360
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -25,7 +25,7 @@ namespace Jellyfish.Virtu
{
public void AddEvent(int delta, Action action)
{
LinkedListNode<MachineEvent> node = _used.First;
var node = _used.First;
for (; node != null; node = node.Next)
{
if (delta < node.Value.Delta)
@ -39,7 +39,7 @@ namespace Jellyfish.Virtu
}
}
LinkedListNode<MachineEvent> newNode = _free.First;
var newNode = _free.First;
if (newNode != null)
{
_free.RemoveFirst();
@ -65,7 +65,7 @@ namespace Jellyfish.Virtu
{
int delta = 0;
for (LinkedListNode<MachineEvent> node = _used.First; node != null; node = node.Next)
for (var node = _used.First; node != null; node = node.Next)
{
delta += node.Value.Delta;
if (object.ReferenceEquals(node.Value.Action, action)) // assumes delegate cached
@ -79,7 +79,7 @@ namespace Jellyfish.Virtu
public void HandleEvents(int delta)
{
LinkedListNode<MachineEvent> node = _used.First;
var node = _used.First;
node.Value.Delta -= delta;
while (node.Value.Delta <= 0)

View File

@ -88,13 +88,13 @@ namespace Jellyfish.Virtu
_speaker = Machine.Speaker;
_video = Machine.Video;
var romStream = StorageService.GetResourceStream("AppleIIe.rom", 0x4000);
var romStream = StorageService.GetResourceStream("Roms/AppleIIe.rom", 0x4000);
romStream.Seek(0x0100, SeekOrigin.Current);
romStream.ReadBlock(_romInternalRegionC1CF, 0x0000, 0x0F00);
romStream.ReadBlock(_romRegionD0DF, 0x0000, 0x1000);
romStream.ReadBlock(_romRegionE0FF, 0x0000, 0x2000);
romStream = StorageService.GetResourceStream("DiskII.rom", 0x0100);
romStream = StorageService.GetResourceStream("Roms/DiskII.rom", 0x0100);
romStream.ReadBlock(_romExternalRegionC1CF, 0x0500, 0x0100);
if ((ReadRomRegionE0FF(0xFBB3) == 0x06) && (ReadRomRegionE0FF(0xFBBF) == 0xC1))

99
Virtu/Properties/Strings.Designer.cs generated Normal file
View File

@ -0,0 +1,99 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.1
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Jellyfish.Virtu.Properties {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Strings {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Strings() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Jellyfish.Virtu.Properties.Strings", typeof(Strings).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
/// <summary>
/// Looks up a localized string similar to Resource &apos;{0}&apos; invalid..
/// </summary>
internal static string ResourceInvalid {
get {
return ResourceManager.GetString("ResourceInvalid", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Resource &apos;{0}&apos; not found..
/// </summary>
internal static string ResourceNotFound {
get {
return ResourceManager.GetString("ResourceNotFound", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Service type &apos;{0}&apos; already present..
/// </summary>
internal static string ServiceAlreadyPresent {
get {
return ResourceManager.GetString("ServiceAlreadyPresent", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Service type &apos;{0}&apos; must be assignable from service provider &apos;{1}&apos;..
/// </summary>
internal static string ServiceMustBeAssignable {
get {
return ResourceManager.GetString("ServiceMustBeAssignable", resourceCulture);
}
}
}
}

View File

@ -19,7 +19,9 @@ namespace Jellyfish.Virtu.Services
_readEvent.Set();
if (Machine.Settings.Cpu.IsThrottled)
{
#if !WINDOWS_PHONE // TODO remove; implement phone audio
_writeEvent.WaitOne();
#endif
}
}
}

View File

@ -0,0 +1,68 @@
using System;
using System.Diagnostics.CodeAnalysis;
using System.IO;
using System.IO.IsolatedStorage;
namespace Jellyfish.Virtu.Services
{
public class IsolatedStorageService : StorageService
{
public IsolatedStorageService(Machine machine) :
base(machine)
{
}
public override void Load(string path, Action<Stream> reader)
{
if (reader == null)
{
throw new ArgumentNullException("reader");
}
try
{
using (var store = GetStore())
{
using (var stream = new IsolatedStorageFileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read, store))
{
reader(stream);
}
}
}
catch (FileNotFoundException)
{
}
catch (IsolatedStorageException)
{
}
}
public override void Save(string path, Action<Stream> writer)
{
if (writer == null)
{
throw new ArgumentNullException("writer");
}
try
{
using (var store = GetStore())
{
using (var stream = new IsolatedStorageFileStream(path, FileMode.Create, FileAccess.Write, FileShare.None, store))
{
writer(stream);
}
}
}
catch (IsolatedStorageException)
{
}
}
[SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate")]
protected virtual IsolatedStorageFile GetStore()
{
return IsolatedStorageFile.GetUserStoreForApplication();
}
}
}

View File

@ -50,7 +50,7 @@ namespace Jellyfish.Virtu.Services
protected void OnAsciiKeyDown(int asciiKey)
{
EventHandler<AsciiKeyEventArgs> handler = AsciiKeyDown;
var handler = AsciiKeyDown;
if (handler != null)
{
handler(this, AsciiKeyEventArgs.Create(asciiKey));

View File

@ -7,11 +7,6 @@ namespace Jellyfish.Virtu.Services
{
protected MachineService(Machine machine)
{
if (machine == null)
{
throw new ArgumentNullException("machine");
}
Machine = machine;
}

View File

@ -17,7 +17,7 @@ namespace Jellyfish.Virtu.Services
}
if (_serviceProviders.ContainsKey(serviceType))
{
throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, SR.ServiceAlreadyPresent, serviceType.FullName), "serviceType");
throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, Strings.ServiceAlreadyPresent, serviceType.FullName), "serviceType");
}
if (serviceProvider == null)
{
@ -25,7 +25,7 @@ namespace Jellyfish.Virtu.Services
}
if (!serviceType.IsAssignableFrom(serviceProvider.GetType()))
{
throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, SR.ServiceMustBeAssignable, serviceType.FullName, serviceProvider.GetType().FullName));
throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, Strings.ServiceMustBeAssignable, serviceType.FullName, serviceProvider.GetType().FullName));
}
_serviceProviders.Add(serviceType, serviceProvider);

View File

@ -25,11 +25,11 @@ namespace Jellyfish.Virtu.Services
var resourceStream = (Stream)resourceManager.GetObject(resourceName);
if (resourceStream == null)
{
throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, SR.ResourceNotFound, resourceName));
throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, Strings.ResourceNotFound, resourceName));
}
if ((resourceSize > 0) && (resourceStream.Length != resourceSize))
{
throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, SR.ResourceInvalid, resourceName));
throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, Strings.ResourceInvalid, resourceName));
}
return resourceStream;

View File

@ -1,16 +1,19 @@
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.30729</ProductVersion>
<ProductVersion>8.0.50727</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{5AA9C39E-DB55-4AD9-92EB-E8951D5AD680}</ProjectGuid>
<ProjectGuid>{F8DB6D3A-807D-4E2D-92D5-469273E088DA}</ProjectGuid>
<ProjectTypeGuids>{A1591282-1198-4647-A2B1-27E5FF5F6F3B};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Jellyfish.Virtu</RootNamespace>
<AssemblyName>Jellyfish.Virtu</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<TargetFrameworkIdentifier>Silverlight</TargetFrameworkIdentifier>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<SilverlightVersion>$(TargetFrameworkVersion)</SilverlightVersion>
<SilverlightApplication>true</SilverlightApplication>
<SupportedCultures>
</SupportedCultures>
@ -19,29 +22,35 @@
<XapFilename>Jellyfish.Virtu.xap</XapFilename>
<SilverlightManifestTemplate>Properties\AppManifest.xml</SilverlightManifestTemplate>
<SilverlightAppEntry>Jellyfish.Virtu.MainApp</SilverlightAppEntry>
<TestPageFileName>TestPage.html</TestPageFileName>
<TestPageFileName>Jellyfish.Virtu.html</TestPageFileName>
<CreateTestPage>true</CreateTestPage>
<ValidateXaml>true</ValidateXaml>
<ThrowErrorsInValidation>false</ThrowErrorsInValidation>
<SignAssembly>false</SignAssembly>
<AssemblyOriginatorKeyFile>..\..\Jellyfish.snk</AssemblyOriginatorKeyFile>
<UsePlatformExtensions>false</UsePlatformExtensions>
<EnableOutOfBrowser>true</EnableOutOfBrowser>
<OutOfBrowserSettingsFile>Properties\OutOfBrowserSettings.xml</OutOfBrowserSettingsFile>
<UsePlatformExtensions>false</UsePlatformExtensions>
<ThrowErrorsInValidation>true</ThrowErrorsInValidation>
<LinkedServerProject>
</LinkedServerProject>
</PropertyGroup>
<!-- This property group is only here to support building this project using the
MSBuild 3.5 toolset. In order to work correctly with this older toolset, it needs
to set the TargetFrameworkVersion to v3.5 -->
<PropertyGroup Condition="'$(MSBuildToolsVersion)' == '3.5'">
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\</OutputPath>
<DefineConstants>TRACE;DEBUG;SILVERLIGHT;CODE_ANALYSIS</DefineConstants>
<DefineConstants>DEBUG;TRACE;SILVERLIGHT;CODE_ANALYSIS</DefineConstants>
<NoStdLib>true</NoStdLib>
<NoConfig>true</NoConfig>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<NoWarn>
</NoWarn>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<RunCodeAnalysis>false</RunCodeAnalysis>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@ -53,19 +62,37 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<NoWarn>
</NoWarn>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<RunCodeAnalysis>false</RunCodeAnalysis>
</PropertyGroup>
<ItemGroup>
<Reference Include="System.Windows" />
<Reference Include="mscorlib" />
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Net" />
<Reference Include="System.Windows.Controls.Toolkit, Version=2.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
<Reference Include="System.Xml" />
<Reference Include="System.Windows" />
<Reference Include="System.Windows.Browser" />
<Reference Include="System.Xml.Linq, Version=2.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
<Reference Include="System.Windows.Controls.Toolkit, Version=4.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq">
<Private>True</Private>
</Reference>
</ItemGroup>
<ItemGroup>
<ApplicationDefinition Include="MainApp.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</ApplicationDefinition>
<Page Include="MainPage.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Compile Include="MainApp.xaml.cs">
<DependentUpon>MainApp.xaml</DependentUpon>
</Compile>
<Compile Include="MainPage.xaml.cs">
<DependentUpon>MainPage.xaml</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<Compile Include="..\Cassette.cs">
@ -119,11 +146,11 @@
<Compile Include="..\MemoryData.cs">
<Link>Core\MemoryData.cs</Link>
</Compile>
<Compile Include="..\Properties\SR.Designer.cs">
<Link>Properties\SR.Designer.cs</Link>
<Compile Include="..\Properties\Strings.Designer.cs">
<Link>Properties\Strings.Designer.cs</Link>
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>SR.resx</DependentUpon>
<DependentUpon>Strings.resx</DependentUpon>
</Compile>
<Compile Include="..\Services\AudioService.cs">
<Link>Services\AudioService.cs</Link>
@ -131,6 +158,9 @@
<Compile Include="..\Services\GamePortService.cs">
<Link>Services\GamePortService.cs</Link>
</Compile>
<Compile Include="..\Services\IsolatedStorageService.cs">
<Link>Services\IsolatedStorageService.cs</Link>
</Compile>
<Compile Include="..\Services\KeyboardService.cs">
<Link>Services\KeyboardService.cs</Link>
</Compile>
@ -155,49 +185,32 @@
<Compile Include="..\VideoData.cs">
<Link>Core\VideoData.cs</Link>
</Compile>
<Compile Include="MainApp.xaml.cs">
<DependentUpon>MainApp.xaml</DependentUpon>
</Compile>
<Compile Include="MainPage.xaml.cs">
<DependentUpon>MainPage.xaml</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Services\SilverlightAudioService.cs" />
<Compile Include="Services\SilverlightKeyboardService.cs" />
<Compile Include="Services\SilverlightStorageService.cs" />
<Compile Include="Services\SilverlightVideoService.cs" />
</ItemGroup>
<ItemGroup>
<ApplicationDefinition Include="MainApp.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</ApplicationDefinition>
<Page Include="MainPage.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<None Include="Properties\AppManifest.xml" />
<None Include="Properties\OutOfBrowserSettings.xml" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="..\Properties\Strings.resx">
<Link>Properties\Strings.resx</Link>
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Strings.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<Resource Include="..\Disks\Default.dsk">
<Link>Disks\Default.dsk</Link>
</Resource>
<Resource Include="..\Roms\AppleIIe.rom">
<Link>Roms\AppleIIe.rom</Link>
</Resource>
<Resource Include="..\Roms\DiskII.rom">
<Link>Roms\DiskII.rom</Link>
</Resource>
<None Include="Properties\AppManifest.xml" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="..\Properties\SR.resx">
<Link>Properties\SR.resx</Link>
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>SR.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Library\Silverlight\Jellyfish.Library.Silverlight.csproj">
<Project>{DAB11A70-D08B-4A96-8A54-E81B1DE39681}</Project>
<Name>Jellyfish.Library.Silverlight</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<CodeAnalysisDictionary Include="..\CustomDictionary.xml">
@ -205,12 +218,12 @@
</CodeAnalysisDictionary>
</ItemGroup>
<ItemGroup>
<Resource Include="..\Disks\Default.dsk">
<Link>Disks\Default.dsk</Link>
</Resource>
<None Include="Properties\OutOfBrowserSettings.xml" />
<ProjectReference Include="..\..\Library\Silverlight\Jellyfish.Library.Silverlight.csproj">
<Project>{99CA7796-B72A-4F8C-BCDB-0D688220A331}</Project>
<Name>Jellyfish.Library.Silverlight</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Microsoft\Silverlight\v3.0\Microsoft.Silverlight.CSharp.targets" Condition="" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Silverlight\$(SilverlightVersion)\Microsoft.Silverlight.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">

View File

@ -1,9 +1,13 @@

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Virtu.Silverlight", "Jellyfish.Virtu.Silverlight.csproj", "{5AA9C39E-DB55-4AD9-92EB-E8951D5AD680}"
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Silverlight", "..\..\Library\Silverlight\Jellyfish.Library.Silverlight.csproj", "{99CA7796-B72A-4F8C-BCDB-0D688220A331}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Silverlight", "..\..\Library\Silverlight\Jellyfish.Library.Silverlight.csproj", "{DAB11A70-D08B-4A96-8A54-E81B1DE39681}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Silverlight.Phone", "..\..\Library\Silverlight\Phone\Jellyfish.Library.Silverlight.Phone.csproj", "{D4880706-29A6-449C-A2A6-3058C37583DA}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Virtu.Silverlight", "Jellyfish.Virtu.Silverlight.csproj", "{F8DB6D3A-807D-4E2D-92D5-469273E088DA}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Virtu.Silverlight.Phone", "Phone\Jellyfish.Virtu.Silverlight.Phone.csproj", "{9F1025D2-E23B-4CDC-AC63-150941013963}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@ -11,14 +15,22 @@ Global
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{5AA9C39E-DB55-4AD9-92EB-E8951D5AD680}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5AA9C39E-DB55-4AD9-92EB-E8951D5AD680}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5AA9C39E-DB55-4AD9-92EB-E8951D5AD680}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5AA9C39E-DB55-4AD9-92EB-E8951D5AD680}.Release|Any CPU.Build.0 = Release|Any CPU
{DAB11A70-D08B-4A96-8A54-E81B1DE39681}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DAB11A70-D08B-4A96-8A54-E81B1DE39681}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DAB11A70-D08B-4A96-8A54-E81B1DE39681}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DAB11A70-D08B-4A96-8A54-E81B1DE39681}.Release|Any CPU.Build.0 = Release|Any CPU
{99CA7796-B72A-4F8C-BCDB-0D688220A331}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{99CA7796-B72A-4F8C-BCDB-0D688220A331}.Debug|Any CPU.Build.0 = Debug|Any CPU
{99CA7796-B72A-4F8C-BCDB-0D688220A331}.Release|Any CPU.ActiveCfg = Release|Any CPU
{99CA7796-B72A-4F8C-BCDB-0D688220A331}.Release|Any CPU.Build.0 = Release|Any CPU
{D4880706-29A6-449C-A2A6-3058C37583DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D4880706-29A6-449C-A2A6-3058C37583DA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D4880706-29A6-449C-A2A6-3058C37583DA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D4880706-29A6-449C-A2A6-3058C37583DA}.Release|Any CPU.Build.0 = Release|Any CPU
{F8DB6D3A-807D-4E2D-92D5-469273E088DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F8DB6D3A-807D-4E2D-92D5-469273E088DA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F8DB6D3A-807D-4E2D-92D5-469273E088DA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F8DB6D3A-807D-4E2D-92D5-469273E088DA}.Release|Any CPU.Build.0 = Release|Any CPU
{9F1025D2-E23B-4CDC-AC63-150941013963}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9F1025D2-E23B-4CDC-AC63-150941013963}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9F1025D2-E23B-4CDC-AC63-150941013963}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9F1025D2-E23B-4CDC-AC63-150941013963}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -1,7 +1,7 @@
<UserControl x:Class="Jellyfish.Virtu.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:tk="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Toolkit"
xmlns:tk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit"
xmlns:jl="clr-namespace:Jellyfish.Library;assembly=Jellyfish.Library"
xmlns:jv="clr-namespace:Jellyfish.Virtu;assembly=Jellyfish.Virtu">
<tk:DockPanel Background="Black">
@ -11,7 +11,7 @@
<jl:FrameRateCounter Margin="4 4 0 4" VerticalAlignment="Center"/>
</StackPanel>
<Grid>
<Image x:Name="_image" MinWidth="560" MinHeight="384"/>
<Image x:Name="_image" MinWidth="280" MinHeight="192"/>
<MediaElement x:Name="_media"/>
<!--<ScrollViewer BorderThickness="0" IsTabStop="False" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" VerticalScrollBarVisibility="Auto">
<TextBlock x:Name="_debug" FontFamily="Consolas" FontSize="12" Foreground="White"/>

View File

@ -13,11 +13,11 @@ namespace Jellyfish.Virtu
{
InitializeComponent();
_storageService = new SilverlightStorageService(_machine);
_storageService = new IsolatedStorageService(_machine);
_keyboardService = new SilverlightKeyboardService(_machine, this);
_gamePortService = new GamePortService(_machine); // not connected
_audioService = new SilverlightAudioService(_machine, this, _media);
_videoService = new SilverlightVideoService(_machine, _image);
_videoService = new SilverlightVideoService(_machine, this, _image);
_machine.Services.AddService(typeof(StorageService), _storageService);
_machine.Services.AddService(typeof(KeyboardService), _keyboardService);

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

View File

@ -0,0 +1,236 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>10.0.20506</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{9F1025D2-E23B-4CDC-AC63-150941013963}</ProjectGuid>
<ProjectTypeGuids>{C089C8C0-30E0-4E22-80C0-CE093F111A43};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Jellyfish.Virtu</RootNamespace>
<AssemblyName>Jellyfish.Virtu</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<SilverlightVersion>$(TargetFrameworkVersion)</SilverlightVersion>
<TargetFrameworkProfile>WindowsPhone</TargetFrameworkProfile>
<TargetFrameworkIdentifier>Silverlight</TargetFrameworkIdentifier>
<SilverlightApplication>true</SilverlightApplication>
<SupportedCultures>
</SupportedCultures>
<XapOutputs>true</XapOutputs>
<GenerateSilverlightManifest>true</GenerateSilverlightManifest>
<XapFilename>Jellyfish.Virtu.xap</XapFilename>
<SilverlightManifestTemplate>Properties\AppManifest.xml</SilverlightManifestTemplate>
<SilverlightAppEntry>Jellyfish.Virtu.MainApp</SilverlightAppEntry>
<ValidateXaml>true</ValidateXaml>
<ThrowErrorsInValidation>true</ThrowErrorsInValidation>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\</OutputPath>
<DefineConstants>DEBUG;TRACE;SILVERLIGHT;WINDOWS_PHONE;CODE_ANALYSIS</DefineConstants>
<NoStdLib>true</NoStdLib>
<NoConfig>true</NoConfig>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<RunCodeAnalysis>false</RunCodeAnalysis>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\</OutputPath>
<DefineConstants>TRACE;SILVERLIGHT;WINDOWS_PHONE;CODE_ANALYSIS</DefineConstants>
<NoStdLib>true</NoStdLib>
<NoConfig>true</NoConfig>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<RunCodeAnalysis>false</RunCodeAnalysis>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.Phone.Controls" />
<Reference Include="Microsoft.Phone.Controls.Navigation" />
<Reference Include="mscorlib" />
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Net" />
<Reference Include="System.Windows" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq" />
</ItemGroup>
<ItemGroup>
<ApplicationDefinition Include="MainApp.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</ApplicationDefinition>
<Page Include="MainPage.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Compile Include="MainApp.xaml.cs">
<DependentUpon>MainApp.xaml</DependentUpon>
</Compile>
<Compile Include="MainPage.xaml.cs">
<DependentUpon>MainPage.xaml</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<Compile Include="..\..\Cassette.cs">
<Link>Core\Cassette.cs</Link>
</Compile>
<Compile Include="..\..\Cpu.cs">
<Link>Core\Cpu.cs</Link>
</Compile>
<Compile Include="..\..\CpuData.cs">
<Link>Core\CpuData.cs</Link>
</Compile>
<Compile Include="..\..\Disk525.cs">
<Link>Core\Disk525.cs</Link>
</Compile>
<Compile Include="..\..\DiskDsk.cs">
<Link>Core\DiskDsk.cs</Link>
</Compile>
<Compile Include="..\..\DiskII.cs">
<Link>Core\DiskII.cs</Link>
</Compile>
<Compile Include="..\..\DiskNib.cs">
<Link>Core\DiskNib.cs</Link>
</Compile>
<Compile Include="..\..\Drive525.cs">
<Link>Core\Drive525.cs</Link>
</Compile>
<Compile Include="..\..\GamePort.cs">
<Link>Core\GamePort.cs</Link>
</Compile>
<Compile Include="..\..\GlobalSuppressions.cs">
<Link>GlobalSuppressions.cs</Link>
</Compile>
<Compile Include="..\..\Keyboard.cs">
<Link>Core\Keyboard.cs</Link>
</Compile>
<Compile Include="..\..\Machine.cs">
<Link>Core\Machine.cs</Link>
</Compile>
<Compile Include="..\..\MachineComponent.cs">
<Link>Core\MachineComponent.cs</Link>
</Compile>
<Compile Include="..\..\MachineEvents.cs">
<Link>Core\MachineEvents.cs</Link>
</Compile>
<Compile Include="..\..\MachineSettings.cs">
<Link>Core\MachineSettings.cs</Link>
</Compile>
<Compile Include="..\..\Memory.cs">
<Link>Core\Memory.cs</Link>
</Compile>
<Compile Include="..\..\MemoryData.cs">
<Link>Core\MemoryData.cs</Link>
</Compile>
<Compile Include="..\..\Properties\Strings.Designer.cs">
<Link>Properties\Strings.Designer.cs</Link>
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Strings.resx</DependentUpon>
</Compile>
<Compile Include="..\..\Services\AudioService.cs">
<Link>Services\AudioService.cs</Link>
</Compile>
<Compile Include="..\..\Services\GamePortService.cs">
<Link>Services\GamePortService.cs</Link>
</Compile>
<Compile Include="..\..\Services\IsolatedStorageService.cs">
<Link>Services\IsolatedStorageService.cs</Link>
</Compile>
<Compile Include="..\..\Services\KeyboardService.cs">
<Link>Services\KeyboardService.cs</Link>
</Compile>
<Compile Include="..\..\Services\MachineService.cs">
<Link>Services\MachineService.cs</Link>
</Compile>
<Compile Include="..\..\Services\MachineServices.cs">
<Link>Services\MachineServices.cs</Link>
</Compile>
<Compile Include="..\..\Services\StorageService.cs">
<Link>Services\StorageService.cs</Link>
</Compile>
<Compile Include="..\..\Services\VideoService.cs">
<Link>Services\VideoService.cs</Link>
</Compile>
<Compile Include="..\..\Speaker.cs">
<Link>Core\Speaker.cs</Link>
</Compile>
<Compile Include="..\..\Video.cs">
<Link>Core\Video.cs</Link>
</Compile>
<Compile Include="..\..\VideoData.cs">
<Link>Core\VideoData.cs</Link>
</Compile>
<Compile Include="..\Services\SilverlightAudioService.cs">
<Link>Services\SilverlightAudioService.cs</Link>
</Compile>
<Compile Include="..\Services\SilverlightKeyboardService.cs">
<Link>Services\SilverlightKeyboardService.cs</Link>
</Compile>
<Compile Include="..\Services\SilverlightVideoService.cs">
<Link>Services\SilverlightVideoService.cs</Link>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="Properties\AppManifest.xml" />
<None Include="Properties\WMAppManifest.xml" />
</ItemGroup>
<ItemGroup>
<Content Include="AppIcon.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Background.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="..\..\Properties\Strings.resx">
<Link>Properties\Strings.resx</Link>
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Strings.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<Resource Include="..\..\Disks\Default.dsk">
<Link>Disks\Default.dsk</Link>
</Resource>
<Resource Include="..\..\Roms\AppleIIe.rom">
<Link>Roms\AppleIIe.rom</Link>
</Resource>
<Resource Include="..\..\Roms\DiskII.rom">
<Link>Roms\DiskII.rom</Link>
</Resource>
</ItemGroup>
<ItemGroup>
<CodeAnalysisDictionary Include="..\..\CustomDictionary.xml">
<Link>CustomDictionary.xml</Link>
</CodeAnalysisDictionary>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\Library\Silverlight\Phone\Jellyfish.Library.Silverlight.Phone.csproj">
<Project>{D4880706-29A6-449C-A2A6-3058C37583DA}</Project>
<Name>Jellyfish.Library.Silverlight.Phone</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Microsoft\Silverlight for Phone\$(TargetFrameworkVersion)\Microsoft.Silverlight.$(TargetFrameworkProfile).Overrides.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\Silverlight for Phone\$(TargetFrameworkVersion)\Microsoft.Silverlight.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
<ProjectExtensions />
</Project>

View File

@ -0,0 +1,566 @@
<jl:ApplicationBase x:Class="Jellyfish.Virtu.MainApp"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:system="clr-namespace:System;assembly=mscorlib"
xmlns:mpc="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls"
xmlns:phoneNavigation="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Navigation"
xmlns:jl="clr-namespace:Jellyfish.Library;assembly=Jellyfish.Library">
<!--RootFrame points to and loads the first page of your application-->
<Application.RootVisual>
<phoneNavigation:PhoneApplicationFrame x:Name="RootFrame" Source="/MainPage.xaml"/>
</Application.RootVisual>
<!-- Resources for following the Windows Phone design guidelines -->
<Application.Resources>
<!--************ THEME RESOURCES ************-->
<!-- Color Resources -->
<Color x:Key="PhoneBackgroundColor">#FF1F1F1F</Color>
<Color x:Key="PhoneContrastForegroundColor">Black</Color>
<Color x:Key="PhoneForegroundColor">White</Color>
<Color x:Key="PhoneInactiveColor">#FF666666</Color>
<Color x:Key="PhoneDisabledColor">#FF808080</Color>
<Color x:Key="PhoneSubtleColor">#FF999999</Color>
<Color x:Key="PhoneContrastBackgroundColor">#FFFFFFFF</Color>
<Color x:Key="PhoneTextBoxColor">#FFBFBFBF</Color>
<Color x:Key="PhoneBorderColor">#FFCCCCCC</Color>
<Color x:Key="PhoneTextSelectionColor">Black</Color>
<Color x:Key="PhoneAccentColor">#FF1BA1E2</Color>
<!-- Brush Resources -->
<SolidColorBrush x:Key="PhoneAccentBrush" Color="{StaticResource PhoneAccentColor}"/>
<SolidColorBrush x:Key="PhoneBackgroundBrush" Color="{StaticResource PhoneBackgroundColor}"/>
<SolidColorBrush x:Key="PhoneContrastForegroundBrush" Color="{StaticResource PhoneContrastForegroundColor}"/>
<SolidColorBrush x:Key="PhoneForegroundBrush" Color="{StaticResource PhoneForegroundColor}"/>
<SolidColorBrush x:Key="PhoneInactiveBrush" Color="{StaticResource PhoneInactiveColor}"/>
<SolidColorBrush x:Key="PhoneDisabledBrush" Color="{StaticResource PhoneDisabledColor}"/>
<SolidColorBrush x:Key="PhoneSubtleBrush" Color="{StaticResource PhoneSubtleColor}"/>
<SolidColorBrush x:Key="PhoneContrastBackgroundBrush" Color="{StaticResource PhoneContrastBackgroundColor}"/>
<SolidColorBrush x:Key="PhoneTextBoxBrush" Color="{StaticResource PhoneTextBoxColor}"/>
<SolidColorBrush x:Key="PhoneBorderBrush" Color="{StaticResource PhoneBorderColor}"/>
<SolidColorBrush x:Key="PhoneTextSelectionBrush" Color="{StaticResource PhoneTextSelectionColor}"/>
<SolidColorBrush x:Key="TransparentBrush" Color="Transparent"/>
<!-- Touch Target Area -->
<Thickness x:Key="PhoneTouchTargetOverhang">12</Thickness>
<!-- Default Border Size-->
<Thickness x:Key="PhoneDefaultBorderThickness">3</Thickness>
<!-- Font Names -->
<FontFamily x:Key="PhoneFontFamilyNormal">Segoe WP</FontFamily>
<FontFamily x:Key="PhoneFontFamilyLight">Segoe WP Light</FontFamily>
<FontFamily x:Key="PhoneFontFamilySemiLight">Segoe WP Semilight</FontFamily>
<FontFamily x:Key="PhoneFontFamilySemiBold">Segoe WP Semibold</FontFamily>
<!-- Font sizes -->
<!--14pt-->
<system:Double x:Key="PhoneFontSizeSmall">18.667</system:Double>
<!--15pt-->
<system:Double x:Key="PhoneFontSizeNormal">20</system:Double>
<!--17pt-->
<system:Double x:Key="PhoneFontSizeMedium">22.667</system:Double>
<!--19pt-->
<system:Double x:Key="PhoneFontSizeMediumLarge">25.333</system:Double>
<!--24pt-->
<system:Double x:Key="PhoneFontSizeLarge">32</system:Double>
<!--32pt-->
<system:Double x:Key="PhoneFontSizeExtraLarge">42.667</system:Double>
<!--54pt-->
<system:Double x:Key="PhoneFontSizeExtraExtraLarge">72</system:Double>
<!-- TextBox styles -->
<Style x:Key="PhoneTextBoxStyle" TargetType="TextBox">
<Setter Property="FontFamily" Value="{StaticResource PhoneFontFamilyNormal}"/>
<Setter Property="FontSize" Value="{StaticResource PhoneFontSizeSmall}"/>
<Setter Property="Foreground" Value="{StaticResource PhoneTextBoxBrush}"/>
</Style>
<!-- TextBlock styles -->
<Style x:Key="PhoneTextNormalStyle" TargetType="TextBlock">
<Setter Property="FontFamily" Value="{StaticResource PhoneFontFamilyNormal}"/>
<Setter Property="FontSize" Value="{StaticResource PhoneFontSizeNormal}"/>
<Setter Property="Foreground" Value="{StaticResource PhoneForegroundBrush}"/>
</Style>
<Style x:Key="PhoneTextPageTitle1Style" TargetType="TextBlock" BasedOn="{StaticResource PhoneTextNormalStyle}">
<Setter Property="Margin" Value="20,20,0,0" />
</Style>
<Style x:Key="PhoneTextSubtleStyle" TargetType="TextBlock">
<Setter Property="FontFamily" Value="{StaticResource PhoneFontFamilyNormal}"/>
<Setter Property="FontSize" Value="{StaticResource PhoneFontSizeNormal}"/>
<Setter Property="Foreground" Value="{StaticResource PhoneSubtleBrush}"/>
</Style>
<Style x:Key="PhoneTextTitle1Style" TargetType="TextBlock">
<Setter Property="FontFamily" Value="{StaticResource PhoneFontFamilySemiLight}"/>
<Setter Property="FontSize" Value="{StaticResource PhoneFontSizeExtraExtraLarge}"/>
<Setter Property="Foreground" Value="{StaticResource PhoneForegroundBrush}"/>
</Style>
<Style x:Key="PhoneTextPageTitle2Style" TargetType="TextBlock" BasedOn="{StaticResource PhoneTextTitle1Style}">
<Setter Property="Margin" Value="20,43,0,0" />
</Style>
<Style x:Key="PhoneTextTitle2Style" TargetType="TextBlock">
<Setter Property="FontFamily" Value="{StaticResource PhoneFontFamilySemiLight}"/>
<Setter Property="FontSize" Value="{StaticResource PhoneFontSizeLarge}"/>
<Setter Property="Foreground" Value="{StaticResource PhoneForegroundBrush}"/>
</Style>
<Style x:Key="PhoneTextTitle3Style" TargetType="TextBlock">
<Setter Property="FontFamily" Value="{StaticResource PhoneFontFamilySemiLight}"/>
<Setter Property="FontSize" Value="{StaticResource PhoneFontSizeMedium}"/>
<Setter Property="Foreground" Value="{StaticResource PhoneForegroundBrush}"/>
</Style>
<Style x:Key="PhoneTextExtraLargeStyle" TargetType="TextBlock">
<Setter Property="FontFamily" Value="{StaticResource PhoneFontFamilySemiLight}"/>
<Setter Property="FontSize" Value="{StaticResource PhoneFontSizeExtraLarge}"/>
<Setter Property="Foreground" Value="{StaticResource PhoneForegroundBrush}"/>
</Style>
<Style x:Key="PhoneTextGroupHeaderStyle" TargetType="TextBlock">
<Setter Property="FontFamily" Value="{StaticResource PhoneFontFamilySemiLight}"/>
<Setter Property="FontSize" Value="{StaticResource PhoneFontSizeLarge}"/>
<Setter Property="Foreground" Value="{StaticResource PhoneSubtleBrush}"/>
</Style>
<Style x:Key="PhoneTextLargeStyle" TargetType="TextBlock">
<Setter Property="FontFamily" Value="{StaticResource PhoneFontFamilySemiLight}"/>
<Setter Property="FontSize" Value="{StaticResource PhoneFontSizeLarge}"/>
<Setter Property="Foreground" Value="{StaticResource PhoneForegroundBrush}"/>
</Style>
<Style x:Key="PhoneTextSmallStyle" TargetType="TextBlock">
<Setter Property="FontFamily" Value="{StaticResource PhoneFontFamilyNormal}"/>
<Setter Property="FontSize" Value="{StaticResource PhoneFontSizeSmall}"/>
<Setter Property="Foreground" Value="{StaticResource PhoneSubtleBrush}"/>
</Style>
<Style x:Key="PhoneTextContrastStyle" TargetType="TextBlock">
<Setter Property="FontFamily" Value="{StaticResource PhoneFontFamilySemiBold}"/>
<Setter Property="FontSize" Value="{StaticResource PhoneFontSizeNormal}"/>
<Setter Property="Foreground" Value="{StaticResource PhoneContrastForegroundBrush}"/>
</Style>
<Style x:Key="PhoneTextAccentStyle" TargetType="TextBlock">
<Setter Property="FontFamily" Value="{StaticResource PhoneFontFamilySemiBold}"/>
<Setter Property="FontSize" Value="{StaticResource PhoneFontSizeNormal}"/>
<Setter Property="Foreground" Value="{StaticResource PhoneAccentBrush}"/>
</Style>
<Style x:Key="PhoneTextBodyTextStyle" TargetType="TextBlock">
<Setter Property="FontFamily" Value="{StaticResource PhoneFontFamilySemiBold}"/>
<Setter Property="FontSize" Value="{StaticResource PhoneFontSizeMedium}"/>
<Setter Property="Foreground" Value="{StaticResource PhoneForegroundBrush}"/>
<Setter Property="LineHeight" Value="32"/>
<Setter Property="TextWrapping" Value="Wrap"/>
<Setter Property="Margin" Value="20,20,20,0" />
</Style>
<!--************ THEME RESOURCES ************-->
<!--***** LISTBOX/LISTBOXITEM TEMPLATES *****-->
<Style x:Key="PhoneListBox" TargetType="ListBox">
<Setter Property="Padding" Value="1"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Foreground" Value="{StaticResource PhoneForegroundBrush}"/>
<Setter Property="HorizontalContentAlignment" Value="Left"/>
<Setter Property="VerticalContentAlignment" Value="Top"/>
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Disabled"/>
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
<Setter Property="BorderBrush" Value="{StaticResource PhoneForegroundBrush}"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBox">
<Grid>
<ScrollViewer Foreground="{TemplateBinding Foreground}" x:Name="ScrollViewer" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}" Margin="7,1,1,1">
<ItemsPresenter/>
</ScrollViewer>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="ItemContainerStyle">
<Setter.Value>
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="HorizontalAlignment" Value="Stretch"/>
<Setter Property="VerticalAlignment" Value="Stretch"/>
<Setter Property="Background" Value="{StaticResource TransparentBrush}"/>
<Setter Property="Foreground" Value="{StaticResource PhoneForegroundBrush}"/>
<Setter Property="BorderBrush" Value="{StaticResource PhoneForegroundBrush}"/>
<Setter Property="FontSize" Value="{StaticResource PhoneFontSizeMedium}"/>
<Setter Property="FontFamily" Value="{StaticResource PhoneFontFamilyNormal}"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<Grid x:Name="LayoutRoot" Background="{TemplateBinding Background}" HorizontalAlignment="{TemplateBinding HorizontalAlignment}" VerticalAlignment="{TemplateBinding VerticalAlignment}">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal"/>
<VisualState x:Name="MouseOver" />
<VisualState x:Name="Disabled">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="LayoutRoot" Storyboard.TargetProperty="Background" Duration="0">
<DiscreteObjectKeyFrame KeyTime="0">
<DiscreteObjectKeyFrame.Value>
<SolidColorBrush Color="Transparent"/>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
<DoubleAnimation Storyboard.TargetName="contentPresenter" Storyboard.TargetProperty="Opacity" Duration="0" To=".55" />
</Storyboard>
</VisualState>
</VisualStateGroup>
<VisualStateGroup x:Name="SelectionStates">
<VisualState x:Name="Unselected"/>
<VisualState x:Name="Selected"/>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Grid Margin="{StaticResource PhoneTouchTargetOverhang}">
<ContentPresenter x:Name="contentPresenter" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}"/>
</Grid>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="PhoneListBoxItemLayout" TargetType="mpc:ListViewItem">
<Setter Property="Background" Value="Transparent" />
<Setter Property="ImageStretch" Value="UniformToFill" />
<Setter Property="HorizontalAlignment" Value="Stretch"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="Height" Value="82"/>
<!-- The intended height of the control is 95 but the ItemsControl pads each element with 12 -->
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="mpc:ListViewItem">
<Grid x:Name="LayoutRoot" Background="{TemplateBinding Background}" Margin="{TemplateBinding Padding}" Height="{TemplateBinding Height}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" x:Name="ItemText" Text="{TemplateBinding Text}" Style="{StaticResource PhoneTextExtraLargeStyle}" VerticalAlignment="Center" HorizontalAlignment="{TemplateBinding HorizontalAlignment}" Margin="-3,-4,0,0"/>
<ContentPresenter Grid.Column="1" x:Name="SecondaryContent" Content="{TemplateBinding SecondaryContent}" VerticalAlignment="Center" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="TextWithIconTemplate">
<Setter.Value>
<ControlTemplate TargetType="mpc:ListViewItem">
<Grid x:Name="LayoutRoot" Background="{TemplateBinding Background}" Margin="{TemplateBinding Padding}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="43"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Image Grid.Column="0" Source="{TemplateBinding ImageSource}" Stretch="{TemplateBinding ImageStretch}" Width="43" Height="43"/>
<TextBlock Grid.Column="1" Margin="9,-4,0,0" x:Name="ItemText" Text="{TemplateBinding Text}" Style="{StaticResource PhoneTextExtraLargeStyle}" VerticalAlignment="Center" />
<ContentPresenter Grid.Column="2" x:Name="SecondaryContent" Content="{TemplateBinding SecondaryContent}" VerticalAlignment="Center" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="TextAndDetailsTemplate">
<Setter.Value>
<ControlTemplate TargetType="mpc:ListViewItem">
<Grid x:Name="LayoutRoot" Background="{TemplateBinding Background}" Margin="{TemplateBinding Padding}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0" VerticalAlignment="Center" >
<TextBlock x:Name="ItemText" Text="{TemplateBinding Text}" Style="{StaticResource PhoneTextExtraLargeStyle}" HorizontalAlignment="Left" Margin="-3,-13,0,0" />
<TextBlock x:Name="DetailsText" Text="{TemplateBinding Details}" Style="{StaticResource PhoneTextSubtleStyle}" HorizontalAlignment="Left" Margin="-1,-6,0,0" />
</StackPanel>
<ContentPresenter Grid.Column="1" x:Name="SecondaryContent" Content="{TemplateBinding SecondaryContent}" VerticalAlignment="Center" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="TextAndDetailsWithIconTemplate">
<Setter.Value>
<ControlTemplate TargetType="mpc:ListViewItem">
<Grid x:Name="LayoutRoot" Background="{TemplateBinding Background}" Margin="{TemplateBinding Padding}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="43"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Image Grid.Column="0" Source="{TemplateBinding ImageSource}" Stretch="{TemplateBinding ImageStretch}" Width="43" Height="43" VerticalAlignment="Top"/>
<StackPanel Grid.Column="1" Margin="12,0,0,0" VerticalAlignment="Center">
<TextBlock x:Name="ItemText" Text="{TemplateBinding Text}" Style="{StaticResource PhoneTextExtraLargeStyle}" HorizontalAlignment="Left" Margin="-3,-13,0,0"/>
<TextBlock x:Name="DetailsText" Text="{TemplateBinding Details}" Style="{StaticResource PhoneTextSubtleStyle}" HorizontalAlignment="Left" Margin="-1,-6,0,0" />
</StackPanel>
<ContentPresenter Grid.Column="2" x:Name="SecondaryContent" Content="{TemplateBinding SecondaryContent}" VerticalAlignment="Center" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="CustomTemplate">
<Setter.Value>
<ControlTemplate TargetType="mpc:ListViewItem">
<Grid x:Name="LayoutRoot" Background="{TemplateBinding Background}" Margin="{TemplateBinding Padding}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Margin="12,0,0,0" x:Name="ItemText" Text="{TemplateBinding Text}" Style="{StaticResource PhoneTextExtraLargeStyle}" VerticalAlignment="Center" />
<ContentPresenter Grid.Column="1" x:Name="SecondaryContent" Content="{TemplateBinding SecondaryContent}" VerticalAlignment="Center" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!--***** LISTBOX/LISTBOXITEM TEMPLATES *****-->
<!--************ BUTTON TEMPLATE ************-->
<Style x:Key="PhoneButtonBase" TargetType="ButtonBase">
<Setter Property="Background" Value="{StaticResource TransparentBrush}"/>
<Setter Property="BorderBrush" Value="{StaticResource PhoneForegroundBrush}"/>
<Setter Property="Foreground" Value="{StaticResource PhoneForegroundBrush}"/>
<Setter Property="MinHeight" Value="72" />
<Setter Property="BorderThickness" Value="{StaticResource PhoneDefaultBorderThickness}"/>
<Setter Property="FontFamily" Value="{StaticResource PhoneFontFamilySemiBold}"/>
<Setter Property="FontSize" Value="{StaticResource PhoneFontSizeMediumLarge}"/>
<Setter Property="Padding" Value="10,0,10,5"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ButtonBase">
<Grid Background="Transparent">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal"/>
<VisualState x:Name="MouseOver"/>
<VisualState x:Name="Pressed">
<Storyboard>
<ObjectAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="foregroundContainer" Storyboard.TargetProperty="Control.Foreground">
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneBackgroundBrush}" />
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="ButtonBackground" Storyboard.TargetProperty="Border.Background">
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneForegroundColor}" />
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="ButtonBackground" Storyboard.TargetProperty="Border.BorderBrush">
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneForegroundColor}" />
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="Disabled">
<Storyboard>
<ObjectAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="foregroundContainer" Storyboard.TargetProperty="Control.Foreground">
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneDisabledBrush}" />
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="ButtonBackground" Storyboard.TargetProperty="Control.BorderBrush">
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneDisabledBrush}" />
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="ButtonBackground" Storyboard.TargetProperty="Control.Background">
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource TransparentBrush}" />
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
<VisualStateGroup x:Name="FocusStates">
<VisualState x:Name="Focused"/>
<VisualState x:Name="Unfocused"/>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Border x:Name="ButtonBackground" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="0" Background="{TemplateBinding Background}" Margin="{StaticResource PhoneTouchTargetOverhang}">
<ContentControl x:Name="foregroundContainer" FontFamily="{TemplateBinding FontFamily}" Foreground="{TemplateBinding Foreground}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" FontSize="{TemplateBinding FontSize}" Padding="{TemplateBinding Padding}" Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}"/>
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!--************ BUTTON TEMPLATE ************-->
<!--********* PHONE SLIDER TEMPLATE *********-->
<Style x:Key="PhoneSlider" TargetType="Slider">
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Maximum" Value="10"/>
<Setter Property="Minimum" Value="0"/>
<Setter Property="MinHeight" Value="84"/>
<Setter Property="MinWidth" Value="60"/>
<Setter Property="Value" Value="0"/>
<Setter Property="BorderBrush" Value="{x:Null}"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Foreground" Value="{StaticResource PhoneAccentBrush}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Slider">
<Grid x:Name="Root" Background="{TemplateBinding Background}">
<Grid.Resources>
<ControlTemplate x:Key="PhoneSimpleRepeatButton" TargetType="RepeatButton">
<Rectangle />
</ControlTemplate>
<ControlTemplate x:Key="PhoneSimpleThumb" TargetType="Thumb">
<Rectangle />
</ControlTemplate>
</Grid.Resources>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal"/>
<VisualState x:Name="MouseOver"/>
<VisualState x:Name="Disabled">
<Storyboard>
<DoubleAnimation Duration="0" Storyboard.TargetName="HorizontalTrack" Storyboard.TargetProperty="Opacity" To="0.55" />
<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="HorizontalThumbDisabledOverlay" Storyboard.TargetProperty="Visibility">
<DiscreteObjectKeyFrame KeyTime="0">
<DiscreteObjectKeyFrame.Value>
<Visibility>Visible</Visibility>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
<DoubleAnimation Duration="0" Storyboard.TargetName="VerticalTrack" Storyboard.TargetProperty="Opacity" To="0.55" />
<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="VerticalThumbDisabledOverlay" Storyboard.TargetProperty="Visibility">
<DiscreteObjectKeyFrame KeyTime="0">
<DiscreteObjectKeyFrame.Value>
<Visibility>Visible</Visibility>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Grid x:Name="HorizontalTemplate">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="0"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Rectangle x:Name="HorizontalTrack" Fill="{StaticResource PhoneForegroundBrush}" Opacity="0.2" StrokeThickness="0" Grid.ColumnSpan="3" Margin="0,24,0,0" VerticalAlignment="Top" Height="12"/>
<Rectangle Fill="{TemplateBinding Foreground}" StrokeThickness="0" Grid.Column="0" Margin="0,24,0,0" VerticalAlignment="Top" Height="12"/>
<RepeatButton x:Name="HorizontalTrackLargeChangeDecreaseRepeatButton" IsTabStop="False" Template="{StaticResource PhoneSimpleRepeatButton}" Background="Transparent"/>
<RepeatButton x:Name="HorizontalTrackLargeChangeIncreaseRepeatButton" IsTabStop="False" Template="{StaticResource PhoneSimpleRepeatButton}" Grid.Column="2" Background="Transparent"/>
<Thumb x:Name="HorizontalThumb" Width="1" Margin="-1,0,0,0" Grid.Column="1" BorderThickness="0" Template="{StaticResource PhoneSimpleThumb}" Background="Transparent" RenderTransformOrigin="0.5,0.5">
<Thumb.RenderTransform>
<ScaleTransform ScaleX="32" ScaleY="1"/>
</Thumb.RenderTransform>
</Thumb>
<Rectangle x:Name="HorizontalThumbDisabledOverlay" IsHitTestVisible="False" Opacity="0.55" Visibility="Collapsed" Fill="{StaticResource PhoneDisabledBrush}" Grid.Column="1" Height="12" Margin="0,24,0,0" VerticalAlignment="Top"/>
</Grid>
<Grid x:Name="VerticalTemplate">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="0"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Rectangle x:Name="VerticalTrack" Fill="{StaticResource PhoneForegroundBrush}" Opacity="0.2" StrokeThickness="0" HorizontalAlignment="Left" Margin="24,0,0,0" Width="12" Grid.RowSpan="3"/>
<Rectangle Fill="{TemplateBinding Foreground}" StrokeThickness="0" Grid.Row="2" HorizontalAlignment="Left" Margin="24,0,0,0" Width="12"/>
<RepeatButton x:Name="VerticalTrackLargeChangeDecreaseRepeatButton" IsTabStop="False" Template="{StaticResource PhoneSimpleRepeatButton}" Background="Transparent" Grid.Row="2"/>
<RepeatButton x:Name="VerticalTrackLargeChangeIncreaseRepeatButton" IsTabStop="False" Template="{StaticResource PhoneSimpleRepeatButton}" Grid.Row="2" Background="Transparent"/>
<Thumb x:Name="VerticalThumb" Width="{TemplateBinding Width}" Height="1" Margin="0,-1,0,0" IsTabStop="True" Grid.Row="1" BorderThickness="0" Template="{StaticResource PhoneSimpleThumb}" Background="Transparent" RenderTransformOrigin="0.5,0.5">
<Thumb.RenderTransform>
<ScaleTransform ScaleX="1" ScaleY="32"/>
</Thumb.RenderTransform>
</Thumb>
<Rectangle x:Name="VerticalThumbDisabledOverlay" HorizontalAlignment="Left" Margin="24,0,0,0" Width="12" IsHitTestVisible="False" Opacity="0.55" Visibility="Collapsed" Fill="{StaticResource PhoneDisabledBrush}" Grid.Row="1"/>
</Grid>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!--********* PHONE SLIDER TEMPLATE *********-->
<!--****** PHONE TOGGLESWITCH TEMPLATE ******-->
<Style x:Key="PhoneToggleSwitch" TargetType="ToggleButton">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Foreground" Value="{StaticResource PhoneBorderBrush}"/>
<Setter Property="BorderBrush" Value="{StaticResource PhoneBorderBrush}"/>
<Setter Property="BorderThickness" Value="2"/>
<Setter Property="MinWidth" Value="136"/>
<Setter Property="MaxWidth" Value="136"/>
<Setter Property="MinHeight" Value="96"/>
<Setter Property="MaxHeight" Value="96"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ToggleButton">
<Grid Background="Transparent">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal"/>
<VisualState x:Name="MouseOver" />
<VisualState x:Name="Pressed"/>
<VisualState x:Name="Disabled">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="border" Storyboard.TargetProperty="Visibility" >
<DiscreteObjectKeyFrame KeyTime="0">
<DiscreteObjectKeyFrame.Value>
<Visibility>Collapsed</Visibility>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="borderDisabled" Storyboard.TargetProperty="Visibility" >
<DiscreteObjectKeyFrame KeyTime="0">
<DiscreteObjectKeyFrame.Value>
<Visibility>Visible</Visibility>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
<VisualStateGroup x:Name="CheckStates">
<VisualState x:Name="Checked" >
<Storyboard>
<DoubleAnimation Duration="00:00:00.3" Storyboard.TargetName="switchButton" Storyboard.TargetProperty="(Canvas.Left)" To="80" />
<DoubleAnimation Duration="00:00:00.3" Storyboard.TargetName="rectangleSwitchOn" Storyboard.TargetProperty="Width" To="78" />
<DoubleAnimation Duration="00:00:00.3" Storyboard.TargetName="switchButtonDisabled" Storyboard.TargetProperty="(Canvas.Left)" To="80" />
<DoubleAnimation Duration="00:00:00.3" Storyboard.TargetName="rectangleSwitchOnDisabled" Storyboard.TargetProperty="Width" To="78" />
</Storyboard>
</VisualState>
<VisualState x:Name="Unchecked">
<Storyboard>
<DoubleAnimation Duration="00:00:00.3" Storyboard.TargetName="switchButton" Storyboard.TargetProperty="(Canvas.Left)" To="0" />
<DoubleAnimation Duration="00:00:00.3" Storyboard.TargetName="rectangleSwitchOn" Storyboard.TargetProperty="Width" To="0" />
<DoubleAnimation Duration="00:00:00.3" Storyboard.TargetName="switchButtonDisabled" Storyboard.TargetProperty="(Canvas.Left)" To="0" />
<DoubleAnimation Duration="00:00:00.3" Storyboard.TargetName="rectangleSwitchOnDisabled" Storyboard.TargetProperty="Width" To="0" />
</Storyboard>
</VisualState>
</VisualStateGroup>
<VisualStateGroup x:Name="FocusStates">
<VisualState x:Name="Focused"/>
<VisualState x:Name="Unfocused"/>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Border x:Name="border" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" Width="112" Height="32" HorizontalAlignment="Right" Margin="0,32,0,32" >
<Canvas x:Name="switchContainer" Margin="2">
<Rectangle x:Name="rectangleSwitchOn" Width="0" Height="24" Fill="{TemplateBinding Foreground}" />
<Grid x:Name="switchButton" Width="24" Height="24" Canvas.Left="0" Background="{StaticResource PhoneForegroundBrush}" >
<Rectangle Fill="{StaticResource PhoneBackgroundBrush}" Width="2" HorizontalAlignment="Left" StrokeThickness="0" Margin="5,4,0,4" />
<Rectangle Fill="{StaticResource PhoneBackgroundBrush}" Width="2" HorizontalAlignment="Center" StrokeThickness="0" Margin="0,4,0,4" />
<Rectangle Fill="{StaticResource PhoneBackgroundBrush}" Width="2" HorizontalAlignment="Right" StrokeThickness="0" Margin="0,4,5,4" />
</Grid>
</Canvas>
</Border>
<Border x:Name="borderDisabled" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" BorderBrush="{StaticResource PhoneInactiveBrush}" Width="112" Height="32" HorizontalAlignment="Right" Margin="0,32,0,32" Visibility="Collapsed" >
<Canvas x:Name="switchContainerDisabled" Margin="2">
<Rectangle x:Name="rectangleSwitchOnDisabled" Width="0" Height="24" Fill="{StaticResource PhoneInactiveBrush}" />
<Grid x:Name="switchButtonDisabled" Width="24" Height="24" Canvas.Left="0" Background="{StaticResource PhoneInactiveBrush}" />
</Canvas>
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!--****** PHONE TOGGLESWITCH TEMPLATE ******-->
</Application.Resources>
</jl:ApplicationBase>

View File

@ -0,0 +1,13 @@
using Jellyfish.Library;
namespace Jellyfish.Virtu
{
public sealed partial class MainApp : ApplicationBase
{
public MainApp() :
base("Virtu")
{
InitializeComponent();
}
}
}

View File

@ -0,0 +1,33 @@
<phoneNavigation:PhoneApplicationPage
x:Class="Jellyfish.Virtu.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phoneNavigation="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Navigation"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:jl="clr-namespace:Jellyfish.Library;assembly=Jellyfish.Library"
mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="800"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="PortraitOrLandscape" Title="Virtu">
<!--<tk:DockPanel Background="Black">-->
<Grid Background="{StaticResource PhoneBackgroundBrush}">
<!--<StackPanel Orientation="Horizontal" tk:DockPanel.Dock="Top">-->
<StackPanel Orientation="Horizontal">
<!--<Button x:Name="_disk1Button" Content="Disk 1" IsTabStop="False" Margin="4 4 0 4" MaxHeight="60"/>
<Button x:Name="_disk2Button" Content="Disk 2" IsTabStop="False" Margin="4 4 0 4" MaxHeight="60"/>-->
<jl:FrameRateCounter Margin="4 4 0 4" VerticalAlignment="Center"/>
</StackPanel>
<Grid>
<Image x:Name="_image" MinWidth="280" MinHeight="192"/>
<MediaElement x:Name="_media"/>
<!--<ScrollViewer BorderThickness="0" IsTabStop="False" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" VerticalScrollBarVisibility="Auto">
<TextBlock x:Name="_debug" FontFamily="Consolas" FontSize="12" Foreground="White"/>
</ScrollViewer>-->
</Grid>
</Grid>
<!--</tk:DockPanel>-->
</phoneNavigation:PhoneApplicationPage>

View File

@ -0,0 +1,77 @@
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using Jellyfish.Virtu.Services;
using Microsoft.Phone.Controls;
namespace Jellyfish.Virtu
{
public sealed partial class MainPage : PhoneApplicationPage, IDisposable
{
public MainPage()
{
InitializeComponent();
_storageService = new IsolatedStorageService(_machine);
_keyboardService = new SilverlightKeyboardService(_machine, this);
_gamePortService = new GamePortService(_machine); // not connected
_audioService = new SilverlightAudioService(_machine, this, _media);
_videoService = new SilverlightVideoService(_machine, this, _image);
_machine.Services.AddService(typeof(StorageService), _storageService);
_machine.Services.AddService(typeof(KeyboardService), _keyboardService);
_machine.Services.AddService(typeof(GamePortService), _gamePortService);
_machine.Services.AddService(typeof(AudioService), _audioService);
_machine.Services.AddService(typeof(VideoService), _videoService);
Loaded += (sender, e) => _machine.Start();
CompositionTarget.Rendering += OnCompositionTargetRendering;
Application.Current.Exit += (sender, e) => _machine.Stop();
//_disk1Button.Click += (sender, e) => OnDiskButtonClick(0); // TODO
//_disk2Button.Click += (sender, e) => OnDiskButtonClick(1);
}
public void Dispose()
{
_machine.Dispose();
_storageService.Dispose();
_keyboardService.Dispose();
_gamePortService.Dispose();
_audioService.Dispose();
_videoService.Dispose();
}
private void OnCompositionTargetRendering(object sender, EventArgs e)
{
_keyboardService.Update();
_gamePortService.Update();
_videoService.Update();
}
//private void OnDiskButtonClick(int drive) // TODO
//{
// var dialog = new OpenFileDialog() { Filter = "Disk Files (*.dsk;*.nib)|*.dsk;*.nib|All Files (*.*)|*.*" };
// bool? result = dialog.ShowDialog();
// if (result.HasValue && result.Value)
// {
// using (var stream = dialog.File.OpenRead())
// {
// _machine.Pause();
// _machine.DiskII.Drives[drive].InsertDisk(dialog.File.Name, stream, false);
// _machine.Unpause();
// }
// }
//}
private Machine _machine = new Machine();
private StorageService _storageService;
private KeyboardService _keyboardService;
private GamePortService _gamePortService;
private AudioService _audioService;
private VideoService _videoService;
}
}

View File

@ -0,0 +1,5 @@
<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Deployment.Parts>
</Deployment.Parts>
</Deployment>

View File

@ -0,0 +1,22 @@
using System;
using System.Reflection;
using System.Resources;
using System.Runtime.InteropServices;
using Jellyfish.Library;
[assembly: AssemblyTitle("Virtu")]
[assembly: AssemblyDescription("Apple IIe Emulator")]
[assembly: AssemblyProduct("Jellyfish.Virtu.Silverlight.Phone")]
[assembly: AssemblyCompany("Digital Jellyfish Design Ltd")]
[assembly: AssemblyCopyright("Copyright © 1995-2010 Digital Jellyfish Design Ltd")]
[assembly: AssemblyComment("Developed by Sean Fausett & Nick Westgate")]
[assembly: AssemblyVersion("0.8.2.0")]
[assembly: AssemblyFileVersion("0.8.2.0")]
[assembly: AssemblyInformationalVersion("0.8.2.0")]
[assembly: CLSCompliant(false)]
[assembly: ComVisible(false)]
[assembly: Guid("89a50370-1ed9-4cf1-ad08-043b6e6f3c90")]
[assembly: NeutralResourcesLanguage("en")]

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<Deployment xmlns="http://schemas.microsoft.com/windowsphone/2009/deployment" AppPlatformVersion="7.0">
<App xmlns="" ProductID="{89a50370-1ed9-4cf1-ad08-043b6e6f3c90}" Title="Virtu" RuntimeType="SilverLight" Version="1.0.0.0" Genre="NormalApp" Author="" Description="" Publisher="">
<IconPath IsRelative="true" IsResource="false">AppIcon.png</IconPath>
<Capabilities>
<Capability Name="ID_CAP_NETWORKING" />
<Capability Name="ID_CAP_LOCATION" />
<Capability Name="ID_CAP_SENSORS" />
<Capability Name="ID_CAP_MICROPHONE" />
<Capability Name="ID_CAP_MEDIALIB" />
<Capability Name="ID_CAP_GAMERSERVICES" />
<Capability Name="ID_CAP_PHONEDIALER" />
<Capability Name="ID_CAP_PUSH_NOTIFICATION" />
<Capability Name="ID_CAP_WEBBROWSERCOMPONENT" />
</Capabilities>
<Tasks>
<DefaultTask Name="_default" PlaceHolderString="Default task" />
</Tasks>
<Tokens>
<PrimaryToken TokenID="Jellyfish.Virtu.Silverlight.Phone.Token" TaskName="_default">
<TemplateType5>
<BackgroundImageURI IsRelative="true" IsResource="false">Background.png</BackgroundImageURI>
<Count>0</Count>
<Title>Virtu</Title>
</TemplateType5>
</PrimaryToken>
</Tokens>
</App>
</Deployment>

View File

@ -11,9 +11,9 @@ using Jellyfish.Library;
[assembly: AssemblyCopyright("Copyright © 1995-2010 Digital Jellyfish Design Ltd")]
[assembly: AssemblyComment("Developed by Sean Fausett & Nick Westgate")]
[assembly: AssemblyVersion("0.8.1.0")]
[assembly: AssemblyFileVersion("0.8.1.0")]
[assembly: AssemblyInformationalVersion("0.8.1.0")]
[assembly: AssemblyVersion("0.8.2.0")]
[assembly: AssemblyFileVersion("0.8.2.0")]
[assembly: AssemblyInformationalVersion("0.8.2.0")]
[assembly: CLSCompliant(false)]
[assembly: ComVisible(false)]

View File

@ -1,7 +1,10 @@
<OutOfBrowserSettings ShortName="Virtu" EnableGPUAcceleration="false" ShowInstallMenuItem="true">
<OutOfBrowserSettings.Blurb>Apple IIe Emulator</OutOfBrowserSettings.Blurb>
<OutOfBrowserSettings.WindowSettings>
<WindowSettings Title="Virtu" Width="560" Height="384"/>
</OutOfBrowserSettings.WindowSettings>
<OutOfBrowserSettings.Icons/>
</OutOfBrowserSettings>
<OutOfBrowserSettings ShortName="Virtu" EnableGPUAcceleration="False" ShowInstallMenuItem="True">
<OutOfBrowserSettings.Blurb>Apple IIe Emulator</OutOfBrowserSettings.Blurb>
<OutOfBrowserSettings.WindowSettings>
<WindowSettings Title="Virtu" />
</OutOfBrowserSettings.WindowSettings>
<OutOfBrowserSettings.SecuritySettings>
<SecuritySettings ElevatedPermissions="Required" />
</OutOfBrowserSettings.SecuritySettings>
<OutOfBrowserSettings.Icons />
</OutOfBrowserSettings>

View File

@ -23,17 +23,19 @@ namespace Jellyfish.Virtu.Services
_page.Loaded += (sender, e) => { _media.SetSource(_mediaSource); _media.Play(); };
_mediaSource.Update += OnMediaSourceUpdate;
//_page.Closed += (sender, e) => _media.Stop(); // SL is missing Closed / Unloaded event
#if !WINDOWS_PHONE
_page.Unloaded += (sender, e) => _media.Stop();
#endif
}
private void OnMediaSourceUpdate(object sender, WaveMediaStreamSourceUpdateEventArgs e) // audio thread
{
//if (_count++ % (1000 / SampleLatency) == 0)
//{
// _page.Dispatcher.BeginInvoke(new Action(() =>
// _page.Dispatcher.BeginInvoke(() =>
// {
// ((MainPage)_page)._debug.Text += string.Concat(DateTime.Now, " OnMediaSourceUpdate", Environment.NewLine);
// }));
// });
//}
Update(e.BufferSize, (source, count) =>

View File

@ -303,7 +303,7 @@ namespace Jellyfish.Virtu.Services
return shift ? '>' : '.';
}
break;
#if !WINDOWS_PHONE
case PlatformID.MacOSX:
switch (platformKeyCode)
{
@ -341,7 +341,7 @@ namespace Jellyfish.Virtu.Services
return shift ? '>' : '.';
}
break;
#endif
case PlatformID.Unix:
switch (platformKeyCode)
{

View File

@ -2,57 +2,58 @@
using System.Diagnostics.CodeAnalysis;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Interop;
using System.Windows.Media.Imaging;
#if WINDOWS_PHONE
using Microsoft.Phone.Controls;
#endif
namespace Jellyfish.Virtu.Services
{
public sealed class SilverlightVideoService : VideoService
{
public SilverlightVideoService(Machine machine, Image image) :
public SilverlightVideoService(Machine machine, UserControl page, Image image) :
base(machine)
{
if (page == null)
{
throw new ArgumentNullException("page");
}
if (image == null)
{
throw new ArgumentNullException("image");
}
_page = page;
_image = image;
_image.Source = _bitmap;
SetImageSize();
Application.Current.Host.Content.Resized += (sender, e) => SetImageSize();
var content = Application.Current.Host.Content;
#if WINDOWS_PHONE
((Page)_page).OrientationChanged += (sender, e) => SetImageSize(swapOrientation: (e.Orientation & PageOrientation.Landscape) != 0);
#else
_page.LayoutUpdated += (sender, e) => SetWindowSizeToContent();
content.FullScreenChanged += (sender, e) => SetImageSize();
#endif
content.Resized += (sender, e) => SetImageSize();
}
[SuppressMessage("Microsoft.Usage", "CA2233:OperationsShouldNotOverflow", MessageId = "y*560")]
[SuppressMessage("Microsoft.Usage", "CA2233:OperationsShouldNotOverflow")]
public override void SetPixel(int x, int y, uint color)
{
_pixels[y * BitmapWidth + x] = (int)color;
_pixels[(y + 1) * BitmapWidth + x] = (_imageScale < 1) ? (int)color : 0x0;
_pixelsDirty = true;
}
public override void Update() // main thread
{
if (Application.Current.IsRunningOutOfBrowser && /*_window.IsActive &&*/ (_isFullScreen != IsFullScreen))
#if !WINDOWS_PHONE
var content = Application.Current.Host.Content;
if (Application.Current.IsRunningOutOfBrowser && (content.IsFullScreen != IsFullScreen))
{
if (IsFullScreen) // SL is missing out of browser window control
{
//_window.SizeToContent = SizeToContent.Manual;
//_window.Topmost = true;
//_window.WindowStyle = WindowStyle.None;
//_window.WindowState = WindowState.Maximized;
}
else
{
//_window.WindowState = WindowState.Normal;
//_window.WindowStyle = WindowStyle.SingleBorderWindow;
//_window.Topmost = false;
//_window.SizeToContent = SizeToContent.WidthAndHeight;
}
_isFullScreen = IsFullScreen;
Application.Current.RootVisual.Dispatcher.BeginInvoke(() => content.IsFullScreen = IsFullScreen); // queue to dispatcher; avoids crash!
}
#endif
if (_pixelsDirty)
{
_pixelsDirty = false;
@ -64,21 +65,45 @@ namespace Jellyfish.Virtu.Services
}
}
private void SetImageSize()
private void SetImageSize(bool swapOrientation = false)
{
var content = Application.Current.Host.Content;
int uniformScale = Math.Min((int)content.ActualWidth / BitmapWidth, (int)content.ActualHeight / BitmapHeight);
_image.Width = uniformScale * BitmapWidth;
_image.Height = uniformScale * BitmapHeight;
_imageScale = swapOrientation ? Math.Min(content.ActualHeight / BitmapWidth, content.ActualWidth / BitmapHeight) :
Math.Min(content.ActualWidth / BitmapWidth, content.ActualHeight / BitmapHeight);
if (_imageScale > 1)
{
_imageScale = Math.Floor(_imageScale); // integer scale up
}
_image.Width = _imageScale * BitmapWidth;
_image.Height = _imageScale * BitmapHeight;
Machine.Video.DirtyScreen();
}
#if !WINDOWS_PHONE
private void SetWindowSizeToContent()
{
if (Application.Current.IsRunningOutOfBrowser && !_sizedToContent)
{
_sizedToContent = true;
var window = Application.Current.MainWindow;
var size = Application.Current.RootVisual.DesiredSize;
window.Width = size.Width;
window.Height = size.Height;
}
}
#endif
private const int BitmapWidth = 560;
private const int BitmapHeight = 384;
private UserControl _page;
private Image _image;
private double _imageScale;
private WriteableBitmap _bitmap = new WriteableBitmap(BitmapWidth, BitmapHeight);
private int[] _pixels = new int[BitmapWidth * BitmapHeight];
private bool _pixelsDirty;
private bool _isFullScreen;
#if !WINDOWS_PHONE
private bool _sizedToContent;
#endif
}
}

View File

@ -893,7 +893,7 @@ namespace Jellyfish.Virtu
private void FlushScreen()
{
Action<int> flushRowMode = FlushRowMode[_memory.VideoMode];
var flushRowMode = FlushRowMode[_memory.VideoMode];
for (int y = 0; y < Height; y += CellHeight)
{

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -1,37 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.30729</ProductVersion>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{D59B29AC-1105-410D-A88D-61E9C98B0C4B}</ProjectGuid>
<ProjectGuid>{C152D47E-BBC1-4C35-8646-465180720A72}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Jellyfish.Virtu</RootNamespace>
<AssemblyName>Jellyfish.Virtu</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<WarningLevel>4</WarningLevel>
<SignAssembly>false</SignAssembly>
<AssemblyOriginatorKeyFile>..\..\Jellyfish.snk</AssemblyOriginatorKeyFile>
<ApplicationIcon>Properties\AppleIcon.ico</ApplicationIcon>
<ApplicationIcon>AppIcon.ico</ApplicationIcon>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<PlatformTarget>x86</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\</OutputPath>
<DefineConstants>TRACE;DEBUG;WINDOWS;CODE_ANALYSIS</DefineConstants>
<DefineConstants>DEBUG;TRACE;WINDOWS;CODE_ANALYSIS</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<NoWarn>
</NoWarn>
<PlatformTarget>x86</PlatformTarget>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<RunCodeAnalysis>false</RunCodeAnalysis>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<PlatformTarget>x86</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\</OutputPath>
@ -39,31 +39,22 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<NoWarn>
</NoWarn>
<PlatformTarget>x86</PlatformTarget>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<RunCodeAnalysis>false</RunCodeAnalysis>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.Xna.Framework, Version=3.1.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d, processorArchitecture=x86" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Core" />
<Reference Include="System.Deployment" />
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
<Reference Include="System.Xaml">
<RequiredTargetFramework>4.0</RequiredTargetFramework>
</Reference>
<Reference Include="System.Xml" />
<Reference Include="WindowsBase">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="PresentationCore">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="PresentationFramework">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="WindowsBase" />
</ItemGroup>
<ItemGroup>
<ApplicationDefinition Include="MainApp.xaml">
@ -114,18 +105,9 @@
<Compile Include="..\GlobalSuppressions.cs">
<Link>GlobalSuppressions.cs</Link>
</Compile>
<Compile Include="..\Services\AudioService.cs">
<Link>Services\AudioService.cs</Link>
</Compile>
<Compile Include="..\Services\GamePortService.cs">
<Link>Services\GamePortService.cs</Link>
</Compile>
<Compile Include="..\Keyboard.cs">
<Link>Core\Keyboard.cs</Link>
</Compile>
<Compile Include="..\Services\KeyboardService.cs">
<Link>Services\KeyboardService.cs</Link>
</Compile>
<Compile Include="..\Machine.cs">
<Link>Core\Machine.cs</Link>
</Compile>
@ -135,12 +117,6 @@
<Compile Include="..\MachineEvents.cs">
<Link>Core\MachineEvents.cs</Link>
</Compile>
<Compile Include="..\Services\MachineService.cs">
<Link>Services\MachineService.cs</Link>
</Compile>
<Compile Include="..\Services\MachineServices.cs">
<Link>Services\MachineServices.cs</Link>
</Compile>
<Compile Include="..\MachineSettings.cs">
<Link>Core\MachineSettings.cs</Link>
</Compile>
@ -150,15 +126,36 @@
<Compile Include="..\MemoryData.cs">
<Link>Core\MemoryData.cs</Link>
</Compile>
<Compile Include="..\Properties\SR.Designer.cs">
<Link>Properties\SR.Designer.cs</Link>
<Compile Include="..\Properties\Strings.Designer.cs">
<Link>Properties\Strings.Designer.cs</Link>
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>SR.resx</DependentUpon>
<DependentUpon>Strings.resx</DependentUpon>
</Compile>
<Compile Include="..\Services\AudioService.cs">
<Link>Services\AudioService.cs</Link>
</Compile>
<Compile Include="..\Services\GamePortService.cs">
<Link>Services\GamePortService.cs</Link>
</Compile>
<Compile Include="..\Services\IsolatedStorageService.cs">
<Link>Services\IsolatedStorageService.cs</Link>
</Compile>
<Compile Include="..\Services\KeyboardService.cs">
<Link>Services\KeyboardService.cs</Link>
</Compile>
<Compile Include="..\Services\MachineService.cs">
<Link>Services\MachineService.cs</Link>
</Compile>
<Compile Include="..\Services\MachineServices.cs">
<Link>Services\MachineServices.cs</Link>
</Compile>
<Compile Include="..\Services\StorageService.cs">
<Link>Services\StorageService.cs</Link>
</Compile>
<Compile Include="..\Services\VideoService.cs">
<Link>Services\VideoService.cs</Link>
</Compile>
<Compile Include="..\Speaker.cs">
<Link>Core\Speaker.cs</Link>
</Compile>
@ -168,42 +165,35 @@
<Compile Include="..\VideoData.cs">
<Link>Core\VideoData.cs</Link>
</Compile>
<Compile Include="..\Services\VideoService.cs">
<Link>Services\VideoService.cs</Link>
</Compile>
<Compile Include="..\Xna\Services\XnaGamePortService.cs">
<Link>Services\XnaGamePortService.cs</Link>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Services\WpfAudioService.cs" />
<Compile Include="Services\WpfKeyboardService.cs" />
<Compile Include="Services\WpfStorageService.cs" />
<Compile Include="Services\WpfVideoService.cs" />
</ItemGroup>
<ItemGroup>
<AppDesigner Include="Properties\" />
</ItemGroup>
<ItemGroup>
<Content Include="AppIcon.ico" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="..\Properties\Strings.resx">
<Link>Properties\Strings.resx</Link>
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Strings.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<Resource Include="..\Disks\Default.dsk">
<Link>Disks\Default.dsk</Link>
</Resource>
<Resource Include="..\Roms\AppleIIe.rom">
<Link>Roms\AppleIIe.rom</Link>
</Resource>
<Resource Include="..\Roms\DiskII.rom">
<Link>Roms\DiskII.rom</Link>
</Resource>
<AppDesigner Include="Properties\" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="..\Properties\SR.resx">
<Link>Properties\SR.resx</Link>
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>SR.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<Resource Include="Properties\AppleIcon.ico" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Library\Wpf\Jellyfish.Library.Wpf.csproj">
<Project>{D47A24A9-1590-4E8A-A406-BC66D5891BFA}</Project>
<Name>Jellyfish.Library.Wpf</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<CodeAnalysisDictionary Include="..\CustomDictionary.xml">
@ -211,9 +201,10 @@
</CodeAnalysisDictionary>
</ItemGroup>
<ItemGroup>
<Resource Include="..\Disks\Default.dsk">
<Link>Disks\Default.dsk</Link>
</Resource>
<ProjectReference Include="..\..\Library\Wpf\Jellyfish.Library.Wpf.csproj">
<Project>{93900841-7250-4D3A-837E-43EE3FD118DC}</Project>
<Name>Jellyfish.Library.Wpf</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.

View File

@ -1,24 +1,40 @@

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Virtu.Wpf", "Jellyfish.Virtu.Wpf.csproj", "{D59B29AC-1105-410D-A88D-61E9C98B0C4B}"
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Wpf", "..\..\Library\Wpf\Jellyfish.Library.Wpf.csproj", "{93900841-7250-4D3A-837E-43EE3FD118DC}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Wpf", "..\..\Library\Wpf\Jellyfish.Library.Wpf.csproj", "{D47A24A9-1590-4E8A-A406-BC66D5891BFA}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Virtu.Wpf", "Jellyfish.Virtu.Wpf.csproj", "{C152D47E-BBC1-4C35-8646-465180720A72}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|Mixed Platforms = Debug|Mixed Platforms
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|Mixed Platforms = Release|Mixed Platforms
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{D59B29AC-1105-410D-A88D-61E9C98B0C4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D59B29AC-1105-410D-A88D-61E9C98B0C4B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D59B29AC-1105-410D-A88D-61E9C98B0C4B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D59B29AC-1105-410D-A88D-61E9C98B0C4B}.Release|Any CPU.Build.0 = Release|Any CPU
{D47A24A9-1590-4E8A-A406-BC66D5891BFA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D47A24A9-1590-4E8A-A406-BC66D5891BFA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D47A24A9-1590-4E8A-A406-BC66D5891BFA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D47A24A9-1590-4E8A-A406-BC66D5891BFA}.Release|Any CPU.Build.0 = Release|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Debug|x86.ActiveCfg = Debug|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Release|Any CPU.Build.0 = Release|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{93900841-7250-4D3A-837E-43EE3FD118DC}.Release|x86.ActiveCfg = Release|Any CPU
{C152D47E-BBC1-4C35-8646-465180720A72}.Debug|Any CPU.ActiveCfg = Debug|x86
{C152D47E-BBC1-4C35-8646-465180720A72}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{C152D47E-BBC1-4C35-8646-465180720A72}.Debug|Mixed Platforms.Build.0 = Debug|x86
{C152D47E-BBC1-4C35-8646-465180720A72}.Debug|x86.ActiveCfg = Debug|x86
{C152D47E-BBC1-4C35-8646-465180720A72}.Debug|x86.Build.0 = Debug|x86
{C152D47E-BBC1-4C35-8646-465180720A72}.Release|Any CPU.ActiveCfg = Release|x86
{C152D47E-BBC1-4C35-8646-465180720A72}.Release|Mixed Platforms.ActiveCfg = Release|x86
{C152D47E-BBC1-4C35-8646-465180720A72}.Release|Mixed Platforms.Build.0 = Release|x86
{C152D47E-BBC1-4C35-8646-465180720A72}.Release|x86.ActiveCfg = Release|x86
{C152D47E-BBC1-4C35-8646-465180720A72}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -58,11 +58,11 @@ namespace Jellyfish.Virtu
bool? result = dialog.ShowDialog();
if (result.HasValue && result.Value)
{
using (FileStream stream = File.OpenRead(dialog.FileName))
using (var stream = File.OpenRead(dialog.FileName))
{
_machine.Pause();
_machine.DiskII.Drives[drive].InsertDisk(dialog.FileName, stream, false);
DiskIISettings settings = _machine.Settings.DiskII;
var settings = _machine.Settings.DiskII;
if (drive == 0)
{
settings.Disk1.Name = dialog.FileName;

View File

@ -12,9 +12,9 @@ using Jellyfish.Library;
[assembly: AssemblyCopyright("Copyright © 1995-2010 Digital Jellyfish Design Ltd")]
[assembly: AssemblyComment("Developed by Sean Fausett & Nick Westgate")]
[assembly: AssemblyVersion("0.8.1.0")]
[assembly: AssemblyFileVersion("0.8.1.0")]
[assembly: AssemblyInformationalVersion("0.8.1.0")]
[assembly: AssemblyVersion("0.8.2.0")]
[assembly: AssemblyFileVersion("0.8.2.0")]
[assembly: AssemblyInformationalVersion("0.8.2.0")]
[assembly: CLSCompliant(false)]
[assembly: ComVisible(false)]

View File

@ -1,5 +1,6 @@
using System;
using System.Runtime.InteropServices;
using System.Security;
using System.Windows;
using Jellyfish.Library;
@ -7,6 +8,7 @@ namespace Jellyfish.Virtu.Services
{
public sealed class WpfAudioService : AudioService
{
[SecurityCritical]
public WpfAudioService(Machine machine, Window window) :
base(machine)
{
@ -36,10 +38,10 @@ namespace Jellyfish.Virtu.Services
{
//if (_count++ % (1000 / SampleLatency) == 0)
//{
// _window.Dispatcher.BeginInvoke(new Action(() =>
// _window.Dispatcher.BeginInvoke(() =>
// {
// ((MainWindow)_window)._debug.Text += string.Concat(DateTime.Now, " OnDirectSoundUpdate", Environment.NewLine);
// }));
// });
//}
Update(e.BufferSize, (source, count) =>

View File

@ -1,65 +1,16 @@
using System;
using System.Deployment.Application;
using System.IO;
using System.Deployment.Application;
using System.IO.IsolatedStorage;
namespace Jellyfish.Virtu.Services
{
public sealed class WpfStorageService : StorageService
public sealed class WpfStorageService : IsolatedStorageService
{
public WpfStorageService(Machine machine) :
base(machine)
{
}
public override void Load(string path, Action<Stream> reader)
{
if (reader == null)
{
throw new ArgumentNullException("reader");
}
try
{
using (var store = GetStore())
{
using (var stream = new IsolatedStorageFileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read, store))
{
reader(stream);
}
}
}
catch (FileNotFoundException)
{
}
catch (IsolatedStorageException)
{
}
}
public override void Save(string path, Action<Stream> writer)
{
if (writer == null)
{
throw new ArgumentNullException("writer");
}
try
{
using (var store = GetStore())
{
using (var stream = new IsolatedStorageFileStream(path, FileMode.Create, FileAccess.Write, FileShare.None, store))
{
writer(stream);
}
}
}
catch (IsolatedStorageException)
{
}
}
private static IsolatedStorageFile GetStore()
protected override IsolatedStorageFile GetStore()
{
return ApplicationDeployment.IsNetworkDeployed ? // clickonce
IsolatedStorageFile.GetUserStoreForApplication() : IsolatedStorageFile.GetUserStoreForAssembly();

View File

@ -1,6 +1,6 @@
using System;
using System.Diagnostics.CodeAnalysis;
using System.Security.Permissions;
using System.Security;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
@ -11,7 +11,8 @@ namespace Jellyfish.Virtu.Services
{
public sealed class WpfVideoService : VideoService
{
[SecurityPermission(SecurityAction.LinkDemand, UnmanagedCode = true)]
[SecurityCritical]
[SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands")]
public WpfVideoService(Machine machine, Window window, Image image) :
base(machine)
{
@ -26,14 +27,13 @@ namespace Jellyfish.Virtu.Services
_window = window;
_image = image;
_image.Source = _bitmap;
SetImageSize();
_window.SizeChanged += (sender, e) => SetImageSize();
SystemEvents.DisplaySettingsChanged += (sender, e) => SetImageSize();
}
[SuppressMessage("Microsoft.Usage", "CA2233:OperationsShouldNotOverflow", MessageId = "y*560")]
[SuppressMessage("Microsoft.Usage", "CA2233:OperationsShouldNotOverflow")]
public override void SetPixel(int x, int y, uint color)
{
_pixels[y * BitmapWidth + x] = color;
@ -42,12 +42,11 @@ namespace Jellyfish.Virtu.Services
public override void Update() // main thread
{
if (_window.IsActive && (_isFullScreen != IsFullScreen))
if (_isFullScreen != IsFullScreen)
{
if (IsFullScreen)
{
_window.SizeToContent = SizeToContent.Manual;
_window.Topmost = true;
_window.WindowStyle = WindowStyle.None;
_window.WindowState = WindowState.Maximized;
}
@ -55,11 +54,9 @@ namespace Jellyfish.Virtu.Services
{
_window.WindowState = WindowState.Normal;
_window.WindowStyle = WindowStyle.SingleBorderWindow;
_window.Topmost = false;
_window.SizeToContent = SizeToContent.WidthAndHeight;
}
_isFullScreen = IsFullScreen;
SetImageSize();
}
if (_pixelsDirty)
@ -75,6 +72,7 @@ namespace Jellyfish.Virtu.Services
Math.Min((int)SystemParameters.FullPrimaryScreenWidth / BitmapWidth, (int)SystemParameters.FullPrimaryScreenHeight / BitmapHeight);
_image.Width = uniformScale * BitmapWidth;
_image.Height = uniformScale * BitmapHeight;
Machine.Video.DirtyScreen();
}
private const int BitmapWidth = 560;

6
Virtu/Xna/App.config Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
</configuration>

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

@ -1,43 +0,0 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
<PropertyGroup>
<ProjectGuid>bfe4fbb9-2855-4a2b-9067-a82419579a7d</ProjectGuid>
<ProjectTypeGuids>{96E2B04D-8817-42c6-938A-82C39BA4D311};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<XnaFrameworkVersion>v3.1</XnaFrameworkVersion>
<PlatformTarget>x86</PlatformTarget>
<OutputPath>bin\$(Platform)\$(Configuration)</OutputPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<XnaPlatform>Windows</XnaPlatform>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<XnaPlatform>Windows</XnaPlatform>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.Xna.Framework.Content.Pipeline.AudioImporters, Version=3.1.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d" />
<Reference Include="Microsoft.Xna.Framework.Content.Pipeline.EffectImporter, Version=3.1.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d" />
<Reference Include="Microsoft.Xna.Framework.Content.Pipeline.FBXImporter, Version=3.1.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d" />
<Reference Include="Microsoft.Xna.Framework.Content.Pipeline.TextureImporter, Version=3.1.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d" />
<Reference Include="Microsoft.Xna.Framework.Content.Pipeline.VideoImporters, Version=3.1.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d" />
<Reference Include="Microsoft.Xna.Framework.Content.Pipeline.XImporter, Version=3.1.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d" />
</ItemGroup>
<ItemGroup>
<Compile Include="Consolas.spritefont">
<Name>Consolas</Name>
<Importer>FontDescriptionImporter</Importer>
<Processor>FontDescriptionProcessor</Processor>
</Compile>
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<ProjectGuid>{C138ADC9-8F2B-414A-930D-12B489A96BBB}</ProjectGuid>
<ProjectTypeGuids>{96E2B04D-8817-42c6-938A-82C39BA4D311};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<XnaFrameworkVersion>v4.0</XnaFrameworkVersion>
<OutputPath>bin\$(Platform)\$(Configuration)</OutputPath>
<ContentRootDirectory>Content</ContentRootDirectory>
</PropertyGroup>
<PropertyGroup>
<RootNamespace>Jellyfish.Virtu.Xna.Content</RootNamespace>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.Xna.Framework.Content.Pipeline.EffectImporter, Version=4.0.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d, processorArchitecture=MSIL">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Content.Pipeline.FBXImporter, Version=4.0.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d, processorArchitecture=MSIL">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Content.Pipeline.TextureImporter, Version=4.0.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d, processorArchitecture=MSIL">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Content.Pipeline.XImporter, Version=4.0.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d, processorArchitecture=MSIL">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Content.Pipeline.AudioImporters, Version=4.0.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d, processorArchitecture=MSIL">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Content.Pipeline.VideoImporters, Version=4.0.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d, processorArchitecture=MSIL">
<Private>False</Private>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Consolas.spritefont">
<Name>Consolas</Name>
<Importer>FontDescriptionImporter</Importer>
<Processor>FontDescriptionProcessor</Processor>
</Compile>
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@ -0,0 +1,240 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{AE4C0489-3A21-4264-BE20-EA6C72B24B2C}</ProjectGuid>
<ProjectTypeGuids>{6D335F3A-9D43-41b4-9D22-F6F17C4BE596};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">Windows Phone</Platform>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Jellyfish.Virtu</RootNamespace>
<AssemblyName>Jellyfish.Virtu</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
<XnaFrameworkVersion>v4.0</XnaFrameworkVersion>
<XnaPlatform>Windows Phone</XnaPlatform>
<XnaProfile>Reach</XnaProfile>
<XnaCrossPlatformGroupID>48ae3b16-efe9-4694-85f0-23da456b4bc4</XnaCrossPlatformGroupID>
<XnaOutputType>Game</XnaOutputType>
<XapFilename>$(AssemblyName).xap</XapFilename>
<SilverlightManifestTemplate>Properties\AppManifest.xml</SilverlightManifestTemplate>
<XnaWindowsPhoneManifestTemplate>Properties\WindowsPhoneManifest.xml</XnaWindowsPhoneManifestTemplate>
<ApplicationIcon>AppIcon.ico</ApplicationIcon>
<Thumbnail>AppThumbnail.png</Thumbnail>
<GameStartupType>Jellyfish.Virtu.MainGame</GameStartupType>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|Windows Phone' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Windows Phone\</OutputPath>
<DefineConstants>DEBUG;TRACE;WINDOWS_PHONE;CODE_ANALYSIS</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<NoStdLib>true</NoStdLib>
<UseVSHostingProcess>false</UseVSHostingProcess>
<XnaCompressContent>true</XnaCompressContent>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<RunCodeAnalysis>false</RunCodeAnalysis>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|Windows Phone' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Windows Phone\</OutputPath>
<DefineConstants>TRACE;WINDOWS_PHONE;CODE_ANALYSIS</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<NoStdLib>true</NoStdLib>
<UseVSHostingProcess>false</UseVSHostingProcess>
<XnaCompressContent>true</XnaCompressContent>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<RunCodeAnalysis>false</RunCodeAnalysis>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.Xna.Framework">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Game">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Graphics">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.GamerServices">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Input.Touch">
<Private>False</Private>
</Reference>
<Reference Include="mscorlib">
<Private>False</Private>
</Reference>
<Reference Include="System">
<Private>False</Private>
</Reference>
<Reference Include="System.Core">
<Private>False</Private>
</Reference>
<Reference Include="System.Xml">
<Private>False</Private>
</Reference>
<Reference Include="System.Xml.Linq">
<Private>False</Private>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="..\Cassette.cs">
<Link>Core\Cassette.cs</Link>
</Compile>
<Compile Include="..\Cpu.cs">
<Link>Core\Cpu.cs</Link>
</Compile>
<Compile Include="..\CpuData.cs">
<Link>Core\CpuData.cs</Link>
</Compile>
<Compile Include="..\Disk525.cs">
<Link>Core\Disk525.cs</Link>
</Compile>
<Compile Include="..\DiskDsk.cs">
<Link>Core\DiskDsk.cs</Link>
</Compile>
<Compile Include="..\DiskII.cs">
<Link>Core\DiskII.cs</Link>
</Compile>
<Compile Include="..\DiskNib.cs">
<Link>Core\DiskNib.cs</Link>
</Compile>
<Compile Include="..\Drive525.cs">
<Link>Core\Drive525.cs</Link>
</Compile>
<Compile Include="..\GamePort.cs">
<Link>Core\GamePort.cs</Link>
</Compile>
<Compile Include="..\GlobalSuppressions.cs">
<Link>GlobalSuppressions.cs</Link>
</Compile>
<Compile Include="..\Keyboard.cs">
<Link>Core\Keyboard.cs</Link>
</Compile>
<Compile Include="..\Machine.cs">
<Link>Core\Machine.cs</Link>
</Compile>
<Compile Include="..\MachineComponent.cs">
<Link>Core\MachineComponent.cs</Link>
</Compile>
<Compile Include="..\MachineEvents.cs">
<Link>Core\MachineEvents.cs</Link>
</Compile>
<Compile Include="..\MachineSettings.cs">
<Link>Core\MachineSettings.cs</Link>
</Compile>
<Compile Include="..\Memory.cs">
<Link>Core\Memory.cs</Link>
</Compile>
<Compile Include="..\MemoryData.cs">
<Link>Core\MemoryData.cs</Link>
</Compile>
<Compile Include="..\Properties\Strings.Designer.cs">
<Link>Properties\Strings.Designer.cs</Link>
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Strings.resx</DependentUpon>
</Compile>
<Compile Include="..\Services\AudioService.cs">
<Link>Services\AudioService.cs</Link>
</Compile>
<Compile Include="..\Services\GamePortService.cs">
<Link>Services\GamePortService.cs</Link>
</Compile>
<Compile Include="..\Services\IsolatedStorageService.cs">
<Link>Services\IsolatedStorageService.cs</Link>
</Compile>
<Compile Include="..\Services\KeyboardService.cs">
<Link>Services\KeyboardService.cs</Link>
</Compile>
<Compile Include="..\Services\MachineService.cs">
<Link>Services\MachineService.cs</Link>
</Compile>
<Compile Include="..\Services\MachineServices.cs">
<Link>Services\MachineServices.cs</Link>
</Compile>
<Compile Include="..\Services\StorageService.cs">
<Link>Services\StorageService.cs</Link>
</Compile>
<Compile Include="..\Services\VideoService.cs">
<Link>Services\VideoService.cs</Link>
</Compile>
<Compile Include="..\Speaker.cs">
<Link>Core\Speaker.cs</Link>
</Compile>
<Compile Include="..\Video.cs">
<Link>Core\Video.cs</Link>
</Compile>
<Compile Include="..\VideoData.cs">
<Link>Core\VideoData.cs</Link>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Services\XnaAudioService.cs" />
<Compile Include="Services\XnaGamePortService.cs" />
<Compile Include="Services\XnaKeyboardService.cs" />
<Compile Include="Services\XnaVideoService.cs" />
<Compile Include="MainApp.cs" />
<Compile Include="MainGame.cs" />
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<Content Include="Properties\AppManifest.xml" />
<Content Include="Properties\WindowsPhoneManifest.xml" />
<Content Include="AppIcon.ico" />
<Content Include="AppThumbnail.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="..\Properties\Strings.resx">
<Link>Properties\Strings.resx</Link>
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Strings.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<Resource Include="..\Disks\Default.dsk">
<Link>Disks\Default.dsk</Link>
</Resource>
<Resource Include="..\Roms\AppleIIe.rom">
<Link>Roms\AppleIIe.rom</Link>
</Resource>
<Resource Include="..\Roms\DiskII.rom">
<Link>Roms\DiskII.rom</Link>
</Resource>
</ItemGroup>
<ItemGroup>
<CodeAnalysisDictionary Include="..\CustomDictionary.xml">
<Link>CustomDictionary.xml</Link>
</CodeAnalysisDictionary>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Library\Xna\Jellyfish.Library.Xna.Phone.csproj">
<Project>{46B2BD23-3D45-4268-9979-B9CF136CC982}</Project>
<Name>Jellyfish.Library.Xna.Phone</Name>
</ProjectReference>
<ProjectReference Include="Content\Jellyfish.Virtu.Xna.Content.contentproj">
<Name>Jellyfish.Virtu.Xna.Content</Name>
<XnaReferenceType>Content</XnaReferenceType>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\Microsoft.Xna.GameStudio.targets" />
<!--
To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@ -1,69 +1,100 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{1D3618DE-F050-4350-826E-5E84BC62DEE3}</ProjectGuid>
<ProjectGuid>{1400371E-AC2E-4BC5-8A52-077616F716C4}</ProjectGuid>
<ProjectTypeGuids>{6D335F3A-9D43-41b4-9D22-F6F17C4BE596};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">Xbox 360</Platform>
<OutputType>WinExe</OutputType>
<OutputType>Exe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Jellyfish.Virtu</RootNamespace>
<AssemblyName>Jellyfish.Virtu</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<XnaFrameworkVersion>v3.1</XnaFrameworkVersion>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
<XnaFrameworkVersion>v4.0</XnaFrameworkVersion>
<XnaPlatform>Xbox 360</XnaPlatform>
<XnaCrossPlatformGroupID>5624fafb-e097-4935-a2af-35fe579b07ca</XnaCrossPlatformGroupID>
<ApplicationIcon>
</ApplicationIcon>
<Thumbnail>Properties\AppleThumbnail.png</Thumbnail>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
<SignAssembly>false</SignAssembly>
<AssemblyOriginatorKeyFile>..\..\Jellyfish.snk</AssemblyOriginatorKeyFile>
<XnaProfile>Reach</XnaProfile>
<XnaCrossPlatformGroupID>48ae3b16-efe9-4694-85f0-23da456b4bc4</XnaCrossPlatformGroupID>
<XnaOutputType>Game</XnaOutputType>
<ApplicationIcon>AppIcon.ico</ApplicationIcon>
<Thumbnail>AppThumbnail.png</Thumbnail>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|Xbox 360' ">
<OutputPath>bin\Xbox\</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<NoStdLib>true</NoStdLib>
<UseVSHostingProcess>false</UseVSHostingProcess>
<PlatformTarget>x86</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<DefineConstants>TRACE;DEBUG;XBOX;XBOX360;CODE_ANALYSIS</DefineConstants>
<XnaCompressContent>true</XnaCompressContent>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<NoWarn>
</NoWarn>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|Xbox 360' ">
<OutputPath>bin\Xbox\</OutputPath>
<OutputPath>bin\Xbox 360\</OutputPath>
<DefineConstants>DEBUG;TRACE;XBOX;XBOX360;CODE_ANALYSIS</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<NoStdLib>true</NoStdLib>
<UseVSHostingProcess>false</UseVSHostingProcess>
<PlatformTarget>x86</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<DefineConstants>TRACE;XBOX;XBOX360;CODE_ANALYSIS</DefineConstants>
<XnaCompressContent>true</XnaCompressContent>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<NoWarn>
</NoWarn>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<RunCodeAnalysis>false</RunCodeAnalysis>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|Xbox 360' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Xbox 360\</OutputPath>
<DefineConstants>TRACE;XBOX;XBOX360;CODE_ANALYSIS</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<NoStdLib>true</NoStdLib>
<UseVSHostingProcess>false</UseVSHostingProcess>
<XnaCompressContent>true</XnaCompressContent>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<RunCodeAnalysis>false</RunCodeAnalysis>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.Xna.Framework">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Game">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Graphics">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.GamerServices">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Input.Touch">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Xact">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Video">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Avatar">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Net">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Storage">
<Private>False</Private>
</Reference>
<Reference Include="mscorlib">
<Private>False</Private>
</Reference>
<Reference Include="System">
<Private>False</Private>
</Reference>
<Reference Include="System.Core">
<Private>False</Private>
</Reference>
<Reference Include="System.Xml">
<Private>False</Private>
</Reference>
<Reference Include="System.Xml.Linq">
<Private>False</Private>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="..\Cassette.cs">
<Link>Core\Cassette.cs</Link>
@ -116,11 +147,11 @@
<Compile Include="..\MemoryData.cs">
<Link>Core\MemoryData.cs</Link>
</Compile>
<Compile Include="..\Properties\SR.Designer.cs">
<Link>Properties\SR.Designer.cs</Link>
<Compile Include="..\Properties\Strings.Designer.cs">
<Link>Properties\Strings.Designer.cs</Link>
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>SR.resx</DependentUpon>
<DependentUpon>Strings.resx</DependentUpon>
</Compile>
<Compile Include="..\Services\AudioService.cs">
<Link>Services\AudioService.cs</Link>
@ -152,73 +183,35 @@
<Compile Include="..\VideoData.cs">
<Link>Core\VideoData.cs</Link>
</Compile>
<Compile Include="MainApp.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="MainGame.cs" />
<Compile Include="Services\XnaAudioService.cs" />
<Compile Include="Services\XnaGamePortService.cs" />
<Compile Include="Services\XnaKeyboardService.cs" />
<Compile Include="Services\XnaStorageService.cs" />
<Compile Include="Services\XnaVideoService.cs" />
<Compile Include="MainApp.cs" />
<Compile Include="MainGame.cs" />
</ItemGroup>
<ItemGroup>
<CodeAnalysisDictionary Include="..\CustomDictionary.xml">
<Link>CustomDictionary.xml</Link>
</CodeAnalysisDictionary>
<Content Include="Properties\AppleIcon.ico" />
<Content Include="Properties\AppleThumbnail.png" />
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<NestedContentProject Include="Content\Content.contentproj">
<Project>bfe4fbb9-2855-4a2b-9067-a82419579a7d</Project>
<Visible>False</Visible>
</NestedContentProject>
<Content Include="AppIcon.ico" />
<Content Include="AppThumbnail.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
<ProductName>.NET Framework 2.0 %28x86%29</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
<Visible>False</Visible>
<ProductName>.NET Framework 3.0 %28x86%29</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
<Visible>False</Visible>
<ProductName>Windows Installer 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Xna.Framework.3.1">
<Visible>False</Visible>
<ProductName>Microsoft XNA Framework Redistributable 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="..\Properties\SR.resx">
<Link>Properties\SR.resx</Link>
<EmbeddedResource Include="..\Properties\Strings.resx">
<Link>Properties\Strings.resx</Link>
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>SR.Designer.cs</LastGenOutput>
<LastGenOutput>Strings.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<Resource Include="..\Disks\Default.dsk">
<Link>Disks\Default.dsk</Link>
</Resource>
<Resource Include="..\Roms\AppleIIe.rom">
<Link>Roms\AppleIIe.rom</Link>
</Resource>
@ -227,48 +220,28 @@
</Resource>
</ItemGroup>
<ItemGroup>
<Reference Include="Microsoft.Xna.Framework">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Game">
<Private>False</Private>
</Reference>
<Reference Include="mscorlib">
<Private>False</Private>
</Reference>
<Reference Include="System">
<Private>False</Private>
</Reference>
<Reference Include="System.Core">
<Private>False</Private>
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Xml">
<Private>False</Private>
</Reference>
<Reference Include="System.Xml.Linq">
<Private>False</Private>
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<CodeAnalysisDictionary Include="..\CustomDictionary.xml">
<Link>CustomDictionary.xml</Link>
</CodeAnalysisDictionary>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Library\Xna\Jellyfish.Library.Xna.Xbox.csproj">
<Project>{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}</Project>
<Project>{222412EE-A626-493F-AE72-344657A6840D}</Project>
<Name>Jellyfish.Library.Xna.Xbox</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Resource Include="..\Disks\Default.dsk">
<Link>Disks\Default.dsk</Link>
</Resource>
<ProjectReference Include="Content\Jellyfish.Virtu.Xna.Content.contentproj">
<Name>Jellyfish.Virtu.Xna.Content</Name>
<XnaReferenceType>Content</XnaReferenceType>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\Microsoft.Xna.GameStudio.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
<!--
To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@ -1,6 +1,7 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{F72C1068-E6F3-4A6C-A404-F88626B43B7C}</ProjectGuid>
<ProjectGuid>{3D0AE444-357F-4986-859F-602CC9BB4EF6}</ProjectGuid>
<ProjectTypeGuids>{6D335F3A-9D43-41b4-9D22-F6F17C4BE596};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
@ -8,50 +9,36 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Jellyfish.Virtu</RootNamespace>
<AssemblyName>Jellyfish.Virtu</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<XnaFrameworkVersion>v3.1</XnaFrameworkVersion>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
<XnaFrameworkVersion>v4.0</XnaFrameworkVersion>
<XnaPlatform>Windows</XnaPlatform>
<XnaCrossPlatformGroupID>5624fafb-e097-4935-a2af-35fe579b07ca</XnaCrossPlatformGroupID>
<ApplicationIcon>Properties\AppleIcon.ico</ApplicationIcon>
<Thumbnail>Properties\AppleThumbnail.png</Thumbnail>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
<SignAssembly>false</SignAssembly>
<AssemblyOriginatorKeyFile>..\..\Jellyfish.snk</AssemblyOriginatorKeyFile>
<XnaProfile>Reach</XnaProfile>
<XnaCrossPlatformGroupID>48ae3b16-efe9-4694-85f0-23da456b4bc4</XnaCrossPlatformGroupID>
<XnaOutputType>Game</XnaOutputType>
<ApplicationIcon>AppIcon.ico</ApplicationIcon>
<Thumbnail>AppThumbnail.png</Thumbnail>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\</OutputPath>
<DefineConstants>TRACE;DEBUG;WINDOWS;CODE_ANALYSIS</DefineConstants>
<OutputPath>bin\x86\</OutputPath>
<DefineConstants>DEBUG;TRACE;WINDOWS;CODE_ANALYSIS</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<NoStdLib>true</NoStdLib>
<UseVSHostingProcess>false</UseVSHostingProcess>
<PlatformTarget>x86</PlatformTarget>
<XnaCompressContent>false</XnaCompressContent>
<XnaCompressContent>true</XnaCompressContent>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<NoWarn>
</NoWarn>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<RunCodeAnalysis>false</RunCodeAnalysis>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\</OutputPath>
<OutputPath>bin\x86\</OutputPath>
<DefineConstants>TRACE;WINDOWS;CODE_ANALYSIS</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
@ -60,31 +47,54 @@
<PlatformTarget>x86</PlatformTarget>
<XnaCompressContent>true</XnaCompressContent>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<NoWarn>
</NoWarn>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<RunCodeAnalysis>false</RunCodeAnalysis>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.Xna.Framework, Version=3.1.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d" />
<Reference Include="Microsoft.Xna.Framework.Game, Version=3.1.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d" />
<Reference Include="Microsoft.Xna.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d, processorArchitecture=x86">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Game, Version=4.0.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d, processorArchitecture=x86">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Graphics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d, processorArchitecture=x86">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.GamerServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d, processorArchitecture=x86">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Input.Touch, Version=4.0.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d, processorArchitecture=x86">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Xact, Version=4.0.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d, processorArchitecture=x86">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Video, Version=4.0.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d, processorArchitecture=x86">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Avatar, Version=4.0.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d, processorArchitecture=x86">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Net, Version=4.0.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d, processorArchitecture=x86">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Storage, Version=4.0.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d, processorArchitecture=x86">
<Private>False</Private>
</Reference>
<Reference Include="mscorlib">
<Private>False</Private>
</Reference>
<Reference Include="PresentationFramework">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="PresentationFramework" />
<Reference Include="System">
<Private>False</Private>
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Core">
<Private>False</Private>
</Reference>
<Reference Include="System.Xml">
<Private>False</Private>
</Reference>
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
<Private>False</Private>
</Reference>
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
<Private>False</Private>
</Reference>
</ItemGroup>
@ -140,11 +150,11 @@
<Compile Include="..\MemoryData.cs">
<Link>Core\MemoryData.cs</Link>
</Compile>
<Compile Include="..\Properties\SR.Designer.cs">
<Link>Properties\SR.Designer.cs</Link>
<Compile Include="..\Properties\Strings.Designer.cs">
<Link>Properties\Strings.Designer.cs</Link>
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>SR.resx</DependentUpon>
<DependentUpon>Strings.resx</DependentUpon>
</Compile>
<Compile Include="..\Services\AudioService.cs">
<Link>Services\AudioService.cs</Link>
@ -177,65 +187,34 @@
<Link>Core\VideoData.cs</Link>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="MainApp.cs" />
<Compile Include="MainGame.cs" />
<Compile Include="Services\XnaAudioService.cs" />
<Compile Include="Services\XnaGamePortService.cs" />
<Compile Include="Services\XnaKeyboardService.cs" />
<Compile Include="Services\XnaStorageService.cs" />
<Compile Include="Services\XnaVideoService.cs" />
<Compile Include="MainApp.cs" />
<Compile Include="MainGame.cs" />
</ItemGroup>
<ItemGroup>
<NestedContentProject Include="Content\Content.contentproj">
<Project>bfe4fbb9-2855-4a2b-9067-a82419579a7d</Project>
<Visible>False</Visible>
</NestedContentProject>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
<ProductName>.NET Framework 2.0 %28x86%29</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
<Visible>False</Visible>
<ProductName>.NET Framework 3.0 %28x86%29</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
<Visible>False</Visible>
<ProductName>Windows Installer 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Xna.Framework.3.1">
<Visible>False</Visible>
<ProductName>Microsoft XNA Framework Redistributable 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<Content Include="AppIcon.ico" />
<Content Include="AppThumbnail.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="..\Properties\SR.resx">
<Link>Properties\SR.resx</Link>
<EmbeddedResource Include="..\Properties\Strings.resx">
<Link>Properties\Strings.resx</Link>
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>SR.Designer.cs</LastGenOutput>
<LastGenOutput>Strings.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<Resource Include="..\Disks\Default.dsk">
<Link>Disks\Default.dsk</Link>
</Resource>
<Resource Include="..\Roms\AppleIIe.rom">
<Link>Roms\AppleIIe.rom</Link>
</Resource>
@ -247,27 +226,25 @@
<CodeAnalysisDictionary Include="..\CustomDictionary.xml">
<Link>CustomDictionary.xml</Link>
</CodeAnalysisDictionary>
<Content Include="Properties\AppleIcon.ico" />
<Content Include="Properties\AppleThumbnail.png" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Library\Xna\Jellyfish.Library.Xna.csproj">
<Project>{E246958B-EAD8-48E9-844B-54718C952869}</Project>
<Project>{82F56318-A1FD-4078-A42F-06CAB8B97F63}</Project>
<Name>Jellyfish.Library.Xna</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Resource Include="..\Disks\Default.dsk">
<Link>Disks\Default.dsk</Link>
</Resource>
<ProjectReference Include="Content\Jellyfish.Virtu.Xna.Content.contentproj">
<Name>Jellyfish.Virtu.Xna.Content</Name>
<XnaReferenceType>Content</XnaReferenceType>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\Microsoft.Xna.GameStudio.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
<!--
To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@ -1,76 +1,132 @@

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Virtu.Xna", "Jellyfish.Virtu.Xna.csproj", "{F72C1068-E6F3-4A6C-A404-F88626B43B7C}"
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Xna", "..\..\Library\Xna\Jellyfish.Library.Xna.csproj", "{82F56318-A1FD-4078-A42F-06CAB8B97F63}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Virtu.Xna.Xbox", "Jellyfish.Virtu.Xna.Xbox.csproj", "{1D3618DE-F050-4350-826E-5E84BC62DEE3}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Xna.Phone", "..\..\Library\Xna\Jellyfish.Library.Xna.Phone.csproj", "{46B2BD23-3D45-4268-9979-B9CF136CC982}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Xna", "..\..\Library\Xna\Jellyfish.Library.Xna.csproj", "{E246958B-EAD8-48E9-844B-54718C952869}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Xna.Xbox", "..\..\Library\Xna\Jellyfish.Library.Xna.Xbox.csproj", "{222412EE-A626-493F-AE72-344657A6840D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Library.Xna.Xbox", "..\..\Library\Xna\Jellyfish.Library.Xna.Xbox.csproj", "{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Virtu.Xna", "Jellyfish.Virtu.Xna.csproj", "{3D0AE444-357F-4986-859F-602CC9BB4EF6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Virtu.Xna.Content", "Content\Jellyfish.Virtu.Xna.Content.contentproj", "{C138ADC9-8F2B-414A-930D-12B489A96BBB}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Virtu.Xna.Phone", "Jellyfish.Virtu.Xna.Phone.csproj", "{AE4C0489-3A21-4264-BE20-EA6C72B24B2C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfish.Virtu.Xna.Xbox", "Jellyfish.Virtu.Xna.Xbox.csproj", "{1400371E-AC2E-4BC5-8A52-077616F716C4}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|Mixed Platforms = Debug|Mixed Platforms
Debug|Windows Phone = Debug|Windows Phone
Debug|x86 = Debug|x86
Debug|Xbox 360 = Debug|Xbox 360
Release|Any CPU = Release|Any CPU
Release|Mixed Platforms = Release|Mixed Platforms
Release|Windows Phone = Release|Windows Phone
Release|x86 = Release|x86
Release|Xbox 360 = Release|Xbox 360
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{F72C1068-E6F3-4A6C-A404-F88626B43B7C}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{F72C1068-E6F3-4A6C-A404-F88626B43B7C}.Debug|Mixed Platforms.Build.0 = Debug|x86
{F72C1068-E6F3-4A6C-A404-F88626B43B7C}.Debug|x86.ActiveCfg = Debug|x86
{F72C1068-E6F3-4A6C-A404-F88626B43B7C}.Debug|x86.Build.0 = Debug|x86
{F72C1068-E6F3-4A6C-A404-F88626B43B7C}.Debug|Xbox 360.ActiveCfg = Debug|x86
{F72C1068-E6F3-4A6C-A404-F88626B43B7C}.Release|Mixed Platforms.ActiveCfg = Release|x86
{F72C1068-E6F3-4A6C-A404-F88626B43B7C}.Release|Mixed Platforms.Build.0 = Release|x86
{F72C1068-E6F3-4A6C-A404-F88626B43B7C}.Release|x86.ActiveCfg = Release|x86
{F72C1068-E6F3-4A6C-A404-F88626B43B7C}.Release|x86.Build.0 = Release|x86
{F72C1068-E6F3-4A6C-A404-F88626B43B7C}.Release|Xbox 360.ActiveCfg = Release|x86
{1D3618DE-F050-4350-826E-5E84BC62DEE3}.Debug|Mixed Platforms.ActiveCfg = Debug|Xbox 360
{1D3618DE-F050-4350-826E-5E84BC62DEE3}.Debug|Mixed Platforms.Build.0 = Debug|Xbox 360
{1D3618DE-F050-4350-826E-5E84BC62DEE3}.Debug|x86.ActiveCfg = Debug|Xbox 360
{1D3618DE-F050-4350-826E-5E84BC62DEE3}.Debug|Xbox 360.ActiveCfg = Debug|Xbox 360
{1D3618DE-F050-4350-826E-5E84BC62DEE3}.Debug|Xbox 360.Build.0 = Debug|Xbox 360
{1D3618DE-F050-4350-826E-5E84BC62DEE3}.Release|Mixed Platforms.ActiveCfg = Release|Xbox 360
{1D3618DE-F050-4350-826E-5E84BC62DEE3}.Release|Mixed Platforms.Build.0 = Release|Xbox 360
{1D3618DE-F050-4350-826E-5E84BC62DEE3}.Release|x86.ActiveCfg = Release|Xbox 360
{1D3618DE-F050-4350-826E-5E84BC62DEE3}.Release|Xbox 360.ActiveCfg = Release|Xbox 360
{1D3618DE-F050-4350-826E-5E84BC62DEE3}.Release|Xbox 360.Build.0 = Release|Xbox 360
{BFE4FBB9-2855-4A2B-9067-A82419579A7D}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{BFE4FBB9-2855-4A2B-9067-A82419579A7D}.Debug|x86.ActiveCfg = Debug|x86
{BFE4FBB9-2855-4A2B-9067-A82419579A7D}.Debug|Xbox 360.ActiveCfg = Debug|x86
{BFE4FBB9-2855-4A2B-9067-A82419579A7D}.Release|Mixed Platforms.ActiveCfg = Release|x86
{BFE4FBB9-2855-4A2B-9067-A82419579A7D}.Release|x86.ActiveCfg = Release|x86
{BFE4FBB9-2855-4A2B-9067-A82419579A7D}.Release|Xbox 360.ActiveCfg = Release|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Debug|Mixed Platforms.Build.0 = Debug|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Debug|x86.ActiveCfg = Debug|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Debug|x86.Build.0 = Debug|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Debug|Xbox 360.ActiveCfg = Debug|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Release|Mixed Platforms.ActiveCfg = Release|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Release|Mixed Platforms.Build.0 = Release|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Release|x86.ActiveCfg = Release|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Release|x86.Build.0 = Release|x86
{E246958B-EAD8-48E9-844B-54718C952869}.Release|Xbox 360.ActiveCfg = Release|x86
{A96F5631-40E1-40B0-AEE2-6F2E3368E2AE}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{A96F5631-40E1-40B0-AEE2-6F2E3368E2AE}.Debug|x86.ActiveCfg = Debug|x86
{A96F5631-40E1-40B0-AEE2-6F2E3368E2AE}.Debug|Xbox 360.ActiveCfg = Debug|x86
{A96F5631-40E1-40B0-AEE2-6F2E3368E2AE}.Release|Mixed Platforms.ActiveCfg = Release|x86
{A96F5631-40E1-40B0-AEE2-6F2E3368E2AE}.Release|x86.ActiveCfg = Release|x86
{A96F5631-40E1-40B0-AEE2-6F2E3368E2AE}.Release|Xbox 360.ActiveCfg = Release|x86
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Debug|Mixed Platforms.ActiveCfg = Debug|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Debug|Mixed Platforms.Build.0 = Debug|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Debug|x86.ActiveCfg = Debug|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Debug|Xbox 360.ActiveCfg = Debug|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Debug|Xbox 360.Build.0 = Debug|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Release|Mixed Platforms.ActiveCfg = Release|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Release|Mixed Platforms.Build.0 = Release|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Release|x86.ActiveCfg = Release|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Release|Xbox 360.ActiveCfg = Release|Xbox 360
{6EE9A3C2-0BD8-480D-AED2-6A5A9EBF7AFA}.Release|Xbox 360.Build.0 = Release|Xbox 360
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Debug|Any CPU.ActiveCfg = Debug|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Debug|Mixed Platforms.Build.0 = Debug|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Debug|Windows Phone.ActiveCfg = Release|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Debug|x86.ActiveCfg = Debug|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Debug|x86.Build.0 = Debug|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Debug|Xbox 360.ActiveCfg = Release|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Release|Any CPU.ActiveCfg = Release|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Release|Mixed Platforms.ActiveCfg = Release|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Release|Mixed Platforms.Build.0 = Release|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Release|Windows Phone.ActiveCfg = Release|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Release|x86.ActiveCfg = Release|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Release|x86.Build.0 = Release|x86
{82F56318-A1FD-4078-A42F-06CAB8B97F63}.Release|Xbox 360.ActiveCfg = Release|x86
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Debug|Any CPU.ActiveCfg = Debug|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Debug|Mixed Platforms.ActiveCfg = Debug|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Debug|Mixed Platforms.Build.0 = Debug|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Debug|Windows Phone.ActiveCfg = Release|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Debug|Windows Phone.Build.0 = Release|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Debug|x86.ActiveCfg = Debug|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Debug|Xbox 360.ActiveCfg = Release|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Release|Any CPU.ActiveCfg = Release|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Release|Mixed Platforms.ActiveCfg = Release|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Release|Mixed Platforms.Build.0 = Release|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Release|Windows Phone.ActiveCfg = Release|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Release|Windows Phone.Build.0 = Release|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Release|x86.ActiveCfg = Release|Windows Phone
{46B2BD23-3D45-4268-9979-B9CF136CC982}.Release|Xbox 360.ActiveCfg = Release|Windows Phone
{222412EE-A626-493F-AE72-344657A6840D}.Debug|Any CPU.ActiveCfg = Debug|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Debug|Mixed Platforms.ActiveCfg = Debug|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Debug|Mixed Platforms.Build.0 = Debug|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Debug|Windows Phone.ActiveCfg = Release|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Debug|x86.ActiveCfg = Debug|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Debug|Xbox 360.ActiveCfg = Release|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Debug|Xbox 360.Build.0 = Release|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Release|Any CPU.ActiveCfg = Release|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Release|Mixed Platforms.ActiveCfg = Release|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Release|Mixed Platforms.Build.0 = Release|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Release|Windows Phone.ActiveCfg = Release|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Release|x86.ActiveCfg = Release|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Release|Xbox 360.ActiveCfg = Release|Xbox 360
{222412EE-A626-493F-AE72-344657A6840D}.Release|Xbox 360.Build.0 = Release|Xbox 360
{3D0AE444-357F-4986-859F-602CC9BB4EF6}.Debug|Any CPU.ActiveCfg = Debug|x86
{3D0AE444-357F-4986-859F-602CC9BB4EF6}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{3D0AE444-357F-4986-859F-602CC9BB4EF6}.Debug|Mixed Platforms.Build.0 = Debug|x86
{3D0AE444-357F-4986-859F-602CC9BB4EF6}.Debug|Windows Phone.ActiveCfg = Release|x86
{3D0AE444-357F-4986-859F-602CC9BB4EF6}.Debug|x86.ActiveCfg = Debug|x86
{3D0AE444-357F-4986-859F-602CC9BB4EF6}.Debug|x86.Build.0 = Debug|x86
{3D0AE444-357F-4986-859F-602CC9BB4EF6}.Debug|Xbox 360.ActiveCfg = Release|x86
{3D0AE444-357F-4986-859F-602CC9BB4EF6}.Release|Any CPU.ActiveCfg = Release|x86
{3D0AE444-357F-4986-859F-602CC9BB4EF6}.Release|Mixed Platforms.ActiveCfg = Release|x86
{3D0AE444-357F-4986-859F-602CC9BB4EF6}.Release|Mixed Platforms.Build.0 = Release|x86
{3D0AE444-357F-4986-859F-602CC9BB4EF6}.Release|Windows Phone.ActiveCfg = Release|x86
{3D0AE444-357F-4986-859F-602CC9BB4EF6}.Release|x86.ActiveCfg = Release|x86
{3D0AE444-357F-4986-859F-602CC9BB4EF6}.Release|x86.Build.0 = Release|x86
{3D0AE444-357F-4986-859F-602CC9BB4EF6}.Release|Xbox 360.ActiveCfg = Release|x86
{C138ADC9-8F2B-414A-930D-12B489A96BBB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C138ADC9-8F2B-414A-930D-12B489A96BBB}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{C138ADC9-8F2B-414A-930D-12B489A96BBB}.Debug|Windows Phone.ActiveCfg = Debug|Any CPU
{C138ADC9-8F2B-414A-930D-12B489A96BBB}.Debug|x86.ActiveCfg = Debug|Any CPU
{C138ADC9-8F2B-414A-930D-12B489A96BBB}.Debug|Xbox 360.ActiveCfg = Debug|Any CPU
{C138ADC9-8F2B-414A-930D-12B489A96BBB}.Release|Any CPU.ActiveCfg = Debug|Any CPU
{C138ADC9-8F2B-414A-930D-12B489A96BBB}.Release|Mixed Platforms.ActiveCfg = Debug|Any CPU
{C138ADC9-8F2B-414A-930D-12B489A96BBB}.Release|Windows Phone.ActiveCfg = Debug|Any CPU
{C138ADC9-8F2B-414A-930D-12B489A96BBB}.Release|x86.ActiveCfg = Debug|Any CPU
{C138ADC9-8F2B-414A-930D-12B489A96BBB}.Release|Xbox 360.ActiveCfg = Debug|Any CPU
{AE4C0489-3A21-4264-BE20-EA6C72B24B2C}.Debug|Any CPU.ActiveCfg = Debug|Windows Phone
{AE4C0489-3A21-4264-BE20-EA6C72B24B2C}.Debug|Mixed Platforms.ActiveCfg = Debug|Windows Phone
{AE4C0489-3A21-4264-BE20-EA6C72B24B2C}.Debug|Mixed Platforms.Build.0 = Debug|Windows Phone
{AE4C0489-3A21-4264-BE20-EA6C72B24B2C}.Debug|Windows Phone.ActiveCfg = Release|Windows Phone
{AE4C0489-3A21-4264-BE20-EA6C72B24B2C}.Debug|Windows Phone.Build.0 = Release|Windows Phone
{AE4C0489-3A21-4264-BE20-EA6C72B24B2C}.Debug|Windows Phone.Deploy.0 = Release|Windows Phone
{AE4C0489-3A21-4264-BE20-EA6C72B24B2C}.Debug|x86.ActiveCfg = Debug|Windows Phone
{AE4C0489-3A21-4264-BE20-EA6C72B24B2C}.Debug|Xbox 360.ActiveCfg = Release|Windows Phone
{AE4C0489-3A21-4264-BE20-EA6C72B24B2C}.Release|Any CPU.ActiveCfg = Release|Windows Phone
{AE4C0489-3A21-4264-BE20-EA6C72B24B2C}.Release|Mixed Platforms.ActiveCfg = Release|Windows Phone
{AE4C0489-3A21-4264-BE20-EA6C72B24B2C}.Release|Mixed Platforms.Build.0 = Release|Windows Phone
{AE4C0489-3A21-4264-BE20-EA6C72B24B2C}.Release|Windows Phone.ActiveCfg = Release|Windows Phone
{AE4C0489-3A21-4264-BE20-EA6C72B24B2C}.Release|Windows Phone.Build.0 = Release|Windows Phone
{AE4C0489-3A21-4264-BE20-EA6C72B24B2C}.Release|Windows Phone.Deploy.0 = Release|Windows Phone
{AE4C0489-3A21-4264-BE20-EA6C72B24B2C}.Release|x86.ActiveCfg = Release|Windows Phone
{AE4C0489-3A21-4264-BE20-EA6C72B24B2C}.Release|Xbox 360.ActiveCfg = Release|Windows Phone
{1400371E-AC2E-4BC5-8A52-077616F716C4}.Debug|Any CPU.ActiveCfg = Debug|Xbox 360
{1400371E-AC2E-4BC5-8A52-077616F716C4}.Debug|Mixed Platforms.ActiveCfg = Debug|Xbox 360
{1400371E-AC2E-4BC5-8A52-077616F716C4}.Debug|Mixed Platforms.Build.0 = Debug|Xbox 360
{1400371E-AC2E-4BC5-8A52-077616F716C4}.Debug|Windows Phone.ActiveCfg = Release|Xbox 360
{1400371E-AC2E-4BC5-8A52-077616F716C4}.Debug|x86.ActiveCfg = Debug|Xbox 360
{1400371E-AC2E-4BC5-8A52-077616F716C4}.Debug|Xbox 360.ActiveCfg = Release|Xbox 360
{1400371E-AC2E-4BC5-8A52-077616F716C4}.Debug|Xbox 360.Build.0 = Release|Xbox 360
{1400371E-AC2E-4BC5-8A52-077616F716C4}.Debug|Xbox 360.Deploy.0 = Release|Xbox 360
{1400371E-AC2E-4BC5-8A52-077616F716C4}.Release|Any CPU.ActiveCfg = Release|Xbox 360
{1400371E-AC2E-4BC5-8A52-077616F716C4}.Release|Mixed Platforms.ActiveCfg = Release|Xbox 360
{1400371E-AC2E-4BC5-8A52-077616F716C4}.Release|Mixed Platforms.Build.0 = Release|Xbox 360
{1400371E-AC2E-4BC5-8A52-077616F716C4}.Release|Windows Phone.ActiveCfg = Release|Xbox 360
{1400371E-AC2E-4BC5-8A52-077616F716C4}.Release|x86.ActiveCfg = Release|Xbox 360
{1400371E-AC2E-4BC5-8A52-077616F716C4}.Release|Xbox 360.ActiveCfg = Release|Xbox 360
{1400371E-AC2E-4BC5-8A52-077616F716C4}.Release|Xbox 360.Build.0 = Release|Xbox 360
{1400371E-AC2E-4BC5-8A52-077616F716C4}.Release|Xbox 360.Deploy.0 = Release|Xbox 360
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -1,5 +1,6 @@
namespace Jellyfish.Virtu
{
#if WINDOWS || XBOX
static class MainApp
{
static void Main()
@ -10,4 +11,5 @@ namespace Jellyfish.Virtu
}
}
}
#endif
}

View File

@ -10,9 +10,21 @@ namespace Jellyfish.Virtu
public MainGame() :
base("Virtu")
{
Components.Add(new FrameRateCounter(this) { DrawOrder = 1, FontName = "Consolas" });
#if WINDOWS_PHONE
GraphicsDeviceManager.IsFullScreen = true;
GraphicsDeviceManager.PreferredBackBufferWidth = 480; // TODO remove; works around known ctp issue
GraphicsDeviceManager.PreferredBackBufferHeight = 800;
#endif
var frameRateCounter = new FrameRateCounter(this); // no initializers; avoids CA2000
Components.Add(frameRateCounter);
frameRateCounter.DrawOrder = 1;
frameRateCounter.FontName = "Consolas";
#if WINDOWS_PHONE
_storageService = new IsolatedStorageService(_machine);
#else
_storageService = new XnaStorageService(_machine, this);
#endif
_keyboardService = new XnaKeyboardService(_machine);
_gamePortService = new XnaGamePortService(_machine);
_audioService = new XnaAudioService(_machine, this);

View File

@ -0,0 +1,5 @@
<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Deployment.Parts>
</Deployment.Parts>
</Deployment>

View File

@ -6,7 +6,9 @@ using Jellyfish.Library;
[assembly: AssemblyTitle("Virtu")]
[assembly: AssemblyDescription("Apple IIe Emulator")]
#if XBOX
#if WINDOWS_PHONE
[assembly: AssemblyProduct("Jellyfish.Virtu.Xna.Phone")]
#elif XBOX
[assembly: AssemblyProduct("Jellyfish.Virtu.Xna.Xbox")]
#else
[assembly: AssemblyProduct("Jellyfish.Virtu.Xna")]
@ -15,11 +17,9 @@ using Jellyfish.Library;
[assembly: AssemblyCopyright("Copyright © 1995-2010 Digital Jellyfish Design Ltd")]
[assembly: AssemblyComment("Developed by Sean Fausett & Nick Westgate")]
[assembly: AssemblyVersion("0.8.1.0")]
#if WINDOWS
[assembly: AssemblyFileVersion("0.8.1.0")]
#endif
[assembly: AssemblyInformationalVersion("0.8.1.0")]
[assembly: AssemblyVersion("0.8.2.0")]
[assembly: AssemblyFileVersion("0.8.2.0")]
[assembly: AssemblyInformationalVersion("0.8.2.0")]
[assembly: CLSCompliant(false)]
[assembly: ComVisible(false)]

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8" ?>
<Deployment xmlns="http://schemas.microsoft.com/windowsphone/2009/deployment" AppPlatformVersion="7.0">
<App xmlns="" ProductID="{89a50370-1ed9-4cf1-ad08-043b6e6f3c90}" Title="Virtu" RuntimeType="XNA" Version="1.0.0.0" Genre="Apps.Games" Author="" Description="" Publisher="">
<IconPath IsRelative="true" IsResource="false">AppThumbnail.png</IconPath>
<Capabilities>
<Capability Name="ID_CAP_NETWORKING" />
<Capability Name="ID_CAP_LOCATION" />
<Capability Name="ID_CAP_SENSORS" />
<Capability Name="ID_CAP_MICROPHONE" />
<Capability Name="ID_CAP_MEDIALIB" />
<Capability Name="ID_CAP_GAMERSERVICES" />
<Capability Name="ID_CAP_PHONEDIALER" />
<Capability Name="ID_CAP_PUSH_NOTIFICATION" />
<Capability Name="ID_CAP_WEBBROWSERCOMPONENT" />
</Capabilities>
<Tasks>
<DefaultTask Name="_default" PlaceHolderString="Default task" />
</Tasks>
<Tokens>
<PrimaryToken TokenID="Jellyfish.Virtu.Xna.Phone.Token" TaskName="_default">
<TemplateType5>
<BackgroundImageURI IsRelative="true" IsResource="false">AppThumbnail.png</BackgroundImageURI>
<Count>0</Count>
<Title>Virtu</Title>
</TemplateType5>
</PrimaryToken>
</Tokens>
</App>
</Deployment>

View File

@ -39,6 +39,8 @@ namespace Jellyfish.Virtu.Services
_timer.Dispose();
#endif
}
base.Dispose(disposing);
}
#if WINDOWS

View File

@ -300,7 +300,7 @@ namespace Jellyfish.Virtu.Services
}
private static readonly Keys[] KeyValues =
#if XBOX
#if WINDOWS_PHONE || XBOX
(from key in
(from field in typeof(Keys).GetFields() // missing Enum.GetValues; use reflection
where field.IsLiteral

View File

@ -1,7 +1,6 @@
using System;
using System.IO;
using Jellyfish.Library;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Storage;
namespace Jellyfish.Virtu.Services
@ -58,6 +57,6 @@ namespace Jellyfish.Virtu.Services
}
private GameBase _game;
private Lazy<StorageDevice> _storageDevice = new Lazy<StorageDevice>(() => Guide.EndShowStorageDeviceSelector(Guide.BeginShowStorageDeviceSelector(null, null)));
private Lazy<StorageDevice> _storageDevice = new Lazy<StorageDevice>(() => StorageDevice.EndShowSelector(StorageDevice.BeginShowSelector(null, null)));
}
}

View File

@ -26,10 +26,12 @@ namespace Jellyfish.Virtu.Services
_game.GraphicsDeviceService.DeviceReset += (sender, e) => SetTexturePosition();
}
[SuppressMessage("Microsoft.Usage", "CA2233:OperationsShouldNotOverflow", MessageId = "y*560")]
[SuppressMessage("Microsoft.Usage", "CA2233:OperationsShouldNotOverflow")]
public override void SetPixel(int x, int y, uint color)
{
_pixels[y * TextureWidth + x] = color;
uint rgbaColor = ((color << 16) & 0xFF0000) | (color & 0x00FF00) | ((color >> 16) & 0x0000FF); // convert from BGRA to RGBA
_pixels[y * TextureWidth + x] = rgbaColor;
_pixels[(y + 1) * TextureWidth + x] = (_textureScale < 1) ? rgbaColor : 0x0;
_pixelsDirty = true;
}
@ -47,8 +49,7 @@ namespace Jellyfish.Virtu.Services
_texture.SetData(_pixels);
}
_spriteBatch.Begin(SpriteBlendMode.None, SpriteSortMode.Immediate, SaveStateMode.None);
_graphicsDevice.SamplerStates[0].MagFilter = TextureFilter.Point;
_spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.Opaque, SamplerState.PointClamp, null, null);
_spriteBatch.Draw(_texture, _texturePosition, null, Color.White, 0, Vector2.Zero, _textureScale, SpriteEffects.None, 0);
_spriteBatch.End();
}
@ -60,6 +61,8 @@ namespace Jellyfish.Virtu.Services
_spriteBatch.Dispose();
_texture.Dispose();
}
base.Dispose(disposing);
}
private void OnGraphicsDeviceManagerPreparingDeviceSettings(object sender, PreparingDeviceSettingsEventArgs e)
@ -67,7 +70,29 @@ namespace Jellyfish.Virtu.Services
var displayMode = e.GraphicsDeviceInformation.Adapter.CurrentDisplayMode;
var presentationParameters = e.GraphicsDeviceInformation.PresentationParameters;
#if WINDOWS
#if WINDOWS_PHONE
bool portraitOrientation = (presentationParameters.DisplayOrientation & DisplayOrientation.Portrait) != 0;
if (portraitOrientation)
{
_textureScale = Math.Min((float)displayMode.TitleSafeArea.Width / TextureWidth, (float)displayMode.TitleSafeArea.Height / TextureHeight);
presentationParameters.BackBufferWidth = displayMode.Width; // always use portrait display mode
presentationParameters.BackBufferHeight = displayMode.Height;
}
else
{
_textureScale = Math.Min((float)displayMode.TitleSafeArea.Height / TextureWidth, (float)displayMode.TitleSafeArea.Width / TextureHeight);
presentationParameters.BackBufferWidth = displayMode.Height; // always use landscape display mode
presentationParameters.BackBufferHeight = displayMode.Width;
}
if (_textureScale > 1)
{
_textureScale = (float)Math.Floor(_textureScale); // integer scale up
}
#elif XBOX
_textureScale = Math.Min(displayMode.TitleSafeArea.Width / TextureWidth, displayMode.TitleSafeArea.Height / TextureHeight);
presentationParameters.BackBufferWidth = displayMode.Width; // always use display mode
presentationParameters.BackBufferHeight = displayMode.Height;
#else
if (presentationParameters.IsFullScreen)
{
_textureScale = Math.Min((int)SystemParameters.PrimaryScreenWidth / TextureWidth, (int)SystemParameters.PrimaryScreenHeight / TextureHeight);
@ -77,13 +102,9 @@ namespace Jellyfish.Virtu.Services
else
{
_textureScale = Math.Min((int)SystemParameters.FullPrimaryScreenWidth / TextureWidth, (int)SystemParameters.FullPrimaryScreenHeight / TextureHeight);
presentationParameters.BackBufferWidth = _textureScale * TextureWidth;
presentationParameters.BackBufferHeight = _textureScale * TextureHeight;
presentationParameters.BackBufferWidth = (int)_textureScale * TextureWidth;
presentationParameters.BackBufferHeight = (int)_textureScale * TextureHeight;
}
#else
_textureScale = Math.Min(displayMode.TitleSafeArea.Width / TextureWidth, displayMode.TitleSafeArea.Height / TextureHeight);
presentationParameters.BackBufferWidth = displayMode.Width; // always use display mode
presentationParameters.BackBufferHeight = displayMode.Height;
#endif
}
@ -91,7 +112,7 @@ namespace Jellyfish.Virtu.Services
{
_graphicsDevice = _game.GraphicsDevice;
_spriteBatch = new SpriteBatch(_graphicsDevice);
_texture = new Texture2D(_graphicsDevice, TextureWidth, TextureHeight, 1, TextureUsage.None, SurfaceFormat.Bgr32);
_texture = new Texture2D(_graphicsDevice, TextureWidth, TextureHeight, false, SurfaceFormat.Color);
_pixels = new uint[TextureWidth * TextureHeight];
SetTexturePosition();
}
@ -110,7 +131,7 @@ namespace Jellyfish.Virtu.Services
private SpriteBatch _spriteBatch;
private Texture2D _texture;
private Vector2 _texturePosition;
private int _textureScale;
private float _textureScale;
private uint[] _pixels;
private bool _pixelsDirty;
}