if Mackie device profile name is empty, use a default name that makes sense and that...
authorPaul Davis <paul@linuxaudiosystems.com>
Wed, 9 Dec 2015 05:12:19 +0000 (00:12 -0500)
committerPaul Davis <paul@linuxaudiosystems.com>
Wed, 9 Dec 2015 05:12:28 +0000 (00:12 -0500)
libs/surfaces/mackie/mackie_control_protocol.cc

index 9e05dbc5a3f375b3b5ca95b2447239d04ab3753c..e0ef35f15b4aedad8541c44a7a253c8f0ab1f5ca 100644 (file)
@@ -31,6 +31,7 @@
 #include <errno.h>
 
 #include <boost/shared_array.hpp>
+#include <glibmm/miscutils.h>
 
 #include "midi++/types.h"
 #include "midi++/port.h"
@@ -720,11 +721,13 @@ MackieControlProtocol::set_profile (const string& profile_name)
        if (profile_name == "default") {
                /* reset to default */
                _device_profile = DeviceProfile (profile_name);
+               return;
        }
 
        map<string,DeviceProfile>::iterator d = DeviceProfile::device_profiles.find (profile_name);
 
        if (d == DeviceProfile::device_profiles.end()) {
+               _device_profile = DeviceProfile (profile_name);
                return;
        }
 
@@ -1051,7 +1054,17 @@ MackieControlProtocol::set_state (const XMLNode & node, int version)
        }
 
        if ((prop = node.property (X_("device-profile"))) != 0) {
-               set_profile (prop->value());
+               if (prop->value().empty()) {
+                       string default_profile_name;
+
+                       default_profile_name = Glib::get_user_name();
+                       default_profile_name += ' ';
+                       default_profile_name += _device_info.name();
+
+                       set_profile (default_profile_name);
+               } else {
+                       set_profile (prop->value());
+               }
        }
 
        XMLNode* dnode = node.child (X_("Configurations"));