Add movie action class
[cinaest] / src / plugin-interface.vala
index 70c73d5..27ebcd3 100644 (file)
@@ -20,6 +20,7 @@ public abstract class Plugin : Object {
        public abstract void hello (Gtk.Window window, Osso.Context context);
 
        public abstract unowned List<MovieSource> get_sources ();
+       public abstract List<MovieAction> get_actions (Movie movie);
 
        public abstract void settings_dialog (Gtk.Window window);
 
@@ -38,3 +39,20 @@ public abstract class MovieSource : Object {
        public abstract unowned string get_description ();
 }
 
+public class MovieAction : Object {
+       public delegate void MovieActionFunc (Movie movie);
+
+       public string name;
+       private MovieActionFunc action;
+       private Movie movie;
+
+       public MovieAction (string _name, MovieActionFunc _action, Movie _movie) {
+               name = _name;
+               action = _action;
+               movie = _movie;
+       }
+
+       public void execute () {
+               action (movie);
+       }
+}