X-Git-Url: http://git.maemo.org/git/?p=demorecorder;a=blobdiff_plain;f=src%2FDemoRecorder.vala;h=dec1c0458764e18f2a5a7cec7c78108aec43ab33;hp=d0172da5111c12a72272e3b38c5bcbefbd9a09f7;hb=40c3acb6e61b18481cf575b72121af3eb74a53c3;hpb=804630a4e0d41b182d8540f2aec69cf25ca0acfd diff --git a/src/DemoRecorder.vala b/src/DemoRecorder.vala index d0172da..dec1c04 100644 --- a/src/DemoRecorder.vala +++ b/src/DemoRecorder.vala @@ -152,7 +152,7 @@ public class DemoRecorder : Hildon.Program { } private bool keep_screen_on() { - if (this.recording) { + if (this.recording || this.playing) { Osso.Status status = this.osso_context.display_blanking_pause(); /*if (Osso.Status.OK == status) { stdout.printf("%s\n", "OK"); @@ -181,26 +181,38 @@ public class DemoRecorder : Hildon.Program { int idx = 0; if (0 < project.tracks.length()) { this.playing = true; -// for (int i = 0; i < tracks.children.length(); ++i) { -// TrackTransport tt = tracks.children.nth_data(i) as TrackTransport; -// if (null != tt) { -// if (tt.get_active_state()) { -// stdout.printf("Track %s active and has been added\n", i.to_string()); -// //track.bin.set_start_time((Gst.ClockTime)(Time.Nanoseconds.SECOND * idx)); -// mixer.add_track(tt.track_bin); -// } -// } -// tt = null; -// } - while (idx < project.tracks.length()) { + keep_screen_on(); + if (0 != screen_timer_id) Source.remove(screen_timer_id); + screen_timer_id = Timeout.add ((uint)Time.Milliseconds.SECOND * 20, keep_screen_on); + var children = tracks.get_children(); + foreach (var child in children) { + TrackTransport tt = child as TrackTransport; + if (null != tt && tt.get_active_state()) { + mixer.add_track(tt.track_bin); + } + } + //for (int i = 0; i < tracks.children.length(); ++i) { + //Object tt = tracks.children.nth_data(i); + //stdout.printf("Type %s\n",tt.get_type().name()); + //if (null != tt) { + //if (tt.track_bin.IsActive) { + //stdout.printf("Track %s active and has been added\n", i.to_string()); + //track.bin.set_start_time((Gst.ClockTime)(Time.Nanoseconds.SECOND * idx)); + //mixer.add_track(tt.track_bin); + //} + //} + //tt = null; + //} + /*while (idx < project.tracks.length()) { Track track = project.tracks.nth_data(idx); if (track.active) { - stdout.printf("Track %s active and has been added\n", idx.to_string()); + //stdout.printf("Track %s active and has been added\n", idx.to_string()); + stdout.printf("Track_bin %s active and has been added\n", track.bin.IsActive.to_string()); //track.bin.set_start_time((Gst.ClockTime)(Time.Nanoseconds.SECOND * idx)); mixer.add_track(track.bin); } ++idx; - } + }*/ playpipeline = new PlayPipeline("player", mixer); this.playback_position_duration.connect(player.position_duration_callback); playpipeline.position_duration.connect(playpipeline_position_duration_callback); @@ -212,9 +224,11 @@ public class DemoRecorder : Hildon.Program { playback_timer_id = Timeout.add ((uint)Time.Milliseconds.SECOND / 10, update_time_and_duration_play_pipeline); } if (this.recording) { - keep_screen_on(); - if (0 != screen_timer_id) Source.remove(screen_timer_id); - screen_timer_id = Timeout.add ((uint)Time.Milliseconds.SECOND * 20, keep_screen_on); + if (!this.playing) { + keep_screen_on(); + if (0 != screen_timer_id) Source.remove(screen_timer_id); + screen_timer_id = Timeout.add ((uint)Time.Milliseconds.SECOND * 20, keep_screen_on); + } this.playback_position_duration.disconnect(player.position_duration_callback); this.recording_position_duration.connect(player.position_duration_callback); recordpipeline.position_duration.connect(recordpipeline_position_duration_callback); @@ -304,9 +318,19 @@ public class DemoRecorder : Hildon.Program { var btnSettings = new Gtk.Button.with_label("Settings"); btnSettings.clicked.connect(show_settings); menu.append(btnSettings); + var btnAbout = new Gtk.Button.with_label("About"); + btnAbout.clicked.connect(show_about); + menu.append(btnAbout); menu.show_all(); window.set_app_menu(menu); } + private void show_about() { + AboutDialog dlg = new AboutDialog(window); + dlg.set_transient_for(window); + dlg.run(); + dlg.destroy(); + dlg = null; + } private void show_settings() { File settings = File.new_for_path(Environment.get_home_dir() + "/.demorecorder/settings.xml"); string errors = ""; @@ -437,6 +461,7 @@ public class DemoRecorder : Hildon.Program { for (int idx = ((int)project.tracks.length()) - 1; idx > -1; --idx) { project.tracks.delete_link(project.tracks.nth(idx)); } + player.position_duration_callback(0, 0); } private void remove_track_interactive(TrackTransport tt) { string message = "";