From 2effb243dfdee567a486a34ab0e51d40e953310a Mon Sep 17 00:00:00 2001
From: Charles Kerr <charles.kerr@canonical.com>
Date: Tue, 19 Aug 2014 22:13:45 -0500
Subject: initial pass at 'hello world' src + po

---
 src/main.cpp | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)
 create mode 100644 src/main.cpp

(limited to 'src/main.cpp')

diff --git a/src/main.cpp b/src/main.cpp
new file mode 100644
index 0000000..f3b5392
--- /dev/null
+++ b/src/main.cpp
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2014 Canonical Ltd.
+ *
+ * This program is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 3, as published
+ * by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranties of
+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
+ * PURPOSE.  See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Authors:
+ *   Charles Kerr <charles.kerr@canonical.com>
+ */
+
+#include <glib/gi18n.h> // bindtextdomain()
+#include <gio/gio.h>
+
+#include <locale.h>
+
+int
+main(int /*argc*/, char** /*argv*/)
+{
+    // Work around a deadlock in glib's type initialization.
+    // It can be removed when https://bugzilla.gnome.org/show_bug.cgi?id=674885 is fixed.
+    g_type_ensure(G_TYPE_DBUS_CONNECTION);
+
+    // boilerplate i18n
+    setlocale(LC_ALL, "");
+    bindtextdomain(GETTEXT_PACKAGE, GNOMELOCALEDIR);
+    textdomain(GETTEXT_PACKAGE);
+
+    auto loop = g_main_loop_new(nullptr, false);
+
+    // run until we lose the busname
+//    auto model = std::make_shared<MutableModel>();
+ //   auto world = std::shared_ptr<World>(new DBusWorld(model));
+  //  auto controller = std::make_shared<Controller>(model, world);
+   // GMenuView menu_view (model, controller);
+    // FIXME: listen for busname-lost
+    g_main_loop_run(loop);
+
+    // cleanup
+    g_main_loop_unref(loop);
+    return 0;
+}
-- 
cgit v1.2.3


From ec2c7ec58b192e0b907239ad1ff840fe69b4da56 Mon Sep 17 00:00:00 2001
From: Charles Kerr <charles.kerr@canonical.com>
Date: Tue, 19 Aug 2014 22:25:45 -0500
Subject: get skeletal service and tests building

---
 src/main.cpp | 1 +
 1 file changed, 1 insertion(+)

(limited to 'src/main.cpp')

diff --git a/src/main.cpp b/src/main.cpp
index f3b5392..5cd3581 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -42,6 +42,7 @@ main(int /*argc*/, char** /*argv*/)
   //  auto controller = std::make_shared<Controller>(model, world);
    // GMenuView menu_view (model, controller);
     // FIXME: listen for busname-lost
+    g_message("entering GMainLoop that does nothing! Woo!");
     g_main_loop_run(loop);
 
     // cleanup
-- 
cgit v1.2.3


From 1b90575c67de3cf6459785cc18e3d661a826bece Mon Sep 17 00:00:00 2001
From: Charles Kerr <charles.kerr@canonical.com>
Date: Wed, 20 Aug 2014 22:35:16 -0500
Subject: add rotation lock indicator

---
 src/main.cpp | 25 ++++++++++++++++++-------
 1 file changed, 18 insertions(+), 7 deletions(-)

(limited to 'src/main.cpp')

diff --git a/src/main.cpp b/src/main.cpp
index 5cd3581..86bdeb3 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -17,6 +17,9 @@
  *   Charles Kerr <charles.kerr@canonical.com>
  */
 
+#include <src/exporter.h>
+#include <src/rotation-lock.h>
+
 #include <glib/gi18n.h> // bindtextdomain()
 #include <gio/gio.h>
 
@@ -35,14 +38,22 @@ main(int /*argc*/, char** /*argv*/)
     textdomain(GETTEXT_PACKAGE);
 
     auto loop = g_main_loop_new(nullptr, false);
+    auto on_name_lost = [loop](const std::string& name){
+      g_warning("busname lost: '%s'", name.c_str());
+      g_main_loop_quit(loop);
+    };
+
+    // build all our indicators.
+    // Right now we've only got one -- rotation lock -- but hey, we can dream.
+    std::vector<std::shared_ptr<Indicator>> indicators;
+    std::vector<std::shared_ptr<Exporter>> exporters;
+    indicators.push_back(std::make_shared<RotationLockIndicator>());
+    for (auto& indicator : indicators) {
+      auto exporter = std::make_shared<Exporter>(indicator);
+      exporter->name_lost().connect(on_name_lost);
+      exporters.push_back(exporter);
+    }
 
-    // run until we lose the busname
-//    auto model = std::make_shared<MutableModel>();
- //   auto world = std::shared_ptr<World>(new DBusWorld(model));
-  //  auto controller = std::make_shared<Controller>(model, world);
-   // GMenuView menu_view (model, controller);
-    // FIXME: listen for busname-lost
-    g_message("entering GMainLoop that does nothing! Woo!");
     g_main_loop_run(loop);
 
     // cleanup
-- 
cgit v1.2.3