Skip to content

Commit 09dc95b

Browse files
committed
Extract shared command logic
1 parent c3d9ac2 commit 09dc95b

File tree

1 file changed

+21
-45
lines changed

1 file changed

+21
-45
lines changed

plugin/vimedia.vim

+21-45
Original file line numberDiff line numberDiff line change
@@ -20,59 +20,35 @@ let s:plugin_root_dir = fnamemodify(resolve(expand('<sfile>:p:h')), ':h')
2020
" *************************************************************************** "
2121

2222
fu! s:GetActivePlayersCmd()
23-
return s:plugin_root_dir . '/dbus/get_active_players'
23+
return s:plugin_root_dir . "/dbus/get_active_players"
2424
endfu
2525

26-
fu! s:GetArtistCmd(player)
27-
return s:plugin_root_dir . '/dbus/get_metadata ' . a:player . " Artist"
26+
fu! s:GetMetadataCmd(player, attribute)
27+
return s:plugin_root_dir . "/dbus/get_metadata " . a:player . " " . a:attribute
2828
endfu
2929

30-
fu! s:GetTitleCmd(player)
31-
return s:plugin_root_dir . '/dbus/get_metadata ' . a:player . " Title"
32-
endfu
33-
34-
fu! s:GetPositionCmd(player)
35-
return s:plugin_root_dir . '/dbus/get_property ' . a:player . ' Position'
36-
endfu
37-
38-
fu! s:GetShuffleCmd(player)
39-
return s:plugin_root_dir . '/dbus/get_property ' . a:player . ' Shuffle'
40-
endfu
41-
42-
fu! s:GetVolumeCmd(player)
43-
return s:plugin_root_dir . '/dbus/get_property ' . a:player . ' Volume'
30+
fu! s:GetPropertyCmd(player, property)
31+
return s:plugin_root_dir . "/dbus/get_property " . a:player . " " . a:property
4432
endfu
4533

4634
fu! s:SetVolumeCmd(player, volume)
47-
return s:plugin_root_dir . '/dbus/set_property ' . a:player . ' Volume double ' . string(a:volume)
35+
return s:plugin_root_dir . "/dbus/set_property " . a:player . " Volume double " . string(a:volume)
4836
endfu
4937

5038
fu! s:SetShuffleCmd(player, shuffle_status)
51-
return s:plugin_root_dir . '/dbus/set_property ' . a:player . ' Shuffle boolean ' . a:shuffle_status
52-
endfu
53-
54-
fu! s:PlayCmd(player)
55-
return s:plugin_root_dir . '/dbus/control_playback ' . a:player . ' Play'
56-
endfu
57-
58-
fu! s:PauseCmd(player)
59-
return s:plugin_root_dir . '/dbus/control_playback ' . a:player . ' Pause'
60-
endfu
61-
62-
fu! s:NextCmd(player)
63-
return s:plugin_root_dir . '/dbus/control_playback ' . a:player . ' Next'
39+
return s:plugin_root_dir . "/dbus/set_property " . a:player . " Shuffle boolean " . a:shuffle_status
6440
endfu
6541

66-
fu! s:PreviousCmd(player)
67-
return s:plugin_root_dir . '/dbus/control_playback ' . a:player . ' Previous'
42+
fu! s:ControlPlaybackCmd(player, action)
43+
return s:plugin_root_dir . "/dbus/control_playback " . a:player . " " . a:action
6844
endfu
6945

7046
fu! s:SeekCmd(player, duration)
71-
return s:plugin_root_dir . '/dbus/seek ' . a:player . ' ' . a:duration
47+
return s:plugin_root_dir . "/dbus/seek " . a:player . " " . a:duration
7248
endfu
7349

7450
fu! s:QuitCmd(player)
75-
return s:plugin_root_dir . '/dbus/quit ' . a:player
51+
return s:plugin_root_dir . "/dbus/quit " . a:player
7652
endfu
7753

