X-Git-Url: https://gerrit.akraino.org/r/gitweb?a=blobdiff_plain;f=src%2Ftype3_AndroidCloud%2Fanbox-master%2Fsrc%2Fanbox%2Fqemu%2Fbootanimation_message_processor.cpp;fp=src%2Ftype3_AndroidCloud%2Fanbox-master%2Fsrc%2Fanbox%2Fqemu%2Fbootanimation_message_processor.cpp;h=05c097ca38955d000602064d175b1875e3e94147;hb=e26c1ec581be598521517829adba8c8dd23a768f;hp=0000000000000000000000000000000000000000;hpb=6699c1aea74eeb0eb400e6299079f0c7576f716f;p=iec.git diff --git a/src/type3_AndroidCloud/anbox-master/src/anbox/qemu/bootanimation_message_processor.cpp b/src/type3_AndroidCloud/anbox-master/src/anbox/qemu/bootanimation_message_processor.cpp new file mode 100644 index 0000000..05c097c --- /dev/null +++ b/src/type3_AndroidCloud/anbox-master/src/anbox/qemu/bootanimation_message_processor.cpp @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2016 Simon Fels + * + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 3, as published + * by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranties of + * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + * + */ + +#include "anbox/qemu//bootanimation_message_processor.h" +#include "anbox/logger.h" + +#include + +namespace anbox { +namespace qemu { +BootAnimationMessageProcessor::BootAnimationMessageProcessor( + const std::shared_ptr &messenger, + const std::string &icon_path) + : QemudMessageProcessor(messenger), icon_path_(icon_path) {} + +BootAnimationMessageProcessor::~BootAnimationMessageProcessor() {} + +void BootAnimationMessageProcessor::handle_command(const std::string &command) { + if (command == "retrieve-icon") retrieve_icon(); +} + +void BootAnimationMessageProcessor::retrieve_icon() { + std::ifstream icon_file(icon_path_, std::ifstream::binary); + std::array buffer; + + while (icon_file.read(buffer.data(), buffer.size())) { + const auto bytes_read = icon_file.gcount(); + messenger_->send(buffer.data(), bytes_read); + DEBUG("Sending %d bytes", bytes_read); + } +} + +} // namespace qemu +} // namespace anbox