@Override
    public boolean queueBuffer( byte[] buffer )
    {
        // Stream buffers can only be queued for streaming sources:
        if( errorCheck( channelType != SoundSystemConfig.TYPE_STREAMING,
                        "Buffers may only be queued for streaming sources." ) )
            return false;
        
        //ByteBuffer byteBuffer = ByteBuffer.wrap( buffer, 0, buffer.length );
        ByteBuffer byteBuffer = (ByteBuffer) BufferUtils.createByteBuffer(
                                           buffer.length ).put( buffer ).flip();

        IntBuffer intBuffer = BufferUtils.createIntBuffer( 1 );

        AL10.alSourceUnqueueBuffers( ALSource.get( 0 ), intBuffer );
        if( checkALError() )
            return false;

        if( AL10.alIsBuffer( intBuffer.get( 0 ) ) )
            millisPreviouslyPlayed += millisInBuffer( intBuffer.get( 0 ) );
        checkALError();

        AL10.alBufferData( intBuffer.get(0), ALformat, byteBuffer, sampleRate );
        if( checkALError() )
            return false;

        AL10.alSourceQueueBuffers( ALSource.get( 0 ), intBuffer );
        if( checkALError() )
            return false;

        return true;
    }