diff options
| author | jacqueline <me@jacqueline.id.au> | 2022-10-05 11:01:02 +1100 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2022-10-05 11:01:02 +1100 |
| commit | 122306d619ae583bbc2d30c39cf98479f83530f5 (patch) | |
| tree | 305ab6bcb8fe50f7f6283cd02a944421cdaf4228 /main/storage.cpp | |
| parent | a004d4b232a7ea429d62f6213171537b1c81ddcf (diff) | |
| download | tangara-fw-122306d619ae583bbc2d30c39cf98479f83530f5.tar.gz | |
Clean up new storage bits
Diffstat (limited to 'main/storage.cpp')
| -rw-r--r-- | main/storage.cpp | 42 |
1 files changed, 17 insertions, 25 deletions
diff --git a/main/storage.cpp b/main/storage.cpp index 378bc3cf..54829302 100644 --- a/main/storage.cpp +++ b/main/storage.cpp @@ -14,15 +14,15 @@ namespace gay_ipod { +static const char* TAG = "SDSTORAGE"; + SdStorage::SdStorage(GpioExpander *gpio) { this->gpio_ = gpio; } -SdStorage::~SdStorage() { - ESP_ERROR_CHECK(sdspi_host_deinit()); -} +SdStorage::~SdStorage() {} -esp_err_t SdStorage::Acquire(void) { +SdStorage::Error SdStorage::Acquire(void) { // First switch to this device, and pull CS. gpio_->set_sd_mux(GpioExpander::ESP); gpio_->set_sd_cs(false); @@ -39,50 +39,44 @@ esp_err_t SdStorage::Acquire(void) { .gpio_wp = SDSPI_SLOT_NO_WP, .gpio_int = GPIO_NUM_NC, }; - esp_err_t ret = sdspi_host_init_device(&config, &handle_); - if (ret != ESP_OK) { - gpio_->set_sd_cs(true); - gpio_->Write(); - return ret; - } + ESP_ERROR_CHECK(sdspi_host_init_device(&config, &handle_)); host_ = sdmmc_host_t SDSPI_HOST_DEFAULT(); host_.slot = handle_; // Will return ESP_ERR_INVALID_RESPONSE if there is no card - // TODO: use our own error code - ret = sdmmc_card_init(&host_, &card_); - if (ret != ESP_OK) { + esp_err_t err = sdmmc_card_init(&host_, &card_); + if (err != ESP_OK) { + ESP_LOGW(TAG, "Failed to read, err: %d", err); gpio_->set_sd_cs(true); gpio_->Write(); - return ret; + return Error::FAILED_TO_READ; } - ESP_ERROR_CHECK( - esp_vfs_fat_register(STORAGE_PATH, "", MAX_OPEN_FILES, &fs_)); + ESP_ERROR_CHECK(esp_vfs_fat_register(kStoragePath, "", kMaxOpenFiles, &fs_)); ff_diskio_register_sdmmc(fs_->pdrv, &card_); // Mount right now, not on first operation. - FRESULT fret = f_mount(fs_, "", 1); - if (fret != FR_OK) { - // TODO: Proper error handling - return ESP_ERR_INVALID_MAC; + FRESULT ferr = f_mount(fs_, "", 1); + if (ferr != FR_OK) { + ESP_LOGW(TAG, "Failed to mount, err: %d", ferr); + return Error::FAILED_TO_MOUNT; } // We're done chatting for now. //gpio_->set_sd_cs(true); //gpio_->Write(); - return ret; + return Error::OK; } -esp_err_t SdStorage::Release(void) { +void SdStorage::Release(void) { gpio_->set_sd_cs(false); gpio_->Write(); // Unmount and unregister the filesystem f_unmount(""); ff_diskio_register(fs_->pdrv, NULL); - esp_vfs_fat_unregister_path(STORAGE_PATH); + esp_vfs_fat_unregister_path(kStoragePath); fs_ = nullptr; // Uninstall the SPI driver @@ -92,8 +86,6 @@ esp_err_t SdStorage::Release(void) { gpio_->set_sd_mux(GpioExpander::USB); gpio_->set_sd_cs(true); gpio_->Write(); - - return ESP_OK; } } // namespace gay_ipod |
