---
include/handsfree-audio.h | 4 +++-
src/handsfree-audio.c | 5 ++++-
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/include/handsfree-audio.h b/include/handsfree-audio.h
index 69f5a8e..e99a2dd 100644
--- a/include/handsfree-audio.h
+++ b/include/handsfree-audio.h
@@ -26,11 +26,13 @@
extern "C" {
#endif
+#include <stdint.h>
#include <ofono/types.h>
struct ofono_handsfree_card;
struct ofono_handsfree_card_driver {
+ uint16_t version;
int (*probe) (struct ofono_handsfree_card *card, void *data);
void (*remove) (struct ofono_handsfree_card *card);
int (*audio_connect) (const char *remote, const char *local);
@@ -42,7 +44,7 @@ void ofono_handsfree_card_driver_unregister(
const struct ofono_handsfree_card_driver *d);
struct ofono_handsfree_card *ofono_handsfree_card_create(const char *remote,
- const char *local);
+ const char *local, uint16_t version);
int ofono_handsfree_card_register(struct ofono_handsfree_card *card);
void ofono_handsfree_card_remove(struct ofono_handsfree_card *card);
diff --git a/src/handsfree-audio.c b/src/handsfree-audio.c
index ffae47b..1e636cc 100644
--- a/src/handsfree-audio.c
+++ b/src/handsfree-audio.c
@@ -254,7 +254,7 @@ static const GDBusSignalTable card_signals[] = {
};
struct ofono_handsfree_card *ofono_handsfree_card_create(const char *remote,
- const char *local)
+ const char *local, uint16_t version)
{
struct ofono_handsfree_card *card;
GSList *l;
@@ -269,6 +269,9 @@ struct ofono_handsfree_card
*ofono_handsfree_card_create(const char *remote,
for (l = g_drivers; l; l = g_slist_next(l)) {
const struct ofono_handsfree_card_driver *drv = l->data;
+ if (drv->version != version)
+ continue;
+
if (drv->probe(card, NULL) < 0)
continue;
--
1.7.11.7
_______________________________________________
ofono mailing list
[email protected]
http://lists.ofono.org/listinfo/ofono