package ms.heinemann.konsolenradio; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Radio { public static final Object wiedergabeThread = null; /** * @param args */ static String Hörer; static String Betriebssystem; static boolean Käfer = false; static int run = 0; public static void main(String[] args) throws InterruptedException { // TODO Auto-generated method stub // String datei = "/home/adrian/Musik/freude.mp3"; Dienst.setEnergie(true); Dienst.leseKatalog(); Frequenz.leseFrequenzen(); Thread.currentThread(); SystemInfo(); while (Dienst.getEnergie()) { Thread wiedergabeThread = new Thread(new Wiedergabe()); if (run == 0) { Moinsen(); try { Senderwahl(); } catch (IOException e) { // TODO Auto-generated catch block System.out .println("Es ist ein Fehler bei der Eingabe aufgetreten!"); e.printStackTrace(); } wiedergabeThread.start(); } else { Wiedergabe.senderWechsel = false; Mahlzeit(); try { Senderwahl(); } catch (IOException e) { // TODO Auto-generated catch block System.out .println("Es ist ein Fehler bei der Eingabe aufgetreten!"); e.printStackTrace(); } wiedergabeThread.start(); } System.out.println("Der Radiosender " + Frequenz.getSender() + " wurde ausgewählt."); try { Dienstwahl(); } catch (IOException e) { // TODO Auto-generated catch block System.out .println("Es ist ein Fehler bei der Eingabe aufgetreten!"); e.printStackTrace(); } // Das schlafen legen des MainThreads gibt dem alten // WiedergabeThread die Möglichkeit sich zu beenden. Thread.sleep(5); if (!Dienst.getEnergie()) { wiedergabeThread.stop(); } run++; } /** * TODO Der Thrad kann nicht sampft gestoppt werden, da die // * Weidergabe // einer Entlosschleife entspricht. TODO -Das stoppen des * Thread // wurde in // die Klasse Frequenz ausgelagert-. */ // wiedergabeThread.stop(); // wiedergabeThread.interrupt(); System.out.println("Auf Wiederhören!"); } public static void Moinsen() { clearScreen(); System.out.println("Das Konsolenradio(JVM-Edition)\n"); System.out.printf("Hallo %s, welchen Sender möchtest du hören?\n", Hörer); } public static void Mahlzeit() { clearScreen(); System.out.println("Das Konsolenradio(JVM-Edition)\n"); System.out.printf("Hallo %s, du hörst %s \n", Hörer, Frequenz.getSender()); System.out.println("Zu welchem Sender möchtest du wechseln?"); } public static void Senderwahl() throws IOException { InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); System.out.println(Frequenz.getFrequenzen()); System.out.printf("Treffe nun Deine Wahl: "); String eingabe = br.readLine(); if (Radio.Käfer == true) { System.out.println("Du hast " + eingabe + " eingegeben."); } Frequenz.drehnippel(eingabe); if (Radio.Käfer == true) { System.out.println(Frequenz.getSender()); } } public static void Dienstwahl() throws IOException { clearScreen(); System.out.println("Das Konsolenradio(JVM-Edition)\n"); System.out.printf("Hallo %s, du hörst %s.\n\n", Hörer, Frequenz.getSender()); InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); System.out.printf("Folgende Dienste stehen ihnen zur Verfügung: %s", Dienst.getKatalog()); System.out.print("Stets zu diensten: "); String eingabe = br.readLine(); if (Radio.Käfer == true) { System.out.println("Du hast " + eingabe + " eingegeben."); } Dienst.pult(eingabe); if (Radio.Käfer == true) { System.out.println(Dienst.getDienst()); } } /** * Die Methode SystemInfo ermittelt den Benutzernamen des System und * schreibt ihn groß. */ public static void SystemInfo() { // Benutzername String Benutzer = System.getProperty("user.name"); char c = Benutzer.charAt(0); String s2 = Character.toString(Character.toUpperCase(c)); String s3 = Benutzer.substring(1); setHörer(s2 + s3); // Betriebssystem Auslesen setBetriebssystem(System.getProperty("os.name")); } /** * Die Methode clearScreen greift auf die Systemabhängige Konsolenbefehle * zurück */ public static void clearScreen() { SystemInfo(); String os = getBetriebssystem().toLowerCase(); if (os.indexOf("nix") >= 0 || os.indexOf("nux") >= 0 || os.indexOf("mac") >= 0 || os.indexOf("bsd") >= 0) { try { System.out.println("\u001b[H\u001b[2J"); Runtime.getRuntime().exec("clear"); } catch (IOException e) { // TODO Auto-generated catch block System.out .printf("Ein Unix-System (UNIX|LINUX|BSD|MAC-OS) wurde ermittel, ist aber wohl nicht richtig."); e.printStackTrace(); } } else if (os.indexOf("win") >= 0) { try { System.out.println("\u001b[H\u001b[2J"); Runtime.getRuntime().exec("cls"); } catch (IOException e) { // TODO Auto-generated catch block System.out .printf("Windows Betriebssystem wurde ermittel, ist aber wohl nicht richtig."); e.printStackTrace(); } } else { System.out.println("\u001b[H\u001b[2J"); System.out .println("Schreibe an konsolenradio@heinemann.ms damit dein Betriebssystem unterstützt wird."); } } /** * Hier folgen die Getter und Setter */ public static void setHörer(String hörer) { Hörer = hörer; } public static String getHörer() { return Hörer; } public static void setBetriebssystem(String betriebssystem) { Betriebssystem = betriebssystem; } public static String getBetriebssystem() { return Betriebssystem; } }