Visual Studio 2022
dotPeek for reverse engineering/exporting SDR# DCS decoder plugin to VS project.

DCSDecoderPanel.cs

// Decompiled with JetBrains decompiler
// Type: SDRSharp.DCSDecoder.DCSDecoderPanel
// Assembly: SDRSharp.DCSDecoder, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

using SDRSharp.Common;
using SDRSharp.PanView;
using SDRSharp.Radio;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;

namespace SDRSharp.DCSDecoder
{
  public class DCSDecoderPanel : UserControl
  {
    private const int CodeWordLengthInBit = 23;
    private AudioProcessor _audioProcessor;
...

=>

namespace SDRSharp.DCSDecoder
{
  public class DCSDecoderPanel : UserControl
  {
    private const int CodeWordLengthInBit = 10;
    private AudioProcessor _audioProcessor;
...

 

Decoder.cs

// Decompiled with JetBrains decompiler
// Type: SDRSharp.DCSDecoder.Decoder
// Assembly: SDRSharp.DCSDecoder, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

using SDRSharp.Radio;
using System;

namespace SDRSharp.DCSDecoder
{
  public class Decoder
  {
    private const int SubToneFilterOrder = 500;
    private const double BitRate = 134.3;
    private const int BitPerWord = 23;
    private FirFilter _toneFilter;
    private unsafe float* _filteredBufferPtr;
    private UnsafeBuffer _filteredBuffer;
...

=>

namespace SDRSharp.DCSDecoder
{
  public class Decoder
  {
    private const int SubToneFilterOrder = 1100;
    private const double BitRate = 1200.0;
    private const int BitPerWord = 10;
...


    public Decoder(double sampleRate)
    {
      if (this._toneFilter != null)
        this._toneFilter.Dispose();
      this._toneFilter = new FirFilter(FilterBuilder.MakeLowPassKernel(sampleRate, 500, 134.3, WindowType.BlackmanHarris4));
      this._samplesPerBit = (float) (sampleRate / 134.3);
      this.RecivedCode = new byte[23];
      this._recivedCode = new byte[23];
      this._samplerate = (float) sampleRate;
    }

==>

    public Decoder(double sampleRate)
    {
      if (this._toneFilter != null)
        this._toneFilter.Dispose();
      this._toneFilter = new FirFilter(FilterBuilder.MakeLowPassKernel(sampleRate, 1100, 1200.0, WindowType.BlackmanHarris4));
      this._samplesPerBit = (float) (sampleRate / 1200.0);
      this.RecivedCode = new byte[23];
      this._recivedCode = new byte[23];
      this._samplerate = (float) sampleRate;
    }

+ plugin UI mods needed to display the data