summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBertrik Sikken <bertrik@sikken.nl>2010-11-08 23:23:00 +0000
committerBertrik Sikken <bertrik@sikken.nl>2010-11-08 23:23:00 +0000
commit598f56ecb241fa65f0e13e826add006e9cc55676 (patch)
tree6bef060d7be4956ad1a8e9ca24f9b599bf900400
parent0322ab1d194cb9e3b3d0f0925ccc7c9edfb8c254 (diff)
downloadrockbox-598f56ecb241fa65f0e13e826add006e9cc55676.zip
rockbox-598f56ecb241fa65f0e13e826add006e9cc55676.tar.gz
rockbox-598f56ecb241fa65f0e13e826add006e9cc55676.tar.bz2
rockbox-598f56ecb241fa65f0e13e826add006e9cc55676.tar.xz
Simplify unsigned int <-> unsigned char array conversion in ipod_remote_tuner.c (make it endianness independent)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28537 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/drivers/tuner/ipod_remote_tuner.c31
1 files changed, 8 insertions, 23 deletions
diff --git a/firmware/drivers/tuner/ipod_remote_tuner.c b/firmware/drivers/tuner/ipod_remote_tuner.c
index 92fcd90..a7a16c5 100644
--- a/firmware/drivers/tuner/ipod_remote_tuner.c
+++ b/firmware/drivers/tuner/ipod_remote_tuner.c
@@ -47,11 +47,6 @@ static bool rds_event = false;
static char rds_radioname[9];
static char rds_radioinfo[65];
-static union FRQ {
- unsigned long int frequency_radio;
- char data_frequency[4];
-}Frequency;
-
static void rmt_tuner_signal_power(unsigned char value)
{
tuner_signal_power = (int)(value);
@@ -59,14 +54,9 @@ static void rmt_tuner_signal_power(unsigned char value)
void rmt_tuner_freq(const unsigned char *serbuf)
{
- char tempdata[4];
- tempdata[0] = serbuf[6];
- tempdata[1] = serbuf[5];
- tempdata[2] = serbuf[4];
- tempdata[3] = serbuf[3];
-
- memcpy(Frequency.data_frequency,tempdata,4);
- tuner_frequency = (Frequency.frequency_radio*1000);
+ unsigned int khz = (serbuf[3] << 24) | (serbuf[4] << 16) |
+ (serbuf[5] << 8) | serbuf[6];
+ tuner_frequency = khz *1000 ;
radio_tuned = true;
rmt_tuner_signal_power(serbuf[7]);
}
@@ -85,16 +75,11 @@ static void rmt_tuner_set_freq(int curr_freq)
if (curr_freq != 0)
{
- curr_freq = curr_freq / 1000;
- char tempdata[4];
-
- Frequency.frequency_radio = curr_freq;
- tempdata[0] = Frequency.data_frequency[3];
- tempdata[1] = Frequency.data_frequency[2];
- tempdata[2] = Frequency.data_frequency[1];
- tempdata[3] = Frequency.data_frequency[0];
-
- memcpy(data+2,tempdata,4);
+ unsigned int khz = curr_freq / 1000;
+ data[2] = (khz >> 24) & 0xFF;
+ data[3] = (khz >> 16) & 0xFF;
+ data[4] = (khz >> 8) & 0xFF;
+ data[5] = (khz >> 0) & 0xFF;
iap_send_pkt(data, sizeof(data));
}
}