Use event bus to activate and deactivate the FCP interface.
[Sone.git] / src / main / java / net / pterodactylus / sone / core / Preferences.java
index f44e977..1f28c69 100644 (file)
 
 package net.pterodactylus.sone.core;
 
+import net.pterodactylus.sone.core.event.InsertionDelayChangedEvent;
 import net.pterodactylus.sone.fcp.FcpInterface;
 import net.pterodactylus.sone.fcp.FcpInterface.FullAccessRequired;
+import net.pterodactylus.sone.fcp.event.FcpInterfaceActivatedEvent;
+import net.pterodactylus.sone.fcp.event.FcpInterfaceDeactivatedEvent;
+
+import com.google.common.eventbus.EventBus;
 
 /**
  * Convenience interface for external classes that want to access the core’s
@@ -28,16 +33,11 @@ import net.pterodactylus.sone.fcp.FcpInterface.FullAccessRequired;
  */
 public class Preferences {
 
-       /** The wrapped options. */
+       private final EventBus eventBus;
        private final Options options;
 
-       /**
-        * Creates a new preferences object wrapped around the given options.
-        *
-        * @param options
-        *            The options to wrap
-        */
-       public Preferences(Options options) {
+       public Preferences(EventBus eventBus, Options options) {
+               this.eventBus = eventBus;
                this.options = options;
        }
 
@@ -72,6 +72,7 @@ public class Preferences {
         */
        public Preferences setInsertionDelay(Integer insertionDelay) {
                options.getIntegerOption("InsertionDelay").set(insertionDelay);
+               eventBus.post(new InsertionDelayChangedEvent(getInsertionDelay()));
                return this;
        }
 
@@ -345,6 +346,11 @@ public class Preferences {
         */
        public Preferences setFcpInterfaceActive(boolean fcpInterfaceActive) {
                options.getBooleanOption("ActivateFcpInterface").set(fcpInterfaceActive);
+               if (fcpInterfaceActive) {
+                       eventBus.post(new FcpInterfaceActivatedEvent());
+               } else {
+                       eventBus.post(new FcpInterfaceDeactivatedEvent());
+               }
                return this;
        }
 
@@ -372,4 +378,4 @@ public class Preferences {
                return this;
        }
 
-}
\ No newline at end of file
+}