X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.0%2Fcinelerra%2Fpluginfclient.h;fp=cinelerra-5.0%2Fcinelerra%2Fpluginfclient.h;h=0000000000000000000000000000000000000000;hb=30bdb85eb33a8ee7ba675038a86c6be59c43d7bd;hp=781e2523a2e69327b9d1f1dd0cec723960b20659;hpb=52fcc46226f9df46f9ce9d0566dc568455a7db0b;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.0/cinelerra/pluginfclient.h b/cinelerra-5.0/cinelerra/pluginfclient.h deleted file mode 100644 index 781e2523..00000000 --- a/cinelerra-5.0/cinelerra/pluginfclient.h +++ /dev/null @@ -1,285 +0,0 @@ -#ifndef __PLUGINFCLIENT_H__ -#define __PLUGINFCLIENT_H__ - -#include "arraylist.h" -#include "bclistbox.h" -#include "bclistboxitem.h" -#include "bcbutton.h" -#include "bcpopupmenu.h" -#include "bcmenuitem.h" -#include "bctextbox.h" -#include "ffmpeg.h" -#include "pluginclient.h" -#include "pluginaclient.h" -#include "pluginvclient.h" -#include "pluginserver.h" -#include "pluginfclient.inc" -#include "preferences.inc" - -extern "C" { -#include "libavfilter/buffersrc.h" -#include "libavfilter/buffersink.h" -#include "libavformat/avformat.h" -#include "libavformat/avio.h" -#include "libavcodec/avcodec.h" -#include "libavfilter/avfilter.h" -#include "libavutil/avutil.h" -#include "libavutil/opt.h" -#include "libavutil/pixdesc.h" -#include "libswresample/swresample.h" -#include "libswscale/swscale.h" -} - -class PluginFClient_OptName : public BC_ListBoxItem { -public: - PluginFClient_Opt *opt; - - PluginFClient_OptName(PluginFClient_Opt *opt); -}; - -class PluginFClient_OptValue : public BC_ListBoxItem { -public: - PluginFClient_Opt *opt; - - void update(); - PluginFClient_OptValue(PluginFClient_Opt *opt); -}; - -class PluginFClient_Opt { -public: - PluginFClientConfig *conf; - const AVOption *opt; - PluginFClient_OptName *item_name; - PluginFClient_OptValue *item_value; - - char *get(char *vp, int sz=-1); - void set(const char *val); - int types(char *rp); - int scalar(double d, char *rp); - int ranges(char *rp); - int units(ArrayList &opts); - int units(char *rp); - const char *tip(); - void *filter_config(); - const AVClass *filter_class(); - - PluginFClient_Opt(PluginFClientConfig *conf, const AVOption *opt); - ~PluginFClient_Opt(); -}; - -class PluginFFilter { - PluginFFilter(PluginFFilter &that) {} //disable assign/copy -public: - AVFilter *filter; - AVFilterGraph *graph; - AVFilterContext *fctx; - - void *filter_config() { return fctx->priv; } - const AVClass *filter_class() { return filter->priv_class; } - const char *description() { return filter->description; } - - int init(const char *name, PluginFClientConfig *conf); - void uninit(); - static PluginFFilter *new_ffilter(const char *name, PluginFClientConfig *conf=0); - - PluginClient* new_plugin(PluginServer*); - const char *filter_name() { return filter->name; } - bool is_audio(); - bool is_video(); - - PluginFFilter(); - ~PluginFFilter(); -}; - -class PluginFClientConfig : public ArrayList -{ -public: - PluginFFilter *ffilt; - void *filter_config() { return ffilt->filter_config(); } - const AVClass *filter_class() { return ffilt->filter_class(); } - - void copy_from(PluginFClientConfig &that); - int equivalent(PluginFClientConfig &that); - void interpolate(PluginFClientConfig &prev, PluginFClientConfig &next, - int64_t prev_frame, int64_t next_frame, int64_t current_frame); - void initialize(const char *name); - int update(); - void dump(FILE *fp=stdout); - - PluginFClientConfig(); - ~PluginFClientConfig(); -}; - - -class PluginFClient_OptPanel : public BC_ListBox { -public: - PluginFClient_OptPanel(PluginFClientWindow *fwin, int x, int y, int w, int h); - ~PluginFClient_OptPanel(); - void create_objects(); - int cursor_leave_event(); - - PluginFClientWindow *fwin; - ArrayList items[2]; - ArrayList &opts; - ArrayList &vals; - - int selection_changed(); - int update(); -}; - -class PluginFClientReset : public BC_GenericButton { -public: - PluginFClientWindow *fwin; - - PluginFClientReset(PluginFClientWindow *fwin, int x, int y); - ~PluginFClientReset(); - int handle_event(); -}; - -class PluginFClientUnits : public BC_PopupMenu { -public: - PluginFClientWindow *fwin; - - PluginFClientUnits(PluginFClientWindow *fwin, int x, int y, int w); - ~PluginFClientUnits(); - int handle_event(); -}; - -class PluginFClientText : public BC_TextBox { -public: - PluginFClientWindow *fwin; - - PluginFClientText(PluginFClientWindow *fwin, int x, int y, int w); - ~PluginFClientText(); - int handle_event(); -}; - -class PluginFClientApply : public BC_GenericButton { -public: - PluginFClientWindow *fwin; - - PluginFClientApply(PluginFClientWindow *fwin, int x, int y); - ~PluginFClientApply(); - int handle_event(); -}; - -class PluginFClientWindow : public PluginClientWindow -{ -public: - PluginFClientWindow(PluginFClient *ffmpeg); - ~PluginFClientWindow(); - - void create_objects(); - void update(PluginFClient_Opt *oip); - void draw(); - int resize_event(int w, int h); - - PluginFClient *ffmpeg; - PluginFClient_OptPanel *panel; - int panel_x, panel_y, panel_w, panel_h; - BC_Title *type, *range; - PluginFClient_Opt *selected; - - PluginFClientReset *reset; - PluginFClientUnits *units; - PluginFClientText *text; - PluginFClientApply *apply; -}; - -class PluginFLogLevel { - int level; -public: - PluginFLogLevel(int lvl) { - level = av_log_get_level(); - if( level > lvl ) av_log_set_level(lvl); - } - ~PluginFLogLevel() { av_log_set_level(level); } -}; - -class PluginFClient { -public: - const char *name; - PluginClient *plugin; - PluginFFilter *ffilt; - AVFilterContext *fsrc, *fsink; - int64_t plugin_position, filter_position; - int activated; - char title[BCSTRLEN]; - - PluginFClient(PluginClient *plugin, const char *name); - ~PluginFClient(); - static bool is_audio(AVFilter *fp); - static bool is_video(AVFilter *fp); - - int64_t get_source_position() { - return plugin->get_source_position(); - } - KeyFrame* get_prev_keyframe(int64_t position, int is_local=1) { - return plugin->get_prev_keyframe(position, is_local); - } - KeyFrame* get_next_keyframe(int64_t position, int is_local=1) { - return plugin->get_next_keyframe(position, is_local); - } - int64_t edl_to_local(int64_t position) { - return plugin->edl_to_local(position); - } - - void update_gui(); - char *to_upper(char *bp, const char *sp); - void save_data(KeyFrame *keyframe); - void read_data(KeyFrame *keyframe); - void render_gui(void *data, int size); - int activate(); - void reactivate(); - - PluginFClientConfig curr_config, av_config; - PLUGIN_CLASS_MEMBERS(PluginFClientConfig) -}; - -class PluginFAClient : public PluginAClient, public PluginFClient -{ -public: - PluginFAClient(PluginServer *server, const char *name); - ~PluginFAClient(); - const char *plugin_title() { return PluginFClient::plugin_title(); } - PluginClientWindow *new_window() { return PluginFClient::new_window(); } - int activate(); - - int load_configuration() { return PluginFClient::load_configuration(); } - void save_data(KeyFrame *keyframe) { PluginFClient::save_data(keyframe); } - void read_data(KeyFrame *keyframe) { PluginFClient::read_data(keyframe); } - void update_gui() { PluginFClient::update_gui(); } - void render_gui(void *data, int size) { PluginFClient::render_gui(data, size); } - - int is_realtime() { return 1; } - int is_multichannel() { return 1; } - int uses_gui() { return 1; } - int is_synthesis() { return 1; } - int get_inchannels(); - int get_outchannels(); - int process_buffer(int64_t size, Samples **buffer, int64_t start_position, int sample_rate); -}; - -class PluginFVClient : public PluginVClient, public PluginFClient, public FFVideoConvert -{ -public: - PluginFVClient(PluginServer *server, const char *name); - ~PluginFVClient(); - const char *plugin_title() { return PluginFClient::plugin_title(); } - PluginClientWindow *new_window() { return PluginFClient::new_window(); } - int activate(int width, int height, int color_model); - - int load_configuration() { return PluginFClient::load_configuration(); } - void save_data(KeyFrame *keyframe) { PluginFClient::save_data(keyframe); } - void read_data(KeyFrame *keyframe) { PluginFClient::read_data(keyframe); } - void update_gui() { PluginFClient::update_gui(); } - void render_gui(void *data, int size) { PluginFClient::render_gui(data, size); } - - int is_realtime() { return 1; } - int is_multichannel() { return 1; } - int uses_gui() { return 1; } - int is_synthesis() { return 1; } - int process_buffer(VFrame **frames, int64_t start_position, double frame_rate); -}; - -#endif