Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Tina's Rocker Version that works
- using System;
- using System.Collections;
- using System.Threading;
- using Microsoft.SPOT;
- using Microsoft.SPOT.Presentation;
- using Microsoft.SPOT.Presentation.Controls;
- using Microsoft.SPOT.Presentation.Media;
- using Microsoft.SPOT.Touch;
- using Gadgeteer.Networking;
- using GT = Gadgeteer;
- using GTM = Gadgeteer.Modules;
- using Gadgeteer.Modules.GHIElectronics;
- using System.Xml;
- using System.IO;
- using Gadgeteer.Modules.Seeed;
- namespace Gadgeteer_Weather_Crier_02
- {
- public partial class Program
- {
- //string musicFile;
- GT.StorageDevice usbStorage;
- int currentFile = 0;
- bool nowPlaying = false;
- FileStream stream;
- ArrayList musicFiles = new ArrayList();
- // This method is run when the mainboard is powered up or reset.
- void ProgramStarted()
- {
- Debug.Print("Program Started");
- // Initialize event handling robots
- usbHost.USBDriveConnected += new UsbHost.USBDriveConnectedEventHandler(usbHost_USBDriveConnected);
- usbHost.USBDriveDisconnected += new UsbHost.USBDriveDisconnectedEventHandler(usbHost_USBDriveDisconnected);
- //accelerometer threshold bump method
- //accelerometer.ThresholdExceeded += new Accelerometer.ThresholdExceededEventHandler(accelerometer_ThresholdExceeded);
- //accelerometer.EnableThresholdDetection(4.0, true, true, true, true, false, false);
- //accelerometer.RequestMeasurement();
- accelerometer.ContinuousMeasurementInterval = new TimeSpan(0, 0, 0, 0, 200);
- accelerometer.MeasurementComplete += new Accelerometer.MeasurementCompleteEventHandler(accelerometer_MeasurementComplete);
- accelerometer.StartContinuousMeasurements();
- // music finished listening robot
- music.MusicFinished += new Music.MusicFinishedPlayingEventHandler(music_MusicFinished);
- music.SetVolume(255);
- // Use Debug.Print to show messages in Visual Studio's "Output" window during debugging.
- Debug.Print("Program Running");
- }
- void accelerometer_MeasurementComplete(Accelerometer sender, Accelerometer.Acceleration acceleration)
- {
- //Debug.Print(" X " + acceleration.X + " Y " + acceleration.Y + " Z " + acceleration.Z);
- if (acceleration.X > -0.25 && acceleration.X < 0.25 && usbStorage != null && !nowPlaying)
- {
- if (currentFile == 0)
- {
- Debug.Print("Starting the first audio track: currentFile = " + currentFile);
- }
- playTracks();
- }
- }
- void usbHost_USBDriveDisconnected(UsbHost sender)
- {
- Debug.Print("USB STORAGE DIS-CONNECTED");
- musicFiles.Clear();
- usbStorage = null;
- }
- void usbHost_USBDriveConnected(UsbHost sender, GT.StorageDevice storageDevice)
- {
- Debug.Print("USB STORAGE CONNECTED");
- usbStorage = storageDevice;
- musicFiles.Add("audio" + Path.DirectorySeparatorChar + "20120713 151953.mp3");//Good Morning
- musicFiles.Add("audio" + Path.DirectorySeparatorChar + "20120713 152009.mp3");//It looks like
- musicFiles.Add("audio" + Path.DirectorySeparatorChar + "20120713 152027.mp3");//It going to be mostly sunny
- musicFiles.Add("audio" + Path.DirectorySeparatorChar + "20120713 152211.mp3");//Tomorrow
- musicFiles.Add("audio" + Path.DirectorySeparatorChar + "20120713 152044.mp3");//There's a chance of a storm
- }
- void playTracks()
- {
- nowPlaying = true;
- stream = usbStorage.Open((String)musicFiles[currentFile], FileMode.Open, FileAccess.Read);
- music.SetVolume(255);
- Debug.Print("Starting to play: " + (String)musicFiles[currentFile]);
- music.Play(stream);
- while (music.IsBusy)
- {
- // You can't call music.StopPlaying or set volume with this loop running.
- Thread.Sleep(10);
- }
- }
- void music_MusicFinished(Music sender)
- {
- Debug.Print("Track finished");
- nowPlaying = false;
- currentFile++;
- if (currentFile < musicFiles.Count - 1)
- {
- Debug.Print("Moving to next audio track: currentFile = " + currentFile);
- }
- else
- {
- Debug.Print("Resetting audio: currentFile = 0");
- currentFile = 0;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement