# HG changeset patch # User Anton Epple # Date 1369740454 -7200 # Node ID 17885c601f9185fcc29d60a1a4e8a40f223a517c # Parent 3a1fb8e1378d1d8b8f1d4c92a04f6b8b6e93aa5b refactoring diff -r 3a1fb8e1378d -r 17885c601f91 javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/HTML5AudioEnvironment.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/HTML5AudioEnvironment.java Tue May 28 13:27:34 2013 +0200 @@ -0,0 +1,75 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package org.apidesign.bck2brwsr.htmlpage; + +import net.java.html.sound.AudioClip; +import org.apidesign.bck2brwsr.core.JavaScriptBody; +import org.apidesign.html.sound.spi.AudioEnvironment; + +/** + * + * @author antonepple + */ +public class HTML5AudioEnvironment implements AudioEnvironment { + + @Override + public Object play(AudioClip clip, Object nativeClip) { + if (nativeClip == null) { + nativeClip = createNativeCLip(clip.getSource()); + } + playImpl(nativeClip); + return nativeClip; + } + + @Override + public Object pause(AudioClip aThis, Object nativeClip) { + if (nativeClip == null) { + return null; // only can pause a cached clip + } + pauseImpl(nativeClip); + return nativeClip; + } + + @Override + public Object stop(AudioClip aThis, Object nativeClip) { + if (nativeClip == null) { + return null; // only can stop a cached clip + } + stopImpl(nativeClip); + return nativeClip; + } + + @Override + public Object setVolume(AudioClip aThis, int volume, Object cached) { + throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + } + + @Override + public Object playFrom(AudioClip clip, int seconds, Object nativeClip) { + if (nativeClip == null) { + nativeClip = createNativeCLip(clip.getSource()); + } + playFromImpl(nativeClip); + return nativeClip; + } + + @JavaScriptBody(args = "nativeClip", body = "nativeClip.play()") + private native void playImpl(Object nativeClip); + + @JavaScriptBody(args = "nativeClip", body = "nativeClip.pause(), nativeClip.currentTime=0;") + private void stopImpl(Object nativeClip) { + } + + @JavaScriptBody(args = "nativeClip", body = "nativeClip.pause();") + private void pauseImpl(Object nativeClip) { + } + + @JavaScriptBody(args = "nativeClip", body = "nativeClip.currentTime=0; nativeClip.play();") + private void playFromImpl(Object nativeClip) { + } + + @JavaScriptBody(args = {"src"}, body = "var clip = new Audio();clip.src=src; return clip;") + private native Object createNativeCLip(String src); +} diff -r 3a1fb8e1378d -r 17885c601f91 javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/HTML5SoundEnvironment.java --- a/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/HTML5SoundEnvironment.java Tue May 28 13:26:37 2013 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,75 +0,0 @@ -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ -package org.apidesign.bck2brwsr.htmlpage; - -import net.java.html.sound.AudioClip; -import org.apidesign.bck2brwsr.core.JavaScriptBody; -import org.apidesign.html.sound.spi.AudioEnvironment; - -/** - * - * @author antonepple - */ -public class HTML5AudioEnvironment implements AudioEnvironment { - - @Override - public Object play(AudioClip clip, Object nativeClip) { - if (nativeClip == null) { - nativeClip = createNativeCLip(clip.getSource()); - } - playImpl(nativeClip); - return nativeClip; - } - - @Override - public Object pause(AudioClip aThis, Object nativeClip) { - if (nativeClip == null) { - return null; // only can pause a cached clip - } - pauseImpl(nativeClip); - return nativeClip; - } - - @Override - public Object stop(AudioClip aThis, Object nativeClip) { - if (nativeClip == null) { - return null; // only can stop a cached clip - } - stopImpl(nativeClip); - return nativeClip; - } - - @Override - public Object setVolume(AudioClip aThis, int volume, Object cached) { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. - } - - @Override - public Object playFrom(AudioClip clip, int seconds, Object nativeClip) { - if (nativeClip == null) { - nativeClip = createNativeCLip(clip.getSource()); - } - playFromImpl(nativeClip); - return nativeClip; - } - - @JavaScriptBody(args = "nativeClip", body = "nativeClip.play()") - private native void playImpl(Object nativeClip); - - @JavaScriptBody(args = "nativeClip", body = "nativeClip.pause(), nativeClip.currentTime=0;") - private void stopImpl(Object nativeClip) { - } - - @JavaScriptBody(args = "nativeClip", body = "nativeClip.pause();") - private void pauseImpl(Object nativeClip) { - } - - @JavaScriptBody(args = "nativeClip", body = "nativeClip.currentTime=0; nativeClip.play();") - private void playFromImpl(Object nativeClip) { - } - - @JavaScriptBody(args = {"src"}, body = "var clip = new Audio();clip.src=src; return clip;") - private native Object createNativeCLip(String src); -}