> Hi,
> I'm interested in testing the useability of Linux on this ipaq 6315.
> Couple questions. Is it useable at this point? To me that means do the
> following features work:
>
> 1. Basic Call functions
> a. Adv Call functions - Call waiting, Caller Id, Hold, Conference,
> Swap
Basic stuff like calling, answering, sending and receiving sms messages
works. MMC messages etc, are not working or Hold & conference calls.
Gomunicator is currently the only phone app publicly available and needs
a lot of cleaning. I expect that to change once we get more phone linux
devices running :-)
But we have one big problem that prevents the daily usage of h6300 series
as a phone. The power management is not yet working, so you can not turn
the device to low power state when you are not using it. We are working
with it but it is big job.
> 2. Is GPE (PIM and other) programs installable/useable
> a. Is there a PIM
> b. Is there a call manager, call history, address book
Yes, there is somekind of. I have not yet played much with those or
syncing features. Done mostly the kernel coding.
> 3. How much space is taken up on the SD Card?
Hmm, I think my image available for download takes about 150 mb. It has
lot of stuff, and some of them could probably be removed...
> 4. Does the Data feature work?
> a. ie, can I surf the web over Gsm/Gprs
I have heard that gprs would work it you use ppp but I have not tested it
myself.
>
> 5. Does the Wifi feature work?
> a. Is there more support than in the windows version (ie, 128 bit
> keys, etc)
No wifi does not work for us yet. We have acx100 chipset and Linux has a
driver for it, but it has not yet made to work with our device.
(Part of the problem is that we are not using PCI as a bus for transfering
data :-)
> I am willing to contribute my device for testing, etc. I'm an experienced
> c/c++, java, linux programmer so I should be able to get up to speed
> quickly. My main concern is that this is my only phone and I have to be
> able to use it as a telephone at the very least.
I would be appreciate if somebody could work for improving the
gomunicator, I have only made the basic
fixes for it to enable the phone calls and sms messages with h6300. Good
start would be to implement the
ringing tone support that uses ALSA sound API.
To get that done, one would need to take gomunicator sources from CVS by
following info in
http://www.handhelds.org/moin/moin.cgi/Gomunicator and then change to
sound.c to use ALSA instead of OSS sound interface.
Here is the current version of that.
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <gtk/gtk.h>
#include <sys/soundcard.h>
#include <stdio.h>
#include <unistd.h>
//#include <string.h>
//#include <time.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <poll.h>
#include "sound.h"
static unsigned char buffers[2][BUF_SIZE];
static FILE *sampleFile = NULL;
static int soundFile = 0, playingBuffer = -1;
static GIOChannel *iochan;
gboolean openSound(void)
{
int speed = 16000, channels = 2, format = AFMT_S16_LE;
if ((soundFile = open("/dev/dsp", O_WRONLY)) <= 0)
return FALSE;
if (ioctl(soundFile, SNDCTL_DSP_SPEED, &speed) < 0) {
close(soundFile);
return FALSE;
}
if (ioctl(soundFile, SNDCTL_DSP_CHANNELS, &channels) < 0) {
close(soundFile);
return FALSE;
}
if (ioctl(soundFile, SNDCTL_DSP_SETFMT, &format) < 0) {
close(soundFile);
return FALSE;
}
return TRUE;
} //openSound
static void sound_read_block(int block)
{
size_t bufIndex = 0;
do {
bufIndex += fread(buffers[block] + bufIndex, 1, BUF_SIZE -
bufIndex, sampleFile);
if (bufIndex < BUF_SIZE)
rewind(sampleFile);
} while (bufIndex < BUF_SIZE);
}
static void sound_play_block(int block)
{
write(soundFile, buffers[block], BUF_SIZE);
}
static gboolean updateSound(GIOChannel *source, GIOCondition condition,
gpointer data)
{
if (soundFile == 0 || sampleFile == NULL || playingBuffer == -1)
return FALSE;
sound_play_block(playingBuffer ^= 1);
sound_read_block(playingBuffer ^ 1);
return TRUE;
}
void startSound(const char *filename)
{
printf("startSound(%s)\n", filename);
if (playingBuffer >= 0)
stopSound();
if (soundFile <= 0 && !openSound())
return;
if ((sampleFile = fopen(filename, "rb")) == NULL)
return;
sound_read_block(0);
sound_read_block(1);
playingBuffer = 0;
sound_play_block(playingBuffer);
iochan=g_io_channel_unix_new(soundFile);
g_io_add_watch(iochan, G_IO_OUT|G_IO_ERR|G_IO_HUP, updateSound,
NULL);
}
void stopSound(void)
{
printf("stopSound\n");
if (soundFile == 0 || sampleFile == NULL)
playingBuffer = -1;
if (sampleFile != NULL) {
fclose(sampleFile);
sampleFile = NULL;
}
closeSound();
}
void closeSound(void)
{
if (playingBuffer >= 0)
stopSound();
if (soundFile > 0) {
close(soundFile);
soundFile = 0;
if (iochan)
g_io_channel_shutdown(iochan, FALSE, NULL);
}
}
Mika
Received on Thu Jul 20 2006 - 14:37:08 EDT
This archive was generated by hypermail 2.2.0 : Thu Jul 20 2006 - 16:45:53 EDT