AudioClient.h revision 21da647792c0b78ab3943be0f32066015d5e8c34
17f6b40d78b1976c78d1300e8a51fda36eeb50c5dPhil Burk/*
27f6b40d78b1976c78d1300e8a51fda36eeb50c5dPhil Burk * Copyright (C) 2017 The Android Open Source Project
37f6b40d78b1976c78d1300e8a51fda36eeb50c5dPhil Burk *
47f6b40d78b1976c78d1300e8a51fda36eeb50c5dPhil Burk * Licensed under the Apache License, Version 2.0 (the "License");
57f6b40d78b1976c78d1300e8a51fda36eeb50c5dPhil Burk * you may not use this file except in compliance with the License.
67f6b40d78b1976c78d1300e8a51fda36eeb50c5dPhil Burk * You may obtain a copy of the License at
77f6b40d78b1976c78d1300e8a51fda36eeb50c5dPhil Burk *
87f6b40d78b1976c78d1300e8a51fda36eeb50c5dPhil Burk *      http://www.apache.org/licenses/LICENSE-2.0
97f6b40d78b1976c78d1300e8a51fda36eeb50c5dPhil Burk *
107f6b40d78b1976c78d1300e8a51fda36eeb50c5dPhil Burk * Unless required by applicable law or agreed to in writing, software
117f6b40d78b1976c78d1300e8a51fda36eeb50c5dPhil Burk * distributed under the License is distributed on an "AS IS" BASIS,
127f6b40d78b1976c78d1300e8a51fda36eeb50c5dPhil Burk * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
137f6b40d78b1976c78d1300e8a51fda36eeb50c5dPhil Burk * See the License for the specific language governing permissions and
147f6b40d78b1976c78d1300e8a51fda36eeb50c5dPhil Burk * limitations under the License.
157f6b40d78b1976c78d1300e8a51fda36eeb50c5dPhil Burk */
167f6b40d78b1976c78d1300e8a51fda36eeb50c5dPhil Burk
177f6b40d78b1976c78d1300e8a51fda36eeb50c5dPhil Burk
18a54f1283fdd9adbd64ecca4e14af56aaa0e8c825Eric Laurent#ifndef ANDROID_AUDIO_CLIENT_H
19a54f1283fdd9adbd64ecca4e14af56aaa0e8c825Eric Laurent#define ANDROID_AUDIO_CLIENT_H
207f6b40d78b1976c78d1300e8a51fda36eeb50c5dPhil Burk
2121da647792c0b78ab3943be0f32066015d5e8c34Eric Laurent#include <binder/Parcel.h>
22a54f1283fdd9adbd64ecca4e14af56aaa0e8c825Eric Laurent#include <system/audio.h>
23a54f1283fdd9adbd64ecca4e14af56aaa0e8c825Eric Laurent#include <utils/String16.h>
247f6b40d78b1976c78d1300e8a51fda36eeb50c5dPhil Burk
25a54f1283fdd9adbd64ecca4e14af56aaa0e8c825Eric Laurentnamespace android {
26a54f1283fdd9adbd64ecca4e14af56aaa0e8c825Eric Laurent
27a54f1283fdd9adbd64ecca4e14af56aaa0e8c825Eric Laurentclass AudioClient {
28a54f1283fdd9adbd64ecca4e14af56aaa0e8c825Eric Laurent public:
29a54f1283fdd9adbd64ecca4e14af56aaa0e8c825Eric Laurent    AudioClient() :
3021da647792c0b78ab3943be0f32066015d5e8c34Eric Laurent        clientUid(-1), clientPid(-1), clientTid(-1), packageName("") {}
317f6b40d78b1976c78d1300e8a51fda36eeb50c5dPhil Burk
32a54f1283fdd9adbd64ecca4e14af56aaa0e8c825Eric Laurent    uid_t clientUid;
33a54f1283fdd9adbd64ecca4e14af56aaa0e8c825Eric Laurent    pid_t clientPid;
3421da647792c0b78ab3943be0f32066015d5e8c34Eric Laurent    pid_t clientTid;
35a54f1283fdd9adbd64ecca4e14af56aaa0e8c825Eric Laurent    String16 packageName;
3621da647792c0b78ab3943be0f32066015d5e8c34Eric Laurent
3721da647792c0b78ab3943be0f32066015d5e8c34Eric Laurent    status_t readFromParcel(Parcel *parcel) {
3821da647792c0b78ab3943be0f32066015d5e8c34Eric Laurent        clientUid = parcel->readInt32();
3921da647792c0b78ab3943be0f32066015d5e8c34Eric Laurent        clientPid = parcel->readInt32();
4021da647792c0b78ab3943be0f32066015d5e8c34Eric Laurent        clientTid = parcel->readInt32();
4121da647792c0b78ab3943be0f32066015d5e8c34Eric Laurent        packageName = parcel->readString16();
4221da647792c0b78ab3943be0f32066015d5e8c34Eric Laurent        return NO_ERROR;
4321da647792c0b78ab3943be0f32066015d5e8c34Eric Laurent    }
4421da647792c0b78ab3943be0f32066015d5e8c34Eric Laurent
4521da647792c0b78ab3943be0f32066015d5e8c34Eric Laurent    status_t writeToParcel(Parcel *parcel) const {
4621da647792c0b78ab3943be0f32066015d5e8c34Eric Laurent        parcel->writeInt32(clientUid);
4721da647792c0b78ab3943be0f32066015d5e8c34Eric Laurent        parcel->writeInt32(clientPid);
4821da647792c0b78ab3943be0f32066015d5e8c34Eric Laurent        parcel->writeInt32(clientTid);
4921da647792c0b78ab3943be0f32066015d5e8c34Eric Laurent        parcel->writeString16(packageName);
5021da647792c0b78ab3943be0f32066015d5e8c34Eric Laurent        return NO_ERROR;
5121da647792c0b78ab3943be0f32066015d5e8c34Eric Laurent    }
527f6b40d78b1976c78d1300e8a51fda36eeb50c5dPhil Burk};
537f6b40d78b1976c78d1300e8a51fda36eeb50c5dPhil Burk
54a54f1283fdd9adbd64ecca4e14af56aaa0e8c825Eric Laurent}; // namespace android
557f6b40d78b1976c78d1300e8a51fda36eeb50c5dPhil Burk
56a54f1283fdd9adbd64ecca4e14af56aaa0e8c825Eric Laurent#endif  // ANDROID_AUDIO_CLIENT_H
57