Safe Haskell | None |
---|
Alegbraic data types for OSC datum and packets.
- type Datum_Type = Char
- data Datum
- type Address_Pattern = String
- data Message = Message {}
- data Bundle = Bundle {
- bundleTime :: Time
- bundleMessages :: [Message]
- data Packet
- = Packet_Message { }
- | Packet_Bundle { }
- bundle :: Time -> [Message] -> Bundle
- message :: Address_Pattern -> [Datum] -> Message
- p_bundle :: Time -> [Message] -> Packet
- p_message :: Address_Pattern -> [Datum] -> Packet
- datum_tag :: Datum -> Datum_Type
- readMaybe :: Read a => String -> Maybe a
- parse_datum :: Datum_Type -> String -> Maybe Datum
- datum_real :: Datum -> Maybe Double
- datum_real_err :: Datum -> Double
- datum_int :: Integral i => Datum -> Maybe i
- datum_int_err :: Integral i => Datum -> i
- datum_string :: Datum -> Maybe String
- datum_string_err :: Datum -> String
- message_has_address :: Address_Pattern -> Message -> Bool
- bundle_has_address :: Address_Pattern -> Bundle -> Bool
- packet_has_address :: Address_Pattern -> Packet -> Bool
- packetTime :: Packet -> Time
- packetMessages :: Packet -> [Message]
- packet_to_bundle :: Packet -> Bundle
- packet_to_message :: Packet -> Maybe Message
- packet_is_immediate :: Packet -> Bool
- at_packet :: (Message -> a) -> (Bundle -> a) -> Packet -> a
- timePP :: Time -> String
- datumPP :: Datum -> String
- messagePP :: Message -> String
- bundlePP :: Bundle -> String
- packetPP :: Packet -> String
Documentation
type Datum_Type = CharSource
Type enumerating Datum categories.
The basic elements of OSC messages.
type Address_Pattern = StringSource
OSC address pattern.
An OSC message.
An OSC bundle.
Bundle | |
|
message :: Address_Pattern -> [Datum] -> MessageSource
Message
constructor. It is an error
if the Address_Pattern
doesn't conform to the OSC specification.
p_message :: Address_Pattern -> [Datum] -> PacketSource
Datum
datum_tag :: Datum -> Datum_TypeSource
Single character identifier of an OSC datum.
parse_datum :: Datum_Type -> String -> Maybe DatumSource
Given Datum_Type
attempt to parse Datum
at String
.
parse_datum 'i' "42" == Just (Int 42) parse_datum 'f' "3.14159" == Just (Float 3.14159) parse_datum 'd' "3.14159" == Just (Double 3.14159) parse_datum 's' "\"pi\"" == Just (String "pi") parse_datum 'b' "pi" == Just (Blob (B.pack [112,105])) parse_datum 'm' "(0,144,60,90)" == Just (Midi (0,144,60,90))
datum_real :: Datum -> Maybe DoubleSource
datum_real_err :: Datum -> DoubleSource
A fromJust
variant of datum_real
.
map datum_real_err [Int 5,Float 5] == [5,5]
datum_int_err :: Integral i => Datum -> iSource
datum_string :: Datum -> Maybe StringSource
datum_string_err :: Datum -> StringSource
A fromJust
variant of datum_string
.
map datum_string_err [String "5",Blob (B.pack [53])] == ["5","5"]
Address
message_has_address :: Address_Pattern -> Message -> BoolSource
Does Message
have the specified Address_Pattern
.
bundle_has_address :: Address_Pattern -> Bundle -> BoolSource
Do any of the Message
s at Bundle
have the specified
Address_Pattern
.
Packet
packet_has_address :: Address_Pattern -> Packet -> BoolSource
Does Packet
have the specified Address_Pattern
, ie.
message_has_address
or bundle_has_address
.
packetTime :: Packet -> TimeSource
The Time
of Packet
, if the Packet
is a Message
this is
immediately
.
packet_to_bundle :: Packet -> BundleSource
If Packet
is a Message
add immediately
timestamp, else id
.
packet_is_immediate :: Packet -> BoolSource
Is Packet
immediate, ie. a Bundle
with timestamp
immediately
, or a plain Message.