Skip to content

Commit

Permalink
Merge pull request #248 from Mechami/misc_conversion_fixes
Browse files Browse the repository at this point in the history
Fixed warnings about conversions between soundlevel_t and float
  • Loading branch information
Blixibon authored Oct 25, 2023
2 parents c406a67 + 2fe3adf commit db1b687
Showing 1 changed file with 16 additions and 2 deletions.
18 changes: 16 additions & 2 deletions sp/src/public/soundflags.h
Original file line number Diff line number Diff line change
Expand Up @@ -102,8 +102,22 @@ enum soundlevel_t
#define MAX_SNDLVL_VALUE ((1<<MAX_SNDLVL_BITS)-1)


#define ATTN_TO_SNDLVL( a ) (soundlevel_t)(int)((a) ? (50 + 20 / ((float)a)) : 0 )
#define SNDLVL_TO_ATTN( a ) ((a > 50) ? (20.0f / (float)(a - 50)) : 4.0 )
inline soundlevel_t ATTN_TO_SNDLVL(float a)
{
soundlevel_t sndlvl = soundlevel_t::SNDLVL_NONE;

if (a >= 0.0f)
{
sndlvl = soundlevel_t(float(soundlevel_t::SNDLVL_50dB) + float(soundlevel_t::SNDLVL_20dB) / a);
}

return sndlvl;
}

inline float SNDLVL_TO_ATTN(soundlevel_t s)
{
return (s > soundlevel_t::SNDLVL_50dB)? (20.0f / float(s - soundlevel_t::SNDLVL_50dB)) : 4.0f;
}

// This is a limit due to network encoding.
// It encodes attenuation * 64 in 8 bits, so the maximum is (255 / 64)
Expand Down

0 comments on commit db1b687

Please sign in to comment.