From 7c78086bb95cadc21248401f3e7a6b0a5466ac2e Mon Sep 17 00:00:00 2001
From: Yang Gu <yang.gu@intel.com>
Date: Thu, 17 Dec 2009 11:14:07 +0800
Subject: [PATCH] Add full features to Huawei modem

---
 plugins/huawei.c |   23 +++++++++++++++++++++--
 1 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/plugins/huawei.c b/plugins/huawei.c
index 50db2c5..34f263e 100644
--- a/plugins/huawei.c
+++ b/plugins/huawei.c
@@ -33,14 +33,21 @@
 
 #define OFONO_API_SUBJECT_TO_CHANGE
 #include <ofono/plugin.h>
+#include <ofono/log.h>
 #include <ofono/modem.h>
+#include <ofono/call-barring.h>
+#include <ofono/call-forwarding.h>
+#include <ofono/call-meter.h>
+#include <ofono/call-settings.h>
 #include <ofono/devinfo.h>
+#include <ofono/message-waiting.h>
 #include <ofono/netreg.h>
+#include <ofono/phonebook.h>
 #include <ofono/sim.h>
 #include <ofono/sms.h>
+#include <ofono/ssn.h>
+#include <ofono/ussd.h>
 #include <ofono/voicecall.h>
-#include <ofono/log.h>
-
 #include <drivers/atmodem/vendor.h>
 
 struct huawei_data {
@@ -173,11 +180,23 @@ static void huawei_pre_sim(struct ofono_modem *modem)
 static void huawei_post_sim(struct ofono_modem *modem)
 {
 	struct huawei_data *data = ofono_modem_get_data(modem);
+	struct ofono_message_waiting *mw;
 
 	DBG("%p", modem);
 
+	ofono_ussd_create(modem, 0, "atmodem", data->chat);
+	ofono_call_forwarding_create(modem, 0, "atmodem", data->chat);
+	ofono_call_settings_create(modem, 0, "atmodem", data->chat);
 	ofono_netreg_create(modem, 0, "atmodem", data->chat);
+	ofono_call_meter_create(modem, 0, "atmodem", data->chat);
+	ofono_call_barring_create(modem, 0, "atmodem", data->chat);
+	ofono_ssn_create(modem, 0, "atmodem", data->chat);
 	ofono_sms_create(modem, OFONO_VENDOR_QUALCOMM_MSM, "atmodem", data->chat);
+	ofono_phonebook_create(modem, 0, "atmodem", data->chat);
+
+	mw = ofono_message_waiting_create(modem);
+	if (mw)
+		ofono_message_waiting_register(mw);
 }
 
 static struct ofono_modem_driver huawei_driver = {
-- 
1.6.5.2

