mirror of
https://github.com/eried/portapack-mayhem.git
synced 2025-06-27 00:00:36 -04:00
OOK transmit is mostly working, bit durations are wrong
Simplified messages carrying data (uses shared_memory instead) Added SymField widget (bitfield, symbol field...) Added some space for baseband code BMP palette loading bugfix
This commit is contained in:
parent
a9a3bbe96d
commit
38e506a108
30 changed files with 588 additions and 411 deletions
|
@ -1,5 +1,6 @@
|
|||
/*
|
||||
* Copyright (C) 2014 Jared Boone, ShareBrained Technology, Inc.
|
||||
* Copyright (C) 2016 Furrtek
|
||||
*
|
||||
* This file is part of PortaPack.
|
||||
*
|
||||
|
@ -411,7 +412,7 @@ public:
|
|||
|
||||
NumberField(Point parent_pos, size_t length, range_t range, int32_t step, char fill_char);
|
||||
NumberField(
|
||||
) : NumberField { { }, 1, { 0, 1 }, 1, ' ' }
|
||||
) : NumberField { { 0, 0 }, 1, { 0, 1 }, 1, ' ' }
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -419,8 +420,7 @@ public:
|
|||
NumberField(NumberField&&) = delete;
|
||||
|
||||
int32_t value() const;
|
||||
void set_value(int32_t new_value);
|
||||
void set_value(int32_t new_value, bool trigger_change);
|
||||
void set_value(int32_t new_value, bool trigger_change = true);
|
||||
void set_range(const int32_t min, const int32_t max);
|
||||
|
||||
void paint(Painter& painter) override;
|
||||
|
@ -439,6 +439,39 @@ private:
|
|||
int32_t clip_value(int32_t value);
|
||||
};
|
||||
|
||||
class SymField : public Widget {
|
||||
public:
|
||||
std::function<void(SymField&)> on_select;
|
||||
std::function<void()> on_change;
|
||||
|
||||
using range_t = std::pair<int32_t, int32_t>;
|
||||
|
||||
SymField(Point parent_pos, size_t length, range_t range);
|
||||
|
||||
SymField(const SymField&) = delete;
|
||||
SymField(SymField&&) = delete;
|
||||
|
||||
uint32_t value(const uint32_t index);
|
||||
void set_value(const uint32_t index, int32_t new_value);
|
||||
void set_length(const uint32_t new_length);
|
||||
void set_range(const int32_t min, const int32_t max);
|
||||
|
||||
void paint(Painter& painter) override;
|
||||
|
||||
bool on_key(const KeyEvent key) override;
|
||||
bool on_encoder(const EncoderEvent delta) override;
|
||||
bool on_touch(const TouchEvent event) override;
|
||||
|
||||
private:
|
||||
range_t range;
|
||||
int32_t values_[30] = { 0 };
|
||||
uint32_t selected_ = 0;
|
||||
size_t length_, prev_length_;
|
||||
bool erase_prev_ = false;
|
||||
|
||||
int32_t clip_value(int32_t value);
|
||||
};
|
||||
|
||||
} /* namespace ui */
|
||||
|
||||
#endif/*__UI_WIDGET_H__*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue