/* * Copyright (C) 2013-2015 RoboVM AB * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.robovm.apple.coreaudio; /*<imports>*/ import java.io.*; import java.nio.*; import java.util.*; import org.robovm.objc.*; import org.robovm.objc.annotation.*; import org.robovm.objc.block.*; import org.robovm.rt.*; import org.robovm.rt.annotation.*; import org.robovm.rt.bro.*; import org.robovm.rt.bro.annotation.*; import org.robovm.rt.bro.ptr.*; import org.robovm.apple.foundation.*; import org.robovm.apple.corefoundation.*; /*</imports>*/ /*<javadoc>*/ /*</javadoc>*/ /*<annotations>*//*</annotations>*/ /*<visibility>*/public/*</visibility>*/ class /*<name>*/AudioBufferList/*</name>*/ extends /*<extends>*/Struct<AudioBufferList>/*</extends>*/ /*<implements>*//*</implements>*/ { /*<ptr>*/public static class AudioBufferListPtr extends Ptr<AudioBufferList, AudioBufferListPtr> {}/*</ptr>*/ /*<bind>*/ /*</bind>*/ /*<constants>*//*</constants>*/ /*<constructors>*/ public AudioBufferList() {} /*</constructors>*/ /*<properties>*//*</properties>*/ public int getBufferCount() { return getNumberBuffers(); } public AudioBuffer getBuffer(int index) { if (index >= getBufferCount()) { throw new ArrayIndexOutOfBoundsException(index); } return getBuffers0().next(index).get(); } public AudioBufferList setBuffer(int index, AudioBuffer buffer) { return setBuffer(index, buffer.getHandle()); } public AudioBufferList setBuffer(int index, long handle) { if (index >= getBufferCount()) { throw new ArrayIndexOutOfBoundsException(index); } getBuffers0().next(index).set(handle); return this; } public AudioBuffer[] getBuffers() { int count = getBufferCount(); AudioBuffer[] array = new AudioBuffer[count]; AudioBuffer.AudioBufferPtr ptr = getBuffers0(); for (int i = 0; i < count; i++) { array[i] = ptr.next(i).get(); } return array; } public AudioBufferList setBuffers(AudioBuffer[] buffers) { this.setNumberBuffers(buffers.length); getBuffers0().set(buffers); return this; } /*<members>*/ @StructMember(0) protected native int getNumberBuffers(); @StructMember(0) protected native AudioBufferList setNumberBuffers(int numberBuffers); @StructMember(1) protected native AudioBuffer.AudioBufferPtr getBuffers0(); @StructMember(1) protected native AudioBufferList setBuffers0(AudioBuffer.AudioBufferPtr buffers0); /*</members>*/ /*<methods>*//*</methods>*/ }