473,508 Members | 2,226 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

a voice recorder for Pocket PC (need help debugging)

I'm trying to record a voice memo on a Pocket PC (2000) from VB.NET
(smart device application from vs.net 2003).

Tom Shelton did an initial conversion to VB.NET which I am trying to
run, but am getting errors I don't quite understand (I've never done
anything like this before)...

Any help would be appreciated in getting this to work...

'-----------------------------------------------------------------------------
'ported to vb.net by
'Tom Shelton (to*@YOUKNOWTHEDRILLmtogden.com)
'Off the top of my head... I'm not sure why the original code is
using
'unsafe code. There doesn't seem to be anything used that would
require that
'- but, I don't know much about the Pocket PC environment. If the
unsafe is
'required for some reason on PPC, then you have to use C#.
'-----------------------------------------------------------------------------

Imports System
Imports System.Data
Imports System.Runtime.InteropServices

Public Class VoiceRecorder
<StructLayout(LayoutKind.Sequential)> _
Protected Structure CM_VOICE_RECORDER
Public cb As Integer
Public dwStyle As Integer
Public xPos As Integer
Public yPos As Integer
Public hwndParent As IntPtr
Public id As Integer
Public lpszRecordFileName As String
End Structure

'errors on next line:
'CallingConvention is a type and cannot be used as an expression
'Cdecl is not a member of
'System.Runtime.InteropServices.CallingConvention'
<DllImport("voicectl.dll", CallingConvention =
CallingConvention.Cdecl)> _
Private Shared Function VoiceRecorder_Create _
(ByRef CM_VOICE_RECORDER As VoiceRecorder) As IntPtr
End Function

Private voicerec As CM_VOICE_RECORDER
Private handle As IntPtr

Public Sub New()
With voicerec
.cb = Marshal.SizeOf(voicerec);
.lpszRecordFileName = "\My Documents\VoiceControl.wav"
.xPos = -1
.yPos = -1
End With
End Sub

Public Sub Show()
'error on next line:
'VoiceRecorder is a type and cannot be used as an expression.
handle = VoiceRecorder_Create(VoiceRecorder)
End Sub

End Class
'-----------------------------------------------------------------------------
original c# code:
source: wapboy
http://www.opennetcf.org/forums/topic.asp?TOPIC_ID=62
'-----------------------------------------------------------------------------

//Q: Once we have a voice recorder object, how do you then pass
messages to it??

//A: Im working on that... Essentially the sendmessage api function
will need to
//be p/invoked. The voicerecordercreate function has returned the
hwnd so
//messages can be sent to this. The voice recorder messages are
documented in
//the sdk
//I haven't had much luck with the sendmessage function - everytime I
try to
//send a message to the voicerecorder, it just closes the
voicerecorder.....
//
//I got this code to run. This code seems to record to files in \\My
//Documents\~VRec_* where * is a number.
//Alan, did you install the Speech.NET or Speech API?
//
//The files ~VRec_* are temporary files that the voice recorder uses
to store
//the data while it is recording. Sometimes, depending on how the
recorder is
//terminated, they get converted to recording*.wav
//
//Take a look here:
//http://www.innovativedss.com/forums/topic.asp?TOPIC_ID=80
//for an example of playing .WAV sounds.
//
using System;
using System.Data;
using System.Runtime.InteropServices;

/// <summary>
/// Creates an instance of the shell voice recorder
/// </summary>
public class VoiceRecorder
{
//API Declares

[StructLayout(LayoutKind.Sequential)]
protected unsafe struct CM_VOICE_RECORDER
{
public int cb;
public uint dwStyle;
public int xPos, yPos;
public IntPtr hwndParent;
public int id;
public String lpszRecordFileName;
};

[DllImport("voicectl.dll", CallingConvention=CallingConvention.Cdecl)]
private static extern IntPtr VoiceRecorder_Create(ref
CM_VOICE_RECORDER
voicerec);

//end api delcare

private CM_VOICE_RECORDER voicerec;
private IntPtr handle;

public unsafe VoiceRecorder()
{
voicerec = new CM_VOICE_RECORDER();
handle = new IntPtr();
voicerec.cb = (int)Marshal.SizeOf(voicerec);
voicerec.lpszRecordFileName = "\\My Documents\\VoiceControl.wav";

voicerec.xPos = -1;
voicerec.yPos = -1;
}
//show the voice recorder
public void Show()
{
handle = VoiceRecorder_Create(ref voicerec);
}
}
Nov 20 '05 #1
5 4664
Hi,

I think he switched the type and variable name in the dll import.

