~ubuntu-branches/ubuntu/trusty/sidplay-libs/trusty

« back to all changes in this revision

Viewing changes to libsidplay/include/sidplay/sidendian.h

  • Committer: Bazaar Package Importer
  • Author(s): Laszlo Boszormenyi (GCS)
  • Date: 2006-03-30 21:19:47 UTC
  • mfrom: (3.1.1 dapper)
  • Revision ID: james.westby@ubuntu.com-20060330211947-ac4p67x674jx8vif
Tags: 2.1.1-5
* Fix extra qualification, patch by Martin Michlmayr (closes: #357710).
* Include hardsid support (closes: #353114).

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
 ***************************************************************************/
17
17
/***************************************************************************
18
18
 *  $Log: sidendian.h,v $
 
19
 *  Revision 1.6  2005/11/20 11:02:06  s_a_white
 
20
 *  Work around for bug in gcc 4 (optimiser breaks if variable never has a
 
21
 *  direct assignment).
 
22
 *
19
23
 *  Revision 1.5  2001/07/03 22:44:13  s_a_white
20
24
 *  Added endian_16 to convert a 16 bit value to an array of 8s.
21
25
 *
141
145
// Convert high-byte and low-byte to 16-bit word.
142
146
inline uint_least16_t endian_16 (uint8_t hi, uint8_t lo)
143
147
{
144
 
    uint_least16_t word;
 
148
    uint_least16_t word = 0;
145
149
    endian_16lo8 (word, lo);
146
150
    endian_16hi8 (word, hi);
147
151
    return word;
165
169
 
166
170
inline void endian_16 (char ptr[2], uint_least16_t word)
167
171
{
168
 
        endian_16 ((uint8_t *) ptr, word);
 
172
    endian_16 ((uint8_t *) ptr, word);
169
173
}
170
174
 
171
175
// Convert high-byte and low-byte to 16-bit little endian word.
334
338
// Swap word endian.
335
339
inline void endian_32swap8 (uint_least32_t &dword)
336
340
{
337
 
    uint_least16_t lo, hi;
 
341
    uint_least16_t lo = 0, hi = 0;
338
342
    lo = endian_32lo16 (dword);
339
343
    hi = endian_32hi16 (dword);
340
344
    endian_16swap8 (lo);
346
350
// Convert high-byte and low-byte to 32-bit word.
347
351
inline uint_least32_t endian_32 (uint8_t hihi, uint8_t hilo, uint8_t hi, uint8_t lo)
348
352
{
349
 
    uint_least32_t dword;
350
 
    uint_least16_t word;
 
353
    uint_least32_t dword = 0;
 
354
    uint_least16_t word  = 0;
351
355
    endian_32lo8  (dword, lo);
352
356
    endian_32hi8  (dword, hi);
353
357
    endian_16lo8  (word,  hilo);
374
378
    defined(SID_WORDS_LITTLEENDIAN)
375
379
    *((uint_least32_t *) ptr) = dword;
376
380
#else
377
 
    uint_least16_t word;
 
381
    uint_least16_t word = 0;
378
382
    ptr[0] = endian_32lo8  (dword);
379
383
    ptr[1] = endian_32hi8  (dword);
380
384
    word   = endian_32hi16 (dword);
401
405
    defined(SID_WORDS_BIGENDIAN)
402
406
    *((uint_least32_t *) ptr) = dword;
403
407
#else
404
 
    uint_least16_t word;
 
408
    uint_least16_t word = 0;
405
409
    word   = endian_32hi16 (dword);
406
410
    ptr[1] = endian_16lo8  (word);
407
411
    ptr[0] = endian_16hi8  (word);