java-gobject-introspection-examples r2 - in trunk: . src src/org src/org/verbum



Author: walters
Date: Tue Sep  2 00:43:08 2008
New Revision: 2
URL: http://svn.gnome.org/viewvc/java-gobject-introspection-examples?rev=2&view=rev

Log:
Initial import of examples


Added:
   trunk/.classpath
   trunk/.project
   trunk/MAINTAINERS
   trunk/src/
   trunk/src/org/
   trunk/src/org/verbum/
   trunk/src/org/verbum/GStreamerTest.java
   trunk/src/org/verbum/GtkTest.java
   trunk/src/org/verbum/HippoCanvasTest.java
   trunk/src/org/verbum/NotifyTest.java
   trunk/src/org/verbum/WebKitTest.java

Added: trunk/.classpath
==============================================================================
--- (empty file)
+++ trunk/.classpath	Tue Sep  2 00:43:08 2008
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="lib" path="/usr/share/java/jna.jar" sourcepath="/src/fedora/jna/devel/jna-3.0.4-svn630/src"/>
+	<classpathentry kind="lib" path="/usr/share/java/objectweb-asm/asm.jar"/>
+	<classpathentry kind="lib" path="/usr/share/java/objectweb-asm/asm-commons.jar"/>
+	<classpathentry kind="lib" path="/usr/share/java/objectweb-asm/asm-analysis.jar"/>
+	<classpathentry kind="lib" path="/usr/share/java/objectweb-asm/asm-tree.jar"/>
+	<classpathentry kind="lib" path="/usr/share/java/objectweb-asm/asm-util.jar"/>
+	<classpathentry kind="lib" path="/src/build/gi/share/girepository/Gtk.jar"/>
+	<classpathentry kind="lib" path="/src/build/gi/share/girepository/GdkPixbuf.jar"/>
+	<classpathentry kind="lib" path="/src/build/gi/share/girepository/Atk.jar"/>
+	<classpathentry kind="lib" path="/src/build/gi/share/girepository/WebKit.jar"/>
+	<classpathentry kind="lib" path="/src/build/gi/share/girepository/Gio.jar"/>
+	<classpathentry kind="lib" path="/src/build/gi/share/girepository/Gdk.jar"/>
+	<classpathentry kind="lib" path="/src/build/gi/share/girepository/HippoCanvas.jar"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/java-gobject-introspection"/>
+	<classpathentry kind="lib" path="/src/build/gi/share/java/jgir.jar"/>
+	<classpathentry kind="lib" path="/src/build/gi/share/girepository/Gst.jar"/>
+	<classpathentry kind="lib" path="/src/build/gi/share/girepository/Notify.jar"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>

Added: trunk/.project
==============================================================================
--- (empty file)
+++ trunk/.project	Tue Sep  2 00:43:08 2008
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>Test</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

Added: trunk/MAINTAINERS
==============================================================================
--- (empty file)
+++ trunk/MAINTAINERS	Tue Sep  2 00:43:08 2008
@@ -0,0 +1,3 @@
+Full Name
+E-mail: walters verbum org
+Userid: walters
\ No newline at end of file

