pwc
[Top] [All Lists]

[pwc] VIDIOCPWCRUSER: Bad file descriptor

To:
Subject: [pwc] VIDIOCPWCRUSER: Bad file descriptor
From: Roman Haefeli <>
Date: Thu, 20 Sep 2007 01:29:14 +0200
hi 

i am still trying to find a way to overcome the
'agc-setting-is-reset-each-time-cam-is-accessed' problem. a friend of
mine tried to help by writing a pd-object, that does send the 'restore'
command to the driver, so that i can at least set the gain manually,
when working with pd, just by restoring the nvram of the cam. 

however, it doesn't work yet. i am not a c coder myself and thus have no
idea to fix it.

i get the error:

IDIOCPWCRUSER: Bad file descriptor

this is the code of pd-object:

########################################################################
#include <errno.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#define _LINUX_TIME_H 1 /* to get things compile on kernel 2.6.x */
#include <linux/videodev.h>


#include "m_pd.h"
#include "pwc-ioctl.h"

char *device = "/dev/video1";

static t_class *setpwc_class;

typedef struct _setpwc {
  t_object  x_obj;
} t_setpwc;

void check_device(int *fd)
{
        if (*fd == -1)
        {
                /* open device */
                *fd = open(device, O_RDWR);
                if (*fd == -1)
                {
                        post("Error while accessing device");
//                      exit(1);
                }
        }
}

void restore_settings(int fd)
{
        if (ioctl(fd, VIDIOCPWCRUSER) == -1)
                perror("VIDIOCPWCRUSER");
}

void setpwc_bang(t_setpwc *x)
{
        int fd = -1;
        check_device(&fd);
        restore_settings(fd);
}

void *setpwc_new(void)
{
  t_setpwc *x = (t_setpwc *)pd_new(setpwc_class);

  return (void *)x;
}

void setpwc_setup(void) {
  setpwc_class = class_new(gensym("setpwc"),
        (t_newmethod)setpwc_new,
        0, sizeof(t_setpwc),
        CLASS_DEFAULT, 0);
  class_addbang(setpwc_class, setpwc_bang);






                
___________________________________________________________ 
Telefonate ohne weitere Kosten vom PC zum PC: http://messenger.yahoo.de
_______________________________________________
pwc mailing list

http://lists.saillard.org/mailman/listinfo/pwc

<Prev in Thread] Current Thread [Next in Thread>
Admin

Disclaimer: Neither Andrew Taylor nor the University of NSW School of Computer and Engineering take any responsibility for the contents of this archive. It is purely a compilation of material sent by many people to the birding-aus mailing list. It has not been checked for accuracy nor its content verified in any way. If you wish to get material removed from the archive or have other queries about the archive e-mail Andrew Taylor at this address: andrewt@cse.unsw.EDU.AU