Home | History | Annotate | Download | only in libopensles
      1 /*
      2  * Copyright (C) 2010 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 // Logging
     18 
     19 // In order of decreasing priority, the log priority levels are:
     20 //    Assert
     21 //    E(rror)
     22 //    W(arn)
     23 //    I(nfo)
     24 //    D(ebug)
     25 //    V(erbose)
     26 // Debug and verbose are usually compiled out except during development.
     27 
     28 /** These values match the definitions in system/core/include/cutils/log.h */
     29 #define SLAndroidLogLevel_Unknown 0
     30 #define SLAndroidLogLevel_Default 1
     31 #define SLAndroidLogLevel_Verbose 2
     32 #define SLAndroidLogLevel_Debug   3
     33 #define SLAndroidLogLevel_Info    4
     34 #define SLAndroidLogLevel_Warn    5
     35 #define SLAndroidLogLevel_Error   6
     36 #define SLAndroidLogLevel_Fatal   7
     37 #define SLAndroidLogLevel_Silent  8
     38 
     39 // USE_LOG is the minimum log priority level that is enabled at build time.
     40 // It is configured in Android.mk but can be overridden per source file.
     41 #ifndef USE_LOG
     42 #define USE_LOG SLAndroidLogLevel_Info
     43 #endif
     44 
     45 
     46 #ifdef ANDROID
     47 
     48 // The usual Android LOGx macros are not available, so we use the lower-level APIs.
     49 extern const char slLogTag[];
     50 
     51 #if (USE_LOG <= SLAndroidLogLevel_Error)
     52 #define SL_LOGE(...) __android_log_print(SLAndroidLogLevel_Error, slLogTag, __VA_ARGS__)
     53 #else
     54 #define SL_LOGE(...) do { } while (0)
     55 #endif
     56 
     57 #if (USE_LOG <= SLAndroidLogLevel_Warn)
     58 #define SL_LOGW(...) __android_log_print(SLAndroidLogLevel_Warn, slLogTag, __VA_ARGS__)
     59 #else
     60 #define SL_LOGW(...) do { } while (0)
     61 #endif
     62 
     63 #if (USE_LOG <= SLAndroidLogLevel_Info)
     64 #define SL_LOGI(...) __android_log_print(SLAndroidLogLevel_Info, slLogTag, __VA_ARGS__)
     65 #else
     66 #define SL_LOGI(...) do { } while (0)
     67 #endif
     68 
     69 #if (USE_LOG <= SLAndroidLogLevel_Debug)
     70 #define SL_LOGD(...) __android_log_print(SLAndroidLogLevel_Debug, slLogTag, __VA_ARGS__)
     71 #else
     72 #define SL_LOGD(...) do { } while (0)
     73 #endif
     74 
     75 #if (USE_LOG <= SLAndroidLogLevel_Verbose)
     76 #define SL_LOGV(...) __android_log_print(SLAndroidLogLevel_Verbose, slLogTag, __VA_ARGS__)
     77 #else
     78 #define SL_LOGV(...) do { } while (0)
     79 #endif
     80 
     81 #else   // !defined(ANDROID)
     82 
     83 #if (USE_LOG <= SLAndroidLogLevel_Error)
     84 #define SL_LOGE(...) do { fprintf(stderr, "SL_LOGE: %s:%s:%d ", __FILE__, __FUNCTION__, __LINE__); \
     85     fprintf(stderr, __VA_ARGS__); fputc('\n', stderr); } while(0)
     86 #else
     87 #define SL_LOGE(...) do { } while (0)
     88 #endif
     89 
     90 #if (USE_LOG <= SLAndroidLogLevel_Warn)
     91 #define SL_LOGW(...) do { fprintf(stderr, "SL_LOGW: %s:%s:%d ", __FILE__, __FUNCTION__, __LINE__); \
     92     fprintf(stderr, __VA_ARGS__); fputc('\n', stderr); } while(0)
     93 #else
     94 #define SL_LOGW(...) do { } while (0)
     95 #endif
     96 
     97 #if (USE_LOG <= SLAndroidLogLevel_Info)
     98 #define SL_LOGI(...) do { fprintf(stderr, "SL_LOGI: %s:%s:%d ", __FILE__, __FUNCTION__, __LINE__); \
     99     fprintf(stderr, __VA_ARGS__); fputc('\n', stderr); } while(0)
    100 #else
    101 #define SL_LOGI(...) do { } while (0)
    102 #endif
    103 
    104 #if (USE_LOG <= SLAndroidLogLevel_Debug)
    105 #define SL_LOGD(...) do { fprintf(stderr, "SL_LOGD: %s:%s:%d ", __FILE__, __FUNCTION__, __LINE__); \
    106     fprintf(stderr, __VA_ARGS__); fputc('\n', stderr); } while(0)
    107 #else
    108 #define SL_LOGD(...) do { } while (0)
    109 #endif
    110 
    111 #if (USE_LOG <= SLAndroidLogLevel_Verbose)
    112 #define SL_LOGV(...) do { fprintf(stderr, "SL_LOGV: %s:%s:%d ", __FILE__, __FUNCTION__, __LINE__); \
    113     fprintf(stderr, __VA_ARGS__); fputc('\n', stderr); } while(0)
    114 #else
    115 #define SL_LOGV(...) do { } while (0)
    116 #endif
    117 
    118 #endif  // ANDROID
    119