1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
|
#include "stdafx.h"
#include "MFCDEVICE.h"
#include "MFCDEVICEDlg.h"
#include "afxwin.h"
#include "device.h" //dois je retirer car dans device_wrappeur.h j'ai aussi ?
#ifndef DEVICE_WRAPPEUR_INCL
#include "device_wrappeur.h" // classe dérivée de device
#endif
..
//GLOBALES
device_wrappeur cp; //instance en globale
device_wrappeur::DEVICE_WRAPPEUR_SETTINGS settings; //prototype que je mets sinon: "error C2065: 'settings' : undeclared identifier" plus bas
enum device_wrappeur::DEVICE_WRAPPEUR_FLAGS DEVICE_WRAPPEUR_FLAG_FILTER; //je mets sinon erreur: "error C2065: 'DEVICE_WRAPPEUR_FLAG_FILTER' : undeclared identifier" plus bas
...
//FONCTIONS
void MFCDEVICEDlg::OnCheck1()
{
// TODO: Add your control notification handler code here
//FONCTION AGIT CORRECTEMENT, C'EST UNE METHODE DE DEVICE
// DONC DE LA CLASSE MERE
if(!cp.IsValid()) {
device_geterror(&ecode, ebuf, sizeof(ebuf));
fprintf(stderr, "Open module failed: %i %s\n", ecode, ebuf);
//return 1;
}
...
}
void MFCDEVICEDlg::OnSelchangeCombo2()
{
...
//FONCTION QUI N'A PAS D'EFFET PQ?
bool need_reconnect = !cp.SetupCapture(DEVICE_CAPTURE_PROPERTY_DGAIN, cp.settings.dgain);
//settings etant une struct defini dans device_wrappeur.h
//DEVICE_CAPTURE_PROPERTY_DGAIN etant un enum de device definit dans device.h
}
...
bool MFCDEVICEDlg::GetCapture() //les appels dans cette fonction marche bien
// car on appelle directement les methodes
// de device
{
// Query information
gxu16 came;
if(!cp.GetInfo(NULL, NULL, NULL, &cam)) { // fonctionne bien GetInfo est une methode de device
gx_geterror(&ecode, ebuf, sizeof(ebuf));
MessageBox("GetInfo() failed..","Capture message");
return 1;
}
// Setup capture properties
gxu16 properties[] = { //ICI: PARAMETRES EN CAUSE !!!!!
DEVICE_CAPTURE_PROPERTY_WIN_X1, 0,
DEVICE_CAPTURE_PROPERTY_WIN_Y1, 0,
DEVICE_CAPTURE_PROPERTY_WIN_XS, img_width,
DEVICE_CAPTURE_PROPERTY_WIN_YS, img_height,
DEVICE_CAPTURE_PROPERTY_AGAIN, 100,
DEVICE_CAPTURE_PROPERTY_DGAIN, 100,
DEVICE_CAPTURE_PROPERTY_SHUTTER_HI, 0,
DEVICE_CAPTURE_PROPERTY_SHUTTER_LO, 10000,
DEVICE_CAPTURE_PROPERTY_TIMEDIFFBF_HI, device_fps_to_timediffbf(60) >> 16,
DEVICE_CAPTURE_PROPERTY_TIMEDIFFBF_LO, device_fps_to_timediffbf(60) & 0xFFFF,
DEVICE_CAPTURE_PROPERTY_ADC_MODE, 0,
DEVICE_CAPTURE_PROPERTY_COLOR, 0,
DEVICE_CAPTURE_PROPERTY_SCALE_X, 1,
DEVICE_CAPTURE_PROPERTY_SCALE_Y, 1,
DEVICE_CAPTURE_PROPERTY_END
};
if(!cp.SetCaptureProperties(properties)) { //fonctionne pas si j'enleve la definition
//gxu16 properties[] juste avant
gx_geterror(&ecode, ebuf, sizeof(ebuf));
MessageBox("SetCaptureProperties() failed.","Capture message");
return 1;
}
...
} |
Partager