summary refs log tree commit diff
path: root/nixos/modules/hardware/video/capture/mwprocapture.nix
blob: 76cb4c6ee9bfecabb2e3a60ab0a3a0e32b6fd068 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
{ config, lib, ... }:

with lib;

let

  cfg = config.hardware.mwProCapture;

  kernelPackages = config.boot.kernelPackages;

in

{

  options.hardware.mwProCapture.enable = mkEnableOption "Magewell Pro Capture family kernel module";

  config = mkIf cfg.enable {

    boot.kernelModules = [ "ProCapture" ];

    environment.systemPackages = [ kernelPackages.mwprocapture ];

    boot.extraModulePackages = [ kernelPackages.mwprocapture ];

    boot.extraModprobeConfig = ''
      # Set the png picture to be displayed when no input signal is detected.
      options ProCapture nosignal_file=${kernelPackages.mwprocapture}/res/NoSignal.png

      # Set the png picture to be displayed when an unsupported input signal is detected.
      options ProCapture unsupported_file=${kernelPackages.mwprocapture}/res/Unsupported.png

      # Set the png picture to be displayed when an loking input signal is detected.
      options ProCapture locking_file=${kernelPackages.mwprocapture}/res/Locking.png

      # Message signaled interrupts switch
      #options ProCapture disable_msi=0

      # Set the debug level
      #options ProCapture debug_level=0

      # Force init switch eeprom
      #options ProCapture init_switch_eeprom=0

      # Min frame interval for VIDIOC_ENUM_FRAMEINTERVALS (default: 166666(100ns))
      #options ProCapture enum_frameinterval_min=166666

      # VIDIOC_ENUM_FRAMESIZES type (1: DISCRETE; 2: STEPWISE; otherwise: CONTINUOUS )
      #options ProCapture enum_framesizes_type=0

      # Parameters for internal usage
      #options ProCapture internal_params=""
    '';

  };

}