[svn] / trunk / vfw / src / driverproc.c Repository:
ViewVC logotype

Diff of /trunk/vfw/src/driverproc.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3, Fri Mar 8 02:46:11 2002 UTC revision 61, Sat Mar 23 06:58:56 2002 UTC
# Line 23  Line 23 
23   *   *
24   *      History:   *      History:
25   *   *
  *      ... ???  
26   *      01.12.2001      inital version; (c)2001 peter ross <suxen_drol@hotmail.com>   *      01.12.2001      inital version; (c)2001 peter ross <suxen_drol@hotmail.com>
27   *   *
28   *************************************************************************/   *************************************************************************/
# Line 55  Line 54 
54          LPARAM lParam2)          LPARAM lParam2)
55  {  {
56          CODEC * codec = (CODEC *)dwDriverId;          CODEC * codec = (CODEC *)dwDriverId;
         CONFIG temp;  
57    
58          switch(uMsg)          switch(uMsg)
59          {          {
# Line 71  Line 69 
69                  {                  {
70                          ICOPEN * icopen = (ICOPEN *)lParam2;                          ICOPEN * icopen = (ICOPEN *)lParam2;
71    
72                          if (icopen != NULL && icopen->fccType != ICTYPE_VIDEO) {                          if (icopen != NULL && icopen->fccType != ICTYPE_VIDEO)
73                            {
74                                  return DRV_CANCEL;                                  return DRV_CANCEL;
75                          }                          }
76    
77                          codec = malloc(sizeof(CODEC));                          codec = malloc(sizeof(CODEC));
78    
79                          if (codec == NULL)                          if (codec == NULL)
80                          {                          {
81                                  if (icopen != NULL) {                                  if (icopen != NULL)
82                                    {
83                                          icopen->dwError = ICERR_MEMORY;                                          icopen->dwError = ICERR_MEMORY;
84                                  }                                  }
85                                  return 0;                                  return 0;
86                          }                          }
87    
88                          codec->ehandle = codec->dhandle = NULL;                          codec->ehandle = codec->dhandle = NULL;
89                          config_reg_get(&codec->config);                          config_reg_get(&codec->config);
90    
91                          if (icopen != NULL) {                          /* bad things happen if this is uncommented
92                            if (lstrcmp(XVID_BUILD, codec->config.build))
93                            {
94                                    config_reg_default(&codec->config);
95                            }
96                            */
97    
98                            if (icopen != NULL)
99                            {
100                                  icopen->dwError = ICERR_OK;                                  icopen->dwError = ICERR_OK;
101                          }                          }
102                          return (LRESULT)codec;                          return (LRESULT)codec;
# Line 134  Line 145 
145    
146                          return lParam2; /* size of struct */                          return lParam2; /* size of struct */
147                  }                  }
148                    DEBUG("ICM_GETINFO end");
149    
150    
151                  /* state control */                  /* state control */
152    
153          case ICM_ABOUT :          case ICM_ABOUT :
154          case ICM_CONFIGURE :                  DEBUG("ICM_ABOUT");
155                    DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_ABOUT), (HWND)lParam1, about_proc, 0);
156                    return ICERR_OK;
157    
158            case ICM_CONFIGURE :
159                  DEBUG("ICM_CONFIGURE");                  DEBUG("ICM_CONFIGURE");
160                    if (lParam1 != -1)
161                    {
162                            CONFIG temp;
163    
164                  codec->config.save = FALSE;                  codec->config.save = FALSE;
165                  memcpy(&temp, &codec->config, sizeof(CONFIG));                  memcpy(&temp, &codec->config, sizeof(CONFIG));
166    
167                  if (lParam1 != -1) {                          DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_MAIN), (HWND)lParam1, main_proc, (LPARAM)&temp);
                         PROPSHEETINFO psi[DLG_COUNT];  
                         PROPSHEETPAGE psp[DLG_COUNT];  
                         PROPSHEETHEADER psh;  
   
                         psp[DLG_MAIN].dwSize = sizeof(PROPSHEETPAGE);  
                         psp[DLG_MAIN].dwFlags = 0;  
                         psp[DLG_MAIN].hInstance = hInst;  
                         psp[DLG_MAIN].pszTemplate = MAKEINTRESOURCE(IDD_MAIN);  
                         psp[DLG_MAIN].pfnDlgProc = config_proc;  
                                 psi[DLG_MAIN].page = DLG_MAIN;  
                                 psi[DLG_MAIN].config = &temp;  
                         psp[DLG_MAIN].lParam = (LPARAM)&psi[DLG_MAIN];  
                         psp[DLG_MAIN].pfnCallback = NULL;  
   
                         psp[DLG_ADV].dwSize = sizeof(PROPSHEETPAGE);  
                         psp[DLG_ADV].dwFlags = 0;  
                         psp[DLG_ADV].hInstance = hInst;  
                         psp[DLG_ADV].pszTemplate = MAKEINTRESOURCE(IDD_ADV);  
                         psp[DLG_ADV].pfnDlgProc = config_proc;  
                                 psi[DLG_ADV].page = DLG_ADV;  
                                 psi[DLG_ADV].config = &temp;  
                         psp[DLG_ADV].lParam = (LPARAM)&psi[DLG_ADV];  
                         psp[DLG_ADV].pfnCallback = NULL;  
   
                         psp[DLG_DEBUG].dwSize = sizeof(PROPSHEETPAGE);  
                         psp[DLG_DEBUG].dwFlags = 0;  
                         psp[DLG_DEBUG].hInstance = hInst;  
                         psp[DLG_DEBUG].pszTemplate = MAKEINTRESOURCE(IDD_DEBUG);  
                         psp[DLG_DEBUG].pfnDlgProc = config_proc;  
                                 psi[DLG_DEBUG].page = DLG_DEBUG;  
                                 psi[DLG_DEBUG].config = &temp;  
                         psp[DLG_DEBUG].lParam = (LPARAM)&psi[DLG_DEBUG];  
                         psp[DLG_DEBUG].pfnCallback = NULL;  
   
                         psp[DLG_CPU].dwSize = sizeof(PROPSHEETPAGE);  
                         psp[DLG_CPU].dwFlags = 0;  
                         psp[DLG_CPU].hInstance = hInst;  
                         psp[DLG_CPU].pszTemplate = MAKEINTRESOURCE(IDD_CPU);  
                         psp[DLG_CPU].pfnDlgProc = config_proc;  
                                 psi[DLG_CPU].page = DLG_CPU;  
                                 psi[DLG_CPU].config = &temp;  
                         psp[DLG_CPU].lParam = (LPARAM)&psi[DLG_CPU];  
                         psp[DLG_CPU].pfnCallback = NULL;  
   
                         psp[DLG_ABOUT].dwSize = sizeof(PROPSHEETPAGE);  
                         psp[DLG_ABOUT].dwFlags = 0;  
                         psp[DLG_ABOUT].hInstance = hInst;  
                         psp[DLG_ABOUT].pszTemplate = MAKEINTRESOURCE(IDD_ABOUT);  
                         psp[DLG_ABOUT].pfnDlgProc = config_proc;  
                                 psi[DLG_ABOUT].page = DLG_ABOUT;  
                                 psi[DLG_ABOUT].config = &temp;  
                         psp[DLG_ABOUT].lParam = (LPARAM)&psi[DLG_ABOUT];  
                         psp[DLG_ABOUT].pfnCallback = NULL;  
   
                         psh.dwSize = sizeof(PROPSHEETHEADER);  
                         psh.dwFlags = PSH_PROPSHEETPAGE | PSH_NOAPPLYNOW;  
                         psh.hwndParent = (HWND)lParam1;  
                         psh.hInstance = hInst;  
                         psh.pszCaption = (LPSTR) "XviD Configuration";  
                         psh.nPages = sizeof(psp) / sizeof(PROPSHEETPAGE);  
                         psh.nStartPage = (uMsg == ICM_CONFIGURE ? DLG_MAIN : DLG_ABOUT);  
                         psh.ppsp = (LPCPROPSHEETPAGE)&psp;  
                         psh.pfnCallback = NULL;  
168    
169                          PropertySheet(&psh);                          if (temp.save)
170                            {
                         if(temp.save) {  
171                                  memcpy(&codec->config, &temp, sizeof(CONFIG));                                  memcpy(&codec->config, &temp, sizeof(CONFIG));
172                                    config_reg_set(&codec->config);
173                          }                          }
174                  }                  }
175                  return ICERR_OK;                  return ICERR_OK;
176    
177          case ICM_GETSTATE :          case ICM_GETSTATE :
178                  DEBUG("ICM_GETSTATE");                  DEBUG("ICM_GETSTATE");
179                  if ((void*)lParam1 == NULL) {                  if ((void*)lParam1 == NULL)
180                    {
181                          return sizeof(CONFIG);                          return sizeof(CONFIG);
182                  }                  }
183                  memcpy((void*)lParam1, &codec->config, sizeof(CONFIG));                  memcpy((void*)lParam1, &codec->config, sizeof(CONFIG));
# Line 229  Line 185 
185    
186          case ICM_SETSTATE :          case ICM_SETSTATE :
187                  DEBUG("ICM_SETSTATE");                  DEBUG("ICM_SETSTATE");
188                  if ((void*)lParam1 == NULL) {                  if ((void*)lParam1 == NULL)
189                    {
190                          DEBUG("ICM_SETSTATE : DEFAULT");                          DEBUG("ICM_SETSTATE : DEFAULT");
191                          config_reg_get(&codec->config);                          config_reg_get(&codec->config);
192                          return 0;                          return 0;

Legend:
Removed from v.3  
changed lines
  Added in v.61

No admin address has been configured
ViewVC Help
Powered by ViewVC 1.0.4