xmms2-client 0.0.5.0 → 0.0.6.0
raw patch · 3 files changed
+164/−55 lines, 3 files
Files
- src/XMMS2/Client/Bindings/Medialib.chs +64/−29
- src/XMMS2/Client/Medialib.hs +98/−24
- xmms2-client.cabal +2/−2
src/XMMS2/Client/Bindings/Medialib.chs view
@@ -22,9 +22,13 @@ , medialibAddEntryFull , medialibAddEntryEncoded , medialibGetInfo+ , medialibImportPath+ , medialibImportPathEncoded+ , medialibRehash , medialibGetId , medialibGetIdEncoded , medialibRemoveEntry+ , medialibMoveEntry , medialibEntryPropertySetInt , medialibEntryPropertySetIntWithSource , medialibEntryPropertySetStr@@ -32,7 +36,9 @@ , medialibEntryPropertyRemove , medialibEntryPropertyRemoveWithSource , xformMediaBrowse+ , xformMediaBrowseEncoded , broadcastMedialibEntryChanged+ , broadcastMedialibEntryAdded ) where #include <xmmsclient/xmmsclient.h>@@ -63,10 +69,25 @@ } -> `Result' takeResult* #} {# fun medialib_get_info as ^- { withConnection* `Connection' ,- cIntConv `Int32'+ { withConnection* `Connection'+ , cIntConv `Int32' } -> `Result' takeResult* #} +{# fun medialib_import_path as ^+ { withConnection* `Connection'+ , withCString* `String'+ } -> `Result' takeResult* #}++{# fun medialib_import_path_encoded as ^+ { withConnection* `Connection'+ , withCString* `String'+ } -> `Result' takeResult* #}++{# fun medialib_rehash as ^+ { withConnection* `Connection'+ , cIntConv `Int32'+ } -> `Result' takeResult* #}+ {# fun medialib_get_id as ^ { withConnection* `Connection' , withCString* `String'@@ -82,56 +103,70 @@ , cIntConv `Int32' } -> `Result' takeResult* #} +{# fun medialib_move_entry as ^+ { withConnection* `Connection'+ , cIntConv `Int32'+ , withCString* `String'+ } -> `Result' takeResult* #}+ {# fun medialib_entry_property_set_int as ^- { withConnection* `Connection' ,- cIntConv `Int32' ,- withCString* `String' ,- cIntConv `Int32'+ { withConnection* `Connection'+ , cIntConv `Int32'+ , withCString* `String'+ , cIntConv `Int32' } -> `Result' takeResult* #} {# fun medialib_entry_property_set_int_with_source as ^- { withConnection* `Connection' ,- cIntConv `Int32' ,- withCString* `String' ,- withCString* `String' ,- cIntConv `Int32'+ { withConnection* `Connection'+ , cIntConv `Int32'+ , withCString* `String'+ , withCString* `String'+ , cIntConv `Int32' } -> `Result' takeResult* #} {# fun medialib_entry_property_set_str as ^- { withConnection* `Connection' ,- cIntConv `Int32' ,- withCString* `String' ,- withCString* `String'+ { withConnection* `Connection'+ , cIntConv `Int32'+ , withCString* `String'+ , withCString* `String' } -> `Result' takeResult* #} {# fun medialib_entry_property_set_str_with_source as ^- { withConnection* `Connection' ,- cIntConv `Int32' ,- withCString* `String' ,- withCString* `String' ,- withCString* `String'+ { withConnection* `Connection'+ , cIntConv `Int32'+ , withCString* `String'+ , withCString* `String'+ , withCString* `String' } -> `Result' takeResult* #} {# fun medialib_entry_property_remove as ^- { withConnection* `Connection' ,- cIntConv `Int32' ,- withCString* `String'+ { withConnection* `Connection'+ , cIntConv `Int32'+ , withCString* `String' } -> `Result' takeResult* #} {# fun medialib_entry_property_remove_with_source as ^- { withConnection* `Connection' ,- cIntConv `Int32' ,- withCString* `String' ,- withCString* `String'+ { withConnection* `Connection'+ , cIntConv `Int32'+ , withCString* `String'+ , withCString* `String' } -> `Result' takeResult* #} {# fun xform_media_browse as ^- { withConnection* `Connection' ,- withCString* `String'+ { withConnection* `Connection'+ , withCString* `String' } -> `Result' takeResult* #} +{# fun xform_media_browse_encoded as ^+ { withConnection* `Connection'+ , withCString* `String'+ } -> `Result' takeResult* #} + {# fun broadcast_medialib_entry_changed as ^ { withConnection* `Connection' } -> `Result' takeResult* #} +{# fun broadcast_medialib_entry_added as ^+ { withConnection* `Connection'+ } -> `Result' takeResult* #}
src/XMMS2/Client/Medialib.hs view
@@ -23,13 +23,19 @@ , medialibAddEntryFull , medialibAddEntryEncoded , medialibGetInfo+ , medialibImportPath+ , medialibImportPathEncoded+ , medialibRehash , medialibGetId , medialibGetIdEncoded , medialibRemoveEntry+ , medialibMoveEntry , medialibEntryPropertySet , medialibEntryPropertyRemove , xformMediaBrowse+ , xformMediaBrowseEncoded , broadcastMedialibEntryChanged+ , broadcastMedialibEntryAdded ) where import Control.Applicative@@ -43,39 +49,81 @@ data BrowseEntry- = BrowseEntry { entryPath :: String- , entryIsDir :: Bool }+ = BrowseEntry+ { entryPath :: EncodedURL+ , entryIsDir :: Bool+ } instance ValueGet BrowseEntry where valueGet v = do dict <- valueGet v maybe (fail "not a browse entry") return $ do- path <- lookupString "realpath" dict `mplus` lookupString "path" dict+ path <- lookupString "realpath" dict <|> lookupString "path" dict dirp <- (1 ==) <$> lookupInt32 "isdir" dict return BrowseEntry { entryPath = path, entryIsDir = dirp } -medialibAddEntry :: Connection -> String -> IO (Result Default ())+medialibAddEntry+ :: Connection+ -> URL+ -> IO (Result Default ()) medialibAddEntry xmmsc url = liftResult $ B.medialibAddEntry xmmsc url -medialibAddEntryFull :: Connection -> String -> [String] -> IO (Result Default ())+medialibAddEntryFull+ :: Connection+ -> URL+ -> Dict String+ -> IO (Result Default ()) medialibAddEntryFull xmmsc url args = liftResult $ B.medialibAddEntryFull xmmsc url =<< valueNew args -medialibAddEntryEncoded :: Connection -> String -> IO (Result Default ())+medialibAddEntryEncoded+ :: Connection+ -> EncodedURL+ -> IO (Result Default ()) medialibAddEntryEncoded xmmsc url = liftResult $ B.medialibAddEntryEncoded xmmsc url -medialibGetInfo :: Connection -> Int32 -> IO (Result Default PropDict)+medialibGetInfo+ :: Connection+ -> MediaId+ -> IO (Result Default PropDict) medialibGetInfo xmmsc id = liftResult $ B.medialibGetInfo xmmsc id -medialibGetId :: Connection -> String -> IO (Result Default Int32)+medialibImportPath+ :: Connection+ -> URL+ -> IO (Result Default ())+medialibImportPath xmmsc url =+ liftResult $ B.medialibImportPath xmmsc url++medialibImportPathEncoded+ :: Connection+ -> EncodedURL+ -> IO (Result Default ())+medialibImportPathEncoded xmmsc url =+ liftResult $ B.medialibImportPathEncoded xmmsc url++medialibRehash+ :: Connection+ -> MediaId+ -> IO (Result Default ())+medialibRehash xmmsc id =+ liftResult $ B.medialibRehash xmmsc id++medialibGetId+ :: Connection+ -> URL+ -> IO (Result Default MediaId) medialibGetId xmmsc url = liftResult $ B.medialibGetId xmmsc url -medialibGetIdEncoded :: Connection -> String -> IO (Result Default Int32)+medialibGetIdEncoded+ :: Connection+ -> EncodedURL+ -> IO (Result Default MediaId) medialibGetIdEncoded xmmsc url = liftResult $ B.medialibGetIdEncoded xmmsc url @@ -86,13 +134,21 @@ medialibRemoveEntry xmmsc id = liftResult $ B.medialibRemoveEntry xmmsc id -medialibEntryPropertySet ::- Connection ->- Int32 ->- Maybe String ->- String ->- Property ->- IO (Result Default ())+medialibMoveEntry+ :: Connection+ -> MediaId+ -> EncodedURL+ -> IO (Result Default ())+medialibMoveEntry xmmsc id url =+ liftResult $ B.medialibMoveEntry xmmsc id url++medialibEntryPropertySet+ :: Connection+ -> MediaId+ -> Maybe String+ -> String+ -> Property+ -> IO (Result Default ()) medialibEntryPropertySet xmmsc id (Just src) key (PropInt32 val) = liftResult $ B.medialibEntryPropertySetIntWithSource xmmsc id src key val medialibEntryPropertySet xmmsc id Nothing key (PropInt32 val) =@@ -102,22 +158,40 @@ medialibEntryPropertySet xmmsc id Nothing key (PropString val) = liftResult $ B.medialibEntryPropertySetStr xmmsc id key val -medialibEntryPropertyRemove ::- Connection ->- Int32 ->- Maybe String ->- String ->- IO (Result Default ())+medialibEntryPropertyRemove+ :: Connection+ -> MediaId+ -> Maybe String+ -> String+ -> IO (Result Default ()) medialibEntryPropertyRemove xmmsc id (Just src) key = liftResult $ B.medialibEntryPropertyRemoveWithSource xmmsc id src key medialibEntryPropertyRemove xmmsc id Nothing key = liftResult $ B.medialibEntryPropertyRemove xmmsc id key -xformMediaBrowse :: Connection -> String -> IO (Result Default [BrowseEntry])+xformMediaBrowse+ :: Connection+ -> URL+ -> IO (Result Default [BrowseEntry]) xformMediaBrowse xmmsc url = liftResult $ B.xformMediaBrowse xmmsc url +xformMediaBrowseEncoded+ :: Connection+ -> EncodedURL+ -> IO (Result Default [BrowseEntry])+xformMediaBrowseEncoded xmmsc url =+ liftResult $ B.xformMediaBrowseEncoded xmmsc url -broadcastMedialibEntryChanged :: Connection -> IO (Result Broadcast Int32)++broadcastMedialibEntryChanged+ :: Connection+ -> IO (Result Broadcast MediaId) broadcastMedialibEntryChanged = liftResult . B.broadcastMedialibEntryChanged++broadcastMedialibEntryAdded+ :: Connection+ -> IO (Result Broadcast MediaId)+broadcastMedialibEntryAdded =+ liftResult . B.broadcastMedialibEntryAdded
xmms2-client.cabal view
@@ -1,5 +1,5 @@ name: xmms2-client-version: 0.0.5.0+version: 0.0.6.0 author: Oleg Belozeorov maintainer: Oleg Belozeorov <upwawet@gmail.com>@@ -98,4 +98,4 @@ type: git location: git://github.com/upwawet/xmms2hs.git subdir: client- tag: v0.0.5.0+ tag: v0.0.6.0