Example #1
0
 private void SetVerbosity(VerbosityLevel level)
 {
     _log.LogTrace("Adding Verbosity Level");
     if (level > 0)
     {
         if (level.ToString().Length == 1)
         {
             level = level - 1;
         }
         _command.Append($"--verbosity {level.ToString().ToLower()}");
     }
 }
Example #2
0
        private void Log(VerbosityLevel level, Int32 layer, String message, params Object[] args)
        {
            if (level > _verbosity && (level & VerbosityLevel.FORCE_LOG) != VerbosityLevel.FORCE_LOG)
            {
                _messagesIgnored++;
                return;
            }

            level = level & ~VerbosityLevel.FORCE_LOG;
            Console.ForegroundColor = _verbosityColors[level];
            Console.WriteLine("[" + level.ToString().Substring(0, 3) + "] " + new String(' ', layer) + message, args);
        }
        public string[] ToStringArray()
        {
            List <string> parameters = new List <string>();

            if (!string.IsNullOrEmpty(InputFile))
            {
                parameters.Add("-i");
                parameters.Add(InputFile);
            }

            if (VerbosityLevel >= 0)
            {
                parameters.Add("-v");
                parameters.Add(VerbosityLevel.ToString());
            }

            if (SecondsToSkip > 0)
            {
                TimeSpan skipDuration = TimeSpan.FromSeconds(SecondsToSkip);
                parameters.Add("-ss");
                parameters.Add(string.Format("{0:hh\\:mm\\:ss\\.fff}", skipDuration));
            }

            if (!string.IsNullOrEmpty(EarlyExtendedOptions))
            {
                parameters.AddRange(EarlyExtendedOptions.Split(' '));
            }

            if (!string.IsNullOrEmpty(OutputFormat))
            {
                parameters.Add("-f");
                parameters.Add(OutputFormat);
            }

            if (ExcludeVideo)
            {
                parameters.Add("-vn");
            }
            else
            {
                if (!string.IsNullOrEmpty(VideoCodec))
                {
                    parameters.Add("-vcodec");
                    parameters.Add(VideoCodec);
                }

                if (VideoFramerate > 0)
                {
                    parameters.Add("-r");
                    parameters.Add(VideoFramerate.ToString("F"));
                }

                if (!string.IsNullOrEmpty(VideoBitrate))
                {
                    parameters.Add("-b");
                    parameters.Add(VideoBitrate);
                }

                if (VideoQualityControl > 0)
                {
                    parameters.Add("-crf");
                    parameters.Add(VideoQualityControl.ToString());
                }

                if (!string.IsNullOrEmpty(VideoPreset))
                {
                    parameters.Add("-vpre");
                    parameters.Add(string.Format("{0}", VideoPreset));
                }

                if ((VideoWidth != -1 || VideoHeight != -1) && (VideoWidth != 0 || VideoHeight != 0))
                {
                    parameters.Add("-vf");
                    parameters.Add(string.Format("scale={0}:{1}", VideoWidth, VideoHeight));
                }
            }

            if (ExcludeAudio)
            {
                parameters.Add("-an");
            }
            else
            {
                if (!string.IsNullOrEmpty(AudioCodec))
                {
                    parameters.Add("-acodec");
                    parameters.Add(AudioCodec);
                }

                if (AudioSampleRate > 0)
                {
                    parameters.Add("-ar");
                    parameters.Add(AudioSampleRate.ToString());
                }

                if (!string.IsNullOrEmpty(AudioBitrate))
                {
                    parameters.Add("-ab");
                    parameters.Add(AudioBitrate);
                }

                if (AudioChannels > 0)
                {
                    parameters.Add("-ac");
                    parameters.Add(AudioChannels.ToString());
                }
            }

            if (!string.IsNullOrEmpty(LateExtendedOptions))
            {
                parameters.AddRange(LateExtendedOptions.Split(' '));
            }

            if (VideoStreamIndex != -1)
            {
                parameters.Add("-map");
                parameters.Add(string.Format("0:{0}", VideoStreamIndex));
            }

            if (AudioStreamIndex != -1)
            {
                parameters.Add("-map");
                parameters.Add(string.Format("0:{0}", AudioStreamIndex));
            }

            if (!string.IsNullOrEmpty(OutputFile))
            {
                parameters.Add(string.Format("\"{0}\"", OutputFile));
            }

            return(parameters.ToArray());
        }
