Paradox Game Engine  v1.0.0 beta06
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros Pages
SoundMusicSerializer.cs
Go to the documentation of this file.
1 // Copyright (c) 2014 Silicon Studio Corp. (http://siliconstudio.co.jp)
2 // This file is distributed under GPL v3. See LICENSE.md for details.
3 
4 using System;
5 using System.IO;
6 using SiliconStudio.Core.Serialization;
7 using SiliconStudio.Core.Serialization.Assets;
8 using SiliconStudio.Core.Serialization.Contents;
9 
10 namespace SiliconStudio.Paradox.Audio
11 {
12  internal class SoundMusicSerializer : ContentSerializerBase<SoundMusic>
13  {
14  private readonly AudioEngine audioEngine;
15 
16  public SoundMusicSerializer(AudioEngine engine)
17  {
18  if (engine == null)
19  {
20  throw new ArgumentNullException("engine");
21  }
22 
23  audioEngine = engine;
24  }
25 
26  public override void Serialize(ContentSerializerContext context, SerializationStream stream, ref SoundMusic obj)
27  {
28  if (context.Mode == ArchiveMode.Deserialize)
29  {
30  obj = SoundMusic.Load(audioEngine, stream.NativeStream);
31  }
32  else
33  {
34  throw new NotImplementedException();
35  }
36  }
37 
38  public override object Construct(ContentSerializerContext context)
39  {
40  return null;
41  }
42  }
43 }
Base class for implementation of SerializationStream.
ArchiveMode
Enumerates the different mode of serialization (either serialization or deserialization).
Definition: ArchiveMode.cs:8