VLC
how to create extension
I'm going to tell you about how to create vlc extension.
be careful.there are bugs
Recomended
move videos、per click move 1/20 simple_move_position.lua
there are some techniqu for creating dialog.
-- "Simple Move Position" -- VLC Extension --
function descriptor()
return {title = "Simple Move Position";
capabilities = { "input-listener" }
}
end
function activate()
index=1
max=20
input=vlc.object.input();
d=vlc.input.item():duration()/max;
local d = vlc.dialog( "Simple Move Position" )
d:add_button("next",do_next,1,1,1,1)
d:show()
end
function deactivate()
end
function close()
vlc.deactivate()
end
function do_next()
vlc.var.set(input,"time",d*index)
index=index+1
if index==max then
vlc.deactivate()
end
end
move to half position half_position.lua
need capabilities = { "input-listener" }
-- "half_position.lua" -- VLC Extension --
function descriptor()
return {title = "Half Position";
capabilities = { "input-listener" }
}
end
function activate()
vlc.msg.info(vlc.input.item():duration())
vlc.var.set(vlc.object.input(),"time",vlc.input.item():duration()/2)
vlc.deactivate()
end
function deactivate()
end
wait with sleep and move simple_move_position_alpha.lua
do not work,too long sleep crush vlc
vlc wait few second such a heavy sleep()
-- "simple_move_position_alpha.lua" -- VLC Extension --
-- some how it crash vlc --
function descriptor()
return {title = "Zapping";
capabilities = { "input-listener" }
}
end
function activate()
local d=vlc.input.item():duration()/10;
for i = 1, 9 do
vlc.var.set(vlc.object.input(),"time",d*i)
sleep(3);
end
vlc.deactivate()
end
function deactivate()
end
function sleep(n) -- seconds
local t0 = os.time()
while os.time() - t0 <= n do end
end
check position and move simple_move_position_beta.lua
Not working because of Bug
callback check current position
-- "simple_move_position_beta.lua" -- VLC Extension --
function descriptor()
return {title = "simple_move_position_beta";
capabilities = { "input-listener" }
}
end
function activate()
index=1
local input=vlc.object.input();
d=vlc.input.item():duration()/10;
next=index*d+3
vlc.var.add_callback(input, "intf-event", input_event_handler, "Hello world!")
end
function deactivate()
vlc.var.del_callback(input, "intf-event", input_event_handler, "Hello world!")
end
function input_event_handler(var, old, new, data)
local input = vlc.object.input()
if input then
local t = vlc.var.get(input, "time")
if t>next then
index=index+1
jump=d*index;
next=index*d+3
vlc.var.set(input,"time",10)
if index>=10 then
vlc.deactivate()
end
end
end
end