foobar2000 SDK  2015-01-14
replaygain.h
Go to the documentation of this file.
3 {
7 
9  t_replaygain_config(t_source_mode p_source_mode,t_processing_mode p_processing_mode,float p_preamp_without_rg, float p_preamp_with_rg)
10  : m_source_mode(p_source_mode), m_processing_mode(p_processing_mode), m_preamp_without_rg(p_preamp_without_rg), m_preamp_with_rg(p_preamp_with_rg) {}
11 
12 
13  t_source_mode m_source_mode;
14  t_processing_mode m_processing_mode;
15  float m_preamp_without_rg, m_preamp_with_rg;//preamp values in dB
16 
17  void reset();
18  audio_sample query_scale(const file_info & info) const;
21 
22  void format_name(pfc::string_base & p_out) const;
23  bool is_active() const;
24 
25  static bool equals(const t_replaygain_config & v1, const t_replaygain_config & v2) {
27  }
28  bool operator==(const t_replaygain_config & other) const {return equals(*this, other);}
29  bool operator!=(const t_replaygain_config & other) const {return !equals(*this, other);}
30 };
31 
33  return stream >> value.m_source_mode >> value.m_processing_mode >> value.m_preamp_with_rg >> value.m_preamp_without_rg;
34 }
36  return stream << value.m_source_mode << value.m_processing_mode << value.m_preamp_with_rg << value.m_preamp_without_rg;
37 }
38 
40 class NOVTABLE replaygain_manager : public service_base {
41 public:
43  virtual void get_core_settings(t_replaygain_config & p_out) = 0;
44 
46  virtual HWND configure_embedded(const t_replaygain_config & p_initdata,HWND p_parent,unsigned p_id,bool p_from_modal) = 0;
48  virtual void configure_embedded_retrieve(HWND wnd,t_replaygain_config & p_data) = 0;
49 
51  virtual bool configure_popup(t_replaygain_config & p_data,HWND p_parent,const char * p_title) = 0;
52 
54  virtual void set_core_settings(const t_replaygain_config & p_config) = 0;
55 
57  virtual void configure_embedded_set(HWND wnd, t_replaygain_config const & p_data) = 0;
59  virtual void get_core_defaults(t_replaygain_config & out) = 0;
60 
62  audio_sample core_settings_query_scale(const file_info & p_info);
64  audio_sample core_settings_query_scale(const metadb_handle_ptr & info);
65 
66  FB2K_MAKE_SERVICE_INTERFACE_ENTRYPOINT(replaygain_manager);
67 };
t_replaygain_config(t_source_mode p_source_mode, t_processing_mode p_processing_mode, float p_preamp_without_rg, float p_preamp_with_rg)
Definition: replaygain.h:9
t_uint32 t_source_mode
Definition: replaygain.h:6
void format_name(pfc::string_base &p_out) const
Definition: replaygain.cpp:100
t_source_mode m_source_mode
Definition: replaygain.h:13
void info(const char *p_message)
Definition: console.cpp:4
bool operator==(const t_replaygain_config &other) const
Definition: replaygain.h:28
float m_preamp_without_rg
Definition: replaygain.h:15
bool is_active() const
Definition: replaygain.cpp:178
Structure containing ReplayGain scan results from some playable object, also providing various helper...
Definition: file_info.h:2
Main interface class for information about some playable object.
Definition: file_info.h:73
Structure storing ReplayGain configuration: album/track source data modes, gain/peak processing modes...
Definition: replaygain.h:2
audio_sample query_scale(const file_info &info) const
Definition: replaygain.cpp:11
Base class for all service classes. Provides interfaces for reference counter and querying for differ...
Definition: service.h:333
float audio_sample
Definition: audio_sample.h:6
Core service providing methods to retrieve/alter playback ReplayGain settings, as well as use ReplayG...
Definition: replaygain.h:40
FB2K_STREAM_READER_OVERLOAD(t_replaygain_config)
Definition: replaygain.h:32
FB2K_STREAM_WRITER_OVERLOAD(t_replaygain_config)
Definition: replaygain.h:35
bool operator!=(const t_replaygain_config &other) const
Definition: replaygain.h:29
t_uint32 t_processing_mode
Definition: replaygain.h:6
static bool equals(const t_replaygain_config &v1, const t_replaygain_config &v2)
Definition: replaygain.h:25
t_processing_mode m_processing_mode
Definition: replaygain.h:14
uint32_t t_uint32
Definition: int_types.h:5