Added: trunk/src/org/verbum/GStreamerTest.java
==============================================================================
--- (empty file)
+++ trunk/src/org/verbum/GStreamerTest.java	Tue Sep  2 00:43:08 2008
@@ -0,0 +1,116 @@
+package org.verbum;
+
+import org.gnome.gir.dynamic.Gst.Bus;
+import org.gnome.gir.dynamic.Gst.BusFunc;
+import org.gnome.gir.dynamic.Gst.DebugLevel;
+import org.gnome.gir.dynamic.Gst.Element;
+import org.gnome.gir.dynamic.Gst.GstGlobals;
+import org.gnome.gir.dynamic.Gst.Message;
+import org.gnome.gir.dynamic.Gst.MessageType;
+import org.gnome.gir.dynamic.Gst.Pad;
+import org.gnome.gir.dynamic.Gst.Pipeline;
+import org.gnome.gir.dynamic.Gst.State;
+import org.gnome.gir.dynamic.Gst.Element.PadAdded;
+import org.gnome.gir.gobject.MainLoop;
+
+import com.sun.jna.Pointer;
+
+public class GStreamerTest {
+	
+	public static void main(String...args) {
+		GstGlobals.init(null, null);
+		GstGlobals.debugSetDefaultThreshold(DebugLevel.DEBUG);
+		GstGlobals.debugSetColored(false);
+		GstGlobals.debugSetActive(true);
+		final MainLoop loop = new MainLoop();
+		final Pipeline pipeline;
+		final Element source, demuxer, decoder, conv, sink;
+		final Bus bus;
+		
+		pipeline = new Pipeline("audio-player");
+		source = GstGlobals.elementFactoryMake("filesrc", "file-source");
+		demuxer = GstGlobals.elementFactoryMake("oggdemux", "ogg-demuxer");
+		decoder = GstGlobals.elementFactoryMake("vorbisdec", "vorbis-decoder");
+		conv = GstGlobals.elementFactoryMake("audioconvert", "converter");
+		sink = GstGlobals.elementFactoryMake("autoaudiosink", "audio-output");
+
+		if (pipeline == null || source == null || 
+				demuxer == null || decoder == null || 
+				conv == null|| sink == null) {
+		    System.err.println("One element could not be created. Exiting.");
+		    System.exit(-1);
+		  }
+
+		  /* Set up the pipeline */
+
+		  /* we set the input filename to the source element */
+		  source.set("location", args[0]);
+		  System.out.printf("Set location to %s%n", source.get("location"));
+
+		  /* we add a message handler */
+		  bus = pipeline.getBus();
+		  bus.addWatch(new BusFunc() {
+			@Override
+			public Boolean callback(Bus arg0, Message msg, Pointer arg2) {
+				System.out.printf("Got Message type: %d%n", msg.type);
+				if (msg.type == MessageType.EOS) {
+					System.out.println("End of stream");
+					loop.quit();
+				} else if (msg.type == MessageType.ERROR) {
+					System.err.println("error!");
+					
+					loop.quit();
+				}
+				return true;
+			}
+		  }, null);
+
+		  /* we add all elements into the pipeline */
+		  /* file-source | ogg-demuxer | vorbis-decoder | converter | alsa-output */
+		  pipeline.add(source);
+		  pipeline.add(demuxer);
+		  pipeline.add(decoder);
+		  pipeline.add(conv);
+		  pipeline.add(sink);
+
+		  /* we link the elements together */
+		  /* file-source -> ogg-demuxer ~> vorbis-decoder -> converter -> alsa-output */
+		  source.link(demuxer);
+		  decoder.link(conv);
+		  conv.link(sink);
+		  demuxer.connect(new PadAdded() {
+			@Override
+			public void onPadAdded(Element src, Pad pad) {
+				  /* We can now link this pad with the vorbis-decoder sink pad */
+				  System.out.println("Dynamic pad created, linking demuxer/decoder");
+
+				  Pad sinkpad = decoder.getStaticPad("sink");
+
+				  pad.link(sinkpad);
+			}			  
+		  });
+
+		  /* note that the demuxer will be linked to the decoder dynamically.
+		     The reason is that Ogg may contain various streams (for example
+		     audio and video). The source pad(s) will be created at run time,
+		     by the demuxer when it detects the amount and nature of streams.
+		     Therefore we connect a callback function which will be executed
+		     when the "pad-added" is emitted.*/
+
+
+		  /* Set the pipeline to "playing" state*/
+		  System.out.printf("Now playing: %s%n", args[0]);
+		  pipeline.setState(State.PLAYING);
+
+
+		  /* Iterate */
+		  System.out.println("Running...");
+		  loop.run();
+
+		  /* Out of the main loop, clean up nicely */
+		  System.out.println("Returned, stopping playback");
+		  pipeline.setState(State.NULL);
+
+		  System.out.println("Deleting pipeline");
+	}
+}

Added: trunk/src/org/verbum/GtkTest.java
==============================================================================
--- (empty file)
+++ trunk/src/org/verbum/GtkTest.java	Tue Sep  2 00:43:08 2008
@@ -0,0 +1,39 @@
+package org.verbum;
+
+import org.gnome.gir.dynamic.Gdk.Event;
+import org.gnome.gir.dynamic.Gtk.GtkGlobals;
+import org.gnome.gir.dynamic.Gtk.TextBuffer;
+import org.gnome.gir.dynamic.Gtk.TextView;
+import org.gnome.gir.dynamic.Gtk.Widget;
+import org.gnome.gir.dynamic.Gtk.Window;
+import org.gnome.gir.dynamic.Gtk.WindowType;
+import org.gnome.gir.gobject.GErrorException;
+
+public class GtkTest {
+
+	public static void main(String[] args) throws GErrorException {
+		GtkGlobals.initCheck(null, null);
+		Window w = new Window(WindowType.TOPLEVEL);
+		TextView tv = new TextView();
+		final TextBuffer buf = tv.getBuffer();
+		buf.insertAtCursor("hello world!", -1);
+		w.add(tv);
+		w.setDefaultSize(640, 480);
+		w.connect(new Widget.DeleteEvent() {
+			@Override
+			public Boolean onDeleteEvent(Widget w, Event arg0) {
+				buf.insertAtCursor("DELETE ME?! NEVER!\n", -1);
+				buf.insertAtCursor("(ok, try using xkill)", -1);
+				return true;
+			}
+		});
+		try {
+			w.setIconFromFile("/usr/share/pixmaps/drscheme.png");
+		} catch (GErrorException e) {
+			System.err.println("Failed to set icon");
+			e.printStackTrace();
+		}
+		w.showAll();
+		GtkGlobals.main();
+	}
+}

