Index: gui_clutter/object.c
===================================================================
--- gui_clutter/object.c	(revision 711)
+++ gui_clutter/object.c	(working copy)
@@ -126,6 +126,7 @@
 put_in_timeline(dropped_actor,icon_place_of_dropped);
 
 //Put sound
+
  gchar *sound;
   g_object_get(G_OBJECT(dropped_actor), "sound-file", &sound, NULL);
 
@@ -134,7 +135,6 @@
 
   chum_add_new_sample_to_track_nth_slot(0,buffer0,slot_number);
 
-
 //stop behaving
   GList *behaviours_and_actors = get_current_behaviours_and_actors();
   GList *l_counter;
@@ -212,20 +212,18 @@
 
 
 //Game is designed to play with finger, so this should be high.
-#define CLICKING_THRESHOLD 5
+#define CLICKING_THRESHOLD 20
 
 static void object_released (JammoTexture *actor, ClutterEvent *event, gpointer data) {
-  //Just be sure.
+  //Just to be sure.
   if (dragging == NULL){
     printf("dragging == NULL\n");
     return;
   }
-
   //If object are clicked but not moved, we play its sound
   gint x_release, y_release;
   clutter_event_get_coords (event, &x_release, &y_release);
- 
-  clutter_ungrab_pointer(); //even this object is not focused it still gets the event
+  clutter_ungrab_pointer(); //ungrab
   dragging = NULL;
 
   /*Check if this is not drag, but click on object.*/
@@ -243,7 +241,6 @@
        return;
      }
 
-
 /*There are four possibilities.
 A) Dragged object starts from valid_area and it is moved another place in valid_area
 B) Dragged object starts from valid_area and it is removed out from valid_area
@@ -276,13 +273,12 @@
 
 ///////////////////
           //Spawn new object in stage.
-          ClutterActor* parent_group = clutter_actor_get_parent(CLUTTER_ACTOR(dragging));
+          ClutterActor* parent_group = clutter_actor_get_parent(CLUTTER_ACTOR(actor));
           const gchar* id_of_actor;
           id_of_actor = clutter_get_script_id(G_OBJECT(actor));
 
           ClutterActor* new_actor;
           new_actor = config_get_configured_actor(chum_get_theme_folder(chum_get_current_theme()),  (gchar*)id_of_actor);
-        
           if (new_actor ==NULL)
               printf("new_actor is NULL\n");
           if (parent_group ==NULL)
Index: gui_clutter/button.c
===================================================================
--- gui_clutter/button.c	(revision 711)
+++ gui_clutter/button.c	(working copy)
@@ -66,8 +66,19 @@
  * @param		event			motion / press
  * @param		behaviour		behaviour which is used
  */
+
+/*
+2009-10-10:
+This was used to identify different buttons.
+g_object_get(G_OBJECT(actor), "name", &command_name, NULL);
+Names are in data/config.json and this worked on PC, but in N900
+'get(name)' results filename !
+So we use id. FIXME.
+
+*/
 void button_mouse_behaviour(ClutterActor* actor,  ClutterEvent *event, ClutterBehaviour* behaviour) {
 printf("button behavior\n");
+
       //regardless of event type, start behaving.
       ClutterAlpha* alpha;
       ClutterTimeline* timeline;
@@ -78,21 +89,27 @@
       }
 
       if (event->type == CLUTTER_BUTTON_PRESS){
-printf("button press\n");
+          printf("button press\n");
 	  gchar *command_name;
 	  g_object_get(G_OBJECT(actor), "name", &command_name, NULL);
-	  //printf("name of button '%s'\n",command_name);
+	  printf("name of button '%s'\n",command_name);
+          
+
+          
 	  if (command_name==NULL) return;
+  
+	  //All possible json-command must be listed and hooked here.
+          
 
-	  //All possible json-command must be listed and hooked here.
 	  if(strcmp (command_name, "play")==0)
 	      do_play_button_press();
 	  else if(strcmp (command_name, "help")==0)
-	      do_help_button_press();
+	     do_help_button_press();
 	  else if((strcmp (command_name, "back") ==0 ) || (strcmp (command_name, "mobikid-back") ==0))
 	      do_back_button_press();
 	  else if(strcmp (command_name, "mobikid-next")==0)
 	      do_mobikid_next_button_press();
+
       }
 }
 
Index: gui_clutter/singing_game.c
===================================================================
--- gui_clutter/singing_game.c	(revision 710)
+++ gui_clutter/singing_game.c	(working copy)
@@ -98,7 +98,7 @@
 
 
   //Star moving up and down
-  contour_star = config_get_configured_actor(NULL,"timeline_star");
+  contour_star = config_get_configured_actor(NULL,"contour_star");
   clutter_container_add_actor (CLUTTER_CONTAINER (stage), contour_star);
   clutter_actor_hide (contour_star);
 
Index: gui_clutter/composing_game.c
===================================================================
--- gui_clutter/composing_game.c	(revision 711)
+++ gui_clutter/composing_game.c	(working copy)
@@ -44,7 +44,7 @@
 }
 
 void gui_visualize_playing(void) {
-  //printf("clutter_gui: Playing starts!\n");
+  printf("composing_game: Playing starts!\n");
 
   //timeline_star is initialized from start_theme(). If we want play_sequencer before that
   //(e.g. testing virtual instrument) we want skip star visualization.
@@ -59,9 +59,10 @@
   guint64 a2=a0*a1;
   gint64 length_of_beat = a2 * GST_NSECOND * chum_get_meter_of_track(0)/chum_get_tempo_of_track(0);
 
-  g_print ("clutter: Duration: %" GST_TIME_FORMAT " .one beat: %" GST_TIME_FORMAT "\n",
+  printf ("composing_game: Duration: %" GST_TIME_FORMAT " .one beat: %" GST_TIME_FORMAT "\n",
   GST_TIME_ARGS (length_of_song), GST_TIME_ARGS (length_of_beat));
 
+//printf("composing_game: start_star timeline\n");
 
   ClutterTimeline *timeline = clutter_timeline_new_for_duration (length_of_song);
   clutter_timeline_set_loop(timeline, FALSE); 
@@ -84,7 +85,7 @@
   clutter_actor_show (timeline_star_actor);
   clutter_actor_set_position (timeline_star_actor, 0 , Y_PLACE_OF_TIMELINE);
 
-
+printf("composing_game: start_star timeline\n");
 clutter_timeline_start(timeline);
 }
 
Index: chum/chum.c
===================================================================
--- chum/chum.c	(revision 710)
+++ chum/chum.c	(working copy)
@@ -362,11 +362,13 @@
 
 
 guint chum_get_meter_of_track(int track_number){
-cem_add_to_log(g_strdup_printf("chum_get_meter_of_track(%d)",track_number),LOG_DEBUG);
-return meam_get_meter_of_track(track_number);
+guint meter=meam_get_meter_of_track(track_number);
+cem_add_to_log(g_strdup_printf("chum_get_meter_of_track(%d) [%u]",track_number,meter),LOG_DEBUG);
+return meter;
 }
 
 guint chum_get_tempo_of_track(int track_number){
-cem_add_to_log(g_strdup_printf("chum_get_tempo_of_track(%d)",track_number),LOG_DEBUG);
-return meam_get_meter_of_track(track_number);
+guint tempo=meam_get_tempo_of_track(track_number);
+cem_add_to_log(g_strdup_printf("chum_get_tempo_of_track(%d) [%u]",track_number,tempo),LOG_DEBUG);
+return tempo;
 }
