packages feed

bind-marshal-0.1: test/FLVHeader/Ser.hs

-- Copyright   :  (C) 2009 Corey O'Connor
-- License     :  BSD-style (see the file LICENSE)

module FLVHeader.Ser where

import Bind.Marshal.Prelude

import Bind.Marshal.Action.Base
import Bind.Marshal.Action.Monad.Static
import Bind.Marshal.Action.Static
import Bind.Marshal.SerAction.Static
import Bind.Marshal.StdLib.Ser
import Bind.Marshal.StdLib.Utils.Ser

import FLVHeader.Data
 
{-# INLINE ser_flv_header #-}
ser_flv_header h = do
    ser_char_8 'F'
    ser_char_8 'L'
    ser_char_8 'V'
    ser $ version h
    case ( has_audio h, has_video h ) of
        ( True, False ) -> ser ( 1 :: Word8 )
        ( False, True ) -> ser ( 4 :: Word8 )
        ( True, True ) -> ser ( 5 :: Word8 )
    ser $ header_size h
    static_return ()