0 | module Bindings.RtlSdr.Gain
2 | import Bindings.RtlSdr.Device
3 | import Bindings.RtlSdr.Error
4 | import Bindings.RtlSdr.Raw.Gain
5 | import Bindings.RtlSdr.Raw.Support
17 | getTunerGains : Ptr RtlSdrHandle -> IO (Either RTLSDR_ERROR (List Int))
18 | getTunerGains h = do
19 | n <- fromPrim $
get_tuner_gains h (prim__castPtr prim__getNullAnyPtr)
21 | io_pure $
Left RtlSdrError
23 | v <- prim__castPtr <$> malloc (n*8)
24 | _ <- fromPrim $
get_tuner_gains h v
26 | free $
prim__forgetPtr v
42 | setTunerGain : Ptr RtlSdrHandle -> Int -> IO (Either RTLSDR_ERROR ())
43 | setTunerGain h g = do
44 | r <- fromPrim $
set_tuner_gain h g
45 | io_pure $
if r == 0 then Right () else Left RtlSdrError
52 | setTunerBandwidth : Ptr RtlSdrHandle -> Int -> IO (Either RTLSDR_ERROR ())
53 | setTunerBandwidth h bw = do
54 | r <- fromPrim $
set_tuner_bandwidth h bw
55 | io_pure $
if r == 0 then Right () else Left RtlSdrError
63 | getTunerGain : Ptr RtlSdrHandle -> IO (Either RTLSDR_ERROR Int)
65 | r <- fromPrim $
get_tuner_gain h
66 | io_pure $
if r == 0 then Left RtlSdrError else Right r
74 | setTunerIFGain : Ptr RtlSdrHandle -> Int -> Int -> IO (Either RTLSDR_ERROR ())
75 | setTunerIFGain h s g = do
76 | r <- fromPrim $
set_tuner_if_gain h s g
77 | io_pure $
if r == 0 then Right () else Left RtlSdrError
86 | setTunerGainMode : Ptr RtlSdrHandle -> Bool -> IO (Either RTLSDR_ERROR ())
87 | setTunerGainMode h t = do
88 | r <- fromPrim $
set_tuner_gain_mode h (if t then 1 else 0)
89 | io_pure $
if r == 0 then Right () else Left RtlSdrError