ShareX/ShareX.ScreenCaptureLib/Enums.cs

374 lines
7.7 KiB
C#

#region License Information (GPL v3)
/*
ShareX - A program that allows you to take screenshots and share any file type
Copyright (c) 2007-2024 ShareX Team
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Optionally you can also view the license at <http://www.gnu.org/licenses/>.
*/
#endregion License Information (GPL v3)
using System.ComponentModel;
namespace ShareX.ScreenCaptureLib
{
public enum ScreenRecordOutput
{
[Description("FFmpeg")]
FFmpeg,
[Description("Animated GIF")]
GIF
}
public enum ScreenRecordGIFEncoding // Localized
{
FFmpeg,
NET,
OctreeQuantizer
}
public enum RegionResult
{
Close,
Region,
LastRegion,
Fullscreen,
Monitor,
ActiveMonitor,
AnnotateRunAfterCaptureTasks,
AnnotateContinueTask,
AnnotateCancelTask
}
public enum NodeType
{
None,
Rectangle,
Line,
Point,
Freehand
}
internal enum NodePosition
{
TopLeft,
Top,
TopRight,
Right,
BottomRight,
Bottom,
BottomLeft,
Left,
Extra
}
internal enum NodeShape
{
Square,
Circle,
Diamond,
CustomNode
}
public enum FFmpegVideoCodec
{
[Description("H.264 / x264")]
libx264,
[Description("H.265 / x265")]
libx265,
[Description("VP8")]
libvpx,
[Description("VP9")]
libvpx_vp9,
[Description("MPEG-4 / Xvid")]
libxvid,
[Description("H.264 / NVENC")]
h264_nvenc,
[Description("HEVC / NVENC")]
hevc_nvenc,
[Description("H.264 / AMF")]
h264_amf,
[Description("HEVC / AMF")]
hevc_amf,
[Description("H.264 / Quick Sync")]
h264_qsv,
[Description("HEVC / Quick Sync")]
hevc_qsv,
[Description("GIF")]
gif,
[Description("WebP")]
libwebp,
[Description("APNG")]
apng
}
public enum FFmpegAudioCodec
{
[Description("AAC")]
libvoaacenc,
[Description("Opus")]
libopus,
[Description("Vorbis")]
libvorbis,
[Description("MP3")]
libmp3lame
}
public enum FFmpegPreset
{
[Description("Ultra fast")]
ultrafast,
[Description("Super fast")]
superfast,
[Description("Very fast")]
veryfast,
[Description("Faster")]
faster,
[Description("Fast")]
fast,
[Description("Medium")]
medium,
[Description("Slow")]
slow,
[Description("Slower")]
slower,
[Description("Very slow")]
veryslow,
[Description("Placebo")]
placebo
}
public enum FFmpegTune
{
film,
animation,
grain,
stillimage,
psnr,
ssim,
fastdecode,
zerolatency
}
public enum FFmpegNVENCPreset
{
[Description("Fastest (Lowest quality)")]
p1,
[Description("Faster (Lower quality)")]
p2,
[Description("Fast (Low quality)")]
p3,
[Description("Medium (Medium quality)")]
p4,
[Description("Slow (Good quality)")]
p5,
[Description("Slower (Better quality)")]
p6,
[Description("Slowest (Best quality)")]
p7
}
public enum FFmpegNVENCTune
{
[Description("High quality")]
hq,
[Description("Low latency")]
ll,
[Description("Ultra low latency")]
ull,
[Description("Lossless")]
lossless
}
public enum FFmpegAMFUsage
{
[Description("Generic transcoding")]
transcoding,
[Description("Ultra low latency transcoding")]
ultralowlatency,
[Description("Low latency transcoding")]
lowlatency,
[Description("Webcam")]
webcam,
[Description("High quality transcoding")]
high_quality,
[Description("Low latency yet high quality transcoding")]
lowlatency_high_quality
}
public enum FFmpegAMFQuality
{
[Description("Prefer speed")]
speed,
[Description("Balanced")]
balanced,
[Description("Prefer quality")]
quality
}
public enum FFmpegQSVPreset
{
[Description("Very fast")]
veryfast,
[Description("Faster")]
faster,
[Description("Fast")]
fast,
[Description("Medium")]
medium,
[Description("Slow")]
slow,
[Description("Slower")]
slower,
[Description("Very slow")]
veryslow
}
public enum FFmpegPaletteGenStatsMode
{
full,
diff,
single
}
public enum FFmpegPaletteUseDither
{
none,
bayer,
heckbert,
floyd_steinberg,
sierra2,
sierra2_4a,
sierra3,
burkes,
atkinson
}
public enum RegionCaptureMode
{
Default,
Annotation,
ScreenColorPicker,
Ruler,
OneClick,
Editor,
TaskEditor
}
public enum RegionCaptureAction // Localized
{
None,
CancelCapture,
RemoveShapeCancelCapture,
RemoveShape,
SwapToolType,
CaptureFullscreen,
CaptureActiveMonitor,
CaptureLastRegion
}
public enum ShapeCategory
{
Region,
Drawing,
Effect,
Tool
}
public enum ShapeType // Localized
{
RegionRectangle,
RegionEllipse,
RegionFreehand,
ToolSelect,
DrawingRectangle,
DrawingEllipse,
DrawingFreehand,
DrawingFreehandArrow,
DrawingLine,
DrawingArrow,
DrawingTextOutline,
DrawingTextBackground,
DrawingSpeechBalloon,
DrawingStep,
DrawingMagnify,
DrawingImage,
DrawingImageScreen,
DrawingSticker,
DrawingCursor,
DrawingSmartEraser,
EffectBlur,
EffectPixelate,
EffectHighlight,
ToolCrop,
ToolCutOut
}
public enum ImageEditorStartMode // Localized
{
AutoSize,
Normal,
Maximized,
PreviousState,
Fullscreen
}
public enum ImageInsertMethod
{
None,
Center,
CanvasExpandDown,
CanvasExpandRight
}
public enum BorderStyle // Localized
{
Solid,
Dash,
Dot,
DashDot,
DashDotDot
}
public enum ScreenRecordState
{
Waiting,
BeforeStart,
AfterStart,
AfterRecordingStart,
RecordingEnd,
Encoding
}
public enum ScreenRecordingStatus
{
Waiting,
Working,
Recording,
Paused,
Stopped,
Aborted
}
public enum ScrollingCaptureStatus
{
Failed,
PartiallySuccessful,
Successful
}
}