]> git.sesse.net Git - casparcg/commitdiff
2.0. amcp: Fixed backward compatibility.
authorRonag <Ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Tue, 2 Aug 2011 13:37:17 +0000 (13:37 +0000)
committerRonag <Ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Tue, 2 Aug 2011 13:37:17 +0000 (13:37 +0000)
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.0.0.2@1039 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d

protocol/amcp/AMCPCommandsImpl.cpp

index 3c5563826be2b58dce75fd3e298be61131d15231..c580fa4df6a12148cab4aaf70330dfdfcb04f2a6 100644 (file)
@@ -103,7 +103,7 @@ std::wstring ListMedia()
                        {               \r
                                auto is_not_digit = [](char c){ return std::isdigit(c) == 0; };\r
 \r
-                               auto relativePath = boost::filesystem::wpath(itr->path().file_string().substr(env::media_folder().size()-1, itr->path().file_string().size()));\r
+                               auto relativePath = boost::filesystem::wpath(itr->path().file_string().substr(env::media_folder().size(), itr->path().file_string().size()));\r
 \r
                                auto writeTimeStr = boost::posix_time::to_iso_string(boost::posix_time::from_time_t(boost::filesystem::last_write_time(itr->path())));\r
                                writeTimeStr.erase(std::remove_if(writeTimeStr.begin(), writeTimeStr.end(), is_not_digit), writeTimeStr.end());\r
@@ -113,11 +113,18 @@ std::wstring ListMedia()
                                sizeStr.erase(std::remove_if(sizeStr.begin(), sizeStr.end(), is_not_digit), sizeStr.end());\r
                                auto sizeWStr = std::wstring(sizeStr.begin(), sizeStr.end());\r
 \r
-                               replyString << TEXT("\"") << relativePath.replace_extension(TEXT(""))\r
-                                                       << TEXT("\" ") << clipttype \r
-                                                       << TEXT(" ") << sizeStr\r
+                               std::wstring dir = relativePath.parent_path().external_directory_string();\r
+                               std::wstring file = boost::to_upper_copy(relativePath.filename());\r
+                               relativePath = boost::filesystem::wpath(dir + L"/" + file);\r
+                                               \r
+                               auto str = relativePath.replace_extension(TEXT("")).external_file_string();\r
+                               if(str[0] == '\\' || str[0] == '/')\r
+                                       str = std::wstring(str.begin() + 1, str.end());\r
+\r
+                               replyString << TEXT("\"") << str\r
+                                                       << TEXT("\" ") << sizeWStr\r
                                                        << TEXT(" ") << writeTimeWStr\r
-                                                       << TEXT("\r\n");\r
+                                                       << TEXT("\r\n");                \r
                        }       \r
                }\r
        }\r
@@ -132,7 +139,7 @@ std::wstring ListTemplates()
        {               \r
                if(boost::filesystem::is_regular_file(itr->path()) && itr->path().extension() == L".ft")\r
                {\r
-                       auto relativePath = boost::filesystem::wpath(itr->path().file_string().substr(env::template_folder().size()-1, itr->path().file_string().size()));\r
+                       auto relativePath = boost::filesystem::wpath(itr->path().file_string().substr(env::template_folder().size(), itr->path().file_string().size()));\r
 \r
                        auto writeTimeStr = boost::posix_time::to_iso_string(boost::posix_time::from_time_t(boost::filesystem::last_write_time(itr->path())));\r
                        writeTimeStr.erase(std::remove_if(writeTimeStr.begin(), writeTimeStr.end(), [](char c){ return std::isdigit(c) == 0;}), writeTimeStr.end());\r
@@ -142,14 +149,22 @@ std::wstring ListTemplates()
                        sizeStr.erase(std::remove_if(sizeStr.begin(), sizeStr.end(), [](char c){ return std::isdigit(c) == 0;}), sizeStr.end());\r
 \r
                        auto sizeWStr = std::wstring(sizeStr.begin(), sizeStr.end());\r
-                       \r
-                       replyString << TEXT("\"") << relativePath.replace_extension(TEXT(""))\r
+\r
+                       std::wstring dir = relativePath.parent_path().external_directory_string();\r
+                       std::wstring file = boost::to_upper_copy(relativePath.filename());\r
+                       relativePath = boost::filesystem::wpath(dir + L"/" + file);\r
+                                               \r
+                       auto str = relativePath.replace_extension(TEXT("")).external_file_string();\r
+                       if(str[0] == '\\' || str[0] == '/')\r
+                               str = std::wstring(str.begin() + 1, str.end());\r
+\r
+                       replyString << TEXT("\"") << str\r
                                                << TEXT("\" ") << sizeWStr\r
                                                << TEXT(" ") << writeTimeWStr\r
                                                << TEXT("\r\n");                \r
                }\r
        }\r
-       return boost::to_upper_copy(replyString.str());\r
+       return replyString.str();\r
 }\r
 \r
 namespace amcp {\r