<commit_before>import {JsonObject, JsonMember} from "typedjson-npm";

/**  */
export namespace Config {

	/** */
	export namespace v2xx {
		/** */
		export enum VideoModeEnum {
			_PAL,
			_NTSC,
			_576p2500,
			_720p2398,
			_720p2400,
			_720p2500,
			_720p5000,
			_720p2997,
			_720p5994,
			_720p3000,
			_720p6000,
			_1080p2398,
			_1080p2400,
			_1080i5000,
			_1080i5994,
			_1080i6000,
			_1080p2500,
			_1080p2997,
			_1080p3000,
			_1080p5000,
			_1080p5994,
			_1080p6000,
			_1556p2398,
			_1556p2400,
			_1556p2500,
			_dci1080p2398,
			_dci1080p2400,
			_dci1080p2500,
			_2160p2398,
			_2160p2400,
			_2160p2500,
			_2160p2997,
			_2160p3000,
			_dci2160p2398,
			_dci2160p2400,
			_dci2160p2500
		}

		/** */
		export enum ChannelLayoutEnum {
			_mono,
			_stereo,
			_dts,
			_dolbye,
			_dolbydigital,
			_smpte,
			_passthru
		}

		/** */
		@JsonObject
		export class Consumer {
			@JsonMember({type: String, isRequired: true})	// @todo: custom "enum"-class for all props
			public _type: String;
		}

		/** */
		@JsonObject
		export class DecklinkConsumer extends Consumer {
			_type = "decklink";

			@JsonMember({type: Number})
			public device: number = 1;

			@JsonMember({type: Number,  name: "key-device"})
			public keyDevice: Number;

			@JsonMember({type: String,  name: "embedded-audio"})
			public embeddedAudio: string = "false";

			@JsonMember({type: String,  name: "channel-layout"})
			public channelLayout: string = "stereo";

			@JsonMember({type: String})
			public latency: string = "normal";

			@JsonMember({type: String})
			public keyer: string = "external";

			@JsonMember({type: String,  name: "key-only"})
			public keyOnly: string = "false";

			@JsonMember({type: Number,  name: "buffer-depth"})
			public bufferDepth: number = 3;

			@JsonMember({type: String,  name: "custom-allocator"})
			public customAllocator: string = "true";	// @todo: ns 2.0 only
		}

		/** */
		@JsonObject
		export class BluefishConsumer extends Consumer {
			_type = "Bluefish";

			@JsonMember({type: Number})
			public device: number = 1;

			@JsonMember({type: String,  name: "embedded-audio"})
			public embeddedAudio: string = "false";

			@JsonMember({type: String,  name: "channel-layout"})
			public channelLayout: string = "stereo";

			@JsonMember({type: String,  name: "key-only"})
			public keyOnly: string = "false";
		}

		/** */
		@JsonObject
		export class SystemAudioConsumer extends Consumer {
			_type = "systemaudio";

			@JsonMember({type: String,  name: "channel-layout"})
			public channelLayout: string = "stereo";

			@JsonMember({type: Number})
			public latency: number = 200;
		}

		/** */
		@JsonObject
		export class ScreenConsumer extends Consumer {
			_type = "screen";

			@JsonMember({type: Number})
			public device: number = 0;

			@JsonMember({type: String,  name: "aspect-ratio"})
			public aspectRatio: string = "default";

			@JsonMember({type: String})
			public stretch: string = "fill";

			@JsonMember({type: String})
			public windowed: string = "true";

			@JsonMember({type: String,  name: "key-only"})
			public keyOnly: string = "false";

			@JsonMember({type: String,  name: "auto-deinterlace"})
			public autoDeinterlace: string = "true";

			@JsonMember({type: String})<commit_msg>changed default screen device for screen consumers to compensate for wrong implementation in CasparCG server<commit_after>import {JsonObject, JsonMember} from "typedjson-npm";

/**  */
export namespace Config {

