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> 22f14db3c3ebc1ea29b3eb5b7e9b944cabcb5f83ffEric Laurent#include <binder/Parcelable.h> 23a54f1283fdd9adbd64ecca4e14af56aaa0e8c825Eric Laurent#include <system/audio.h> 24a54f1283fdd9adbd64ecca4e14af56aaa0e8c825Eric Laurent#include <utils/String16.h> 257f6b40d78b1976c78d1300e8a51fda36eeb50c5dPhil Burk 26a54f1283fdd9adbd64ecca4e14af56aaa0e8c825Eric Laurentnamespace android { 27a54f1283fdd9adbd64ecca4e14af56aaa0e8c825Eric Laurent 28f14db3c3ebc1ea29b3eb5b7e9b944cabcb5f83ffEric Laurentclass AudioClient : public Parcelable { 29a54f1283fdd9adbd64ecca4e14af56aaa0e8c825Eric Laurent public: 30a54f1283fdd9adbd64ecca4e14af56aaa0e8c825Eric Laurent AudioClient() : 3121da647792c0b78ab3943be0f32066015d5e8c34Eric Laurent clientUid(-1), clientPid(-1), clientTid(-1), packageName("") {} 327f6b40d78b1976c78d1300e8a51fda36eeb50c5dPhil Burk 33a54f1283fdd9adbd64ecca4e14af56aaa0e8c825Eric Laurent uid_t clientUid; 34a54f1283fdd9adbd64ecca4e14af56aaa0e8c825Eric Laurent pid_t clientPid; 3521da647792c0b78ab3943be0f32066015d5e8c34Eric Laurent pid_t clientTid; 36a54f1283fdd9adbd64ecca4e14af56aaa0e8c825Eric Laurent String16 packageName; 3721da647792c0b78ab3943be0f32066015d5e8c34Eric Laurent 38f14db3c3ebc1ea29b3eb5b7e9b944cabcb5f83ffEric Laurent status_t readFromParcel(const Parcel *parcel) override { 3921da647792c0b78ab3943be0f32066015d5e8c34Eric Laurent clientUid = parcel->readInt32(); 4021da647792c0b78ab3943be0f32066015d5e8c34Eric Laurent clientPid = parcel->readInt32(); 4121da647792c0b78ab3943be0f32066015d5e8c34Eric Laurent clientTid = parcel->readInt32(); 4221da647792c0b78ab3943be0f32066015d5e8c34Eric Laurent packageName = parcel->readString16(); 4321da647792c0b78ab3943be0f32066015d5e8c34Eric Laurent return NO_ERROR; 4421da647792c0b78ab3943be0f32066015d5e8c34Eric Laurent } 4521da647792c0b78ab3943be0f32066015d5e8c34Eric Laurent 46f14db3c3ebc1ea29b3eb5b7e9b944cabcb5f83ffEric Laurent status_t writeToParcel(Parcel *parcel) const override { 4721da647792c0b78ab3943be0f32066015d5e8c34Eric Laurent parcel->writeInt32(clientUid); 4821da647792c0b78ab3943be0f32066015d5e8c34Eric Laurent parcel->writeInt32(clientPid); 4921da647792c0b78ab3943be0f32066015d5e8c34Eric Laurent parcel->writeInt32(clientTid); 5021da647792c0b78ab3943be0f32066015d5e8c34Eric Laurent parcel->writeString16(packageName); 5121da647792c0b78ab3943be0f32066015d5e8c34Eric Laurent return NO_ERROR; 5221da647792c0b78ab3943be0f32066015d5e8c34Eric Laurent } 537f6b40d78b1976c78d1300e8a51fda36eeb50c5dPhil Burk}; 547f6b40d78b1976c78d1300e8a51fda36eeb50c5dPhil Burk 55a54f1283fdd9adbd64ecca4e14af56aaa0e8c825Eric Laurent}; // namespace android 567f6b40d78b1976c78d1300e8a51fda36eeb50c5dPhil Burk 57a54f1283fdd9adbd64ecca4e14af56aaa0e8c825Eric Laurent#endif // ANDROID_AUDIO_CLIENT_H 58