X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fplugin-interface.vala;h=0252e9ab80d501ac040e5cdd7dec44cafb62ca28;hb=33f6039f8039e33ca55b3fc542ddaa512f3b9e06;hp=924ea63a4d4eb9cfb0e717182bb28a32829211eb;hpb=538038c103ddc361cdd48d279eeac7c73e871707;p=cinaest diff --git a/src/plugin-interface.vala b/src/plugin-interface.vala index 924ea63..0252e9a 100644 --- a/src/plugin-interface.vala +++ b/src/plugin-interface.vala @@ -17,10 +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 delegate void ReceiveMovieFunction (Movie movie); + 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 abstract bool active { get; set construct; } + + public delegate void ReceiveMovieFunction (SList movie); + + public abstract async int get_movies (MovieFilter filter, ReceiveMovieFunction callback, int limit, GLib.Cancellable? cancellable); - public abstract void get_movies (string filter, ReceiveMovieFunction callback, int limit); 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); + } }