data.h revision cafa51fdd8b3f29ebaa0682070100825a9cce2a8
1cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten/*
2cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten * Copyright (C) 2010 The Android Open Source Project
3cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten *
4cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten * Licensed under the Apache License, Version 2.0 (the "License");
5cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten * you may not use this file except in compliance with the License.
6cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten * You may obtain a copy of the License at
7cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten *
8cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten *      http://www.apache.org/licenses/LICENSE-2.0
9cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten *
10cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten * Unless required by applicable law or agreed to in writing, software
11cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten * distributed under the License is distributed on an "AS IS" BASIS,
12cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten * See the License for the specific language governing permissions and
14cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten * limitations under the License.
15cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten */
16cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten
17cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten/* Our own merged version of SLDataSource and SLDataSink */
18cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten
19cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kastentypedef union {
20cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten    SLuint32 mLocatorType;
21cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten    SLDataLocator_Address mAddress;
22cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten    SLDataLocator_BufferQueue mBufferQueue;
23cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten    SLDataLocator_IODevice mIODevice;
24cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten    SLDataLocator_MIDIBufferQueue mMIDIBufferQueue;
25cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten    SLDataLocator_OutputMix mOutputMix;
26cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten    SLDataLocator_URI mURI;
27cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten#ifdef ANDROID
28cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten    SLDataLocator_AndroidFD mFD;
29cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten    SLDataLocator_AndroidBufferQueue mBQ;
30cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten#endif
31cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten} DataLocator;
32cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten
33cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kastentypedef union {
34cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten    SLuint32 mFormatType;
35cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten    SLDataFormat_PCM mPCM;
36cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten    SLDataFormat_MIME mMIME;
37cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten} DataFormat;
38cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten
39cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kastentypedef struct {
40cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten    union {
41cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten        SLDataSource mSource;
42cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten        SLDataSink mSink;
43cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten        struct {
44cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten            DataLocator *pLocator;
45cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten            DataFormat *pFormat;
46cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten        } mNeutral;
47cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten    } u;
48cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten    DataLocator mLocator;
49cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten    DataFormat mFormat;
50cafa51fdd8b3f29ebaa0682070100825a9cce2a8Glenn Kasten} DataLocatorFormat;
51