0
0
mirror of https://github.com/mpv-player/mpv.git synced 2024-09-20 03:52:22 +02:00
mpv/options/options.h
nanahi 807a6d875a options: add --native-touch option
For platforms which send emulated mouse inputs for touch-unaware clients,
such as Win32 and X11, this option enables the native multitouch handling
and disables emulated mouse inputs. This enables interested scripts to
handle multitouch events while keeping compatibility with touch-unaware
scripts.
2024-05-03 16:14:03 +02:00

423 lines
10 KiB
C

#ifndef MPLAYER_OPTIONS_H
#define MPLAYER_OPTIONS_H
#include <stdbool.h>
#include <stdint.h>
#include "m_option.h"
#include "common/common.h"
typedef struct mp_vo_opts {
struct m_obj_settings *video_driver_list;
bool taskbar_progress;
bool snap_window;
int drag_and_drop;
bool ontop;
int ontop_level;
bool fullscreen;
bool border;
bool title_bar;
bool all_workspaces;
bool window_minimized;
bool window_maximized;
int focus_on;
int screen_id;
char *screen_name;
int fsscreen_id;
char *fsscreen_name;
char *winname;
char *appid;
int content_type;
int x11_netwm;
int x11_bypass_compositor;
int x11_present;
bool x11_wid_title;
bool cursor_passthrough;
bool native_keyrepeat;
float panscan;
float zoom;
float pan_x, pan_y;
float align_x, align_y;
float scale_x, scale_y;
float margin_x[2];
float margin_y[2];
int unscaled;
struct m_geometry geometry;
struct m_geometry autofit;
struct m_geometry autofit_larger;
struct m_geometry autofit_smaller;
double window_scale;
bool auto_window_resize;
bool keepaspect;
bool keepaspect_window;
bool hidpi_window_scale;
bool native_fs;
bool native_touch;
bool show_in_taskbar;
int64_t WinID;
float force_monitor_aspect;
float monitor_pixel_aspect;
bool force_render;
bool force_window_position;
int backdrop_type;
int window_affinity;
char *mmcss_profile;
int window_corners;
double display_fps_override;
double timing_offset;
int video_sync;
struct m_geometry android_surface_size;
int swapchain_depth; // max number of images to render ahead
struct m_geometry video_crop;
} mp_vo_opts;
// Subtitle options needed by the subtitle decoders/renderers.
struct mp_subtitle_opts {
float sub_fps;
float sub_speed;
bool sub_forced_events_only;
bool stretch_dvd_subs;
bool stretch_image_subs;
bool image_subs_video_res;
bool sub_fix_timing;
bool sub_stretch_durations;
bool sub_scale_by_window;
bool sub_scale_with_window;
bool ass_scale_with_window;
struct osd_style_opts *sub_style;
float sub_scale;
float sub_gauss;
bool sub_gray;
bool ass_enabled;
float ass_line_spacing;
bool ass_use_margins;
bool sub_use_margins;
bool ass_vsfilter_aspect_compat;
int ass_vsfilter_color_compat;
bool ass_vsfilter_blur_compat;
bool sub_vsfilter_bidi_compat;
bool use_embedded_fonts;
char **ass_style_override_list;
char *ass_styles_file;
int ass_hinting;
int ass_shaper;
bool ass_justify;
bool sub_clear_on_seek;
int teletext_page;
bool sub_past_video_end;
char **sub_avopts;
};
// Options for both primary and secondary subs.
struct mp_subtitle_shared_opts {
float sub_delay[2];
float sub_pos[2];
bool sub_visibility[2];
int ass_style_override[2];
};
struct mp_sub_filter_opts {
bool sub_filter_SDH;
bool sub_filter_SDH_harder;
char *sub_filter_SDH_enclosures;
bool rf_enable;
bool rf_plain;
char **rf_items;
char **jsre_items;
bool rf_warn;
};
struct mp_osd_render_opts {
float osd_bar_align_x;
float osd_bar_align_y;
float osd_bar_w;
float osd_bar_h;
float osd_bar_border_size;
float osd_scale;
bool osd_scale_by_window;
struct osd_style_opts *osd_style;
bool force_rgba_osd;
};
typedef struct MPOpts {
bool property_print_help;
bool use_terminal;
char *dump_stats;
int verbose;
bool msg_really_quiet;
char **msg_levels;
bool msg_color;
bool msg_module;
bool msg_time;
char *log_file;
int operation_mode;
char **reset_options;
char **script_files;
char **script_opts;
bool js_memory_report;
bool lua_load_osc;
bool lua_load_ytdl;
char *lua_ytdl_format;
char **lua_ytdl_raw_options;
bool lua_load_stats;
bool lua_load_console;
int lua_load_auto_profiles;
bool auto_load_scripts;
bool audio_exclusive;
bool ao_null_fallback;
bool audio_stream_silence;
float audio_wait_open;
int force_vo;
float softvol_volume;
int rgain_mode;
float rgain_preamp; // Set replaygain pre-amplification
bool rgain_clip; // Enable/disable clipping prevention
float rgain_fallback;
int softvol_mute;
float softvol_max;
float softvol_gain;
float softvol_gain_min;
float softvol_gain_max;
int gapless_audio;
mp_vo_opts *vo;
struct ao_opts *ao_opts;
char *wintitle;
char *media_title;
struct mp_csp_equalizer_opts *video_equalizer;
int stop_screensaver;
int cursor_autohide_delay;
bool cursor_autohide_fs;
struct mp_subtitle_opts *subs_rend;
struct mp_subtitle_shared_opts *subs_shared;
struct mp_sub_filter_opts *subs_filt;
struct mp_osd_render_opts *osd_rend;
int osd_level;
int osd_duration;
bool osd_fractions;
int osd_on_seek;
bool video_osd;
bool untimed;
char *stream_dump;
bool stop_playback_on_init_failure;
int loop_times;
int loop_file;
bool shuffle;
bool ordered_chapters;
char *ordered_chapters_files;
int chapter_merge_threshold;
double chapter_seek_threshold;
char *chapter_file;
bool merge_files;
bool quiet;
bool load_config;
char *force_configdir;
bool use_filedir_conf;
int hls_bitrate;
int edition_id;
bool initial_audio_sync;
double sync_max_video_change;
double sync_max_audio_change;
int sync_max_factor;
int hr_seek;
float hr_seek_demuxer_offset;
bool hr_seek_framedrop;
float audio_delay;
float default_max_pts_correction;
int autosync;
int frame_dropping;
bool video_latency_hacks;
int term_osd;
bool term_osd_bar;
char *term_osd_bar_chars;
char *term_title;
char *playing_msg;
char *osd_playing_msg;
int osd_playing_msg_duration;
char *status_msg;
char *osd_status_msg;
char *osd_msg[3];
int player_idle_mode;
char **input_commands;
bool consolecontrols;
int playlist_pos;
struct m_rel_time play_start;
struct m_rel_time play_end;
struct m_rel_time play_length;
int play_dir;
bool rebase_start_time;
int play_frames;
double ab_loop[2];
int ab_loop_count;
double step_sec;
bool position_resume;
bool position_check_mtime;
bool position_save_on_quit;
bool write_filename_in_watch_later_config;
bool ignore_path_in_watch_later_config;
char *watch_later_dir;
char **watch_later_options;
bool pause;
int keep_open;
bool keep_open_pause;
double image_display_duration;
char *lavfi_complex;
int stream_id[2][STREAM_TYPE_COUNT];
char **stream_lang[STREAM_TYPE_COUNT];
bool stream_auto_sel;
int subs_with_matching_audio;
bool subs_match_os_language;
int subs_fallback;
int subs_fallback_forced;
int audio_display;
char **display_tags;
char **audio_files;
char *demuxer_name;
bool demuxer_thread;
double demux_termination_timeout;
bool demuxer_cache_wait;
bool prefetch_open;
char *audio_demuxer_name;
char *sub_demuxer_name;
bool cache_pause;
bool cache_pause_initial;
float cache_pause_wait;
struct image_writer_opts *screenshot_image_opts;
char *screenshot_template;
char *screenshot_dir;
bool screenshot_sw;
struct m_channels audio_output_channels;
int audio_output_format;
int force_srate;
double playback_speed;
bool pitch_correction;
struct m_obj_settings *vf_settings;
struct m_obj_settings *af_settings;
struct filter_opts *filter_opts;
struct dec_wrapper_opts *dec_wrapper;
char **sub_name;
char **sub_paths;
char **audiofile_paths;
char **coverart_files;
char **external_files;
bool autoload_files;
int sub_auto;
char **sub_auto_exts;
int audiofile_auto;
char **audiofile_auto_exts;
int coverart_auto;
char **coverart_auto_exts;
bool coverart_whitelist;
bool osd_bar_visible;
int w32_priority;
struct bluray_opts *stream_bluray_opts;
struct cdda_opts *stream_cdda_opts;
struct dvb_opts *stream_dvb_opts;
struct lavf_opts *stream_lavf_opts;
char *bluray_device;
struct demux_rawaudio_opts *demux_rawaudio;
struct demux_rawvideo_opts *demux_rawvideo;
struct demux_playlist_opts *demux_playlist;
struct demux_lavf_opts *demux_lavf;
struct demux_mkv_opts *demux_mkv;
struct demux_cue_opts *demux_cue;
struct demux_opts *demux_opts;
struct demux_cache_opts *demux_cache_opts;
struct stream_opts *stream_opts;
struct vd_lavc_params *vd_lavc_params;
struct ad_lavc_params *ad_lavc_params;
struct input_opts *input_opts;
// may be NULL if encoding is not compiled-in
struct encode_opts *encode_opts;
char *ipc_path;
char *ipc_client;
struct mp_resample_opts *resample_opts;
struct ra_ctx_opts *ra_ctx_opts;
struct gl_video_opts *gl_video_opts;
struct gl_next_opts *gl_next_opts;
struct angle_opts *angle_opts;
struct opengl_opts *opengl_opts;
struct vulkan_opts *vulkan_opts;
struct vulkan_display_opts *vulkan_display_opts;
struct spirv_opts *spirv_opts;
struct d3d11_opts *d3d11_opts;
struct d3d11va_opts *d3d11va_opts;
struct macos_opts *macos_opts;
struct drm_opts *drm_opts;
struct wayland_opts *wayland_opts;
struct wingl_opts *wingl_opts;
struct cuda_opts *cuda_opts;
struct dvd_opts *dvd_opts;
struct vaapi_opts *vaapi_opts;
struct sws_opts *sws_opts;
struct zimg_opts *zimg_opts;
int cuda_device;
} MPOpts;
struct cuda_opts {
int cuda_device;
};
struct dvd_opts {
int angle;
int speed;
char *device;
};
struct filter_opts {
int deinterlace;
int field_parity;
};
extern const struct m_sub_options vo_sub_opts;
extern const struct m_sub_options cuda_conf;
extern const struct m_sub_options dvd_conf;
extern const struct m_sub_options mp_subtitle_sub_opts;
extern const struct m_sub_options mp_subtitle_shared_sub_opts;
extern const struct m_sub_options mp_sub_filter_opts;
extern const struct m_sub_options mp_osd_render_sub_opts;
extern const struct m_sub_options filter_conf;
extern const struct m_sub_options resample_conf;
extern const struct m_sub_options stream_conf;
extern const struct m_sub_options dec_wrapper_conf;
extern const struct m_sub_options mp_opt_root;
#endif