Plugins: replace get_editable with get_flags, add support more MovieSource flags
[cinaest] / src / plugin-interface.vala
index bdf1bbc..c1012ff 100644 (file)
@@ -20,41 +20,51 @@ 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 List<MovieAction> get_actions (Movie movie, Gtk.Window window);
 
        public abstract void settings_dialog (Gtk.Window window);
 
        public abstract unowned string get_name ();
 }
 
+public enum SourceFlags {
+       EDITABLE = 1,
+       ONLINE = 2,
+}
+
 public abstract class MovieSource : Object {
+       public abstract bool active { get; set construct; }
+
        public delegate void ReceiveMovieFunction (Movie movie);
 
-       public abstract async void get_movies (MovieFilter filter, ReceiveMovieFunction callback, int limit, GLib.Cancellable? cancellable);
+       public abstract async int get_movies (MovieFilter filter, ReceiveMovieFunction callback, int limit, GLib.Cancellable? cancellable);
 
        public abstract void add_movie (Movie movie);
+       public abstract void delete_movie (Movie movie);
 
        public abstract unowned string get_name ();
 
        public abstract unowned string get_description ();
 
-       public abstract bool get_editable ();
+       public abstract SourceFlags get_flags ();
 }
 
 public class MovieAction : Object {
-       public delegate void MovieActionFunc (Movie movie);
+       public delegate void MovieActionFunc (Movie movie, Gtk.Window window);
 
        public string name;
        private MovieActionFunc action;
        private Movie movie;
+       private Gtk.Window window;
 
-       public MovieAction (string _name, MovieActionFunc _action, Movie _movie) {
+       public MovieAction (string _name, MovieActionFunc _action, Movie _movie, Gtk.Window _window) {
                name = _name;
                action = _action;
                movie = _movie;
+               window = _window;
        }
 
        public void execute () {
-               action (movie);
+               action (movie, window);
        }
 }