HEX
Server: LiteSpeed
System: Linux houston.panomity.com 6.8.0-100-generic #100-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 13 16:40:06 UTC 2026 x86_64
User: nudepix (1011)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /home/panomity.de/vr.panomity.com/plugins/livepano.xml
<krpano>

  <!-- this data will be ovveriten in a tempalate settings.xml file -->
  <!-- <livepano sound_volume="1.0" sound_range="300" />  -->
  <!-- end -->

  <include url="%FIRSTXML%/livepano/livepano_data.xml?nc=%$random%" if="edditmode != true"/>

  <style name="livepano_video_style" url="%FIRSTXML%/plugins/videoplayer.js" distorted="true" autopause="false" loop="true" depth="off" enabled="false" zorder="-1" zorder2="1" keep="false" backup_rx="0" backup_ry="0" backup_rz="0" backup_scale="0" backup_zorder="1"/>


  <action name="check_livepano_asset" scope="local" protect="true">
    
    indexoftxt(inex, '%2', 'livepano');
    cut_png_js('%2',src_blank);

    if(inex == 0,
      trace('%1 : %2 : ',get(inex),' src_blank: ',get(src_blank));
      copy(cal, hotspot[%1]);

      addhotspot('livepano_%1',hs);
      hs.loadstyle('livepano_video_style');
      calc(hs.posterurl,'%FIRSTXML%/%2');
      calc(hs.videourl, '%FIRSTXML%/'+src_blank+'.mp4');
      set(hs,
        ath=get(cal.ath),
        atv=get(cal.atv),
        rx=get(cal.rx),
        ry=get(cal.ry),
        rz=get(cal.rz),
        scale=get(cal.scale),
        width=get(cal.width),
        height=get(cal.height),
        src_blank=get(src_blank)
      );
      set(hs.onvideoready, 
        play();
        load_audio_livepano(get(name),get(src_blank));
      );
      set(hs.onvideoplay, 
        //trace('hotspot[%1].loaded: ',get(hotspot[%1].loaded));
        asyncloop(hotspot[%1].loaded, 
          //trace('ksjd ksdjs : ',get(random));
          copy(ath, hotspot[%1].ath);
          copy(atv, hotspot[%1].atv);
          copy(scale, hotspot[%1].scale);
          copy(width, hotspot[%1].width);
          copy(height, hotspot[%1].height);
          copy(rx, hotspot[%1].rx);
          copy(ry, hotspot[%1].ry);
          copy(rz, hotspot[%1].rz);
        ,
          //trace('DELETED HOTSPOT %1');
          if(sound[get(name)], destroysound(get(name)));
          delayedcall(0.1, removehotspot('livepano_%1'));
        );
      );
      
      set(hotspot[%1].livepano_parent, true);
      set(hotspot[%1].alpha, 0.0001); 

      //removehotspot(%1);
    );
  </action>

  <action name="cut_png_js" type="javascript" protect="true"><![CDATA[
    //var str1 = args[1];
    var str2 = args[1].slice(0,-4);
    krpano.set(args[2],str2);
  ]]></action>


  <action name="load_audio_livepano" scope="local" protect="true">
    //trace('SOUND: %1 : %2');
    // livepano_livepano_item7_265 : livepano/fontanna
    playsound_at_hotspot('%1', '%FIRSTXML%/%2.mp3', '%1', true, calc(livepano.sound_volume ? livepano.sound_volume : 1.0), calc(livepano.sound_range ? livepano.sound_range : 200));
    add_to_sound_kip_false('%1');
    setinterval(set_seek_%1, 0.3, 
      if(sound[%1],
        copy(plugin[%1].seek, sound[%1].position);
        if(layer[bg_youtube_shadow].loaded, set(sound[%1].volume,0),set(sound[%1].volume,1))
         
      ,
        clearinterval(set_seek_%1);
      );
      //trace(get(plugin[%1].seek),' == ',get(sound[%1].position));
    );
  </action>


  

    <action name="calc_pos_from_hfov_yaw_pitch_roll" protect="true">

      div(hfov,%1,57.295779);
      div(yaw,%2,-57.295779);
      div(pitch,%3,57.295779);
      div(roll,%4,-57.295779);
      mul(hfov,0.5);Math.tan(hfov);mul(width,hfov,1000);set(height,'prop');
      Math.cos(ch,yaw);Math.sin(sh,yaw);
      Math.cos(ca,pitch);Math.sin(sa,pitch);
      Math.cos(cb,roll);Math.sin(sb,roll);
      mul(m0,ca,ch);
      mul(tmp,cb,sa);mul(tmp,ch);mul(tmp2,sb,sh);add(m3,tmp,tmp2);
      mul(m4,cb,ca);
      mul(tmp,cb,sa);mul(tmp,sh);mul(tmp2,sb,ch);sub(m5n,tmp,tmp2);mul(m5n,-1);
      mul(tmp,sb,sa);mul(tmp,ch);mul(tmp2,cb,sh);sub(m6n,tmp,tmp2);mul(m6n,-1);
      Math.atan2(yaw,m6n,m0);
      Math.atan2(roll,m5n,m4);
      Math.asin(pitch,m3);
      mul(ath,yaw,57.295779);
      mul(atv,pitch,57.295779);
      mul(rotate,roll,57.295779);
    </action>


</krpano>