protected override void OnCreate(Bundle bundle) { RequestWindowFeature(WindowFeatures.ActionBar); base.OnCreate(bundle); SetContentView(Resource.Layout.WikiPracticeActivity); modeLayouts = new Dictionary<ServerData.TaskType, LinearLayout>(); modeNames = new BiDictionary<ServerData.TaskType, string>(); wikiText = FindViewById<TextView>(Resource.Id.wiki_text); wikiImage = FindViewById<ImageView>(Resource.Id.wiki_image); startBtn = FindViewById<Button>(Resource.Id.wiki_startBtn); startBtn.Click += startBtn_Click; // Pacing layout metronBpmText = FindViewById<TextView>(Resource.Id.wiki_bpm); metronDownBtn = FindViewById<Button>(Resource.Id.wiki_downBtn); metronDownBtn.Click += downBtn_Click; metronUpBtn = FindViewById<Button>(Resource.Id.wiki_upBtn); metronUpBtn.Click += upBtn_Click; metronControlsLayout = FindViewById<LinearLayout>(Resource.Id.wiki_speedControls); modeLayouts.Add(ServerData.TaskType.Pacing, metronControlsLayout); modeNames.Add(ServerData.TaskType.Pacing, "Speech Pacing"); // Loudness layout loudVolText = FindViewById<TextView>(Resource.Id.wiki_volume); loudTargetText = FindViewById<TextView>(Resource.Id.wiki_Targetvolume); loudTargetButton = FindViewById<Button>(Resource.Id.wiki_measureVolBtn); loudTargetButton.Click += loud_targetButton_Click; loudControlsLayout = FindViewById<LinearLayout>(Resource.Id.wiki_volControls); modeLayouts.Add(ServerData.TaskType.Loudness, loudControlsLayout); modeNames.Add(ServerData.TaskType.Loudness, "Loudness of Speech"); names = new List<string>(); foreach ( KeyValuePair<ServerData.TaskType, string> entry in (Dictionary<ServerData.TaskType, string>)modeNames.firstToSecond) { names.Add(entry.Value); } currentMode = ServerData.TaskType.Loudness; pacingModeButton = FindViewById<Button>(Resource.Id.wiki_pacingModeBtn); pacingModeButton.Click += pacingModeSwitch; loudnessModeButton = FindViewById<Button>(Resource.Id.wiki_loudnessModeBtn); loudnessModeButton.Click += loudnessModeSwitch; SetupRecorder(); LoadWikiInfo(); }
/// <summary> /// Switch the functionality of the practiceActivity /// </summary> private void SwitchMode(ServerData.TaskType newMode) { if (newMode == currentMode) return; // Hide the current mode if needed if (currentMode != ServerData.TaskType.None) { RunOnUiThread(() => { modeLayouts[currentMode].Visibility = ViewStates.Gone; }); } currentMode = newMode; string modeName; modeNames.TryGetByFirst(newMode, out modeName); Title = modeName; switch (newMode) { case ServerData.TaskType.Pacing: ChangeBpm(0); metronBuffSize = AudioTrack.GetMinBufferSize(44100, ChannelOut.Mono, Encoding.Pcm16bit); metronAudioBuffer = new short[metronBuffSize]; break; case ServerData.TaskType.Loudness: break; } }