14#ifndef IRMP_SHAREDLIB_H
15#define IRMP_SHAREDLIB_H
26# if defined WIN32 && defined _MSC_VER
27# define IRMP_DLLEXPORT __declspec(dllexport)
29# define IRMP_DLLEXPORT __attribute__((visibility("default")))
34#define WITH_IRMP_DETECT_BUFFER 0
92#define IRMP_DATA_FLAG_REPETITION (1 << 0)
93#define IRMP_DATA_FLAG_RELEASE (1 << 1)
124#if WITH_IRMP_DETECT_BUFFER
IRMP_DLLEXPORT int irmp_add_one_sample(int sample)
Feed an individual sample to the detector.
IRMP_DLLEXPORT void irmp_reset_state(void)
Reset internal decoder state.
IRMP_DLLEXPORT size_t irmp_instance_id(struct irmp_instance *state)
Get the client ID of an IRMP decoder core instance.
IRMP_DLLEXPORT const char * irmp_get_protocol_name(uint32_t protocol)
Resolve the protocol identifer to the protocol's name.
IRMP_DLLEXPORT void irmp_instance_free(struct irmp_instance *state)
Release a decoder instance.
IRMP_DLLEXPORT uint32_t irmp_get_sample_rate(void)
Query the IRMP library's configured sample rate.
IRMP_DLLEXPORT struct irmp_instance * irmp_instance_alloc(void)
Allocate a decoder instance.
IRMP_DLLEXPORT int irmp_instance_lock(struct irmp_instance *state, int wait)
Acquire a decoder instance's lock.
IRMP_DLLEXPORT int irmp_get_result_data(struct irmp_result_data *data)
Query result data after detection succeeded.
IRMP_DLLEXPORT void irmp_instance_unlock(struct irmp_instance *state)
Release a decoder instance's lock.
IR decoder result data at the library's public API.
const char * protocol_name
!< protocol, e.g.
uint32_t address
!< name of the protocol
uint32_t command
!< address
uint32_t start_sample
!< flags currently only repetition (bit 0)
uint32_t end_sample
!< the sampleindex there the detected command started