Example #4
0
        /// <summary>
        /// Escribir una linea de mensaje en consola y guardarlo en el log del programa
        /// </summary>
        /// <param name="message">Mensaje a escribir</param>
        /// <param name="verbosity">Nivel de verbosidad del mensaje</param>
        /// <param name="supressPrefix">Especifica si se debe suprimir el prefijo de importancia</param>
        /// <param name="colorize">Especifica si se debe de colorear el output segĂșn la importancia</param>
        public static void WriteLine(string message, VerbosityLevel verbosity, bool supressPrefix, bool colorize = true, string sourceName = null)
        {
            Logging.WriteLine(message, verbosity);

            string prefix = string.Empty;

            if (sourceName != null)
            {
                prefix = $"[{sourceName}] ";
            }

            if (!supressPrefix && verbosity > 0)
            {
                prefix += $"{verbosity.ToString().ToUpper()}: ";
            }

            ConsoleColor foreground = Console.ForegroundColor;
            ConsoleColor background = Console.BackgroundColor;

            if (colorize)
            {
                switch (verbosity)
                {
                case VerbosityLevel.Default:
                    Console.BackgroundColor = ConsoleColor.Black;
                    Console.ForegroundColor = ConsoleColor.White;
                    break;

                case VerbosityLevel.Info:
                    Console.BackgroundColor = ConsoleColor.Black;
                    Console.ForegroundColor = ConsoleColor.Cyan;
                    break;

                case VerbosityLevel.Warning:
                    Console.BackgroundColor = ConsoleColor.Black;
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    break;

                case VerbosityLevel.Error:
                    Console.BackgroundColor = ConsoleColor.Red;
                    Console.ForegroundColor = ConsoleColor.White;
                    break;

                default:
                    Console.BackgroundColor = ConsoleColor.Black;
                    Console.ForegroundColor = ConsoleColor.Gray;
                    break;
                }
            }

            if (verbosity < VerbosityLevel.Error)
            {
                Console.WriteLine(prefix + message);
            }
            else
            {
                Console.Error.WriteLine(prefix + message);
            }

            Console.ForegroundColor = foreground;
            Console.BackgroundColor = background;
        }
Example #5
0
        public virtual void Subscribe(ILogger logger)
        {
            lock (_subscriberLock)
            {
                if (logger != null && !IsSubscribed(logger))
                {
                    _subscribers.Add(logger);
                    Type        currentType = this.GetType();
                    EventInfo[] eventInfos  = currentType.GetEvents();
                    eventInfos.Each(eventInfo =>
                    {
                        bool shouldSubscribe        = true;
                        VerbosityLevel logEventType = VerbosityLevel.Information;
                        if (eventInfo.HasCustomAttributeOfType(out VerbosityAttribute verbosity))
                        {
                            shouldSubscribe = (int)verbosity.Value <= (int)LogVerbosity;
                            logEventType    = verbosity.Value;
                        }

                        if (shouldSubscribe)
                        {
                            if (eventInfo.EventHandlerType.Equals(typeof(EventHandler)))
                            {
                                eventInfo.AddEventHandler(this, (EventHandler)((s, a) =>
                                {
                                    string message = "";
                                    if (verbosity != null)
                                    {
                                        if (!verbosity.TryGetMessage(s, out message))
                                        {
                                            verbosity.TryGetMessage(a, out message);
                                        }
                                    }

                                    if (!string.IsNullOrEmpty(message))
                                    {
                                        logger.AddEntry(message, (int)logEventType);
                                    }
                                    else
                                    {
                                        logger.AddEntry("Event {0} raised on type {1}::{2}", (int)logEventType, logEventType.ToString(), currentType.Name, eventInfo.Name);
                                    }
                                }));
                            }
                        }
                    });
                }
            }
        }
Example #6
0
 public static string FormatMessagePartial(string message, VerbosityLevel verbosity)
 {
     return($"<{CurrentISOTime}> Partial {verbosity.ToString().ToUpper()}: {message}");
 }