Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
JDK 11 java.desktop.jmod - Desktop Module
JDK 11 java.desktop.jmod is the JMOD file for JDK 11 Desktop module.
JDK 11 Desktop module compiled class files are stored in \fyicenter\jdk-11.0.1\jmods\java.desktop.jmod.
JDK 11 Desktop module compiled class files are also linked and stored in the \fyicenter\jdk-11.0.1\lib\modules JImage file.
JDK 11 Desktop module source code files are stored in \fyicenter\jdk-11.0.1\lib\src.zip\java.desktop.
You can click and view the content of each source code file in the list below.
✍: FYIcenter
⏎ com/sun/media/sound/DataPusher.java
/* * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */ package com.sun.media.sound; import java.util.Arrays; import javax.sound.sampled.AudioFormat; import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.SourceDataLine; /** * Class to write an AudioInputStream to a SourceDataLine. * Was previously an inner class in various classes like JavaSoundAudioClip * and sun.audio.AudioDevice. * It auto-opens and closes the SourceDataLine. * * @author Kara Kytle * @author Florian Bomers */ public final class DataPusher implements Runnable { private static final int AUTO_CLOSE_TIME = 5000; private static final boolean DEBUG = false; private final SourceDataLine source; private final AudioFormat format; // stream as source data private final AudioInputStream ais; // byte array as source data private final byte[] audioData; private final int audioDataByteLength; private int pos; private int newPos = -1; private boolean looping; private Thread pushThread = null; private int wantedState; private int threadState; private final int STATE_NONE = 0; private final int STATE_PLAYING = 1; private final int STATE_WAITING = 2; private final int STATE_STOPPING = 3; private final int STATE_STOPPED = 4; private final int BUFFER_SIZE = 16384; public DataPusher(SourceDataLine sourceLine, AudioFormat format, byte[] audioData, int byteLength) { this(sourceLine, format, null, audioData, byteLength); } public DataPusher(SourceDataLine sourceLine, AudioInputStream ais) { this(sourceLine, ais.getFormat(), ais, null, 0); } private DataPusher(final SourceDataLine source, final AudioFormat format, final AudioInputStream ais, final byte[] audioData, final int audioDataByteLength) { this.source = source; this.format = format; this.ais = ais; this.audioDataByteLength = audioDataByteLength; this.audioData = audioData == null ? null : Arrays.copyOf(audioData, audioData.length); } public synchronized void start() { start(false); } public synchronized void start(boolean loop) { if (DEBUG || Printer.debug) Printer.debug("> DataPusher.start(loop="+loop+")"); try { if (threadState == STATE_STOPPING) { // wait that the thread has finished stopping if (DEBUG || Printer.trace)Printer.trace("DataPusher.start(): calling stop()"); stop(); } looping = loop; newPos = 0; wantedState = STATE_PLAYING; if (!source.isOpen()) { if (DEBUG || Printer.trace)Printer.trace("DataPusher: source.open()"); source.open(format); } if (DEBUG || Printer.trace)Printer.trace("DataPusher: source.flush()"); source.flush(); if (DEBUG || Printer.trace)Printer.trace("DataPusher: source.start()"); source.start(); if (pushThread == null) { if (DEBUG || Printer.debug) Printer.debug("DataPusher.start(): Starting push"); pushThread = JSSecurityManager.createThread(this, null, // name false, // daemon -1, // priority true); // doStart } notifyAll(); } catch (Exception e) { if (DEBUG || Printer.err) e.printStackTrace(); } if (DEBUG || Printer.debug) Printer.debug("< DataPusher.start(loop="+loop+")"); } public synchronized void stop() { if (DEBUG || Printer.debug) Printer.debug("> DataPusher.stop()"); if (threadState == STATE_STOPPING || threadState == STATE_STOPPED || pushThread == null) { if (DEBUG || Printer.debug) Printer.debug("DataPusher.stop(): nothing to do"); return; } if (DEBUG || Printer.debug) Printer.debug("DataPusher.stop(): Stopping push"); wantedState = STATE_WAITING; if (source != null) { if (DEBUG || Printer.trace)Printer.trace("DataPusher: source.flush()"); source.flush(); } notifyAll(); int maxWaitCount = 50; // 5 seconds while ((maxWaitCount-- >= 0) && (threadState == STATE_PLAYING)) { try { wait(100); } catch (InterruptedException e) { } } if (DEBUG || Printer.debug) Printer.debug("< DataPusher.stop()"); } synchronized void close() { if (source != null) { if (DEBUG || Printer.trace)Printer.trace("DataPusher.close(): source.close()"); source.close(); } } /** * Write data to the source data line. */ @Override public void run() { byte[] buffer = null; boolean useStream = (ais != null); if (useStream) { buffer = new byte[BUFFER_SIZE]; } else { buffer = audioData; } while (wantedState != STATE_STOPPING) { //try { if (wantedState == STATE_WAITING) { // wait for 5 seconds - maybe the clip is to be played again if (DEBUG || Printer.debug)Printer.debug("DataPusher.run(): waiting 5 seconds"); try { synchronized(this) { threadState = STATE_WAITING; wantedState = STATE_STOPPING; wait(AUTO_CLOSE_TIME); } } catch (InterruptedException ie) {} if (DEBUG || Printer.debug)Printer.debug("DataPusher.run(): waiting finished"); continue; } if (newPos >= 0) { pos = newPos; newPos = -1; } threadState = STATE_PLAYING; int toWrite = BUFFER_SIZE; if (useStream) { try { pos = 0; // always write from beginning of buffer // don't use read(byte[]), because some streams // may not override that method toWrite = ais.read(buffer, 0, buffer.length); } catch (java.io.IOException ioe) { // end of stream toWrite = -1; } } else { if (toWrite > audioDataByteLength - pos) { toWrite = audioDataByteLength - pos; } if (toWrite == 0) { toWrite = -1; // end of "stream" } } if (toWrite < 0) { if (DEBUG || Printer.debug) Printer.debug("DataPusher.run(): Found end of stream"); if (!useStream && looping) { if (DEBUG || Printer.debug)Printer.debug("DataPusher.run(): setting pos back to 0"); pos = 0; continue; } if (DEBUG || Printer.debug)Printer.debug("DataPusher.run(): calling drain()"); wantedState = STATE_WAITING; source.drain(); continue; } if (DEBUG || Printer.debug) Printer.debug("> DataPusher.run(): Writing " + toWrite + " bytes"); int bytesWritten = source.write(buffer, pos, toWrite); pos += bytesWritten; if (DEBUG || Printer.debug) Printer.debug("< DataPusher.run(): Wrote " + bytesWritten + " bytes"); } threadState = STATE_STOPPING; if (DEBUG || Printer.debug)Printer.debug("DataPusher: closing device"); if (Printer.trace)Printer.trace("DataPusher: source.flush()"); source.flush(); if (DEBUG || Printer.trace)Printer.trace("DataPusher: source.stop()"); source.stop(); if (DEBUG || Printer.trace)Printer.trace("DataPusher: source.flush()"); source.flush(); if (DEBUG || Printer.trace)Printer.trace("DataPusher: source.close()"); source.close(); threadState = STATE_STOPPED; synchronized (this) { pushThread = null; notifyAll(); } if (DEBUG || Printer.debug)Printer.debug("DataPusher:end of thread"); } } // class DataPusher
⏎ com/sun/media/sound/DataPusher.java
Or download all of them as a single archive file:
File name: java.desktop-11.0.1-src.zip File size: 7974380 bytes Release date: 2018-11-04 Download
⇒ JDK 11 java.instrument.jmod - Instrument Module
2022-08-06, 193045👍, 5💬
Popular Posts:
JDK 11 java.rmi.jmod is the JMOD file for JDK 11 RMI (Remote Method Invocation) module. JDK 11 RMI m...
JDK 11 jdk.crypto.ec.jmod is the JMOD file for JDK 11 Crypto EC module. JDK 11 Crypto EC module comp...
JLayer is a library that decodes/plays/converts MPEG 1/2/2.5 Layer 1/2/3 (i.e. MP3) in real time for...
What Is commons-lang3-3.1.jar? commons-lang3-3.1.jar is the JAR file for Apache Commons Lang 3.1, wh...
Java Architecture for XML Binding (JAXB) is a Java API that allows Java developers to map Java class...