#ifndef _HDHOMERUN_PLUGIN_H_
#define _HDHOMERUN_PLUGIN_H_

void *dev_init(int *num);        // return tuner handle
void dev_release(void *handle);  // release tuner
int get_dev_name(void *handle, int index, char *name, int max_name_len);
void *dev_open(void *handle, int index, int attr);
void dev_close(void *dev);
int dev_tune(void *dev, char *channel, char *stream_tar);
int dev_stop(void *dev);
int dev_scan(void *dev, char *tuner_name, char *channel,
             struct channel_list_t **cl_p);
int dev_build_channel_table(void *dev, char *option,
                            struct channel_list_t **cl_p);
int dev_release_channel_table(void *dev);

#endif