<DllImport("voicectl.dll", CallingConvention =
CallingConvention.Cdecl)> _
Private Shared Function VoiceRecorder_Create _
(ByRef VoiceRecorder as CM_VOICE_RECORDER) As IntPtr
End Function

Ken
-----------------------

"Mad Scientist Jr" <us*************@yahoo.com> wrote in message
news:7a**************************@posting.google.c om:
I'm trying to record a voice memo on a Pocket PC (2000) from VB.NET
(smart device application from vs.net 2003).

Tom Shelton did an initial conversion to VB.NET which I am trying to
run, but am getting errors I don't quite understand (I've never done
anything like this before)...

Any help would be appreciated in getting this to work...
'---------------------------------------------------------------------------
--
'ported to vb.net by
'Tom Shelton (to*@YOUKNOWTHEDRILLmtogden.com)
'Off the top of my head... I'm not sure why the original code is
using
'unsafe code. There doesn't seem to be anything used that would
require that
'- but, I don't know much about the Pocket PC environment. If the
unsafe is
'required for some reason on PPC, then you have to use C#.

'---------------------------------------------------------------------------
--

Imports System
Imports System.Data
Imports System.Runtime.InteropServices

Public Class VoiceRecorder
<StructLayout(LayoutKind.Sequential)> _
Protected Structure CM_VOICE_RECORDER
Public cb As Integer
Public dwStyle As Integer
Public xPos As Integer
Public yPos As Integer
Public hwndParent As IntPtr
Public id As Integer
Public lpszRecordFileName As String
End Structure

'errors on next line:
'CallingConvention is a type and cannot be used as an expression
'Cdecl is not a member of
'System.Runtime.InteropServices.CallingConvention'
<DllImport("voicectl.dll", CallingConvention =
CallingConvention.Cdecl)> _
Private Shared Function VoiceRecorder_Create _
(ByRef CM_VOICE_RECORDER As VoiceRecorder) As IntPtr
End Function

Private voicerec As CM_VOICE_RECORDER
Private handle As IntPtr

Public Sub New()
With voicerec
.cb = Marshal.SizeOf(voicerec);
.lpszRecordFileName = "\My Documents\VoiceControl.wav"
.xPos = -1
.yPos = -1
End With
End Sub

Public Sub Show()
'error on next line:
'VoiceRecorder is a type and cannot be used as an expression.
handle = VoiceRecorder_Create(VoiceRecorder)
End Sub

End Class

'---------------------------------------------------------------------------
--
original c# code:
source: wapboy
HYPERLINK
"http://www.opennetcf.org/forums/topic.asp?TOPIC_ID=62"http://www.opennetcf.
org/forums/topic.asp?TOPIC_ID=62

'---------------------------------------------------------------------------
--

//Q: Once we have a voice recorder object, how do you then pass
messages to it??

//A: Im working on that... Essentially the sendmessage api function
will need to
//be p/invoked. The voicerecordercreate function has returned the
hwnd so
//messages can be sent to this. The voice recorder messages are
documented in
//the sdk
//I haven't had much luck with the sendmessage function - everytime I
try to
//send a message to the voicerecorder, it just closes the
voicerecorder.....
//
//I got this code to run. This code seems to record to files in \\My
//Documents\~VRec_* where * is a number.
//Alan, did you install the Speech.NET or Speech API?
//
//The files ~VRec_* are temporary files that the voice recorder uses
to store
//the data while it is recording. Sometimes, depending on how the
recorder is
//terminated, they get converted to recording*.wav
//
//Take a look here:
//http://www.innovativedss.com/forums/topic.asp?TOPIC_ID=80
//for an example of playing .WAV sounds.
//
using System;
using System.Data;
using System.Runtime.InteropServices;

/// <summary>
/// Creates an instance of the shell voice recorder
/// </summary>
public class VoiceRecorder
{
//API Declares

[StructLayout(LayoutKind.Sequential)]
protected unsafe struct CM_VOICE_RECORDER
{
public int cb;
public uint dwStyle;
public int xPos, yPos;
public IntPtr hwndParent;
public int id;
public String lpszRecordFileName;
};

[DllImport("voicectl.dll", CallingConvention=CallingConvention.Cdecl)]
private static extern IntPtr VoiceRecorder_Create(ref
CM_VOICE_RECORDER
voicerec);

//end api delcare

private CM_VOICE_RECORDER voicerec;
private IntPtr handle;

public unsafe VoiceRecorder()
{
voicerec = new CM_VOICE_RECORDER();
handle = new IntPtr();
voicerec.cb = (int)Marshal.SizeOf(voicerec);
voicerec.lpszRecordFileName = "\\My Documents\\VoiceControl.wav";

voicerec.xPos = -1;
voicerec.yPos = -1;
}
//show the voice recorder
public void Show()
{
handle = VoiceRecorder_Create(ref voicerec);
}
}


