Skip to content

Commit

Permalink
0.0.8pre
Browse files Browse the repository at this point in the history
  • Loading branch information
pmp-p committed Sep 25, 2023
1 parent 9929091 commit 672de39
Show file tree
Hide file tree
Showing 2 changed files with 78 additions and 36 deletions.
1 change: 1 addition & 0 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ install_requires =
pyparsing
packaging
installer
aiohttp

[options.entry_points]
console_scripts =
Expand Down
113 changes: 77 additions & 36 deletions static/pythons.js
Original file line number Diff line number Diff line change
Expand Up @@ -229,9 +229,9 @@ window.cross_file = function * cross_file(url, store, flags) {
if (response.error) {
console.warn("cross_file.error :", response.error)
return response.error
} else
console.warn("got response", response, "len", response.headers.get("Content-Length"))

} else {
// console.warn("got response", response, "len", response.headers.get("Content-Length"))
}
FS.writeFile(store, content )
console.log("End.cross_file.fetch", store, "r/w=", content.byteLength)
cross_file.dlcomplete = content.byteLength
Expand Down Expand Up @@ -1136,10 +1136,14 @@ function download(diskfile, filename) {




window.MM = {
tracks : 0,
trackid_current : 0,
next : "",
next_hint : "",
next_loops : 0,
next_tid : 0,
transition : 0,
UME : true,
download : download,
focus_lost : 0,
Expand Down Expand Up @@ -1222,7 +1226,7 @@ async function media_prepare(trackid) {
apk_cb
)

} else {
} else { // bfs1
console.warn(" ==================== BFS2 ===============")

// assuming FS is from Emscripten
Expand Down Expand Up @@ -1272,30 +1276,6 @@ function MM_play(track, loops) {



function MM_autoevents(track) {
const media = track.media

if (media.MM_autoevents) {
return
}

media.addEventListener("canplaythrough", (event) => {
track.ready = true
if (track.auto)
media.play()
})

media.addEventListener('ended', (event) => {
if (track.loops<0)
media.play()

if (track.loops>0) {
track.loops--;
media.play()
}
})
}


window.cross_track = async function cross_track(trackid, url, flags) {
var response = await fetch(url, flags || FETCH_FLAGS);
Expand Down Expand Up @@ -1401,7 +1381,7 @@ console.log("MM.cross_track", trackid, transport, type, url )

track.play = (loops) => { MM_play( track, loops) }

MM_autoevents(track)
MM_autoevents(track, trackid)

}

Expand All @@ -1427,8 +1407,7 @@ MM.load = function load(trackid, loops) {


if (track.type === "audio") {
MM.current_trackid = trackid
MM_autoevents( track )
MM_autoevents( track , trackid )
return trackid
}

Expand All @@ -1446,11 +1425,12 @@ MM.load = function load(trackid, loops) {
MM.play = function play(trackid, loops, start, fade_ms) {
console.log("MM.play",trackid, loops, MM[trackid] )
const track = MM[trackid]
MM.current_trackid = trackid

track.loops = loops
if (track.ready)

if (track.ready) {
track.media.play()
else {
} else {
console.warn("Cannot play before user interaction, will retry", track )
function play_asap() {
if (track.ready) {
Expand All @@ -1470,11 +1450,22 @@ MM.stop = function stop(trackid) {
MM.current_trackid = 0
}

MM.get_pos = function get_pos(trackid) {
if (MM.transition)
return 0

const track = MM[trackid]

if (track && track.media)
return MM[trackid].media.currentTime
return -1
}



MM.pause = function pause(trackid) {
console.log("MM.pause", trackid, MM[trackid] )
MM[trackid].media.pause()
MM.current_trackid = 0
}

MM.unpause = function unpause(trackid) {
Expand All @@ -1496,6 +1487,56 @@ MM.set_socket = function set_socket(mode) {
console.log("WebSocket default mode is now :", mode)
}


function MM_autoevents(track, trackid) {
const media = track.media

if (media.MM_autoevents) {
return
}

media.MM_autoevents = 1

track.media.onplaying = (event) => {
MM.transition = 0
MM.current_trackid = trackid
}

media.addEventListener("canplaythrough", (event) => {
track.ready = true
if (track.auto) {
media.play()
}
})

media.addEventListener('ended', (event) => {

if (track.loops<0) {
console.log("track ended - looping forever")
media.play()
return
}
if (track.loops>0) {
track.loops--;
console.log("track ended - pass", track.loops)
media.play()
return
}

console.log("track ended - q?", MM.next_tid)

// check a track is queued
if (MM.next_tid) {
MM.transition = 1
console.log("queued", MM.next_hint, "from", MM.next, "loops", MM.next_loops)
track.auto = true
MM.play(MM.next_tid, MM.next_loops)
MM.next_tid = 0
}
})
}


// js.MM.CAMERA

// TODO: https://ffmpegwasm.netlify.app/ https://github.com/ffmpegwasm
Expand Down

0 comments on commit 672de39

Please sign in to comment.