diff options
author | Dieter Hametner <dh (plus) vdr (at) gekrumbel (dot) de> | 2007-01-06 22:58:21 +0000 |
---|---|---|
committer | Dieter Hametner <dh (plus) vdr (at) gekrumbel (dot) de> | 2007-01-06 22:58:21 +0000 |
commit | 88c3f461ffdeb840843c0e7b25d1579322913112 (patch) | |
tree | 4d4d5ea5b6c01453c7beb804597f0e06c859310a | |
parent | 46af948c42ad440f62ad931eef65e33c7e863ff2 (diff) | |
download | vdr-plugin-live-88c3f461ffdeb840843c0e7b25d1579322913112.tar.gz vdr-plugin-live-88c3f461ffdeb840843c0e7b25d1579322913112.tar.bz2 |
preserve recordings with same title
-rw-r--r-- | recordings.cpp | 13 | ||||
-rw-r--r-- | recordings.h | 2 |
2 files changed, 9 insertions, 6 deletions
diff --git a/recordings.cpp b/recordings.cpp index d4c7cb6..9d6b219 100644 --- a/recordings.cpp +++ b/recordings.cpp @@ -28,15 +28,16 @@ namespace vdrlive { Map::iterator i = dir->m_entries.find(dirName); if (i == dir->m_entries.end()) { RecordingsItemPtr recPtr (new RecordingsItemDir(dirName, level)); - dir->m_entries[dirName] = recPtr; + dir->m_entries.insert(pair< string, RecordingsItemPtr > (dirName, recPtr)); + i = dir->m_entries.find(dirName); } - dir = dir->m_entries[dirName]; + dir = i->second; level++; } else { string dirName(name.substr(index, name.length() - index)); RecordingsItemPtr recPtr (new RecordingsItemRec(dirName, recording)); - dir->m_entries[dirName] = recPtr; + dir->m_entries.insert(pair< string, RecordingsItemPtr > (dirName, recPtr)); } } while (pos != string::npos); } @@ -55,7 +56,8 @@ namespace vdrlive { RecordingsItemPtr recItem = m_root; for (vector< string >::const_iterator i = path.begin(); i != path.end(); ++i) { - recItem = recItem->m_entries[*i]; + Map::iterator iter = recItem->m_entries.find(*i); + recItem = iter->second; } return recItem->m_entries.begin(); } @@ -69,7 +71,8 @@ namespace vdrlive { RecordingsItemPtr recItem = m_root; for (vector< string >::const_iterator i = path.begin(); i != path.end(); ++i) { - recItem = recItem->m_entries[*i]; + Map::iterator iter = recItem->m_entries.find(*i); + recItem = iter->second; } return recItem->m_entries.end(); } diff --git a/recordings.h b/recordings.h index 4a05e63..8640848 100644 --- a/recordings.h +++ b/recordings.h @@ -19,7 +19,7 @@ namespace vdrlive { class RecordingsItem; typedef shared_ptr< RecordingsItem > RecordingsItemPtr; - typedef map< string, RecordingsItemPtr > Map; + typedef multimap< string, RecordingsItemPtr > Map; class RecordingsItem { |