	/** */
	export namespace v2xx {
		/** */
		export enum VideoModeEnum {
			_PAL,
			_NTSC,
			_576p2500,
			_720p2398,
			_720p2400,
			_720p2500,
			_720p5000,
			_720p2997,
			_720p5994,
			_720p3000,
			_720p6000,
			_1080p2398,
			_1080p2400,
			_1080i5000,
			_1080i5994,
			_1080i6000,
			_1080p2500,
			_1080p2997,
			_1080p3000,
			_1080p5000,
			_1080p5994,
			_1080p6000,
			_1556p2398,
			_1556p2400,
			_1556p2500,
			_dci1080p2398,
			_dci1080p2400,
			_dci1080p2500,
			_2160p2398,
			_2160p2400,
			_2160p2500,
			_2160p2997,
			_2160p3000,
			_dci2160p2398,
			_dci2160p2400,
			_dci2160p2500
		}

		/** */
		export enum ChannelLayoutEnum {
			_mono,
			_stereo,
			_dts,
			_dolbye,
			_dolbydigital,
			_smpte,
			_passthru
		}

		/** */
		@JsonObject
		export class Consumer {
			@JsonMember({type: String, isRequired: true})	// @todo: custom "enum"-class for all props
			public _type: String;
		}

		/** */
		@JsonObject
		export class DecklinkConsumer extends Consumer {
			_type = "decklink";

			@JsonMember({type: Number})
			public device: number = 1;

			@JsonMember({type: Number,  name: "key-device"})
			public keyDevice: Number;

			@JsonMember({type: String,  name: "embedded-audio"})
			public embeddedAudio: string = "false";

			@JsonMember({type: String,  name: "channel-layout"})
			public channelLayout: string = "stereo";

			@JsonMember({type: String})
			public latency: string = "normal";

			@JsonMember({type: String})
			public keyer: string = "external";

			@JsonMember({type: String,  name: "key-only"})
			public keyOnly: string = "false";

			@JsonMember({type: Number,  name: "buffer-depth"})
			public bufferDepth: number = 3;

			@JsonMember({type: String,  name: "custom-allocator"})
			public customAllocator: string = "true";	// @todo: ns 2.0 only
		}

		/** */
		@JsonObject
		export class BluefishConsumer extends Consumer {
			_type = "Bluefish";

			@JsonMember({type: Number})
			public device: number = 1;

			@JsonMember({type: String,  name: "embedded-audio"})
			public embeddedAudio: string = "false";

			@JsonMember({type: String,  name: "channel-layout"})
			public channelLayout: string = "stereo";

			@JsonMember({type: String,  name: "key-only"})
			public keyOnly: string = "false";
		}

		/** */
		@JsonObject
		export class SystemAudioConsumer extends Consumer {
			_type = "systemaudio";

			@JsonMember({type: String,  name: "channel-layout"})
			public channelLayout: string = "stereo";

			@JsonMember({type: Number})
			public latency: number = 200;
		}

		/** */
		@JsonObject
		export class ScreenConsumer extends Consumer {
			_type = "screen";

			@JsonMember({type: Number})
			public device: number = 1;	// @todo: wrong default implemented in caspar, should be 0:::

			@JsonMember({type: String, name: "aspect-ratio"})
			public aspectRatio: string = "default";

			@JsonMember({type: String})
			public stretch: string = "fill";

			@JsonMember({type: String})
			public windowed: string = "true";

			@JsonMember({type: String,  name: "key-only"})
			public keyOnly: string = "false";

			@JsonMember({type: String,  name: "auto-deinterlace"})
			public autoDeinterlace: string = "true";

			@JsonMember({type: String})
{'fraction_non_alphanumeric': 0.1337122345198923, 'fraction_numerical': 0.08181274304516901, 'mean_word_length': 3.4759036144578315, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '185701', 'n_tokens_mistral': 3220, 'n_tokens_neox': 2333, 'n_words': 554}