sdr 0.1.0.12 → 0.1.0.13
raw patch · 2 files changed
+53/−8 lines, 2 filesdep +bytestring-to-vectordep +networkdep ~QuickCheckdep ~criteriondep ~optparse-applicative
Dependencies added: bytestring-to-vector, network
Dependency ranges changed: QuickCheck, criterion, optparse-applicative, primitive, time
Files
- hs_sources/SDR/NetworkStream.hs +42/−0
- sdr.cabal +11/−8
+ hs_sources/SDR/NetworkStream.hs view
@@ -0,0 +1,42 @@+module SDR.NetworkStream (+ udpSendSocket,+ udpRecvSocket,+ udpSource,+ udpSink+ ) where++import Control.Monad+import Network.Socket (Socket, SockAddr)+import qualified Network.Socket as Socket+import Network.Socket.ByteString (sendAllTo, recv)+import Foreign.Storable+import qualified Data.Vector.Storable as VS+import Data.Vector.Storable.ByteString+import Pipes++udpSendSocket :: IO Socket+udpSendSocket = Socket.socket Socket.AF_INET Socket.Datagram Socket.defaultProtocol++udpRecvSocket+ :: SockAddr+ -> IO Socket+udpRecvSocket addr = do+ socket <- udpSendSocket+ Socket.bind socket addr+ return socket++udpSource + :: Storable a + => Socket + -> Int + -> Producer (VS.Vector a) IO ()+udpSource sock size = forever $ do+ s <- lift $ recv sock size+ yield $ byteStringToVector s++udpSink + :: Storable a + => Socket + -> SockAddr+ -> Consumer (VS.Vector a) IO ()+udpSink dev addr = for cat $ liftIO . flip (sendAllTo dev) addr . vectorToByteString
sdr.cabal view
@@ -1,5 +1,5 @@ name: sdr-version: 0.1.0.12+version: 0.1.0.13 synopsis: A software defined radio library description: Write software defined radio applications in Haskell.@@ -64,6 +64,7 @@ SDR.ArgUtils, SDR.FilterDesign, SDR.CPUID+ SDR.NetworkStream -- other-modules: other-extensions: ScopedTypeVariables, GADTs build-depends: @@ -73,7 +74,7 @@ pulse-simple >=0.1 && <0.2, pipes >=4.1 && <4.4, pipes-concurrency >=2.0 && <2.1, - time >=1.4 && <1.9, + time >=1.4 && <1.10, rtlsdr >=0.1 && <0.2, storable-complex >=0.2 && <0.3, pipes-bytestring >=2.0 && <2.2, @@ -83,17 +84,19 @@ tuple >=0.2 && <0.4, OpenGL >=2.11 && <3.1, GLFW-b >=1.4.8 && <4,- primitive >=0.5 && <0.7, + primitive >=0.5 && <0.8, colour >=2.3 && <2.4, pango >=0.13 && <0.14, containers >=0.5 && <0.7, cairo >=0.13 && <0.14, cereal >=0.4 && <0.6, - optparse-applicative >=0.11 && <0.15, + optparse-applicative >=0.11 && <0.16, Decimal >=0.4 && <0.6, Chart >=1.3 && <1.10, Chart-cairo >=1.3 && <1.10, transformers >=0.5 && <0.6,+ network >=3 && <4,+ bytestring-to-vector >=0.3 && <0.5, mwc-random -- hs-source-dirs: default-language: Haskell2010@@ -115,9 +118,9 @@ main-is: TestSuite.hs build-depends: base >=4.6 && <5, - QuickCheck >=2.8 && <2.11, + QuickCheck >=2.8 && <2.14, vector >=0.11 && <0.13, - primitive >=0.5 && <0.7, + primitive >=0.5 && <0.8, storable-complex >=0.2 && <0.3, test-framework >=0.8 && <0.9, test-framework-quickcheck2 >=0.3 && <0.4,@@ -131,9 +134,9 @@ main-is: Benchmarks.hs build-depends: base >=4.6 && <5, - criterion >=1.0 && <1.4,+ criterion >=1.0 && <1.6, vector >=0.11 && <0.13, - primitive >=0.5 && <0.7, + primitive >=0.5 && <0.8, storable-complex >=0.2 && <0.3, sdr hs-source-dirs: benchmarks