]> git.sesse.net Git - casparcg/blob - core/diagnostics/call_context.cpp
[streaming_consumer] Added default cropping/scaling/pixel format selection/bitrate...
[casparcg] / core / diagnostics / call_context.cpp
1 /*
2 * Copyright (c) 2011 Sveriges Television AB <info@casparcg.com>
3 *
4 * This file is part of CasparCG (www.casparcg.com).
5 *
6 * CasparCG is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * CasparCG is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with CasparCG. If not, see <http://www.gnu.org/licenses/>.
18 *
19 * Author: Helge Norberg, helge.norberg@svt.se
20 */
21
22 #include "../StdAfx.h"
23
24 #include "call_context.h"
25
26 #include <boost/thread/tss.hpp>
27 #include <boost/lexical_cast.hpp>
28
29 namespace caspar { namespace core { namespace diagnostics {
30
31 call_context& call_context::for_thread()
32 {
33         static boost::thread_specific_ptr<call_context> contexts;
34
35         auto local = contexts.get();
36
37         if (!local)
38         {
39                 local = new call_context;
40                 contexts.reset(local);
41         }
42
43         return *local;
44 }
45
46 std::wstring call_context::to_string() const
47 {
48         if (video_channel == -1)
49                 return L"[]";
50         else if (layer == -1)
51                 return L"[ch=" + boost::lexical_cast<std::wstring>(video_channel) + L"]";
52         else
53                 return L"[ch=" + boost::lexical_cast<std::wstring>(video_channel) + L"; layer=" + boost::lexical_cast<std::wstring>(layer) + L"]";
54 }
55
56 }}}