1b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala/*
2b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * Copyright (C) 2013 The Android Open Source Project
3b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala *
4b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * Licensed under the Apache License, Version 2.0 (the "License");
5b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * you may not use this file except in compliance with the License.
6b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * You may obtain a copy of the License at
7b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala *
8b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala *      http://www.apache.org/licenses/LICENSE-2.0
9b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala *
10b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * Unless required by applicable law or agreed to in writing, software
11b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * distributed under the License is distributed on an "AS IS" BASIS,
12b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * See the License for the specific language governing permissions and
14b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * limitations under the License.
15b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala */
16b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala
172f1a2e423e0fbb64467d6fcfa4e82c6384f31210Eino-Ville Talvalapackage android.hardware.camera2;
18b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala
19b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala/**
20b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * A simple immutable class for describing the dimensions of camera image
21b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * buffers.
22b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala */
23b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvalapublic final class Size {
24b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala    /**
25b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala     * Create a new immutable Size instance
26b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala     *
27b519cc52ecba8f44da31173c9fc90a7b66d52b79Igor Murashkin     * @param width The width to store in the Size instance
28b519cc52ecba8f44da31173c9fc90a7b66d52b79Igor Murashkin     * @param height The height to store in the Size instance
29b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala     */
30d7bf1778df666e82268d1e4549d248ce3dfc9665Igor Murashkin    public Size(int width, int height) {
31b519cc52ecba8f44da31173c9fc90a7b66d52b79Igor Murashkin        mWidth = width;
32b519cc52ecba8f44da31173c9fc90a7b66d52b79Igor Murashkin        mHeight = height;
33b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala    }
34b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala
35b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala    public final int getWidth() {
36b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala        return mWidth;
37b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala    }
38b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala
39b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala    public final int getHeight() {
40b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala        return mHeight;
41b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala    }
42b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala
43d7bf1778df666e82268d1e4549d248ce3dfc9665Igor Murashkin    @Override
44d7bf1778df666e82268d1e4549d248ce3dfc9665Igor Murashkin    public boolean equals(Object obj) {
45d7bf1778df666e82268d1e4549d248ce3dfc9665Igor Murashkin        if (obj == null) {
46d7bf1778df666e82268d1e4549d248ce3dfc9665Igor Murashkin            return false;
47d7bf1778df666e82268d1e4549d248ce3dfc9665Igor Murashkin        }
48d7bf1778df666e82268d1e4549d248ce3dfc9665Igor Murashkin        if (this == obj) {
49d7bf1778df666e82268d1e4549d248ce3dfc9665Igor Murashkin            return true;
50d7bf1778df666e82268d1e4549d248ce3dfc9665Igor Murashkin        }
51d7bf1778df666e82268d1e4549d248ce3dfc9665Igor Murashkin        if (obj instanceof Size) {
52d7bf1778df666e82268d1e4549d248ce3dfc9665Igor Murashkin            Size other = (Size) obj;
53d7bf1778df666e82268d1e4549d248ce3dfc9665Igor Murashkin            return mWidth == other.mWidth && mHeight == other.mHeight;
54d7bf1778df666e82268d1e4549d248ce3dfc9665Igor Murashkin        }
55d7bf1778df666e82268d1e4549d248ce3dfc9665Igor Murashkin        return false;
56d7bf1778df666e82268d1e4549d248ce3dfc9665Igor Murashkin    }
57d7bf1778df666e82268d1e4549d248ce3dfc9665Igor Murashkin
58d7bf1778df666e82268d1e4549d248ce3dfc9665Igor Murashkin    @Override
59d7bf1778df666e82268d1e4549d248ce3dfc9665Igor Murashkin    public String toString() {
60d7bf1778df666e82268d1e4549d248ce3dfc9665Igor Murashkin        return mWidth + "x" + mHeight;
61d7bf1778df666e82268d1e4549d248ce3dfc9665Igor Murashkin    }
62d7bf1778df666e82268d1e4549d248ce3dfc9665Igor Murashkin
63d7bf1778df666e82268d1e4549d248ce3dfc9665Igor Murashkin    @Override
64d7bf1778df666e82268d1e4549d248ce3dfc9665Igor Murashkin    public int hashCode() {
65d7bf1778df666e82268d1e4549d248ce3dfc9665Igor Murashkin        final long INT_MASK = 0xffffffffL;
66d7bf1778df666e82268d1e4549d248ce3dfc9665Igor Murashkin
67d7bf1778df666e82268d1e4549d248ce3dfc9665Igor Murashkin        long asLong = INT_MASK & mWidth;
68d7bf1778df666e82268d1e4549d248ce3dfc9665Igor Murashkin        asLong <<= 32;
69d7bf1778df666e82268d1e4549d248ce3dfc9665Igor Murashkin
70d7bf1778df666e82268d1e4549d248ce3dfc9665Igor Murashkin        asLong |= (INT_MASK & mHeight);
71d7bf1778df666e82268d1e4549d248ce3dfc9665Igor Murashkin
72d7bf1778df666e82268d1e4549d248ce3dfc9665Igor Murashkin        return ((Long)asLong).hashCode();
73d7bf1778df666e82268d1e4549d248ce3dfc9665Igor Murashkin    }
74d7bf1778df666e82268d1e4549d248ce3dfc9665Igor Murashkin
75b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala    private final int mWidth;
76b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala    private final int mHeight;
77b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala};
78