• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2008 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #include <utils/Errors.h>
18 #include <binder/Parcel.h>
19 #include <gui/ISurfaceComposerClient.h>
20 #include <gui/IGraphicBufferProducer.h>
21 #include <private/gui/LayerState.h>
22 
23 namespace android {
24 
write(Parcel & output) const25 status_t layer_state_t::write(Parcel& output) const
26 {
27     output.writeStrongBinder(surface);
28     output.writeInt32(what);
29     output.writeFloat(x);
30     output.writeFloat(y);
31     output.writeInt32(z);
32     output.writeInt32(w);
33     output.writeInt32(h);
34     output.writeInt32(layerStack);
35     output.writeFloat(alpha);
36     output.writeInt32(flags);
37     output.writeInt32(mask);
38     *reinterpret_cast<layer_state_t::matrix22_t *>(
39             output.writeInplace(sizeof(layer_state_t::matrix22_t))) = matrix;
40     output.write(crop);
41     output.write(transparentRegion);
42     return NO_ERROR;
43 }
44 
read(const Parcel & input)45 status_t layer_state_t::read(const Parcel& input)
46 {
47     surface = input.readStrongBinder();
48     what = input.readInt32();
49     x = input.readFloat();
50     y = input.readFloat();
51     z = input.readInt32();
52     w = input.readInt32();
53     h = input.readInt32();
54     layerStack = input.readInt32();
55     alpha = input.readFloat();
56     flags = input.readInt32();
57     mask = input.readInt32();
58     matrix = *reinterpret_cast<layer_state_t::matrix22_t const *>(
59             input.readInplace(sizeof(layer_state_t::matrix22_t)));
60     input.read(crop);
61     input.read(transparentRegion);
62     return NO_ERROR;
63 }
64 
write(Parcel & output) const65 status_t ComposerState::write(Parcel& output) const {
66     output.writeStrongBinder(client->asBinder());
67     return state.write(output);
68 }
69 
read(const Parcel & input)70 status_t ComposerState::read(const Parcel& input) {
71     client = interface_cast<ISurfaceComposerClient>(input.readStrongBinder());
72     return state.read(input);
73 }
74 
75 
write(Parcel & output) const76 status_t DisplayState::write(Parcel& output) const {
77     output.writeStrongBinder(token);
78     output.writeStrongBinder(surface->asBinder());
79     output.writeInt32(what);
80     output.writeInt32(layerStack);
81     output.writeInt32(orientation);
82     output.write(viewport);
83     output.write(frame);
84     output.writeInt32(width);
85     output.writeInt32(height);
86     return NO_ERROR;
87 }
88 
read(const Parcel & input)89 status_t DisplayState::read(const Parcel& input) {
90     token = input.readStrongBinder();
91     surface = interface_cast<IGraphicBufferProducer>(input.readStrongBinder());
92     what = input.readInt32();
93     layerStack = input.readInt32();
94     orientation = input.readInt32();
95     input.read(viewport);
96     input.read(frame);
97     width = input.readInt32();
98     height = input.readInt32();
99     return NO_ERROR;
100 }
101 
102 
103 }; // namespace android
104