MCPcopy Create free account
hub / github.com/buggins/coolreader / onRotateTimer

Method onRotateTimer

cr3gui/src/cr3pocketbook.cpp:1272–1333  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1270 }
1271
1272 void onRotateTimer()
1273 {
1274 CRPropRef props = CRPocketBookDocView::instance->getProps();
1275 int rotate_mode = props->getIntDef(PROP_POCKETBOOK_ROTATE_MODE, PB_ROTATE_MODE_180);
1276 int rotate_angle = props->getIntDef(PROP_POCKETBOOK_ROTATE_ANGLE, 2);
1277 _rotatetimerset = false;
1278 int cn = GetOrientation();
1279 int x,y,z,rotatepercent;
1280 bool turn = false;
1281 ReadGSensor(&x,&y,&z);
1282
1283 if (rotate_angle < 0)
1284 rotate_angle = 0;
1285 else if (rotate_angle > 10)
1286 rotate_angle = 10;
1287 rotatepercent = angles_measured[rotate_angle];
1288 switch (cn) {
1289 case ROTATE0:
1290 case ROTATE180:
1291 turn = (abs(x) > rotatepercent);
1292 break;
1293 case ROTATE90:
1294 case ROTATE270:
1295 turn = (abs(y) > rotatepercent);
1296 break;
1297
1298 }
1299 CRLog::trace("rotatepercent = %d, x = %d", rotatepercent, x);
1300 if (_lastturn != turn) { // only one page turn at a time!
1301 _lastturn = turn;
1302 if (turn) {
1303 if (rotate_mode >= PB_ROTATE_MODE_180_FAST_PREV_NEXT) {
1304 switch (cn) {
1305 case ROTATE0:
1306 turn = x < 0;
1307 break;
1308 case ROTATE90:
1309 turn = y < 0;
1310 break;
1311 case ROTATE270:
1312 turn = y > 0;
1313 break;
1314 case ROTATE180:
1315 turn = x > 0;
1316 break;
1317 }
1318 if (rotate_mode == PB_ROTATE_MODE_180_FAST_NEXT_PREV)
1319 turn = !turn;
1320 }
1321 if (turn)
1322 SendEvent(main_handler, EVT_NEXTPAGE, 0, 0);
1323 else
1324 SendEvent(main_handler, EVT_PREVPAGE, 0, 0);
1325 SetAutoPowerOff(0);
1326 SetAutoPowerOff(1); // reset auto-power-off timer!
1327 }
1328 }
1329 if (rotate_mode > PB_ROTATE_MODE_180_SLOW_PREV_NEXT) {

Callers 1

rotate_timerFunction · 0.80

Calls 2

getPropsMethod · 0.45
getIntDefMethod · 0.45

Tested by

no test coverage detected