tomboy r2078 - in trunk: . Tomboy/Addins/VoiceNotes
- From: nshmyrev svn gnome org
- To: svn-commits-list gnome org
- Subject: tomboy r2078 - in trunk: . Tomboy/Addins/VoiceNotes
- Date: Tue, 12 Aug 2008 22:07:11 +0000 (UTC)
Author: nshmyrev
Date: Tue Aug 12 22:07:11 2008
New Revision: 2078
URL: http://svn.gnome.org/viewvc/tomboy?rev=2078&view=rev
Log:
2008-08-13 Gabriel Marcondes <gabrielgeraldo gmail com>
* Tomboy/Addins/VoiceNotes/Makefile.am,
Tomboy/Addins/VoiceNotes/VoiceNote.cs,
Tomboy/Addins/VoiceNotes/voicenote-22.png,
Tomboy/Addins/VoiceNotes/voicenotemedia.c: Speech
data is deleted when note is deleted, status of the
stop button is set properly. Icon for for notes with
recording is added.
Added:
trunk/Tomboy/Addins/VoiceNotes/voicenote-22.png (contents, props changed)
Modified:
trunk/ChangeLog
trunk/Tomboy/Addins/VoiceNotes/Makefile.am
trunk/Tomboy/Addins/VoiceNotes/VoiceNote.cs
trunk/Tomboy/Addins/VoiceNotes/voicenotemedia.c
Modified: trunk/Tomboy/Addins/VoiceNotes/Makefile.am
==============================================================================
--- trunk/Tomboy/Addins/VoiceNotes/Makefile.am (original)
+++ trunk/Tomboy/Addins/VoiceNotes/Makefile.am Tue Aug 12 22:07:11 2008
@@ -17,7 +17,8 @@
CSFILES = \
$(srcdir)/VoiceNote.cs
RESOURCES = \
- -resource:$(srcdir)/$(ADDIN_NAME).addin.xml
+ -resource:$(srcdir)/$(ADDIN_NAME).addin.xml \
+ -resource:$(srcdir)/voicenote-22.png,voicenote.png
$(TARGET): $(CSFILES) $(top_builddir)/Tomboy/Tomboy.exe
$(CSC) -out:$@ $(CSFLAGS) $(ASSEMBLIES) $(CSFILES) $(RESOURCES)
@@ -29,7 +30,8 @@
EXTRA_DIST = \
$(CSFILES) \
- $(srcdir)/$(ADDIN_NAME).addin.xml
+ $(srcdir)/$(ADDIN_NAME).addin.xml \
+ $(srcdir)/voicenote-22.png
CLEANFILES = \
$(TARGET).mdb \
Modified: trunk/Tomboy/Addins/VoiceNotes/VoiceNote.cs
==============================================================================
--- trunk/Tomboy/Addins/VoiceNotes/VoiceNote.cs (original)
+++ trunk/Tomboy/Addins/VoiceNotes/VoiceNote.cs Tue Aug 12 22:07:11 2008
@@ -16,10 +16,14 @@
InterruptableTimeout button_manager;
String voice_note_path;
bool has_voice_note;
+ bool pipeline_set = false;
+ static Gdk.Pixbuf icon = null;
static VoiceNote ()
{
+ icon = GuiUtils.GetIcon (System.Reflection.Assembly.GetExecutingAssembly (),
+ "voicenote", 22);
}
[DllImport("libvoicenote")]
@@ -56,6 +60,12 @@
record_button.Clicked -= OnRecordButtonClicked;
play_button.Clicked -= OnPlayButtonClicked;
stop_button.Clicked -= OnStopButtonClicked;
+
+ // Stop if streaming, and delete the voice note
+ if (pipeline_set)
+ stop_stream ();
+ if (has_voice_note)
+ File.Delete (voice_note_path);
}
@@ -63,6 +73,11 @@
{
voice_note_path = Note.FilePath + ".ogg";
has_voice_note = voice_note_exists ();
+ //set the icon if there is a voice note
+ if (has_voice_note) {
+ Window.Icon = icon;
+ }
+
separator.Show ();
record_button.Show ();
play_button.Sensitive = has_voice_note;
@@ -74,6 +89,10 @@
AddToolItem (play_button, -1);
AddToolItem (stop_button, -1);
+ // This has to be done here and not in initialize,
+ //otherwise the button's layout becomes disformed
+ Window.Hidden += OnNoteClosed;
+
button_manager = new InterruptableTimeout ();
button_manager.Timeout += UpdateButtons;
}
@@ -82,14 +101,29 @@
void OnRecordButtonClicked (object sender, EventArgs args)
{
start_record (voice_note_path);
- button_manager.Reset (100);
+ pipeline_set = true;
+ record_button.Sensitive = false;
+ play_button.Sensitive = false;
+ stop_button.Sensitive = true;
+
+ // If there was not, now there is...
+ if (!has_voice_note) {
+ has_voice_note = true;
+ Window.Icon = icon;
+ }
+
+ button_manager.Reset (500);
}
void OnPlayButtonClicked (object sender, EventArgs args)
{
- start_play (voice_note_path);
- button_manager.Reset (100);
+ start_play (voice_note_path);
+ pipeline_set = true;
+ record_button.Sensitive = false;
+ play_button.Sensitive = false;
+ stop_button.Sensitive = true;
+ button_manager.Reset (500);
}
void OnStopButtonClicked (object sender, EventArgs args)
@@ -97,20 +131,24 @@
stop_stream ();
}
+ void OnNoteClosed (object sender, EventArgs args)
+ {
+ // Stop streaming before hide the window
+ if (pipeline_set)
+ stop_stream ();
+ }
+
void UpdateButtons (object sender, EventArgs args)
{
int media_state = get_state ();
switch (media_state) {
- case 0: //Stopped
+ case 0: //Stopped, back to initial state
record_button.Sensitive = true;
play_button.Sensitive = true;
stop_button.Sensitive = false;
break;
- case 1: //Streaming
- record_button.Sensitive = false;
- play_button.Sensitive = false;
- stop_button.Sensitive = true;
- button_manager.Reset (100);
+ case 1: //Still streaming, don't change
+ button_manager.Reset (500);
break;
default: //should not happen!!!
break;
@@ -119,13 +157,8 @@
bool voice_note_exists ()
{
- FileStream voice_note_file;
- try{
- voice_note_file = File.Open (voice_note_path, FileMode.Open);
- }
- catch (Exception except) {
- return false;
- }
+ try{ File.Open (voice_note_path, FileMode.Open); }
+ catch (Exception except) { return false; }
return true;
}
}
Added: trunk/Tomboy/Addins/VoiceNotes/voicenote-22.png
==============================================================================
Binary file. No diff available.
Modified: trunk/Tomboy/Addins/VoiceNotes/voicenotemedia.c
==============================================================================
--- trunk/Tomboy/Addins/VoiceNotes/voicenotemedia.c (original)
+++ trunk/Tomboy/Addins/VoiceNotes/voicenotemedia.c Tue Aug 12 22:07:11 2008
@@ -20,7 +20,6 @@
switch (GST_MESSAGE_TYPE (message)) {
case GST_MESSAGE_EOS: {
gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_READY);
- printf ("Finished?");
break;
}
default:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]