96 o <<
"Speaker " << (*i).id <<
" @ "
97 << (*i).coords().x <<
", " << (*i).coords().y <<
", " << (*i).coords().z
98 <<
" azimuth " << (*i).angles().azi
99 <<
" elevation " << (*i).angles().ele
100 <<
" distance " << (*i).angles().length
142 (*i).move (new_position);
223 double degree_step = 360.0 / n;
232 deg = 360 + o + degree_step;
236 for (i = 0; i < n; ++i, deg -= degree_step) {
250 for (vector<Speaker>::const_iterator i =
_speakers.begin(); i !=
_speakers.end(); ++i) {
253 snprintf (buf,
sizeof (buf),
"%.12g", (*i).angles().azi);
255 snprintf (buf,
sizeof (buf),
"%.12g", (*i).angles().ele);
257 snprintf (buf,
sizeof (buf),
"%.12g", (*i).angles().length);
278 if ((*i)->name() ==
X_(
"Speaker")) {
279 if ((prop = (*i)->property (
X_(
"azimuth"))) == 0) {
280 warning <<
_(
"Speaker information is missing azimuth - speaker ignored") <<
endmsg;
285 if ((prop = (*i)->property (
X_(
"elevation"))) == 0) {
286 warning <<
_(
"Speaker information is missing elevation - speaker ignored") <<
endmsg;
291 if ((prop = (*i)->property (
X_(
"distance"))) == 0) {
292 warning <<
_(
"Speaker information is missing distance - speaker ignored") <<
endmsg;
std::vector< Speaker > _speakers
const std::string & value() const
int set_state(const XMLNode &, int version)
LIBPBD_API Transmitter warning
const XMLNodeList & children(const std::string &str=std::string()) const
Speakers & operator=(const Speakers &)
void cartesian(CartesianVector &c) const
std::ostream & endmsg(std::ostream &ostr)
PBD::CartesianVector _coords
virtual void remove_speaker(int id)
PBD::AngularVector _angles
virtual int add_speaker(const PBD::AngularVector &)
const PBD::ID & id() const
PBD::Signal0< void > Changed
void move(const PBD::AngularVector &new_position)
XMLProperty * add_property(const char *name, const std::string &value)
PBD::Signal0< void > PositionChanged
void add_child_nocopy(XMLNode &)
void setup_default_speakers(uint32_t nspeakers)
LIBARDOUR_API PBD::PropertyDescriptor< framepos_t > position
virtual void clear_speakers()
Speaker(int, const PBD::AngularVector &position)
virtual void move_speaker(int id, const PBD::AngularVector &new_position)
Speaker & operator=(const Speaker &)
XMLNodeList::const_iterator XMLNodeConstIterator
void dump_speakers(std::ostream &)
double atof(const string &s)