1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 package net.sf.magicproject.action;
24
25 import java.io.IOException;
26 import java.io.InputStream;
27
28 import net.sf.magicproject.action.handler.StandardAction;
29 import net.sf.magicproject.clickable.ability.Ability;
30 import net.sf.magicproject.event.context.ContextEventListener;
31 import net.sf.magicproject.tools.Configuration;
32 import net.sf.magicproject.tools.MToolKit;
33
34 /***
35 * Play a sound.
36 *
37 * @author <a href="mailto:fabdouglas@users.sourceforge.net">Fabrice Daugan </a>
38 * @since 0.80
39 */
40 public class Sound extends UserAction implements StandardAction {
41
42 /***
43 * Create an instance of Sound by reading a file Offset's file must pointing
44 * on the first byte of this action. <br>
45 * <ul>
46 * Structure of InputStream : Data[size]
47 * <li>sound filename to play +'/0' [...]</li>
48 * </ul>
49 *
50 * @param inputFile
51 * file containing this action
52 * @throws IOException
53 * if error occurred during the reading process from the specified
54 * input stream
55 */
56 Sound(InputStream inputFile) throws IOException {
57 super(inputFile);
58 soundFile = MToolKit.readString(inputFile);
59 }
60
61 @Override
62 public final Actiontype getIdAction() {
63 return Actiontype.SOUND;
64 }
65
66 public boolean play(ContextEventListener context, Ability ability) {
67 if (Configuration.getBoolean("sound", false)) {
68 MToolKit.loadClip(soundFile);
69 }
70 return true;
71 }
72
73 @Override
74 public String toString(Ability ability) {
75 return "Play sound " + soundFile;
76 }
77
78 /***
79 * The sound file to play
80 */
81 private String soundFile;
82
83 }