Flush stdin after every write.
[sonitus.git] / src / main / java / net / pterodactylus / sonitus / data / Format.java
index 2188b2a..59ba9ef 100644 (file)
@@ -91,6 +91,46 @@ public class Format {
        }
 
        //
+       // MUTATORS
+       //
+
+       /**
+        * Returns a format with the same parameters as this format and the given
+        * number of channels.
+        *
+        * @param channels
+        *              The new number of channels
+        * @return A new format with the given number of channels
+        */
+       public Format channels(int channels) {
+               return new Format(channels, frequency, encoding);
+       }
+
+       /**
+        * Returns a new format with the same parameters as this format and the given
+        * frequency.
+        *
+        * @param frequency
+        *              The new frequency
+        * @return A new format with the given frequency
+        */
+       public Format frequency(int frequency) {
+               return new Format(channels, frequency, encoding);
+       }
+
+       /**
+        * Returns a new format with the same parameters as this format and the given
+        * encoding.
+        *
+        * @param encoding
+        *              The new encoding
+        * @return A new format with the given encoding
+        */
+       public Format encoding(String encoding) {
+               return new Format(channels, frequency, encoding);
+       }
+
+       //
        // OBJECT METHODS
        //
 
@@ -110,7 +150,7 @@ public class Format {
 
        @Override
        public String toString() {
-               return String.format("%d Channels, %d Hz, %s", channels, frequency, encoding);
+               return String.format("%d Channel%s, %d Hz, %s", channels, channels != 1 ? "s" : "", frequency, encoding);
        }
 
 }