/******************************************************************************
 *
 *  Copyright 2003-2012 Broadcom Corporation
 *
 *  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.
 *
 ******************************************************************************/

/******************************************************************************
 *
 *  This is the public interface file for the object push (OP) client and
 *  server subsystem of BTA, Broadcom's Bluetooth application layer for
 *  mobile phones.
 *
 ******************************************************************************/
#ifndef BTA_OP_API_H
#define BTA_OP_API_H

#include <cstdint>

/*****************************************************************************
 *  Constants and data types
 ****************************************************************************/
/* Extra Debug Code */
#ifndef BTA_OPS_DEBUG
#define BTA_OPS_DEBUG false
#endif

#ifndef BTA_OPC_DEBUG
#define BTA_OPC_DEBUG false
#endif

/* Object format */
#define BTA_OP_VCARD21_FMT 1  /* vCard 2.1 */
#define BTA_OP_VCARD30_FMT 2  /* vCard 3.0 */
#define BTA_OP_VCAL_FMT 3     /* vCal 1.0 */
#define BTA_OP_ICAL_FMT 4     /* iCal 2.0 */
#define BTA_OP_VNOTE_FMT 5    /* vNote */
#define BTA_OP_VMSG_FMT 6     /* vMessage */
#define BTA_OP_OTHER_FMT 0xFF /* other format */

typedef uint8_t tBTA_OP_FMT;

/* Object format mask */
#define BTA_OP_VCARD21_MASK 0x01 /* vCard 2.1 */
#define BTA_OP_VCARD30_MASK 0x02 /* vCard 3.0 */
#define BTA_OP_VCAL_MASK 0x04    /* vCal 1.0 */
#define BTA_OP_ICAL_MASK 0x08    /* iCal 2.0 */
#define BTA_OP_VNOTE_MASK 0x10   /* vNote */
#define BTA_OP_VMSG_MASK 0x20    /* vMessage */
#define BTA_OP_ANY_MASK 0x40     /* Any type of object. */

typedef uint8_t tBTA_OP_FMT_MASK;

#endif /* BTA_OP_API_H */
