/** \file vp_api_profile_type.h
 * vp_api_profile_type.h
 *
 * Header file for the VpProfileDataType typedef.  If using the API "apitypes",
 * this file is automatically included.  Otherwise, this type is defined in the
 * "profiles8.h" and "profiles16.h" files (app should include only one).
 *
 * Copyright (c) 2005, Legerity Inc.
 * All rights reserved
 *
 * This software is the property of Legerity , Inc. Please refer to the
 * Non Disclosure Agreement (NDA) that you have signed for more information
 * on legal obligations in using, modifying or distributing this file.
 */

#ifndef API_PROFILE_TYPE_H
#define API_PROFILE_TYPE_H

typedef unsigned char VpProfileDataType;

#endif

