X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fplugin-interface.vala;h=0252e9ab80d501ac040e5cdd7dec44cafb62ca28;hb=a0bcf1e4d6b7f4cbba2cd7d16be74c5499194f01;hp=2d14e4a2105b1dfc82f6ef4eb8a708ed2a568ec4;hpb=2165dbf7c595f7a813232b563dd7adb11524add9;p=cinaest diff --git a/src/plugin-interface.vala b/src/plugin-interface.vala index 2d14e4a..0252e9a 100644 --- a/src/plugin-interface.vala +++ b/src/plugin-interface.vala @@ -17,24 +17,55 @@ */ public abstract class Plugin : Object { - public abstract void hello (Gtk.Window window); + public abstract void hello (Gtk.Window window, Osso.Context context); public abstract unowned List get_sources (); + public abstract List 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, + RATING = 4, +} + public abstract class MovieSource : Object { - public delegate void ReceiveMovieFunction (Movie movie); + public abstract bool active { get; set construct; } - public abstract void get_movies (MovieFilter filter, ReceiveMovieFunction callback, int limit, GLib.Cancellable? cancellable); + public delegate void ReceiveMovieFunction (SList movie); + + 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 SourceFlags get_flags (); } +public class MovieAction : Object { + 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, Gtk.Window _window) { + name = _name; + action = _action; + movie = _movie; + window = _window; + } + + public void execute () { + action (movie, window); + } +}