예제 #1
0
파일: SoundBite.java 프로젝트: KenC57/JMRI
 public final boolean init(VSDFile vf, BufferMode mode) {
   AudioManager am = jmri.InstanceManager.getDefault(jmri.AudioManager.class);
   if (!initialized) {
     try {
       sound_src = (AudioSource) am.provideAudio(SrcSysNamePrefix + system_name);
       sound_src.setUserName(BufUserNamePrefix + user_name);
       setLooped(false);
       if (mode == BufferMode.BOUND_MODE) {
         sound_buf = (AudioBuffer) am.provideAudio(BufSysNamePrefix + system_name);
         sound_buf.setUserName(BufUserNamePrefix + user_name);
         if (vf == null) {
           sound_buf.setURL(vsd_file_base + filename);
         } else {
           java.io.InputStream ins = vf.getInputStream(filename);
           if (ins != null) {
             sound_buf.setInputStream(ins);
           } else {
             return (false);
           }
         }
         sound_src.setAssignedBuffer(sound_buf);
         setLength();
       }
     } catch (AudioException | IllegalArgumentException ex) {
       log.warn("Problem creating SoundBite: " + ex);
     }
   }
   return (true);
 }
예제 #2
0
파일: SoundBite.java 프로젝트: KenC57/JMRI
 public void mute(boolean m) {
   if (m) {
     volume = sound_src.getGain();
     sound_src.setGain(0);
   } else {
     sound_src.setGain(volume);
   }
 }
예제 #3
0
파일: SoundBite.java 프로젝트: KenC57/JMRI
 public void setLooped(boolean loop, int minloops, int maxloops) {
   this.looped = loop;
   this.minloops = minloops;
   this.maxloops = maxloops;
   sound_src.setLooped(looped);
   sound_src.setMinLoops(minloops);
   sound_src.setMaxLoops(maxloops);
 }
예제 #4
0
파일: SoundBite.java 프로젝트: KenC57/JMRI
 public void fadeOut() {
   // Skip the fade action if the fade out time is zero.
   if (sound_src.getFadeOut() == 0) {
     sound_src.stop();
   } else {
     sound_src.fadeOut();
   }
   is_playing = false;
 }
예제 #5
0
파일: SoundBite.java 프로젝트: KenC57/JMRI
 public void fadeIn() {
   // Skip the fade action if the fade in time is zero.
   if (sound_src.getFadeIn() == 0) {
     sound_src.play();
   } else {
     sound_src.fadeIn();
   }
   is_playing = true;
 }
예제 #6
0
파일: SoundBite.java 프로젝트: KenC57/JMRI
 public int numQueuedBuffers() {
   if (bufferMode == BufferMode.QUEUE_MODE) {
     return (sound_src.numQueuedBuffers());
   } else {
     return (0);
   }
 }
예제 #7
0
파일: SoundBite.java 프로젝트: KenC57/JMRI
  public void queueBuffer(AudioBuffer b) {
    if (bufferMode == BufferMode.QUEUE_MODE) {
      if (b == null) {
        log.debug("queueAudioBuffer with null buffer input");
        return;
      }
      if (sound_src == null) {
        log.debug("queueAudioBuffer with null sound_src");
        return;
      }

      log.debug("Queueing Buffer: " + b.getSystemName());

      sound_src.queueBuffer(b);
    } else {
      log.warn("Attempted to Queue buffer to a Bound SoundBite.");
    }
  }
예제 #8
0
파일: SoundBite.java 프로젝트: KenC57/JMRI
 public void setVolume(float v) {
   volume = v * gain;
   sound_src.setGain(volume);
 }
예제 #9
0
파일: SoundBite.java 프로젝트: KenC57/JMRI
 public int getFadeInTime() {
   return (sound_src.getFadeIn());
 }
예제 #10
0
파일: SoundBite.java 프로젝트: KenC57/JMRI
 @Override
 public void setPosition(PhysicalLocation v) {
   super.setPosition(v);
   sound_src.setPosition(v);
 }
예제 #11
0
파일: SoundBite.java 프로젝트: KenC57/JMRI
 public void rewind() {
   sound_src.rewind();
 }
예제 #12
0
파일: SoundBite.java 프로젝트: KenC57/JMRI
 public int getFadeOutTime() {
   return (sound_src.getFadeOut());
 }
예제 #13
0
파일: SoundBite.java 프로젝트: KenC57/JMRI
 public void stop() {
   sound_src.stop();
   is_playing = false;
 }
예제 #14
0
파일: SoundBite.java 프로젝트: KenC57/JMRI
 public void pause() {
   sound_src.pause();
   is_playing = false;
 }
예제 #15
0
파일: SoundBite.java 프로젝트: KenC57/JMRI
 public void loop() {
   sound_src.play();
   is_playing = true;
 }
예제 #16
0
파일: SoundBite.java 프로젝트: KenC57/JMRI
 public void setFadeInTime(int t) {
   sound_src.setFadeIn(t);
 }
예제 #17
0
파일: SoundBite.java 프로젝트: KenC57/JMRI
 public void unqueueBuffers() {
   if (bufferMode == BufferMode.QUEUE_MODE) {
     sound_src.unqueueBuffers();
   }
 }
예제 #18
0
파일: SoundBite.java 프로젝트: KenC57/JMRI
 public void setFadeTimes(int in, int out) {
   sound_src.setFadeIn(in);
   sound_src.setFadeOut(out);
 }
예제 #19
0
파일: SoundBite.java 프로젝트: KenC57/JMRI
 public void setFadeOutTime(int t) {
   sound_src.setFadeOut(t);
 }