public void Dispose() { ServiceProvider.Dispose(); }
static NinjectServiceLocator() { ServiceProvider.LoadModule(new MainModule()); }
IVideoWriterItem HandleVideoEncoder(StartCmdOptions StartOptions, out IVideoWriterProvider VideoWriterKind) { var ffmpegExists = FFmpegService.FFmpegExists; var sharpAviWriterProvider = ServiceProvider.Get <SharpAviWriterProvider>(); if (StartOptions.Encoder == null) { StartOptions.Encoder = "sharpavi:0"; } // FFmpeg if (ffmpegExists && Regex.IsMatch(StartOptions.Encoder, @"^ffmpeg:\d+$")) { var index = int.Parse(StartOptions.Encoder.Substring(7)); var ffmpegWriterProvider = ServiceProvider.Get <FFmpegWriterProvider>(); var writers = ffmpegWriterProvider.ToArray(); if (index < writers.Length) { VideoWriterKind = ffmpegWriterProvider; return(writers[index]); } } // SharpAvi else if (ServiceProvider.FileExists("SharpAvi.dll") && Regex.IsMatch(StartOptions.Encoder, @"^sharpavi:\d+$")) { var index = int.Parse(StartOptions.Encoder.Substring(9)); var writers = sharpAviWriterProvider.ToArray(); if (index < writers.Length) { VideoWriterKind = sharpAviWriterProvider; return(writers[index]); } } // Stream else if (ffmpegExists && Regex.IsMatch(StartOptions.Encoder, @"^stream:\S+$")) { var url = StartOptions.Encoder.Substring(7); _settings.FFmpeg.CustomStreamingUrl = url; VideoWriterKind = ServiceProvider.Get <StreamingWriterProvider>(); return(StreamingWriterProvider.GetCustomStreamingCodec()); } // Rolling else if (ffmpegExists && Regex.IsMatch(StartOptions.Encoder, @"^roll:\d+$")) { var duration = int.Parse(StartOptions.Encoder.Substring(5)); VideoWriterKind = ServiceProvider.Get <FFmpegWriterProvider>(); return(new FFmpegRollingWriterItem(duration)); } VideoWriterKind = sharpAviWriterProvider; return(sharpAviWriterProvider.First()); }
public ImageUploadNotification() { _loc = ServiceProvider.Get <LanguageManager>(); PrimaryText = _loc.ImageUploading; }
public MainWindow() { Instance = this; ServiceProvider.RegionProvider = new RegionSelector(); ServiceProvider.MessageProvider = new MessageProvider(); ServiceProvider.WebCamProvider = new WebCamProvider(); FFMpegService.FFMpegDownloader += () => { if (_downloader == null) { _downloader = new FFMpegDownloader(); _downloader.Closed += (Sender, Args) => _downloader = null; } _downloader.ShowAndFocus(); }; InitializeComponent(); ServiceProvider.MainWindow = new MainWindowProvider(this); if (App.CmdOptions.Tray) { Hide(); } // Register for Windows Messages ComponentDispatcher.ThreadPreprocessMessage += (ref MSG Message, ref bool Handled) => { const int wmHotkey = 786; if (Message.message == wmHotkey) { var id = Message.wParam.ToInt32(); ServiceProvider.RaiseHotKeyPressed(id); } }; ServiceProvider.SystemTray = new SystemTray(SystemTray); Closing += (Sender, Args) => { if (!TryExit()) { Args.Cancel = true; } }; Loaded += (Sender, Args) => { RepositionWindowIfOutside(); if (DataContext is MainViewModel vm) { ServiceProvider.MainViewModel = vm; vm.Init(!App.CmdOptions.NoPersist, true, !App.CmdOptions.Reset, !App.CmdOptions.NoHotkeys); } }; }
static void List() { Banner(); var underline = $"\n{new string('-', 30)}"; #region FFmpeg var ffmpegExists = FFMpegService.FFMpegExists; WriteLine($"FFmpeg Available: {(ffmpegExists ? "YES" : "NO")}"); WriteLine(); if (ffmpegExists) { WriteLine("FFmpeg ENCODERS" + underline); var writerProvider = ServiceProvider.Get <FFMpegWriterProvider>(); var i = 0; foreach (var codec in writerProvider) { WriteLine($"{i.ToString().PadRight(2)}: {codec}"); ++i; } WriteLine(); } #endregion #region SharpAvi var sharpAviExists = ServiceProvider.FileExists("SharpAvi.dll"); WriteLine($"SharpAvi Available: {(sharpAviExists ? "YES" : "NO")}"); WriteLine(); if (sharpAviExists) { WriteLine("SharpAvi ENCODERS" + underline); var writerProvider = ServiceProvider.Get <SharpAviWriterProvider>(); var i = 0; foreach (var codec in writerProvider) { WriteLine($"{i.ToString().PadRight(2)}: {codec}"); ++i; } WriteLine(); } #endregion #region Windows WriteLine("AVAILABLE WINDOWS" + underline); var winProvider = ServiceProvider.Get <WindowSourceProvider>(); foreach (var source in winProvider.OfType <WindowItem>()) { WriteLine($"{source.Window.Handle.ToString().PadRight(10)}: {source}"); } WriteLine(); #endregion #region Screens WriteLine("AVAILABLE SCREENS" + underline); var scrProvider = ServiceProvider.Get <ScreenSourceProvider>(); var j = 0; // First is Full Screen foreach (var screen in scrProvider.Skip(1)) { WriteLine($"{j.ToString().PadRight(2)}: {screen}"); ++j; } WriteLine(); #endregion #region MouseKeyHook WriteLine($"MouseKeyHook Available: {(ServiceProvider.Get<MainViewModel>().MouseKeyHookAvailable ? "YES" : "NO")}"); WriteLine(); #endregion var audio = ServiceProvider.Get <AudioSource>(); WriteLine($"ManagedBass Available: {(audio is BassAudioSource ? "YES" : "NO")}"); WriteLine(); #region Microphones if (audio.AvailableRecordingSources.Count > 1) { WriteLine("AVAILABLE MICROPHONES" + underline); for (var i = 1; i < audio.AvailableRecordingSources.Count; ++i) { WriteLine($"{(i - 1).ToString().PadRight(2)}: {audio.AvailableRecordingSources[i]}"); } WriteLine(); } #endregion #region Speaker if (audio.AvailableLoopbackSources.Count > 1) { WriteLine("AVAILABLE SPEAKER SOURCES" + underline); for (var i = 1; i < audio.AvailableLoopbackSources.Count; ++i) { WriteLine($"{(i - 1).ToString().PadRight(2)}: {audio.AvailableLoopbackSources[i]}"); } WriteLine(); } #endregion }
public void OnLoad(IBinder Binder) { Binder.BindSingleton <HotkeyActionRegisterer>(); // Singleton View Models Binder.BindSingleton <MainViewModel>(); Binder.BindSingleton <VideoViewModel>(); Binder.BindSingleton <ProxySettingsViewModel>(); Binder.BindSingleton <LicensesViewModel>(); Binder.BindSingleton <CrashLogsViewModel>(); Binder.BindSingleton <FFmpegCodecsViewModel>(); Binder.BindSingleton <ScreenShotViewModel>(); Binder.BindSingleton <RecentViewModel>(); Binder.BindSingleton <RecordingViewModel>(); Binder.BindSingleton <FileNameFormatViewModel>(); Binder.BindSingleton <CustomOverlaysViewModel>(); Binder.BindSingleton <CustomImageOverlaysViewModel>(); Binder.BindSingleton <CensorOverlaysViewModel>(); // Settings Binder.BindSingleton <Settings>(); Binder.Bind(() => ServiceProvider.Get <Settings>().Audio); Binder.Bind(() => ServiceProvider.Get <Settings>().FFmpeg); Binder.Bind(() => ServiceProvider.Get <Settings>().Gif); Binder.Bind(() => ServiceProvider.Get <Settings>().Proxy); Binder.Bind(() => ServiceProvider.Get <Settings>().Sounds); // Keymap Binder.BindSingleton <KeymapViewModel>(); // Localization Binder.Bind(() => LanguageManager.Instance); // Hotkeys Binder.BindSingleton <HotKeyManager>(); // Image Writers Binder.BindSingleton <DiskWriter>(); Binder.BindSingleton <ClipboardWriter>(); Binder.BindSingleton <ImgurWriter>(); Binder.Bind <IImageWriterItem>(ServiceProvider.Get <DiskWriter>); Binder.Bind <IImageWriterItem>(ServiceProvider.Get <ClipboardWriter>); Binder.Bind <IImageWriterItem>(ServiceProvider.Get <ImgurWriter>); // Video Writer Providers Binder.BindSingleton <FFmpegWriterProvider>(); Binder.BindSingleton <GifWriterProvider>(); Binder.BindSingleton <StreamingWriterProvider>(); Binder.BindSingleton <DiscardWriterProvider>(); Binder.BindSingleton <SharpAviWriterProvider>(); Binder.BindSingleton <FullScreenItem>(); // Video Source Providers Binder.BindSingleton <ScreenSourceProvider>(); Binder.BindSingleton <FullScreenSourceProvider>(); Binder.BindSingleton <RegionSourceProvider>(); Binder.BindSingleton <WindowSourceProvider>(); Binder.BindSingleton <DeskDuplSourceProvider>(); Binder.BindSingleton <NoVideoSourceProvider>(); // Folder Browser Dialog Binder.Bind <IDialogService, DialogService>(); // Clipboard Binder.Bind <IClipboardService, ClipboardService>(); // FFmpeg Log Binder.BindSingleton <FFmpegLog>(); // Check if Bass is available if (BassAudioSource.Available) { Binder.Bind <AudioSource, BassAudioSource>(); } else { Binder.Bind <AudioSource, NoAudioSource>(); } }
public void RaiseClick() { ServiceProvider.LaunchFile(new ProcessStartInfo(_fileName)); }
public MainWindow() { Instance = this; FFmpegService.FFmpegDownloader += () => { if (_downloader == null) { _downloader = new FFmpegDownloaderWindow(); _downloader.Closed += (Sender, Args) => _downloader = null; } _downloader.ShowAndFocus(); }; InitializeComponent(); var mainModel = ServiceProvider.Get <MainModel>(); mainModel.Init(!App.CmdOptions.NoPersist, !App.CmdOptions.Reset, !App.CmdOptions.NoHotkeys); ServiceProvider.Get <HotkeyActionRegisterer>().Register(); ServiceProvider.Get <TimerModel>().Init(); var listener = new HotkeyListener(); var hotkeyManager = ServiceProvider.Get <HotKeyManager>(); listener.HotkeyReceived += Id => hotkeyManager.ProcessHotkey(Id); ServiceProvider.Get <HotKeyManager>().HotkeyPressed += Service => { switch (Service) { case ServiceName.OpenImageEditor: new ImageEditorWindow().ShowAndFocus(); break; case ServiceName.ShowMainWindow: this.ShowAndFocus(); break; } }; Loaded += (Sender, Args) => { RepositionWindowIfOutside(); SetupWebcamPreview(); mainModel.ViewLoaded(); }; if (App.CmdOptions.Tray || ServiceProvider.Get <Settings>().Tray.MinToTrayOnStartup) { Hide(); } Closing += (Sender, Args) => { if (!TryExit()) { Args.Cancel = true; } }; }
void Image_MouseUp(object sender, MouseButtonEventArgs e) { ServiceProvider.LaunchFile(new ProcessStartInfo(FilePath)); CloseButton_Click(); }
static FFmpegSettings GetSettings() => ServiceProvider.Get <FFmpegSettings>();
private void Pause_Click(object sender, RoutedEventArgs e) { RecordingViewModel rvm = ServiceProvider.Get <RecordingViewModel>(); rvm.OnRecordPause(); }