diff options
author | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2008-07-16 18:46:37 +0000 |
---|---|---|
committer | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2008-07-16 18:46:37 +0000 |
commit | 08a27c1df7e269766ca0f583047884fa127eb5ec (patch) | |
tree | b02cd34dbc8afd7f1ffcaa3068a6ffc31b254dfb /rbutil/sansapatcher/sansapatcher.c | |
parent | c025bfc086a5d30e71f269c182d3de6f127340c3 (diff) | |
download | rockbox-08a27c1df7e269766ca0f583047884fa127eb5ec.tar.gz rockbox-08a27c1df7e269766ca0f583047884fa127eb5ec.zip |
Let sansa_list_images() return the number of mi4 images found.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18074 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'rbutil/sansapatcher/sansapatcher.c')
-rw-r--r-- | rbutil/sansapatcher/sansapatcher.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/rbutil/sansapatcher/sansapatcher.c b/rbutil/sansapatcher/sansapatcher.c index 966cfb7033..845333bd76 100644 --- a/rbutil/sansapatcher/sansapatcher.c +++ b/rbutil/sansapatcher/sansapatcher.c | |||
@@ -800,28 +800,34 @@ int sansa_delete_bootloader(struct sansa_t* sansa) | |||
800 | return 0; | 800 | return 0; |
801 | } | 801 | } |
802 | 802 | ||
803 | void sansa_list_images(struct sansa_t* sansa) | 803 | /** List number of MI4 images on the player, return number. |
804 | */ | ||
805 | int sansa_list_images(struct sansa_t* sansa) | ||
804 | { | 806 | { |
805 | struct mi4header_t mi4header; | 807 | struct mi4header_t mi4header; |
806 | loff_t ppmi_length; | 808 | loff_t ppmi_length; |
809 | int num = 0; | ||
807 | 810 | ||
808 | /* Check Main firmware header */ | 811 | /* Check Main firmware header */ |
809 | if (sansa_seek_and_read(sansa, sansa->start+PPMI_OFFSET, sansa_sectorbuf, 0x200) < 0) { | 812 | if (sansa_seek_and_read(sansa, sansa->start+PPMI_OFFSET, sansa_sectorbuf, 0x200) < 0) { |
810 | return; | 813 | return 0; |
811 | } | 814 | } |
812 | 815 | ||
813 | ppmi_length = le2int(sansa_sectorbuf+4); | 816 | ppmi_length = le2int(sansa_sectorbuf+4); |
814 | 817 | ||
815 | printf("[INFO] Image 1 - %llu bytes\n",ppmi_length); | 818 | printf("[INFO] Image 1 - %llu bytes\n",ppmi_length); |
819 | num = 1; | ||
816 | 820 | ||
817 | /* Look for an original firmware after the first image */ | 821 | /* Look for an original firmware after the first image */ |
818 | if (sansa_seek_and_read(sansa, sansa->start + PPMI_OFFSET + 0x200 + ppmi_length, sansa_sectorbuf, 512) < 0) { | 822 | if (sansa_seek_and_read(sansa, sansa->start + PPMI_OFFSET + 0x200 + ppmi_length, sansa_sectorbuf, 512) < 0) { |
819 | return; | 823 | return 0; |
820 | } | 824 | } |
821 | 825 | ||
822 | if (get_mi4header(sansa_sectorbuf,&mi4header)==0) { | 826 | if (get_mi4header(sansa_sectorbuf,&mi4header)==0) { |
823 | printf("[INFO] Image 2 - %d bytes\n",mi4header.mi4size); | 827 | printf("[INFO] Image 2 - %d bytes\n",mi4header.mi4size); |
828 | num = 2; | ||
824 | } | 829 | } |
830 | return num; | ||
825 | } | 831 | } |
826 | 832 | ||
827 | int sansa_update_of(struct sansa_t* sansa, const char* filename) | 833 | int sansa_update_of(struct sansa_t* sansa, const char* filename) |