1 /** 2 * @file 3 * @brief Header file for TextReader class 4 * @author Jonathan Thomas <jonathan@openshot.org> 5 * 6 * @ref License 7 */ 8 9 /* LICENSE 10 * 11 * Copyright (c) 2008-2019 OpenShot Studios, LLC 12 * <http://www.openshotstudios.com/>. This file is part of 13 * OpenShot Library (libopenshot), an open-source project dedicated to 14 * delivering high quality video editing and animation solutions to the 15 * world. For more information visit <http://www.openshot.org/>. 16 * 17 * OpenShot Library (libopenshot) is free software: you can redistribute it 18 * and/or modify it under the terms of the GNU Lesser General Public License 19 * as published by the Free Software Foundation, either version 3 of the 20 * License, or (at your option) any later version. 21 * 22 * OpenShot Library (libopenshot) is distributed in the hope that it will be 23 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of 24 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 25 * GNU Lesser General Public License for more details. 26 * 27 * You should have received a copy of the GNU Lesser General Public License 28 * along with OpenShot Library. If not, see <http://www.gnu.org/licenses/>. 29 */ 30 31 #ifndef OPENSHOT_ENUMS_H 32 #define OPENSHOT_ENUMS_H 33 34 35 namespace openshot 36 { 37 /// This enumeration determines how clips are aligned to their parent container. 38 enum GravityType 39 { 40 GRAVITY_TOP_LEFT, ///< Align clip to the top left of its parent 41 GRAVITY_TOP, ///< Align clip to the top center of its parent 42 GRAVITY_TOP_RIGHT, ///< Align clip to the top right of its parent 43 GRAVITY_LEFT, ///< Align clip to the left of its parent (middle aligned) 44 GRAVITY_CENTER, ///< Align clip to the center of its parent (middle aligned) 45 GRAVITY_RIGHT, ///< Align clip to the right of its parent (middle aligned) 46 GRAVITY_BOTTOM_LEFT, ///< Align clip to the bottom left of its parent 47 GRAVITY_BOTTOM, ///< Align clip to the bottom center of its parent 48 GRAVITY_BOTTOM_RIGHT ///< Align clip to the bottom right of its parent 49 }; 50 51 /// This enumeration determines how clips are scaled to fit their parent container. 52 enum ScaleType 53 { 54 SCALE_CROP, ///< Scale the clip until both height and width fill the canvas (cropping the overlap) 55 SCALE_FIT, ///< Scale the clip until either height or width fills the canvas (with no cropping) 56 SCALE_STRETCH, ///< Scale the clip until both height and width fill the canvas (distort to fit) 57 SCALE_NONE ///< Do not scale the clip 58 }; 59 60 /// This enumeration determines what parent a clip should be aligned to. 61 enum AnchorType 62 { 63 ANCHOR_CANVAS, ///< Anchor the clip to the canvas 64 ANCHOR_VIEWPORT ///< Anchor the clip to the viewport (which can be moved / animated around the canvas) 65 }; 66 67 /// This enumeration determines the display format of the clip's frame number (if any). Useful for debugging. 68 enum FrameDisplayType 69 { 70 FRAME_DISPLAY_NONE, ///< Do not display the frame number 71 FRAME_DISPLAY_CLIP, ///< Display the clip's internal frame number 72 FRAME_DISPLAY_TIMELINE, ///< Display the timeline's frame number 73 FRAME_DISPLAY_BOTH ///< Display both the clip's and timeline's frame number 74 }; 75 76 /// This enumeration determines the strategy when mixing audio with other clips. 77 enum VolumeMixType 78 { 79 VOLUME_MIX_NONE, ///< Do not apply any volume mixing adjustments. Just add the samples together. 80 VOLUME_MIX_AVERAGE, ///< Evenly divide the overlapping clips volume keyframes, so that the sum does not exceed 100% 81 VOLUME_MIX_REDUCE ///< Reduce volume by about %25, and then mix (louder, but could cause pops if the sum exceeds 100%) 82 }; 83 84 85 /// This enumeration determines the distortion type of Distortion Effect. 86 enum DistortionType 87 { 88 HARD_CLIPPING, 89 SOFT_CLIPPING, 90 EXPONENTIAL, 91 FULL_WAVE_RECTIFIER, 92 HALF_WAVE_RECTIFIER, 93 }; 94 95 /// This enumeration determines the filter type of ParametricEQ Effect. 96 enum FilterType 97 { 98 LOW_PASS, 99 HIGH_PASS, 100 LOW_SHELF, 101 HIGH_SHELF, 102 BAND_PASS, 103 BAND_STOP, 104 PEAKING_NOTCH, 105 }; 106 107 /// This enumeration determines the FFT size. 108 enum FFTSize 109 { 110 FFT_SIZE_32, 111 FFT_SIZE_64, 112 FFT_SIZE_128, 113 FFT_SIZE_256, 114 FFT_SIZE_512, 115 FFT_SIZE_1024, 116 FFT_SIZE_2048, 117 FFT_SIZE_4096, 118 FFT_SIZE_8192, 119 }; 120 121 /// This enumeration determines the hop size. 122 enum HopSize { 123 HOP_SIZE_2, 124 HOP_SIZE_4, 125 HOP_SIZE_8, 126 }; 127 128 /// This enumeration determines the window type. 129 enum WindowType { 130 RECTANGULAR, 131 BART_LETT, 132 HANN, 133 HAMMING, 134 }; 135 136 } 137 #endif 138