summaryrefslogtreecommitdiff
authormickeyl <mickeyl>2003-04-01 22:18:03 (UTC)
committer mickeyl <mickeyl>2003-04-01 22:18:03 (UTC)
commita46668f70b74f27689afb956ff085d42c0775328 (patch) (unidiff)
tree24e1477b919aa4453d8724512ed7dd9659d040dc
parent76b83c2b77e626fadf1d1bbbfd19a9a8a795334b (diff)
downloadopie-a46668f70b74f27689afb956ff085d42c0775328.zip
opie-a46668f70b74f27689afb956ff085d42c0775328.tar.gz
opie-a46668f70b74f27689afb956ff085d42c0775328.tar.bz2
- backgammon: g++3 fix
- add skeleton for opie-camera application
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--apps/Applications/camera.desktop10
-rw-r--r--noncore/games/backgammon/moveengine.cpp2
-rw-r--r--noncore/multimedia/camera/.cvsignore1
-rw-r--r--noncore/multimedia/camera/camera.pro21
-rw-r--r--noncore/multimedia/camera/config.in7
-rw-r--r--noncore/multimedia/camera/main.cpp28
-rw-r--r--noncore/multimedia/camera/mainwindow.cpp50
-rw-r--r--noncore/multimedia/camera/mainwindow.h40
-rw-r--r--noncore/multimedia/camera/zcameraio.cpp56
-rw-r--r--noncore/multimedia/camera/zcameraio.h35
-rw-r--r--packages1
-rwxr-xr-xpics/camera/cam.pngbin0 -> 2567 bytes
12 files changed, 251 insertions, 0 deletions
diff --git a/apps/Applications/camera.desktop b/apps/Applications/camera.desktop
new file mode 100644
index 0000000..26cc119
--- a/dev/null
+++ b/apps/Applications/camera.desktop
@@ -0,0 +1,10 @@
1[Desktop Entry]
2Comment = A Camera Program
3Comment[de] = Ein Kamera-Programm
4Exec = opiecam
5File = opiecam
6Icon = camera/cam
7Name = OpieCam
8Type = Application
9Name[de]= Kamera
10
diff --git a/noncore/games/backgammon/moveengine.cpp b/noncore/games/backgammon/moveengine.cpp
index 009c449..8106b3f 100644
--- a/noncore/games/backgammon/moveengine.cpp
+++ b/noncore/games/backgammon/moveengine.cpp
@@ -1,558 +1,560 @@
1#include "moveengine.h" 1#include "moveengine.h"
2 2
3#include <qmessagebox.h> 3#include <qmessagebox.h>
4 4
5#include <qtimer.h> 5#include <qtimer.h>
6 6
7#include <stdlib.h>
8
7MoveEngine::MoveEngine() 9MoveEngine::MoveEngine()
8 : QObject() 10 : QObject()
9{ 11{
10 int offset=7; 12 int offset=7;
11 int a=0; //counter variable 13 int a=0; //counter variable
12 int xfill[]={210,185,170,155,140,125,110,85,70,55,40,25,10,10,25,40,55,70,85,110,125,140,155,170,185,210}; 14 int xfill[]={210,185,170,155,140,125,110,85,70,55,40,25,10,10,25,40,55,70,85,110,125,140,155,170,185,210};
13 for(a=0;a<26;a++) 15 for(a=0;a<26;a++)
14 { 16 {
15 x_coord[a]=xfill[a]; 17 x_coord[a]=xfill[a];
16 } 18 }
17 19
18 int yfill[]={10,25,40,55,70,10+offset,25+offset,40+offset,55+offset,25,40,55, 25+offset,40+offset,40}; 20 int yfill[]={10,25,40,55,70,10+offset,25+offset,40+offset,55+offset,25,40,55, 25+offset,40+offset,40};
19 int zfill[]={1,1,1,1,1,2,2,2,2,3,3,3,4,4,5}; 21 int zfill[]={1,1,1,1,1,2,2,2,2,3,3,3,4,4,5};
20 for(a=0;a<15;a++) 22 for(a=0;a<15;a++)
21 { 23 {
22 yup_coord[a]=yfill[a]; 24 yup_coord[a]=yfill[a];
23 ylow_coord[a]=185-(yfill[a]); 25 ylow_coord[a]=185-(yfill[a]);
24 z_coord[a]=zfill[a]; 26 z_coord[a]=zfill[a];
25 } 27 }
26 for(a=0;a<5;a++) 28 for(a=0;a<5;a++)
27 { 29 {
28 if(a<3) 30 if(a<3)
29 { 31 {
30 x_fin1[a]=65+a*15; 32 x_fin1[a]=65+a*15;
31 x_fin2[a]=155-a*15; 33 x_fin2[a]=155-a*15;
32 } 34 }
33 y_fin[a]=225-a*5; 35 y_fin[a]=225-a*5;
34 } 36 }
35 z_fin=1; 37 z_fin=1;
36 38
37 reset(); 39 reset();
38} 40}
39 41
40MoveEngine::~MoveEngine() 42MoveEngine::~MoveEngine()
41{} 43{}
42 44
43void MoveEngine::position(Pieces& pieces,bool non_qte) 45void MoveEngine::position(Pieces& pieces,bool non_qte)
44{ 46{
45 int player1_counter=0; 47 int player1_counter=0;
46 int player2_counter=0; 48 int player2_counter=0;
47 49
48 //non qte styles are smaller !! 50 //non qte styles are smaller !!
49 int offset=(non_qte) ? 5 : 0; 51 int offset=(non_qte) ? 5 : 0;
50 52
51 for(int a=0;a<28;a++) 53 for(int a=0;a<28;a++)
52 { 54 {
53 for(int b=0;b<abs(population[a].total);b++) 55 for(int b=0;b<abs(population[a].total);b++)
54 { 56 {
55 if(population[a].total>0) //player 1 pieces 57 if(population[a].total>0) //player 1 pieces
56 { 58 {
57 pieces.player1[player1_counter].x=x_coord[a]-offset; 59 pieces.player1[player1_counter].x=x_coord[a]-offset;
58 if(a>=0 && a<13) 60 if(a>=0 && a<13)
59 { 61 {
60 pieces.player1[player1_counter].y=yup_coord[b]-offset; 62 pieces.player1[player1_counter].y=yup_coord[b]-offset;
61 pieces.player1[player1_counter].z=z_coord[b]; 63 pieces.player1[player1_counter].z=z_coord[b];
62 pieces.player1[player1_counter].side=false; 64 pieces.player1[player1_counter].side=false;
63 player1_counter++; 65 player1_counter++;
64 } 66 }
65 else if(a>12 && a<26) 67 else if(a>12 && a<26)
66 { 68 {
67 pieces.player1[player1_counter].y=ylow_coord[b]-offset; 69 pieces.player1[player1_counter].y=ylow_coord[b]-offset;
68 pieces.player1[player1_counter].z=z_coord[b]; 70 pieces.player1[player1_counter].z=z_coord[b];
69 pieces.player1[player1_counter].side=false; 71 pieces.player1[player1_counter].side=false;
70 player1_counter++; 72 player1_counter++;
71 } 73 }
72 else if(a==26) 74 else if(a==26)
73 { 75 {
74 if(b<5) 76 if(b<5)
75 { 77 {
76 pieces.player1[player1_counter].x=x_fin1[0]-offset; 78 pieces.player1[player1_counter].x=x_fin1[0]-offset;
77 pieces.player1[player1_counter].y=y_fin[b]-offset; 79 pieces.player1[player1_counter].y=y_fin[b]-offset;
78 pieces.player1[player1_counter].z=z_fin; 80 pieces.player1[player1_counter].z=z_fin;
79 } 81 }
80 else if(b>=5 && b<10) 82 else if(b>=5 && b<10)
81 { 83 {
82 pieces.player1[player1_counter].x=x_fin1[1]-offset; 84 pieces.player1[player1_counter].x=x_fin1[1]-offset;
83 pieces.player1[player1_counter].y=y_fin[b-5]-offset; 85 pieces.player1[player1_counter].y=y_fin[b-5]-offset;
84 pieces.player1[player1_counter].z=z_fin; 86 pieces.player1[player1_counter].z=z_fin;
85 } 87 }
86 else 88 else
87 { 89 {
88 pieces.player1[player1_counter].x=x_fin1[2]-offset; 90 pieces.player1[player1_counter].x=x_fin1[2]-offset;
89 pieces.player1[player1_counter].y=y_fin[b-10]-offset; 91 pieces.player1[player1_counter].y=y_fin[b-10]-offset;
90 pieces.player1[player1_counter].z=z_fin; 92 pieces.player1[player1_counter].z=z_fin;
91 } 93 }
92 pieces.player1[player1_counter].side=true; 94 pieces.player1[player1_counter].side=true;
93 player1_counter++; 95 player1_counter++;
94 96
95 } 97 }
96 } 98 }
97 99
98 else if(population[a].total<0) //player 2 pieces 100 else if(population[a].total<0) //player 2 pieces
99 { 101 {
100 pieces.player2[player2_counter].x=x_coord[a]-offset; 102 pieces.player2[player2_counter].x=x_coord[a]-offset;
101 if(a>=0 && a<13) 103 if(a>=0 && a<13)
102 { 104 {
103 pieces.player2[player2_counter].y=yup_coord[b]-offset; 105 pieces.player2[player2_counter].y=yup_coord[b]-offset;
104 pieces.player2[player2_counter].z=z_coord[b]; 106 pieces.player2[player2_counter].z=z_coord[b];
105 pieces.player2[player2_counter].side=false; 107 pieces.player2[player2_counter].side=false;
106 player2_counter++; 108 player2_counter++;
107 } 109 }
108 else if(a>12 && a<26) 110 else if(a>12 && a<26)
109 { 111 {
110 pieces.player2[player2_counter].y=ylow_coord[b]-offset; 112 pieces.player2[player2_counter].y=ylow_coord[b]-offset;
111 pieces.player2[player2_counter].z=z_coord[b]; 113 pieces.player2[player2_counter].z=z_coord[b];
112 pieces.player2[player2_counter].side=false; 114 pieces.player2[player2_counter].side=false;
113 player2_counter++; 115 player2_counter++;
114 } 116 }
115 else if(a==27) 117 else if(a==27)
116 { 118 {
117 if(b<5) 119 if(b<5)
118 { 120 {
119 pieces.player2[player2_counter].x=x_fin2[0]-offset; 121 pieces.player2[player2_counter].x=x_fin2[0]-offset;
120 pieces.player2[player2_counter].y=y_fin[b]-offset; 122 pieces.player2[player2_counter].y=y_fin[b]-offset;
121 pieces.player2[player2_counter].z=z_fin; 123 pieces.player2[player2_counter].z=z_fin;
122 } 124 }
123 else if(b>=5 && b<10) 125 else if(b>=5 && b<10)
124 { 126 {
125 pieces.player2[player2_counter].x=x_fin2[1]-offset; 127 pieces.player2[player2_counter].x=x_fin2[1]-offset;
126 pieces.player2[player2_counter].y=y_fin[b-5]-offset; 128 pieces.player2[player2_counter].y=y_fin[b-5]-offset;
127 pieces.player2[player2_counter].z=z_fin; 129 pieces.player2[player2_counter].z=z_fin;
128 } 130 }
129 else 131 else
130 { 132 {
131 pieces.player2[player2_counter].x=x_fin2[2]-offset; 133 pieces.player2[player2_counter].x=x_fin2[2]-offset;
132 pieces.player2[player2_counter].y=y_fin[b-10]-offset; 134 pieces.player2[player2_counter].y=y_fin[b-10]-offset;
133 pieces.player2[player2_counter].z=z_fin; 135 pieces.player2[player2_counter].z=z_fin;
134 } 136 }
135 pieces.player2[player2_counter].side=true; 137 pieces.player2[player2_counter].side=true;
136 player2_counter++; 138 player2_counter++;
137 139
138 } 140 }
139 } 141 }
140 } 142 }
141 } 143 }
142} 144}
143 145
144void MoveEngine::diceroll(const int& newplayer,const int& face1,const int& face2,const int& face3,const int& face4,bool computer) 146void MoveEngine::diceroll(const int& newplayer,const int& face1,const int& face2,const int& face3,const int& face4,bool computer)
145{ 147{
146 checkstate(); 148 checkstate();
147 player=newplayer; 149 player=newplayer;
148 otherplayer=(player==1) ? 2 : 1; 150 otherplayer=(player==1) ? 2 : 1;
149 dice[0]=face1; 151 dice[0]=face1;
150 dice[1]=face2; 152 dice[1]=face2;
151 dice[2]=face3; 153 dice[2]=face3;
152 dice[3]=face4; 154 dice[3]=face4;
153 marker_current=-1; 155 marker_current=-1;
154 if(getPossibleMoves()==0) 156 if(getPossibleMoves()==0)
155 { 157 {
156 emit nomove(); 158 emit nomove();
157 return; // player will be changed 159 return; // player will be changed
158 } 160 }
159 if(!computer) 161 if(!computer)
160 return; //human intervention required 162 return; //human intervention required
161 163
162 QTimer::singleShot(2000,this,SLOT(automove())); 164 QTimer::singleShot(2000,this,SLOT(automove()));
163} 165}
164 166
165 167
166void MoveEngine::automove() 168void MoveEngine::automove()
167{ 169{
168 //the maximimum possibility 170 //the maximimum possibility
169 int maxpos=0; 171 int maxpos=0;
170 //the position in the moves array 172 //the position in the moves array
171 int from=-1; 173 int from=-1;
172 int to=-1; 174 int to=-1;
173 //dice1 or dice 2 ?? 175 //dice1 or dice 2 ??
174 int index_dice=0; 176 int index_dice=0;
175 for(int counter=0;counter<26;counter++) 177 for(int counter=0;counter<26;counter++)
176 { 178 {
177 int a=(player==1) ? counter : 25-counter; 179 int a=(player==1) ? counter : 25-counter;
178 for(int b=0;b<4;b++) 180 for(int b=0;b<4;b++)
179 { 181 {
180 if(moves[a].weight[b]>maxpos) 182 if(moves[a].weight[b]>maxpos)
181 { 183 {
182 maxpos=moves[a].weight[b]; 184 maxpos=moves[a].weight[b];
183 from=a; 185 from=a;
184 to=moves[a].to[b]; 186 to=moves[a].to[b];
185 index_dice=b+1; 187 index_dice=b+1;
186 } 188 }
187 } 189 }
188 } 190 }
189 move(from,to,index_dice); 191 move(from,to,index_dice);
190} 192}
191 193
192 194
193void MoveEngine::boardpressed(const int& x,const int& y,Marker& marker,bool non_qte) 195void MoveEngine::boardpressed(const int& x,const int& y,Marker& marker,bool non_qte)
194{ 196{
195 //get the position of the mouse click 197 //get the position of the mouse click
196 bool upper=true; 198 bool upper=true;
197 bool found=false; 199 bool found=false;
198 200
199 int offset=(non_qte) ? 5 : 0; 201 int offset=(non_qte) ? 5 : 0;
200 202
201 if(y<=85) // board slots 0 to 12 203 if(y<=85) // board slots 0 to 12
202 marker.y_current=0; 204 marker.y_current=0;
203 else if(y>=105) //board slots 13 to 25 205 else if(y>=105) //board slots 13 to 25
204 { 206 {
205 marker.y_current=195-2*offset; 207 marker.y_current=195-2*offset;
206 upper=false; 208 upper=false;
207 } 209 }
208 210
209 int index=13; // the clicked board slot 211 int index=13; // the clicked board slot
210 212
211 while(index<25 && !found) 213 while(index<25 && !found)
212 { 214 {
213 if(x>=x_coord[index] && x<x_coord[index+1]) 215 if(x>=x_coord[index] && x<x_coord[index+1])
214 { 216 {
215 marker.x_current=x_coord[index]; 217 marker.x_current=x_coord[index];
216 found=true; 218 found=true;
217 ; 219 ;
218 } 220 }
219 else 221 else
220 { 222 {
221 index++; 223 index++;
222 } 224 }
223 } 225 }
224 if(!found) 226 if(!found)
225 { 227 {
226 marker.x_current=x_coord[25]; 228 marker.x_current=x_coord[25];
227 index=25; 229 index=25;
228 } 230 }
229 if(upper) 231 if(upper)
230 { 232 {
231 index=25-index; 233 index=25-index;
232 } 234 }
233 235
234 int a=0; 236 int a=0;
235 int usedice=-1; 237 int usedice=-1;
236 int dice_value=7; 238 int dice_value=7;
237 for(a=0;a<4;a++) 239 for(a=0;a<4;a++)
238 { 240 {
239 if(index==marker_next[a] && marker_next[a]!=-1 && dice_value>dice[a]) 241 if(index==marker_next[a] && marker_next[a]!=-1 && dice_value>dice[a])
240 { 242 {
241 usedice=a; 243 usedice=a;
242 dice_value=dice[0]; 244 dice_value=dice[0];
243 } 245 }
244 } 246 }
245 if(usedice!=-1) 247 if(usedice!=-1)
246 { 248 {
247 move(marker_current,marker_next[usedice],usedice+1); 249 move(marker_current,marker_next[usedice],usedice+1);
248 nomarker(marker); 250 nomarker(marker);
249 return; 251 return;
250 252
251 } 253 }
252 254
253 255
254 if(dice[0]==7 && dice[1]==7 && dice[2]==7 && dice[3]==7) //no dice rolled 256 if(dice[0]==7 && dice[1]==7 && dice[2]==7 && dice[3]==7) //no dice rolled
255 { 257 {
256 nomarker(marker); 258 nomarker(marker);
257 return; 259 return;
258 } 260 }
259 else if(fieldColor(index)==player) 261 else if(fieldColor(index)==player)
260 { 262 {
261 marker.visible_current=true; 263 marker.visible_current=true;
262 marker_current=index; 264 marker_current=index;
263 } 265 }
264 else 266 else
265 { 267 {
266 nomarker(marker); 268 nomarker(marker);
267 return; 269 return;
268 } 270 }
269 271
270 for(a=0;a<4;a++) 272 for(a=0;a<4;a++)
271 { 273 {
272 if(moves[index].weight[a]>0) 274 if(moves[index].weight[a]>0)
273 { 275 {
274 int nextfield=moves[index].to[a]; 276 int nextfield=moves[index].to[a];
275 marker.x_next[a]=x_coord[nextfield]; 277 marker.x_next[a]=x_coord[nextfield];
276 marker_next[a]=nextfield; 278 marker_next[a]=nextfield;
277 if(nextfield<13) //upper half 279 if(nextfield<13) //upper half
278 marker.y_next[a]=0; 280 marker.y_next[a]=0;
279 else //lower half 281 else //lower half
280 marker.y_next[a]=195-2*offset; 282 marker.y_next[a]=195-2*offset;
281 marker.visible_next[a]=true; 283 marker.visible_next[a]=true;
282 } 284 }
283 else 285 else
284 { 286 {
285 marker.x_next[a]=0; 287 marker.x_next[a]=0;
286 marker.y_next[a]=0; 288 marker.y_next[a]=0;
287 marker_next[a]=-1; 289 marker_next[a]=-1;
288 marker.visible_next[a]=false; 290 marker.visible_next[a]=false;
289 } 291 }
290 } 292 }
291 return; 293 return;
292} 294}
293 295
294void MoveEngine::reset() 296void MoveEngine::reset()
295{ 297{
296 int a=0; 298 int a=0;
297 for(a=0;a<28;a++) 299 for(a=0;a<28;a++)
298 { 300 {
299 population[a].total=0; 301 population[a].total=0;
300 } 302 }
301 303
302 int p1_index[]={1,1,12,12,12,12,12,17,17,17,19,19,19,19,19}; 304 int p1_index[]={1,1,12,12,12,12,12,17,17,17,19,19,19,19,19};
303 int p2_index[]={24,24,13,13,13,13,13,8,8,8,6,6,6,6,6}; 305 int p2_index[]={24,24,13,13,13,13,13,8,8,8,6,6,6,6,6};
304 //int p1_index[]={19,20,21,22,22,23,23,18,18,23,24,24,24,24,24}; 306 //int p1_index[]={19,20,21,22,22,23,23,18,18,23,24,24,24,24,24};
305 //int p2_index[]={6,5,4,3,3,2,2,2,2,2,1,7,7,1,1}; 307 //int p2_index[]={6,5,4,3,3,2,2,2,2,2,1,7,7,1,1};
306 for(a=0;a<15;a++) 308 for(a=0;a<15;a++)
307 { 309 {
308 population[p1_index[a]].total++; 310 population[p1_index[a]].total++;
309 population[p2_index[a]].total--; 311 population[p2_index[a]].total--;
310 } 312 }
311 313
312 player=0; 314 player=0;
313 dice[0]=7; 315 dice[0]=7;
314 dice[1]=7; 316 dice[1]=7;
315 dice[2]=7; 317 dice[2]=7;
316 dice[3]=7; 318 dice[3]=7;
317 319
318 marker_current=-1; 320 marker_current=-1;
319 marker_next[0]=-1; 321 marker_next[0]=-1;
320 marker_next[1]=-1; 322 marker_next[1]=-1;
321 marker_next[2]=-1; 323 marker_next[2]=-1;
322 marker_next[3]=-1; 324 marker_next[3]=-1;
323 //allclear[0]==false; 325 //allclear[0]==false;
324 allclear[1]=false; 326 allclear[1]=false;
325 allclear[2]=false; 327 allclear[2]=false;
326 last_piece[1]=0; 328 last_piece[1]=0;
327 last_piece[2]=25; 329 last_piece[2]=25;
328} 330}
329 331
330void MoveEngine::loadGame(const LoadSave& load) 332void MoveEngine::loadGame(const LoadSave& load)
331{ 333{
332 for(int a=0;a<28;a++) 334 for(int a=0;a<28;a++)
333 { 335 {
334 population[a].total=load.pop[a].total; 336 population[a].total=load.pop[a].total;
335 } 337 }
336 checkstate(); 338 checkstate();
337} 339}
338 340
339LoadSave MoveEngine::saveGame() 341LoadSave MoveEngine::saveGame()
340{ 342{
341 LoadSave save; 343 LoadSave save;
342 for(int a=0;a<28;a++) 344 for(int a=0;a<28;a++)
343 { 345 {
344 save.pop[a].total=population[a].total; 346 save.pop[a].total=population[a].total;
345 } 347 }
346 return save; 348 return save;
347} 349}
348 350
349AISettings MoveEngine::getAISettings() 351AISettings MoveEngine::getAISettings()
350{ 352{
351 return ai; 353 return ai;
352} 354}
353 355
354void MoveEngine::setAISettings(const AISettings& new_ai) 356void MoveEngine::setAISettings(const AISettings& new_ai)
355{ 357{
356 ai=new_ai; 358 ai=new_ai;
357} 359}
358 360
359void MoveEngine::setRules(Rules rules) 361void MoveEngine::setRules(Rules rules)
360{ 362{
361 move_with_pieces_out=rules.move_with_pieces_out; 363 move_with_pieces_out=rules.move_with_pieces_out;
362 nice_dice=rules.generous_dice; 364 nice_dice=rules.generous_dice;
363} 365}
364 366
365 367
366int MoveEngine::getPossibleMoves() 368int MoveEngine::getPossibleMoves()
367{ 369{
368 int homezone[]={0,25,0}; 370 int homezone[]={0,25,0};
369 int lastToHomeZone=abs(last_piece[player]-homezone[player]); 371 int lastToHomeZone=abs(last_piece[player]-homezone[player]);
370 for(int field=0;field<26;field++) 372 for(int field=0;field<26;field++)
371 { 373 {
372 374
373 for(int b=0;b<4;b++) 375 for(int b=0;b<4;b++)
374 { 376 {
375 int dice_tmp=dice[b]; 377 int dice_tmp=dice[b];
376 if(dice[b]!=7 && dice[b]> lastToHomeZone) 378 if(dice[b]!=7 && dice[b]> lastToHomeZone)
377 dice_tmp=lastToHomeZone; 379 dice_tmp=lastToHomeZone;
378 380
379 int nextfield=(player==1) ? field+dice_tmp : field-dice_tmp; 381 int nextfield=(player==1) ? field+dice_tmp : field-dice_tmp;
380 382
381 if(nice_dice) 383 if(nice_dice)
382 { 384 {
383 if(player==1 && nextfield>homezone[1]) 385 if(player==1 && nextfield>homezone[1])
384 nextfield=homezone[1]; 386 nextfield=homezone[1];
385 else if(player==2 && nextfield<homezone[2]) 387 else if(player==2 && nextfield<homezone[2])
386 nextfield=homezone[2]; 388 nextfield=homezone[2];
387 } 389 }
388 390
389 moves[field].weight[b]=0; 391 moves[field].weight[b]=0;
390 moves[field].to[b]=nextfield; 392 moves[field].to[b]=nextfield;
391 393
392 int out_of_board[]={-1,0,25}; 394 int out_of_board[]={-1,0,25};
393 if(!move_with_pieces_out && field!=out_of_board[player] && pieces_out[player]) 395 if(!move_with_pieces_out && field!=out_of_board[player] && pieces_out[player])
394 { 396 {
395 continue; 397 continue;
396 } 398 }
397 399
398 400
399 401
400 if(dice[b]!=7 && fieldColor(field)==player ) //player can only move his own pieces 402 if(dice[b]!=7 && fieldColor(field)==player ) //player can only move his own pieces
401 { 403 {
402 if((player==1 && nextfield > homezone[1]) || (player==2 && nextfield < homezone[2])) 404 if((player==1 && nextfield > homezone[1]) || (player==2 && nextfield < homezone[2]))
403 { 405 {
404 moves[field].weight[b]=0; //movement would be far out of board 406 moves[field].weight[b]=0; //movement would be far out of board
405 } 407 }
406 else if(nextfield==homezone[player] && !allclear[player]) 408 else if(nextfield==homezone[player] && !allclear[player])
407 { 409 {
408 moves[field].weight[b]=0; //can not rescue pieces until all are in the endzone 410 moves[field].weight[b]=0; //can not rescue pieces until all are in the endzone
409 } 411 }
410 else if(nextfield==homezone[player] && allclear[player]) 412 else if(nextfield==homezone[player] && allclear[player])
411 { 413 {
412 moves[field].weight[b]=ai.rescue; //rescue your pieces : nuff said ;-) 414 moves[field].weight[b]=ai.rescue; //rescue your pieces : nuff said ;-)
413 } 415 }
414 else if(fieldColor(nextfield)==otherplayer) 416 else if(fieldColor(nextfield)==otherplayer)
415 { 417 {
416 if(abs(population[nextfield].total)>1) //can not move to this field 418 if(abs(population[nextfield].total)>1) //can not move to this field
417 moves[field].weight[b]=0; 419 moves[field].weight[b]=0;
418 else if(abs(population[nextfield].total)==1) //eliminate opponent : very nice 420 else if(abs(population[nextfield].total)==1) //eliminate opponent : very nice
419 moves[field].weight[b]=ai.eliminate; 421 moves[field].weight[b]=ai.eliminate;
420 } 422 }
421 else if(fieldColor(nextfield)==player) //nextfield already occupied by player 423 else if(fieldColor(nextfield)==player) //nextfield already occupied by player
422 { 424 {
423 if(abs(population[field].total)==2) //expose own piece : not diserable 425 if(abs(population[field].total)==2) //expose own piece : not diserable
424 moves[field].weight[b]=ai.expose; 426 moves[field].weight[b]=ai.expose;
425 else if(abs(population[nextfield].total)>1) //own pices already there : safe 427 else if(abs(population[nextfield].total)>1) //own pices already there : safe
426 moves[field].weight[b]=ai.safe; 428 moves[field].weight[b]=ai.safe;
427 else if(abs(population[nextfield].total)==1) //protect own piece : most importatnt 429 else if(abs(population[nextfield].total)==1) //protect own piece : most importatnt
428 moves[field].weight[b]=ai.protect; 430 moves[field].weight[b]=ai.protect;
429 } 431 }
430 else if(population[nextfield].total==0) //nextfield empty 432 else if(population[nextfield].total==0) //nextfield empty
431 { 433 {
432 if(abs(population[field].total)==2) //expose own piece : not diserable 434 if(abs(population[field].total)==2) //expose own piece : not diserable
433 moves[field].weight[b]=ai.expose; 435 moves[field].weight[b]=ai.expose;
434 else 436 else
435 moves[field].weight[b]=ai.empty; 437 moves[field].weight[b]=ai.empty;
436 } 438 }
437 else 439 else
438 moves[field].weight[b]=0; //default. 440 moves[field].weight[b]=0; //default.
439 } 441 }
440 442
441 443
442 444
443 else 445 else
444 moves[field].weight[b]=0; //dice already used or field not used by player 446 moves[field].weight[b]=0; //dice already used or field not used by player
445 } 447 }
446 448
447 449
448 450
449 } 451 }
450 452
451 int total=0; 453 int total=0;
452 for(int field=0;field<26;field++) 454 for(int field=0;field<26;field++)
453 { 455 {
454 total+=moves[field].weight[0]+moves[field].weight[1]+moves[field].weight[2]+moves[field].weight[3]; 456 total+=moves[field].weight[0]+moves[field].weight[1]+moves[field].weight[2]+moves[field].weight[3];
455 } 457 }
456 return total; 458 return total;
457} 459}
458 460
459void MoveEngine::move(const int& from, int to, const int& dice) 461void MoveEngine::move(const int& from, int to, const int& dice)
460{ 462{
461 //qDebug("%d moves from %d to %d (%d) with dice %d",player,from,to,to-from,dice); 463 //qDebug("%d moves from %d to %d (%d) with dice %d",player,from,to,to-from,dice);
462 464
463 if(player==1 && to==25) 465 if(player==1 && to==25)
464 to=26; 466 to=26;
465 if(player==2 && to==0) 467 if(player==2 && to==0)
466 to=27; 468 to=27;
467 469
468 //if space is occupied by enemy move pieces to startzone 470 //if space is occupied by enemy move pieces to startzone
469 if(fieldColor(to)==otherplayer) 471 if(fieldColor(to)==otherplayer)
470 { 472 {
471 population[to].total=0; 473 population[to].total=0;
472 if(otherplayer==1) 474 if(otherplayer==1)
473 population[0].total++; 475 population[0].total++;
474 else 476 else
475 population[25].total--; 477 population[25].total--;
476 } 478 }
477 479
478 if(player==1) 480 if(player==1)
479 { 481 {
480 population[from].total--; 482 population[from].total--;
481 population[to].total++; 483 population[to].total++;
482 } 484 }
483 else //player=2 485 else //player=2
484 { 486 {
485 population[from].total++; 487 population[from].total++;
486 population[to].total--; 488 population[to].total--;
487 } 489 }
488 490
489 if(dice==1) 491 if(dice==1)
490 emit done_dice1(); 492 emit done_dice1();
491 else if(dice==2) 493 else if(dice==2)
492 emit done_dice2(); 494 emit done_dice2();
493 else if(dice==3) 495 else if(dice==3)
494 emit done_dice3(); 496 emit done_dice3();
495 else 497 else
496 emit done_dice4(); 498 emit done_dice4();
497 499
498 if(abs(population[26].total)==15) 500 if(abs(population[26].total)==15)
499 emit player_finished(1); 501 emit player_finished(1);
500 if(abs(population[27].total)==15) 502 if(abs(population[27].total)==15)
501 emit player_finished(2); 503 emit player_finished(2);
502} 504}
503 505
504void MoveEngine::checkstate() 506void MoveEngine::checkstate()
505{ 507{
506 //check if pieces are out 508 //check if pieces are out
507 pieces_out[1]=(population[0].total>0) ? true : false; 509 pieces_out[1]=(population[0].total>0) ? true : false;
508 pieces_out[2]=(population[25].total<0) ? true : false; 510 pieces_out[2]=(population[25].total<0) ? true : false;
509 511
510 //check if all pieces are in the endzones 512 //check if all pieces are in the endzones
511 allclear[1]=true; 513 allclear[1]=true;
512 allclear[2]=true; 514 allclear[2]=true;
513 515
514 last_piece[1]=25; 516 last_piece[1]=25;
515 bool found_last_piece1=false; 517 bool found_last_piece1=false;
516 last_piece[2]=0; 518 last_piece[2]=0;
517 519
518 for(int a=0;a<26;a++) 520 for(int a=0;a<26;a++)
519 { 521 {
520 if(a<19 && population[a].total>0) 522 if(a<19 && population[a].total>0)
521 allclear[1]=false; 523 allclear[1]=false;
522 if(a>6 && population[a].total<0) 524 if(a>6 && population[a].total<0)
523 allclear[2]=false; 525 allclear[2]=false;
524 526
525 if(population[a].total>0 && !found_last_piece1) 527 if(population[a].total>0 && !found_last_piece1)
526 { 528 {
527 last_piece[1]=a; 529 last_piece[1]=a;
528 found_last_piece1=true; 530 found_last_piece1=true;
529 } 531 }
530 if(population[a].total<0) 532 if(population[a].total<0)
531 last_piece[2]=a; 533 last_piece[2]=a;
532 } 534 }
533} 535}
534 536
535void MoveEngine::nomarker(Marker& marker) 537void MoveEngine::nomarker(Marker& marker)
536{ 538{
537 marker.visible_current=false; 539 marker.visible_current=false;
538 marker_current=-1; 540 marker_current=-1;
539 for(int a=0;a<4;a++) 541 for(int a=0;a<4;a++)
540 { 542 {
541 marker.x_next[a]=0; 543 marker.x_next[a]=0;
542 marker.y_next[a]=0; 544 marker.y_next[a]=0;
543 marker_next[a]=-1; 545 marker_next[a]=-1;
544 marker.visible_next[a]=false; 546 marker.visible_next[a]=false;
545 } 547 }
546} 548}
547 549
548int MoveEngine::fieldColor(const int& index) const 550int MoveEngine::fieldColor(const int& index) const
549{ 551{
550 if(population[index].total>0) 552 if(population[index].total>0)
551 return 1; 553 return 1;
552 else if(population[index].total<0) 554 else if(population[index].total<0)
553 return 2; 555 return 2;
554 else 556 else
555 return 0; 557 return 0;
556} 558}
557 559
558 560
diff --git a/noncore/multimedia/camera/.cvsignore b/noncore/multimedia/camera/.cvsignore
new file mode 100644
index 0000000..6d678c6
--- a/dev/null
+++ b/noncore/multimedia/camera/.cvsignore
@@ -0,0 +1 @@
config.in
diff --git a/noncore/multimedia/camera/camera.pro b/noncore/multimedia/camera/camera.pro
new file mode 100644
index 0000000..e937807
--- a/dev/null
+++ b/noncore/multimedia/camera/camera.pro
@@ -0,0 +1,21 @@
1MOC_DIR = ./moc
2OBJECTS_DIR = ./obj
3DESTDIR = $(OPIEDIR)/bin
4TEMPLATE = app
5CONFIG = qt warn_on debug
6
7HEADERS = zcameraio.h \
8 mainwindow.h
9
10SOURCES = zcameraio.cpp \
11 mainwindow.cpp \
12 main.cpp
13
14INCLUDEPATH += $(OPIEDIR)/include
15DEPENDPATH += $(OPIEDIR)/include
16LIBS += -lqpe -lopiecore2
17INTERFACES =
18TARGET = opiecam
19
20include ( $(OPIEDIR)/include.pro )
21
diff --git a/noncore/multimedia/camera/config.in b/noncore/multimedia/camera/config.in
new file mode 100644
index 0000000..a4dd248
--- a/dev/null
+++ b/noncore/multimedia/camera/config.in
@@ -0,0 +1,7 @@
1 config CAMERA
2 boolean "opie-camera"
3 default "n"
4 depends ( LIBQPE || LIBQPE-X11 ) && LIBOPIE && LIBOPIE2CORE
5 comment "opie-camera needs a libqpe, libopie and libopie2core"
6 depends !(( LIBQPE || LIBQPE-X11 ) && LIBOPIE && LIBOPIE2CORE)
7
diff --git a/noncore/multimedia/camera/main.cpp b/noncore/multimedia/camera/main.cpp
new file mode 100644
index 0000000..f25475c
--- a/dev/null
+++ b/noncore/multimedia/camera/main.cpp
@@ -0,0 +1,28 @@
1/**********************************************************************
2** Copyright (C) 2003 Michael 'Mickey' Lauer. All rights reserved.
3**
4** This file is part of Opie Environment.
5**
6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file.
10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13**
14**********************************************************************/
15
16#include "mainwindow.h"
17#include <opie2/oapplication.h>
18
19int main( int argc, char **argv )
20{
21 OApplication a( argc, argv, "Opie-Camera" );
22 CameraMainWindow* w = new CameraMainWindow();
23 a.showMainWidget( w );
24 a.exec();
25 delete w;
26 return 0;
27}
28
diff --git a/noncore/multimedia/camera/mainwindow.cpp b/noncore/multimedia/camera/mainwindow.cpp
new file mode 100644
index 0000000..6431dfa
--- a/dev/null
+++ b/noncore/multimedia/camera/mainwindow.cpp
@@ -0,0 +1,50 @@
1/**********************************************************************
2** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved.
3**
4** This file is part of Opie Environment.
5**
6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file.
10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13**
14**********************************************************************/
15
16#include "mainwindow.h"
17
18#include <qvbox.h>
19#include <qpushbutton.h>
20#include <qlabel.h>
21
22#include <qpe/resource.h>
23#include <opie/ofiledialog.h>
24
25CameraMainWindow::CameraMainWindow( QWidget * parent, const char * name, WFlags f )
26 :QMainWindow( parent, name, f )
27{
28 QVBox* v = new QVBox( this );
29 QLabel* l = new QLabel( v );
30 l->setFixedSize( QSize( 240, 160 ) );
31 QPushButton* p = new QPushButton( "Snapshot", v );
32 connect( p, SIGNAL( clicked() ), this, SLOT( clickedSnapShot() ) );
33 v->show();
34 l->show();
35 p->show();
36 setCentralWidget( v );
37
38};
39
40
41CameraMainWindow::~CameraMainWindow()
42{
43}
44
45
46void CameraMainWindow::clickedSnapShot()
47{
48 qDebug( "Hello!" );
49}
50
diff --git a/noncore/multimedia/camera/mainwindow.h b/noncore/multimedia/camera/mainwindow.h
new file mode 100644
index 0000000..a349652
--- a/dev/null
+++ b/noncore/multimedia/camera/mainwindow.h
@@ -0,0 +1,40 @@
1/**********************************************************************
2** Copyright (C) 2003 Michael 'Mickey' Lauer. All rights reserved.
3**
4** This file is part of Opie Environment.
5**
6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file.
10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13**
14**********************************************************************/
15
16#ifndef MAINWINDOW_H
17#define MAINWINDOW_H
18
19#include <qmainwindow.h>
20
21class Wellenreiter;
22class WellenreiterConfigWindow;
23class QIconSet;
24class QToolButton;
25
26class CameraMainWindow: public QMainWindow
27{
28 Q_OBJECT
29
30 public:
31 CameraMainWindow( QWidget * parent = 0, const char * name = "mainwindow", WFlags f = 0 );
32 virtual ~CameraMainWindow();
33
34 protected:
35
36 public slots:
37 void clickedSnapShot();
38};
39
40#endif
diff --git a/noncore/multimedia/camera/zcameraio.cpp b/noncore/multimedia/camera/zcameraio.cpp
new file mode 100644
index 0000000..aa6cbe3
--- a/dev/null
+++ b/noncore/multimedia/camera/zcameraio.cpp
@@ -0,0 +1,56 @@
1/**********************************************************************
2** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved.
3**
4** This file is part of Opie Environment.
5**
6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file.
10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13**
14**********************************************************************/
15
16#include "zcameraio.h"
17
18#include <sys/types.h>
19#include <sys/stat.h>
20#include <errno.h>
21#include <string.h>
22#include <fcntl.h>
23#include <unistd.h>
24
25#include <qimage.h>
26
27#include <opie2/odebug.h>
28
29ZCameraIO::ZCameraIO()
30{
31 _driver = open( "/dev/sharp_zdc", O_RDWR );
32 if ( _driver == -1 )
33 oerr << "Can't open camera driver: " << strerror(errno) << oendl;
34
35};
36
37
38ZCameraIO::~ZCameraIO()
39{
40 if ( _driver != -1 )
41 close( _driver );
42}
43
44
45bool ZCameraIO::snapshot( QImage* img )
46{
47 char buf[76800];
48
49 write( _driver, "M=13", 4 );
50 write( _driver, "R=240,160,256,480", 17 );
51 write( _driver, "M=12", 4 );
52
53 int result = read( _driver, &buf, sizeof buf );
54
55 return result == sizeof buf;
56}
diff --git a/noncore/multimedia/camera/zcameraio.h b/noncore/multimedia/camera/zcameraio.h
new file mode 100644
index 0000000..817d3b4
--- a/dev/null
+++ b/noncore/multimedia/camera/zcameraio.h
@@ -0,0 +1,35 @@
1/**********************************************************************
2** Copyright (C) 2003 Michael 'Mickey' Lauer. All rights reserved.
3**
4** This file is part of Opie Environment.
5**
6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file.
10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13**
14**********************************************************************/
15
16#ifndef ZCAMERAIO_H
17#define ZCAMERAIO_H
18
19class QImage;
20
21class ZCameraIO
22{
23 public:
24 ZCameraIO();
25 virtual ~ZCameraIO();
26
27 bool isOpen() const { return _driver != -1; };
28
29 bool snapshot( QImage* );
30
31 private:
32 int _driver;
33};
34
35#endif
diff --git a/packages b/packages
index 5fdf5d2..0e4ae43 100644
--- a/packages
+++ b/packages
@@ -1,163 +1,164 @@
1 CONFIG_APPSKEY noncore/settings/appskeyappskey.pro 1 CONFIG_APPSKEY noncore/settings/appskeyappskey.pro
2 CONFIG_BACKGAMMONnoncore/games/backgammon/ backgammon.pro 2 CONFIG_BACKGAMMONnoncore/games/backgammon/ backgammon.pro
3 CONFIG_BINARY noncore/tools/calc2/binarybinary.pro 3 CONFIG_BINARY noncore/tools/calc2/binarybinary.pro
4 CONFIG_CALC2 noncore/tools/calc2calc2.pro 4 CONFIG_CALC2 noncore/tools/calc2calc2.pro
5 CONFIG_CALIBRATE core/apps/calibratecalibrate.pro 5 CONFIG_CALIBRATE core/apps/calibratecalibrate.pro
6 CONFIG_CAMERA noncore/multimedia/cameracamera.pro
6 CONFIG_DICTIONARY noncore/apps/dictionarydictionary.pro 7 CONFIG_DICTIONARY noncore/apps/dictionarydictionary.pro
7 CONFIG_EUROCONV noncore/tools/euroconv/ euroconv.pro 8 CONFIG_EUROCONV noncore/tools/euroconv/ euroconv.pro
8 CONFIG_GSMTOOL noncore/comm/gsmtoolgsmtool.pro 9 CONFIG_GSMTOOL noncore/comm/gsmtoolgsmtool.pro
9 CONFIG_KEYVIEW development/keyviewkeyview.pro 10 CONFIG_KEYVIEW development/keyviewkeyview.pro
10 CONFIG_LIBFFMPEG core/multimedia/opieplayer/libffmpeglibffmpeg.pro 11 CONFIG_LIBFFMPEG core/multimedia/opieplayer/libffmpeglibffmpeg.pro
11 CONFIG_LIBFLASH core/multimedia/opieplayer/libflashlibflash.pro 12 CONFIG_LIBFLASH core/multimedia/opieplayer/libflashlibflash.pro
12 CONFIG_LIBOPIE_PIM libopie/pimpim.pro 13 CONFIG_LIBOPIE_PIM libopie/pimpim.pro
13 CONFIG_LIBSQL libsqllibsql.pro 14 CONFIG_LIBSQL libsqllibsql.pro
14 CONFIG_MOBILEMSG noncore/comm/mobilemsgmobilemsg.pro 15 CONFIG_MOBILEMSG noncore/comm/mobilemsgmobilemsg.pro
15 CONFIG_OFILESELECTOR libopie/ofileselectorofileselector.pro 16 CONFIG_OFILESELECTOR libopie/ofileselectorofileselector.pro
16 CONFIG_OPIE-WRITE noncore/apps/opie-writeopie-write.pro 17 CONFIG_OPIE-WRITE noncore/apps/opie-writeopie-write.pro
17 CONFIG_QUICKEXEC quickexecquickexec.pro 18 CONFIG_QUICKEXEC quickexecquickexec.pro
18 CONFIG_RESTARTAPPLET core/applets/restartappletrestartapplet.pro 19 CONFIG_RESTARTAPPLET core/applets/restartappletrestartapplet.pro
19 CONFIG_RESTARTAPPLET2 core/applets/restartapplet2restartapplet2.pro 20 CONFIG_RESTARTAPPLET2 core/applets/restartapplet2restartapplet2.pro
20 CONFIG_SIMPLE noncore/tools/calc2/simplesimple.pro 21 CONFIG_SIMPLE noncore/tools/calc2/simplesimple.pro
21 CONFIG_TEST libsql/testtest.pro 22 CONFIG_TEST libsql/testtest.pro
22 CONFIG_TEST noncore/apps/opie-console/testtest.pro 23 CONFIG_TEST noncore/apps/opie-console/testtest.pro
23 CONFIG_UBROWSER noncore/net/ubrowserubrowser.pro 24 CONFIG_UBROWSER noncore/net/ubrowserubrowser.pro
24 CONFIG_WELLENREITER noncore/net/wellenreiterwellenreiter.pro 25 CONFIG_WELLENREITER noncore/net/wellenreiterwellenreiter.pro
25 CONFIG_ADDRESSBOOK core/pim/addressbookaddressbook.pro 26 CONFIG_ADDRESSBOOK core/pim/addressbookaddressbook.pro
26 CONFIG_ADVANCEDFM noncore/apps/advancedfmadvancedfm.pro 27 CONFIG_ADVANCEDFM noncore/apps/advancedfmadvancedfm.pro
27 CONFIG_APPEARANCE2 noncore/settings/appearance2appearance2.pro 28 CONFIG_APPEARANCE2 noncore/settings/appearance2appearance2.pro
28 CONFIG_OPIETOOTH-APPLET noncore/net/opietooth/appletapplet.pro 29 CONFIG_OPIETOOTH-APPLET noncore/net/opietooth/appletapplet.pro
29 CONFIG_AQPKG noncore/apps/aqpkgaqpkg.pro 30 CONFIG_AQPKG noncore/apps/aqpkgaqpkg.pro
30 CONFIG_BACKUP noncore/settings/backupbackup.pro 31 CONFIG_BACKUP noncore/settings/backupbackup.pro
31 CONFIG_BATTERYAPPLET core/applets/batteryappletbatteryapplet.pro 32 CONFIG_BATTERYAPPLET core/applets/batteryappletbatteryapplet.pro
32 CONFIG_BEND noncore/mail/bendbend.pro 33 CONFIG_BEND noncore/mail/bendbend.pro
33 CONFIG_BLUE-PIN noncore/net/opietooth/blue-pinblue-pin.pro 34 CONFIG_BLUE-PIN noncore/net/opietooth/blue-pinblue-pin.pro
34 CONFIG_BOUNCE noncore/games/bouncebounce.pro 35 CONFIG_BOUNCE noncore/games/bouncebounce.pro
35 CONFIG_BUTTON-SETTINGS core/settings/buttonbutton.pro 36 CONFIG_BUTTON-SETTINGS core/settings/buttonbutton.pro
36 CONFIG_BUZZWORD noncore/games/buzzwordbuzzword.pro 37 CONFIG_BUZZWORD noncore/games/buzzwordbuzzword.pro
37 CONFIG_CALCULATOR noncore/tools/calculatorcalculator.pro 38 CONFIG_CALCULATOR noncore/tools/calculatorcalculator.pro
38 CONFIG_CARDMON core/applets/cardmoncardmon.pro 39 CONFIG_CARDMON core/applets/cardmoncardmon.pro
39 CONFIG_CHECKBOOK noncore/apps/checkbookcheckbook.pro 40 CONFIG_CHECKBOOK noncore/apps/checkbookcheckbook.pro
40 CONFIG_CITYTIME core/settings/citytimecitytime.pro 41 CONFIG_CITYTIME core/settings/citytimecitytime.pro
41 CONFIG_CLIPBOARDAPPLET core/applets/clipboardappletclipboardapplet.pro 42 CONFIG_CLIPBOARDAPPLET core/applets/clipboardappletclipboardapplet.pro
42 CONFIG_CLOCK noncore/tools/clockclock.pro 43 CONFIG_CLOCK noncore/tools/clockclock.pro
43 CONFIG_CLOCKAPPLET core/applets/clockappletclockapplet.pro 44 CONFIG_CLOCKAPPLET core/applets/clockappletclockapplet.pro
44 CONFIG_CONFEDIT noncore/apps/confeditconfedit.pro 45 CONFIG_CONFEDIT noncore/apps/confeditconfedit.pro
45 CONFIG_DATEBOOK core/pim/datebookdatebook.pro 46 CONFIG_DATEBOOK core/pim/datebookdatebook.pro
46 CONFIG_DECO_FLAT noncore/decorations/flatflat.pro 47 CONFIG_DECO_FLAT noncore/decorations/flatflat.pro
47 CONFIG_DECO_LIQUID noncore/decorations/liquidliquid.pro 48 CONFIG_DECO_LIQUID noncore/decorations/liquidliquid.pro
48 CONFIG_DECO_POLISHED noncore/decorations/polishedpolished.pro 49 CONFIG_DECO_POLISHED noncore/decorations/polishedpolished.pro
49 CONFIG_DRAWPAD noncore/graphics/drawpaddrawpad.pro 50 CONFIG_DRAWPAD noncore/graphics/drawpaddrawpad.pro
50 CONFIG_DVORAK inputmethods/dvorakdvorak.pro 51 CONFIG_DVORAK inputmethods/dvorakdvorak.pro
51 CONFIG_EMBEDDEDKONSOLE core/apps/embeddedkonsoleembeddedkonsole.pro 52 CONFIG_EMBEDDEDKONSOLE core/apps/embeddedkonsoleembeddedkonsole.pro
52 CONFIG_FIFTEEN noncore/games/fifteenfifteen.pro 53 CONFIG_FIFTEEN noncore/games/fifteenfifteen.pro
53 CONFIG_FILEBROWSER core/apps/filebrowserfilebrowser.pro 54 CONFIG_FILEBROWSER core/apps/filebrowserfilebrowser.pro
54 CONFIG_FLAT noncore/styles/flatflat.pro 55 CONFIG_FLAT noncore/styles/flatflat.pro
55 CONFIG_FORMATTER noncore/tools/formatterformatter.pro 56 CONFIG_FORMATTER noncore/tools/formatterformatter.pro
56 CONFIG_FREETYPE freetypefreetype.pro 57 CONFIG_FREETYPE freetypefreetype.pro
57 CONFIG_FRESH noncore/styles/freshfresh.pro 58 CONFIG_FRESH noncore/styles/freshfresh.pro
58 CONFIG_FTPLIB noncore/net/ftplibftplib.pro 59 CONFIG_FTPLIB noncore/net/ftplibftplib.pro
59 CONFIG_GO noncore/games/gogo.pro 60 CONFIG_GO noncore/games/gogo.pro
60 CONFIG_HANDWRITING inputmethods/handwritinghandwriting.pro 61 CONFIG_HANDWRITING inputmethods/handwritinghandwriting.pro
61 CONFIG_HELPBROWSER core/apps/helpbrowserhelpbrowser.pro 62 CONFIG_HELPBROWSER core/apps/helpbrowserhelpbrowser.pro
62 CONFIG_HOMEAPPLET core/applets/homeapplethomeapplet.pro 63 CONFIG_HOMEAPPLET core/applets/homeapplethomeapplet.pro
63 CONFIG_INTERFACES noncore/net/networksettings/interfacesinterfaces.pro 64 CONFIG_INTERFACES noncore/net/networksettings/interfacesinterfaces.pro
64 CONFIG_IRDAAPPLET core/applets/irdaappletirdaapplet.pro 65 CONFIG_IRDAAPPLET core/applets/irdaappletirdaapplet.pro
65 CONFIG_JUMPX inputmethods/jumpxjumpx.pro 66 CONFIG_JUMPX inputmethods/jumpxjumpx.pro
66 CONFIG_KBILL noncore/games/kbillkbill.pro 67 CONFIG_KBILL noncore/games/kbillkbill.pro
67 CONFIG_KCHECKERS noncore/games/kcheckerskcheckers.pro 68 CONFIG_KCHECKERS noncore/games/kcheckerskcheckers.pro
68 CONFIG_KEYBOARD inputmethods/keyboardkeyboard.pro 69 CONFIG_KEYBOARD inputmethods/keyboardkeyboard.pro
69 CONFIG_KEYPEBBLE noncore/comm/keypebblekeypebble.pro 70 CONFIG_KEYPEBBLE noncore/comm/keypebblekeypebble.pro
70 CONFIG_KJUMPX inputmethods/kjumpxkjumpx.pro 71 CONFIG_KJUMPX inputmethods/kjumpxkjumpx.pro
71 CONFIG_KPACMAN noncore/games/kpacmankpacman.pro 72 CONFIG_KPACMAN noncore/games/kpacmankpacman.pro
72 CONFIG_LANGUAGE noncore/settings/languagelanguage.pro 73 CONFIG_LANGUAGE noncore/settings/languagelanguage.pro
73 CONFIG_LAUNCHER-SETTINGS core/settings/launcherlauncher.pro 74 CONFIG_LAUNCHER-SETTINGS core/settings/launcherlauncher.pro
74 CONFIG_LAUNCHER_CORE core/launcherlauncher.pro 75 CONFIG_LAUNCHER_CORE core/launcherlauncher.pro
75 CONFIG_LIBOPIETOOTH noncore/net/opietooth/liblib.pro 76 CONFIG_LIBOPIETOOTH noncore/net/opietooth/liblib.pro
76CONFIG_LIBKATE noncore/apps/tinykate/libkate libkate.pro 77CONFIG_LIBKATE noncore/apps/tinykate/libkate libkate.pro
77 CONFIG_LIBMAD core/multimedia/opieplayer/libmadlibmad.pro 78 CONFIG_LIBMAD core/multimedia/opieplayer/libmadlibmad.pro
78 CONFIG_LIBMAIL noncore/mail/libmaillibmail.pro 79 CONFIG_LIBMAIL noncore/mail/libmaillibmail.pro
79 CONFIG_LIBMPEG3 core/multimedia/opieplayer/libmpeg3libmpeg3.pro 80 CONFIG_LIBMPEG3 core/multimedia/opieplayer/libmpeg3libmpeg3.pro
80 CONFIG_LIBOPIE libopielibopie.pro 81 CONFIG_LIBOPIE libopielibopie.pro
81 CONFIG_LIBOPIE2CORE libopie2/opiecoreopiecore.pro 82 CONFIG_LIBOPIE2CORE libopie2/opiecoreopiecore.pro
82 CONFIG_LIBOPIE2DB libopie2/opiedbopiedb.pro 83 CONFIG_LIBOPIE2DB libopie2/opiedbopiedb.pro
83 CONFIG_LIBOPIE2NET libopie2/opienetopienet.pro 84 CONFIG_LIBOPIE2NET libopie2/opienetopienet.pro
84 CONFIG_LIBOPIE2PIM libopie2/opiepimopiepim.pro 85 CONFIG_LIBOPIE2PIM libopie2/opiepimopiepim.pro
85 CONFIG_LIBOPIE2UI libopie2/opieuiopieui.pro 86 CONFIG_LIBOPIE2UI libopie2/opieuiopieui.pro
86 CONFIG_LIBOPIE2EXAMPLES libopie2/examplesexamples.pro 87 CONFIG_LIBOPIE2EXAMPLES libopie2/examplesexamples.pro
87 CONFIG_LIBQPE librarylibrary.pro 88 CONFIG_LIBQPE librarylibrary.pro
88 CONFIG_LIBQPE-X11 x11/libqpe-x11libqpe-x11.pro 89 CONFIG_LIBQPE-X11 x11/libqpe-x11libqpe-x11.pro
89 CONFIG_LIGHT-AND-POWER core/settings/light-and-powerlight-and-power.pro 90 CONFIG_LIGHT-AND-POWER core/settings/light-and-powerlight-and-power.pro
90 CONFIG_LIQUID noncore/styles/liquidliquid.pro 91 CONFIG_LIQUID noncore/styles/liquidliquid.pro
91 CONFIG_LOGOUTAPPLET core/applets/logoutappletlogoutapplet.pro 92 CONFIG_LOGOUTAPPLET core/applets/logoutappletlogoutapplet.pro
92 CONFIG_OPIETOOTH-MANAGER noncore/net/opietooth/managermanager.pro 93 CONFIG_OPIETOOTH-MANAGER noncore/net/opietooth/managermanager.pro
93 CONFIG_MEDIUMMOUNT noncore/settings/mediummountmediummount.pro 94 CONFIG_MEDIUMMOUNT noncore/settings/mediummountmediummount.pro
94 CONFIG_METAL noncore/styles/metalmetal.pro 95 CONFIG_METAL noncore/styles/metalmetal.pro
95 CONFIG_MINDBREAKER noncore/games/mindbreakermindbreaker.pro 96 CONFIG_MINDBREAKER noncore/games/mindbreakermindbreaker.pro
96 CONFIG_MINESWEEP noncore/games/minesweepminesweep.pro 97 CONFIG_MINESWEEP noncore/games/minesweepminesweep.pro
97 CONFIG_MODPLUG core/multimedia/opieplayer/modplugmodplug.pro 98 CONFIG_MODPLUG core/multimedia/opieplayer/modplugmodplug.pro
98 CONFIG_MULTIKEY inputmethods/multikeymultikey.pro 99 CONFIG_MULTIKEY inputmethods/multikeymultikey.pro
99 CONFIG_NETSYSTEMTIME noncore/settings/netsystemtimenetsystemtime.pro 100 CONFIG_NETSYSTEMTIME noncore/settings/netsystemtimenetsystemtime.pro
100 CONFIG_NETWORKSETUP noncore/net/networksettingsnetworksettings.pro 101 CONFIG_NETWORKSETUP noncore/net/networksettingsnetworksettings.pro
101 CONFIG_NOTESAPPLET noncore/applets/notesappletnotesapplet.pro 102 CONFIG_NOTESAPPLET noncore/applets/notesappletnotesapplet.pro
102 CONFIG_OBEX core/applets/obex2obex.pro 103 CONFIG_OBEX core/applets/obex2obex.pro
103 CONFIG_OCOPSERVER x11/ipc/serverocopserver.pro 104 CONFIG_OCOPSERVER x11/ipc/serverocopserver.pro
104 CONFIG_OIPKG core/apps/oipkgoipkg.pro 105 CONFIG_OIPKG core/apps/oipkgoipkg.pro
105 CONFIG_OPIE-CONSOLE noncore/apps/opie-consoleopie-console.pro 106 CONFIG_OPIE-CONSOLE noncore/apps/opie-consoleopie-console.pro
106 CONFIG_OPIE-LOGIN core/opie-loginopie-login.pro 107 CONFIG_OPIE-LOGIN core/opie-loginopie-login.pro
107 CONFIG_OPIEMAIL2noncore/mail mail.pro 108 CONFIG_OPIEMAIL2noncore/mail mail.pro
108 CONFIG_OPIE-READER noncore/apps/opie-readeropie-reader.pro 109 CONFIG_OPIE-READER noncore/apps/opie-readeropie-reader.pro
109 CONFIG_OPIE-SH noncore/tools/opie-shopie-sh.pro 110 CONFIG_OPIE-SH noncore/tools/opie-shopie-sh.pro
110 CONFIG_OPIE-SHEET noncore/apps/opie-sheetopie-sheet.pro 111 CONFIG_OPIE-SHEET noncore/apps/opie-sheetopie-sheet.pro
111 CONFIG_OPIEALARMcore/opiealarm 112 CONFIG_OPIEALARMcore/opiealarm
112 CONFIG_OPIEFTP noncore/net/opieftpopieftp.pro 113 CONFIG_OPIEFTP noncore/net/opieftpopieftp.pro
113 CONFIG_OPIEIRC noncore/net/opieircopieirc.pro 114 CONFIG_OPIEIRC noncore/net/opieircopieirc.pro
114 CONFIG_OPIEPLAYER core/multimedia/opieplayeropieplayer.pro 115 CONFIG_OPIEPLAYER core/multimedia/opieplayeropieplayer.pro
115 CONFIG_OPIEPLAYER2 noncore/multimedia/opieplayer2opieplayer2.pro 116 CONFIG_OPIEPLAYER2 noncore/multimedia/opieplayer2opieplayer2.pro
116 CONFIG_OXYGEN noncore/apps/oxygenoxygen.pro 117 CONFIG_OXYGEN noncore/apps/oxygenoxygen.pro
117 CONFIG_PARASHOOT noncore/games/parashootparashoot.pro 118 CONFIG_PARASHOOT noncore/games/parashootparashoot.pro
118 CONFIG_PICKBOARD inputmethods/pickboardpickboard.pro 119 CONFIG_PICKBOARD inputmethods/pickboardpickboard.pro
119 CONFIG_QASTEROIDS noncore/games/qasteroidsqasteroids.pro 120 CONFIG_QASTEROIDS noncore/games/qasteroidsqasteroids.pro
120 CONFIG_QCOP core/apps/qcopqcop.pro 121 CONFIG_QCOP core/apps/qcopqcop.pro
121 CONFIG_ODICT noncore/apps/odictodict.pro 122 CONFIG_ODICT noncore/apps/odictodict.pro
122 CONFIG_QPDF noncore/graphics/qpdfqpdf.pro 123 CONFIG_QPDF noncore/graphics/qpdfqpdf.pro
123 CONFIG_REMOTE noncore/tools/remoteremote.pro 124 CONFIG_REMOTE noncore/tools/remoteremote.pro
124 CONFIG_ROTATION noncore/settings/rotationrotation.pro 125 CONFIG_ROTATION noncore/settings/rotationrotation.pro
125 CONFIG_RUNAPPLET core/applets/runappletrunapplet.pro 126 CONFIG_RUNAPPLET core/applets/runappletrunapplet.pro
126 CONFIG_SCREENSHOTAPPLET core/applets/screenshotappletscreenshotapplet.pro 127 CONFIG_SCREENSHOTAPPLET core/applets/screenshotappletscreenshotapplet.pro
127 CONFIG_SECURITY core/settings/securitysecurity.pro 128 CONFIG_SECURITY core/settings/securitysecurity.pro
128 CONFIG_SFCAVE noncore/games/sfcavesfcave.pro 129 CONFIG_SFCAVE noncore/games/sfcavesfcave.pro
129 CONFIG_SFCAVE-SDL noncore/games/sfcave-sdlsfcave-sdl.pro 130 CONFIG_SFCAVE-SDL noncore/games/sfcave-sdlsfcave-sdl.pro
130 CONFIG_SHOWIMG noncore/multimedia/showimgshowimg.pro 131 CONFIG_SHOWIMG noncore/multimedia/showimgshowimg.pro
131 CONFIG_SINGLE singlesingle.pro 132 CONFIG_SINGLE singlesingle.pro
132 CONFIG_SNAKE noncore/games/snakesnake.pro 133 CONFIG_SNAKE noncore/games/snakesnake.pro
133 CONFIG_SOLITAIRE noncore/games/solitairesolitaire.pro 134 CONFIG_SOLITAIRE noncore/games/solitairesolitaire.pro
134 CONFIG_SOUND noncore/settings/soundsound.pro 135 CONFIG_SOUND noncore/settings/soundsound.pro
135 CONFIG_SSHKEYS noncore/settings/sshkeyssshkeys.pro 136 CONFIG_SSHKEYS noncore/settings/sshkeyssshkeys.pro
136 CONFIG_SUSPENDAPPLET core/applets/suspendappletsuspendapplet.pro 137 CONFIG_SUSPENDAPPLET core/applets/suspendappletsuspendapplet.pro
137 CONFIG_ROTATEAPPLET core/applets/rotateappletrotateapplet.pro 138 CONFIG_ROTATEAPPLET core/applets/rotateappletrotateapplet.pro
138 CONFIG_SYSINFO noncore/apps/sysinfosysinfo.pro 139 CONFIG_SYSINFO noncore/apps/sysinfosysinfo.pro
139 CONFIG_TABLEVIEWER noncore/apps/tableviewertableviewer.pro 140 CONFIG_TABLEVIEWER noncore/apps/tableviewertableviewer.pro
140 CONFIG_TABMANAGER noncore/settings/tabmanagertabmanager.pro 141 CONFIG_TABMANAGER noncore/settings/tabmanagertabmanager.pro
141 CONFIG_TETRIX noncore/games/tetrixtetrix.pro 142 CONFIG_TETRIX noncore/games/tetrixtetrix.pro
142 CONFIG_TEXTEDIT core/apps/textedittextedit.pro 143 CONFIG_TEXTEDIT core/apps/textedittextedit.pro
143 CONFIG_THEME noncore/styles/themetheme.pro 144 CONFIG_THEME noncore/styles/themetheme.pro
144 CONFIG_TICTAC noncore/games/tictactictac.pro 145 CONFIG_TICTAC noncore/games/tictactictac.pro
145 CONFIG_TINYKATE noncore/apps/tinykatetinykate.pro 146 CONFIG_TINYKATE noncore/apps/tinykatetinykate.pro
146 CONFIG_TODAY core/pim/todaytoday.pro 147 CONFIG_TODAY core/pim/todaytoday.pro
147CONFIG_TODAY_ADDRESSBOOK core/pim/today/plugins/addressbook addressbook.pro 148CONFIG_TODAY_ADDRESSBOOK core/pim/today/plugins/addressbook addressbook.pro
148 CONFIG_TODAY_DATEBOOK core/pim/today/plugins/datebookdatebook.pro 149 CONFIG_TODAY_DATEBOOK core/pim/today/plugins/datebookdatebook.pro
149 CONFIG_TODAY_FORTUNE noncore/todayplugins/fortunefortune.pro 150 CONFIG_TODAY_FORTUNE noncore/todayplugins/fortunefortune.pro
150 CONFIG_TODAY_MAIL core/pim/today/plugins/mailmail.pro 151 CONFIG_TODAY_MAIL core/pim/today/plugins/mailmail.pro
151 CONFIG_TODAY_STOCKTICKER noncore/todayplugins/stockticker/stocktickerstockticker.pro 152 CONFIG_TODAY_STOCKTICKER noncore/todayplugins/stockticker/stocktickerstockticker.pro
152 CONFIG_TODAY_STOCKTICKERLIB noncore/todayplugins/stockticker/stocktickerlibstocktickerlib.pro 153 CONFIG_TODAY_STOCKTICKERLIB noncore/todayplugins/stockticker/stocktickerlibstocktickerlib.pro
153 CONFIG_TODAY_WEATHERnoncore/todayplugins/weather weather.pro 154 CONFIG_TODAY_WEATHERnoncore/todayplugins/weather weather.pro
154 CONFIG_TODAY_TODOLIST core/pim/today/plugins/todolisttodolist.pro 155 CONFIG_TODAY_TODOLIST core/pim/today/plugins/todolisttodolist.pro
155 CONFIG_TODO core/pim/todotodo.pro 156 CONFIG_TODO core/pim/todotodo.pro
156 CONFIG_UNIKEYBOARD inputmethods/unikeyboardunikeyboard.pro 157 CONFIG_UNIKEYBOARD inputmethods/unikeyboardunikeyboard.pro
157 CONFIG_USERMANAGER noncore/settings/usermanagerusermanager.pro 158 CONFIG_USERMANAGER noncore/settings/usermanagerusermanager.pro
158 CONFIG_VMEMO core/applets/vmemovmemo.pro 159 CONFIG_VMEMO core/applets/vmemovmemo.pro
159 CONFIG_VOLUMEAPPLET core/applets/volumeappletvolumeapplet.pro 160 CONFIG_VOLUMEAPPLET core/applets/volumeappletvolumeapplet.pro
160 CONFIG_WAVPLUGIN core/multimedia/opieplayer/wavpluginwavplugin.pro 161 CONFIG_WAVPLUGIN core/multimedia/opieplayer/wavpluginwavplugin.pro
161 CONFIG_WIRELESSAPPLET noncore/applets/wirelessappletwirelessapplet.pro 162 CONFIG_WIRELESSAPPLET noncore/applets/wirelessappletwirelessapplet.pro
162 CONFIG_WLAN noncore/net/networksettings/wlanwlan.pro 163 CONFIG_WLAN noncore/net/networksettings/wlanwlan.pro
163 CONFIG_WORDGAME noncore/games/wordgamewordgame.pro 164 CONFIG_WORDGAME noncore/games/wordgamewordgame.pro
diff --git a/pics/camera/cam.png b/pics/camera/cam.png
new file mode 100755
index 0000000..6bd468b
--- a/dev/null
+++ b/pics/camera/cam.png
Binary files differ