home *** CD-ROM | disk | FTP | other *** search
/ PCNet 2004 October / PCNET_CD_2004_10_1.iso / toolkit / MPsetupXP.exe / wmpns.jar / WMPNS / WMP.class (.txt) < prev   
Encoding:
Java Class File  |  2002-10-15  |  9.7 KB  |  546 lines

  1. package WMPNS;
  2.  
  3. import java.applet.Applet;
  4. import java.awt.Component;
  5. import java.awt.Graphics;
  6. import netscape.javascript.JSObject;
  7. import netscape.security.ForbiddenTargetException;
  8. import netscape.security.Principal;
  9. import netscape.security.PrivilegeManager;
  10. import netscape.security.Target;
  11. import sun.awt.DrawingSurface;
  12. import sun.awt.DrawingSurfaceInfo;
  13. import sun.awt.windows.WDrawingSurfaceInfo;
  14.  
  15. public class WMP extends Applet {
  16.    int m_iEventThreadID = 0;
  17.    int m_iMainThreadID = 0;
  18.    int m_hwndApplet = 0;
  19.    int m_hwndTarget = 0;
  20.    String m_sEventPrefix = "";
  21.    private EventThread thread = null;
  22.    private IWMPPlayer m_IWMPPlayer = null;
  23.  
  24.    public IWMPMediaCollection getMediaCollection() {
  25.       return this.m_IWMPPlayer != null ? this.m_IWMPPlayer.getMediaCollection() : null;
  26.    }
  27.  
  28.    public void stop() {
  29.       if (this.m_iEventThreadID != 0) {
  30.          this.thread.m_fFireEvents = false;
  31.       }
  32.  
  33.       if (this.m_iMainThreadID != 0) {
  34.          this.killThread(this.m_iMainThreadID);
  35.          this.m_iMainThreadID = 0;
  36.       }
  37.  
  38.       if (this.m_iEventThreadID != 0) {
  39.          this.thread.kill();
  40.          this.thread.stop();
  41.          this.m_iEventThreadID = 0;
  42.       }
  43.  
  44.    }
  45.  
  46.    public void launchURL(String var1) {
  47.       if (this.m_IWMPPlayer != null) {
  48.          this.m_IWMPPlayer.launchURL(var1);
  49.       }
  50.  
  51.    }
  52.  
  53.    public IWMPPlaylist newPlaylist(String var1, String var2) {
  54.       return this.m_IWMPPlayer != null ? this.m_IWMPPlayer.newPlaylist(var1, var2) : null;
  55.    }
  56.  
  57.    public int getOpenState() {
  58.       return this.m_IWMPPlayer != null ? this.m_IWMPPlayer.getOpenState() : -1;
  59.    }
  60.  
  61.    public int getPlayState() {
  62.       return this.m_IWMPPlayer != null ? this.m_IWMPPlayer.getPlayState() : -1;
  63.    }
  64.  
  65.    public boolean getStretchToFit() {
  66.       return this.m_IWMPPlayer != null ? this.m_IWMPPlayer.getStretchToFit() : false;
  67.    }
  68.  
  69.    public void setStretchToFit(boolean var1) {
  70.       if (this.m_IWMPPlayer != null) {
  71.          this.m_IWMPPlayer.setStretchToFit(var1);
  72.       }
  73.  
  74.    }
  75.  
  76.    public boolean getWindowlessVideo() {
  77.       return this.m_IWMPPlayer != null ? this.m_IWMPPlayer.getWindowlessVideo() : false;
  78.    }
  79.  
  80.    public void setWindowlessVideo(boolean var1) {
  81.       if (this.m_IWMPPlayer != null) {
  82.          this.m_IWMPPlayer.setWindowlessVideo(var1);
  83.       }
  84.  
  85.    }
  86.  
  87.    private native void killThread(int var1);
  88.  
  89.    public IWMPPlaylistCollection getPlaylistCollection() {
  90.       return this.m_IWMPPlayer != null ? this.m_IWMPPlayer.getPlaylistCollection() : null;
  91.    }
  92.  
  93.    public IWMPPlaylist getCurrentPlaylist() {
  94.       return this.m_IWMPPlayer != null ? this.m_IWMPPlayer.getCurrentPlaylist() : null;
  95.    }
  96.  
  97.    public void setCurrentPlaylist(IWMPPlaylist var1) {
  98.       if (this.m_IWMPPlayer != null) {
  99.          this.m_IWMPPlayer.setCurrentPlaylist(var1);
  100.       }
  101.  
  102.    }
  103.  
  104.    public IWMPPlayerApplication getPlayerApplication() {
  105.       return this.m_IWMPPlayer != null ? this.m_IWMPPlayer.getPlayerApplication() : null;
  106.    }
  107.  
  108.    public void update(Graphics var1) {
  109.    }
  110.  
  111.    public boolean getIsOnline() {
  112.       return this.m_IWMPPlayer != null ? this.m_IWMPPlayer.getIsOnline() : false;
  113.    }
  114.  
  115.    public boolean getFullScreen() {
  116.       return this.m_IWMPPlayer != null ? this.m_IWMPPlayer.getFullScreen() : false;
  117.    }
  118.  
  119.    public void setFullScreen(boolean var1) {
  120.       if (this.m_IWMPPlayer != null) {
  121.          this.m_IWMPPlayer.setFullScreen(var1);
  122.       }
  123.  
  124.    }
  125.  
  126.    private native void debug(String var1);
  127.  
  128.    public void start() {
  129.       boolean var1 = false;
  130.  
  131.       try {
  132.          PrivilegeManager.getPrivilegeManager().enablePrivilege(Target.findTarget("UniversalLinkAccess"), (Principal)null);
  133.          var1 = true;
  134.       } catch (ForbiddenTargetException var5) {
  135.          System.out.println("Unable to get sufficient privileges.");
  136.          System.out.println(((Throwable)var5).toString());
  137.          ((Throwable)var5).printStackTrace();
  138.       }
  139.  
  140.       if (!var1) {
  141.          try {
  142.             new RuntimePermission("loadLibrary.WMPNS");
  143.          } catch (Exception var4) {
  144.             System.out.println("Unable to get sufficient privileges.");
  145.             System.out.println(((Throwable)var4).toString());
  146.             ((Throwable)var4).printStackTrace();
  147.          }
  148.       }
  149.  
  150.       if (var1) {
  151.          try {
  152.             System.loadLibrary("wmpns");
  153.          } catch (Exception var3) {
  154.             System.out.println(((Throwable)var3).toString());
  155.             ((Throwable)var3).printStackTrace();
  156.             return;
  157.          }
  158.  
  159.          this.m_hwndApplet = this.getHWND();
  160.          if (this.m_hwndApplet == 0) {
  161.             this.debug("Failed to get window handle of applet.");
  162.             return;
  163.          }
  164.  
  165.          this.m_sEventPrefix = ((Applet)this).getParameter("EventPrefix");
  166.          if (this.m_sEventPrefix == null) {
  167.             this.m_sEventPrefix = "";
  168.          }
  169.  
  170.          try {
  171.             JSObject var2 = JSObject.getWindow(this);
  172.             this.thread = new EventThread();
  173.             this.thread.m_JSOWindow = var2;
  174.             this.thread.m_WMPApplet = this;
  175.             this.thread.start();
  176.  
  177.             while(this.m_iEventThreadID == 0) {
  178.             }
  179.          } catch (Exception var6) {
  180.             ((Throwable)var6).printStackTrace();
  181.             this.debug("Exception caught while getting JSObject. Events will not be fired.");
  182.             this.debug(((Throwable)var6).toString());
  183.          }
  184.  
  185.          this.m_iMainThreadID = this.spawnThread(this.m_hwndApplet, this.m_iEventThreadID);
  186.          this.m_hwndTarget = this.getTargetHWND(this.m_iMainThreadID);
  187.          this.m_IWMPPlayer = this.getPlayer();
  188.          if (this.m_IWMPPlayer != null) {
  189.             this.getParams();
  190.          }
  191.       }
  192.  
  193.    }
  194.  
  195.    public IWMPNetwork getNetwork() {
  196.       return this.m_IWMPPlayer != null ? this.m_IWMPPlayer.getNetwork() : null;
  197.    }
  198.  
  199.    public String getStatus() {
  200.       return this.m_IWMPPlayer != null ? this.m_IWMPPlayer.getStatus() : null;
  201.    }
  202.  
  203.    public IWMPMedia getCurrentMedia() {
  204.       return this.m_IWMPPlayer != null ? this.m_IWMPPlayer.getCurrentMedia() : null;
  205.    }
  206.  
  207.    public void setCurrentMedia(IWMPMedia var1) {
  208.       if (this.m_IWMPPlayer != null) {
  209.          this.m_IWMPPlayer.setCurrentMedia(var1);
  210.       }
  211.  
  212.    }
  213.  
  214.    private void getParams() {
  215.       IWMPSettings var2 = this.getSettings();
  216.       IWMPControls var3 = this.getControls();
  217.       IWMPClosedCaption var4 = this.getClosedCaption();
  218.       String var1 = ((Applet)this).getParameter("autoStart");
  219.       if (var1 != null && var2 != null) {
  220.          if (var1.equalsIgnoreCase("false")) {
  221.             var2.setAutoStart(false);
  222.          } else if (var1.equalsIgnoreCase("true")) {
  223.             var2.setAutoStart(true);
  224.          } else {
  225.             this.debug("\"" + var1 + "\" is not a valid value for \"autoStart\" parameter.");
  226.          }
  227.       }
  228.  
  229.       var1 = ((Applet)this).getParameter("balance");
  230.       if (var1 != null && var2 != null) {
  231.          try {
  232.             long var5 = Long.valueOf(var1);
  233.             var2.setBalance(var5);
  234.          } catch (NumberFormatException var12) {
  235.             this.debug("\"" + var1 + "\" is not a valid value for \"balance\" parameter.");
  236.          }
  237.       }
  238.  
  239.       var1 = ((Applet)this).getParameter("baseURL");
  240.       if (var1 != null && var2 != null) {
  241.          var2.setBaseURL(var1);
  242.       }
  243.  
  244.       var1 = ((Applet)this).getParameter("defaultFrame");
  245.       if (var1 != null && var2 != null) {
  246.          var2.setDefaultFrame(var1);
  247.       }
  248.  
  249.       var1 = ((Applet)this).getParameter("enableErrorDialogs");
  250.       if (var1 != null && var2 != null) {
  251.          if (var1.equalsIgnoreCase("false")) {
  252.             var2.setEnableErrorDialogs(false);
  253.          } else if (var1.equalsIgnoreCase("true")) {
  254.             var2.setEnableErrorDialogs(true);
  255.          } else {
  256.             this.debug("\"" + var1 + "\" is not a valid value for \"enableErrorDialogs\" parameter.");
  257.          }
  258.       }
  259.  
  260.       var1 = ((Applet)this).getParameter("invokeURLs");
  261.       if (var1 != null && var2 != null) {
  262.          if (var1.equalsIgnoreCase("false")) {
  263.             var2.setInvokeURLs(false);
  264.          } else if (var1.equalsIgnoreCase("true")) {
  265.             var2.setInvokeURLs(true);
  266.          } else {
  267.             this.debug("\"" + var1 + "\" is not a valid value for \"invokeURLs\" parameter.");
  268.          }
  269.       }
  270.  
  271.       var1 = ((Applet)this).getParameter("mute");
  272.       if (var1 != null && var2 != null) {
  273.          if (var1.equalsIgnoreCase("false")) {
  274.             var2.setMute(false);
  275.          } else if (var1.equalsIgnoreCase("true")) {
  276.             var2.setMute(true);
  277.          } else {
  278.             this.debug("\"" + var1 + "\" is not a valid value for \"mute\" parameter.");
  279.          }
  280.       }
  281.  
  282.       var1 = ((Applet)this).getParameter("playCount");
  283.       if (var1 != null && var2 != null) {
  284.          try {
  285.             int var35 = Integer.valueOf(var1);
  286.             var2.setPlayCount((long)var35);
  287.          } catch (Exception var11) {
  288.             this.debug("\"" + var1 + "\" is not a valid value for \"playCount\" parameter.");
  289.          }
  290.       }
  291.  
  292.       var1 = ((Applet)this).getParameter("rate");
  293.       if (var1 != null && var2 != null) {
  294.          try {
  295.             double var36 = Double.valueOf(var1);
  296.             var2.setRate(var36);
  297.          } catch (Exception var10) {
  298.             this.debug("\"" + var1 + "\" is not a valid value for \"rate\" parameter.");
  299.          }
  300.       }
  301.  
  302.       var1 = ((Applet)this).getParameter("volume");
  303.       if (var1 != null && var2 != null) {
  304.          try {
  305.             int var37 = Integer.valueOf(var1);
  306.             var2.setVolume((long)var37);
  307.          } catch (Exception var9) {
  308.             this.debug("\"" + var1 + "\" is not a valid value for \"volume\" parameter.");
  309.          }
  310.       }
  311.  
  312.       var1 = ((Applet)this).getParameter("currentMarker");
  313.       if (var1 != null && var3 != null) {
  314.          try {
  315.             int var38 = Integer.valueOf(var1);
  316.             var3.setCurrentMarker((long)var38);
  317.          } catch (Exception var8) {
  318.             this.debug("\"" + var1 + "\" is not a valid value for \"currentMarker\" parameter.");
  319.          }
  320.       }
  321.  
  322.       var1 = ((Applet)this).getParameter("currentPosition");
  323.       if (var1 != null && var3 != null) {
  324.          try {
  325.             double var39 = Double.valueOf(var1);
  326.             var3.setCurrentPosition(var39);
  327.          } catch (Exception var7) {
  328.             this.debug("\"" + var1 + "\" is not a valid value for \"currentPosition\" parameter.");
  329.          }
  330.       }
  331.  
  332.       var1 = ((Applet)this).getParameter("captioningID");
  333.       if (var1 != null && var4 != null) {
  334.          var4.setCaptioningID(var1);
  335.       }
  336.  
  337.       var1 = ((Applet)this).getParameter("SAMIFilename");
  338.       if (var1 != null && var4 != null) {
  339.          var4.setSAMIFileName(var1);
  340.       }
  341.  
  342.       var1 = ((Applet)this).getParameter("SAMILang");
  343.       if (var1 != null && var4 != null) {
  344.          var4.setSAMILang(var1);
  345.       }
  346.  
  347.       var1 = ((Applet)this).getParameter("SAMIStyle");
  348.       if (var1 != null && var4 != null) {
  349.          var4.setSAMIStyle(var1);
  350.       }
  351.  
  352.       var1 = ((Applet)this).getParameter("enableContextMenu");
  353.       if (var1 != null) {
  354.          if (var1.equalsIgnoreCase("false")) {
  355.             this.setEnableContextMenu(false);
  356.          } else if (var1.equalsIgnoreCase("true")) {
  357.             this.setEnableContextMenu(true);
  358.          } else {
  359.             this.debug("\"" + var1 + "\" is not a valid value for \"enableContextMenu\" parameter.");
  360.          }
  361.       }
  362.  
  363.       var1 = ((Applet)this).getParameter("enabled");
  364.       if (var1 != null) {
  365.          if (var1.equalsIgnoreCase("false")) {
  366.             this.setEnabled(false);
  367.          } else if (var1.equalsIgnoreCase("true")) {
  368.             this.setEnabled(true);
  369.          } else {
  370.             this.debug("\"" + var1 + "\" is not a valid value for \"enabled\" parameter.");
  371.          }
  372.       }
  373.  
  374.       var1 = ((Applet)this).getParameter("stretchToFit");
  375.       if (var1 != null) {
  376.          if (var1.equalsIgnoreCase("false")) {
  377.             this.setStretchToFit(false);
  378.          } else if (var1.equalsIgnoreCase("true")) {
  379.             this.setStretchToFit(true);
  380.          } else {
  381.             this.debug("\"" + var1 + "\" is not a valid value for \"stretchToFit\" parameter.");
  382.          }
  383.       }
  384.  
  385.       var1 = ((Applet)this).getParameter("windowlessVideo");
  386.       if (var1 != null) {
  387.          if (var1.equalsIgnoreCase("false")) {
  388.             this.setWindowlessVideo(false);
  389.          } else if (var1.equalsIgnoreCase("true")) {
  390.             this.setWindowlessVideo(true);
  391.          } else {
  392.             this.debug("\"" + var1 + "\" is not a valid value for \"windowlessVideo\" parameter.");
  393.          }
  394.       }
  395.  
  396.       var1 = ((Applet)this).getParameter("fullScreen");
  397.       if (var1 != null) {
  398.          if (var1.equalsIgnoreCase("false")) {
  399.             this.setFullScreen(false);
  400.          } else if (var1.equalsIgnoreCase("true")) {
  401.             this.setFullScreen(true);
  402.          } else {
  403.             this.debug("\"" + var1 + "\" is not a valid value for \"fullScreen\" parameter.");
  404.          }
  405.       }
  406.  
  407.       var1 = ((Applet)this).getParameter("uiMode");
  408.       if (var1 != null) {
  409.          this.setUiMode(var1);
  410.       }
  411.  
  412.       var1 = ((Applet)this).getParameter("URL");
  413.       if (var1 != null) {
  414.          this.setURL(var1);
  415.       }
  416.  
  417.    }
  418.  
  419.    public boolean getEnableContextMenu() {
  420.       return this.m_IWMPPlayer != null ? this.m_IWMPPlayer.getEnableContextMenu() : false;
  421.    }
  422.  
  423.    public void setEnableContextMenu(boolean var1) {
  424.       if (this.m_IWMPPlayer != null) {
  425.          this.m_IWMPPlayer.setEnableContextMenu(var1);
  426.       }
  427.  
  428.    }
  429.  
  430.    private native int getPlayer(int var1);
  431.  
  432.    private IWMPPlayer getPlayer() {
  433.       int var1 = this.getPlayer(this.m_hwndTarget);
  434.       if (var1 >= 0) {
  435.          IWMPPlayer var2 = new IWMPPlayer();
  436.          if (var2 != null) {
  437.             var2.m_pIWMPPlayer = var1;
  438.             var2.m_hWnd = this.m_hwndTarget;
  439.          }
  440.  
  441.          return var2;
  442.       } else {
  443.          return null;
  444.       }
  445.    }
  446.  
  447.    public IWMPSettings getSettings() {
  448.       return this.m_IWMPPlayer != null ? this.m_IWMPPlayer.getSettings() : null;
  449.    }
  450.  
  451.    public void close() {
  452.       if (this.m_IWMPPlayer != null) {
  453.          this.m_IWMPPlayer.close();
  454.       }
  455.  
  456.    }
  457.  
  458.    public IWMPCdromCollection getCdromCollection() {
  459.       return this.m_IWMPPlayer != null ? this.m_IWMPPlayer.getCdromCollection() : null;
  460.    }
  461.  
  462.    public void openPlayer(String var1) {
  463.       if (this.m_IWMPPlayer != null) {
  464.          this.m_IWMPPlayer.openPlayer(var1);
  465.       }
  466.  
  467.    }
  468.  
  469.    private native int spawnThread(int var1, int var2);
  470.  
  471.    public IWMPControls getControls() {
  472.       return this.m_IWMPPlayer != null ? this.m_IWMPPlayer.getControls() : null;
  473.    }
  474.  
  475.    public void paint(Graphics var1) {
  476.    }
  477.  
  478.    public boolean getIsRemote() {
  479.       return this.m_IWMPPlayer != null ? this.m_IWMPPlayer.getIsRemote() : false;
  480.    }
  481.  
  482.    public IWMPDVD getDvd() {
  483.       return this.m_IWMPPlayer != null ? this.m_IWMPPlayer.getDvd() : null;
  484.    }
  485.  
  486.    public IWMPMedia newMedia(String var1) {
  487.       return this.m_IWMPPlayer != null ? this.m_IWMPPlayer.newMedia(var1) : null;
  488.    }
  489.  
  490.    public String getUiMode() {
  491.       return this.m_IWMPPlayer != null ? this.m_IWMPPlayer.getUiMode() : null;
  492.    }
  493.  
  494.    public void setUiMode(String var1) {
  495.       if (this.m_IWMPPlayer != null) {
  496.          this.m_IWMPPlayer.setUiMode(var1);
  497.       }
  498.  
  499.    }
  500.  
  501.    public String getVersionInfo() {
  502.       return this.m_IWMPPlayer != null ? this.m_IWMPPlayer.getVersionInfo() : null;
  503.    }
  504.  
  505.    private native int getTargetHWND(int var1);
  506.  
  507.    private int getHWND() {
  508.       DrawingSurfaceInfo var2 = ((DrawingSurface)((Component)this).getPeer()).getDrawingSurfaceInfo();
  509.       var2.lock();
  510.       WDrawingSurfaceInfo var3 = (WDrawingSurfaceInfo)var2;
  511.       int var1 = var3.getHWnd();
  512.       var2.unlock();
  513.       return var1;
  514.    }
  515.  
  516.    public String getURL() {
  517.       return this.m_IWMPPlayer != null ? this.m_IWMPPlayer.getURL() : null;
  518.    }
  519.  
  520.    public void setURL(String var1) {
  521.       if (this.m_IWMPPlayer != null) {
  522.          this.m_IWMPPlayer.setURL(var1);
  523.       }
  524.  
  525.    }
  526.  
  527.    public boolean getEnabled() {
  528.       return this.m_IWMPPlayer != null ? this.m_IWMPPlayer.getEnabled() : false;
  529.    }
  530.  
  531.    public void setEnabled(boolean var1) {
  532.       if (this.m_IWMPPlayer != null) {
  533.          this.m_IWMPPlayer.setEnabled(var1);
  534.       }
  535.  
  536.    }
  537.  
  538.    public IWMPError getError() {
  539.       return this.m_IWMPPlayer != null ? this.m_IWMPPlayer.getError() : null;
  540.    }
  541.  
  542.    public IWMPClosedCaption getClosedCaption() {
  543.       return this.m_IWMPPlayer != null ? this.m_IWMPPlayer.getClosedCaption() : null;
  544.    }
  545. }
  546.