--!movie
--!encoding=utf-8
global $
global gCh
----------------------------------------
-- Download a file with http get (asynchronous/non-blocking mode)
-- Show progress info
----------------------------------------
on startMovie
_player.debugPlaybackEnabled = 1
-- libs
$.import("curl")
-- config
tUrl = "http://valentin.dasdeck.com/xtras/curl_xtra/.test/test.mp3"
tFilename = $.PATH & "download_progress.mp3"
-- start download
gCh = $.curl.init()
gCh.setOption($.curl.CURLOPT.URL, tUrl)
gCh.setOption($.curl.CURLOPT.NOPROGRESS, 0)
gCh.setDestinationFile(tFilename)
gCh.setProgressCallback(#slotCurlProgress)
-- returnMode: 0=return error code (=default), 1=return data, 2=return chunks immediately
-- => has to be 0 (or void) to download as file!
$.curl.execAsyncDetached(gCh, #slotCurlResult)
gPos = 0
put "0 %"
end
----------------------------------------
-- @callback
----------------------------------------
on slotCurlResult (res)
put "ERROR:" && curl_error(res)
-- put "SPEED_UPLOAD:" && gCh.getInfo($.curl.CURLINFO.SPEED_UPLOAD)
-- put "TOTAL_TIME:" && gCh.getInfo($.curl.CURLINFO.TOTAL_TIME)
gCh = VOID
end
----------------------------------------
-- @callback
----------------------------------------
on slotCurlProgress (dltotal, dlnow, ultotal, ulnow)
--put dltotal, dlnow, ultotal, ulnow
if dltotal>0 then
put (dlnow*100/dltotal) && "%"
end if
end