1 --[[ This code is public domain (since it really isn't very interesting) ]]--
3 module("common",package.seeall)
5 -- Iterate over a table in the keys' alphabetical order
6 function pairs_sorted(t)
8 for k,_ in pairs(t) do table.insert(s,k) end
11 return function () i = i + 1; return s[i], t[s[i]] end
14 -- Return a function such as skip(foo)(a,b,c) = foo(b,c)
16 return function(discard,...) return foo(...) end
19 -- Return a function such as setarg(foo,a)(b,c) = foo(a,b,c)
20 function setarg(foo,a)
21 return function(...) return foo(a,...) end
26 vlc.var.set( vlc.object.libvlc(), "key-pressed", vlc.config.get( arg ) )
29 -- Take a video snapshot
31 local vout = vlc.object.find(nil,"vout","anywhere")
32 if not vout then return end
33 vlc.var.set(vout,"video-snapshot",nil)
36 -- Naive (non recursive) table copy
37 function table_copy(t)
39 for i,v in pairs(t) do c[i]=v end
43 -- strip leading and trailing spaces
45 return string.gsub(str, "^%s*(.-)%s*$", "%1")
48 -- print a table (recursively)
49 function table_print(t,prefix)
50 local prefix = prefix or ""
51 for a,b in pairs_sorted(t) do
52 print(prefix..tostring(a),b)
53 if type(b)==type({}) then
54 table_print(b,prefix.."\t")
59 -- print the list of callbacks registered in lua
60 -- usefull for debug purposes
61 function print_callbacks()
63 table_print(vlc.callbacks)
66 -- convert a duration (in seconds) to a string
67 function durationtostring(duration)
68 return string.format("%02d:%02d:%02d",
69 math.floor(duration/3600),
70 math.floor(duration/60)%60,
71 math.floor(duration%60))