diff --git a/apps/shared/float_pair_store.cpp b/apps/shared/float_pair_store.cpp index 7e17649ca..4ca63c8a3 100644 --- a/apps/shared/float_pair_store.cpp +++ b/apps/shared/float_pair_store.cpp @@ -78,7 +78,7 @@ uint32_t FloatPairStore::storeChecksum() { * pairs. However, the two values of a pair are not stored consecutively. We * thus compute the checksum on all pairs and ensure to set the pair at 0 * when removing them. */ - size_t dataLengthInBytes = k_numberOfSeries*k_maxNumberOfPairs*2*sizeof(double); + size_t dataLengthInBytes = k_numberOfSeries*k_maxNumberOfPairs*k_numberOfColumnsPerSeries*sizeof(double); assert((dataLengthInBytes & 0x3) == 0); // Assert that dataLengthInBytes is a multiple of 4 return Ion::crc32((uint32_t *)m_data, dataLengthInBytes/sizeof(uint32_t)); } diff --git a/apps/shared/float_pair_store.h b/apps/shared/float_pair_store.h index 4ef42604f..7b9c05238 100644 --- a/apps/shared/float_pair_store.h +++ b/apps/shared/float_pair_store.h @@ -9,6 +9,7 @@ namespace Shared { class FloatPairStore { public: constexpr static int k_numberOfSeries = 3; + constexpr static int k_numberOfColumnsPerSeries = 2; constexpr static int k_maxNumberOfPairs = 100; FloatPairStore() : m_numberOfPairs{}, @@ -35,7 +36,7 @@ public: protected: virtual double defaultValue(int series, int i, int j); int m_numberOfPairs[k_numberOfSeries]; - double m_data[k_numberOfSeries][2][k_maxNumberOfPairs]; + double m_data[k_numberOfSeries][k_numberOfColumnsPerSeries][k_maxNumberOfPairs]; }; } diff --git a/apps/shared/store_controller.cpp b/apps/shared/store_controller.cpp index 58f8cc9eb..65b252602 100644 --- a/apps/shared/store_controller.cpp +++ b/apps/shared/store_controller.cpp @@ -39,7 +39,7 @@ bool StoreController::textFieldDidFinishEditing(TextField * textField, const cha } int StoreController::numberOfColumns() { - return k_numberOfColumnsPerSeries * FloatPairStore::k_numberOfSeries; + return FloatPairStore::k_numberOfColumnsPerSeries * FloatPairStore::k_numberOfSeries; } KDCoordinate StoreController::columnWidth(int i) { @@ -110,7 +110,7 @@ bool StoreController::handleEvent(Ion::Events::Event event) { assert(selectedColumn() >= 0 && selectedColumn() < numberOfColumns()); int series = seriesAtColumn(selectedColumn()); if ((event == Ion::Events::OK || event == Ion::Events::EXE) && selectedRow() == 0) { - m_storeParameterController.selectXColumn(selectedColumn()%k_numberOfColumnsPerSeries == 0); + m_storeParameterController.selectXColumn(selectedColumn()%FloatPairStore::k_numberOfColumnsPerSeries == 0); m_storeParameterController.selectSeries(series); StackViewController * stack = ((StackViewController *)parentResponder()->parentResponder()); stack->push(&m_storeParameterController); @@ -146,12 +146,12 @@ bool StoreController::cellAtLocationIsEditable(int columnIndex, int rowIndex) { } bool StoreController::setDataAtLocation(double floatBody, int columnIndex, int rowIndex) { - m_store->set(floatBody, seriesAtColumn(columnIndex), columnIndex%k_numberOfColumnsPerSeries, rowIndex-1); + m_store->set(floatBody, seriesAtColumn(columnIndex), columnIndex%FloatPairStore::k_numberOfColumnsPerSeries, rowIndex-1); return true; } double StoreController::dataAtLocation(int columnIndex, int rowIndex) { - return m_store->get(seriesAtColumn(columnIndex), columnIndex%k_numberOfColumnsPerSeries, rowIndex-1); + return m_store->get(seriesAtColumn(columnIndex), columnIndex%FloatPairStore::k_numberOfColumnsPerSeries, rowIndex-1); } int StoreController::numberOfElements() { @@ -184,7 +184,7 @@ void StoreController::unloadView(View * view) { } bool StoreController::cellShouldBeTransparent(int i, int j) { - int seriesIndex = i/k_numberOfColumnsPerSeries; + int seriesIndex = i/FloatPairStore::k_numberOfColumnsPerSeries; return j > 1 + m_store->numberOfPairsOfSeries(seriesIndex); } diff --git a/apps/shared/store_controller.h b/apps/shared/store_controller.h index 5354ba614..2e7187449 100644 --- a/apps/shared/store_controller.h +++ b/apps/shared/store_controller.h @@ -36,10 +36,8 @@ public: protected: static constexpr KDCoordinate k_cellWidth = 80; //TODO static constexpr KDCoordinate k_margin = 8; - constexpr static int k_numberOfColumnsPerSeries = 2; constexpr static int k_maxNumberOfEditableCells = 22 * FloatPairStore::k_numberOfSeries; - constexpr static int k_numberOfTitleCells = k_numberOfColumnsPerSeries * FloatPairStore::k_numberOfSeries; - // TODO Put finer number of cells + constexpr static int k_numberOfTitleCells = FloatPairStore::k_numberOfColumnsPerSeries * FloatPairStore::k_numberOfSeries; // TODO Put finer number of cells static constexpr int k_titleCellType = 0; static constexpr int k_editableCellType = 1; Responder * tabController() const override; @@ -52,7 +50,7 @@ protected: int maxNumberOfElements() const override; virtual HighlightCell * titleCells(int index) = 0; char m_draftTextBuffer[TextField::maxBufferSize()]; - int seriesAtColumn(int column) const { return column / k_numberOfColumnsPerSeries; } + int seriesAtColumn(int column) const { return column / FloatPairStore::k_numberOfColumnsPerSeries; } HideableEvenOddEditableTextCell * m_editableCells[k_maxNumberOfEditableCells]; FloatPairStore * m_store; StoreParameterController m_storeParameterController; diff --git a/apps/statistics/store_controller.cpp b/apps/statistics/store_controller.cpp index 934ae72ee..95ef251b3 100644 --- a/apps/statistics/store_controller.cpp +++ b/apps/statistics/store_controller.cpp @@ -22,8 +22,8 @@ void StoreController::willDisplayCellAtLocation(HighlightCell * cell, int i, int return; } Shared::BufferFunctionTitleCell * mytitleCell = (Shared::BufferFunctionTitleCell *)cell; - int seriesIndex = i/k_numberOfColumnsPerSeries; - bool valuesColumn = i%k_numberOfColumnsPerSeries == 0; + int seriesIndex = i/Store::k_numberOfColumnsPerSeries; + bool valuesColumn = i%Store::k_numberOfColumnsPerSeries == 0; assert(seriesIndex >= 0 && seriesIndex < FloatPairStore::k_numberOfSeries); if (valuesColumn) { I18n::Message valuesMessages[] = {I18n::Message::Values1, I18n::Message::Values2, I18n::Message::Values3};