From 1d61c78f88b1c03bd5b4f4b584b22092fc617a40 Mon Sep 17 00:00:00 2001 From: "SND\\simsmaster_cp" Date: Thu, 8 Dec 2011 17:18:05 +0000 Subject: [PATCH] Added RecordingSample (working but ugly), some fixes in RecordingMouse --- ANX.Framework.sln | 13 ++ .../RecordableDevice.cs | 11 ++ .../RecordingMouse.cs | 45 ++++-- RecordingSample/RecordingSample/Game.ico | Bin 0 -> 4286 bytes RecordingSample/RecordingSample/Game1.cs | 138 +++++++++++++++++ .../RecordingSample/GameThumbnail.png | Bin 0 -> 5734 bytes RecordingSample/RecordingSample/Program.cs | 21 +++ .../Properties/AssemblyInfo.cs | 34 ++++ .../RecordingSample/RecordingSample.csproj | 145 ++++++++++++++++++ 9 files changed, 393 insertions(+), 14 deletions(-) create mode 100644 RecordingSample/RecordingSample/Game.ico create mode 100644 RecordingSample/RecordingSample/Game1.cs create mode 100644 RecordingSample/RecordingSample/GameThumbnail.png create mode 100644 RecordingSample/RecordingSample/Program.cs create mode 100644 RecordingSample/RecordingSample/Properties/AssemblyInfo.cs create mode 100644 RecordingSample/RecordingSample/RecordingSample.csproj diff --git a/ANX.Framework.sln b/ANX.Framework.sln index 968eaa04..d3da0b2e 100644 --- a/ANX.Framework.sln +++ b/ANX.Framework.sln @@ -115,6 +115,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ANX.InputSystem.Recording", EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ANX.RenderSystem.Windows.Metro", "RenderSystems\ANX.RenderSystem.Windows.Metro\ANX.RenderSystem.Windows.Metro.csproj", "{FF0AB665-2796-4354-9630-76C2751DB3C2}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RecordingSample", "RecordingSample\RecordingSample\RecordingSample.csproj", "{160150D5-38E6-482D-97F5-2624F322A854}" +EndProject Global GlobalSection(SubversionScc) = preSolution Svn-Managed = True @@ -397,6 +399,16 @@ Global {FF0AB665-2796-4354-9630-76C2751DB3C2}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {FF0AB665-2796-4354-9630-76C2751DB3C2}.Release|Mixed Platforms.Build.0 = Release|Any CPU {FF0AB665-2796-4354-9630-76C2751DB3C2}.Release|x86.ActiveCfg = Release|Any CPU + {160150D5-38E6-482D-97F5-2624F322A854}.Debug|Any CPU.ActiveCfg = Debug|x86 + {160150D5-38E6-482D-97F5-2624F322A854}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {160150D5-38E6-482D-97F5-2624F322A854}.Debug|Mixed Platforms.Build.0 = Debug|x86 + {160150D5-38E6-482D-97F5-2624F322A854}.Debug|x86.ActiveCfg = Debug|x86 + {160150D5-38E6-482D-97F5-2624F322A854}.Debug|x86.Build.0 = Debug|x86 + {160150D5-38E6-482D-97F5-2624F322A854}.Release|Any CPU.ActiveCfg = Release|x86 + {160150D5-38E6-482D-97F5-2624F322A854}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {160150D5-38E6-482D-97F5-2624F322A854}.Release|Mixed Platforms.Build.0 = Release|x86 + {160150D5-38E6-482D-97F5-2624F322A854}.Release|x86.ActiveCfg = Release|x86 + {160150D5-38E6-482D-97F5-2624F322A854}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -420,6 +432,7 @@ Global {71378D2F-0DCD-4413-8DE0-3FEC0BA04E27} = {9B0DD48B-3912-4F33-AF3F-691AF02B73F9} {41E6C2CF-51EA-4D8E-96AE-739CA3951766} = {9B0DD48B-3912-4F33-AF3F-691AF02B73F9} {57097B7A-A283-4409-8AAC-35BF0F458657} = {9B0DD48B-3912-4F33-AF3F-691AF02B73F9} + {160150D5-38E6-482D-97F5-2624F322A854} = {9B0DD48B-3912-4F33-AF3F-691AF02B73F9} {E5D69E75-D77C-493F-BBDA-6F9E73B82549} = {7AD65E6B-2A48-437F-81D9-4CA9C9A85C64} {60D08399-244F-46A3-91F1-4CFD26D961A3} = {7AD65E6B-2A48-437F-81D9-4CA9C9A85C64} {5CA3CDF5-4D2C-42AC-AD08-641BD3992B75} = {7AD65E6B-2A48-437F-81D9-4CA9C9A85C64} diff --git a/InputSystems/ANX.InputSystem.Recording/RecordableDevice.cs b/InputSystems/ANX.InputSystem.Recording/RecordableDevice.cs index c44a2c7c..4dcfad63 100644 --- a/InputSystems/ANX.InputSystem.Recording/RecordableDevice.cs +++ b/InputSystems/ANX.InputSystem.Recording/RecordableDevice.cs @@ -85,6 +85,9 @@ namespace ANX.InputSystem.Recording /// protected void Initialize(Stream bufferStream) { + if (!bufferStream.CanRead || !bufferStream.CanWrite) + throw new ArgumentException("The stream must support read and write opearions!", "bufferStream"); + recordStream = bufferStream; isInitialized = true; @@ -98,6 +101,10 @@ namespace ANX.InputSystem.Recording if (RecordingState == RecordingState.Recording) return; + //Reset the stream if we can seek + if(recordStream.CanSeek) + recordStream.Position = 0; + RecordingState = RecordingState.Recording; } @@ -117,6 +124,10 @@ namespace ANX.InputSystem.Recording if (RecordingState == RecordingState.Recording) throw new InvalidOperationException("Recording is currently running for this device."); + //Reset the stream if we can seek + if (recordStream.CanSeek) + recordStream.Position = 0; + RecordingState = RecordingState.Playback; } diff --git a/InputSystems/ANX.InputSystem.Recording/RecordingMouse.cs b/InputSystems/ANX.InputSystem.Recording/RecordingMouse.cs index 607da68e..1dacab7f 100644 --- a/InputSystems/ANX.InputSystem.Recording/RecordingMouse.cs +++ b/InputSystems/ANX.InputSystem.Recording/RecordingMouse.cs @@ -99,15 +99,15 @@ namespace ANX.InputSystem.Recording protected IMouse realMouse; protected MouseRecordInfo recordInfo; - public IntPtr WindowHandle - { - get { return realMouse.WindowHandle; } + public IntPtr WindowHandle + { + get { return realMouse.WindowHandle; } set { realMouse.WindowHandle = value; } } public MouseState GetState() //The main recording/playback logic is placed here { - switch(RecordingState) + switch (RecordingState) { case RecordingState.None: return realMouse.GetState(); @@ -117,7 +117,7 @@ namespace ANX.InputSystem.Recording if (stateData == null) //No input at this position return new MouseState(); - + byte readOffset = 0; ButtonState left, right, middle, x1, x2; int scrollWheel, xPos, yPos; @@ -136,17 +136,26 @@ namespace ANX.InputSystem.Recording left = right = middle = x1 = x2 = ButtonState.Released; if (recordInfo.HasFlag(MouseRecordInfo.ScrollWheel)) - scrollWheel = BitConverter.ToInt32(stateData, readOffset++); + { + scrollWheel = BitConverter.ToInt32(stateData, readOffset); + readOffset += 4; + } else scrollWheel = 0; if (recordInfo.HasFlag(MouseRecordInfo.XPosition)) - xPos = BitConverter.ToInt32(stateData, readOffset++); + { + xPos = BitConverter.ToInt32(stateData, readOffset); + readOffset += 4; + } else xPos = 0; if (recordInfo.HasFlag(MouseRecordInfo.YPosition)) - yPos = BitConverter.ToInt32(stateData, readOffset++); + { + yPos = BitConverter.ToInt32(stateData, readOffset); + readOffset += 4; + } else yPos = 0; @@ -168,13 +177,22 @@ namespace ANX.InputSystem.Recording } if (recordInfo.HasFlag(MouseRecordInfo.ScrollWheel)) - Array.ConstrainedCopy(BitConverter.GetBytes(state.ScrollWheelValue), 0, buffer, writeOffset++, 4); //int is always 4 byte long. + { + Array.ConstrainedCopy(BitConverter.GetBytes(state.ScrollWheelValue), 0, buffer, writeOffset, 4); //int is always 4 byte long. + writeOffset += 4; + } - if(recordInfo.HasFlag(MouseRecordInfo.XPosition)) - Array.ConstrainedCopy(BitConverter.GetBytes(state.X), 0, buffer, writeOffset++, 4); //int is always 4 byte long. + if (recordInfo.HasFlag(MouseRecordInfo.XPosition)) + { + Array.ConstrainedCopy(BitConverter.GetBytes(state.X), 0, buffer, writeOffset, 4); //int is always 4 byte long. + writeOffset += 4; + } - if(recordInfo.HasFlag(MouseRecordInfo.YPosition)) - Array.ConstrainedCopy(BitConverter.GetBytes(state.Y), 0, buffer, writeOffset++, 4); //int is always 4 byte long. + if (recordInfo.HasFlag(MouseRecordInfo.YPosition)) + { + Array.ConstrainedCopy(BitConverter.GetBytes(state.Y), 0, buffer, writeOffset, 4); //int is always 4 byte long. + writeOffset += 4; + } WriteState(buffer); @@ -226,7 +244,6 @@ namespace ANX.InputSystem.Recording public void Initialize(MouseRecordInfo info, Stream bufferStream, IMouse mouse) { realMouse = mouse; - realMouse.WindowHandle = WindowHandle; recordInfo = info; PacketLenght = GetPaketSize(info); diff --git a/RecordingSample/RecordingSample/Game.ico b/RecordingSample/RecordingSample/Game.ico new file mode 100644 index 0000000000000000000000000000000000000000..8cff41eab28dc99e31a693a39d399f9eb05f1cce GIT binary patch literal 4286 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 literal 0 HcmV?d00001 diff --git a/RecordingSample/RecordingSample/Game1.cs b/RecordingSample/RecordingSample/Game1.cs new file mode 100644 index 00000000..57ff4953 --- /dev/null +++ b/RecordingSample/RecordingSample/Game1.cs @@ -0,0 +1,138 @@ +#region Using Statements +using System; +using System.Collections.Generic; +using System.Linq; +using ANX.Framework; +using ANX.Framework.Graphics; +using ANX.Framework.Input; +using ANX.Framework.NonXNA; +using ANX.InputSystem.Recording; + +#endregion // Using Statements + +#region License + +// +// This file is part of the ANX.Framework created by the "ANX.Framework developer group". +// +// This file is released under the Ms-PL license. +// +// +// +// Microsoft Public License (Ms-PL) +// +// This license governs use of the accompanying software. If you use the software, you accept this license. +// If you do not accept the license, do not use the software. +// +// 1.Definitions +// The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning +// here as under U.S. copyright law. +// A "contribution" is the original software, or any additions or changes to the software. +// A "contributor" is any person that distributes its contribution under this license. +// "Licensed patents" are a contributor's patent claims that read directly on its contribution. +// +// 2.Grant of Rights +// (A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations +// in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to +// reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution +// or any derivative works that you create. +// (B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in +// section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed +// patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution +// in the software or derivative works of the contribution in the software. +// +// 3.Conditions and Limitations +// (A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks. +// (B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your +// patent license from such contributor to the software ends automatically. +// (C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution +// notices that are present in the software. +// (D) If you distribute any portion of the software in source code form, you may do so only under this license by including +// a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or +// object code form, you may only do so under a license that complies with this license. +// (E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees, +// or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the +// extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a +// particular purpose and non-infringement. + +#endregion // License + +namespace RecordingSample +{ + /// + /// Sample, showing the use of the RecordingSystem (currently only the Mouse). + /// + public class Game1 : Game + { + GraphicsDeviceManager graphics; + SpriteBatch spriteBatch; + + Texture2D logo; + RecordingMouse mouse; + KeyboardState oldState; + + public Game1() + { + graphics = new GraphicsDeviceManager(this); + Content.RootDirectory = "SampleContent"; + } + + protected override void Initialize() + { + Window.Title = "Use Mouse to move arround, press r to record, p for playback and n for none"; + + mouse = (RecordingMouse)AddInSystemFactory.Instance.GetCreator("Recording").Mouse; + mouse.Initialize(MouseRecordInfo.Position); + mouse.WindowHandle = Window.Handle; + mouse.EndOfPlaybackReached += new EventHandler((sender, args) => mouse.StopPlayback()); + + base.Initialize(); + } + + protected override void LoadContent() + { + spriteBatch = new SpriteBatch(GraphicsDevice); + + logo = Content.Load(@"Textures/ANX.Framework.Logo_459x121"); + oldState = Keyboard.GetState(); + } + + protected override void Update(GameTime gameTime) + { + KeyboardState newState = Keyboard.GetState(); + + if (oldState.IsKeyUp(Keys.R) && newState.IsKeyDown(Keys.R)) + mouse.StartRecording(); + + if (oldState.IsKeyUp(Keys.P) && newState.IsKeyDown(Keys.P)) + { + if (mouse.RecordingState == RecordingState.Recording) + mouse.StopRecording(); + mouse.StartPlayback(); + } + + if (oldState.IsKeyUp(Keys.N) && newState.IsKeyDown(Keys.N)) + { + if (mouse.RecordingState == RecordingState.Recording) + mouse.StartRecording(); + + mouse.StopPlayback(); + } + + oldState = newState; + + base.Update(gameTime); + } + + protected override void Draw(GameTime gameTime) + { + GraphicsDevice.Clear(Color.CornflowerBlue); + + spriteBatch.Begin(); + spriteBatch.Draw(logo, new Rectangle(mouse.GetState().X, mouse.GetState().Y, 115, 30), Color.White); + spriteBatch.End(); + + base.Draw(gameTime); + } + } +} diff --git a/RecordingSample/RecordingSample/GameThumbnail.png b/RecordingSample/RecordingSample/GameThumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..462311aba2cd09de3992129ca43564755249ef09 GIT binary patch literal 5734 zcmV-s7MbaZP)00009a7bBm000XU z000XU0RWnu7ytkYO=&|zP*7-ZbZ>KLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde00d`2O+f$vv5tKEQIh}w03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(` z>RI+y?e7jKeZ#YO-C3xi2SK~#9!j9Sf(CP`8>^NiYA4O%WBB!mPPBp!fg;0btt zAr73-g0#aTx+}wsL;QI}W=&5?-BsUDW_tLKxw%E~pa11wNrD6jqW?Jm;ql5IAEm#5 z$9LO5&(HEDPM3MUw|`&WuK+wRGXTqgCD|$h@vxaC-6iaO08#)7m*Cab@Y7Gf|EGWahjNuYC!Uu1SPmX$ zRKZa~B)u0GJ63iSWBS_wv_J{Iu86n* z+iEp%MO+3LbOOzsIQ{BnbSi*mP0I5Qqa6$Zc`cb-QEWiVRJ9`@1Z6k01_4Hgp=J}W zxQbzhO2be_5cELx19|#l_`rve7IP`RN32rlR&Oxm7A(W<%X?4kmjeN7SY&n>>hbA6 z5mDH^Lia}Il|2Rsb>Lt!SR}ntg=a`cfuzdkTIq<8a-q4q-vbFov5f0_P62NA2ZIoc z*%~O}4rb4coqk&YGJrWp!PpYQ&QLUOVsH1{D8@p2*qZCL4M@)D!tSVo@hI8y)`6U% z#~aqO!;bd;weh5r4S8Wzr#vz?<5!;+l<>4IY{a4CDH{1H^Ldgb9{`^F{UbO}boI#a zxt_%BjFZi+x3B{0&ef(1`m2#k+CyJ@pl!p_=27nrJ=@Aj8Qb`wl4P}naC%fvBxXOh zE}ub;CsFS9ZEWvERRORrpgIp}lB%>_<5?6b6A8B>o}a1uCFgVDC)n6i$VVmHFEi*4 zspD0xh-+rnK=Yms<33sy(}?Y8w`EpWl`qRjT6p=km(c4lqdcGBoo77eA4{XR4x(+; zT5FvVagKyXT4^BBr4a>eBQPgr|lrZJ{vr#)K;59A$FS+4a|M=b&wcqh%8W#KjPqqOzVmZU+}cULFp zC=;KRH;Z2_*D4dy^nWkN6Q+FdFIQQTs%70(?Mdxrz3b$?WrPK;7IS*R8_L+`#%@<0 z^GLZ?l*yW>V1_p`3(I${wbuKtvJb}U)r>VmQ2NAaR8@!*Qa8Nr-t8QRgUUA4Yx7>N zN`RhSj$7JsG(?UWpc{Ql(oFRSYGqEcaojQ*gC$eB&8>CL_!4A9LSC0D818%`mU zOD3s>iQo#TwSL}pG04MY`xKhCx4N$ih5{oCl|!aMn&4UPtKiP z!T6N*S=AtFtBJWnJ{q47>~nHI;4%rSq+yMi@@(*0@RA+1dh?f@h+yJKqZC>IYgJY4 zr8QKHCS3U7w~v|D+eEna2lR=|y&OAx)BfeT>Wb^~Xv>>OUaKsbd{Ojjty0qg+APkj z;}1mepg^4}er^5HNK1!sTN1rzprI~6H1t8OB2RvN-?d7x(8RT&s?_ci1BeI)xkS;a z#Ir4e;Kf#K8qJ$HtT&#^DN{a@95KDHqS_(%Kw_UKx7KER4m1l!_ZF1%4pK>;@n4BZ7 za$Q%nt)Q%x5rK#gO1kg6--Kk)Ri0nYq%VO;vE7hBG9$S@%_iHtgq$oL$<+nf(WaX+ z9x>~`e0*GSWeUniPYuRL`S`r=s@l_xghm|FS5s745s#t9b+2}BgTYY$xDEQ}cEVI? zW6%wJe0((VI5!6KoPC<-OZo7pt9qjpgdxSRLh!1b(!=lBb2k9Cb``vHA)k9oiT1Q* zMsz*-Dy3~ZIMIsfe!gs>pp;U-eIHV9s8%qEMf;XSNr@tu59P@|n+md`<(C~DlhLOd z^180AxpLQupF3==cCPEb?+&mhFPd|`ZI|VVwG(pcil?k)_~q%z$-#E@bzLpMoC3Y_ z#?H&-4HB-nZrpYw2h2jdy$Mx~PTRY>{h}hgy8MM=ZK_0!O}n9|zu4`y?>rKGAiUe|`DP#Y%^mG)U>+{nx6GX;)ueDwi-xqA ztbfsRe9+k4?>kH97coJe?bl?#J7tRo$0pw~pQn*}4fUPSJ_5R3UYitZq!b zZA@`E`^JFL{tT}1$bRk!Y(UCg2szb@F@RxO@Hqd%=P8RM=C?;kLrAtC^2;jsg2Ri4 z3W`(xJa#;ul|9$cWZJQLzU7M_HT%?0rMlAHd)$+9Rc5{B4cudrITOgw!ysEFPEK^+ zH6n7s_HlwQfSgfHb;w8F^>`#k;IuzLB5!;=PKz80)Ol#){3S82KEKzxonY{BF<+0o z+@GJF+jLct@4dU%K;FuIbGu)T3qAJ2w<8pNl!1NU_Z5NMVepoA>CalLsyc^|9y@K@ zx8n)<+aITV_LU6suuB>vo4ncBOj$oCjl;aq-9jf5CR%%r#yL zxvKv~YkY~A#t(ir_fS<4Z4Cx+f8O_f z2csP@Nyh6`W7|8q2^{-V16#}1+x<8m@t7(fA$S8sXIZFO9Ah&I6%}>Agj)}hYU-DM zD>E5QRPN%gq+s;ZQ75zYuQxD%0WIrYsiM}1Xz7%>|5U3-$W)x7Bve3RKm0FA%+z=``jyE#Nm;{~HSbt0f%+t=zXVYLP{89_#}6LZ*M5 z{eIC&@S_FzH(LKZ%qqLDp>*}F!r@0(emi&RcTVyH-xH6}@kiEwHTrvOZp{UVU^^wj zeXxEWkNKi}zr?#=wdBhM_(wq)BCOT=fNUW6a$MW*+QY9U!w(nmYgYcSQ|2R8w*CJD Y0L3g3-xp*i%>V!Z07*qoM6N<$f>>Wb>;M1& literal 0 HcmV?d00001 diff --git a/RecordingSample/RecordingSample/Program.cs b/RecordingSample/RecordingSample/Program.cs new file mode 100644 index 00000000..4b886da9 --- /dev/null +++ b/RecordingSample/RecordingSample/Program.cs @@ -0,0 +1,21 @@ +using System; + +namespace RecordingSample +{ +#if WINDOWS || XBOX + static class Program + { + /// + /// Der Haupteinstiegspunkt für die Anwendung. + /// + static void Main(string[] args) + { + using (Game1 game = new Game1()) + { + game.Run(); + } + } + } +#endif +} + diff --git a/RecordingSample/RecordingSample/Properties/AssemblyInfo.cs b/RecordingSample/RecordingSample/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..2e31610a --- /dev/null +++ b/RecordingSample/RecordingSample/Properties/AssemblyInfo.cs @@ -0,0 +1,34 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Allgemeine Informationen über eine Assembly werden über den folgenden +// Satz von Attributen kontrolliert. Ändern Sie diese Attributwerte, um die mit einer Assembly +// verbundenen Informationen zu ändern. +[assembly: AssemblyTitle("RecordingSample")] +[assembly: AssemblyProduct("RecordingSample")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyCopyright("Copyright © 2011")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Bei Einstellung von ComVisible auf falsch sind die Typen in dieser Assembly für +// COM-Komponenten nicht sichtbar. Wenn Sie von COM aus auf einen Typ in dieser Assembly +// zugreifen müssen, stellen Sie das Attribut ComVisible bei diesem Typ auf wahr ein. Nur Windows- +// Assemblys unterstützen COM. +[assembly: ComVisible(false)] + +// Auf Windows gilt die folgende GUID für die ID von typelib, wenn dieses +// COM ausgesetzt ist. Auf anderen Plattformen identifiziert sie den +// Titelspeichercontainer bei Bereitstellung dieser Assembly auf dem Gerät eindeutig. +[assembly: Guid("199e53b1-c103-417e-9c77-c650504fd35f")] + +// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: +// +// Größere Version +// Kleinere Version +// Build-Nummer +// Revision +// +[assembly: AssemblyVersion("1.0.0.0")] diff --git a/RecordingSample/RecordingSample/RecordingSample.csproj b/RecordingSample/RecordingSample/RecordingSample.csproj new file mode 100644 index 00000000..f5ff1bf9 --- /dev/null +++ b/RecordingSample/RecordingSample/RecordingSample.csproj @@ -0,0 +1,145 @@ + + + + {160150D5-38E6-482D-97F5-2624F322A854} + {6D335F3A-9D43-41b4-9D22-F6F17C4BE596};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Debug + x86 + WinExe + Properties + RecordingSample + RecordingSample + v4.0 + Client + v4.0 + Windows + Reach + 7c7cc1e8-47d2-4253-8ab6-15ca8305b8e2 + Game + Game.ico + GameThumbnail.png + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + bin\x86\Debug + DEBUG;TRACE;WINDOWS + prompt + 4 + true + false + x86 + false + + + pdbonly + true + bin\x86\Release + TRACE;WINDOWS + prompt + 4 + true + false + x86 + true + + + + + + + + + + + + + + + + + + true + + + + + {6899F0C9-70B9-4EB0-9DD3-E598D4BE3E35} + ANX.Framework + + + {DB88DDEB-7281-405D-8FCA-5681B6B2BD7A} + ANX.InputSystem.Recording + + + {60D08399-244F-46A3-91F1-4CFD26D961A3} + ANX.InputSystem.Windows.XInput + + + {5BE49183-2F6F-4527-AC90-D816911FCF90} + ANX.Framework.Windows.DX10 + + + {FA6E229D-4504-47B1-8A23-2D3FCC13F778} + SampleContent + Content + + + {6A582788-C4D2-410C-96CD-177F75712D65} + ANX.SoundSystem.Windows.XAudio + + + + + False + Microsoft .NET Framework 4 Client Profile %28x86 und x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + False + Microsoft XNA Framework Redistributable 4.0 + true + + + + + + \ No newline at end of file