コード例 #1
0
ファイル: sampleapp.c プロジェクト: jeffbl/pebble
static void select_click_handler(ClickRecognizerRef recognizer, void *context) {
   text_layer_set_text(text_layer, "Wobble up");
  
   uint32_t segments[40];
   VibePatternPWM pwmPat = {
      .durations = segments,
      .num_segments = 0, //pulseCount*2,
   };
	
   // demonstrate use of vibesPatternPWM_addpulse
   vibesPatternPWM_addpulse(&pwmPat, 300, 1);
   vibesPatternPWM_addpulse(&pwmPat, 300, 6);
   vibesPatternPWM_addpulse(&pwmPat, 300, 2);
   vibesPatternPWM_addpulse(&pwmPat, 300, 7);
   vibesPatternPWM_addpulse(&pwmPat, 300, 3);
   vibesPatternPWM_addpulse(&pwmPat, 300, 8);
   vibesPatternPWM_addpulse(&pwmPat, 300, 4);
   vibesPatternPWM_addpulse(&pwmPat, 300, 9);
   vibesPatternPWM_addpulse(&pwmPat, 300, 5);
   vibesPatternPWM_addpulse(&pwmPat, 300, 10);

   vibes_enqueue_custom_pwm_pattern(&pwmPat);
}

static void up_click_handler(ClickRecognizerRef recognizer, void *context) {
  text_layer_set_text(text_layer, "Ramp up");

   // demonstrate a straightforward vibration ramp
   static uint32_t segments[] = { 300, 1, 300, 2, 300, 3, 300, 4, 300, 5, 300, 6, 300, 7, 300, 8, 300, 9, 300, 10 };
   //static uint32_t segments[] = { 100, 2, 1000, 0, 100, 10, 1000, 0, 100, 2, 1000, 0, 100, 10, 1000, 0, 100, 2 };
   VibePatternPWM pwmPat = {
      .durations = segments,
      .num_segments = ARRAY_LENGTH(segments),
   };
   
   //Could just call vibes_enqueue_custom_pwm_pattern,
   //but will instead do it in two steps - prepare and play:
   vibes_prepare_custom_pwm_pattern(&pwmPat); //Note this will not cause it to actually vibrate!
   vibes_play_current_custom_pwm_pattern(); //Now it actually plays the pattern that was "prepared"
}
コード例 #2
0
ファイル: pwm_vibrate.c プロジェクト: anniexie/sunshine
/*
 * Sends PWM pattern to standard Pebble SDK vibes_enqueue_custom_pattern
 */
bool vibes_enqueue_custom_pwm_pattern(VibePatternPWM *pwmPat) {
   bool isFull = vibes_prepare_custom_pwm_pattern(pwmPat);
   vibes_play_current_custom_pwm_pattern();
   return isFull;
}