[matroska] r850 - in trunk/JEBML: . src src/org/ebml src/org/ebml/sample

[email protected]
Newsgroups gmane.comp.multimedia.matroska.cvs
Message-ID <[email protected]>
Author: jcsston
Date: 2004-10-02 00:45:43 +0400 (Sat, 02 Oct 2004)
New Revision: 850

Added:
   trunk/JEBML/src/org/ebml/sample/
   trunk/JEBML/src/org/ebml/sample/CommandLineSample.java
   trunk/JEBML/src/org/ebml/sample/EbmlSampleApp.java
   trunk/JEBML/src/org/ebml/sample/EbmlSampleAppFrame.java
Removed:
   trunk/JEBML/src/ebml/
Modified:
   trunk/JEBML/JEBML.jpx
Log:
Moved sample apps from ebml namespace to org.ebml.sample

Modified: trunk/JEBML/JEBML.jpx
===================================================================
--- trunk/JEBML/JEBML.jpx	2004-10-01 20:35:50 UTC (rev 849)
+++ trunk/JEBML/JEBML.jpx	2004-10-01 20:45:43 UTC (rev 850)
@@ -21,7 +21,7 @@
   <property category="runtime.0" name="BuildTargetOnRun" value="com.borland.jbuilder.build.ProjectBuilder$ProjectBuildAction;make"/>
   <property category="runtime.0" name="ConfigurationName" value="EbmlSampleApp"/>
   <property category="runtime.0" name="RunnableType" value="com.borland.jbuilder.runtime.ApplicationRunner"/>
-  <property category="runtime.0" name="application.class" value="ebml.EbmlSampleApp"/>
+  <property category="runtime.0" name="application.class" value="org.ebml.sample.EbmlSampleApp"/>
   <property category="runtime.1" name="BuildTargetOnRun" value="com.borland.jbuilder.build.ProjectBuilder$ProjectBuildAction;make"/>
   <property category="runtime.1" name="ConfigurationName" value="JMStudio - JMF"/>
   <property category="runtime.1" name="RunnableType" value="com.borland.jbuilder.runtime.ApplicationRunner"/>
@@ -82,7 +82,7 @@
     <property category="archiving" name="executableFiles.3" value=""/>
     <property category="archiving" name="executableFiles.4" value="JEBML2-solaris"/>
     <property category="archiving" name="executableFiles.5" value="JEBML2-mac"/>
-    <property category="archiving" name="manifestMainClass" value="ebml.EbmlSampleApp"/>
+    <property category="archiving" name="manifestMainClass" value="org.ebml.sample.EbmlSampleApp"/>
     <property category="archiving" name="targetCompressed" value="1"/>
     <property category="archiving" name="targetPath" value="JEBML-Native.jar"/>
     <property category="archiving" name="usingRules" value="1"/>
@@ -93,12 +93,11 @@
     <property category="archiving" name="targetCompressed" value="1"/>
     <property category="archiving" name="targetPath" value="JEBML-src.jar"/>
   </node>
-  <file path="src/org/ebml/BinaryElement.java"/>
-  <file path="src/ebml/CommandLineSample.java"/>
+  <file path="src/org/ebml/sample/CommandLineSample.java"/>
+  <file path="src/org/ebml/sample/EbmlSampleApp.java"/>
+  <file path="src/org/ebml/sample/EbmlSampleAppFrame.java"/>
   <file path="src/org/ebml/DataSource.java"/>
   <file path="src/org/ebml/EBMLReader.java"/>
-  <file path="src/ebml/EbmlSampleApp.java"/>
-  <file path="src/ebml/EbmlSampleAppFrame.java"/>
   <file path="src/org/ebml/Element.java"/>
   <file path="src/org/ebml/InputStreamDataSource.java"/>
   <file path="src/org/ebml/SignedInteger.java"/>

