packages feed

hemokit-0.6.5: hemokit.cabal

name:          hemokit
version:       0.6.5
license:       MIT
copyright:     2013 Niklas Hambüchen <mail@nh2.me>, Patrick Chilton <chpatrick@gmail.com>
author:        Niklas Hambüchen <mail@nh2.me>, Patrick Chilton <chpatrick@gmail.com>
maintainer:    Niklas Hambüchen <mail@nh2.me>
category:      Bioinformatics
build-type:    Simple
stability:     experimental
tested-with:   GHC==7.6.3, GHC==7.8.1
cabal-version: >= 1.10
homepage:      https://github.com/nh2/haskell-hemokit
bug-reports:   https://github.com/nh2/haskell-hemokit/issues
synopsis:      Haskell port of the Emokit EEG project
description:
  This package allows reading raw data from the Emotiv EPOC EEG devices.
  .
  It is inspired and based on the code of the Emokit project
  (<https://github.com/openyou/emokit>), but entirely written in Haskell.
  .
  It contains an extensive, well-documented library for connecting to devices,
  decrypting the stream, and parsing the relevant data out.
  .
  Data can be read from a given device via HIDAPI-hidraw or a dump file;
  reading from multiple devices is supported and when only one EEG is to
  be used, the correct device is automatically selected.
  .
  There is also an executable, @hemokit-dump@, that can print out
  .
  * raw data
  .
  * incremental packets as sent from the device
  .
  * the cumulative /state/ of the EEG
  .
  in both their plain form and as JSON, and optionally serve any of this
  via Websockets.

extra-source-files:
  README.md

source-repository head
  type:      git
  location:  git://github.com/nh2/hemokit.git


flag fft
  description: Enable apps that use FFT. Needs fftw installed.

flag headmap
  description: Build the headmap. Needs GUI libraries installed.

flag mouse
  description: Build the app that controls the mouse with the gyroscope. Needs Xorg and related libraries installed (so it only works on Linux for now).


library
  exposed-modules:
    Hemokit
    Hemokit.Conduit
    Hemokit.Internal.Utils
    Hemokit.Start
  build-depends:
      base                   >= 4 && < 5
    , aeson                  >= 0.6.1.0
    , base64-bytestring      >= 1.0.0.1
    , bytestring             >= 0.9.2.1
    , cipher-aes             >= 0.2.0
    , conduit                >= 1
    , deepseq                >= 1.2
    , deepseq-generics       >= 0.1
    , hidapi                 >= 0.1.2
    , mtl                    >= 2.1.2
    -- network-simple 0.4.0.1 breaks on Windows: https://github.com/k0001/network-simple/issues/13
    , network-simple         >= 0.3.0   && < 0.4.0.1
    , optparse-applicative   >= 0.7.0   && < 0.10.0
    , text                   >= 0.11.1.1
    , vector                 >= 0.9
    , websockets             >= 0.8.0.0
  hs-source-dirs:
    src
  default-language: Haskell2010
  ghc-options: -Wall


executable hemokit-mouse
  if !flag(mouse) || os(windows)
    buildable: False
  default-language: Haskell2010
  hs-source-dirs:
    apps
  main-is:
    Mouse.hs
  if flag(mouse) && !os(windows)
    build-depends:
        base
      , hemokit
      , pretty-show            >= 1.0
      , robot                  >= 1.3.0.1
  ghc-options: -Wall


executable hemokit-dump
  default-language: Haskell2010
  hs-source-dirs:
    apps
  main-is:
    Dump.hs
  other-modules:
    SocketUtils
    WebsocketUtils
  build-depends:
      base
    , hemokit
    , aeson                  >= 0.6.1.0
    , bytestring             >= 0.9.2.1
    -- network-simple 0.4.0.1 breaks on Windows: https://github.com/k0001/network-simple/issues/13
    , network-simple         >= 0.3.0   && < 0.4.0.1
    , optparse-applicative   >= 0.7.0   && < 0.10.0
    , pretty-show            >= 1.0
    , split                  >= 0.2.2
    , time                   >= 1.4
    , transformers           >= 0.3.0.0
    , vector                 >= 0.9
    , websockets             >= 0.8.0.0
  ghc-options: -Wall


executable hemokit-dump-conduit
  default-language: Haskell2010
  hs-source-dirs:
    apps
  main-is:
    DumpConduit.hs
  build-depends:
      base
    , hemokit
    , aeson                  >= 0.6.1.0
    , bytestring             >= 0.9.2.1
    , conduit                >= 1
    -- network-simple 0.4.0.1 breaks on Windows: https://github.com/k0001/network-simple/issues/13
    , network-simple         >= 0.3.0   && < 0.4.0.1
    , optparse-applicative   >= 0.7.0   && < 0.10.0
    , pretty-show            >= 1.0
    , split                  >= 0.2.2
    , time                   >= 1.4
    , transformers           >= 0.3.0.0
    , vector                 >= 0.9
  ghc-options: -Wall


executable hemokit-fft
  if !flag(fft)
    buildable: False
  default-language: Haskell2010
  hs-source-dirs:
    apps
  main-is:
    FFT.hs
  if flag(fft)
    build-depends:
        base
      , hemokit
      , conduit
      , mtl                     >= 2.1.2
      , pretty-show             >= 1.0
      , vector                  >= 0.9
      , vector-fftw             >= 0.1.3.1
  ghc-options: -Wall


executable hemokit-headmap
  if !flag(headmap) || os(windows)
    buildable: False
  default-language: Haskell2010
  hs-source-dirs:
    apps
  main-is:
    Headmap.hs
  if flag(headmap) && !os(windows)
    build-depends:
        base
      , hemokit
      , cairo                  >= 0.12.4
      , gtk                    >= 0.12.4
      , mtl                    >= 2.1.2
      , pretty-show            >= 1.0
      , svgcairo               >= 0.12.1.1
      , vector                 >= 0.9
  ghc-options: -Wall


test-suite tests
  default-language: Haskell2010
  type: exitcode-stdio-1.0
  hs-source-dirs:
    test
  main-is:
    Tests.hs
  build-depends:
      base
    , hemokit
    , bytestring             >= 0.9.2.1
    , hspec                  >= 1.8.3
    , HUnit                  >= 1.2
    , vector                 >= 0.9
  ghc-options: -Wall


benchmark bench
  default-language: Haskell2010
  type: exitcode-stdio-1.0
  hs-source-dirs:
    bench
  main-is:
    Bench.hs
  build-depends:
      base
    , hemokit
    , criterion              >= 0.8.0.0
  ghc-options: -Wall


benchmark bench-rollingbuffer
  default-language: Haskell2010
  type: exitcode-stdio-1.0
  hs-source-dirs:
    bench
  main-is:
    ConduitRollingBufferBench.hs
  build-depends:
      base
    , conduit
    , mtl
    , hemokit
    , criterion              >= 0.8.0.0
  ghc-options: -Wall