- if (state != previous_state) {
- previous_state = state;
- if ((state & 0x3) == 0x1) {
- label = "idle";
- } else if ((state & 0xf) == 0x2) {
- label = "pre-trigger sampling";
- } else if ((state & 0xf) == 0xa) {
- label = "sampling, waiting for trigger";
- } else if ((state & 0xf) == 0xe) {
- label = "post-trigger sampling";
- } else {
- label = NULL;
- }
- if (label && *label) {
- sr_dbg("Run state: 0x%04x (%s).", state, label);
- } else {
- sr_dbg("Run state: 0x%04x.", state);
- }
- }
+ if (state == previous_state)
+ return state;
+
+ previous_state = state;
+ label = NULL;
+ if ((state & runstate_mask_idle) == runstate_patt_idle)
+ label = "idle";
+ if ((state & runstate_mask_step) == runstate_patt_pre_trig)
+ label = "pre-trigger sampling";
+ if ((state & runstate_mask_step) == runstate_patt_wait_trig)
+ label = "sampling, waiting for trigger";
+ if ((state & runstate_mask_step) == runstate_patt_post_trig)
+ label = "post-trigger sampling";
+ if (label && *label)
+ sr_dbg("Run state: 0x%04x (%s).", state, label);
+ else
+ sr_dbg("Run state: 0x%04x.", state);