Added: trunk/JEBML/src/org/ebml/sample/CommandLineSample.java
===================================================================
--- trunk/JEBML/src/org/ebml/sample/CommandLineSample.java	2004-10-01 20:35:50 UTC (rev 849)
+++ trunk/JEBML/src/org/ebml/sample/CommandLineSample.java	2004-10-01 20:45:43 UTC (rev 850)
@@ -0,0 +1,38 @@
+package org.ebml.sample;
+
+import org.ebml.matroska.*;
+import java.io.*;
+
+/**
+ * <p>Title: JEBML</p>
+ * <p>Description: Java Classes to Read EBML Elements</p>
+ * <p>Copyright: Copyright (c) 2002-2004 John Cannon <[email protected]>, Jory Stone <[email protected]></p>
+ * <p>Company: </p>
+ * @author jcsston
+ * @version 1.0
+ */
+
+public class CommandLineSample {
+  public static void main(String[] args) {
+    System.out.println("JEBML CommandLineSample - (c) 2004 Jory 'jcsston' Stone <[email protected]>");
+
+    if (args.length < 2) {
+      System.out.println("Please provide a matroska filename on the command-line");
+    }
+
+    try {
+      System.out.println("Scanning file: " + args[1]);
+
+      FileInputStream iFS = new FileInputStream(args[1]);
+      MatroskaFile mF = new MatroskaFile(iFS);
+      mF.readFile();
+
+      System.out.println(mF.getReport());
+
+      System.out.println("Scan complete");
+    } catch (java.io.FileNotFoundException ex) {
+      ex.printStackTrace();
+    }
+
+  }
+}
\ No newline at end of file

Added: trunk/JEBML/src/org/ebml/sample/EbmlSampleApp.java
===================================================================
--- trunk/JEBML/src/org/ebml/sample/EbmlSampleApp.java	2004-10-01 20:35:50 UTC (rev 849)
+++ trunk/JEBML/src/org/ebml/sample/EbmlSampleApp.java	2004-10-01 20:45:43 UTC (rev 850)
@@ -0,0 +1,53 @@
+package org.ebml.sample;
+
+import java.awt.*;
+import javax.swing.*;
+
+/**
+ * <p>Title: EBMLReader</p>
+ * <p>Description: Java Classes to Read EBML Elements</p>
+ * <p>Copyright: Copyright (c) 2004 Jory Stone <[email protected]></p>
+ * <p>Company: </p>
+ * @author jcsston
+ * @version 1.0
+ */
+
+public class EbmlSampleApp {
+  boolean packFrame = false;
+
+  //Construct the application
+  public EbmlSampleApp() {
+    EbmlSampleAppFrame frame = new EbmlSampleAppFrame();
+    //Validate frames that have preset sizes
+    //Pack frames that have useful preferred size info, e.g. from their layout
+    if (packFrame) {
+      frame.pack();
+    }
+    else {
+      frame.validate();
+    }
+    //Center the window
+    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
+    Dimension frameSize = frame.getSize();
+    if (frameSize.height > screenSize.height) {
+      frameSize.height = screenSize.height;
+    }
+    if (frameSize.width > screenSize.width) {
+      frameSize.width = screenSize.width;
+    }
+    frame.setLocation((screenSize.width - frameSize.width) / 2,
+                      (screenSize.height - frameSize.height) / 2);
+    frame.setVisible(true);
+  }
+
+  //Main method
+  public static void main(String[] args) {
+    try {
+      UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
+    }
+    catch (Exception e) {
+      e.printStackTrace();
+    }
+    new EbmlSampleApp();
+  }
+}
\ No newline at end of file

