java-gobject-introspection-examples r2 - in trunk: . src src/org src/org/verbum
- From: walters svn gnome org
- To: svn-commits-list gnome org
- Subject: java-gobject-introspection-examples r2 - in trunk: . src src/org src/org/verbum
- Date: Tue, 2 Sep 2008 00:43:08 +0000 (UTC)
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]