You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by pu...@apache.org on 2012/07/18 23:10:15 UTC
[6/7] wp7 commit: updated Media and Contact methods
updated Media and Contact methods
Project: http://git-wip-us.apache.org/repos/asf/incubator-cordova-wp7/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cordova-wp7/commit/4885f4a5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-wp7/tree/4885f4a5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-wp7/diff/4885f4a5
Branch: refs/heads/master
Commit: 4885f4a5a5d7dccdf60da56c8d40dfc24e1279ea
Parents: 9d7b92a
Author: Jesse MacFadyen <pu...@gmail.com>
Authored: Tue Jul 17 15:09:17 2012 -0700
Committer: Jesse MacFadyen <pu...@gmail.com>
Committed: Tue Jul 17 15:09:17 2012 -0700
----------------------------------------------------------------------
.../standalone/cordovalib/Commands/AudioPlayer.cs | 12 +
.../standalone/cordovalib/Commands/Contacts.cs | 17 +-
templates/standalone/cordovalib/Commands/Media.cs | 225 ++++++++-------
3 files changed, 147 insertions(+), 107 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cordova-wp7/blob/4885f4a5/templates/standalone/cordovalib/Commands/AudioPlayer.cs
----------------------------------------------------------------------
diff --git a/templates/standalone/cordovalib/Commands/AudioPlayer.cs b/templates/standalone/cordovalib/Commands/AudioPlayer.cs
index b08bc58..35d805c 100644
--- a/templates/standalone/cordovalib/Commands/AudioPlayer.cs
+++ b/templates/standalone/cordovalib/Commands/AudioPlayer.cs
@@ -352,6 +352,18 @@ namespace WP7CordovaClassLib.Cordova.Commands
}
/// <summary>
+ /// Set the volume of the player
+ /// </summary>
+ /// <param name="vol">volume 0.0-1.0, default value is 0.5</param>
+ public void setVolume(double vol)
+ {
+ if (this.player != null)
+ {
+ this.player.Volume = vol;
+ }
+ }
+
+ /// <summary>
/// Pauses playing
/// </summary>
public void pausePlaying()
http://git-wip-us.apache.org/repos/asf/incubator-cordova-wp7/blob/4885f4a5/templates/standalone/cordovalib/Commands/Contacts.cs
----------------------------------------------------------------------
diff --git a/templates/standalone/cordovalib/Commands/Contacts.cs b/templates/standalone/cordovalib/Commands/Contacts.cs
index 6e5f627..ea1f2d6 100644
--- a/templates/standalone/cordovalib/Commands/Contacts.cs
+++ b/templates/standalone/cordovalib/Commands/Contacts.cs
@@ -196,9 +196,8 @@ namespace WP7CordovaClassLib.Cordova.Commands
// refer here for contact properties we can access: http://msdn.microsoft.com/en-us/library/microsoft.phone.tasks.savecontacttask_members%28v=VS.92%29.aspx
public void save(string jsonContact)
{
-
- JSONContact contact = JSON.JsonHelper.Deserialize<JSONContact>(jsonContact);
-
+ // jsonContact is actually an array of 1 {contact}
+ JSONContact contact = JSON.JsonHelper.Deserialize<JSONContact[]>(jsonContact)[0];
SaveContactTask contactTask = new SaveContactTask();
@@ -367,12 +366,22 @@ namespace WP7CordovaClassLib.Cordova.Commands
public void remove(string id)
{
+ // note id is wrapped in [] and always has exactly one string ...
DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "{\"code\":" + NOT_SUPPORTED_ERROR + "}"));
}
public void search(string searchCriteria)
{
- ContactSearchParams searchParams = JSON.JsonHelper.Deserialize<ContactSearchParams>(searchCriteria);
+ ContactSearchParams searchParams = null;
+ try
+ {
+ searchParams = JSON.JsonHelper.Deserialize<ContactSearchParams[]>(searchCriteria)[0];
+ }
+ catch (Exception)
+ {
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, INVALID_ARGUMENT_ERROR));
+ return;
+ }
if (searchParams.options == null)
{
http://git-wip-us.apache.org/repos/asf/incubator-cordova-wp7/blob/4885f4a5/templates/standalone/cordovalib/Commands/Media.cs
----------------------------------------------------------------------
diff --git a/templates/standalone/cordovalib/Commands/Media.cs b/templates/standalone/cordovalib/Commands/Media.cs
index 75bf321..3f1018b 100644
--- a/templates/standalone/cordovalib/Commands/Media.cs
+++ b/templates/standalone/cordovalib/Commands/Media.cs
@@ -66,7 +66,7 @@ namespace WP7CordovaClassLib.Cordova.Commands
try
{
- mediaOptions = JSON.JsonHelper.Deserialize<MediaOptions>(options);
+ mediaOptions = JSON.JsonHelper.Deserialize<MediaOptions[]>(options)[0];
}
catch (Exception)
{
@@ -112,7 +112,10 @@ namespace WP7CordovaClassLib.Cordova.Commands
try
{
- mediaOptions = JSON.JsonHelper.Deserialize<MediaOptions>(options);
+ string[] optionsString = JSON.JsonHelper.Deserialize<string[]>(options);
+ mediaOptions = new MediaOptions();
+ mediaOptions.Id = optionsString[0];
+ mediaOptions.Src = optionsString[1];
}
catch (Exception)
{
@@ -120,24 +123,32 @@ namespace WP7CordovaClassLib.Cordova.Commands
return;
}
- Deployment.Current.Dispatcher.BeginInvoke(() =>
+ if (mediaOptions != null)
{
- try
+
+ Deployment.Current.Dispatcher.BeginInvoke(() =>
{
- if (!Media.players.ContainsKey(mediaOptions.Id))
+ try
{
- AudioPlayer audio = new AudioPlayer(this, mediaOptions.Id);
- Media.players.Add(mediaOptions.Id, audio);
- audio.startRecording(mediaOptions.Src);
+ if (!Media.players.ContainsKey(mediaOptions.Id))
+ {
+ AudioPlayer audio = new AudioPlayer(this, mediaOptions.Id);
+ Media.players.Add(mediaOptions.Id, audio);
+ audio.startRecording(mediaOptions.Src);
+ }
+ DispatchCommandResult(new PluginResult(PluginResult.Status.OK));
+ }
+ catch (Exception e)
+ {
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, e.Message));
}
- DispatchCommandResult(new PluginResult(PluginResult.Status.OK));
- }
- catch (Exception e)
- {
- DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, e.Message));
- }
- });
+ });
+ }
+ else
+ {
+ DispatchCommandResult(new PluginResult(PluginResult.Status.JSON_EXCEPTION));
+ }
}
catch (Exception e)
{
@@ -152,27 +163,16 @@ namespace WP7CordovaClassLib.Cordova.Commands
{
try
{
- MediaOptions mediaOptions;
-
- try
- {
- mediaOptions = JSON.JsonHelper.Deserialize<MediaOptions>(options);
- }
- catch (Exception)
- {
- DispatchCommandResult(new PluginResult(PluginResult.Status.JSON_EXCEPTION));
- return;
- }
-
+ string mediaId = JSON.JsonHelper.Deserialize<string[]>(options)[0];
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
try
{
- if (Media.players.ContainsKey(mediaOptions.Id))
+ if (Media.players.ContainsKey(mediaId))
{
- AudioPlayer audio = Media.players[mediaOptions.Id];
+ AudioPlayer audio = Media.players[mediaId];
audio.stopRecording();
- Media.players.Remove(mediaOptions.Id);
+ Media.players.Remove(mediaId);
}
DispatchCommandResult(new PluginResult(PluginResult.Status.OK));
}
@@ -182,9 +182,30 @@ namespace WP7CordovaClassLib.Cordova.Commands
}
});
}
- catch (Exception e)
+ catch (Exception)
{
- DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, e.Message));
+ DispatchCommandResult(new PluginResult(PluginResult.Status.JSON_EXCEPTION));
+ }
+ }
+
+ public void setVolume(string options) // id,volume
+ {
+ try
+ {
+ string[] optionsString = JSON.JsonHelper.Deserialize<string[]>(options);
+ string id = optionsString[0];
+ double volume = double.Parse(optionsString[1]);
+
+ if (Media.players.ContainsKey(id))
+ {
+ AudioPlayer player = Media.players[id];
+ player.setVolume(volume);
+ }
+ }
+ catch (Exception)
+ {
+ DispatchCommandResult(new PluginResult(PluginResult.Status.JSON_EXCEPTION, "Error parsing options into setVolume method"));
+ return;
}
}
@@ -197,7 +218,10 @@ namespace WP7CordovaClassLib.Cordova.Commands
try
{
- mediaOptions = JSON.JsonHelper.Deserialize<MediaOptions>(options);
+ string[] optionsString = JSON.JsonHelper.Deserialize<string[]>(options);
+ mediaOptions = new MediaOptions();
+ mediaOptions.Id = optionsString[0];
+ mediaOptions.Src = optionsString[1];
}
catch (Exception)
{
@@ -228,7 +252,12 @@ namespace WP7CordovaClassLib.Cordova.Commands
try
{
- mediaOptions = JSON.JsonHelper.Deserialize<MediaOptions>(options);
+ string[] optionsString = JSON.JsonHelper.Deserialize<string[]>(options);
+ mediaOptions = new MediaOptions();
+ mediaOptions.Id = optionsString[0];
+ mediaOptions.Src = optionsString[1];
+ mediaOptions.Milliseconds = int.Parse(optionsString[2]);
+
}
catch (Exception)
{
@@ -281,7 +310,10 @@ namespace WP7CordovaClassLib.Cordova.Commands
try
{
- mediaOptions = JSON.JsonHelper.Deserialize<MediaOptions>(options);
+ string[] optionsString = JSON.JsonHelper.Deserialize<string[]>(options);
+ mediaOptions = new MediaOptions();
+ mediaOptions.Id = optionsString[0];
+ mediaOptions.Milliseconds = int.Parse(optionsString[1]);
}
catch (Exception)
{
@@ -323,39 +355,40 @@ namespace WP7CordovaClassLib.Cordova.Commands
public void pausePlayingAudio(string options)
{
- MediaOptions mediaOptions;
-
try
{
- mediaOptions = JSON.JsonHelper.Deserialize<MediaOptions>(options);
- }
- catch (Exception)
- {
- DispatchCommandResult(new PluginResult(PluginResult.Status.JSON_EXCEPTION));
- return;
- }
+ string mediaId = JSON.JsonHelper.Deserialize<string[]>(options)[0];
- Deployment.Current.Dispatcher.BeginInvoke(() =>
- {
- try
+ Deployment.Current.Dispatcher.BeginInvoke(() =>
{
- if (Media.players.ContainsKey(mediaOptions.Id))
+ try
{
- AudioPlayer audio = Media.players[mediaOptions.Id];
- audio.pausePlaying();
+ if (Media.players.ContainsKey(mediaId))
+ {
+ AudioPlayer audio = Media.players[mediaId];
+ audio.pausePlaying();
+ }
+ else
+ {
+ Debug.WriteLine("ERROR: pausePlayingAudio could not find mediaPlayer for " + mediaId);
+ }
+
+ DispatchCommandResult(new PluginResult(PluginResult.Status.OK));
}
- else
+ catch (Exception e)
{
- Debug.WriteLine("ERROR: pausePlayingAudio could not find mediaPlayer for " + mediaOptions.Id);
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, e.Message));
}
+ });
+
+
+ }
+ catch (Exception)
+ {
+ DispatchCommandResult(new PluginResult(PluginResult.Status.JSON_EXCEPTION));
+ }
+
- DispatchCommandResult(new PluginResult(PluginResult.Status.OK));
- }
- catch (Exception e)
- {
- DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, e.Message));
- }
- });
}
@@ -366,30 +399,19 @@ namespace WP7CordovaClassLib.Cordova.Commands
{
try
{
- MediaOptions mediaOptions;
-
- try
- {
- mediaOptions = JSON.JsonHelper.Deserialize<MediaOptions>(options);
- }
- catch (Exception)
- {
- DispatchCommandResult(new PluginResult(PluginResult.Status.JSON_EXCEPTION));
- return;
- }
-
+ string mediaId = JSON.JsonHelper.Deserialize<string[]>(options)[0];
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
try
{
- if (Media.players.ContainsKey(mediaOptions.Id))
+ if (Media.players.ContainsKey(mediaId))
{
- AudioPlayer audio = Media.players[mediaOptions.Id];
+ AudioPlayer audio = Media.players[mediaId];
audio.stopPlaying();
}
else
{
- Debug.WriteLine("stopPlaying could not find mediaPlayer for " + mediaOptions.Id);
+ Debug.WriteLine("stopPlaying could not find mediaPlayer for " + mediaId);
}
DispatchCommandResult(new PluginResult(PluginResult.Status.OK));
@@ -399,12 +421,12 @@ namespace WP7CordovaClassLib.Cordova.Commands
DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, e.Message));
}
});
+
}
- catch (Exception e)
+ catch (Exception)
{
- DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, e.Message));
+ DispatchCommandResult(new PluginResult(PluginResult.Status.JSON_EXCEPTION));
}
-
}
/// <summary>
@@ -414,35 +436,31 @@ namespace WP7CordovaClassLib.Cordova.Commands
{
try
{
- MediaOptions mediaOptions;
-
- try
- {
- mediaOptions = JSON.JsonHelper.Deserialize<MediaOptions>(options);
- }
- catch (Exception)
- {
- DispatchCommandResult(new PluginResult(PluginResult.Status.JSON_EXCEPTION));
- return;
- }
-
- if (Media.players.ContainsKey(mediaOptions.Id))
+ string mediaId = JSON.JsonHelper.Deserialize<string[]>(options)[0];
+ Deployment.Current.Dispatcher.BeginInvoke(() =>
{
- AudioPlayer audio = Media.players[mediaOptions.Id];
- Deployment.Current.Dispatcher.BeginInvoke(() =>
+ try
{
- DispatchCommandResult(new PluginResult(PluginResult.Status.OK, audio.getCurrentPosition()));
- });
- return;
- }
- else
- {
- DispatchCommandResult(new PluginResult(PluginResult.Status.OK, -1));
- }
+ if (Media.players.ContainsKey(mediaId))
+ {
+ AudioPlayer audio = Media.players[mediaId];
+ DispatchCommandResult(new PluginResult(PluginResult.Status.OK, audio.getCurrentPosition()));
+ }
+ else
+ {
+ DispatchCommandResult(new PluginResult(PluginResult.Status.OK, -1));
+ }
+ }
+ catch (Exception e)
+ {
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, e.Message));
+ }
+ });
}
- catch (Exception e)
+ catch (Exception)
{
- DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, e.Message));
+ DispatchCommandResult(new PluginResult(PluginResult.Status.JSON_EXCEPTION));
+ return;
}
}
@@ -450,6 +468,8 @@ namespace WP7CordovaClassLib.Cordova.Commands
/// <summary>
/// Gets the duration of the audio file
/// </summary>
+
+ [Obsolete("This method will be removed shortly")]
public void getDurationAudio(string options)
{
try
@@ -488,6 +508,5 @@ namespace WP7CordovaClassLib.Cordova.Commands
DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, e.Message));
}
}
-
}
}