X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fplugin-interface.vala;h=d1f538daeb3cbd5a2888f62312ad142f21ba0997;hb=b9f1a55da2b9549e2454557bdd51844a79712f97;hp=df453b035d897727b9ad50bc762f980123576871;hpb=9ead139fb1c196dc8082be6968f21a6749de883f;p=cinaest diff --git a/src/plugin-interface.vala b/src/plugin-interface.vala index df453b0..d1f538d 100644 --- a/src/plugin-interface.vala +++ b/src/plugin-interface.vala @@ -17,24 +17,56 @@ */ 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, + NOEMPTY = 8, +} + 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); + 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); + } +}