예제 #1
0
 void emit(OutStream & stream) const
 {
     stream.out_uint16_le(this->userDataType);
     stream.out_uint16_le(this->length);
     stream.out_uint32_le(this->encryptionMethods);
     stream.out_uint32_le(this->extEncryptionMethods);
 }
예제 #2
0
 void emit(OutStream & stream)override {
     stream.out_uint16_le(this->capabilityType);
     stream.out_uint16_le(this->len);
     stream.out_uint16_le(this->cacheFlags);
     stream.out_uint8(this->pad1);
     stream.out_uint8(this->numCellCaches);
     stream.out_uint32_le(this->bitmapCache0CellInfo);
     stream.out_uint32_le(this->bitmapCache1CellInfo);
     stream.out_uint32_le(this->bitmapCache2CellInfo);
     stream.out_uint32_le(this->bitmapCache3CellInfo);
     stream.out_uint32_le(this->bitmapCache4CellInfo);
     stream.out_clear_bytes(12);
 }
예제 #3
0
 bool kbd_input(const timeval & now, uint32_t uchar) override {
     (void)now;
     if (keyboard_buffer_32.has_room(sizeof(uint32_t))) {
         keyboard_buffer_32.out_uint32_le(uchar);
     }
     return true;
 }
예제 #4
0
 void emit(OutStream & stream)override {
     stream.out_uint16_le(this->capabilityType);
     stream.out_uint16_le(this->len);
     stream.out_uint32_le(this->pad1);
     stream.out_uint32_le(this->pad2);
     stream.out_uint32_le(this->pad3);
     stream.out_uint32_le(this->pad4);
     stream.out_uint32_le(this->pad5);
     stream.out_uint32_le(this->pad6);
     stream.out_uint16_le(this->cache0Entries);
     stream.out_uint16_le(this->cache0MaximumCellSize);
     stream.out_uint16_le(this->cache1Entries);
     stream.out_uint16_le(this->cache1MaximumCellSize);
     stream.out_uint16_le(this->cache2Entries);
     stream.out_uint16_le(this->cache2MaximumCellSize);
 }
예제 #5
0
 void emit(OutStream & stream)override {
     stream.out_uint16_le(this->capabilityType);
     stream.out_uint16_le(this->len);
     stream.out_uint32_le(this->offscreenSupportLevel);
     stream.out_uint16_le(this->offscreenCacheSize);
     stream.out_uint16_le(this->offscreenCacheEntries);
 }
예제 #6
0
 void emit(OutStream & stream) const
 {
     stream.out_uint16_le(this->capabilityType);
     stream.out_uint16_le(this->len);
     stream.out_uint32_le(this->cmdFlags);
     stream.out_uint32_le(this->reserved);
 }
예제 #7
0
 void emit(OutStream & stream) override {
     stream.out_uint16_le(this->capabilityType);
     stream.out_uint16_le(this->len);
     stream.out_uint32_le(this->drawNineGridSupportLevel);
     stream.out_uint16_le(this->drawNineGridCacheSize);
     stream.out_uint16_le(this->drawNineGridCacheEntries);
 }
예제 #8
0
 void emit(OutStream & stream) const
 {
     stream.out_uint16_le(this->capabilityType);
     stream.out_uint16_le(this->len);
     stream.out_uint32_le(this->WndSupportLevel);
     stream.out_uint8(this->NumIconCaches);
     stream.out_uint16_le(this->NumIconCacheEntries);
 }
예제 #9
0
    void emit(OutStream & stream) const
    {
        if (this->length != 8
        && this->length != 12
        && this->length != 16) {
            LOG(LOG_ERR, "SC_CORE invalid length (%u)", this->length);
            throw Error(ERR_GCC);
        };

        stream.out_uint16_le(this->userDataType);
        stream.out_uint16_le(this->length);
        stream.out_uint32_le(this->version);

        if (this->length >= 12){
            stream.out_uint32_le(this->clientRequestedProtocols);
        }
        if (this->length >= 16){
            stream.out_uint32_le(this->earlyCapabilityFlags);
        }
    }
