diff options
author | Max Kellermann <max@duempel.org> | 2014-01-10 20:18:13 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2014-01-10 22:56:52 +0100 |
commit | 09b00fa4e318af53821318a502010eb10b5064de (patch) | |
tree | feb8ee2b333568fda611d87158514e85917bef34 /src/db/upnp/Object.hxx | |
parent | 74842fd6d4d1cd35c7e80935e42d9b010751be49 (diff) | |
download | mpd-09b00fa4e318af53821318a502010eb10b5064de.tar.gz mpd-09b00fa4e318af53821318a502010eb10b5064de.tar.xz mpd-09b00fa4e318af53821318a502010eb10b5064de.zip |
db/upnp/Object: use strictly-typed enums
At the same time, rename the enum types and the class attributes, and
add an "UNKNOWN" type/class. The latter avoids the "-1" hack.
Diffstat (limited to 'src/db/upnp/Object.hxx')
-rw-r--r-- | src/db/upnp/Object.hxx | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/src/db/upnp/Object.hxx b/src/db/upnp/Object.hxx index 4949146e8..a3bb026b8 100644 --- a/src/db/upnp/Object.hxx +++ b/src/db/upnp/Object.hxx @@ -30,7 +30,12 @@ */ class UPnPDirObject { public: - enum ObjType {item, container}; + enum class Type { + UNKNOWN, + ITEM, + CONTAINER, + }; + // There are actually several kinds of containers: // object.container.storageFolder, object.container.person, // object.container.playlistContainer etc., but they all seem to @@ -38,13 +43,17 @@ public: // items are special to us, and so should playlists, but I've not // seen one of the latter yet (servers seem to use containers for // playlists). - enum ItemClass {audioItem_musicTrack, audioItem_playlist}; + enum class ItemClass { + UNKNOWN, + MUSIC, + PLAYLIST, + }; std::string m_id; // ObjectId std::string m_pid; // Parent ObjectId std::string m_title; // dc:title. Directory name for a container. - ObjType m_type; // item or container - ItemClass m_iclass; + Type type; + ItemClass item_class; // Properties as gathered from the XML document (url, artist, etc.) // The map keys are the XML tag or attribute names. std::map<std::string, std::string> m_props; @@ -68,8 +77,8 @@ public: m_id.clear(); m_pid.clear(); m_title.clear(); - m_type = (ObjType)-1; - m_iclass = (ItemClass)-1; + type = Type::UNKNOWN; + item_class = ItemClass::UNKNOWN; m_props.clear(); } }; |