Ajout version Release/x64 avec les libraries x64 et tuning de la version Debug
This commit is contained in:
		
							
								
								
									
										92
									
								
								SQCSim2021/external/irrKlang-64bit-1.6.0/examples.net/CSharp.04.OverrideFileAccess/Class1.cs
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										92
									
								
								SQCSim2021/external/irrKlang-64bit-1.6.0/examples.net/CSharp.04.OverrideFileAccess/Class1.cs
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,92 @@ | ||||
| // This example will show how to override file access with irrKlang. | ||||
| // This is useful if you want to read sounds from other sources than | ||||
| // just files, for example from custom internet streams or  | ||||
| // an own encypted archive format. | ||||
|  | ||||
| using System; | ||||
| using System.IO; | ||||
| using IrrKlang; | ||||
|  | ||||
| namespace CSharp._04._OverrideFileAccess | ||||
| { | ||||
| 	class Class1 | ||||
| 	{ | ||||
| 		// To start, we need to implement the class IFileFactory, which irrKlang uses | ||||
| 		// to open files. The interface consists only of one single method named  | ||||
| 		// openFile(String filename). In this method, we create return  | ||||
| 		// our own file access class and return it: | ||||
|  | ||||
| 		class MyIrrKlangFileFactory : IrrKlang.IFileFactory | ||||
| 		{ | ||||
| 			public System.IO.Stream openFile(String filename) | ||||
| 			{ | ||||
| 				// we simply could return an opened FileStream here, but to demonstrate | ||||
| 				// overriding, we return our own filestream implementation | ||||
| 				return new MyFileStream(filename); | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		// an own implementation of FileStream to overwrite read access to files  | ||||
| 		public class MyFileStream : System.IO.FileStream | ||||
| 		{ | ||||
| 			public MyFileStream(String filename) : base(filename, FileMode.Open) | ||||
| 			{ | ||||
| 			}		 | ||||
| 	 | ||||
| 			public override int Read(byte[] array, int offset, int count) | ||||
| 			{ | ||||
| 				System.Console.Out.WriteLine("MyFileStream read bytes: " + count); | ||||
| 				return base.Read(array, offset, count); | ||||
| 			} | ||||
|  | ||||
| 			public override long Seek(long offset, SeekOrigin origin) | ||||
| 			{ | ||||
| 				System.Console.Out.WriteLine("MyFileStream seeked to: " + offset); | ||||
| 				return base.Seek(offset, origin); | ||||
| 			} | ||||
| 		}; | ||||
|  | ||||
|  | ||||
|  | ||||
| 		// The main work is done, the only thing missing is to start up the  | ||||
| 		// sound engine and tell it to use the created FileFactory for file access: | ||||
|  | ||||
| 		// irrKlang 3D sound engine example 04,  | ||||
| 		// demonstrating how to override file access of irrKlang | ||||
| 		[STAThread] | ||||
| 		static void Main(string[] args) | ||||
| 		{ | ||||
| 			// start the sound engine with default parameters | ||||
| 			ISoundEngine engine = new ISoundEngine(); | ||||
|  | ||||
| 			// create an instance of the file factory and let | ||||
| 			// irrKlang know about it.  | ||||
|  | ||||
| 			MyIrrKlangFileFactory myfactory = new MyIrrKlangFileFactory(); | ||||
| 			engine.AddFileFactory(myfactory); | ||||
|  | ||||
| 			// that's it, play some sounds with our overriden | ||||
| 			// file access methods: | ||||
|  | ||||
| 			// now play some sounds until user presses 'q' | ||||
|  | ||||
| 			Console.Out.WriteLine("\nDemonstrating file access overriding."); | ||||
| 			Console.Out.WriteLine("Press any key to play some sound, press ESCAPE to quit."); | ||||
|  | ||||
| 			_getch(); | ||||
|  | ||||
| 			engine.Play2D("../../media/getout.ogg", true);			 | ||||
|  | ||||
| 			do | ||||
| 			{ | ||||
| 				// play some wave sound | ||||
| 				engine.Play2D("../../media/bell.wav"); | ||||
| 			} | ||||
| 			while(_getch() != 27); // user pressed eskape key to cancel | ||||
| 		} | ||||
| 		 | ||||
| 		// some simple function for reading keys from the console | ||||
| 		[System.Runtime.InteropServices.DllImport("msvcrt")] | ||||
| 		static extern int _getch(); | ||||
| 	} | ||||
| } | ||||
		Reference in New Issue
	
	Block a user