예제 #10
0
 void emit(OutStream & stream) const
 {
     stream.out_uint16_le(this->capabilityType);
     stream.out_uint16_le(this->len);
     for (auto const& glyph : this->GlyphCache) {
         stream.out_uint16_le(glyph.CacheEntries);
         stream.out_uint16_le(glyph.CacheMaximumCellSize);
     }
     stream.out_uint32_le(this->FragCache);
     stream.out_uint16_le(this->GlyphSupportLevel);
     stream.out_uint16_le(this->pad2octets);
 }
예제 #11
0
 void emit(OutStream & stream)override {
     stream.out_uint16_le(this->capabilityType);
     stream.out_uint16_le(this->len);
     stream.out_copy_bytes(this->terminalDescriptor, 16);
     stream.out_uint32_be(this->pad4octetsA);
     stream.out_uint16_le(this->desktopSaveXGranularity);
     stream.out_uint16_le(this->desktopSaveYGranularity);
     stream.out_uint16_le(this->pad2octetsA);
     stream.out_uint16_le(this->maximumOrderLevel);
     stream.out_uint16_le(this->numberFonts);
     stream.out_uint16_le(this->orderFlags);
     stream.out_copy_bytes(this->orderSupport, NB_ORDER_SUPPORT);
     stream.out_uint16_le(this->textFlags);
     stream.out_uint16_le(this->orderSupportExFlags);
     stream.out_uint32_le(this->pad4octetsB);
     stream.out_uint32_le(this->desktopSaveSize);
     stream.out_uint16_le(this->pad2octetsC);
     stream.out_uint16_le(this->pad2octetsD);
     stream.out_uint16_le(this->textANSICodePage);
     stream.out_uint16_le(this->pad2octetsE);
 }
예제 #12
0
    void emit(OutStream & stream) {
        stream.out_uint16_le(this->numEntriesCache[0]);
        stream.out_uint16_le(this->numEntriesCache[1]);
        stream.out_uint16_le(this->numEntriesCache[2]);
        stream.out_uint16_le(this->numEntriesCache[3]);
        stream.out_uint16_le(this->numEntriesCache[4]);
        stream.out_uint16_le(this->totalEntriesCache[0]);
        stream.out_uint16_le(this->totalEntriesCache[1]);
        stream.out_uint16_le(this->totalEntriesCache[2]);
        stream.out_uint16_le(this->totalEntriesCache[3]);
        stream.out_uint16_le(this->totalEntriesCache[4]);
        stream.out_uint8(this->bBitMask);

        stream.out_clear_bytes(3);  // Pad2(1) + Pad3(2)

        for (uint32_t i = 0, c = this->maximum_entries(); i < c; i++) {
            stream.out_uint32_le(this->entries[i].Key1);
            stream.out_uint32_le(this->entries[i].Key2);
        }
    }
예제 #13
0
 void emit(OutStream & stream)override {
     stream.out_uint16_le(this->capabilityType);
     stream.out_uint16_le(this->len);
     stream.out_uint32_le(this->brushSupportLevel);
 }
예제 #14
0
        InputEvent_Send(OutStream & stream, uint32_t eventTime, uint16_t messageType) {
            stream.out_uint32_le(eventTime);

            stream.out_uint16_le(messageType);
        }
 void emit(OutStream & stream) const {
     uint8_t controlFlags = SECONDARY | (AltsecDrawingOrderHeader::FrameMarker << 2);
     stream.out_uint8(controlFlags);
     stream.out_uint32_le(this->action);
 }
예제 #16
0
        SynchronizeEvent_Send(OutStream & stream, uint32_t toggleFlags) {
            stream.out_clear_bytes(2); // pad2Octets

            stream.out_uint32_le(toggleFlags);
        }
예제 #17
0
 void emit(OutStream & stream) const
 {
     stream.out_uint16_le(this->capabilityType);
     stream.out_uint16_le(this->len);
     stream.out_uint32_le(this->MaxRequestSize);
 }
예제 #18
0
 void emit(OutStream & stream) const
 {
     stream.out_uint16_le(this->userDataType);
     stream.out_uint16_le(this->length);
     stream.out_uint32_le(this->flags);
 }