f544b7eb4775000b6c9efc50cf4bc6014f0da3a5
Stefan Schuermans implement synchronization s...

Stefan Schuermans authored 10 years ago

1) /* Blinker
2)    Copyright 2011-2014 Stefan Schuermans <stefan@blinkenarea.org>
3)    Copyleft GNU public license - http://www.gnu.org/copyleft/gpl.html
4)    a blinkenarea.org project */
5) 
6) #include "SyncRecv.h"
7) 
8) namespace Blinker {
9) 
Stefan Schuermans implement synchronization f...

Stefan Schuermans authored 10 years ago

10) /**
11)  * @brief check if playlist entry name matches sync name
12)  * @param[in] playlist name in playlist
13)  * @param[in] sync name from synchronization information
14)  * @return true if name matches, false otherwise
15)  */
16) bool SyncRecv::checkName(const std::string &playlist, const std::string &sync)
17) {
18)   std::string::size_type pos;
19)   std::string noext;
20) 
21)   // full match
22)   if (playlist == sync)
23)     return true;
24) 
25)   // match without file extension
26)   pos = playlist.rfind('.');
27)   noext = playlist.substr(0, pos);
28)   if (noext == sync)
29)     return true;
30) 
31)   // match without number prefix "[0-9]*[._-]?"
32)   for (pos = 0; pos < noext.length() && std::isdigit(noext.at(pos)); ++pos);
33)   if (pos < noext.length() &&
34)       (noext.at(pos) == '.' || noext.at(pos) == '_' || noext.at(pos) == '-'))
35)     ++pos;
36)   noext = noext.substr(pos);
37)   if (noext == sync)
38)     return true;
39) 
40)   // no match
41)   return false;
42) }
43)