jdk/test/javax/sound/midi/Gervill/ModelByteBufferWavetable/OpenStream.java
author serb
Tue, 12 Nov 2013 20:24:25 +0400
changeset 21596 0e3a39f29dbc
parent 6502 13b20559a04a
child 23010 6dadb192ad81
permissions -rw-r--r--
8027696: Incorrect copyright header in the tests Reviewed-by: alanb, malenkov, mullan
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6502
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
     1
/*
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
     2
 * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
     4
 *
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
21596
0e3a39f29dbc 8027696: Incorrect copyright header in the tests
serb
parents: 6502
diff changeset
     7
 * published by the Free Software Foundation.
6502
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
     8
 *
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    13
 * accompanied this code).
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    14
 *
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    18
 *
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    21
 * questions.
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    22
 */
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    23
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    24
/* @test
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    25
 @summary Test AudioFloatInputStream.getFrameLength() returned from
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    26
 ModelByteBufferWavetable openStream method */
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    27
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    28
import java.io.ByteArrayOutputStream;
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    29
import java.io.File;
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    30
import java.io.FileOutputStream;
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    31
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    32
import javax.sound.sampled.*;
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    33
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    34
import com.sun.media.sound.*;
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    35
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    36
public class OpenStream {
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    37
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    38
    static float[] testarray;
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    39
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    40
    static byte[] test_byte_array;
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    41
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    42
    static byte[] test_byte_array_8ext;
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    43
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    44
    static AudioFormat format = new AudioFormat(44100, 16, 1, true, false);
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    45
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    46
    static AudioFormat format24 = new AudioFormat(44100, 24, 1, true, false);
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    47
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    48
    static ModelByteBuffer buffer;
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    49
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    50
    static ModelByteBuffer buffer_wave;
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    51
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    52
    static ModelByteBuffer buffer8;
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    53
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    54
    static ModelByteBuffer buffer16_8;
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    55
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    56
    static ModelByteBuffer buffer24;
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    57
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    58
    static File test_file;
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    59
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    60
    static ModelByteBuffer buffer_wave_ondisk;
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    61
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    62
    static void setUp() throws Exception {
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    63
        testarray = new float[1024];
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    64
        for (int i = 0; i < 1024; i++) {
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    65
            double ii = i / 1024.0;
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    66
            ii = ii * ii;
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    67
            testarray[i] = (float) Math.sin(10 * ii * 2 * Math.PI);
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    68
            testarray[i] += (float) Math.sin(1.731 + 2 * ii * 2 * Math.PI);
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    69
            testarray[i] += (float) Math.sin(0.231 + 6.3 * ii * 2 * Math.PI);
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    70
            testarray[i] *= 0.3;
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    71
        }
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    72
        test_byte_array = new byte[testarray.length * 2];
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    73
        AudioFloatConverter.getConverter(format).toByteArray(testarray,
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    74
                test_byte_array);
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    75
        buffer = new ModelByteBuffer(test_byte_array);
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    76
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    77
        byte[] test_byte_array2 = new byte[testarray.length * 3];
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    78
        buffer24 = new ModelByteBuffer(test_byte_array2);
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    79
        test_byte_array_8ext = new byte[testarray.length];
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    80
        byte[] test_byte_array_8_16 = new byte[testarray.length * 2];
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    81
        AudioFloatConverter.getConverter(format24).toByteArray(testarray,
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    82
                test_byte_array2);
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    83
        int ix = 0;
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    84
        int x = 0;
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    85
        for (int i = 0; i < test_byte_array_8ext.length; i++) {
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    86
            test_byte_array_8ext[i] = test_byte_array2[ix++];
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    87
            test_byte_array_8_16[x++] = test_byte_array2[ix++];
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    88
            test_byte_array_8_16[x++] = test_byte_array2[ix++];
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    89
        }
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    90
        buffer16_8 = new ModelByteBuffer(test_byte_array_8_16);
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    91
        buffer8 = new ModelByteBuffer(test_byte_array_8ext);
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    92
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    93
        AudioInputStream ais = new AudioInputStream(buffer.getInputStream(),
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    94
                format, testarray.length);
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    95
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    96
        AudioSystem.write(ais, AudioFileFormat.Type.WAVE, baos);
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    97
        buffer_wave = new ModelByteBuffer(baos.toByteArray());
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    98
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
    99
        test_file = File.createTempFile("test", ".raw");
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   100
        FileOutputStream fos = new FileOutputStream(test_file);
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   101
        fos.write(baos.toByteArray());
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   102
        fos.close();
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   103
        buffer_wave_ondisk = new ModelByteBuffer(test_file);
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   104
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   105
    }
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   106
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   107
    static void tearDown() throws Exception {
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   108
        if (!test_file.delete())
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   109
            test_file.deleteOnExit();
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   110
    }
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   111
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   112
    public static void testOpenStream(ModelByteBufferWavetable wavetable)
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   113
            throws Exception {
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   114
        AudioFloatInputStream ais = wavetable.openStream();
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   115
        long frames = wavetable.getBuffer().capacity()
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   116
                / wavetable.getFormat().getFrameSize();
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   117
        long framelength = ais.getFrameLength();
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   118
        ais.close();
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   119
        if (frames != framelength) {
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   120
            throw new Exception("Incorrect framelength returned (" + frames
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   121
                    + " != " + framelength + ")");
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   122
        }
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   123
    }
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   124
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   125
    public static void main(String[] args) throws Exception {
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   126
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   127
        setUp();
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   128
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   129
        try {
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   130
            testOpenStream(new ModelByteBufferWavetable(buffer, format));
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   131
            testOpenStream(new ModelByteBufferWavetable(buffer_wave, format));
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   132
            testOpenStream(new ModelByteBufferWavetable(buffer_wave_ondisk,
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   133
                    format));
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   134
        } finally {
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   135
            tearDown();
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   136
        }
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   137
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   138
    }
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   139
13b20559a04a 6941027: Gervill update, April 2010
kalli
parents:
diff changeset
   140
}