Added: trunk/src/org/verbum/HippoCanvasTest.java
==============================================================================
--- (empty file)
+++ trunk/src/org/verbum/HippoCanvasTest.java	Tue Sep  2 00:43:08 2008
@@ -0,0 +1,60 @@
+package org.verbum;
+
+import java.util.HashMap;
+
+import org.gnome.gir.dynamic.Gdk.Event;
+import org.gnome.gir.dynamic.Gtk.GtkGlobals;
+import org.gnome.gir.dynamic.Gtk.Widget;
+import org.gnome.gir.dynamic.Gtk.Window;
+import org.gnome.gir.dynamic.Gtk.WindowType;
+import org.gnome.gir.dynamic.HippoCanvas.Box;
+import org.gnome.gir.dynamic.HippoCanvas.Canvas;
+import org.gnome.gir.dynamic.HippoCanvas.ItemAlignment;
+import org.gnome.gir.dynamic.HippoCanvas.Orientation;
+import org.gnome.gir.gobject.GErrorException;
+
+ SuppressWarnings("serial")
+public class HippoCanvasTest {
+
+	public static void main(String[] args) throws GErrorException {
+		GtkGlobals.initCheck(null, null);
+		Window w = new Window(WindowType.TOPLEVEL);
+		
+		w.connect(new Widget.DeleteEvent() {
+			@Override
+			public Boolean onDeleteEvent(Widget w, Event arg0) {
+				GtkGlobals.mainQuit();
+				return true;
+			}
+		});
+		
+		Box box = new Box(new HashMap<String,Object>() {
+			{
+				put("background-color", 0xFFFFFFFF);
+				put("xalign", ItemAlignment.FILL);
+				put("yalign", ItemAlignment.FILL);
+				put("orientation", Orientation.HORIZONTAL);
+			}
+		});
+		Canvas c = new Canvas();
+		w.add(c);
+		c.show();
+		c.setRoot(box);
+		c.setSizeRequest(100, 100);
+		
+		for (final int color : new int[] { 0xffff00ff, 0x000000ff, 0x444444ff, 0x666666ff, 0xaaaaaaff }) {
+			Box b2 = new Box(new HashMap<String,Object>() {
+				{
+					put("background-color", color);
+					put("box-width", 20);
+					put("box-height", 20);
+				}
+			});
+			box.append(b2, 0);			
+		}
+
+		w.show();
+		GtkGlobals.main();
+	}
+
+}

Added: trunk/src/org/verbum/NotifyTest.java
==============================================================================
--- (empty file)
+++ trunk/src/org/verbum/NotifyTest.java	Tue Sep  2 00:43:08 2008
@@ -0,0 +1,32 @@
+package org.verbum;
+
+import org.gnome.gir.dynamic.Gtk.Widget;
+import org.gnome.gir.dynamic.Notify.ActionCallback;
+import org.gnome.gir.dynamic.Notify.Notification;
+import org.gnome.gir.dynamic.Notify.NotifyGlobals;
+import org.gnome.gir.gobject.MainLoop;
+
+import com.sun.jna.Pointer;
+
+public class NotifyTest {
+
+	private static final String MESSAGE = "This is a test of the emergency Java-GObject-Introspection bindings. "
+		+"This is only a test.  Do not panic.";
+	
+	public static void main(String[] args) {
+		NotifyGlobals.init("MyApp");
+		
+		MainLoop loop = new MainLoop();
+		
+		Notification notify = new Notification("Test Notification", MESSAGE, "gtk-info", (Widget)null);
+		notify.addAction("foo", "FOO", new ActionCallback() {
+			@Override
+			public void callback(Notification arg0, String arg1, Pointer arg2) {
+				System.out.printf("User pressed %s%n", arg1);
+			}			
+		}, null, null);
+		notify.show(null);
+		loop.run();
+	}
+
+}

Added: trunk/src/org/verbum/WebKitTest.java
==============================================================================
--- (empty file)
+++ trunk/src/org/verbum/WebKitTest.java	Tue Sep  2 00:43:08 2008
@@ -0,0 +1,24 @@
+package org.verbum;
+
+import org.gnome.gir.dynamic.Gtk.GtkGlobals;
+import org.gnome.gir.dynamic.Gtk.ScrolledWindow;
+import org.gnome.gir.dynamic.Gtk.Window;
+import org.gnome.gir.dynamic.Gtk.WindowType;
+import org.gnome.gir.dynamic.WebKit.WebView;
+import org.gnome.gir.gobject.GObjectGlobals;
+
+public class WebKitTest {
+	public static void main(String[] args) {
+		GObjectGlobals.init();
+		GtkGlobals.initCheck(null, null);
+		Window w = new Window(WindowType.TOPLEVEL);
+		ScrolledWindow sw = new ScrolledWindow(null, null);
+		w.add(sw);
+		WebView wv = new WebView();
+		sw.add(wv);
+		wv.open("http://www.gnome.org";);
+		w.setDefaultSize(640, 480);
+		w.showAll();
+		GtkGlobals.main();
+	}
+}



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]