/* * Copyright (C) 2012 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef FILTERS_H #define FILTERS_H #include #include #include #include typedef unsigned int Color; #define SetColor(a, r, g, b) ((a << 24) | (b << 16) | (g << 8) | (r << 0)); #define GetA(color) (((color) >> 24) & 0xFF) #define GetB(color) (((color) >> 16) & 0xFF) #define GetG(color) (((color) >> 8) & 0xFF) #define GetR(color) (((color) >> 0) & 0xFF) #define MIN(a, b) (a < b ? a : b) #define MAX(a, b) (a > b ? a : b) #define LOG(msg...) __android_log_print(ANDROID_LOG_VERBOSE, "NativeFilters", msg) #define JNIFUNCF(cls, name, vars...) Java_com_android_gallery3d_filtershow_filters_ ## cls ## _ ## name(JNIEnv* env, jobject obj, vars) #define RED i #define GREEN i+1 #define BLUE i+2 #define ALPHA i+3 #define CLAMP(c) (MAX(0, MIN(255, c))) __inline__ unsigned char clamp(int c); __inline__ int clampMax(int c,int max); extern void rgb2hsv( unsigned char *rgb,int rgbOff,unsigned short *hsv,int hsvOff); extern void hsv2rgb(unsigned short *hsv,int hsvOff,unsigned char *rgb,int rgbOff); extern void filterRedEye(unsigned char *src, unsigned char *dest, int iw, int ih, short *rect); extern double fastevalPoly(double *poly,int n, double x); #endif // FILTERS_H