Source file mpris_client_generic.ml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
open Lwt
open Mpris_interfaces
module Org_mpris_MediaPlayer2 =
struct
open Org_mpris_MediaPlayer2
let quit proxy =
OBus_method.call m_Quit proxy ()
let raise proxy =
OBus_method.call m_Raise proxy ()
let can_quit proxy =
OBus_property.make p_CanQuit proxy
let fullscreen proxy =
OBus_property.make p_Fullscreen proxy
let can_set_fullscreen proxy =
OBus_property.make p_CanSetFullscreen proxy
let can_raise proxy =
OBus_property.make p_CanRaise proxy
let has_track_list proxy =
OBus_property.make p_HasTrackList proxy
let identity proxy =
OBus_property.make p_Identity proxy
let desktop_entry proxy =
OBus_property.make p_DesktopEntry proxy
let supported_uri_schemes proxy =
OBus_property.make p_SupportedUriSchemes proxy
let supported_mime_types proxy =
OBus_property.make p_SupportedMimeTypes proxy
end
module Org_mpris_MediaPlayer2_Player =
struct
open Org_mpris_MediaPlayer2_Player
let next proxy =
OBus_method.call m_Next proxy ()
let previous proxy =
OBus_method.call m_Previous proxy ()
let pause proxy =
OBus_method.call m_Pause proxy ()
let play_pause proxy =
OBus_method.call m_PlayPause proxy ()
let stop proxy =
OBus_method.call m_Stop proxy ()
let play proxy =
OBus_method.call m_Play proxy ()
let seek proxy ~offset =
OBus_method.call m_Seek proxy offset
let set_position proxy ~trackid ~position =
let trackid = OBus_proxy.path trackid in
OBus_method.call m_SetPosition proxy (trackid, position)
let open_uri proxy ~uri =
OBus_method.call m_OpenUri proxy uri
let seeked proxy =
OBus_signal.make s_Seeked proxy
let can_control proxy =
OBus_property.make p_CanControl proxy
let can_go_next proxy =
OBus_property.make p_CanGoNext proxy
let can_go_previous proxy =
OBus_property.make p_CanGoPrevious proxy
let can_pause proxy =
OBus_property.make p_CanPause proxy
let can_play proxy =
OBus_property.make p_CanPlay proxy
let can_seek proxy =
OBus_property.make p_CanSeek proxy
let minimum_rate proxy =
OBus_property.make p_MinimumRate proxy
let maximum_rate proxy =
OBus_property.make p_MaximumRate proxy
let rate proxy =
OBus_property.make p_Rate proxy
let shuffle proxy =
OBus_property.make p_Shuffle proxy
let loop_status proxy =
OBus_property.make p_LoopStatus proxy
let playback_status proxy =
OBus_property.make p_PlaybackStatus proxy
let metadata proxy =
OBus_property.make p_Metadata proxy
let volume proxy =
OBus_property.make p_Volume proxy
let position proxy =
OBus_property.make p_Position proxy
end
module Org_mpris_MediaPlayer2_Playlists =
struct
open Org_mpris_MediaPlayer2_Playlists
let activate_playlist proxy ~playlist_id =
let playlist_id = OBus_proxy.path playlist_id in
OBus_method.call m_ActivatePlaylist proxy playlist_id
let get_playlists proxy ~index ~max_count ~order ~reverse_order =
let index = Int32.of_int index in
let max_count = Int32.of_int max_count in
let%lwt (context, ret) = OBus_method.call_with_context m_GetPlaylists proxy (index, max_count, order, reverse_order) in
let ret = List.map (fun (x1, x2, x3) ->
(OBus_proxy.make ~peer:(OBus_context.sender context) ~path:x1, x2, x3)) ret in
return ret
let playlist_changed proxy =
OBus_signal.map_with_context
(fun context playlist ->
let playlist = (fun (x1, x2, x3) ->
(OBus_proxy.make ~peer:(OBus_context.sender context) ~path:x1, x2, x3)) playlist in
playlist)
(OBus_signal.make s_PlaylistChanged proxy)
let playlist_count proxy =
OBus_property.map_r
(fun x -> Int32.to_int x)
(OBus_property.make p_PlaylistCount proxy)
let orderings proxy =
OBus_property.make p_Orderings proxy
let active_playlist proxy =
OBus_property.map_r_with_context
(fun context x -> (fun (x1, x2) -> (x1, (fun (x1, x2, x3) ->
(OBus_proxy.make ~peer:(OBus_context.sender context) ~path:x1, x2, x3)) x2)) x)
(OBus_property.make p_ActivePlaylist proxy)
end