mirror of
https://github.com/SDRSharpR/SDRSharper.git
synced 2025-12-06 04:12:02 +01:00
102 lines
4.5 KiB
C#
102 lines
4.5 KiB
C#
using System;
|
|
using System.Runtime.InteropServices;
|
|
using System.Text;
|
|
|
|
namespace SDRSharp.RTLSDR
|
|
{
|
|
public class NativeMethods
|
|
{
|
|
private const string LibRtlSdr = "rtlsdr";
|
|
|
|
[DllImport("rtlsdr", CallingConvention = CallingConvention.Cdecl)]
|
|
public static extern uint rtlsdr_get_device_count();
|
|
|
|
[DllImport("rtlsdr", CallingConvention = CallingConvention.Cdecl, EntryPoint = "rtlsdr_get_device_name")]
|
|
private static extern IntPtr rtlsdr_get_device_name_native(uint index);
|
|
|
|
public static string rtlsdr_get_device_name(uint index)
|
|
{
|
|
IntPtr ptr = NativeMethods.rtlsdr_get_device_name_native(index);
|
|
return Marshal.PtrToStringAnsi(ptr);
|
|
}
|
|
|
|
[DllImport("rtlsdr", CallingConvention = CallingConvention.Cdecl)]
|
|
public static extern int rtlsdr_get_device_usb_strings(uint index, StringBuilder manufact, StringBuilder product, StringBuilder serial);
|
|
|
|
[DllImport("rtlsdr", CallingConvention = CallingConvention.Cdecl)]
|
|
public static extern int rtlsdr_open(out IntPtr dev, uint index);
|
|
|
|
[DllImport("rtlsdr", CallingConvention = CallingConvention.Cdecl)]
|
|
public static extern int rtlsdr_close(IntPtr dev);
|
|
|
|
[DllImport("rtlsdr", CallingConvention = CallingConvention.Cdecl)]
|
|
public static extern int rtlsdr_set_xtal_freq(IntPtr dev, uint rtlFreq, uint tunerFreq);
|
|
|
|
[DllImport("rtlsdr", CallingConvention = CallingConvention.Cdecl)]
|
|
public static extern int rtlsdr_get_xtal_freq(IntPtr dev, out uint rtlFreq, out uint tunerFreq);
|
|
|
|
[DllImport("rtlsdr", CallingConvention = CallingConvention.Cdecl)]
|
|
public static extern int rtlsdr_get_usb_strings(IntPtr dev, StringBuilder manufact, StringBuilder product, StringBuilder serial);
|
|
|
|
[DllImport("rtlsdr", CallingConvention = CallingConvention.Cdecl)]
|
|
public static extern int rtlsdr_set_center_freq(IntPtr dev, uint freq);
|
|
|
|
[DllImport("rtlsdr", CallingConvention = CallingConvention.Cdecl)]
|
|
public static extern uint rtlsdr_get_center_freq(IntPtr dev);
|
|
|
|
[DllImport("rtlsdr", CallingConvention = CallingConvention.Cdecl)]
|
|
public static extern int rtlsdr_set_freq_correction(IntPtr dev, int ppm);
|
|
|
|
[DllImport("rtlsdr", CallingConvention = CallingConvention.Cdecl)]
|
|
public static extern int rtlsdr_get_freq_correction(IntPtr dev);
|
|
|
|
[DllImport("rtlsdr", CallingConvention = CallingConvention.Cdecl)]
|
|
public static extern int rtlsdr_get_tuner_gains(IntPtr dev, [In] [Out] int[] gains);
|
|
|
|
[DllImport("rtlsdr", CallingConvention = CallingConvention.Cdecl)]
|
|
public static extern RtlSdrTunerType rtlsdr_get_tuner_type(IntPtr dev);
|
|
|
|
[DllImport("rtlsdr", CallingConvention = CallingConvention.Cdecl)]
|
|
public static extern int rtlsdr_set_tuner_gain(IntPtr dev, int gain);
|
|
|
|
[DllImport("rtlsdr", CallingConvention = CallingConvention.Cdecl)]
|
|
public static extern int rtlsdr_get_tuner_gain(IntPtr dev);
|
|
|
|
[DllImport("rtlsdr", CallingConvention = CallingConvention.Cdecl)]
|
|
public static extern int rtlsdr_set_tuner_gain_mode(IntPtr dev, int manual);
|
|
|
|
[DllImport("rtlsdr", CallingConvention = CallingConvention.Cdecl)]
|
|
public static extern int rtlsdr_set_agc_mode(IntPtr dev, int on);
|
|
|
|
[DllImport("rtlsdr", CallingConvention = CallingConvention.Cdecl)]
|
|
public static extern int rtlsdr_set_direct_sampling(IntPtr dev, int on);
|
|
|
|
[DllImport("rtlsdr", CallingConvention = CallingConvention.Cdecl)]
|
|
public static extern int rtlsdr_set_offset_tuning(IntPtr dev, int on);
|
|
|
|
[DllImport("rtlsdr", CallingConvention = CallingConvention.Cdecl)]
|
|
public static extern int rtlsdr_set_sample_rate(IntPtr dev, uint rate);
|
|
|
|
[DllImport("rtlsdr", CallingConvention = CallingConvention.Cdecl)]
|
|
public static extern uint rtlsdr_get_sample_rate(IntPtr dev);
|
|
|
|
[DllImport("rtlsdr", CallingConvention = CallingConvention.Cdecl)]
|
|
public static extern int rtlsdr_set_testmode(IntPtr dev, int on);
|
|
|
|
[DllImport("rtlsdr", CallingConvention = CallingConvention.Cdecl)]
|
|
public static extern int rtlsdr_reset_buffer(IntPtr dev);
|
|
|
|
[DllImport("rtlsdr", CallingConvention = CallingConvention.Cdecl)]
|
|
public static extern int rtlsdr_read_sync(IntPtr dev, IntPtr buf, int len, out int nRead);
|
|
|
|
[DllImport("rtlsdr", CallingConvention = CallingConvention.Cdecl)]
|
|
public static extern int rtlsdr_wait_async(IntPtr dev, RtlSdrReadAsyncDelegate cb, IntPtr ctx);
|
|
|
|
[DllImport("rtlsdr", CallingConvention = CallingConvention.Cdecl)]
|
|
public static extern int rtlsdr_read_async(IntPtr dev, RtlSdrReadAsyncDelegate cb, IntPtr ctx, uint bufNum, uint bufLen);
|
|
|
|
[DllImport("rtlsdr", CallingConvention = CallingConvention.Cdecl)]
|
|
public static extern int rtlsdr_cancel_async(IntPtr dev);
|
|
}
|
|
}
|