7854
" *************************************************************************** "
@@ -86,7 +62,7 @@ fu! s:SetPlayerCallback(channel, msg)
8662
endif
8763
endfor
8864

89-
call job_start(s:GetVolumeCmd(s:selected_player), {"out_cb": function("s:GetVolumeCallback")})
65+
call job_start(s:GetPropertyCmd(s:selected_player, "Volume"), {"out_cb": function("s:GetVolumeCallback")})
9066
endfu
9167

9268
fu! s:GetPositionCallback(channel, msg)
@@ -113,7 +89,7 @@ endfu
11389
fu! s:PlayCallback(channel, msg)
11490
call s:PauseAllPlayers(a:msg)
11591
sleep 5m
116-
call job_start(s:PlayCmd(s:selected_player))
92+
call job_start(s:ControlPlaybackCmd(s:selected_player, "Play"))
11793
endfu
11894

11995
fu! s:PauseAllCallback(channel, msg)
@@ -178,9 +154,9 @@ fu! s:Refresh(timer)
178154
return
179155
endif
180156

181-
call job_start(s:GetPositionCmd(s:selected_player), {"out_cb": function("s:GetPositionCallback")})
182-
call job_start(s:GetTitleCmd(s:selected_player), {"out_cb": function("s:GetTitleCallback")})
183-
call job_start(s:GetArtistCmd(s:selected_player), {"out_cb": function("s:GetArtistCallback")})
157+
call job_start(s:GetPropertyCmd(s:selected_player, "Position"), {"out_cb": function("s:GetPositionCallback")})
158+
call job_start(s:GetMetadataCmd(s:selected_player, "Title"), {"out_cb": function("s:GetTitleCallback")})
159+
call job_start(s:GetMetadataCmd(s:selected_player, "Artist"), {"out_cb": function("s:GetArtistCallback")})
184160
endfu
185161

186162
fu! NowPlayingText()
@@ -243,7 +219,7 @@ let s:toggle_volume_options = [s:toggle_volume_opt_up, s:toggle_volume_opt_down,
243219

244220
fu! s:PauseAllPlayers(players_str)
245221
for player in split(a:players_str, ",")
246-
call job_start(s:PauseCmd(player))
222+
call job_start(s:ControlPlaybackCmd(player, "Pause"))
247223
endfor
248224
endfu
249225

@@ -252,19 +228,19 @@ fu! s:Play() abort
252228
endfu
253229

254230
fu! s:Pause() abort
255-
call job_start(s:PauseCmd(s:selected_player))
231+
call job_start(s:ControlPlaybackCmd(s:selected_player, "Pause"))
256232
endfu
257233

258234
fu! s:PauseAll() abort
259235
call job_start(s:GetActivePlayersCmd(), {"out_cb": function("s:PauseAllCallback")})
260236
endfu
261237

262238
fu! s:Skip() abort
263-
call job_start(s:NextCmd(s:selected_player))
239+
call job_start(s:ControlPlaybackCmd(s:selected_player, "Next"))
264240
endfu
265241

266242
fu! s:Previous() abort
267-
call job_start(s:PreviousCmd(s:selected_player))
243+
call job_start(s:ControlPlaybackCmd(s:selected_player, "Previous"))
268244
endfu
269245

270246
fu! s:Seek(duration_seconds) abort
@@ -273,7 +249,7 @@ fu! s:Seek(duration_seconds) abort
273249
endfu
274250

275251
fu! s:Shuffle() abort
276-
call job_start(s:GetShuffleCmd(s:selected_player), {"out_cb": function("s:ShuffleCallback")})
252+
call job_start(s:GetPropertyCmd(s:selected_player, "Shuffle"), {"out_cb": function("s:ShuffleCallback")})
277253
endfu
278254

279255
fu! s:ActivePlayer() abort

0 commit comments

Comments
 (0)