13e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian/*
23e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian * Copyright 2013 The Android Open Source Project
33e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian *
43e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian * Licensed under the Apache License, Version 2.0 (the "License");
53e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian * you may not use this file except in compliance with the License.
63e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian * You may obtain a copy of the License at
73e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian *
83e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian *      http://www.apache.org/licenses/LICENSE-2.0
93e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian *
103e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian * Unless required by applicable law or agreed to in writing, software
113e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian * distributed under the License is distributed on an "AS IS" BASIS,
123e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
133e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian * See the License for the specific language governing permissions and
143e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian * limitations under the License.
153e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian */
163e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian
173e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian#ifndef ANDROID_SURFACE_FLINGER_COLORIZER_H
183e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian#define ANDROID_SURFACE_FLINGER_COLORIZER_H
193e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian
203e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopiannamespace android {
213e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian
223e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian// ---------------------------------------------------------------------------
233e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian
243e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopianclass Colorizer {
253e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian    bool mEnabled;
263e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopianpublic:
273e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian    enum color {
283e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian        RED     = 31,
293e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian        GREEN   = 32,
303e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian        YELLOW  = 33,
313e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian        BLUE    = 34,
323e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian        MAGENTA = 35,
333e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian        CYAN    = 36,
343e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian        WHITE   = 37
353e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian    };
363e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian
373e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian    Colorizer(bool enabled)
383e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian        : mEnabled(enabled) {
393e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian    }
403e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian
413e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian    void colorize(String8& out, color c) {
423e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian        if (mEnabled) {
433e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian            out.appendFormat("\e[%dm", c);
443e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian        }
453e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian    }
463e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian
473e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian    void bold(String8& out) {
483e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian        if (mEnabled) {
493e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian            out.append("\e[1m");
503e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian        }
513e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian    }
523e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian
533e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian    void reset(String8& out) {
543e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian        if (mEnabled) {
553e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian            out.append("\e[0m");
563e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian        }
573e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian    }
583e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian};
593e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian
603e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian// ---------------------------------------------------------------------------
613e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian
623e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian}; // namespace android
633e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian
643e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian
653e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian#endif /* ANDROID_SURFACE_FLINGER_COLORIZER_H */
66