Merge remote-tracking branch 'upstream/master'

This commit is contained in:
jent46} 2013-08-20 16:36:50 -05:00
commit 99667ce98d
8 changed files with 44 additions and 8 deletions

View File

@ -9,7 +9,7 @@
<property name="BASE_DIR" value="${basedir}" /> <property name="BASE_DIR" value="${basedir}" />
<property name="SRC_DIR" value="${BASE_DIR}/src" /> <property name="SRC_DIR" value="${BASE_DIR}/src" />
<property name="OUTPUT_DIR" value="${BASE_DIR}/bin" /> <property name="OUTPUT_DIR" value="${BASE_DIR}/client" />
<taskdef resource="flexTasks.tasks" classpath="${FLEX_HOME}/ant/lib/flexTasks.jar" /> <taskdef resource="flexTasks.tasks" classpath="${FLEX_HOME}/ant/lib/flexTasks.jar" />
<target name="init-ant-contrib"> <target name="init-ant-contrib">

View File

@ -674,3 +674,12 @@ MDIWindow { /*None of the following properties are overridden by the MDIWindow c
{ {
icon: Embed('assets/images/webcam.png'); icon: Embed('assets/images/webcam.png');
} }
Alert {
borderColor: #DFDFDF;
backgroundColor: #EFEFEF;
borderAlpha: 1;
shadowDistance: 1;
dropShadowColor: #FFFFFF;
color: #000000;
}

View File

@ -1,5 +1,5 @@
function setTitle(title){ function setTitle(title){
document.title=title; document.title= "BigBlueButton - " + title;
} }
var i = 1; var i = 1;

View File

@ -105,7 +105,7 @@ package org.bigbluebutton.main.model.users
} }
// assign the meeting name to the document title // assign the meeting name to the document title
ExternalInterface.call("setTitle", "BigBlueButton - " + _conferenceParameters.meetingName); ExternalInterface.call("setTitle", _conferenceParameters.meetingName);
/** /**
* Temporarily store the parameters in global BBB so we get easy access to it. * Temporarily store the parameters in global BBB so we get easy access to it.

View File

@ -179,12 +179,12 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
// Confirm logout using built-in alert // Confirm logout using built-in alert
var alert:Alert = Alert.show(ResourceUtil.getInstance().getString('bbb.logout.confirm.message'), ResourceUtil.getInstance().getString('bbb.logout.confirm.title'), Alert.YES | Alert.NO, this, alertLogout, null, Alert.YES); var alert:Alert = Alert.show(ResourceUtil.getInstance().getString('bbb.logout.confirm.message'), ResourceUtil.getInstance().getString('bbb.logout.confirm.title'), Alert.YES | Alert.NO, this, alertLogout, null, Alert.YES);
var newX:Number = this.width/2 - alert.width/2; var newX:Number = langSelector.x + langSelector.width/2;
var newY:Number = 86; var newY:Number = btnLogout.y + btnLogout.height + 5;
alert.validateNow(); alert.validateNow();
alert.move(newX, newY); alert.move(newX, newY);
Accessibility.updateProperties(); //Accessibility.updateProperties();
} }
else{ else{
doLogout(); doLogout();
@ -312,6 +312,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
]]> ]]>
</mx:Script> </mx:Script>
<mx:HBox id="quickLinks" width="1" includeInLayout="false"> <mx:HBox id="quickLinks" width="1" includeInLayout="false">
<mx:LinkButton id="usersLinkBtn" click="onQuickLinkClicked('users')" label="{ResourceUtil.getInstance().getString('bbb.users.quickLink.label')}" <mx:LinkButton id="usersLinkBtn" click="onQuickLinkClicked('users')" label="{ResourceUtil.getInstance().getString('bbb.users.quickLink.label')}"
accessibilityDescription="{usersLinkBtn.label}" toolTip="{usersLinkBtn.label}" accessibilityDescription="{usersLinkBtn.label}" toolTip="{usersLinkBtn.label}"

View File

@ -289,6 +289,29 @@ module BigBlueButton
File.rename(temp_wav_file, file) File.rename(temp_wav_file, file)
end end
end end
# Stretch/squish the length of the audio file to match the requested length
# The length parameter should be in milliseconds.
# Returns the filename of the new file (in the same directory as the original)
def self.stretch_audio_file(file, length, sample_rate)
BigBlueButton.logger.info("Task: Stretching/Squishing Audio")
orig_length = determine_length_of_audio_from_file(file)
new_file = "#{file}.stretch.wav"
if (orig_length == 0)
BigBlueButton.logger.error("Stretch received 0-length file as input!")
# Generate silence to fill the length
generate_silence(length, new_file, sample_rate)
return new_file
end
speed = orig_length.to_f / length.to_f
BigBlueButton.logger.info("Adjusting #{file} speed to #{speed}")
sox_cmd = "sox #{file} #{new_file} speed #{speed} rate -h #{sample_rate} trim 0 #{length.to_f/1000}"
BigBlueButton.execute(sox_cmd)
return new_file
end
# Determine the audio padding we need to generate. # Determine the audio padding we need to generate.
def self.generate_audio_paddings(events, events_xml) def self.generate_audio_paddings(events, events_xml)

View File

@ -41,7 +41,10 @@ module BigBlueButton
BigBlueButton::AudioEvents.generate_silence(ae.length_of_gap, ae.file, sampling_rate) BigBlueButton::AudioEvents.generate_silence(ae.length_of_gap, ae.file, sampling_rate)
else else
# Substitute the original file location with the archive location # Substitute the original file location with the archive location
ae.file = ae.file.sub(/.+\//, "#{audio_dir}/") orig_file = ae.file.sub(/.+\//, "#{audio_dir}/")
length = ae.stop_event_timestamp.to_i - ae.start_event_timestamp.to_i
ae.file = BigBlueButton::AudioEvents.stretch_audio_file(orig_file, length, sampling_rate)
end end
audio_files << ae.file audio_files << ae.file

View File

@ -645,7 +645,7 @@ def processChatMessages
chat_sender = node.xpath(".//sender")[0].text() chat_sender = node.xpath(".//sender")[0].text()
chat_message = BigBlueButton::Events.linkify(node.xpath(".//message")[0].text()) chat_message = BigBlueButton::Events.linkify(node.xpath(".//message")[0].text())
chat_start = (chat_timestamp.to_i - $meeting_start.to_i) / 1000 chat_start = (chat_timestamp.to_i - $meeting_start.to_i) / 1000
$xml.chattimeline(:in => chat_start, :direction => :down, :name => chat_sender, :message => chat_message, :target => :chat ) $xml.chattimeline(:in => chat_start, :direction => :down, :name => chat_sender, :message => chat_message.to_s.gsub("event:",""), :target => :chat )
end end
} }
end end