OLD | NEW |
(Empty) | |
| 1 #include "remoting/protocol/clipboard_duplicate_filter.h" |
| 2 |
| 3 #include "remoting/proto/event.pb.h" |
| 4 |
| 5 namespace remoting { |
| 6 namespace protocol { |
| 7 |
| 8 ClipboardDuplicateFilter::ClipboardDuplicateFilter() |
| 9 : to_host_(NULL), |
| 10 to_client_(NULL), |
| 11 filter_to_client_(this), |
| 12 filter_to_host_(this) { |
| 13 } |
| 14 |
| 15 void ClipboardDuplicateFilter::set_to_client(ClipboardStub* clipboard_stub) { |
| 16 to_client_ = clipboard_stub; |
| 17 } |
| 18 |
| 19 void ClipboardDuplicateFilter::set_to_host(ClipboardStub* clipboard_stub) { |
| 20 to_host_ = clipboard_stub; |
| 21 } |
| 22 |
| 23 ClipboardStub* ClipboardDuplicateFilter::get_filter_to_client() { |
| 24 return &filter_to_client_; |
| 25 } |
| 26 |
| 27 ClipboardStub* ClipboardDuplicateFilter::get_filter_to_host() { |
| 28 return &filter_to_host_; |
| 29 } |
| 30 |
| 31 void ClipboardDuplicateFilter::InjectClipboardEventToClient( |
| 32 const ClipboardEvent& event) { |
| 33 if (!to_client_) { |
| 34 return; |
| 35 } |
| 36 if (event.mime_type() == recent_mime_type_ && event.data() == recent_data_) { |
| 37 return; |
| 38 } |
| 39 to_client_->InjectClipboardEvent(event); |
| 40 recent_mime_type_ = event.mime_type(); |
| 41 recent_data_ = event.data(); |
| 42 } |
| 43 |
| 44 void ClipboardDuplicateFilter::InjectClipboardEventToHost( |
| 45 const ClipboardEvent& event) { |
| 46 recent_mime_type_ = event.mime_type(); |
| 47 recent_data_ = event.data(); |
| 48 if (to_host_) { |
| 49 to_host_->InjectClipboardEvent(event); |
| 50 } |
| 51 } |
| 52 |
| 53 ClipboardDuplicateFilter::FilterToClient::FilterToClient( |
| 54 ClipboardDuplicateFilter* filter) : filter_(filter) { |
| 55 } |
| 56 |
| 57 void ClipboardDuplicateFilter::FilterToClient::InjectClipboardEvent( |
| 58 const ClipboardEvent& event) { |
| 59 filter_->InjectClipboardEventToClient(event); |
| 60 } |
| 61 |
| 62 ClipboardDuplicateFilter::FilterToHost::FilterToHost( |
| 63 ClipboardDuplicateFilter* filter) : filter_(filter) { |
| 64 } |
| 65 |
| 66 void ClipboardDuplicateFilter::FilterToHost::InjectClipboardEvent( |
| 67 const ClipboardEvent& event) { |
| 68 filter_->InjectClipboardEventToHost(event); |
| 69 } |
| 70 |
| 71 } // namespace protocol |
| 72 } // namespace remoting |
OLD | NEW |