Add configuration container.
[sonitus.git] / src / main / java / net / pterodactylus / sonitus / config / SonitusConfiguration.java
1 /*
2  * Sonitus - SonitusConfiguration.java - Copyright © 2013 David Roden
3  *
4  * This program is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
16  */
17
18 package net.pterodactylus.sonitus.config;
19
20 import com.thoughtworks.xstream.annotations.XStreamAlias;
21
22 /**
23  * Sonitus instance configuration.
24  *
25  * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
26  */
27 @XStreamAlias("sonitus")
28 public class SonitusConfiguration {
29
30         /** The executables configuration. */
31         @XStreamAlias("executables")
32         private ExecutableConfiguration executableConfiguration;
33
34         /**
35          * Returns the executable configuration.
36          *
37          * @return The executable configuration
38          */
39         public ExecutableConfiguration getExecutableConfiguration() {
40                 return executableConfiguration;
41         }
42
43         /**
44          * Configuration for the locations of the various native executables used by
45          * Sonitus.
46          *
47          * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
48          */
49         public static class ExecutableConfiguration {
50
51                 /** The location of the LAME binary. */
52                 @XStreamAlias("lame")
53                 private String lameLocation;
54
55                 /** The location of the oggdec binary. */
56                 @XStreamAlias("oggdec")
57                 private String oggdecLocation;
58
59                 /** The location of the oggenc binary. */
60                 @XStreamAlias("oggenc")
61                 private String oggencLocation;
62
63                 /** The location of the flac binary. */
64                 @XStreamAlias("flac")
65                 private String flacLocation;
66
67                 /** The location of the sox binary. */
68                 @XStreamAlias("sox")
69                 private String soxLocation;
70
71                 /**
72                  * Returns the location of the LAME binary.
73                  *
74                  * @return The location of the LAME binary
75                  */
76                 public String getLameLocation() {
77                         return lameLocation;
78                 }
79
80                 /**
81                  * Returns the location of the oggdec binary.
82                  *
83                  * @return The location of the oggdec binary
84                  */
85                 public String getOggdecLocation() {
86                         return oggdecLocation;
87                 }
88
89                 /**
90                  * Returns the location of the oggenc binary.
91                  *
92                  * @return The location of the oggenc binary
93                  */
94                 public String getOggencLocation() {
95                         return oggencLocation;
96                 }
97
98                 /**
99                  * Returns the location of the flac binary.
100                  *
101                  * @return The location of the flac binary
102                  */
103                 public String getFlacLocation() {
104                         return flacLocation;
105                 }
106
107                 /**
108                  * Returns the location of the sox binary.
109                  *
110                  * @return The location of the sox binary
111                  */
112                 public String getSoxLocation() {
113                         return soxLocation;
114                 }
115
116         }
117
118 }