if(webvr.isenabled,
webvr_act_as_gyro_in_portrait_mode(true);
,
tween(layer[webvr_rotate_to_landscape_request].alpha, 0.0, 0.0);
set(events[webvr_events].onviewchange, null);
);
if(device.mobile AND webvr.isenabled,
div(aspect, stagewidth, stageheight);
if(aspect != lastaspect OR '%1' == 'true',
copy(lastaspect, aspect);
if(stagewidth GT stageheight,
set(display.stereo, true);
set(webvr.mobilevr_sensor_mode, 3);
webvr.update();
tween(layer[webvr_rotate_to_landscape_request].alpha, 0.0, 0.0);
,
set(display.stereo, false);
set(webvr.mobilevr_sensor_mode, 1);
webvr.update();
tween(layer[webvr_rotate_to_landscape_request].alpha, 1.0);
delayedcall(3.0, tween(layer[webvr_rotate_to_landscape_request].alpha, 0.0, 1.0); );
);
);
,
set(lastaspect, 0);
);
if('%1' !== 'null',
set(strength,0.7);
if(%2 != null, set(strength,%2));
set(layer[skin_buttonglow].parent, %1);
set(layer[skin_buttonglow].visible, true);
tween(layer[skin_buttonglow].alpha, get(strength), 0.07);
,
tween(layer[skin_buttonglow].alpha, 0.0, 0.1, default,
set(layer[skin_buttonglow].parent, null);
set(layer[skin_buttonglow].visible, false);
);
);
if(skin_video_setup_done !== true,
set(skin_video_setup_done, true);
set(plugin[video].onvideoready, skin_video_updatestate() );
set(plugin[video].onvideoplay, skin_video_updatestate(); if(skin_settings_opened !== true, skin_autohide(2.0)); );
set(plugin[video].onvideopaused, skin_video_updatestate(); skin_show_playpause(); );
set(plugin[video].onvideocomplete, skin_video_updatestate(); skin_autohide(0); set(skin_video_setup_done, false); restarter(); removeplugin[video]; );
set(plugin[video].onerror, skin_video_error() );
if(plugin[video].pausedonstart,
set(layer[skin_video_playpause].state, 'visible');
set(layer[skin_video_playpause].enabled, true);
tween(layer[skin_video_playpause].alpha, 1.0);
);
set(layer[skin_title].html, "Tap on video to hide bar");
setinterval(skin_video_seek_updates, 0.5, skin_video_updatetime() );
);
copy(t1, plugin[video].time);
copy(t2, plugin[video].totaltime);
if(%1 !== null, calc(t1, %1 * t2); );
div(t1_min, t1, 60);
mod(t1_sec, t1, 60);
Math.floor(t1_min);
Math.floor(t1_sec);
div(t2_min, t2, 60);
mod(t2_sec, t2, 60);
Math.floor(t2_min);
Math.floor(t2_sec);
calc(layer[skin_video_time].html, t1_min + ':' + (t1_sec LT 10 ? '0' : '') + t1_sec + ' / ' + t2_min + ':' + (t2_sec LT 10 ? '0' : '') + t2_sec);
calc(layer[skin_video_seekpos].x, (t1 / t2 * 100) + '%');
calc(layer[skin_video_loadbar].width, (plugin[video].loadedbytes / plugin[video].totalbytes * 100) + '%');
asyncloop(pressed,
screentolayer(skin_video_seekbar, mouse.stagex,mouse.stagey, lx,ly);
calc(seekpos, lx / layer[skin_video_seekbar].pixelwidth);
clamp(seekpos, 0.0, 1.0);
skin_video_updatetime(seekpos);
,
plugin[video].seek(calc((seekpos * 100) + '%'));
);
calc(layer[skin_video_playpause].crop, plugin[video].ispaused ? '0|640|64|64' : '64|640|64|64');
copy(layer[skin_btn_playpause].crop, layer[skin_video_playpause].crop);
calc(layer[skin_error_msg].html, 'Error: ' + videoerror);
set(layer[skin_error].visible, true);
delayedcall(skin_click_detection, 0.25,
if(layer[skin_control_bar].state == 'hidden',
stopdelayedcall(skin_autohide_pp);
skin_show();
skin_show_playpause();
,
if(skin_settings_opened === true OR skin_volumectrl_opened == true,
skin_close_settings();
skin_close_volumectrl();
,
stopdelayedcall(skin_autohide_pp);
if(layer[skin_video_playpause].state == 'hidden',
skin_show_playpause();
,
skin_hide_playpause();
skin_autohide(0.0);
);
);
);
);
delayedcall(skin_autohide, %1,
set(layer[skin_control_bar].state, 'hidden');
tween(layer[skin_control_bar].y, calc(-(skin_settings.controlbar_offset + skin_settings.controlbar_height)));
tween(layer[skin_control_bar].alpha, 0.0);
);
stopdelayedcall(skin_autohide);
set(layer[skin_control_bar].state, 'visible');
tween(layer[skin_control_bar].y, get(skin_settings.controlbar_offset));
tween(layer[skin_control_bar].alpha, 1.0);
delayedcall(skin_autohide, 2, skin_autohide());
set(layer[skin_video_playpause].state, 'visible');
tween(layer[skin_video_playpause].alpha, 1.0);
delayedcall(skin_autohide_pp, 2.0,
set(layer[skin_video_playpause].state,'hidden');
tween(layer[skin_video_playpause].alpha, 0.0);
);
set(layer[skin_video_playpause].state, 'hidden');
tween(layer[skin_video_playpause].alpha, 0.0);
stopdelayedcall(skin_click_detection);
if(plugin[video].ispaused,
plugin[video].play();
set(layer[skin_video_playpause].state, 'hidden');
tween(layer[skin_video_playpause].alpha, 0.0);
,
plugin[video].pause();
set(layer[skin_video_playpause].state, 'visible');
tween(layer[skin_video_playpause].alpha, 1.0);
delayedcall(skin_autohide_pp, 2.0, set(layer[skin_video_playpause].state,'hidden'); tween(layer[skin_video_playpause].alpha, 0.0); );
);
if(skin_settings_opened !== true,
set(skin_settings_opened, true);
tween(layer[skin_btn_settings].rotate, 90);
tween(layer[skin_settings_menu].alpha, 1.0, 0.2);
);
if(skin_settings_opened === true,
set(skin_settings_opened, false);
tween(layer[skin_btn_settings].rotate, 0);
tween(layer[skin_settings_menu].alpha, 0.0, 0.2);
tween(layer[skin_settings_rate].alpha, 0.0, 0.2);
tween(layer[skin_settings_view].alpha, 0.0, 0.2);
tween(layer[skin_settings_quality].alpha, 0.0, 0.2);
);
if(skin_volumectrl_opened !== true,
set(skin_volumectrl_opened, true);
tween(layer[skin_volumectrl].alpha, 1.0, 0.2);
);
if(skin_volumectrl_opened === true,
set(skin_volumectrl_opened, false);
tween(layer[skin_volumectrl].alpha, 0.0, 0.2);
);
asyncloop(pressed,
screentolayer(skin_volumectrl_bar, mouse.stagex,mouse.stagey, lx,ly);
calc(volumectrl_pos, 1.0 - (ly / layer[skin_volumectrl_bar].pixelheight));
clamp(volumectrl_pos, 0.0, 1.0);
copy(plugin[video].volume, volumectrl_pos);
skin_volumectrl_update();
);
calc(layer[skin_volumectrl_pos].y, ((1.0 - plugin[video].volume) * 100) + '%');
calc(layer[skin_btn_volume_icon].crop, plugin[video].volume GT 0.0 ? '64|704|64|64' : '64|704|40|64');
calc(layer[skin_btn_volume_icon].alpha, plugin[video].volume GT 0.0 ? 1.0 : 0.25);
set(layer[skin_gyro_container].enabled, true);
set(layer[skin_gyro_container].alpha, 1.0);
set(layer[skin_gyro_not].visible, false);
set(layer[skin_gyro_ctrl].visible, true);
tween(layer[skin_gyro_ctrl_i].x, 11);
tween(layer[skin_gyro_ctrl].alpha, 1.0);
tween(layer[skin_gyro_ctrl_i].x, -1);
tween(layer[skin_gyro_ctrl].alpha, 0.5);
switch(control.mouse, moveto, drag);
switch(control.touch, moveto, drag);
set(plugin[video].playbackrate, %1);
set(layer[skin_rate_val].html, calc('%1' + 'x'));
layer[skin_settings_r1t].loadstyle(calc('%1' == '0.25' ? 'skintext_sel' : 'skintext'));
layer[skin_settings_r2t].loadstyle(calc('%1' == '0.5' ? 'skintext_sel' : 'skintext'));
layer[skin_settings_r3t].loadstyle(calc('%1' == '1.0' ? 'skintext_sel' : 'skintext'));
layer[skin_settings_r4t].loadstyle(calc('%1' == '1.5' ? 'skintext_sel' : 'skintext'));
layer[skin_settings_r5t].loadstyle(calc('%1' == '2.0' ? 'skintext_sel' : 'skintext'));
copy(layer[skin_view_val].html, layer[skin_settings_v%1t].html);
layer[skin_settings_v1t].loadstyle(calc('%1' == '1' ? 'skintext_sel' : 'skintext'));
layer[skin_settings_v2t].loadstyle(calc('%1' == '2' ? 'skintext_sel' : 'skintext'));
layer[skin_settings_v3t].loadstyle(calc('%1' == '3' ? 'skintext_sel' : 'skintext'));
layer[skin_settings_v4t].loadstyle(calc('%1' == '4' ? 'skintext_sel' : 'skintext'));
layer[skin_settings_v5t].loadstyle(calc('%1' == '5' ? 'skintext_sel' : 'skintext'));
layer[skin_settings_v6t].loadstyle(calc('%1' == '6' ? 'skintext_sel' : 'skintext'));
layer[skin_settings_v7t].loadstyle(calc('%1' == '7' ? 'skintext_sel' : 'skintext'));
set(plugin[skin_gyro].enabled, false);
skin_update_view_menu(1);
if(videointerface_isflat !== true,
set(videointerface_isflat, true);
stoptween(view.fov);
mod(view.hlookat, 360);
set(view.limitview, off);
set(view.maxpixelzoom, 0);
copy(videointerface_backup_fovmin, view.fovmin);
set(view.fovmin, 0.01);
set(control.usercontrol, off);
copy(videointerface_backup_mouse, control.mouse);
set(control.mouse, drag);
copy(current_fov, view.fov);
copy(videointerface_backup_fovtype, view.fovtype);
remapfovtype(current_fov, get(view.fovtype), HFOV);
set(view.fovtype, HFOV);
copy(view.fov, current_fov);
copy(startfov, current_fov);
copy(image_hfov, image.hfov);
tween(image_hfov, 1.0, 3.0, linear,
set(control.usercontrol,all);
set(view.fovmin, 0.25);
set(view.hlookatmin, -2);
set(view.hlookatmax, +2);
set(view.vlookatmin, -1);
set(view.vlookatmax, +1);
set(view.limitview, range);
,
if(image_hfov LT 90,
mul(view.fov, image_hfov, 1.1);
,
sub(hr, image_hfov, 90);
div(hr, 270);
sub(hr2, 1, hr);
mul(a, startfov, hr);
mul(b, 99, hr2);
add(view.fov, a,b);
);
copy(image.hfov, image_hfov);
set(image.vfov, 0);
updateobject(true, true);
);
adjusthlookat(0);
tween(view.hlookat, 0, 1.5);
tween(view.vlookat, 0, 1.5);
);
if(videointerface_isflat === true,
set(videointerface_isflat, false);
set(view.limitview, off);
set(control.usercontrol, all);
copy(control.mouse, videointerface_backup_mouse);
copy(current_fov, view.fov);
remapfovtype(current_fov, get(view.fovtype), get(videointerface_backup_fovtype));
copy(view.fovtype, videointerface_backup_fovtype);
copy(view.fov, current_fov);
copy(image_hfov, image.hfov);
tween(image_hfov, 360.0, 3.0, linear,
copy(view.fovmin, videointerface_backup_fovmin);
set(view.limitview, auto);
set(view.hlookatmin, -180);
set(view.hlookatmax, +180);
set(view.vlookatmin, -90);
set(view.vlookatmax, +90);
,
copy(image.hfov, image_hfov);
set(image.vfov, 0);
updateobject(true, true);
);
tween(view.fov, 120, 1.5);
);
if(view.vlookat LT -60 OR view.vlookat GT +60,
tween(view.vlookat, 0.0, 1.0, easeInOutSine);
);
skin_view_non_flat();
if(view.vlookat LT -80 OR view.vlookat GT +80,
tween(view.vlookat, 0.0, 1.0, easeInOutSine);
tween(view.fov, 100, distance(150,0.8));
);
skin_update_view_menu(2);
skin_view_look_straight();
tween(view.architectural, 0.0, distance(1.0,0.5));
tween(view.pannini, 0.0, distance(1.0,0.5));
tween(view.distortion, 0.0, distance(1.0,0.5));
skin_update_view_menu(3);
skin_view_look_straight();
tween(view.architectural, 0.0, distance(1.0,0.5));
tween(view.pannini, 0.0, distance(1.0,0.5));
tween(view.distortion, 0.35, distance(1.0,0.5));
skin_update_view_menu(4);
skin_view_look_straight();
tween(view.architectural, 0.0, distance(1.0,0.5));
tween(view.pannini, 0.0, distance(1.0,0.5));
tween(view.distortion, 1.0, distance(1.0,0.8));
skin_update_view_menu(5);
skin_view_look_straight();
tween(view.architectural, 1.0, distance(1.0,0.5));
tween(view.pannini, 0.0, distance(1.0,0.5));
tween(view.distortion, 0.0, distance(1.0,0.5));
skin_update_view_menu(6);
skin_view_look_straight();
tween(view.architectural, 0.0, distance(1.0,0.5));
tween(view.pannini, 1.0, distance(1.0,0.8));
if(view.distortion LT 0.1,
tween(view.distortion, 1.0, distance(1.0,0.8));
);
skin_update_view_menu(7);
if(videointerface_isflat === true,
skin_view_non_flat();
tween(view.fov, 150, distance(150,0.8));
tween(view.architectural, 0.0, distance(1.0,0.5));
tween(view.pannini, 0.0, distance(1.0,0.5));
tween(view.distortion, 1.0, distance(1.0,0.8));
delayedcall(0.5,
tween(view.vlookat, 90, distance(100,0.8));
tween(view.hlookat, 0, distance(100,0.8));
);
,
tween(view.architectural, 0.0, distance(1.0,0.5));
tween(view.pannini, 0.0, distance(1.0,0.5));
tween(view.distortion, 1.0, distance(1.0,0.8));
tween(view.fov, 150, distance(150,0.8));
tween(view.vlookat, 90, distance(100,0.8));
add(new_hlookat, view.hlookat, 0.0);
tween(view.hlookat, get(new_hlookat), distance(100,0.8));
);
skin_video_setup();
set(videosources['v%1'].sourcename, '%1');
set(videosources['v%1'].videourl, '%2');
set(videosources['v%1'].posterurl, '%3');
calc(lname, 'skin_settings_q' + videosources.count);
addlayer(get(lname));
copy(ly, layer[get(lname)]);
ly.loadstyle(settingsitem);
calc(ly.y, 20 + 24*videosources.count);
set(ly.parent, 'skin_settings_quality');
set(ly.onclick, videointerface_play('%1') );
calc(lname2, lname + 't');
addlayer(get(lname2));
copy(ly2, layer[get(lname2)]);
ly2.loadstyle(skintext);
copy(ly2.parent, lname);
set(ly2.align,'center');
set(ly2.html,'%1');
copy(videosources['v%1'].textelement, ly2);
calc(layer[skin_settings_quality].height, 20+24+24*videosources.count+6);
set(layer[skin_error].visible, false);
copy(vs, videosources['v%1']);
plugin[video].playvideo(get(vs.videourl), get(vs.posterurl), get(plugin[video].pausedonstart), get(plugin[video].time));
skin_volumectrl_update();
set(layer[skin_quality].html, %1);
for(set(i,0), i LT videosources.count, inc(i),
videosources[get(i)].textelement.loadstyle(calc(videosources[get(i)].sourcename == '%1' ? 'skintext_sel' : 'skintext'));
);