Portability | portable (depends on GHC) |
---|---|
Stability | alpha |
Maintainer | gtk2hs-devel@lists.sourceforge.net |
Safe Haskell | None |
A structure describing sets of media formats.
- data Caps
- capsNone :: Caps
- capsAny :: Caps
- capsSize :: Caps -> Word
- capsGetStructure :: Caps -> Word -> Maybe Structure
- capsIsEmpty :: Caps -> Bool
- capsIsFixed :: Caps -> Bool
- capsIsEqual :: Caps -> Caps -> Bool
- capsIsEqualFixed :: Caps -> Caps -> Bool
- capsIsAlwaysCompatible :: Caps -> Caps -> Bool
- capsIsSubset :: Caps -> Caps -> Bool
- capsIntersect :: Caps -> Caps -> Caps
- capsUnion :: Caps -> Caps -> Caps
- capsSubtract :: Caps -> Caps -> Caps
- capsNormalize :: Caps -> Caps
- capsFromString :: String -> Maybe Caps
- capsToString :: Caps -> String
- data CapsM a
- capsCreate :: CapsM a -> (Caps, a)
- capsModify :: Caps -> CapsM a -> (Caps, a)
- capsAppendStructure :: Structure -> CapsM ()
- capsMergeStructure :: Structure -> CapsM ()
- capsRemoveStructure :: Word -> CapsM ()
- capsTruncate :: CapsM ()
Detail
Caps
(short for capabilities) are lightweight objects
describing media types. They are composed of arrays of
Structure
s.
Caps
are exposed on PadTemplate
s to describe all the
possible types a given Pad
can handle. They are also stored
in the Registry
along with the description of an Element
.
Caps
can be retrieved from an 'Element'\'s Pad
s using the
padGetCaps
function. The returned Caps
describes the possible
types that the pad can handle or produce at runtime.
Caps
are also attached to Buffers
to describe the type of
the contained data using the function bufferSetCaps
. Caps
attached to a buffer allow for format negotiation upstream and
downstream.
Caps
are fixed when they have no properties with ranges or
lists. Use capsIsFixed
to test for fixed caps. Only fixed
caps may be set on a Pad
or Buffer
.
Types
Caps Operations
Get the number of structures contained in the Caps
.
:: Caps |
|
-> Word |
|
-> Maybe Structure | the |
Get the Structure
at the given index.
Determine whether caps
represents no media formats.
Determine whether the caps
is fixed; that is, if it has exactly
one structure, and each field in the structure describes a fixed type.
Returns True
if the caps are equal. The caps must both be
fixed.
Returns True
if every media format in the first caps is also
contained by the second. That is, the first is a subset of the
second.
Returns True
if all caps represented by the first argument are
also represented by the second.
This function does not work reliably if optional properties for caps are included on one caps and omitted on the other.
:: Caps |
|
-> Caps |
|
-> Caps | a new |
Creates a new caps containing all the formats that are common to both of the caps.
:: Caps |
|
-> Caps |
|
-> Caps | a new |
Creates a new caps containing all the formats that are in the first but not the second.
Creates a new caps that represents the same set of formats as the argument, but that contains no lists.
Converts the argument to a string representation. The string can
be converted back to a caps using capsFromString
.
Caps Mutation
Create a caps and mutate it according to the given action.
:: Caps |
|
-> CapsM a |
|
-> (Caps, a) | the new |
Copy a caps and mutate it according to the given action.
Append the given structure to the current caps.
Append the structure to the current caps, if it is not already expressed by the caps.
Since 0.10.10.
Removes the structure at the given index from the current caps.
capsTruncate :: CapsM ()Source
Discard all but the first structure from the current caps.