void Mixer::volumeChanged(ComponentMixerLine* ref) { float newVolume = ref->getVolume(); DrumkitComponent *pCompo = Hydrogen::get_instance()->getSong()->get_component( ref->getCompoID() ); pCompo->set_volume( newVolume ); }
Drumkit* Drumkit::load_from( XMLNode* node, const QString& dk_path ) { QString drumkit_name = node->read_string( "name", "", false, false ); if ( drumkit_name.isEmpty() ) { ERRORLOG( "Drumkit has no name, abort" ); return NULL; } Drumkit* drumkit = new Drumkit(); drumkit->__path = dk_path; drumkit->__name = drumkit_name; drumkit->__author = node->read_string( "author", "undefined author" ); drumkit->__info = node->read_string( "info", "No information available." ); drumkit->__license = node->read_string( "license", "undefined license" ); XMLNode componentListNode = node->firstChildElement( "componentList" ); if ( ! componentListNode.isNull() ) { XMLNode componentNode = componentListNode.firstChildElement( "drumkitComponent" ); while ( ! componentNode.isNull() ) { int id = componentNode.read_int( "id", -1 ); // instrument id QString sName = componentNode.read_string( "name", "" ); // name float fVolume = componentNode.read_float( "volume", 1.0 ); // volume DrumkitComponent* pDrumkitComponent = new DrumkitComponent( id, sName ); pDrumkitComponent->set_volume( fVolume ); drumkit->get_components()->push_back(pDrumkitComponent); componentNode = componentNode.nextSiblingElement( "drumkitComponent" ); } } else { WARNINGLOG( "componentList node not found" ); DrumkitComponent* pDrumkitComponent = new DrumkitComponent( 0, "Main" ); drumkit->get_components()->push_back(pDrumkitComponent); } XMLNode instruments_node = node->firstChildElement( "instrumentList" ); if ( instruments_node.isNull() ) { WARNINGLOG( "instrumentList node not found" ); drumkit->set_instruments( new InstrumentList() ); } else { drumkit->set_instruments( InstrumentList::load_from( &instruments_node, dk_path, drumkit_name ) ); } return drumkit; }