mirror of
https://github.com/brunoherbelin/vimix.git
synced 2025-12-14 11:49:59 +01:00
DRAFT implementation of a new toolbox to apply fade-in and fade-out and to cut the timeline.
269 lines
10 KiB
C
269 lines
10 KiB
C
#ifndef VMIX_DEFINES_H
|
|
#define VMIX_DEFINES_H
|
|
|
|
#define APP_NAME "vimix"
|
|
#define APP_TITLE "Video Live Mixer"
|
|
#define APP_SETTINGS "vimix.xml"
|
|
#define XML_VERSION_MAJOR 0
|
|
#define XML_VERSION_MINOR 4
|
|
#define MAX_RECENT_HISTORY 20
|
|
#define MAX_SESSION_LEVEL 3
|
|
#define MAX_OUTPUT_WINDOW 3
|
|
|
|
#define VIMIX_GL_VERSION "opengl3"
|
|
#define VIMIX_GLSL_VERSION "#version 150"
|
|
|
|
#define VIMIX_FILE_TYPE "vimix session (MIX)"
|
|
#define VIMIX_FILE_EXT "mix"
|
|
#define VIMIX_FILE_PATTERN \
|
|
{ \
|
|
"*.mix" \
|
|
}
|
|
#define VIMIX_PLAYLIST_FILE_TYPE "vimix playlist (LIX)"
|
|
#define VIMIX_PLAYLIST_FILE_EXT "lix"
|
|
#define VIMIX_PLAYLIST_FILE_PATTERN \
|
|
{ \
|
|
"*.lix" \
|
|
}
|
|
#define MEDIA_FILES_TYPE "Supported formats (videos, images, sessions)"
|
|
#define MEDIA_FILES_PATTERN \
|
|
{ \
|
|
"*.mix", "*.mp4", "*.mpg", "*.mpeg", "*.m2v", "*.m4v", "*.avi", "*.mov", "*.mkv", \
|
|
"*.webm", "*.mod", "*.wmv", "*.mxf", "*.ogg", "*.flv", "*.hevc", "*.asf", "*.jpg", \
|
|
"*.png", "*.gif", "*.tif", "*.tiff", "*.webp", "*.bmp", "*.ppm", "*.svg" \
|
|
}
|
|
#define IMAGES_FILES_TYPE "Image (JPG, PNG, BMP, PPM, GIF)"
|
|
#define IMAGES_FILES_PATTERN \
|
|
{ \
|
|
"*.jpg", "*.png", "*.bmp", "*.ppm", "*.gif" \
|
|
}
|
|
#define SUBTITLE_FILES_TYPE "Subtitle (SRT, SUB)"
|
|
#define SUBTITLE_FILES_PATTERN \
|
|
{ \
|
|
"*.srt", "*.sub" \
|
|
}
|
|
#define SETTINGS_FILE_TYPE "vimix settings (XML)"
|
|
#define SETTINGS_FILE_EXT "xml"
|
|
#define SETTINGS_FILE_PATTERN \
|
|
{ \
|
|
"*.xml" \
|
|
}
|
|
#define MINI(a, b) (((a) < (b)) ? (a) : (b))
|
|
#define MAXI(a, b) (((a) > (b)) ? (a) : (b))
|
|
#define ABS(a) (((a) < 0) ? -(a) : (a))
|
|
#define ABS_DIFF(a, b) ( (a) < (b) ? (b - a) : (a - b) )
|
|
#define SIGN(a) (((a) < 0) ? -1.0 : 1.0)
|
|
#define SQUARE(a) ((a) * (a))
|
|
#define CLAMP(x, low, high) (((x) > (high)) ? (high) : (((x) < (low)) ? (low) : (x)))
|
|
#define EPSILON 0.00001
|
|
#define LOG100(val) (50.0/log(10.0)*log((float)val + 1.0))
|
|
#define EXP100(val) (exp(log(10.0)/50.0*(float)(val))-1.0)
|
|
#define EUCLIDEAN(P1, P2) sqrt((P1.x() - P2.x()) * (P1.x() - P2.x()) + (P1.y() - P2.y()) * (P1.y() - P2.y()))
|
|
#define ROUND(val, factor) float( int( val * factor ) ) / factor;
|
|
|
|
#define SCENE_UNIT 5.f
|
|
#define MIN_SCALE 0.01f
|
|
#define MAX_SCALE 10.f
|
|
#define CLAMP_SCALE(x) SIGN(x) * CLAMP( ABS(x), MIN_SCALE, MAX_SCALE)
|
|
#define SCENE_DEPTH 14.f
|
|
#define MIN_DEPTH 0.f
|
|
#define MAX_DEPTH 12.f
|
|
#define DELTA_DEPTH 0.05f
|
|
#define DELTA_ALPHA 0.0005f
|
|
#define MIXING_DEFAULT_SCALE 2.4f
|
|
#define MIXING_MIN_SCALE 0.8f
|
|
#define MIXING_MAX_SCALE 7.0f
|
|
#define MIXING_MIN_THRESHOLD 1.3f
|
|
#define MIXING_MAX_THRESHOLD 1.9f
|
|
#define MIXING_ICON_SCALE 0.15f, 0.15f, 1.f
|
|
#define GEOMETRY_DEFAULT_SCALE 1.4f
|
|
#define GEOMETRY_MIN_SCALE 0.4f
|
|
#define GEOMETRY_MAX_SCALE 7.0f
|
|
#define LAYER_DEFAULT_SCALE 0.6f
|
|
#define LAYER_MIN_SCALE 0.25f
|
|
#define LAYER_MAX_SCALE 1.7f
|
|
#define LAYER_PERSPECTIVE 2.0f
|
|
#define LAYER_BACKGROUND 2.f
|
|
#define LAYER_FOREGROUND 10.f
|
|
#define LAYER_STEP 0.25f
|
|
#define APPEARANCE_DEFAULT_SCALE 2.f
|
|
#define APPEARANCE_MIN_SCALE 0.4f
|
|
#define APPEARANCE_MAX_SCALE 7.0f
|
|
#define BRUSH_MIN_SIZE 0.05f
|
|
#define BRUSH_MAX_SIZE 2.f
|
|
#define BRUSH_MIN_PRESS 0.005f
|
|
#define BRUSH_MAX_PRESS 1.f
|
|
#define SHAPE_MIN_BLUR 0.f
|
|
#define SHAPE_MAX_BLUR 1.f
|
|
#define TRANSITION_DEFAULT_SCALE 5.0f
|
|
#define TRANSITION_MIN_DURATION 0.2f
|
|
#define TRANSITION_MAX_DURATION 10.f
|
|
#define DISPLAYS_UNIT 0.001f
|
|
#define DISPLAYS_DEFAULT_SCALE 1.4f
|
|
#define DISPLAYS_MIN_SCALE 0.4f
|
|
#define DISPLAYS_MAX_SCALE 7.0f
|
|
#define ARROWS_MOVEMENT_FACTOR 0.1f
|
|
#define SESSION_THUMBNAIL_HEIGHT 120.f
|
|
#define RECORD_MAX_TIMEOUT 1200000
|
|
|
|
#define IMGUI_TITLE_LOGS ICON_FA_LIST_UL " Logs"
|
|
#define IMGUI_LABEL_RECENT_FILES " Recent files"
|
|
#define IMGUI_LABEL_RECENT_RECORDS " Recent recordings"
|
|
#define IMGUI_RIGHT_ALIGN -3.8f * ImGui::GetTextLineHeightWithSpacing()
|
|
#define IMGUI_SAME_LINE 8
|
|
#define IMGUI_TOP_ALIGN 10
|
|
#define IMGUI_COLOR_OVERLAY IM_COL32(5, 5, 5, 150)
|
|
#define IMGUI_COLOR_LIGHT_OVERLAY IM_COL32(5, 5, 5, 50)
|
|
#define IMGUI_COLOR_CAPTURE 1.0, 0.55, 0.05
|
|
#define IMGUI_COLOR_RECORD 1.0, 0.05, 0.05
|
|
#define IMGUI_COLOR_STREAM 0.1, 0.9, 1.0
|
|
#define IMGUI_COLOR_BROADCAST 1.0, 0.9, 0.3
|
|
#define IMGUI_NOTIFICATION_DURATION 2.5f
|
|
#define IMGUI_TOOLTIP_TIMEOUT 80
|
|
#define IMGUI_COLOR_FAILED 1.0, 0.3, 0.2
|
|
|
|
#define COLOR_BGROUND 0.2f, 0.2f, 0.2f
|
|
#define COLOR_NAVIGATOR 0.1f, 0.1f, 0.1f
|
|
#define COLOR_DEFAULT_SOURCE 0.7f, 0.7f, 0.7f
|
|
#define COLOR_HIGHLIGHT_SOURCE 1.f, 1.f, 1.f
|
|
#define COLOR_TRANSITION_SOURCE 1.f, 0.5f, 1.f
|
|
#define COLOR_TRANSITION_LINES 0.9f, 0.9f, 0.9f
|
|
#define COLOR_APPEARANCE_SOURCE 0.9f, 0.9f, 0.1f
|
|
#define COLOR_APPEARANCE_LIGHT 1.0f, 1.0f, 0.9f
|
|
#define COLOR_APPEARANCE_MASK 0.9f, 0.9f, 0.9f
|
|
#define COLOR_APPEARANCE_MASK_DISABLE 0.6f, 0.6f, 0.6f
|
|
#define COLOR_FRAME 0.75f, 0.2f, 0.75f
|
|
#define COLOR_FRAME_LIGHT 0.9f, 0.6f, 0.9f
|
|
#define COLOR_CIRCLE 0.75f, 0.2f, 0.75f
|
|
#define COLOR_CIRCLE_OVER 0.75f, 0.5f, 0.75f
|
|
#define COLOR_CIRCLE_ARROW 0.78f, 0.8f, 0.8f
|
|
#define COLOR_MIXING_GROUP 0.f, 0.95f, 0.2f
|
|
#define COLOR_LIMBO_CIRCLE 0.173f, 0.173f, 0.173f
|
|
#define COLOR_SLIDER_CIRCLE 0.11f, 0.11f, 0.11f
|
|
#define COLOR_STASH_CIRCLE 0.06f, 0.06f, 0.06f
|
|
#define COLOR_MONITOR 0.90f, 0.90f, 0.90f
|
|
#define COLOR_WINDOW 0.2f, 0.85f, 0.85f
|
|
#define COLOR_MENU_HOVERED 0.3f, 0.3f, 0.3f
|
|
|
|
#define OSC_PORT_RECV_DEFAULT 7000
|
|
#define OSC_PORT_SEND_DEFAULT 7001
|
|
#define OSC_CONFIG_FILE "osc.xml"
|
|
|
|
#define IMGUI_TITLE_MEDIAPLAYER ICON_FA_PLAY_CIRCLE " Player"
|
|
#define IMGUI_TITLE_TIMER ICON_FA_CLOCK " Timer"
|
|
#define IMGUI_TITLE_INPUT_MAPPING ICON_FA_HAND_PAPER " Input Mapping"
|
|
#define IMGUI_TITLE_HELP ICON_FA_LIFE_RING " Help"
|
|
#define IMGUI_TITLE_TOOLBOX ICON_FA_HAMSA " Guru Toolbox"
|
|
#define IMGUI_TITLE_SHADEREDITOR ICON_FA_CODE " Shader Editor"
|
|
#define IMGUI_TITLE_PREVIEW ICON_FA_DESKTOP " Display"
|
|
|
|
#ifdef APPLE
|
|
#define CTRL_MOD "Cmd+"
|
|
#define ALT_MOD "option"
|
|
#define ALT_LOCK " OPT LOCK"
|
|
#else
|
|
#define CTRL_MOD "Ctrl+"
|
|
#define ALT_MOD "Alt"
|
|
#define ALT_LOCK " ALT LOCK"
|
|
#endif
|
|
|
|
#define MENU_NEW_FILE ICON_FA_FILE "+ New"
|
|
#define SHORTCUT_NEW_FILE CTRL_MOD "W"
|
|
#define MENU_OPEN_FILE ICON_FA_FILE_UPLOAD " Open"
|
|
#define SHORTCUT_OPEN_FILE CTRL_MOD "O"
|
|
#define MENU_REOPEN_FILE ICON_FA_FILE_UPLOAD " Re-open"
|
|
#define SHORTCUT_REOPEN_FILE CTRL_MOD "Shift+O"
|
|
#define MENU_SAVE_FILE ICON_FA_FILE_DOWNLOAD " Save"
|
|
#define SHORTCUT_SAVE_FILE CTRL_MOD "S"
|
|
#define MENU_SAVEAS_FILE ICON_FA_FILE_DOWNLOAD " Save as"
|
|
#define MENU_SAVE_ON_EXIT ICON_FA_LEVEL_DOWN_ALT " Save on exit"
|
|
#define MENU_OPEN_ON_START ICON_FA_LEVEL_UP_ALT " Restore on start"
|
|
#define SHORTCUT_SAVEAS_FILE CTRL_MOD "Shift+S"
|
|
#define MENU_EXPORT_SETTINGS ICON_FA_FILE_EXCEL " Export settings"
|
|
#define MENU_QUIT ICON_FA_POWER_OFF " Quit"
|
|
#define SHORTCUT_QUIT CTRL_MOD "Q"
|
|
#define MENU_CUT ICON_FA_CUT " Cut"
|
|
#define SHORTCUT_CUT CTRL_MOD "X"
|
|
#define MENU_COPY ICON_FA_COPY " Copy"
|
|
#define SHORTCUT_COPY CTRL_MOD "C"
|
|
#define MENU_DELETE ICON_FA_ERASER " Delete"
|
|
#define SHORTCUT_DELETE "Del"
|
|
#define ACTION_DELETE ICON_FA_BACKSPACE " Delete"
|
|
#define MENU_PASTE ICON_FA_PASTE " Paste"
|
|
#define SHORTCUT_PASTE CTRL_MOD "V"
|
|
#define MENU_SELECTALL ICON_FA_TH_LIST " Select all"
|
|
#define SHORTCUT_SELECTALL CTRL_MOD "A"
|
|
#define MENU_UNDO ICON_FA_UNDO " Undo"
|
|
#define SHORTCUT_UNDO CTRL_MOD "Z"
|
|
#define MENU_REDO ICON_FA_REDO " Redo"
|
|
#define SHORTCUT_REDO CTRL_MOD "Shift+Z"
|
|
#define MENU_RECORD ICON_FA_CIRCLE " Record"
|
|
#define SHORTCUT_RECORD CTRL_MOD "R"
|
|
#define MENU_RECORDCONT ICON_FA_STOP_CIRCLE " Save & continue"
|
|
#define SHORTCUT_RECORDCONT CTRL_MOD "Shift+R"
|
|
#define MENU_RECORDPAUSE ICON_FA_PAUSE_CIRCLE " Pause Record"
|
|
#define SHORTCUT_RECORDPAUSE CTRL_MOD "Space"
|
|
#define MENU_CAPTUREFRAME ICON_FA_CAMERA_RETRO " Capture frame"
|
|
#define SHORTCUT_CAPTURE_DISPLAY "F11"
|
|
#define SHORTCUT_CAPTURE_PLAYER "F10"
|
|
#define MENU_CAPTUREGUI ICON_FA_CAMERA " Screenshot vimix"
|
|
#define SHORTCUT_CAPTURE_GUI "F9"
|
|
#define MENU_OUTPUTDISABLE ICON_FA_EYE_SLASH " Disable"
|
|
#define SHORTCUT_OUTPUTDISABLE "F12"
|
|
#define ICON_PREVIEW 4, 15
|
|
#define MENU_PREVIEW "Preview"
|
|
#define SHORTCUT_PREVIEW_OUT "F6"
|
|
#define SHORTCUT_PREVIEW_SRC "F7"
|
|
#define MENU_CLOSE ICON_FA_TIMES " Close"
|
|
#define DIALOG_FAILED_SOURCE ICON_FA_EXCLAMATION_TRIANGLE " Source failure"
|
|
|
|
#define MENU_METRICS ICON_FA_TACHOMETER_ALT " Metrics"
|
|
#define MENU_SOURCE_TOOL ICON_FA_WRENCH " Source toolbar"
|
|
#define MENU_HELP ICON_FA_LIFE_RING " Help"
|
|
#define SHORTCUT_HELP CTRL_MOD "H"
|
|
#define MENU_LOGS ICON_FA_LIST_UL " Logs"
|
|
#define SHORTCUT_LOGS CTRL_MOD "L"
|
|
#define MENU_PLAYER ICON_FA_PLAY_CIRCLE " Player "
|
|
#define TOOLTIP_PLAYER "Player "
|
|
#define SHORTCUT_PLAYER CTRL_MOD "P"
|
|
#define MENU_OUTPUT ICON_FA_DESKTOP " Display "
|
|
#define TOOLTIP_OUTPUT "Display "
|
|
#define SHORTCUT_OUTPUT CTRL_MOD "D"
|
|
#define MENU_TIMER ICON_FA_CLOCK " Timer "
|
|
#define TOOLTIP_TIMER "Timer "
|
|
#define SHORTCUT_TIMER CTRL_MOD "T"
|
|
#define MENU_INPUTS ICON_FA_HAND_PAPER " Input mapping "
|
|
#define TOOLTIP_INPUTS "Inputs mapping "
|
|
#define SHORTCUT_INPUTS CTRL_MOD "I"
|
|
#define MENU_SHADEREDITOR ICON_FA_CODE " Shader Editor "
|
|
#define TOOLTIP_SHADEREDITOR "Shader Editor "
|
|
#define SHORTCUT_SHADEREDITOR CTRL_MOD "E"
|
|
#define TOOLTIP_FULLSCREEN "Fullscreen "
|
|
#define SHORTCUT_FULLSCREEN CTRL_MOD "F"
|
|
#define TOOLTIP_MAIN "Home panel "
|
|
#define SHORTCUT_MAIN "HOME"
|
|
#define TOOLTIP_NEW_SOURCE "Insert "
|
|
#define SHORTCUT_NEW_SOURCE "INS"
|
|
#define TOOLTIP_SNAP_CURSOR "Snap cursor "
|
|
#define TOOLTIP_HIDE "Hide windows "
|
|
#define TOOLTIP_SHOW "Show windows "
|
|
#define SHORTCUT_HIDE "ESC"
|
|
#define TOOLTIP_PANEL_VISIBLE "Panel always visible "
|
|
#define TOOLTIP_PANEL_AUTO "Panel auto hide "
|
|
#define SHORTCUT_PANEL_MODE "HOME"
|
|
#define MENU_PLAY_PAUSE ICON_FA_PLAY " Play | Pause"
|
|
#define SHORTCUT_PLAY_PAUSE "Space"
|
|
#define MENU_PLAY_BEGIN ICON_FA_FAST_BACKWARD " Go to Beginning"
|
|
#define SHORTCUT_PLAY_BEGIN CTRL_MOD "B"
|
|
|
|
#define LABEL_AUTO_MEDIA_PLAYER ICON_FA_USER_CIRCLE " User selection"
|
|
#define LABEL_STORE_SELECTION " Create batch"
|
|
#define LABEL_EDIT_FADING ICON_FA_RANDOM " Edit timeline fading"
|
|
#define LABEL_EDIT_GAPS ICON_FA_CUT " Cut timeline"
|
|
#define LABEL_VIDEO_SEQUENCE " Encode an image sequence"
|
|
#define LABEL_ADD_TIMELINE "Add timeline"
|
|
#define DIALOG_TIMELINE_DURATION ICON_FA_HOURGLASS_HALF " Set timeline duration"
|
|
#define DIALOG_GST_EFFECT "Gstreamer Video effect"
|
|
|
|
#endif // VMIX_DEFINES_H
|