Added: trunk/JEBML/src/org/ebml/sample/EbmlSampleAppFrame.java
===================================================================
--- trunk/JEBML/src/org/ebml/sample/EbmlSampleAppFrame.java	2004-10-01 20:35:50 UTC (rev 849)
+++ trunk/JEBML/src/org/ebml/sample/EbmlSampleAppFrame.java	2004-10-01 20:45:43 UTC (rev 850)
@@ -0,0 +1,151 @@
+package org.ebml.sample;
+
+import java.io.*;
+import java.lang.*;
+
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+
+import org.ebml.*;
+import org.ebml.matroska.MatroskaFile;
+
+/**
+ * <p>Title: EBMLReader</p>
+ * <p>Description: Java Classes to Read EBML Elements</p>
+ * <p>Copyright: Copyright (c) 2004 Jory Stone <[email protected]></p>
+ * <p>Company: </p>
+ * @author jcsston
+ * @version 1.0
+ */
+
+public class EbmlSampleAppFrame
+    extends JFrame {
+  JPanel contentPane;
+  JMenuBar jMenuBar1 = new JMenuBar();
+  JMenu jMenuFile = new JMenu();
+  JMenuItem jMenuFileExit = new JMenuItem();
+  BorderLayout borderLayout1 = new BorderLayout();
+  JMenuItem jMenuItemOpen = new JMenuItem();
+  JFileChooser jFileChooser1 = new JFileChooser();
+  JTextArea jTextArea1 = new JTextArea();
+
+  //Construct the frame
+  public EbmlSampleAppFrame() {
+    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
+    try {
+      jbInit();
+    }
+    catch (Exception e) {
+      e.printStackTrace();
+    }
+  }
+
+  //Component initialization
+  private void jbInit() throws Exception {
+    contentPane = (JPanel)this.getContentPane();
+    contentPane.setLayout(borderLayout1);
+    this.setSize(new Dimension(400, 300));
+    this.setTitle("Ebml Sample App");
+    jMenuFile.setText("File");
+    jMenuFileExit.setText("Exit");
+    jMenuFileExit.addActionListener(new
+        EbmlSampleAppFrame_jMenuFileExit_ActionAdapter(this));
+    jMenuItemOpen.setText("Open");
+    jMenuItemOpen.addActionListener(new
+        EbmlSampleAppFrame_jMenuItemOpen_actionAdapter(this));
+    jFileChooser1.setAcceptAllFileFilterUsed(true);
+    jFileChooser1.setDialogTitle("Select a Matroska File");
+    jFileChooser1.setFileFilter(null);
+    jTextArea1.setTabSize(8);
+    jMenuFile.add(jMenuItemOpen);
+    jMenuFile.add(jMenuFileExit);
+    jMenuBar1.add(jMenuFile);
+    contentPane.add(jTextArea1, BorderLayout.CENTER);
+    this.setJMenuBar(jMenuBar1);
+  }
+
+  //File | Exit action performed
+  public void jMenuFileExit_actionPerformed(ActionEvent e) {
+    System.exit(0);
+  }
+
+  //Overridden so we can exit when window is closed
+  protected void processWindowEvent(WindowEvent e) {
+    super.processWindowEvent(e);
+    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
+      jMenuFileExit_actionPerformed(null);
+    }
+  }
+
+  void jMenuItemOpen_actionPerformed(ActionEvent e) {
+    try {
+      jFileChooser1.setFileFilter(new org.ebml.matroska.MatroskaFileFilter());
+
+      int ret = jFileChooser1.showOpenDialog(this);
+      if (ret == JFileChooser.APPROVE_OPTION) {
+        /*
+        FileInputStream inFS1 = new FileInputStream("I:\\videos\\111-Videos_111\\Linkin Park - Crawling-remux.mkvmerge.mp3");
+        FileOutputStream outFS1 = new FileOutputStream("I:\\videos\\111-Videos_111\\Linkin Park - Crawling-remux.mkvmerge.java.mp3");
+        byte [] buffer = new byte[64];
+        int len = 64;
+        while (len > 0) {
+          len = inFS1.read(buffer);
+          outFS1.write(buffer, 0, len);
+        }
+        */
+        FileOutputStream outFS = new FileOutputStream(jFileChooser1.getSelectedFile() + ".mp3");
+        FileInputStream ioF = new FileInputStream(jFileChooser1.getSelectedFile());
+        jTextArea1.append("Scanning file: " + jFileChooser1.getSelectedFile().toString() + "\n");
+
+        MatroskaFile mF = new MatroskaFile(ioF);
+        mF.readFile();
+        jTextArea1.append(mF.getReport());
+
+        /*MatroskaFile.MatroskaFrame frame = mF.getNextFrame(2);
+        while (frame != null) {
+          frame = mF.getNextFrame(2);
+          if (frame != null)
+            outFS.write(frame.Data);
+        }*/
+
+        jTextArea1.append("Scan complete.\n");
+      }
+    } catch (java.io.FileNotFoundException ex) {
+      jTextArea1.append("File Not Found!\n");
+      ex.printStackTrace();
+    } catch (java.io.IOException ex) {
+      jTextArea1.append("File IO Error!\n");
+      ex.printStackTrace();
+    } catch (java.lang.RuntimeException ex) {
+      jTextArea1.append("Error: " + ex.toString() + ex.getMessage() + "\"\n");
+      ex.printStackTrace();
+    }
+  }
+}
+
+class EbmlSampleAppFrame_jMenuFileExit_ActionAdapter
+    implements ActionListener {
+  EbmlSampleAppFrame adaptee;
+
+  EbmlSampleAppFrame_jMenuFileExit_ActionAdapter(EbmlSampleAppFrame adaptee) {
+    this.adaptee = adaptee;
+  }
+
+  public void actionPerformed(ActionEvent e) {
+    adaptee.jMenuFileExit_actionPerformed(e);
+  }
+}
+
+class EbmlSampleAppFrame_jMenuItemOpen_actionAdapter
+    implements java.awt.event.ActionListener {
+  EbmlSampleAppFrame adaptee;
+
+  EbmlSampleAppFrame_jMenuItemOpen_actionAdapter(EbmlSampleAppFrame adaptee) {
+    this.adaptee = adaptee;
+  }
+
+  public void actionPerformed(ActionEvent e) {
+    adaptee.jMenuItemOpen_actionPerformed(e);
+  }
+}
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.