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 20175a7206c5aea70236b916d7707ab25025eb9cd6Brian Anderson#include <utils/String8.h> 21175a7206c5aea70236b916d7707ab25025eb9cd6Brian Anderson 223e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopiannamespace android { 233e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian 243e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian// --------------------------------------------------------------------------- 253e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian 263e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopianclass Colorizer { 273e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian bool mEnabled; 283e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopianpublic: 293e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian enum color { 303e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian RED = 31, 313e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian GREEN = 32, 323e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian YELLOW = 33, 333e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian BLUE = 34, 343e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian MAGENTA = 35, 353e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian CYAN = 36, 363e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian WHITE = 37 373e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian }; 383e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian 39342b760763300593cd20b01dac8cef61e7b25b86Chih-Hung Hsieh explicit Colorizer(bool enabled) 403e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian : mEnabled(enabled) { 413e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian } 423e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian 433e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian void colorize(String8& out, color c) { 443e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian if (mEnabled) { 453e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian out.appendFormat("\e[%dm", c); 463e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian } 473e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian } 483e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian 493e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian void bold(String8& out) { 503e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian if (mEnabled) { 513e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian out.append("\e[1m"); 523e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian } 533e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian } 543e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian 553e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian void reset(String8& out) { 563e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian if (mEnabled) { 573e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian out.append("\e[0m"); 583e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian } 593e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian } 603e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian}; 613e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian 623e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian// --------------------------------------------------------------------------- 633e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian 643e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian}; // namespace android 653e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian 663e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian 673e25fd8609b100a75721be82d1d499f0ae9083cbMathias Agopian#endif /* ANDROID_SURFACE_FLINGER_COLORIZER_H */ 68