--
Outgoing mail is certified Virus Free.
Checked by AVG Anti-Virus (http://www.grisoft.com).
Version: 7.0.230 / Virus Database: 263.3.6 - Release Date: 6/25/2004
Nov 20 '05 #2
On Mon, 28 Jun 2004 20:28:28 -0700, Ken Tucker [MVP] wrote:
Hi,

I think he switched the type and variable name in the dll import.

<DllImport("voicectl.dll", CallingConvention =
CallingConvention.Cdecl)> _
Private Shared Function VoiceRecorder_Create _
(ByRef VoiceRecorder as CM_VOICE_RECORDER) As IntPtr
End Function

Ken

-----------------------

Yep. That's what I did... That kind of stuff happens when you write code
off the cuff :)
--
Tom Shelton [MVP]
Nov 20 '05 #3
i made the changes, and am still having trouble getting this part to work,
i am getting an error

'Cdecl' is not a member of 'System.Runtime.InteropServices.CallingConvention' .

any help appreciated
Nov 20 '05 #4
Check out the Multimedia library aat www.opennetcf.org

--
W.G. Ryan MVP Windows - Embedded

Have an opinion on the effectiveness of Microsoft Embedded newsgroups?
Let Microsoft know!
https://www.windowsembeddedeval.com/...ity/newsgroups
"Mad Scientist Jr" <us*************@yahoo.com> wrote in message
news:7a**************************@posting.google.c om...
i made the changes, and am still having trouble getting this part to work,
i am getting an error

'Cdecl' is not a member of 'System.Runtime.InteropServices.CallingConvention' .
any help appreciated

Nov 20 '05 #5
Thanks...I checked out the OpenNETCF.Multimedia.Audio Namespace - it
looks like it supports what I am trying to do, although I don't see
where you specify a file name to save the voice memo to, and it is not
straightforward how to specify the bit rate, # of channels, frequency
etc.

Can someone post a sample of how to record a voice memo (say 8 KHz,
mono, 8000 Khz), save it to a WAV file, and play back the WAV file, from
VB.NET?

*** Sent via Devdex http://www.devdex.com ***
Don't just participate in USENET...get rewarded for it!
Nov 20 '05 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
3110
by: Dfenestr8 | last post by:
Hi. I'm no coder. I'm just a working guy who likes to tinker with computers in my spare time. That's my hobby. My passion is: playing instruments. Combining the two, I've made a couple of...
14
3135
by: Matt | last post by:
Any progammers looking for a killer app to develop? How about a voice enabled forum? One of the most powerful, exciting, and engrossing experiences on the Internet is the Forum. The first great...
1
1584
by: juan5 | last post by:
Hi I purchased an h5500 series HP pocket pc. Using VS.NET 2003 I am able to build and deploy to the Pocket PC 2002 Emulator but not to debug the app The app is "installed" in the emulator just...
2
1864
by: Mad Scientist Jr | last post by:
Can someone convert this code to vb.net? it is a voice recorder for pocket pc. many thanks ! source: http://www.opennetcf.org/forums/topic.asp?TOPIC_ID=62 the code: using System;
5
9202
by: Oliver Huppert | last post by:
Hi all, can someone tell me what I need to develop applications for PPC2003 with C#? I have read several meanings about this topic. Do I need Visual Studio .NET or is Visual C# .NET Standard...
1
3858
by: Mad Scientist Jr | last post by:
hi can someone possibly convert this to vb.net ? it is c# code that lets the pocket pc access the voice recorder... many thanks... source: wapboy...
0
1922
by: Emma Gumbdough | last post by:
Okay we have here a VB.NET version of the .net compact framework voice recorder sample that uses open net CF c# version at: http://www.opennetcf.org/forums/topic.asp?TOPIC_ID=79 THIS CODE...
10
1987
by: Neil Wallace | last post by:
Guys, I am hopping mad. I am just a hobby programmer making little .net applications for pretty much no-one else but me to use. One application I have written would, to my mind, work best on...
1
575
by: Fab | last post by:
Hi, What is the best (or simple!) way to make some voice recording in C# ? Thanks.
0
7225
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
7123
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
7326
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
7383
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
1
7046
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
7498
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
1
5053
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...
0
1557
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated ...
0
418
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.