#ifndef SOUND_FIREWIRE_CMP_H_INCLUDED
#define SOUND_FIREWIRE_CMP_H_INCLUDED
#include <linux/mutex.h>
#include <linux/types.h>
#include "iso-resources.h"
struct fw_unit;
enum cmp_direction {
CMP_INPUT = 0,
CMP_OUTPUT,
};
struct cmp_connection {
int speed;
bool connected;
struct mutex mutex;
struct fw_iso_resources resources;
__be32 last_pcr_value;
unsigned int pcr_index;
unsigned int max_speed;
enum cmp_direction direction;
};
int cmp_connection_init(struct cmp_connection *connection,
struct fw_unit *unit,
enum cmp_direction direction,
unsigned int pcr_index);
int cmp_connection_check_used(struct cmp_connection *connection, bool *used);
void cmp_connection_destroy(struct cmp_connection *connection);
int cmp_connection_reserve(struct cmp_connection *connection,
unsigned int max_payload);
void cmp_connection_release(struct cmp_connection *connection);
int cmp_connection_establish(struct cmp_connection *connection);
void cmp_connection_break(struct cmp_connection *connection);
#endif