source: 2013/27/TeemuM/Game/Game/Game/AudioPlayer.cs @ 4529

Revision 4529, 2.6 KB checked in by jumakall, 8 years ago (diff)
Line 
1using System;
2using System.Collections;
3using System.Collections.Generic;
4using Jypeli;
5using Jypeli.Assets;
6using Jypeli.Controls;
7using Jypeli.Effects;
8using Jypeli.Widgets;
9
10
11class AudioPlayer
12{
13    private G game;
14    private string currentType;
15
16    Timer tick;
17    Hashtable lengths = new Hashtable();
18
19    public AudioPlayer(G game, int updateInterval)
20    {
21        Timer tick = new Timer();
22        tick.Interval = updateInterval;
23        tick.Timeout += delegate() { UpdateAudio(); };
24    }
25
26    #region Length register managment
27
28    public bool Register(string type, int length)
29    {
30        if (lengths.ContainsKey(type))
31            return false;
32
33        lengths[type] = length;
34        return true;
35    }
36
37    public bool IsRegistered(string type)
38    {
39        if (lengths.ContainsKey(type))
40            return true;
41        else
42            return false;
43    }
44
45    public void Unregister(string type)
46    {
47        if (lengths.ContainsKey(type))
48            lengths.Remove(type);
49    }
50
51    #endregion
52
53    #region Controls
54
55    public bool Play(string type)
56    {
57        if (!lengths.ContainsKey(type))
58            return false;
59
60        currentType = type;
61        tick.Start();
62        return true;
63    }
64
65    public void Stop()
66    {
67        tick.Stop();
68        game.MediaPlayer.Stop();
69    }
70
71    #endregion
72
73    private void UpdateAudio()
74    {
75        if (!game.MediaPlayer.IsPlaying)
76            game.MediaPlayer.Play(currentType + RandomGen.NextInt(0, (int)lengths[currentType]));
77    }
78
79    public void Console(String command)
80    {
81        String[] commands = command.Split(' ');
82       
83        if (commands.Length < 1)
84            return;
85
86        if (commands[0] == "play")
87        {
88            if (commands.Length < 2)
89                return;
90
91            Play(commands[1]);
92        }
93        else if (commands[0] == "stop")
94        {
95            Stop();
96            game.MessageDisplay.Add("Audio: Stopped");
97        }
98        else if (commands[0] == "register")
99        {
100            if (commands.Length < 3)
101                return;
102
103            int length = 0;
104            int.TryParse(commands[2], out length);
105
106            if (Register(commands[1], length))
107                game.MessageDisplay.Add("Audio: " + commands[1] + " registered");
108            else
109                game.MessageDisplay.Add("Audio: " + commands[1] + " is already registered, please unregister first");
110        }
111        else if (commands[0] == "effect")
112        {
113
114        }
115    }
116}
Note: See TracBrowser for help on using the repository browser.