Binary file CenRep/keys_screensaver.xls has changed
--- a/aif/screensaver_reg.rss Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-/*
-* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* resource definition.
-*
-*/
-
-
-
-
-#include <appinfo.rh>
-#include <screensaver.rsg>
-
-UID2 KUidAppRegistrationResourceFile
-UID3 0x100056CF // Screensaver UID
-
-RESOURCE APP_REGISTRATION_INFO
- {
- app_file = "screensaver";
- hidden = KAppIsHidden;
- }
--- a/aif/screensaveraif.rss Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Resource for screensaver
-*
-*/
-
-
-
-
-#include <aiftool.rh>
-
-RESOURCE AIF_DATA
- {
- app_uid=0x100056CF;
- hidden=KAppIsHidden;
- }
Binary file animations/balloons.gif has changed
Binary file animations/bird.swf has changed
--- a/animations/butterfly0.svg Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,335 +0,0 @@
-<svg width="100%" height="100%" viewBox="0 0 352 352" preserveAspectRatio="none" xmlns:a="http://www.adobe.com/svg10-extensions" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg">
-<defs>
-<radialGradient id="shape14grad" gradientUnits="userSpaceOnUse" r="38.014" cx="257.431" cy="44.786">
-<stop offset="0.441" stop-color="#007176">
-<animate attributeName="stop-color" values="#007176;#007176;#FEFEFE;#007176;#007176;#007176" fill="freeze" keyTimes="0;0.084;0.171;0.25;0.417;1" begin="3s" dur="2.40s" repeatCount="indefinite" />
-</stop>
-<stop offset="0.787" stop-color="#00FFFF">
-<animate attributeName="stop-color" values="#00FFFF;#00FFFF;#7CFFFF;#00FFFF;#00FFFF;#00FFFF" fill="freeze" keyTimes="0;0.084;0.171;0.25;0.417;1" begin="3s" dur="2.40s" repeatCount="indefinite" />
-</stop>
-<stop offset="1" stop-color="#1038B6">
-<animate attributeName="stop-color" values="#1038B6;#1038B6;#00FFFF;#1038B6;#1038B6;#1038B6" fill="freeze" keyTimes="0;0.084;0.171;0.25;0.417;1" begin="3s" dur="2.40s" repeatCount="indefinite" />
-</stop>
-</radialGradient>
-<radialGradient id="shape15grad" gradientUnits="userSpaceOnUse" r="47.802" cx="287.578" cy="46.388">
-<stop offset="0.441" stop-color="#007176">
-<animate attributeName="stop-color" values="#007176;#007176;#FEFEFE;#007176;#007176;#007176" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="2.80s" dur="2.41s" repeatCount="indefinite" />
-</stop>
-<stop offset="0.787" stop-color="#00FFFF">
-<animate attributeName="stop-color" values="#00FFFF;#00FFFF;#7CFFFF;#00FFFF;#00FFFF;#00FFFF" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="2.80s" dur="2.41s" repeatCount="indefinite" />
-</stop>
-<stop offset="1" stop-color="#1038B6">
-<animate attributeName="stop-color" values="#1038B6;#1038B6;#00FFFF;#1038B6;#1038B6;#1038B6" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="2.80s" dur="2.41s" repeatCount="indefinite" />
-</stop>
-</radialGradient>
-<radialGradient id="shape16grad" gradientUnits="userSpaceOnUse" r="26.08" cx="310.265" cy="58.231">
-<stop offset="0.441" stop-color="#007176">
-<animate attributeName="stop-color" values="#007176;#007176;#FEFEFE;#007176;#007176;#007176" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="2.60s" dur="2.41s" repeatCount="indefinite" />
-</stop>
-<stop offset="0.787" stop-color="#00FFFF">
-<animate attributeName="stop-color" values="#00FFFF;#00FFFF;#7CFFFF;#00FFFF;#00FFFF;#00FFFF" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="2.60s" dur="2.41s" repeatCount="indefinite" />
-</stop>
-<stop offset="1" stop-color="#1038B6">
-<animate attributeName="stop-color" values="#1038B6;#1038B6;#00FFFF;#1038B6;#1038B6;#1038B6" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="2.60s" dur="2.41s" repeatCount="indefinite" />
-</stop>
-</radialGradient>
-<radialGradient id="shape17grad" gradientUnits="userSpaceOnUse" r="45.221" cx="317.432" cy="97.185">
-<stop offset="0.441" stop-color="#007176">
-<animate attributeName="stop-color" values="#007176;#007176;#FEFEFE;#007176;#007176;#007176" fill="freeze" keyTimes="0;0.084;0.171;0.25;0.417;1" begin="2.40s" dur="2.40s" repeatCount="indefinite" />
-</stop>
-<stop offset="0.787" stop-color="#00FFFF">
-<animate attributeName="stop-color" values="#00FFFF;#00FFFF;#7CFFFF;#00FFFF;#00FFFF;#00FFFF" fill="freeze" keyTimes="0;0.084;0.171;0.25;0.417;1" begin="2.40s" dur="2.40s" repeatCount="indefinite" />
-</stop>
-<stop offset="1" stop-color="#1038B6">
-<animate attributeName="stop-color" values="#1038B6;#1038B6;#00FFFF;#1038B6;#1038B6;#1038B6" fill="freeze" keyTimes="0;0.084;0.171;0.25;0.417;1" begin="2.40s" dur="2.40s" repeatCount="indefinite" />
-</stop>
-</radialGradient>
-<radialGradient id="shape18grad" gradientUnits="userSpaceOnUse" r="47.708" cx="294.431" cy="133.786">
-<stop offset="0.441" stop-color="#007176">
-<animate attributeName="stop-color" values="#007176;#007176;#FEFEFE;#007176;#007176;#007176" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="2.20s" dur="2.41s" />
-</stop>
-<stop offset="0.787" stop-color="#00FFFF">
-<animate attributeName="stop-color" values="#00FFFF;#00FFFF;#7CFFFF;#00FFFF;#00FFFF;#00FFFF" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="2.20s" dur="2.41s" />
-</stop>
-<stop offset="1" stop-color="#1038B6">
-<animate attributeName="stop-color" values="#1038B6;#1038B6;#00FFFF;#1038B6;#1038B6;#1038B6" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="2.20s" dur="2.41s" />
-</stop>
-</radialGradient>
-<radialGradient id="shape19grad" gradientUnits="userSpaceOnUse" r="44.72" cx="313.382" cy="110.537">
-<stop offset="0.441" stop-color="#007176">
-<animate attributeName="stop-color" values="#007176;#007176;#FEFEFE;#007176;#007176;#007176" fill="freeze" keyTimes="0;0.084;0.171;0.25;0.417;1" begin="2s" dur="2.40s" repeatCount="indefinite" />
-</stop>
-<stop offset="0.787" stop-color="#00FFFF">
-<animate attributeName="stop-color" values="#00FFFF;#00FFFF;#7CFFFF;#00FFFF;#00FFFF;#00FFFF" fill="freeze" keyTimes="0;0.084;0.171;0.25;0.417;1" begin="2s" dur="2.40s" repeatCount="indefinite" />
-</stop>
-<stop offset="1" stop-color="#1038B6">
-<animate attributeName="stop-color" values="#1038B6;#1038B6;#00FFFF;#1038B6;#1038B6;#1038B6" fill="freeze" keyTimes="0;0.084;0.171;0.25;0.417;1" begin="2s" dur="2.40s" repeatCount="indefinite" />
-</stop>
-</radialGradient>
-<radialGradient id="shape20grad" gradientUnits="userSpaceOnUse" r="32.894" cx="285.431" cy="97.786">
-<stop offset="0.441" stop-color="#007176">
-<animate attributeName="stop-color" values="#007176;#007176;#FEFEFE;#007176;#007176;#007176" fill="freeze" keyTimes="0;0.084;0.171;0.25;0.417;1" begin="1.80s" dur="2.40s" repeatCount="indefinite" />
-</stop>
-<stop offset="0.787" stop-color="#00FFFF">
-<animate attributeName="stop-color" values="#00FFFF;#00FFFF;#7CFFFF;#00FFFF;#00FFFF;#00FFFF" fill="freeze" keyTimes="0;0.084;0.171;0.25;0.417;1" begin="1.80s" dur="2.40s" repeatCount="indefinite" />
-</stop>
-<stop offset="1" stop-color="#1038B6">
-<animate attributeName="stop-color" values="#1038B6;#1038B6;#00FFFF;#1038B6;#1038B6;#1038B6" fill="freeze" keyTimes="0;0.084;0.171;0.25;0.417;1" begin="1.80s" dur="2.40s" repeatCount="indefinite" />
-</stop>
-</radialGradient>
-<radialGradient id="shape21grad" gradientUnits="userSpaceOnUse" r="52.346" cx="249.431" cy="129.786">
-<stop offset="0.441" stop-color="#007176">
-<animate attributeName="stop-color" values="#007176;#007176;#FEFEFE;#007176;#007176;#007176" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="1.60s" dur="2.41s" repeatCount="indefinite" />
-</stop>
-<stop offset="0.787" stop-color="#00FFFF">
-<animate attributeName="stop-color" values="#00FFFF;#00FFFF;#7CFFFF;#00FFFF;#00FFFF;#00FFFF" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="1.60s" dur="2.41s" repeatCount="indefinite" />
-</stop>
-<stop offset="1" stop-color="#1038B6">
-<animate attributeName="stop-color" values="#1038B6;#1038B6;#00FFFF;#1038B6;#1038B6;#1038B6" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="1.60s" dur="2.41s" repeatCount="indefinite" />
-</stop>
-</radialGradient>
-<radialGradient id="shape22grad" gradientUnits="userSpaceOnUse" r="46.641" cx="214.281" cy="146.786">
-<stop offset="0.441" stop-color="#007176">
-<animate attributeName="stop-color" values="#007176;#007176;#FEFEFE;#007176;#007176;#007176" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="1.40s" dur="2.41s" repeatCount="indefinite" />
-</stop>
-<stop offset="0.787" stop-color="#00FFFF">
-<animate attributeName="stop-color" values="#00FFFF;#00FFFF;#7CFFFF;#00FFFF;#00FFFF;#00FFFF" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="1.40s" dur="2.41s" repeatCount="indefinite" />
-</stop>
-<stop offset="1" stop-color="#1038B6">
-<animate attributeName="stop-color" values="#1038B6;#1038B6;#00FFFF;#1038B6;#1038B6;#1038B6" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="1.40s" dur="2.41s" repeatCount="indefinite" />
-</stop>
-</radialGradient>
-<radialGradient id="shape23grad" gradientUnits="userSpaceOnUse" r="69.355" cx="147.431" cy="189.786">
-<stop offset="0.441" stop-color="#007176">
-<animate attributeName="stop-color" values="#007176;#007176;#FEFEFE;#007176;#007176;#007176" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="1.20s" dur="2.41s" repeatCount="indefinite" />
-</stop>
-<stop offset="0.787" stop-color="#00FFFF">
-<animate attributeName="stop-color" values="#00FFFF;#00FFFF;#7CFFFF;#00FFFF;#00FFFF;#00FFFF" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="1.20s" dur="2.41s" repeatCount="indefinite" />
-</stop>
-<stop offset="1" stop-color="#1038B6">
-<animate attributeName="stop-color" values="#1038B6;#1038B6;#00FFFF;#1038B6;#1038B6;#1038B6" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="1.20s" dur="2.41s" repeatCount="indefinite" />
-</stop>
-</radialGradient>
-<radialGradient id="shape24grad" gradientUnits="userSpaceOnUse" r="76.008" cx="102.43" cy="256.786">
-<stop offset="0.441" stop-color="#007176">
-<animate attributeName="stop-color" values="#007176;#007176;#FEFEFE;#007176;#007176;#007176" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="1s" dur="2.41s" repeatCount="indefinite" />
-</stop>
-<stop offset="0.787" stop-color="#00FFFF">
-<animate attributeName="stop-color" values="#00FFFF;#00FFFF;#7CFFFF;#00FFFF;#00FFFF;#00FFFF" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="1s" dur="2.41s" repeatCount="indefinite" />
-</stop>
-<stop offset="1" stop-color="#1038B6">
-<animate attributeName="stop-color" values="#1038B6;#1038B6;#00FFFF;#1038B6;#1038B6;#1038B6" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="1s" dur="2.41s" repeatCount="indefinite" />
-</stop>
-</radialGradient>
-<radialGradient id="shape25grad" gradientUnits="userSpaceOnUse" r="109.402" cx="102.431" cy="251.786">
-<stop offset="0.441" stop-color="#007176">
-<animate attributeName="stop-color" values="#007176;#007176;#FEFEFE;#007176;#007176;#007176" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="0.80s" dur="2.41s" repeatCount="indefinite" />
-</stop>
-<stop offset="0.787" stop-color="#00FFFF">
-<animate attributeName="stop-color" values="#00FFFF;#00FFFF;#7CFFFF;#00FFFF;#00FFFF;#00FFFF" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="0.80s" dur="2.41s" repeatCount="indefinite" />
-</stop>
-<stop offset="1" stop-color="#1038B6">
-<animate attributeName="stop-color" values="#1038B6;#1038B6;#00FFFF;#1038B6;#1038B6;#1038B6" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="0.80s" dur="2.41s" repeatCount="indefinite" />
-</stop>
-</radialGradient>
-<radialGradient id="shape26grad" gradientUnits="userSpaceOnUse" r="96.318" cx="75.431" cy="144.786">
-<stop offset="0.441" stop-color="#007176">
-<animate attributeName="stop-color" values="#007176;#007176;#FEFEFE;#007176;#007176;#007176" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="0.60s" dur="2.41s" repeatCount="indefinite" />
-</stop>
-<stop offset="0.787" stop-color="#00FFFF">
-<animate attributeName="stop-color" values="#00FFFF;#00FFFF;#7CFFFF;#00FFFF;#00FFFF;#00FFFF" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="0.60s" dur="2.41s" repeatCount="indefinite" />
-</stop>
-<stop offset="1" stop-color="#1038B6">
-<animate attributeName="stop-color" values="#1038B6;#1038B6;#00FFFF;#1038B6;#1038B6;#1038B6" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="0.60s" dur="2.41s" repeatCount="indefinite" />
-</stop>
-</radialGradient>
-<radialGradient id="shape27grad" gradientUnits="userSpaceOnUse" r="68.861" cx="111.455" cy="147.786">
-<stop offset="0.441" stop-color="#007176">
-<animate attributeName="stop-color" values="#007176;#007176;#FEFEFE;#007176;#007176;#007176" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="0.40s" dur="2.41s" repeatCount="indefinite" />
-</stop>
-<stop offset="0.787" stop-color="#00FFFF">
-<animate attributeName="stop-color" values="#00FFFF;#00FFFF;#7CFFFF;#00FFFF;#00FFFF;#00FFFF" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="0.40s" dur="2.41s" repeatCount="indefinite" />
-</stop>
-<stop offset="1" stop-color="#1038B6">
-<animate attributeName="stop-color" values="#1038B6;#1038B6;#00FFFF;#1038B6;#1038B6;#1038B6" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="0.40s" dur="2.41s" repeatCount="indefinite" />
-</stop>
-</radialGradient>
-<radialGradient id="shape28grad" gradientUnits="userSpaceOnUse" r="130.385" cx="154.431" cy="227.786">
-<stop offset="0.441" stop-color="#007176">
-<animate attributeName="stop-color" values="#007176;#007176;black;#FEFEFE;#007176;black;#007176" fill="freeze" keyTimes="0;0.083;0.088;0.171;0.249;0.415;1" begin="0.20s" dur="2.41s" repeatCount="indefinite" />
-</stop>
-<stop offset="0.787" stop-color="#00FFFF">
-<animate attributeName="stop-color" values="#00FFFF;#00FFFF;black;#7CFFFF;#00FFFF;black;#00FFFF" fill="freeze" keyTimes="0;0.083;0.088;0.171;0.249;0.415;1" begin="0.20s" dur="2.41s" repeatCount="indefinite" />
-</stop>
-<stop offset="1" stop-color="#1038B6">
-<animate attributeName="stop-color" values="#1038B6;#1038B6;black;#00FFFF;#1038B6;black;#1038B6" fill="freeze" keyTimes="0;0.083;0.088;0.171;0.249;0.415;1" begin="0.20s" dur="2.41s" repeatCount="indefinite" />
-</stop>
-</radialGradient>
-<radialGradient id="shape29grad" gradientUnits="userSpaceOnUse" r="208.195" cx="246.431" cy="414.786">
-<stop offset="0.441" stop-color="#007176">
-<animate attributeName="stop-color" values="#007176;black;#FEFEFE;#007176;black;#007176" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="0s" dur="2.41s" repeatCount="indefinite" />
-</stop>
-<stop offset="0.787" stop-color="#00FFFF">
-<animate attributeName="stop-color" values="#00FFFF;black;#7CFFFF;#00FFFF;black;#00FFFF" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="0s" dur="2.41s" repeatCount="indefinite" />
-</stop>
-<stop offset="1" stop-color="#1038B6">
-<animate attributeName="stop-color" values="#1038B6;black;#00FFFF;#1038B6;black;#1038B6" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="0s" dur="2.41s" repeatCount="indefinite" />
-</stop>
-</radialGradient>
-<radialGradient id="shape31grad" gradientUnits="userSpaceOnUse" r="10" cx="0" cy="0">
-<stop offset="0.055" stop-color="#F0EB8A">
-<animate attributeName="offset" values="0.055;0;0.055" fill="freeze" keyTimes="0;0.513;1" begin="0s" dur="0.80s" repeatCount="indefinite" />
-</stop>
-<stop offset="0.232" stop-color="#7F802A">
-<animate attributeName="offset" values="0.232;0.096;0.232" fill="freeze" keyTimes="0;0.513;1" begin="0s" dur="0.80s" repeatCount="indefinite" />
-</stop>
-<stop offset="0.614" stop-color="#2F1300">
-<animate attributeName="offset" values="0.614;0.369;0.614" fill="freeze" keyTimes="0;0.513;1" begin="0s" dur="0.80s" repeatCount="indefinite" />
-</stop>
-<stop offset="1" stop-color="black" />
-</radialGradient>
-<circle transform="translate(78,158)" id="shape31" fill="url(#shape31grad)" fill-rule="evenodd" cx="0" cy="0" r="10">
-</circle>
-</defs>
-<g>
-<rect transform="translate(176.408,175.674) scale(1.5)" fill="black" fill-rule="evenodd" x="-176" y="-176" width="352" height="352" />
-<g transform="translate(0,-14)">
-<use transform="translate(76.801,-205.199) scale(0.401)" xlink:href="#shape31">
-<animateTransform attributeName="transform" type="translate" additive="replace" values="108.001,-142;4.001,568.001" fill="freeze" keyTimes="0;1" begin="0.41s" dur="1s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="scale" additive="sum" values="0.401,0.401;1.201,1.201" fill="freeze" keyTimes="0;1" begin="0.41s" dur="1s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-78,-158;-78,-158" begin="0.41s" />
-</use>
-<use transform="translate(189.4,-262.599) scale(0.7)" xlink:href="#shape31">
-<animateTransform attributeName="transform" type="translate" additive="replace" values="244,-151.999;306.001,606" fill="freeze" keyTimes="0;1" begin="0.20s" dur="1.80s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="scale" additive="sum" values="0.7,0.7;1.201,1.201" fill="freeze" keyTimes="0;1" begin="0.20s" dur="1.80s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-78,-158;-78,-158" begin="0.20s" />
-</use>
-<use transform="translate(102,-320)" xlink:href="#shape31">
-<animateTransform attributeName="transform" type="translate" additive="replace" values="180,-161.999;212.001,594" fill="freeze" keyTimes="0;1" begin="0s" dur="1.41s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="scale" additive="sum" values="1,1;1.201,1.201" fill="freeze" keyTimes="0;1" begin="0s" dur="1.41s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-78,-158;-78,-158" begin="0s" />
-</use>
-<use transform="translate(169.001,-208.999) scale(0.5)" xlink:href="#shape31">
-<animateTransform attributeName="transform" type="translate" additive="replace" values="208.001,-129.999;226.001,552.001" fill="freeze" keyTimes="0;1" begin="1s" dur="3.01s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="scale" additive="sum" values="0.5,0.5;1.201,1.201" fill="freeze" keyTimes="0;1" begin="1s" dur="3.01s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-78,-158;-78,-158" begin="1s" />
-</use>
-<use transform="translate(104,-236) scale(0.5)" xlink:href="#shape31">
-<animateTransform attributeName="transform" type="translate" additive="replace" values="144,-155.999;124,582" fill="freeze" keyTimes="0;1" begin="0s" dur="5.41s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="scale" additive="sum" values="0.5,0.5;1,1" fill="freeze" keyTimes="0;1" begin="0s" dur="5.41s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-79.999,-160;-79.999,-160" begin="0s" />
-</use>
-<use transform="translate(138.001,-313.999)" xlink:href="#shape31">
-<animateTransform attributeName="transform" type="translate" additive="replace" values="216.001,-155.999;298,580" fill="freeze" keyTimes="0;1" begin="0.20s" dur="3.80s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="scale" additive="sum" values="1,1;1.201,1.201" fill="freeze" keyTimes="0;1" begin="0.20s" dur="3.80s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-78,-158;-78,-158" begin="0.20s" />
-</use>
-<use transform="translate(28.4,460.4) scale(0.7)" xlink:href="#shape31">
-<animateTransform attributeName="transform" type="translate" additive="replace" values="83.001,571;83.001,571" fill="freeze" keyTimes="0;1" begin="0.40s" dur="4.20s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="scale" additive="sum" values="0.7,0.7;1,1" fill="freeze" keyTimes="0;1" begin="0.40s" dur="4.20s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-78,-158;-78,-158" begin="0.40s" />
-</use>
-<use transform="translate(99.4,-240.6) scale(0.7)" xlink:href="#shape31">
-<animateTransform attributeName="transform" type="translate" additive="replace" values="154,-130;83.001,571" fill="freeze" keyTimes="0;1" begin="0.81s" dur="3.19s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="scale" additive="sum" values="0.7,0.7;1,1" fill="freeze" keyTimes="0;1" begin="0.81s" dur="3.19s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-78,-158;-78,-158" begin="0.81s" />
-</use>
-</g>
-<g id="Layer_1">
-<path transform="translate(-17,0)" fill-opacity="0" display="none" fill="url(#shape14grad)" fill-rule="evenodd" d="M287.352,24.92C286.872,23.718,287.086,22.351,286.662,21.381C286.238,20.409,284.829,18.988,284.313,18.866C283.796,18.744,283.779,17.433,282.661,16.625C281.544,15.818,276.387,26.148,276.387,26.148C276.387,26.148,280.549,16.345,279.193,11.015C278.287,7.466,274.017,2.932,274.017,2.932C274.017,2.932,273.698,0.133,273.18,0.011C272.663,-0.111,272.264,0.665,271.109,6.494C270.185,11.149,269.821,15.722,269.683,19.077C269.293,18.282,268.732,17.388,268.176,17.16C268.374,15.148,268.475,13.286,268.229,12.242C267.922,10.949,265.382,7.213,265.293,6.212C265.201,5.21,265.336,3.718,264.54,3.858C262.84,4.155,263.025,11.507,264.057,15.616C264.659,18.015,266.394,22.9,267.179,24.825C267.251,26.52,267.729,28.833,269.057,31.827C270.873,35.917,276.138,38.831,276.936,38.151C277.095,38.014,277.131,37.704,277.077,37.271C277.747,37.791,278.384,38.045,278.94,37.97C280.403,37.77,282.886,36.939,284.745,35.526C286.602,34.113,287.898,30.932,288.117,30.003C288.334,29.073,287.831,26.122,287.352,24.92M274.7,29.847C274.685,29.799,274.671,29.75,274.658,29.705C274.767,29.525,274.873,29.344,274.976,29.157C274.878,29.393,274.784,29.625,274.7,29.847">
-<animate attributeName="display" values="none;inline;none;none" fill="freeze" keyTimes="0;0.083;0.415;1" begin="3s" dur="2.41s" repeatCount="indefinite" calcMode="discrete" />
-<animate attributeName="fill-opacity" values="0;0;1;0;0" fill="freeze" keyTimes="0;0.084;0.171;0.417;1" begin="3s" dur="2.40s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="translate" additive="replace" values="258.72,19.126;258.72,19.126;258.72,40.126;258.72,40.126" fill="freeze" keyTimes="0;0.084;0.417;1" begin="3s" dur="2.40s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-275.719,-19.125;-275.719,-19.125" begin="3s" />
-</path>
-<path transform="translate(-17,0)" fill-opacity="0" display="none" fill="url(#shape15grad)" fill-rule="evenodd" d="M300.964,73.274C296.739,70.927,287.821,66,287.821,66L287.955,66.375C286.03,65.608,283.998,65.101,283.833,65.764C283.833,65.764,283.964,66.327,284.296,67.06C281.163,67.504,272.303,69.493,264.353,78.2C254.497,88.996,256.843,90.403,257.547,91.342C258.252,92.28,261.773,91.575,262.711,91.575C263.649,91.575,268.107,92.045,270.691,91.107C271.722,90.732,274.586,87.774,277.655,84.118C276.491,88.351,277.003,91.016,278.2,91.813C279.607,92.75,283.128,92.048,284.537,91.813C285.945,91.578,291.107,88.996,293.924,84.538C296.671,80.187,295.618,74.283,293.603,71.6C293.644,71.591,293.688,71.582,293.726,71.57C295.527,72.497,297.428,73.555,298.619,74.448C301.434,76.558,309.413,81.958,309.413,80.314C309.412,78.67,305.188,75.622,300.964,73.274z">
-<animate attributeName="display" values="none;inline;none;none" fill="freeze" keyTimes="0;0.083;0.415;1" begin="2.80s" dur="2.41s" repeatCount="indefinite" calcMode="discrete" />
-<animate attributeName="fill-opacity" values="0;0;1;0;0" fill="freeze" keyTimes="0;0.083;0.171;0.415;1" begin="2.80s" dur="2.41s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="translate" additive="replace" values="266.103,78.875;266.103,78.875;266.103,99.875;266.103,99.875" fill="freeze" keyTimes="0;0.083;0.415;1" begin="2.80s" dur="2.41s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-283.102,-78.874;-283.102,-78.874" begin="2.80s" />
-</path>
-<path transform="translate(-17)" fill-opacity="0" display="none" fill="url(#shape16grad)" fill-rule="evenodd" d="M339.739,51.13C339.073,49.846,333.471,54.219,327.012,59.371C321.369,63.873,318.253,67.092,317.556,67.833C317.551,67.83,317.546,67.827,317.542,67.823C318.330,66.853,322.653,61.601,326.389,58.279C330.51,54.612,335.836,47.862,336.96,44.393C338.084,40.924,335.588,39.602,335.391,37.617C335.195,35.631,334.995,33.644,333.903,33.257C332.812,32.869,326.242,41.489,321.078,52.056C316.454,61.515,316.415,66.302,316.457,67.203C316.063,67.013,315.749,66.911,315.57,66.948C314.967,67.07,314.567,67.301,314.332,67.467C310.747,66.274,298.369,62.256,291.097,61.145C282.523,59.835,277.805,57.544,278.238,59.687C278.670,61.829,280.228,61.516,281.712,62.836C283.194,64.157,290.368,67.575,296.797,68.304C301.863,68.879,310.967,68.89,314.599,68.869C314.670,68.981,314.745,69.096,314.827,69.212C312.157,69.285,306.998,69.452,302.761,69.735C296.763,70.134,293.140,70.258,293.375,71.425C293.610,72.593,298.365,74.066,301.096,75.541C303.826,77.017,308.815,78.644,315.397,77.114C320.8,75.857,320.792,74.192,320.162,73.054C320.890,72.782,321.57,72.179,321.712,71.667C325.986,73.773,333.259,69.426,336.806,65.703C341.823,60.435,341.074,55.724,340.838,54.555C340.598,53.388,340.403,52.415,339.739,51.13z">
-<animate attributeName="display" values="none;inline;none;none" fill="freeze" keyTimes="0;0.083;0.415;1" begin="2.60s" dur="2.41s" repeatCount="indefinite" calcMode="discrete" />
-<animate attributeName="fill-opacity" values="0;0;1;0;0" fill="freeze" keyTimes="0;0.083;0.171;0.415;1" begin="2.60s" dur="2.41s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="translate" additive="replace" values="292.626,55.49;292.626,55.49;292.626,76.49;292.626,76.49" fill="freeze" keyTimes="0;0.083;0.415;1" begin="2.60s" dur="2.41s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-309.625,-55.489;-309.625,-55.489" begin="2.60s" />
-</path>
-<path transform="translate(-17,0)" fill-opacity="0" display="none" fill="url(#shape17grad)" fill-rule="evenodd" d="M354.278,68.531C352.749,66.567,353.403,64.6,350.783,64.381C348.165,64.162,344.452,71.805,341.612,75.736C341.342,76.112,341.05,76.550,340.753,77.013C343.162,71.041,345.461,64.692,345.981,62.198C347.073,56.957,343.581,51.062,342.27,49.533C340.959,48.004,340.085,44.51,338.121,44.51C336.155,44.51,333.753,55.865,332.443,65.691C331.441,73.212,331.334,82.005,331.339,85.72C330.695,84.991,330.039,84.211,329.388,83.379C325.991,79.039,316.066,70.931,316.941,73.116C318.32,76.569,327.639,85.781,331.353,88.401C335.064,91.021,337.465,91.675,337.465,91.675C337.465,91.675,336.452,90.875,334.956,89.463C334.968,89.45,334.98,89.43,334.992,89.416C335.514,89.687,336.24,90.127,337.029,90.803C341.538,94.669,352.969,87.091,355.37,82.506C357.77,77.919,355.805,70.497,354.278,68.531z">
-<animate attributeName="display" values="none;inline;none;none" fill="freeze" keyTimes="0;0.083;0.415;1" begin="2.40s" dur="2.41s" repeatCount="indefinite" calcMode="discrete" />
-<animate attributeName="fill-opacity" values="0;0;1;0;0" fill="freeze" keyTimes="0;0.084;0.171;0.417;1" begin="2.40s" dur="2.40s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="translate" additive="replace" values="319.711,68.147;319.711,68.147;319.711,89.147;319.711,89.147" fill="freeze" keyTimes="0;0.084;0.417;1" begin="2.40s" dur="2.40s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-336.71,-68.146;-336.71,-68.146" begin="2.40s" />
-</path>
-<path transform="translate(-17,0.001)" fill-opacity="0" display="none" fill="url(#shape18grad)" fill-rule="evenodd" d="M335.174,101.739C333.413,99.475,334.168,97.212,331.15,96.96C328.132,96.709,323.858,105.512,320.589,110.038C320.276,110.471,319.945,110.96,319.603,111.494C322.375,104.621,325.020,97.318,325.618,94.448C326.875,88.412,322.853,81.622,321.344,79.863C319.835,78.102,318.828,74.078,316.566,74.078C314.302,74.078,311.538,87.155,310.028,98.471C308.874,107.133,308.751,117.26,308.756,121.538C308.015,120.698,307.259,119.8,306.509,118.841C302.596,113.842,291.167,104.507,292.175,107.021C293.765,110.997,304.496,121.606,308.772,124.624C313.046,127.642,315.812,128.396,315.812,128.396C315.812,128.396,314.402,126.611,315.31,127.39C320.503,131.843,333.667,123.115,336.433,117.834C339.196,112.552,336.934,104.001,335.174,101.739z">
-<animate attributeName="display" values="none;inline;none;none" fill="freeze" keyTimes="0;0.083;0.415;1" begin="2.20s" dur="2.41s" repeatCount="indefinite" calcMode="discrete" />
-<animate attributeName="fill-opacity" values="0;0;1;0;0" fill="freeze" keyTimes="0;0.083;0.171;0.415;1" begin="2.20s" dur="2.41s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="translate" additive="replace" values="297.944,101.298;297.944,101.298;297.944,122.298;297.944,122.298" fill="freeze" keyTimes="0;0.083;0.415;1" begin="2.20s" dur="2.41s" />
-<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-314.943,-101.297;-314.943,-101.297" begin="2.20s" />
-</path>
-<path transform="translate(-17)" fill-opacity="0" display="none" fill="url(#shape19grad)" fill-rule="evenodd" d="M339.938,142.321C338.507,133.573,332.484,125.423,328.606,123.674C327.135,122.2,324.415,120.467,322.566,120.227C319.908,119.881,314.211,118.471,313.106,121.254C312.888,121.8,313.351,122.326,314.178,122.816C312.469,125.88,308.482,133.788,307.468,142.474C306.167,153.618,308.585,163.633,310.866,163.260C313.149,162.887,321.097,158.984,325.241,157.265C325.618,157.109,325.967,156.864,326.303,156.579C326.523,156.66,326.744,156.719,326.977,156.723C329.847,156.773,341.512,151.954,339.938,142.321z">
-<animate attributeName="display" values="none;inline;none;none" fill="freeze" keyTimes="0;0.083;0.415;1" begin="2s" dur="2.41s" repeatCount="indefinite" calcMode="discrete" />
-<animate attributeName="fill-opacity" values="0;0;1;0;0" fill="freeze" keyTimes="0;0.084;0.171;0.417;1" begin="2s" dur="2.40s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="translate" additive="replace" values="306.54,141.414;306.54,141.414;306.54,162.414;306.54,162.414" fill="freeze" keyTimes="0;0.084;0.417;1" begin="2s" dur="2.40s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-323.539,-141.413;-323.539,-141.413" begin="2s" />
-</path>
-<path transform="translate(-17)" fill-opacity="0" display="none" fill="url(#shape20grad)" fill-rule="evenodd" d="M321.998,98.458C321.478,96.639,313.163,100.794,303.547,105.733C295.15,110.046,290.322,113.366,289.235,114.137C289.230,114.133,289.224,114.127,289.219,114.123C290.485,113.081,297.385,107.465,303.028,104.173C309.264,100.535,317.841,93.258,320.18,89.101C322.519,84.943,319.659,82.604,319.918,80.005C320.18,77.406,320.439,74.807,319.140,74.028C317.84,73.249,307.187,82.604,297.829,94.819C289.459,105.745,288.167,111.873,287.986,113.046C287.531,112.7,287.153,112.489,286.916,112.489C286.127,112.489,285.533,112.68,285.187,112.83C280.882,110.365,266.064,102.02,257.034,98.716C246.377,94.818,240.92,90.659,240.92,93.518C240.92,96.377,243.002,96.377,244.561,98.456C246.12,100.534,254.434,106.772,262.492,109.371C268.84,111.419,280.51,113.788,285.173,114.701C285.235,114.864,285.301,115.029,285.376,115.2C281.928,114.603,275.267,113.481,269.767,112.749C261.972,111.709,257.293,110.93,257.293,112.489C257.293,114.048,263.011,117.166,266.129,119.765C269.247,122.363,275.224,125.741,284.06,125.482C291.294,125.269,291.734,123.141,291.228,121.52C292.226,121.361,293.254,120.749,293.573,120.133C298.511,123.934,308.954,120.244,314.464,116.387C322.261,110.929,322.522,104.693,322.522,103.134C322.519,101.574,322.519,100.276,321.998,98.458z">
-<animate attributeName="display" values="none;inline;none;none" fill="freeze" keyTimes="0;0.083;0.415;1" begin="1.80s" dur="2.41s" repeatCount="indefinite" calcMode="discrete" />
-<animate attributeName="fill-opacity" values="0;0;1;0;0" fill="freeze" keyTimes="0;0.084;0.171;0.417;1" begin="1.80s" dur="2.40s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="translate" additive="replace" values="264.721,99.755;264.721,99.755;264.721,120.755;264.721,120.755" fill="freeze" keyTimes="0;0.084;0.417;1" begin="1.80s" dur="2.40s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-281.72,-99.754;-281.72,-99.754" begin="1.80s" />
-</path>
-<path transform="translate(-17)" fill-opacity="0" fill="url(#shape21grad)" fill-rule="evenodd" d="M284.684,156.974C275.628,152.010,260.178,147.911,255.268,146.680C254.376,145.512,253.282,144.709,252.149,145.254C251.643,145.496,251.496,146.172,251.66,147.046C247.306,149.794,237.292,156.489,229.173,164.733C218.48,175.589,216.673,181.845,217.523,182.99C218.374,184.135,220.234,182.137,221.119,183.491C222.004,184.842,223.106,184.881,224.498,184.023C225.893,183.164,234.972,172.191,239.27,166.398C242.45,162.104,248.916,152.825,252.059,148.294C252.186,148.588,252.33,148.888,252.507,149.193C250.649,152.112,245.254,160.594,241.019,167.339C235.822,175.622,230.833,185.152,231.964,186.68C233.099,188.205,239.812,183.735,246.875,172.171C252.974,162.188,254.835,155.267,254.985,152.088C255.423,152.446,255.901,152.778,256.416,153.071C258.301,154.141,257.640,152.221,257.338,150.92C260.229,153.638,267.989,160.815,272.352,163.72C277.787,167.342,290.717,175.108,292.148,173.175C292.919,172.137,280.396,164.582,275.426,161.104C271.426,158.304,260.651,151.472,256.588,148.907C256.404,148.517,256.194,148.112,255.958,147.711C259.462,149.918,266.469,154.338,272.608,158.243C281.202,163.708,292.82,170.188,294.317,169.952C295.813,169.716,295.751,168.019,295.751,168.019C295.751,168.019,296.964,167.402,297.679,166.435C298.395,165.471,295.558,162.935,284.684,156.974z">
-<animate attributeName="display" values="inline;none;none" fill="freeze" keyTimes="0;0.362;1" begin="1.80s" dur="2.21s" repeatCount="indefinite" calcMode="discrete" />
-<animate attributeName="fill-opacity" values="0;0;1;0;0" fill="freeze" keyTimes="0;0.083;0.171;0.415;1" begin="1.60s" dur="2.41s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="translate" additive="replace" values="240.557,166.025;240.557,166.025;240.557,187.025;240.557,187.025" fill="freeze" keyTimes="0;0.083;0.415;1" begin="1.60s" dur="2.41s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-257.556,-166.024;-257.556,-166.024" begin="1.60s" />
-</path>
-<path transform="translate(-17)" fill-opacity="0" display="none" fill="url(#shape22grad)" fill-rule="evenodd" d="M204.655,152.633C209.582,136.8,207.386,113.728,205.828,114.336C204.269,114.945,205.048,127.709,203.488,135.915C201.529,146.208,198.416,157.06,198.061,158.288C195.326,153.563,188.238,141.053,183.599,130.445C177.749,117.072,173.071,95.492,171.512,94.581C169.95,93.668,171.249,98.179,168.78,99.14C161.762,101.876,166.754,126.048,174.24,136.221C185.559,151.604,192.125,157.555,195.547,159.844C195.528,159.869,195.508,159.891,195.489,159.917C192.181,157.64,183.478,151.368,176.969,144.122C168.78,135.005,163.712,120.415,160.592,120.415C157.473,120.415,157.473,131.661,158.253,139.867C159.033,148.074,178.141,167.222,187.499,167.222C189.885,167.222,191.605,167.063,192.854,166.827C192.871,166.99,192.9,167.131,192.958,167.222C193.739,168.438,196.078,169.043,198.418,166.916C200.167,165.327,201.693,162.043,200.404,159.976C201.792,158.922,203.357,156.805,204.655,152.633z">
-<animate attributeName="display" values="none;inline;none;none" fill="freeze" keyTimes="0;0.083;0.415;1" begin="1.40s" dur="2.41s" repeatCount="indefinite" calcMode="discrete" />
-<animate attributeName="fill-opacity" values="0;0;1;0;0" fill="freeze" keyTimes="0;0.083;0.171;0.415;1" begin="1.40s" dur="2.41s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="translate" additive="replace" values="165.75,131.399;165.75,131.399;165.75,152.399;165.75,152.399" fill="freeze" keyTimes="0;0.083;0.415;1" begin="1.40s" dur="2.41s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-182.749,-131.398;-182.749,-131.398" begin="1.40s" />
-</path>
-<path transform="translate(-17)" fill-opacity="0" display="none" fill="url(#shape23grad)" fill-rule="evenodd" d="M185.788,225.131C169.144,217.941,156.801,215.978,154.696,215.681C153.969,214.976,152.350,215.053,151.664,215.865C150.811,216.873,149.669,218.334,148.651,219.844C145.011,222.327,134.085,229.944,129.968,234.622C124.996,240.27,119.347,247.954,120.476,252.248C121.606,256.543,130.872,244.113,134.036,239.368C136.312,235.953,142.799,228.795,146.259,225.047C146.259,225.667,146.507,226.111,147.144,226.258C147.848,226.421,148.683,226.008,149.541,225.275C150.040,227.124,152.153,231.239,159.346,237.107C167.933,244.114,179.91,247.728,182.171,244.564C184.174,241.758,179.068,237.707,173.788,233.2C180.594,237.076,186.669,240.527,188.046,241.629C191.436,244.34,196.859,243.211,199.347,242.984C201.832,242.758,207.031,243.663,208.384,242.081C209.741,240.499,204.092,233.042,185.788,225.131z">
-<animate attributeName="display" values="none;inline;none;none" fill="freeze" keyTimes="0;0.083;0.415;1" begin="1.20s" dur="2.41s" repeatCount="indefinite" calcMode="discrete" />
-<animate attributeName="fill-opacity" values="0;0;1;0;0" fill="freeze" keyTimes="0;0.083;0.171;0.415;1" begin="1.20s" dur="2.41s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="translate" additive="replace" values="147.454,234.163;147.454,234.163;147.454,255.163;147.454,255.163" fill="freeze" keyTimes="0;0.083;0.415;1" begin="1.20s" dur="2.41s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-164.453,-234.162;-164.453,-234.162" begin="1.20s" />
-</path>
-<path transform="translate(-16.999)" fill-opacity="0" display="none" fill="url(#shape24grad)" fill-rule="evenodd" d="M136.084,208.571C135,208.028,127.951,211.824,121.989,215.62C116.252,219.271,102.492,224.926,101.456,225.349C101.658,224.999,101.77,224.742,101.77,224.613C101.77,223.58,99.466,222.414,98.411,223.58C98.338,223.66,98.252,223.757,98.173,223.845C95.839,217.487,88.546,205.975,76.993,198.272C57.476,185.26,53.681,183.635,50.429,185.26C47.177,186.887,49.345,189.057,47.718,191.766C46.092,194.477,40.728,197.774,41.213,200.44C42.297,206.405,55.309,211.825,65.609,216.706C70.463,219.005,77.604,221.665,83.798,223.835C77.44,222.005,69.867,219.866,63.983,218.331C51.513,215.077,38.608,207.927,33.624,212.909C29.288,217.247,30.691,224.399,35.25,228.089C46.635,237.305,75.910,239.474,87.293,235.138C88.999,234.488,90.395,233.864,91.545,233.269C91.516,233.716,91.663,234.042,92.082,234.174C93.968,234.769,98.136,230.8,98.136,230.8C98.136,230.8,103.015,228.089,108.979,225.378C114.941,222.668,137.168,209.114,136.084,208.571z">
-<animate attributeName="display" values="none;inline;none;none" fill="freeze" keyTimes="0;0.083;0.415;1" begin="1s" dur="2.41s" repeatCount="indefinite" calcMode="discrete" />
-<animate attributeName="fill-opacity" values="0;0;1;0;0" fill="freeze" keyTimes="0;0.083;0.171;0.415;1" begin="1s" dur="2.41s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="translate" additive="replace" values="66.558,211.01;66.558,211.01;66.558,232.01;66.558,232.01" fill="freeze" keyTimes="0;0.083;0.415;1" begin="1s" dur="2.41s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-83.557,-211.009;-83.557,-211.009" begin="1s" />
-</path>
-<path transform="translate(-16.999,0)" fill-opacity="0" display="none" fill="url(#shape25grad)" fill-rule="evenodd" d="M123.513,141.868C120.346,141.868,119.819,151.898,116.652,154.010C113.485,156.12,111.902,160.344,109.791,164.567C109.192,165.763,106.22,170.479,102.208,176.693C93.879,177.317,82.958,193.273,79.443,197.292C78.331,198.563,75.848,201.901,72.905,206.11C71.897,206.514,70.947,207.105,70.202,207.849C70.082,207.969,69.954,208.104,69.831,208.23C68.543,202.301,64.094,182.551,59.644,171.428C54.367,158.232,51.746,143.98,44.337,143.98C39.059,143.98,40.240,147.861,38.003,149.258C33.781,151.898,25.335,163.510,25.335,170.37C25.335,173.719,30.228,184.724,36.589,195.796C27.786,186.619,18.782,178.516,14.252,178.29C3.697,177.762,0,195.181,0,202.571C0,209.961,17.948,237.407,31.143,238.465C44.34,239.519,52.257,231.603,52.257,231.603L58.375,223.736C57.052,226.103,55.849,228.571,54.875,231.076C53.345,235.012,54.084,239.785,57.25,239.785C57.8,239.785,58.831,239.046,60.146,237.814C66.291,234.68,77.332,222.099,77.332,222.099C78.137,220.489,83.358,213.655,89.04,205.76C97.389,198.03,109.648,185.771,114.012,176.707C120.875,162.454,126.681,141.868,123.513,141.868z">
-<animate attributeName="display" values="none;inline;none;none" fill="freeze" keyTimes="0;0.083;0.415;1" begin="0.80s" dur="2.41s" repeatCount="indefinite" calcMode="discrete" />
-<animate attributeName="fill-opacity" values="0;0;1;0;0" fill="freeze" keyTimes="0;0.083;0.171;0.415;1" begin="0.80s" dur="2.41s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="translate" additive="replace" values="45.165,190.827;45.165,190.827;45.165,211.827;45.165,211.827" fill="freeze" keyTimes="0;0.083;0.415;1" begin="0.80s" dur="2.41s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-62.164,-190.826;-62.164,-190.826" begin="0.80s" />
-</path>
-<path transform="translate(-17)" fill-opacity="0" display="none" fill="url(#shape26grad)" fill-rule="evenodd" d="M89.128,218.588C84.436,202.172,74.262,188.196,70.005,182.833C71.445,181.629,72.17,180.471,71.579,179.486C68.571,174.471,58.043,178.984,53.031,180.488C49.578,181.524,44.937,185.65,42.546,188.938C35.536,193.397,25.96,210.752,25.96,228.115C25.96,247.165,50.526,253.181,56.041,252.178C56.474,252.099,56.883,251.943,57.273,251.726C58.013,252.169,58.772,252.497,59.548,252.68C68.07,254.685,84.616,259.698,89.128,259.698C93.639,259.698,95.144,239.646,89.128,218.588z">
-<animate attributeName="display" values="none;inline;none;none" fill="freeze" keyTimes="0;0.083;0.415;1" begin="0.60s" dur="2.41s" repeatCount="indefinite" calcMode="discrete" />
-<animate attributeName="fill-opacity" values="0;0;1;0;0" fill="freeze" keyTimes="0;0.083;0.171;0.415;1" begin="0.60s" dur="2.41s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="translate" additive="replace" values="42.518,218.451;42.518,218.451;42.518,239.451;42.518,239.451" fill="freeze" keyTimes="0;0.083;0.415;1" begin="0.60s" dur="2.41s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-59.517,-218.45;-59.517,-218.45" begin="0.60s" />
-</path>
-<path transform="translate(-17)" fill-opacity="0" display="none" fill="url(#shape27grad)" fill-rule="evenodd" d="M195.321,108.811C194.831,106.353,165.333,130.443,152.06,139.292C140.519,146.987,120.438,162.849,115.39,166.861C114.51,165.532,113.187,164.59,111.256,164.364C110.407,164.264,109.579,164.812,108.822,165.766C103.921,158.744,92.788,144.701,74.877,132.409C49.805,115.202,40.956,109.795,37.023,110.777C33.089,111.76,36.531,116.676,36.04,119.135C35.548,121.593,31.615,125.526,33.09,128.967C34.564,132.408,58.162,149.124,72.910,154.531C83.764,158.511,99.667,165.149,107.314,168.38C107.101,168.862,106.902,169.373,106.716,169.899C99.049,167.347,76.176,159.747,66.028,156.5C53.737,152.566,30.633,143.226,28.174,145.685C25.716,148.143,31.122,161.416,33.09,164.366C35.057,167.316,64.555,184.03,79.303,184.03C90.765,184.03,100.427,181.952,105.556,179.871C105.636,180.142,105.733,180.384,105.849,180.589C107.816,184.03,113.714,183.539,115.189,181.573C115.395,181.299,115.629,180.778,115.858,180.094C123.72,179.992,142.522,167.179,146.653,163.874C151.570,159.942,173.693,147.651,172.709,144.702C171.726,141.753,158.943,151.093,151.570,154.534C145.295,157.462,123.016,166.792,116.506,169.511C116.293,168.653,115.989,167.848,115.57,167.142C121.986,164.004,149.581,150.406,163.859,141.752C168.78,138.77,188.931,120.612,190.407,117.663C191.879,114.711,195.814,111.269,195.321,108.811z">
-<animate attributeName="display" values="none;inline;none;none" fill="freeze" keyTimes="0;0.083;0.415;1" begin="0.40s" dur="2.41s" repeatCount="indefinite" calcMode="discrete" />
-<animate attributeName="fill-opacity" values="0;0;1;0;0" fill="freeze" keyTimes="0;0.083;0.171;0.415;1" begin="0.40s" dur="2.41s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="translate" additive="replace" values="94.46,146.421;94.46,146.421;94.46,167.421;94.46,167.421" fill="freeze" keyTimes="0;0.083;0.415;1" begin="0.40s" dur="2.41s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-111.459,-146.42;-111.459,-146.42" begin="0.40s" />
-</path>
-<path transform="translate(-17)" display="none" fill="url(#shape28grad)" fill-rule="evenodd" d="M230.463,308.050C211.309,292.726,173.62,275.792,160.803,270.245C159.696,267.796,158.049,266.092,155.642,266.387C154.188,266.566,153.267,268.244,152.999,270.713C144.493,274.32,114.633,287.612,89.603,306.494C60.085,328.765,53.352,343.264,54.905,346.369C56.459,349.477,61.638,345.335,63.193,348.959C64.744,352.584,67.334,353.102,70.96,351.549C74.585,349.994,98.924,325.655,111.354,313.227C121.694,302.889,152.918,272.56,152.924,272.775C145.644,281.943,128.487,303.424,116.532,317.373C100.996,335.498,85.46,356.73,87.531,360.873C89.602,365.016,107.209,356.73,128.442,331.355C148.867,306.943,155.392,289.727,155.859,283.382C156.687,284.953,157.697,286.49,158.91,287.915C162.368,291.973,162.362,286.693,162.764,283.442C162.874,282.558,162.891,280.832,162.726,278.805C164.269,280.906,184.297,308.082,195.247,318.537C206.639,329.413,234.087,353.232,238.23,349.091C240.458,346.862,213.89,323.716,203.533,313.357C190.325,300.151,161.724,272.846,161.659,272.619C170.392,279.72,188.257,294.424,201.461,306.495C219.588,323.067,244.446,343.264,248.068,343.264C251.693,343.264,252.213,339.121,252.213,339.121C252.213,339.121,255.318,338.085,257.391,336.014C259.464,333.942,253.769,326.692,230.463,308.050z">
-<animate attributeName="display" values="none;inline;none;none" fill="freeze" keyTimes="0;0.083;0.415;1" begin="0.20s" dur="2.41s" repeatCount="indefinite" calcMode="discrete" />
-<animateTransform attributeName="transform" type="translate" additive="replace" values="139.263,314.101;139.263,314.101;139.263,335.101;139.263,335.101" fill="freeze" keyTimes="0;0.083;0.415;1" begin="0.20s" dur="2.41s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-156.262,-314.1;-156.262,-314.1" begin="0.20s" />
-</path>
-<path transform="translate(-34,-9)" display="none" fill="url(#shape29grad)" fill-rule="evenodd" d="M412.385,306C408.991,299.709,409.299,292.079,406.354,287.018C403.408,281.953,394.783,275.050,391.875,274.709C388.966,274.368,388.038,267.185,381.399,263.461C374.787,259.753,353.191,319.164,353.006,319.672C353.155,319.165,369.581,263.133,358.803,234.872C351.596,215.972,325.291,193.806,325.291,193.806C325.291,193.806,321.76,178.653,318.849,178.312C315.938,177.971,314.235,182.486,311.583,215.194C309.47,241.292,310.361,266.641,311.731,285.133C309.096,281.029,305.443,276.390,302.253,275.483C302.063,264.352,301.435,254.114,299.425,248.556C296.927,241.656,280.624,222.771,279.494,217.332C278.360,211.893,278.155,203.617,273.875,204.883C264.734,207.593,270.405,247.815,278.665,269.708C283.477,282.458,296.066,308.097,301.609,318.207C303.076,327.465,307.187,339.884,316.379,355.486C328.929,376.777,359.66,389.432,363.608,385.189C364.396,384.343,364.425,382.644,363.853,380.3C367.849,382.715,371.489,383.691,374.485,382.925C382.386,380.902,395.487,374.772,404.786,365.837C414.085,356.9,419.174,338.632,419.786,333.397C420.4,328.165,415.776,312.293,412.385,306z">
-<animate attributeName="display" values="none;inline;none;none" fill="freeze" keyTimes="0;0.083;0.415;1" begin="0s" dur="2.41s" repeatCount="indefinite" calcMode="discrete" />
-<animateTransform attributeName="transform" type="translate" additive="replace" values="312.443,272.37;312.443,272.37;312.443,293.37;312.443,293.37" fill="freeze" keyTimes="0;0.083;0.415;1" begin="0s" dur="2.41s" repeatCount="indefinite" />
-<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-346.442,-281.369;-346.442,-281.369" begin="0s" />
-</path>
-</g>
-</g>
-</svg>
Binary file animations/hypnose.swf has changed
Binary file conf/screensaver.confml has changed
Binary file conf/screensaver_101F8770.crml has changed
--- a/group/ScreensaverConfig.hrh Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* configurations macros for screensaver
-*
-*/
-
-#ifndef SCREENSAVERCONFIG_HRH
-#define SCREENSAVERCONFIG_HRH
-
-// Enable logging
-// #define LOGGING_ENABLED
-
-// Log layout rects
-// #define LAYOUT_TRACING
-
-// Test content (faster activation, partial mode test line,
-// some indicators on by default, layout area borders drawn)
-// #define TEST_CONTENT
-
-// For devices with a twist display. This will cause Screensaver to
-// stop slightly faster than with user activity created by the display
-// position change
-// NOTE that if screensaver is running on device default orientation (ie not
-// forced), and there is an application that changes screen orientation,
-// screensaver will commit suicide if it is activated on top of that
-// application and this flag is defined.
-#define FAST_STOP_ON_SCREENDEVICE_CHANGE
-
-// ONLY ONE OF THE POWERSAVE CONFIGURATIONS CAN BE ON AT A TIME
-//
-// Power save area should always be based on width of the bar, not height
-// (for landscape displays with portrait power save)
-// #define POWERSAVE_BASED_ON_WIDTH
-//
-// Power save area should be based on width of the bar, if display
-// has been rotated (for rotatable displays with power save in original
-// orientation only)
-// #define POWERSAVE_BASED_ON_WIDTH_ROTATED
-
-
-// DEFAULT ORIENTATION (not defined = device default)
-//
-// Always stay in portrait (overrides landscape if both defined)
-// defining this attribute as lead HW for 3.2 supports screensaver only in portrait mode
- #define ALWAYS_PORTRAIT
-//
-// Always stay in landscape
-//#define ALWAYS_LANDSCAPE
-
-#endif // SCREENSAVERCONFIG_HRH
--- a/group/backup_registration.xml Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-<?xml version="1.0" standalone="yes"?>
-<backup_registration version="1.0">
- <proxy_data_manager sid = "0x10202BE9" />
- <restore requires_reboot = "no"/>
-</backup_registration>
--- a/group/bld.inf Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* Screensaver build information
-*
-*/
-
-#include <platform_paths.hrh>
-
-#ifndef TOOLS
-// Plugins
-// Not compiled on 3.0, also only if S60 browser is used (media plugins present)
-#ifndef __SERIES60_30__
-#ifdef __SERIES60_NATIVE_BROWSER
-#include "../scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/group/bld.inf"
-#include "../scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/group/bld.inf"
-#endif
-#endif
-
-// Slideshow screensaver can be feature-variated
-#ifdef __SLIDESHOW_SCREENSAVER
-#include "../scrsaver/scrsaverplugins/SlideshowPlugin/group/bld.inf"
-#endif
-
-// Screen saver AIW plugin for the time being a R&D feature only
-#ifdef RD_SCREENSAVERAIWPLUGIN
-#include "../scrsaver/screensaveraiwplugin/group/bld.inf"
-#endif
-
-#endif // TOOLS
-
-PRJ_PLATFORMS
-DEFAULT
-
-
-PRJ_EXPORTS
-// Backup
-backup_registration.xml z:/private/100056CF/backup_registration.xml
-
-../rom/screensaver.iby CORE_MW_LAYER_IBY_EXPORT_PATH(screensaver.iby)
-
-// Generic configuration interface for component cenrep settings
-../conf/screensaver.confml APP_LAYER_CONFML(screensaver.confml)
-../conf/screensaver_101F8770.crml APP_LAYER_CRML(screensaver_101F8770.crml)
-
-PRJ_MMPFILES
-
-#ifndef TOOLS
-
-// Screensaver
-screensaver.mmp
-
-#endif // TOOLS
-
-PRJ_TESTMMPFILES
-
-// End of file.
--- a/group/screensaver.mmp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,127 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* Project definition file
-*
-*/
-
-
-#include <bldvariant.hrh>
-#include <data_caging_paths.hrh>
-#include <platform_paths.hrh>
-#include "ScreensaverConfig.hrh"
-
-TARGET screensaver.exe
-TARGETTYPE exe
-UID 0x100039CE 0x100056CF
-
-VENDORID VID_DEFAULT
-CAPABILITY CAP_APPLICATION PowerMgmt
-
-#ifdef LOGGING_ENABLED
-MACRO USE_LOGGER
-#endif
-
-#ifdef ALWAYS_PORTRAIT
-MACRO SS_ALWAYSPORTRAIT
-#endif
-
-#ifdef ALWAYS_LANDSCAPE
-MACRO SS_ALWAYSLANDSCAPE
-#endif
-
-#ifdef FAST_STOP_ON_SCREENDEVICE_CHANGE
-MACRO SS_FASTSTOPONSCREENDEVICECHANGE
-#endif
-
-SOURCEPATH ../src
-
-SOURCE Screensaver.cpp
-SOURCE screensaverview.cpp
-SOURCE screensaverappui.cpp
-SOURCE screensaverbase.cpp
-SOURCE screensaverctrlnone.cpp
-SOURCE screensaverctrlplugin.cpp
-SOURCE screensaverctrlmovingtext.cpp
-SOURCE screensavershareddatai.cpp
-SOURCE screensaverutility.cpp
-SOURCE screensaverindicator.cpp
-SOURCE screensaverindicatorarray.cpp
-SOURCE screensaverindicatoricon.cpp
-SOURCE screensaverindicatornumberandicon.cpp
-SOURCE screensaverindicatortext.cpp
-SOURCE screensaversubscriber.cpp
-SOURCE screensaverrepositorywatcher.cpp
-SOURCE screensavershareddatamonitor.cpp
-SOURCE screensaverengine.cpp
-SOURCE screensaveractivitymanager.cpp
-
-START RESOURCE screensaver.rss
-HEADER
-TARGETPATH APP_RESOURCE_DIR
-LANGUAGE_IDS
-END // RESOURCE
-
-
-START RESOURCE ../aif/screensaver_reg.rss
-// DEPENDS screensaver.rsg
-// Do not change the UID below.
-TARGETPATH /private/10003a3f/apps
-END
-
-USERINCLUDE ../inc
-
-// This is a SYSTEMINCLUDE macro containing the middleware
-// layer specific include directories
-APP_LAYER_SYSTEMINCLUDE
-
-SYSTEMINCLUDE /epoc32/include/ecom
-
-LIBRARY euser.lib
-LIBRARY cone.lib
-LIBRARY eikcore.lib
-LIBRARY avkon.lib
-LIBRARY apparc.lib
-LIBRARY apgrfx.lib
-LIBRARY ws32.lib
-LIBRARY CommonEngine.lib
-LIBRARY aknlayout.lib
-LIBRARY AknLayout2Scalable.lib
-LIBRARY fbscli.lib
-LIBRARY egul.lib
-LIBRARY msgs.lib
-LIBRARY bafl.lib
-LIBRARY power_save_display_mode.lib
-LIBRARY gdi.lib
-LIBRARY profileeng.lib
-LIBRARY hal.lib
-LIBRARY aknskins.lib
-LIBRARY featmgr.lib // Feature Manager API
-LIBRARY aknicon.lib
-LIBRARY aknpictograph.lib
-LIBRARY ecom.lib
-LIBRARY centralrepository.lib
-LIBRARY cenrepnotifhandler.lib
-LIBRARY efsrv.lib
-LIBRARY flogger.lib
-#ifdef RD_UI_TRANSITION_EFFECTS_PHASE2
-LIBRARY gfxtrans.lib
-LIBRARY akntransitionutils.lib
-LIBRARY akncapserverclient.lib
-#endif
-
-EPOCHEAPSIZE 0x5000 0x2000000
-
-// End of file.
-
--- a/inc/ScreensaverUtils.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,157 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Screensaver utilities collection
-*
-*/
-
-
-#ifndef C_SCREENSAVERUTILS_H
-#define C_SCREENSAVERUTILS_H
-
-// ========== LOGGING MACROS ===============================
-
-#ifdef USE_LOGGER
-
-#include <e32std.h>
-#include <e32def.h>
-#include <eikenv.h>
-#include <flogger.h>
-
-
-/* logging macros usage:
-
-// set logging on in mmp file...
-MACRO USE_LOGGER
-#ifdef WINS
-MACRO USE_RDEBUG
-#endif
-
-
-void CTestAppUi::ConstructL()
-{
-// creates log directory and log file on app startup.
-// prints starting banner...
-SCRLOGGER_CREATE;
-
-// entering to function...
-SCRLOGGER_ENTERFN("ConstructL()");
-
-TInt number = 42;
-TFileName file;
-file = "something" ....
-
-// print variable number of parameters...
-// Note: use _L macro for format string!
-SCRLOGGER_WRITEF(_L("SCR: number = %d, file = %S"), number, &file);
-
-// print just a string (no _L macro here!)
-SCRLOGGER_WRITE("Hello world!");
-
-// leave from function...
-SCRLOGGER_LEAVEFN("ConstructL()");
-}
-
-CTestAppUi::~CTestAppUi()
-{
-// print app exit banner when application exits.
-SCRLOGGER_DELETE;
-}
-
-*/
-
-#ifdef USE_RDEBUG
-
-_LIT(KSCRLogBanner, "Screensaver log start");
-_LIT(KSCRLogEnterFn, "SCR: enter --> %S");
-_LIT(KSCRLogLeaveFn, "SCR: leave <-- %S");
-_LIT(KSCRLogWrite, "SCR: %S");
-_LIT(KSCRLogTag, "SCR: ");
-_LIT(KSCRLogExit, "Screensaver log end");
-_LIT(KSCRLogTimeFormatString, "%H:%T:%S:%*C2");
-
-#define SCRLOGGER_CREATE {RDebug::Print(KSCRLogBanner);}
-#define SCRLOGGER_DELETE {RDebug::Print(KSCRLogExit);}
-#define SCRLOGGER_ENTERFN(a) {_LIT(temp, a); RDebug::Print(KSCRLogEnterFn, &temp);}
-#define SCRLOGGER_LEAVEFN(a) {_LIT(temp, a); RDebug::Print(KSCRLogLeaveFn, &temp);}
-#define SCRLOGGER_WRITE(a) {_LIT(temp, a); RDebug::Print(KSCRLogWrite, &temp);}
-#define SCRLOGGER_WRITE_TIMESTAMP(a) {_LIT(temp, a); TTime time; time.HomeTime(); TBuf<256> buffer; time.FormatL(buffer, KSCRLogTimeFormatString); buffer.Insert(0, temp); buffer.Insert(0, KSCRLogTag); RDebug::Print(buffer); }
-#define SCRLOGGER_WRITEF RDebug::Print
-
-#else
-
-_LIT(KSCRLogDir, "SCR");
-_LIT(KSCRLogFile, "SCR.txt");
-_LIT8(KSCRLogBanner, "Screensaver log start");
-_LIT8(KSCRLogEnterFn, "SCR: -> %S");
-_LIT8(KSCRLogLeaveFn, "SCR: <- %S");
-_LIT8(KSCRLogExit, "Screensaver log end");
-_LIT(KSCRLogTimeFormatString, "%H:%T:%S:%*C2");
-
-#define SCRLOGGER_CREATE {FCreate();}
-#define SCRLOGGER_DELETE {RFileLogger::Write(KSCRLogDir, KSCRLogFile, EFileLoggingModeAppend, KSCRLogExit);}
-#define SCRLOGGER_ENTERFN(a) {_LIT8(temp, a); RFileLogger::WriteFormat(KSCRLogDir, KSCRLogFile, EFileLoggingModeAppend, KSCRLogEnterFn, &temp);}
-#define SCRLOGGER_LEAVEFN(a) {_LIT8(temp, a); RFileLogger::WriteFormat(KSCRLogDir, KSCRLogFile, EFileLoggingModeAppend, KSCRLogLeaveFn, &temp);}
-#define SCRLOGGER_WRITE(a) {_LIT(temp, a); RFileLogger::Write(KSCRLogDir, KSCRLogFile, EFileLoggingModeAppend, temp);}
-#define SCRLOGGER_WRITE_TIMESTAMP(a) {_LIT(temp, a); TTime time; time.HomeTime(); TBuf<256> buffer; time.FormatL(buffer, KSCRLogTimeFormatString); buffer.Insert(0, temp); RFileLogger::Write(KSCRLogDir, KSCRLogFile, EFileLoggingModeAppend, buffer); }
-#define SCRLOGGER_WRITEF FPrint
-
-inline void FPrint(const TRefByValue<const TDesC> aFmt, ...)
- {
- VA_LIST list;
- VA_START(list, aFmt);
- RFileLogger::WriteFormat(KSCRLogDir, KSCRLogFile, EFileLoggingModeAppend, aFmt, list);
- }
-
-inline void FPrint(const TDesC& aDes)
- {
- RFileLogger::WriteFormat(KSCRLogDir, KSCRLogFile, EFileLoggingModeAppend, aDes);
- }
-
-inline void FHex(const TUint8* aPtr, TInt aLen)
- {
- RFileLogger::HexDump(KSCRLogDir, KSCRLogFile, EFileLoggingModeAppend, 0, 0, aPtr, aLen);
- }
-
-inline void FHex(const TDesC8& aDes)
- {
- FHex(aDes.Ptr(), aDes.Length());
- }
-
-inline void FCreate()
- {
- TFileName path(_L("c:\\logs\\"));
- path.Append(KSCRLogDir);
- path.Append(_L("\\"));
- RFs& fs = CEikonEnv::Static()->FsSession();
- fs.MkDirAll(path);
- RFileLogger::WriteFormat(KSCRLogDir, KSCRLogFile, EFileLoggingModeOverwrite, KSCRLogBanner);
- }
-
-#endif // USE_RDEBUG
-
-#else // USE_LOGGER
-
-inline void FPrint(const TRefByValue<const TDesC> /*aFmt*/, ...) { };
-
-#define SCRLOGGER_CREATE
-#define SCRLOGGER_DELETE
-#define SCRLOGGER_ENTERFN(a)
-#define SCRLOGGER_LEAVEFN(a)
-#define SCRLOGGER_WRITE(a)
-#define SCRLOGGER_WRITEF 1 ? ((void)0) : FPrint
-#define SCRLOGGER_WRITE_TIMESTAMP(a)
-
-#endif // USE_LOGGER
-
-#endif // C_SCREENSAVERUTILS_H
--- a/inc/screensaver.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Main header file for screensaver application.
-*
-*/
-
-
-
-
-#ifndef C_SCREENSAVER_H
-#define C_SCREENSAVER_H
-
-#include <e32base.h>
-
-//For turning display off
-#include <hal.h>
-
-#include <centralrepository.h>
-
-#include <aknapp.h>
-#include <AknDoc.h>
-#include <apgwgnam.h>
-
-//
-// class CScreensaverEikDocument
-//
-class CScreensaverDocument : public CAknDocument
- {
-public:
- /**
- * ConstructL
- * 2nd phase constructor.
- * Perform the second phase construction of a
- * CScreensaverDocument object.
- */
- void ConstructL();
- /**
- * CScreensaverDocument.
- * C++ default constructor.
- */
- CScreensaverDocument(CEikApplication& aApp);
-
- /**
- * ~CScreensaverDocument
- * Destructor.
- */
- ~CScreensaverDocument();
-private:
- // from CEikDocument
- CEikAppUi* CreateAppUiL();
- };
-
-//
-// CScreensaverApplication
-//
-
-class CScreensaverApplication : public CAknApplication
-{
-private:
- // from CApaApplication
- /**
- * From CApaApplication, CreateDocumentL.
- * Creates CScreensaverDocument document object. The returned
- * pointer in not owned by the CScreensaverApplication object.
- * @return A pointer to the created document object.
- */
- CApaDocument* CreateDocumentL();
- /**
- * From CApaApplication, AppDllUid.
- * @return Application's UID (KUidScreensaverApp).
- */
- TUid AppDllUid() const;
- };
-
-#endif // C_SCREENSAVER_H
--- a/inc/screensaver.hrh Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,103 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: The enumeration for screensaver
-*
-*/
-
-
-
-
-
-
-#ifndef SCREENSAVER_HRH
-#define SCREENSAVER_HRH
-
-#include <avkon.hrh>
-
-//
-// Screensaver indicator id's.
-//
-enum TScreensaverIndicatorId
- {
- ESsNewMessagesInd,
- ESsMissedCallsInd,
- ESsKeyLockInd,
- ESsProfileInd,
- ESsImInd, // Instant message (chat)
- ESsMailInd, // New email
- ESsVoicemailInd, // New voice mail
- ESsAmPmInd // AM / PM indicator
- };
-
-//
-// Indicator types.
-//
-enum TScreensaverIndicatorType
- {
- ESsNumericIndicator,
- ESsIconIndicator,
- ESsTextIndicator,
- ESsNumberAndIconIndicator
- };
-
-//
-// Indicator aligments.
-//
-enum TScreensaverAlignment
- {
- ESsAlignLeft,
- ESsAlignRight
- };
-
-
-//
-// Indicator drawing priorities.
-//
-enum TScreensaverDrawType
- {
- ESsDrawTypeNotDrawn,
- ESsDrawTypeSecondary,
- ESsDrawTypePrimary
- };
-
-
-//
-// Default screensaver bar color modes.
-//
-enum TScreensaverBarColorModel
- {
- ESsColorModel3BitMode,
- ESsColorModelHighColor
- };
-
-//
-// Factory for display objects
-//
-enum TDisplayObjectType
- {
- EDisplayText = 0,
- EDisplayTime,
- EDisplayBitmap,
- EDisplayPlugin,
- EDisplayNone
- };
-
-enum TDisplayState
- {
- EDisplayOff = 0,
- EDisplayOn
- };
-#endif //SCREENSAVER_HRH
-
-// End of file.
--- a/inc/screensaveractivitymanager.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// CScreensaverActivityManager class
-//
-//
-
-#ifndef SCREENSAVERACTIVITYMANAGER_H
-#define SCREENSAVERACTIVITYMANAGER_H
-
-#include <e32base.h>
-
-
-class CScreensaverActivityManager : public CTimer
- {
-public:
- static CScreensaverActivityManager* NewL(TInt aPriority);
- ~CScreensaverActivityManager();
- void Start(TTimeIntervalSeconds aInterval,
- TCallBack aInactiveCallback,
- TCallBack aActiveCallback);
- void SetInactivityTimeout(TTimeIntervalSeconds aInterval);
- TBool IsMonitoringForActivity();
-private:
- void RunL();
- CScreensaverActivityManager(TInt aPriority);
- void MonitorInactivity();
-private:
-
- enum TState {
- EStUndefined = 0, //< Never used, reserved
- EStNotActive, //< Constructed but not started
- EStMonForInactivity, //< Monitoring user inactivity mode
- EStMonForActivity //< Monitoring user activity mode
- };
-
- /** Inactivity interval */
- TTimeIntervalSeconds iInterval;
-
- /** Callback to be used in case that user inactivity is detected */
- TCallBack iInactiveCallback;
-
- /** Callback to be used in case of user activity after inactivity period */
- TCallBack iActiveCallback;
-
- /** State of object, what form of monitoring is active. */
- TState iState;
- };
-
-#endif // SCREENSAVERACTIVITYMANAGER_H
--- a/inc/screensaverappui.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,117 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: The define of appui for screensaver
-*
-*/
-
-
-
-
-#ifndef C_SCREENSAVERAPPUI_H
-#define C_SCREENSAVERAPPUI_H
-
-#include <e32base.h>
-#include <aknViewAppUi.h>
-
-#include "screensaverview.h"
-
-
-class CScreensaverEngine;
-
-// UID of Screensaver application
-const TUid KUidScreensaverApp = { 0x100056CF };
-
-/**
- * 'AppUi' class.
- */
-class CScreensaverAppUi : public CAknViewAppUi
- {
-public:
- /**
- * ConstructL.
- * 2nd phase constructor.
- */
- void ConstructL();
-
- /**
- * ~CScreensaverAppUi.
- * Destructor.
- */
- ~CScreensaverAppUi();
-
- /**
- * Returns the pointer to screensaver model which is owned by AppUi
- * @return Screensaver Model
- */
- CScreensaverEngine& Model() const;
-
- /**
- * From CEikAppUi.
- * Takes care of command handling.
- * @param aCommand command to be handled
- */
- void HandleCommandL(TInt aCommand);
-
- /**
- * Returns the pointer to CScreensaverView which is derived from AknView
- * @return CScreensaverView
- */
- CScreensaverView* ScreensaverView();
-
-private:
-
- /**
- * Creates the CScreensaverView object and the Display object
- */
- void CreateViewL();
-
- /**
- * From CEikAppUi.
- * Key event handler.
- */
- TKeyResponse HandleKeyEventL(const TKeyEvent& /*aKeyEvent*/,TEventCode /*aType*/);
-
- /**
- * From @c CCoeAppUiBase.
- * Calls CAknViewAppUi::HandleScreenDeviceChangedL().
- */
- void HandleScreenDeviceChangedL();
-
- /**
- * From AknAppUi. Handles pointer-initiated view switch. Currently this
- * function does nothing but calls base class function.
- * @since Series 60 3.0
- * @param aEvent Window server event.
- * @param aDestination Pointer to the control which the event is targeted to.
- */
- void HandleWsEventL(const TWsEvent& aEvent, CCoeControl* aDestination);
-
-private:
-
- /**
- * Screensaver Model.
- * Owned.
- */
- CScreensaverEngine* iModel;
-
- /**
- * Screensaver view
- *
- * Owned
- */
- CScreensaverView* iView;
- };
-
-#endif // C_SCREENSAVERAPPUI_H
-
--- a/inc/screensaverbase.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,219 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Definitions for base class of display object
-*
-*/
-
-
-
-#ifndef C_SCREENSAVERBASE_H
-#define C_SCREENSAVERBASE_H
-
-#include <coeccntx.h>
-#include <coecntrl.h>
-#include <AknPictographDrawerInterface.h>
-
-#include "screensaverplugin.h"
-#include "screensaver.hrh"
-#include "screensaverengine.h"
-#include "screensaverindicator.h"
-#include "screensaverindicatorarray.h"
-
-
-/**
- * The base class of all the different display object
- */
-class CScreensaverBase : public CCoeControl, public MCoeControlContext,
- public MAknPictographAnimatorCallBack
- {
-public:
- /**
- * Default c++ constructor
- */
- CScreensaverBase();
-
- /**
- * Destructor
- */
- virtual ~CScreensaverBase();
-
- /**
- * Show the control and start the refresh timer
- */
- virtual void StartDrawObject();
-
- /**
- * Stop display the control and cancel the timers
- */
- virtual void StopDrawObject();
-
- /**
- * Start the control needed timer
- */
- virtual void StartTimer() = 0;
-
- /**
- * Cancels the timer
- */
- virtual void CancelTimer() = 0;
-
- /**
- * Show the control
- */
- virtual void DrawObject();
-
- /**
- * Clear the screen
- */
- virtual void ClearScreen() = 0;
-
- /*
- * Refresh the display
- */
- virtual void Refresh() = 0;
-
- /**
- * Get the screensaver view
- */
- CScreensaverView* View() const;
-
- /**
- * Returns the Screensaver Model which is owned by AppUi
- *
- * @return CScreensaverModel
- */
- const CScreensaverEngine& Model() const;
-
- /**
- * Returns the Indicator Array which is owned by Screensaver Model
- *
- * @return CScreensaverIndicatorArray
- */
- CScreensaverIndicatorArray& Array() const;
-public:
- //From CCoeControl
-
- /**
- * Resource change handling
- */
- virtual void HandleResourceChange( TInt aType ) = 0;
-
- /**
- * Responds to changes to the size and position of the contents
- * of this control.
- */
- virtual void SizeChanged() = 0;
-
- // Power save mode related functions
-
- /**
- * Used to define the active area of display in power save mode
- *
- * @param aRect
- */
- TInt SetPowerSaveDisplayActiveArea( TRect& aRect );
-
- /**
- * Activates power save display mode
- *
- * @param aFullColors
- */
- TInt ActivatePowerSaveDisplay( TBool aFullColors = EFalse ) const;
-
-public:
- // From MAknPictograpAnimatorCallback
- /**
- * This function is called when a redraw is needed for drawing
- * new frames of animated pictographs. It should
- *
- * 1) Draw or clear the background of pictographs
- * 2) If the pictographs are amongst text, draw the text
- * 3) Draw the pictographs using MAknPictographDrawer interface
- *
- * In many cases, it is sufficient to implement this simply by
- * calling CCoeControl::DrawNow for the appropriate control.
- */
- virtual void DrawPictographArea();
-
-protected:
-
- /**
- * Start capturing timer
- */
- void StartCaptureScreenTimer();
-
- /**
- * Initial the initial refresh rate
- */
- TInt InitialRefreshRate();
-
- /**
- * Kill the timer
- *
- * @param aTimer the timer you want stop
- */
- void DeleteTimer( CPeriodic*& aTimer );
-
- /**
- * for Lcd Partial mode.
- */
- void ConstructAndConnectLCDL();
-
- /**
- * Returns the powersave display mode
- */
- CPowerSaveDisplayMode* LcdPartialMode() const;
-
- /**
- * If the timer expired, excute the refresh action
- */
- static TInt HandleRefreshTimerExpiry( TAny* aPtr );
-
- /**
- * Callback fuction. Called when the window server heartbeat tiemr time out
- */
- static TInt HandleCaptureTimerExpiry( TAny* aPtr );
-
- /**
- * Capture screen, and get the first pixel address of the bitmap
- */
- TInt CaptureScreen();
-
-protected:
-
- // Area of screen that is displayed when in power save mode
- TRect iPowerSaveDisplayActiveArea;
-
- /**
- * The capturing screen timer
- */
- CPeriodic* iCaptureScreenTimer;
-
-
- /**
- * The pointer to the powersaver display mode
- *
- * Owned
- */
- CPowerSaveDisplayMode* iPowerSaveDisplayMode;
-
- /**
- * store the bitmap data
- */
- CFbsBitmap* iOffScrnBmp;
-
- };
-
-#endif // C_SCREENSAVERBASE_H
-
--- a/inc/screensaverctrlmovingtext.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,261 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Definitions screensaver moving text display class.
-*
-*/
-
-#ifdef USE_DATE_AND_TEXT
-
-#ifndef C_SCREENSAVERCTRLMOVINGTEXT_H
-#define C_SCREENSAVERCTRLMOVINGTEXT_H
-
-#include <AknPictographInterface.h>
-
-#include "screensaverbase.h"
-
-const TInt KScreensaverDataReconnectingDelay = 50000;
-const TInt KScreensaverBarHeight = 24;
-
-//
-// class CScreensaverCtrlMovingText
-//
-class CScreensaverCtrlMovingText : public CScreensaverBase
- {
-public:
- /**
- * Two-phased constructor
- *
- * @param aType the type of display object
- * @return CScreensaverCtrlMovingText the pointer of CScreensaverCtrlMovingText
- * object
- */
- static CScreensaverCtrlMovingText* NewL( TDisplayObjectType aType );
-
- /**
- * Destructor.
- */
- ~CScreensaverCtrlMovingText();
-
-public:
- // From CCoeControl
-
- /**
- * Resource change handling
- */
- virtual void HandleResourceChange( TInt aType );
-
-
- /**
- * Responds to changes to the size and position of the contents
- * of this control.
- */
- virtual void SizeChanged();
-
- /**
- * Drawing (override this to draw)
- */
- virtual void Draw( const TRect& aRect ) const;
-
-public:
- // Implemented here instead of shareddatainterface
-
- /**
- * Set moving bar on / off
- *
- * @param aMove a bool type to decide if it can move or not
- */
- void SetMoving( TBool aMove = ETrue );
-
- /**
- * Start the control needed timer
- */
- void StartTimer();
-
- /**
- * Cancels the timer
- */
- void CancelTimer();
-
- /**
- * Clear the screen
- */
- void ClearScreen();
-
- /*
- * Refresh the display
- */
- void Refresh();
-
-protected:
-
- /**
- * Constructor
- *
- * @param aType the type of the display object.
- */
- CScreensaverCtrlMovingText( TDisplayObjectType aType );
-
- /**
- * Two-phased constructor
- */
- void ConstructL();
-
- /**
- * Draw the object on the screen of this type
- *
- * @param aGc the CWindowGc object
- * @param aRect
- */
- virtual void DrawNew( CWindowGc& aGc, const TRect& aRect ) const;
-
- /**
- * Draw the date on the bar
- */
- virtual void DrawText( CWindowGc& aGc ) const;
-
- /**
- * Draws text with pictographs
- */
- void DrawPictoText( CWindowGc &aGc ) const;
-
- /**
- * Get the current time
- */
- void UpdateCurrentTimeL();
-
- /**
- * Generate the screensaver bar
- */
- void GenerateDisplayAttributesForScreensaverBar();
-
-private:
- /**
- * Get the random top value
- *
- * @return TInt the random value
- */
- void GetRandomTopValue( TInt aBarHight );
-
- /**
- * Get the random seed
- */
- TInt RandomSeed();
-
- /**
- * Get the text and background color
- */
- void GetTextAndBgColor();
-
- /**
- * Format the display text
- */
- void FormatTextL( TDes& aText, const TDesC& aFormat );
-
- /**
- * Set AmPm text payload to indicator
- */
- void SetAmPmIndicatorPayloadL();
-
- /**
- * Format the data and time text
- */
- void FormatTextFromResourceL( TDes &aDes, TInt aResourceId );
-
- /**
- * Get the clock area and text layout
- */
- void GetClockLayout( const TRect& aRect );
-
- /**
- * Get the date area and text layout
- */
- void GetDateLayout( const TRect& aRect );
-
- /**
- * Get the indicator area and text layout
- */
- void GetIndicatorAreaLayout( const TRect& aRect );
-
- /**
- * Start the indicator bar refresh timer
- */
- void StartBarRefreshTimer();
-
-
-protected://data
-
- /**
- * The layout date and text
- */
- TAknLayoutText iLayoutDateText;
-private://data
- /**
- * The top position of the bar
- */
- TInt iTop;
-
- /**
- * The random seed to get the random value
- */
- TInt64 iRandSeed;
-
- // For new layout
- /**
- * The time string that will be displayed on the bar
- */
- TBuf<15> iTextTime;
-
- /**
- * The date string that will be displayed on the bar
- * or he text will be display the on the bar
- */
- TBuf<25> iText;
-
- /**
- * The type of the display text
- */
- TDisplayObjectType iType;
-
- //Lay out
- TAknLayoutRect iLayoutBar;
- TAknLayoutRect iLayoutClock;
- TAknLayoutRect iLayoutDate; // missing
- TAknLayoutText iLayoutClockText;
- TAknLayoutText iLayoutAmPmText;
-
- // Moving bar on / off
- TBool iMoveBar;
-
- /**
- * The color for background and text
- */
- TInt iBgColor;
- TInt iTextColor;
- TInt iTextBgColor;
-
- /**
- * The indicator bar refresh timer
- */
- CPeriodic* iBarRefreshTimer;
-
- /**
- * Pictograph drawing interface
- */
- CAknPictographInterface* iPictoI;
- };
-
-#endif // C_SCREENSAVERCTRLMOVINGTEXT_H
-
-#endif // USE_DATE_AND_TEXT
-// End of file.
--- a/inc/screensaverctrlnone.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,113 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Definitions for the display object of none type
-*
-*/
-
-
-
-#ifndef C_SCREENSAVERCTRLNONE_H
-#define C_SCREENSAVERCTRLNONE_H
-
-#include "screensaverbase.h"
-
-/**
- * The none type of the display object to cut off the screen light
- */
-class CScreensaverCtrlNone : public CScreensaverBase
- {
-public:
- /**
- * The symbian c++ constructor
- */
- static CScreensaverCtrlNone* NewL();
-
-
- /**
- * destructor
- */
- ~CScreensaverCtrlNone();
-
- /**
- * Start the control needed timer
- */
- void StartTimer();
-
- /**
- * Cancels the timer
- */
- void CancelTimer();
-
- /**
- * Show the control
- */
- void DrawObject();
-
- /**
- * Clear the screen
- */
- void ClearScreen();
-
- /*
- * Refresh the display
- */
- void Refresh();
-
-public:
- // From CCoeControl
-
- /**
- * Resource change handling
- */
- void HandleResourceChange( TInt aType );
-
- /**
- * Responds to changes to the size and position of the contents
- * of this control.
- */
- void SizeChanged();
-
- /**
- * Draw
- * @see CCoeControl::Draw(const TRect& aRect)
- */
- void Draw( const TRect& aRect ) const;
-
-private:
-
- /**
- *The Default C++ constructor
- */
- CScreensaverCtrlNone();
-
- /**
- * The two-phased constructor
- */
- void ConstructL();
-
- /**
- * Switch off light in aSecs
- *
- * @param aSecs after this seconds, screen will switch light
- */
- void SwitchLights( TInt aSecs );
-
- /**
- * Switch on/off the screen
- */
- void SwitchDisplayState( TInt aState );
-
- };
-
-#endif // C_SCREENSAVERCTRLNONE_H
--- a/inc/screensaverctrlplugin.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,218 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Definitions for the display object of plugin type
-*
-*/
-
-
-
-#ifndef C_SCREENSAVERCTRLPLUGIN_H
-#define C_SCREENSAVERCTRLPLUGIN_H
-
-#include <babitflags.h>
-
-#include "screensaverbase.h"
-
-/**
- * The plugin type of display object which is derived from the
- * CScreensaverBase class
- */
-class CScreensaverCtrlPlugin : public CScreensaverBase,
- public MScreensaverPluginHost
- {
-public:
- enum TScreensaverPluginFlag
- {
- // Indicates that plugin module wants to draw indicators
- EPluginFlagOverrideIndicators = 0,
- // Indicates that plugin does not use refresh timer and should not get
- // Draw() calls
- EPluginFlagTimerNotUsed,
- EPluginFlagSuspend
- };
-public:
- /**
- * Two-phased constructor.
- */
- static CScreensaverCtrlPlugin* NewL();
-
- /**
- * Destructor
- */
- ~CScreensaverCtrlPlugin();
-
- /**
- * Start the control needed timer
- */
- void StartTimer();
-
- /**
- * Cancels the timer
- */
- void CancelTimer();
-
-
- /**
- * Show the control
- */
- void DrawObject();
-
- /**
- * Clear the screen
- */
- void ClearScreen();
-
- /*
- * Refresh the display
- */
- void Refresh();
-
- /**
- * Send the event to plugin to deal with
- *
- * @param aEvent the event send to plugin
- * @return TInt
- */
- TInt SendPluginEvent( TScreensaverEvent aEvent );
-
- /**
- * Returns the implemenataion UID of the plugin
- *
- * @return TUid Implementation UID
- */
- TUid PluginImplementationUid() const;
-
-public:
- // From MScreensaverPluginHost
- void UseStandardIndicators();
- void OverrideStandardIndicators();
- TBool StandardIndicatorsUsed() const;
- void SetRefreshTimerValue( TInt aValue );
- TInt RefreshTimerValue() const;
- TInt GetIndicatorPayload( TScreensaverIndicatorIndex aIndex,
- TIndicatorPayload& aResult ) const;
- TInt SetActiveDisplayArea( TRect& aRect,
- const TScreensaverPartialMode& aMode );
- TInt SetActiveDisplayArea( TInt aStartRow, TInt aEndRow,
- const TScreensaverPartialMode& aMode );
- void ExitPartialMode();
- const TScreensaverColorModel& GetColorModel() const;
- void Suspend( TInt aTime );
- void RequestLights( TInt aSecs );
- TInt DisplayInfo( TScreensaverDisplayInfo* aDisplayInfo );
- void UseRefreshTimer( TBool aOn = ETrue );
- void RequestTimeout( TInt aSecs );
- void RevertToDefaultSaver();
- // End MScreensaverPluginHost
-
-protected:
- /**
- * The default C++ constuctor
- *
- * @param aType the type of the display object.
- * @param aPlugin the plugin which the screensaver is setted.
- */
- CScreensaverCtrlPlugin();
-
- /**
- * Symbian default constructor.
- */
- void ConstructL();
-
-protected:
- // From CCoeControl
-
- /**
- * Resource change handling
- */
- virtual void HandleResourceChange( TInt aType );
-
- /**
- * Responds to changes to the size and position of the contents
- * of this control.
- */
- virtual void SizeChanged();
-
- /**
- * Drawing (override this to draw)
- */
- virtual void Draw( const TRect& aRect ) const;
-
-private:
- /*
- * LoadPluginL()
- */
- void LoadPluginL( MScreensaverPluginHost* aPluginHost );
-
- /*
- * Get the poiter of the plugin
- */
- void LoadPluginModuleL();
-
- /*
- * Delete the plugin
- */
- void DeletePlugin();
-
- /**
- * Starts the plugin refresh timer
- */
- void StartPluginRefreshTimer();
-
- /**
- * Starts the plugin time out timer
- */
- void StartPluginTimeoutTimer( TInt aSecs );
-
-
- /**
- * Callback fuction. Called when the Plugin tiemr time out
- */
- static TInt HandlePluginTimeoutTimerExpiry( TAny* aPtr );
-
-
-private://data
- /**
- * Plugin interface.
- */
- MScreensaverPlugin* iPlugin;
-
- /**
- * The plugin refresh timer
- */
- CPeriodic* iPluginRefreshTimer;
-
- /**
- * The plugin timeout timer
- */
- CPeriodic* iPluginTimeoutTimer;
-
-
- /**
- * The plugin flag
- */
- mutable TBitFlagsT<TUint32> iPluginFlag;
-
- /**
- * The refresh rate of plugin
- */
- TInt iPluginRefreshRate;
-
- /**
- * The implementation UID of the plugin
- */
- TUid iPluginImplUid;
-
- };
-#endif // C_SCREENSAVERCTRLPLUGIN_H
--- a/inc/screensaverengine.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,351 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Screensaver engine class definition.
-*
-*/
-
-
-
-#ifndef C_SCREENSAVERENGINE_H
-#define C_SCREENSAVERENGINE_H
-
-#include <e32base.h>
-#include <AknCapServerClient.h>
-
-#include "screensaverindicator.h"
-#include "screensaverindicatorarray.h"
-#include "screensaverplugin.h"
-
-//delay before wserv timer is turned off
-#define KWSERVHEARTBEATTIMEOUT 15
-
-// Delay after screensaver is stopped and hided.
-const TInt KDefaultScreenSaverTimeout = 2 * 60 * 1000000; // 2 mins
-
-// FORWARD DECLARATIONS
-class CUserActivityManager;
-class CScreensaverSharedDataI;
-class CScreensaverSharedDataMonitor;
-class CScreensaverAppUi;
-class CScreensaverView;
-class CScreensaverActivityManager;
-class CPowerSaveDisplayMode;
-
-/**
-* CScreensaverModel
-*/
-class CScreensaverEngine : public CBase
- {
-public:
-
- /**
- * Two-phased constructor
- *
- * @param aAppUi the AppUi of the application
- */
- static CScreensaverEngine* NewL();
-
- /**
- * Destructor
- */
- ~CScreensaverEngine();
-
- /**
- * Return the pointer to the CScreensaverSharedDataI
- *
- * @return CScreensaverSharedDataI*
- */
- CScreensaverSharedDataI* SharedDataInterface() const;
-
- /**
- * Reset the time during which the user did not do anything
- */
- void ResetInactivityTimeout();
-
- /**
- * Returns if the screensaver is on or not
- */
- TBool ScreenSaverIsOn() const;
-
- /**
- * Returns if the screensaver is previewing or not
- */
- TBool ScreenSaverIsPreviewing() const;
-
- /**
- * Starts screensaver
- */
- void StartScreenSaver();
-
- /**
- * Stops the screensaver
- */
- void StopScreenSaver();
-
- /**
- * Starts the preview model
- */
- void StartPreviewModeL();
-
- /*
- * Display the Object();
- */
- void DisplayObject();
-
- /**
- * Start the suspend timer
- */
- void StartSuspendTimer( TInt aSec );
-
- /**
- * Returns the indicator array
- */
- CScreensaverIndicatorArray& IndicatorArray() const;
-
- /**
- * Returns the color model
- */
- const TScreensaverColorModel& GetColorModel( ) const;
-
- /**
- * Adds the partial model
- *
- * @param aBpp the bits per pixels of the partial model
- * @param aType the type of the partial type
- */
- void AddPartialModeLevel( TInt aBpp, TScreensaverPartialModeType aType );
-
- /**
- * Updates the indicator attributes.
- */
- void UpdateIndicatorAttributes( );
-
- /*
- * Start screensaver expiry timer. When the timer expires the screensaver
- * will be stopped and hided.
- *
- * @param aTimeout Timeout after the screensaver stops and hides itself in
- * microseconds. 0 or negative value will disable the timer.
- */
- void SetExpiryTimerTimeout( TInt aTimeout );
-
- /**
- * Informs the engine about changes in keyguard state
- * @param aEnabled whether the keyguard is now on or off
- */
- void HandleKeyguardStateChanged( TBool aEnabled );
-
-private:
-
- /**
- * C++ default constructor
- *
- * @param aAppUi the AppUi of the application
- */
- CScreensaverEngine();
-
-private:
-
- /**
- * Two-phased constructor
- */
- void ConstructL();
-
- /**
- * Constructs the shared data member
- */
- void EnableSharedDataAndMonitorL();
-
- /**
- * Destruct the shared data member
- */
- void DisableSharedDataAndMonitor();
-
- /**
- * Starts to monitor the user activity
- */
- void StartActivityMonitoringL();
-
- /**
- * Stops monitoring the user activity
- */
- void StopActivityMonitoring( CScreensaverActivityManager*& aActivityManager );
-
- /**
- * Gets the color model from the resource
- */
- void SetupColorModelL();
-
- /**
- * Start the preview timer
- */
- void StartPreviewTimer();
-
- /**
- * Starts pause timer
- */
- void StartPauseTimer();
-
- /**
- * Kill the timer
- *
- * @param aTimer the timer you want stop
- */
- void KillTimer( CPeriodic*& aTimer );
-
-
- /**
- * Callback fuction. Called when the preivew tiemr time out
- */
- static TInt HandlePreviewTimerExpiry( TAny* aPtr );
-
- /**
- * Called when the time that the user did activity is out.
- */
- static TInt HandleActiveEventL(TAny* aPtr);
-
- /**
- * Called when the time that the user did no activity is out.
- */
- static TInt HandleInactiveEventL(TAny* aPtr);
-
- /**
- * Callback fuction. Called when the suspension tiemr time out
- */
- static TInt HandleSuspendTimerExpiry( TAny* aPtr );
-
- /**
- * Callback function. Called when the pause timer expires
- */
- static TInt HandlePauseTimerExpiry( TAny* aPtr );
-
- /**
- * Returns the CScreensaverView
- */
- CScreensaverView* View() const;
-
- /**
- * Returns the timeout.
- */
- TInt Timeout();
-
- /**
- * Returns the display flag.
- */
- TInt DisplayFlag();
-
- /**
- * Callback fuction. Called when the screensaver expiry timer time out.
- */
- static TInt HandleExpiryTimerExpiry( TAny* aPtr );
-
- /**
- * Callback to do the screensaver starting.
- */
- static TInt StartSaverCb( TAny* aPtr );
-
-private:
-
- /**
- * The flag if append alert type indicator
- */
- TBool iShowExtendedProfileInd;
-
- /**
- * The flag if the screensaver is on or not
- */
- TBool iScreenSaverIsOn;
-
- /**
- * The flag if the screensaver is previewing or not
- */
- TBool iScreenSaverIsPreviewing;
-
- /**
- * The trigger for screensaver activation
- */
- CScreensaverActivityManager* iActivityManagerScreensaver;
-
-
- /**
- * The pointer to CScreensaverSharedDataI
- *
- * Owned
- */
- CScreensaverSharedDataI* iSharedDataI;
-
- /*
- * The pointer to the CScreensaverSharedDataMonitor
- */
- CScreensaverSharedDataMonitor* iSharedDataMonitor;
-
- /**
- * The pointer to the indicator array
- *
- * Owned
- */
- CScreensaverIndicatorArray* iIndicatorArray;
-
- /**
- * moved from view class
- */
- TScreensaverColorModel iColorModel;
-
-
- /**
- * The preview timer
- */
- CPeriodic* iPreviewTimer;
-
- /**
- * The suspend timer
- */
- CPeriodic* iSuspendTimer;
-
- /**
- * used to intercept and capture application key event.
- */
- RAknUiServer iAknUiServer;
-
- /**
- * The screensaver expiry timer. Screensaver will be stoped when this timer
- * expires.
- *
- * Owned.
- */
- CPeriodic* iExpiryTimer;
-
- /**
- * Pause timer. Used to reactivate screensaver after 5s when being
- * interrupted and keys are locked
- */
- CPeriodic* iPauseTimer;
-
- /**
- * Set if the pause timer was started when preview was stopped
- */
- TBool iPauseTimerStartedAfterPreview;
-
- /**
- * Asynchronous callback to start screensaver.
- */
- CAsyncCallBack iAsyncCb;
-
- };
-
-
-
-#endif // C_SCREENSAVERENGINE_H
-
-// End of file
--- a/inc/screensaverindicator.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,270 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Definitions for screensaver indicator array.
-*
-*/
-
-
-
-#ifndef C_SCREENSAVERINDICATOR_H
-#define C_SCREENSAVERINDICATOR_H
-
-//#include <aknconsts.h>
-#include <coecntrl.h>
-#include <coeccntx.h>
-#include <e32base.h>
-#include <AknIconArray.h>
-#include <gulicon.h>
-#include <AknsItemID.h>
-#include <AknUtils.h>
-#include <screensaverplugin.h>
-
-#include "screensaver.hrh"
-
-
-/*
-* Base class for all indicators.
-*/
-class CScreensaverIndicator : public CBase
- {
-public:
-
- /**
- * Destructor
- */
- virtual ~CScreensaverIndicator();
-
- /**
- * Draw the indicator. it should be implemented by the derived class
- */
- virtual void Draw(CWindowGc& aGc) const = 0;
-
- /**
- * two-phased constructor
- *
- * @param aReader the resource read of the STRUCT
- * SCREENSAVER_PARAMETERS_ARRAY defined by ourself
- * STRUCT SCREENSAVER_PARAMETERS_ARRAY
- * {
- * WORD KIndicatorMargin;
- * WORD KIndicatorGap;
- * WORD KIndicatorTopMargin;
- * WORD KIndicatorTextLevel;
- * LONG KBackGroundColor;
- * WORD KHeight;
- * }
- * @param aBgColor the background color of display screen
- * @param aTextColor the text color
- */
- virtual void ConstructL(TResourceReader &aReader, TUint32 aBgColor, TUint aTextColor);
-
- /**
- * Set the parameters of drawing
- *
- * @param aCorner the position of the lefttop of the indicator
- * @param aParentRect
- */
- virtual void SetupDrawingParameters(const TPoint& aCorner, const TRect& aParentRect) = 0;
-
- /**
- * Check if indicator is visible or not
- *
- * @return TBool
- */
- virtual TBool CheckVisibilityConditions() const = 0;
-
- /**
- * Get the payload through the property
- *
- * @param aPayload the reference to the payload
- */
- virtual void Payload(TIndicatorPayload& aPayload) const = 0;
-
- /**
- * Set the property through the payload
- *
- * @param aPayload
- */
- virtual void SetPayload(const TIndicatorPayload& aPayload) = 0;
-
- /**
- * Set the Id by the parameter
- *
- * @param aId the Id value
- */
- void SetId(TScreensaverIndicatorId aId);
-
- /**
- * Check if visible or not
- *
- * @return TBool if visible return ETrue, or EFalse.
- */
- virtual TBool Visible() const;
-
- /**
- * Set the visibility
- *
- * @param aValue
- */
- void SetVisibility(TBool aValue);
-
- /**
- * Returns the indicator width
- *
- * @return TInt
- */
- TInt Width() const;
-
- /**
- * Returns the indicator Id
- *
- * @return TScreensaverIndicatorId
- */
- TScreensaverIndicatorId Id() const;
-
- /**
- * Returns the indicator alighment
- * enum TScreensaverAlignment
- * {
- * ESsAlignLeft,
- * ESsAlignRight
- * };
- *
- * @return TScreensaverAlignment
- */
- TScreensaverAlignment Alignment() const;
-
- /**
- * Returns the indicator DrawType, DrawType defined as below
- * enum TScreensaverDrawType
- * {
- * ESsDrawTypeNotDrawn,
- * ESsDrawTypeSecondary,
- * ESsDrawTypePrimary
- * };
- *
- * @return TScreensaverDrawType
- */
- TScreensaverDrawType DrawType() const;
-
- /**
- * Makes a skin item ID from skinned bitmap id
- *
- * @param aSkinBmpId
- *
- * @return TAknsItemID
- */
- TAknsItemID MakeSkinItemId(TInt aSkinBmpId);
-
- /**
- * Sets the indicator type
- * enum TScreensaverIndicatorType
- * {
- * ESsNumericIndicator,
- * ESsIconIndicator,
- * ESsTextIndicator,
- * ESsNumberAndIconIndicator
- * };
- *
- * @param aType the type you want to set
- */
- void SetType(TScreensaverIndicatorType aType);
-
- /**
- * Returns the type of indicator
- *
- * @return TScreensaverIndicatorType
- */
- TScreensaverIndicatorType Type();
-
- /**
- * Depending on indicator type these may or may not be implemented
- * in derived classes. Replaces setupdrawingparameters.
- * Used for new layout *
- */
- virtual void SetIconLayout(TAknLayoutRect&, TInt);
- virtual void SetTextLayout(TAknLayoutText&, TInt);
-
- /**
- * Get the desired width of the indicator (where it fits completely)
- */
- virtual TInt PreferredWidth();
-
- /**
- * Get the minimum width of the indicator
- * (absolute minimum space it can be drawn in)
- */
- virtual TInt MinimumWidth();
-
- /**
- * Set the width allowed for the indicator. This has effect only on
- * indicators that have text, which may then be truncated. Bitmap
- * widths are not adjusted
- */
- virtual void SetWidth(TInt);
-
- /**
- * Set X-position of indicator
- */
- virtual void SetXPos(TInt);
-
-protected:
-
- /**
- * The indicator Id
- */
- TScreensaverIndicatorId iId;
-
- /**
- * The topleft position of indicator
- */
- TPoint iTopLeft;
-
- /**
- * The flag indicates the indicator is visible or not
- */
- TBool iVisible;
-
- /**
- * The area of indicator
- */
- TRect iRect;
-
- /**
- * The indicator draw type
- */
- TScreensaverDrawType iDrawType;
-
- /**
- * The indicator alignment
- */
- TScreensaverAlignment iAlignment;
-
- /**
- * The indicator type.
- */
- TScreensaverIndicatorType iType;
-
- /**
- * Colors to be used to draw indicators
- */
- TRgb iBgColor;
- TRgb iTextColor;
-
- };
-
-
-#endif // C_SCREENSAVERINDICATOR_H
-
-// End of file.
--- a/inc/screensaverindicatorarray.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,245 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: CScreensaverIndicatorArray declaration.
-*
-*/
-
-
-
-#ifndef C_SCREENSAVERINDICATORARRAY_H
-#define C_SCREENSAVERINDICATORARRAY_H
-
-#include "screensaverindicator.h"
-
-/*
-* Indicator array class.
-*/
-class CScreensaverIndicatorArray : public CBase
- {
- public:
-
- /**
- * Two-phased constructor
- *
- * @param aOldLayout if construct the old layout or the new layout
- * @param aColorInversionUsed if use the inverted color or the
- * normal color
- */
- static CScreensaverIndicatorArray* NewL( TBool aColorInversionUsed );
-
- /**
- * Destructor
- */
- ~CScreensaverIndicatorArray();
-
- /**
- * Two-phased constructor
- */
- void ConstructL( TBool aColorInversionUsed);
-
- /**
- * Creates indicator of given type and pushes it to
- * cleanup stack.
- *
- * @param aId Indicator to be created.
- */
- CScreensaverIndicator *NewIndicatorLC(TScreensaverIndicatorType aType);
-
- /**
- * Draws indicator array to given graphics context. Setup function
- * must be called before calling Draw function.
- *
- * @param aGc Graphics context for drawing indicator array.
- */
- void Draw(CWindowGc& aGc) const;
-
- /**
- * Sets up indicator array for drawing. Sets positions for
- * indicators.
- */
- void Setup(TAknLayoutRect& aLayoutRect, TAknLayoutText& aLayoutText,
- TAknLayoutRect& aLayoutInds);
-
- /*
- * Set the attributes of the indicator
- */
- void SetIndicatorsAttribute(
- TInt& Ind,
- TAknLayoutText& aLayoutText,
- TAknLayoutRect& aLayoutInds,
- TInt& aCurrentX );
-
- /**
- * Checks if there is dependency flag set for given indicator.
- *
- * @param
- * @return ETrue if there is dependency conflict.
- * EFalse if not.
- */
- TBool CheckDependencyConflict(TScreensaverIndicatorId aId) const;
-
- /*
- * Sets dependency flag to given indicator to given value.
- * If dependency flag is set then the indicator is not drawn
- * even when it would be otherwise visible.
- */
- void SetDependencyStatus(TScreensaverIndicatorId aId, TBool aValue);
-
- /**
- * Queries payload for given indicator.
- *
- * @param aId ID of the indicator
- * @param aPayload Indicator payload to receive the information
- * @return KErrNone if payload was set successfully.
- */
- TInt GetIndicatorPayload(
- TScreensaverIndicatorId aId,
- TIndicatorPayload& aPayload) const;
-
- /**
- * Sets payload for given indicator.
- * NOTE that icon and displayed indication cannot be set
- *
- * @param aType
- * @param aPayload
- * @return KErrNone if payload was set successfully.
- */
- TInt SetIndicatorPayload(
- TScreensaverIndicatorId aId,
- const TIndicatorPayload& aPayload);
-
- /**
- * Returns value indicating which drawing mode screensaver should select
- * based on indicator payloads and dependecies. This function aswers to question
- * "What drawing mode should screensaver select if indicator payloads and
- * dependencies were the only determining factor?". This doesn't mean
- * that screensaver will be necessarily drawn in that mode if there is
- * plugin module present or something happens while setting up indicator array
- * for drawing. Screensaver needs this information when it prepares itself for
- * drawing.
- */
- TScreensaverDrawType PreferredDrawingMode() const;
-
- /**
- * Returns value indicating which drawing mode screensaver should select.
- * This function is basically same as 'PreferredDrawingMode', but it
- * returns the final state of indicator array after it has been
- * set up (which may be different from PreferredDrawingMode).
- * Screensaver queries this information just before it draws the screen.
- */
- TScreensaverDrawType ActualDrawingMode() const;
-
- /**
- * Returns the height of indicator.
- */
- TInt Height() const;
-
- /**
- * To set visibility value for indicators
- */
- void SetVisibilityForIndicators();
-
-private:
-
- /**
- * C++ default constructor
- */
- CScreensaverIndicatorArray();
-
- /**
- * Construct the Indicator from the resource file
- */
- void ConstructFromResourceL();
-
- /*
- * Constuct the screensaver param from the resource
- */
- void ConstructParamFromResourceL();
-
- /*
- * Construct indicator array from resource
- */
- void ConstructIndArrayL();
-
- /*
- * Construct the indicators from resource
- */
- void ConstructIndicatorsL( TInt aResourceId );
-
- /**
- * Returns the dependency record by the index
- */
- TBool Dependency(TInt aIndex) const;
-
-private:
-
- /**
- * The count of the indicator
- */
- TInt iCount;
-
- /**
- * How many pixels between indicators.
- */
- TInt iGap;
-
- /**
- * Minimum indicator distance to left and right border.
- */
- TInt iMargin;
-
- /**
- * Distance from top border of indicator bar to top border of
- * indicator icon.
- */
- TInt iTopMargin;
-
- /**
- * The level of the text
- */
- TInt iTextLevel;
-
- /**
- * The area of the indicator
- */
- TRect iRect;
-
- /**
- * The height of the indicator bar
- */
- TInt iHeight;
-
- /**
- * The array of indicators
- */
- CArrayPtrFlat<CScreensaverIndicator>* iIndicators;
-
- /**
- * The array of dependency record
- */
- CArrayFixFlat<TBool>* iDependencyRecord;
-
- /**
- * The flag decised if use the old layout or not.
- */
- TBool iOldLayout;
-
- /**
- * Colors to be used for indicator layout
- */
- TUint32 iBgColor;
- TUint32 iTextColor;
-};
-
-#endif // C_SCREENSAVERINDICATORARRAY_H
--- a/inc/screensaverindicatoricon.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,96 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: CScreensaverIndicatorIcon declaration.
-*
-*/
-
-
-
-#ifndef C_SCREENSAVERINDICATORICON_H
-#define C_SCREENSAVERINDICATORICON_H
-
-#include "screensaverindicator.h"
-
-/**
-* Simple icon indicator. Displays icon, but no other information.
-*/
-class CScreensaverIndicatorIcon : public CScreensaverIndicator
- {
-public:
-
- /**
- * Destructor
- */
- ~CScreensaverIndicatorIcon();
-
- /**
- * Draw the indicator. it should be implemented by the derived class
- */
- virtual void Draw(CWindowGc& aGc) const;
-
- /**
- * two-phased constructor
- *
- * @param aReader the resource read of the STRUCT
- * SCREENSAVER_PARAMETERS_ARRAY defined by ourself
- * @param aBgColor the background color of display screen
- * @param aTextColor the text color
- */
- virtual void ConstructL(TResourceReader &aReader, TUint32 aBgColor, TUint aTextColor);
-
- /**
- * Set the parameters of drawing
- *
- * @param aCorner the position of the lefttop of the indicator
- * @param aParentRect
- */
- virtual void SetupDrawingParameters(const TPoint &aCorner, const TRect& aParentRect);
-
- /**
- * Check if indicator is visible or not
- *
- * @return TBool
- */
- virtual TBool CheckVisibilityConditions() const;
-
- /**
- * Get the payload through the property
- *
- * @param aPayload the reference to the payload
- */
- virtual void Payload(TIndicatorPayload& aPayload) const;
-
- /**
- * Set the property through the payload
- *
- * @param aPayload
- */
- virtual void SetPayload(const TIndicatorPayload& aPayload);
-
- /**
- * Sets icon position and size
- */
- virtual void SetIconLayout(TAknLayoutRect& aLayout, TInt aX = -1);
-
-private:
-
- /**
- * The icon will be displayer
- *
- * Owned
- */
- CGulIcon* iIcon;
- };
-
-#endif // C_SCREENSAVERINDICATORICON_H
--- a/inc/screensaverindicatornumberandicon.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,155 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: CScreensaverIndicatorNumberAndIcon declaration.
-*
-*/
-
-
-
-#ifndef C_SCREENSAVERINDICATORNUMBERANDICON_H
-#define C_SCREENSAVERINDICATORNUMBERANDICON_H
-
-#include "screensaverindicator.h"
-
-class CScreensaverIndicatorNumberAndIcon : public CScreensaverIndicator
- {
-public:
- ~CScreensaverIndicatorNumberAndIcon();
-
- /**
- * Draw the indicator. it should be implemented by the derived class
- */
- virtual void Draw( CWindowGc& aGc ) const;
-
- /**
- * two-phased constructor
- *
- * @param aReader the resource read of the STRUCT
- * SCREENSAVER_PARAMETERS_ARRAY defined by ourself
- * @param aBgColor the background color of display screen
- * @param aTextColor the text color
- */
- virtual void ConstructL( TResourceReader &aReader, TUint32 aBgColor, TUint aTextColor );
-
- /**
- * Set the parameters of drawing
- *
- * @param aCorner the position of the lefttop of the indicator
- * @param aParentRect
- */
- virtual void SetupDrawingParameters( const TPoint& aCorner, const TRect& aParentRect );
-
- /**
- * Check if indicator is visible or not
- *
- * @return TBool
- */
- virtual TBool CheckVisibilityConditions() const;
-
- /**
- * Get the payload through the property
- *
- * @param aPayload the reference to the payload
- */
- virtual void Payload( TIndicatorPayload& aPayload ) const;
-
- /**
- * Set the property through the payload
- *
- * @param aPayload
- */
- virtual void SetPayload( const TIndicatorPayload& aPayload );
-
- /**
- * Sets icon position and size
- */
- virtual void SetIconLayout( TAknLayoutRect& aLayout, TInt aX = -1 );
-
- /**
- * Sets text position and font
- */
- virtual void SetTextLayout( TAknLayoutText& aLayout, TInt aX = -1 );
-
- /**
- * Width function overrides
- */
- virtual TInt PreferredWidth();
-
- /**
- * Returns the icon width
- */
- virtual TInt MinimumWidth();
-
- /**
- * virtual void SetWidth(TInt aWidth);
- */
- virtual void SetXPos( TInt aX );
-
- /**
- * Initialize layout of graphics;
- */
- virtual void InitializeLayout();
-
- /**
- * Initialize icon;
- */
- virtual void InitializeIconL( TResourceReader &aReader );
-
- /**
- * draw icon;
- */
- virtual void DrawIcon( CWindowGc& aGc ) const;
-
-private:
-
- /**
- * The icon will be displayer
- *
- * Owned
- */
- CGulIcon* iIcon;
-
- /**
- *
- */
- TInt iValue;
-
- /**
- * The font of the text
- * Not owned.
- */
- const CFont *iFont;
-
- /**
- * The icon alignment
- */
- TScreensaverAlignment iIconAlign;
-
- /**
- * Text position for legacy layout
- */
- TPoint iTextPos;
-
- /**
- * Rect inside which text is drawn
- */
- TRect iTextRect;
-
- /**
- * Text baseline offset from text rect top
- */
- TInt iTextOffset;
-};
-
-#endif // C_SCREENSAVERINDICATORNUMBERANDICON_H
--- a/inc/screensaverindicatortext.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,117 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: CScreensaverIndicatorText declaration.
-*
-*/
-
-
-
-#ifndef C_SCREENSAVERINDICATORTEXT_H
-#define C_SCREENSAVERINDICATORTEXT_H
-
-#include "screensaverindicator.h"
-
-class CScreensaverIndicatorText : public CScreensaverIndicator
- {
-public:
-
- /**
- * Draw the indicator. it should be implemented by the derived class
- */
- virtual void Draw( CWindowGc& aGc ) const;
-
- /**
- * two-phased constructor
- *
- * @param aReader the resource read of the STRUCT
- * SCREENSAVER_PARAMETERS_ARRAY defined by ourself
- * @param aBgColor the background color of display screen
- * @param aTextColor the text color
- */
- virtual void ConstructL( TResourceReader &aReader, TUint32 aBgColor, TUint aTextColor );
-
- /**
- * Set the parameters of drawing
- *
- * @param aCorner the position of the lefttop of the indicator
- * @param aParentRect
- */
- virtual void SetupDrawingParameters( const TPoint& aCorner, const TRect& aParentRect );
-
- /**
- * Check if indicator is visible or not
- *
- * @return TBool
- */
- virtual TBool CheckVisibilityConditions() const;
-
- /**
- * Get the payload through the property
- *
- * @param aPayload the reference to the payload
- */
- virtual void Payload( TIndicatorPayload& aPayload ) const;
-
- /**
- * Set the property through the payload
- *
- * @param aPayload
- */
- virtual void SetPayload( const TIndicatorPayload& aPayload );
-
- /**
- * Sets text position and font
- */
- virtual void SetTextLayout( TAknLayoutText& aLayout, TInt aX = -1 );
-
- /**
- * Returns the width where whole text fits
- */
- virtual TInt PreferredWidth();
-
- /**
- * Set available width
- */
- virtual void SetWidth( TInt aWidth );
-
- /**
- * Set x-position of indicator
- */
- virtual void SetXPos( TInt aX );
-
-private:
-
- /**
- * The text should be displayed
- */
- TBuf16<KMaxPayloadTextLength> iText;
-
- /**
- * The font of the text
- * Not owned.
- */
- const CFont *iFont;
-
- /**
- * Rect inside which text is drawn
- */
- TRect iTextRect;
-
- /**
- * Text baseline offset from text rect top
- */
- TInt iTextOffset;
- };
-
-#endif // C_SCREENSAVERINDICATORTEXT_H
--- a/inc/screensaverrepositorywatcher.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: CScreensaverRepositoryWatcher declaration.
-*
-*/
-
-
-
-#ifndef C_SCREENSAVERREPOSITORYWATCHER_H
-#define C_SCREENSAVERREPOSITORYWATCHER_H
-
-// INCLUDES
-#include <cenrepnotifyhandler.h>
-
-// CLASS DECLARATION
-class CRepository;
-/**
-* The class used to monitor the change of register value
-*/
-class CScreensaverRepositoryWatcher : public CBase,
- public MCenRepNotifyHandlerCallback
- {
-public:
-
- /**
- * Two-phased constructor
- */
- static CScreensaverRepositoryWatcher* NewL(const TUid aUid,
- const TUint32 aKey, CCenRepNotifyHandler::TCenRepKeyType aKeyType,
- TCallBack aCallBack, CRepository* aRepository);
-
- /**
- * Two-phased constructor
- */
- static CScreensaverRepositoryWatcher* NewL(const TUid aUid,
- TCallBack aCallBack, CRepository* aRepository);
-
- /**
- * Destructor
- */
- ~CScreensaverRepositoryWatcher();
-
- /**
- * Returns the changed key
- */
- TUint32 ChangedKey();
-
-public:
- // from MCenRepNotifyHandlerCallback
- void HandleNotifyInt(TUint32 aKey, TInt aNewValue);
- void HandleNotifyString(TUint32 aKey, const TDesC16& aNewValue);
- void HandleNotifyGeneric(TUint32 aKey);
- void HandleNotifyError(TUint32 aKey, TInt aError,
- CCenRepNotifyHandler* aHandler);
-
-private:
-
- /**
- * C++ default constructor
- */
- CScreensaverRepositoryWatcher(const TUid aUid, const TUint32 aKey,
- TCallBack aCallBack, CRepository* aRepository);
-
- /**
- * Two-phased constructor
- */
- void ConstructL(CCenRepNotifyHandler::TCenRepKeyType aKeyType);
-
- /**
- * Two-phased constructor
- */
- void ConstructL();
-
-private:
- TUid iUid;
- TUint32 iKey;
- TUint32 iChangedKey;
- TCallBack iCallBack;
- CRepository* iRepository;
- CCenRepNotifyHandler* iNotifyHandler;
-
- };
-
-#endif // C_SCREENSAVERREPOSITORYWATCHER_H
--- a/inc/screensavershareddatai.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,409 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Defines screensaver shared data connections.
-*
-*/
-
-
-
-#ifndef _SCREENSAVERSHAREDDATAI_H__
-#define _SCREENSAVERSHAREDDATAI_H__
-
-#include <msvapi.h> // for MMsvSessionObserver
-#include <cenrepnotifyhandler.h>
-
-#include "screensaverplugin.h"
-#include "ScreensaverUtils.h"
-#include "ScreensaverInternalPSKeys.h"
-#include "ScreensaverInternalCRKeys.h"
-#include "screensaverengine.h"
-
-enum
- {
- ESSForceLightsOff = 0,
- ESSForceLightsOn
- };
-
-// CLASS DECLARATION
-class CRepository;
-class CScreensaverRepositoryWatcher;
-class CSubscriber;
-class MProfile;
-class MProfileEngine;
-
-class CScreensaverSharedDataI : public CBase, public MMsvEntryObserver,
- public MMsvSessionObserver
- {
-public:
- /**
- * Two-phased constructor
- */
- static CScreensaverSharedDataI* NewL();
-
- /**
- * Destructor
- */
- ~CScreensaverSharedDataI();
-
-public:
- /**
- * Get the screensaver object type
- */
- TDisplayObjectType DisplayObjectType() const;
-
- /*
- * Change the display object type of screensaver
- */
- void SetDisplayObjectType( const TDisplayObjectType aType );
-
- /**
- * Gets the display text
- */
- void GetDisplayObjectText( TDes& aDes ) const;
-
- /*
- * Get the plug-in name
- */
- void GetPluginName( TFileName& aFileName ) const;
-
- /*
- * Get the flag if uses the inversive color
- */
- TBool IsInvertedColors() const;
-
- /**
- * Gets the timeout
- */
- TInt ScreensaverTimeout() const;
-
- /*
- * Is the New Contact Note is actived or not
- */
- TBool IsNCNActive() const;
-
- /*
- * Get the count of the missed calls
- */
- TInt NewMissedCalls() const;
-
- /**
- * Request screen lights to be turned on or off
- *
- * @param sSecs - lights on for aSecs seconds, 0 = off, max 30.
- */
- void SetSSForcedLightsOn( const TInt aSecs );
-
- /**
- * Publish Screensaver on/off status
- *
- * @param aOn ETrue - saver on, EFalse - off
- */
- void SetScreensaverStatus(const TBool aOn = ETrue);
-
- /**
- * Publish "Screensaver started from Idle" status
- */
- void SetSSStartedFromIdleStatus();
-
- /*
- * Get the flag that if the screensaver is allowed or not
- */
- TInt IsScreenSaverAllowed() const;
-
- /*
- * Get the Preview mode of screensaver
- */
- TInt ScreensaverPreviewMode() const;
-
- /*
- * Set the preview mode
- */
- void SetScreensaverPreviewMode( const TInt aMode );
-
- /**
- * Get preview state
- */
- TScreenSaverPreviewState ScreensaverPreviewState() const;
-
- /**
- * Report preview state
- */
- void SetScreensaverPreviewState( const TScreenSaverPreviewState aState );
-
- /*
- * Get keyguard status
- *
- * @return ETrue key guard is active.
- * EFalse key guard is inactive.
- */
- TBool IsKeyguardOn() const;
-
- /**
- * Query power save mode usage
- *
- * @return ETrue, if power save mode should be used
- */
- TBool IsUsePowerSaveMode() const;
-
- /**
- * Query system startup completion status
- *
- * @return ETrue, if system startup is complete
- */
- TBool IsSystemStartupComplete();
-
- /**
- * Gets the default screensaver type
- */
- TDisplayObjectType DefaultScreensaverType() const;
-
- /**
- * Returns number of unread messages in inbox.
- *
- * @return Number of unread messages in inbox.
- */
- TInt UnreadMessagesNumber();
-
- /**
- * Return the name of currently selected profile
- *
- * @return Profile name descriptor.
- */
- const TDesC& ProfileName();
-
- /**
- * Query active profile.
- *
- * @return Id of active profile, or system error code.
- */
- TInt ActiveProfile();
-
- /**
- * Query new email status
- *
- * @return ETrue if there is new email
- */
- TBool IsHaveNewEmail() const;
-
- /**
- * Query new voice mail status
- *
- * @return ETrue, if there is new voice mail
- */
- TBool IsHaveNewVoicemail() const;
-
- /**
- * Query new instant message status
- *
- * @return ETrue, if there are instant messages pending
- */
- TBool IsHaveNewInstantMessages() const;
-
- /**
- * Query silent mode status
- *
- * @return ETrue, if silent mode is on
- */
- TBool IsSilentMode();
-
- /**
- * Query vibra mode status
- *
- * @return ETrue, if vibra mode is on
- */
- TBool IsVibraMode();
-
- /**
- * Query call state
- *
- * @return ETrue if a call is ongoing
- */
- TBool IsOngoingCall();
-
-public:
- /**
- * From MMsvSessionObserver. Not used.
- */
- void HandleSessionEventL(TMsvSessionEvent /*aEvent*/, TAny* /*aArg1*/,
- TAny* /*aArg2*/, TAny* /*aArg3*/);
-
- /**
- * From MMsvEntryObserver. Callback function. Handles global In-box events.
- * @param aEvent An entry event.
- */
- void HandleEntryEventL(TMsvEntryEvent aEvent, TAny* aArg1, TAny* aArg2,
- TAny* aArg3);
-
- /*
- * Returns the pointer of the screensaver repository
- */
- CRepository* ScreensaverRepository() const;
-
-public:
- /*
- * Get the flag of display changed
- */
- TBool GetDisplayObjChanged() const;
- /*
- * Set the flag of display changed
- */
- void SetDisplayObjChanged( TBool aChanged );
-
-private:
-
- /**
- * C++ default constructor
- */
- CScreensaverSharedDataI();
-
- /**
- * Two-phased constructor
- */
- void ConstructL();
-
- /**
- * Connect to the screensaver central repository
- */
- void ConnectToSSCRL();
-
- /**
- * Connect to the Psln Setting central repository
- */
- void ConnectToPslnSettingCRL();
- void ConnectToCommonTsyCRL();
- void ConnectToInboxL();
-
- /**
- * Connects to Profile engine. Returns ETrue if successfully connected
- * iProfileEngine will then point to a valid MProfileEngine
- */
- TBool ConnectToProfileEngine();
-
- /**
- * Connects to active profile. Returns ETrue if successfully connected
- * iActiveProfile will then point to a valid MProfile
- */
- TBool ConnectToActiveProfile();
-
- /*
- * Define the screensaver properties
- */
- void DefineScreensaverProperties( TUint32 aKey, const TSecurityPolicy& aWritePolicy );
-
-private:
- // Shared data key state handlers.
-
- /**
- * Callback fuction. Called when the timeout changed
- */
- static TInt HandleTimeoutChanged(TAny* aPtr);
-
- /**
- * Resets the inactivity timeout
- */
- void ResetInactivityTimeout();
-
- /**
- * Callback fuction. Called when the display object changed
- */
- static TInt HandleDisplayObjChanged(TAny* aPtr);
-
- /*
- * Get the default type
- */
- void GetDefaultType();
-
- /*
- * Get the default type string from the CR
- */
- TInt GetDefaultTypeString( TDes& DefaultScreenSaver );
-
- /*
- * Get the count of the voice mail
- */
- TInt VoiceMailCount( const TUint32 aKey ) const;
-
- /**
- * Invalidate cached active profile
- */
- void InvalidateActiveProfile();
-
- /**
- * Returns the AppUi
- */
- CScreensaverAppUi *AppUi() const;
-
-private:
-
- /*
- * The type of the display object
- */
- TDisplayObjectType iDefaultType;
- /**
- * not owned!
- */
- CScreensaverAppUi* iAppUi;
-
- /**
- * Screensaver specific values.
- */
- CRepository* iScreensaverRepository;
- CScreensaverRepositoryWatcher* iScreensaverRepositoryWatcher;
-
- /**
- * General Settings.
- */
- CRepository* iSettingsRepository;
- CScreensaverRepositoryWatcher* iSettingsRepositoryWatcher;
-
- /**
- * Common tsy repository (voice message waiting)
- */
- CRepository* iCTsyRepository;
-
-
- /**
- * Access to the profile engine
- */
- MProfileEngine* iProfileEngine;
-
- /**
- * Need to store also the profile, so that it's name
- * can be used at any time
- */
- MProfile* iActiveProfile;
-
- /**
- * The Msv session pointer.
- */
- CMsvSession* iMsvSession;
-
- /**
- * In-box folder entry. Note that the entry is not owned by this class.
- */
- CMsvEntry* iInboxFolder;
-
- /**
- * System startup completion flag
- */
- TBool iStartupComplete;
-
- /**
- * Record display changed flag
- */
- TBool iDisplayChange;
- };
-
-#endif // C_SCREENSAVERSHAREDDATAI_H
-// End of file.
--- a/inc/screensavershareddatamonitor.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,184 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Defination for screensaver shared data monitoring.
-*
-*/
-
-
-
-#ifndef C_SCREENSAVERSHAREDDATAMONITOR_H
-#define C_SCREENSAVERSHAREDDATAMONITOR_H
-
-// INCLUDES
-#include <e32property.h>
-
-// CLASS DECLARATION
-class CScreensaverSharedDataI;
-class CScreensaverRepositoryWatcher;
-class CScreensaverEngine;
-class CScreensaverView;
-class CSubscriber;
-
-
-/**
- * Cscreensavershareddatamonitor
- *
- */
-class CScreensaverSharedDataMonitor : public CBase
- {
-public:
- // Constructors and destructor
-
- /**
- * Destructor.
- */
- ~CScreensaverSharedDataMonitor( );
-
- /**
- * Two-phased constructor.
- */
- static CScreensaverSharedDataMonitor* NewL( CScreensaverSharedDataI* aData );
-
-private:
-
- /**
- * Constructor for performing 1st stage construction
- */
- CScreensaverSharedDataMonitor( CScreensaverSharedDataI* aData );
-
- /**
- * EPOC default constructor for performing 2nd stage construction
- */
- void ConstructL();
-
- /*
- * Returns the pointer of screensaver appui
- */
- CScreensaverView* View();
-
- /*
- * Returns the refrence of model instance
- */
- CScreensaverEngine& Model();
-
- /**
- * detele CSubscriber
- */
- void DeleteSubscriber( CSubscriber*& aSubscriber );
-
-private:
-
- /**
- * Callback fuction. Called when the preview mode changed
- */
- static TInt HandlePreviewModeChanged(TAny* aPtr);
-
- /**
- * Callback fuction. Called when the MMC state changed
- */
- static TInt HandleMMCStateChanged(TAny* aPtr);
-
- /**
- * Callback fuction. Called when the USB state changed
- */
- static TInt HandleUSBStateChanged(TAny* aPtr);
-
- /**
- * Callback fuction. Called when the Keyguard state changed
- */
- static TInt HandleKeyguardStateChanged(TAny* aPtr);
-
- /**
- * Callback fuction. Called when the Call state changed
- */
- static TInt HandleCallStateChanged(TAny* aPtr);
-
- /**
- * Callback fuction. Called when the ShuttingDown state changed
- */
- static TInt HandleShuttingDownStateChanged(TAny* aPtr);
-
- /**
- * Callback function. Called when a start/stop request is received
- */
- static TInt HandleActivateSSChanged( TAny* aPtr );
-
- /**
- * Callback function. Called when charger state changes
- */
- static TInt HandleChargerStateChanged( TAny* aPtr );
-
- /**
- * Callback function. Called when the message waiting display state changes
- */
- static TInt HandleMessageWaitingStateChanged( TAny* aPtr );
-
-private:
-
- /*
- * The data of model class, Not own
- */
- CScreensaverSharedDataI* iData;
-
- /*
- * The Preview mode property and its monitor
- */
- RProperty iPreviewModeProperty;
- CSubscriber* iPreviewModeSubscriber;
-
- /*
- * The MMC property and its monitor
- */
- RProperty iMMCWatchProperty;
- CSubscriber* iMMCWatchSubscriber;
-
- /*
- * The USB property and its monitor
- */
- RProperty iUSBWatchProperty;
- CSubscriber* iUSBWatchSubscriber;
-
- /*
- * The KeyGuard state property and its watcher
- */
- RProperty iKeyguardStateProperty;
- CSubscriber* iKeyguardStateSubscriber;
-
- /*
- * The Call state property and its watcher
- */
- RProperty iCallStateProperty;
- CSubscriber* iCallStateSubscriber;
-
- /*
- * The shutting down property and its watcher
- */
- RProperty iShuttingDownProperty;
- CSubscriber* iShuttingDownSubscriber;
-
- RProperty iActivateSSProperty;
- CSubscriber* iActivateSSSubscriber;
-
- /*
- * Charger state property and subscriber
- */
- RProperty iChargerStateProperty;
- CSubscriber* iChargerStateSubscriber;
-
- CRepository* iMessageWaitingRepository;
- CScreensaverRepositoryWatcher* iMessageWaitingWatcher;
-
- };
-
-#endif // C_SCREENSAVERSHAREDDATAMONITOR_H
--- a/inc/screensaversubscriber.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Defines screensaver shared data Subscriber.
-*
-*/
-
-
-
-#ifndef C_SCREENSAVERSUBSCRIBER_H
-#define C_SCREENSAVERSUBSCRIBER_H
-
-#include <e32base.h>
-#include <e32property.h>
-
-/**
-* CSubscriber
-*/
-class CSubscriber : public CActive
- {
-public:
- CSubscriber(TCallBack aCallBack, RProperty& aProperty);
- ~CSubscriber();
-
-public:
- // New functions
- void SubscribeL();
- void StopSubscribe();
-
-private:
- // from CActive
- void RunL();
- void DoCancel();
-
-private:
- TCallBack iCallBack;
- RProperty& iProperty;
- };
-
-#endif // C_SCREENSAVERSUBSCRIBER_H
--- a/inc/screensaverutility.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Defines screensaver utility tools.
-*
-*/
-
-
-
-#ifndef C_SCREENSAVERUTILITY_H
-#define C_SCREENSAVERUTILITY_H
-
-// INCLUDES
-#include <e32base.h>
-
-// CLASS DECLARATION
-
-/**
-* The uitility class of screensaver
-*/
-class ScreensaverUtility
- {
-public:
-
- /**
- * Panic
- */
- static void Panic( TInt aPanic );
-
- /**
- * Flushes the draw buffer (before activating power save)
- */
- static void FlushDrawBuffer();
-
- /**
- * Checks whether screen has been rotated
- */
- static TBool ScreenRotated();
-
- /**
- * Query whether 12-hour clock is displayed
- */
- static TBool Query12HourClock();
-
- /**
- * Brings the application to foreground
- */
- static void BringToForeground();
-
- /**
- * Sends the application to background
- */
- static void SendToBackground();
-
- /**
- * Drive info helpers
- */
- static TBool IsDrivePresent(TInt aDrive);
-
- /**
- * Loads the bitmap
- */
- static CGulIcon* LoadBitmapL();
-
- /**
- * Stop the server heartbeat
- */
- static void StopWServHeartBeat();
- };
-
-#endif // C_SCREENSAVERUTILITY_H
--- a/inc/screensaverview.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,170 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Screensaver view class defination.
-*
-*/
-
-
-
-#ifndef C_SCREENSAVERVIEW_H
-#define C_SCREENSAVERVIEW_H
-
-#include <aknview.h>
-#include <babitflags.h>
-
-#include "screensaver.hrh"
-
-//CLASS DECLARATION
-class CScreensaverBase;
-class CScreensaverEngine;
-
-const TUid KUidScreensaverView ={ 1 };
-//
-// class CScreensaverView
-// an empty place holder for when we are in the background
-class CScreensaverView : public CAknView
- {
-public:
-
- /**
- * Two-phased constructor
- */
- static CScreensaverView* NewL();
-
- /**
- * C++ default constructor
- */
- CScreensaverView();
-
- /**
- * Destructor
- */
- ~CScreensaverView();
-
- /**
- * Two-phased constructor
- */
- void ConstructL();
-
- /**
- * Creates the display object by the parameter
- *
- * @param the object factory object, default type is EDisplayNone
- */
- void CreateDisplayObjectL( TDisplayObjectType aType );
-
- /**
- * Resets the display object
- */
- void SetDisplayObject( TDisplayObjectType aType );
-
- /**
- * Creates the preview display object
- */
- void CreatePreviewDisplayObjectL();
-
- /**
- * Returns true the screensaver doesn't draw anything
- */
- TBool IsContentlessScreensaver() const;
-
-public://From CAknView
-
- /**
- * Returns views id, intended for overriding by sub classes.
- * @return id for this view.
- */
- TUid Id() const;
-
- /**
- * Handles a view activation and passes the message of type
- * @c aCustomMessageId. This function is intended for overriding by
- * sub classes. This function is called by @c AknViewActivatedL().
- * Views should not launch waiting or modal notes or dialogs in
- * @c DoActivateL.
- * @param aPrevViewId Specifies the view previously active.
- * @param aCustomMessageId Specifies the message type.
- * @param aCustomMessage The activation message.
- */
- void DoActivateL( const TVwsViewId& aPrevViewId, TUid aCustomMessageId,
- const TDesC8& aCustomMessage );
-
- /**
- * View deactivation function intended for overriding by sub classes.
- * This function is called by @c AknViewDeactivated().
- */
- void DoDeactivate();
-
- /**
- * Shows the display object
- */
- void ShowDisplayObject();
-
- /**
- * Hides the display object
- */
- void HideDisplayObject();
-
- /**
- * Update indicator attributes and refresh display
- */
- void UpdateAndRefresh();
-
-private:
- /**
- * Returns the default type of screensaver
- */
- TDisplayObjectType DefaultScreensaverType();
-
- /**
- * Returns the psln setting type of screensaver
- */
- TDisplayObjectType PslnSettingScreensaverType();
-
- /**
- * Get the model of appui
- */
- CScreensaverEngine& Model() const;
-
- /**
- * Delete the display object
- */
- void DestroyDisplayObject();
-
-private:
- /**
- * The type of current control
- */
- TDisplayObjectType iCurrentControlType;
-
- /**
- * The display object of screensaver
- *
- * Owned
- */
- CScreensaverBase* iControl;
-
- /**
- * The plugin refresh rate
- */
- TInt iPluginRefreshRate;
-
- /**
- * True if the active screensaver doesn't draw (e.g None)
- */
- TBool iIsContentless;
-
- };
-
-#endif // C_SCREENSAVERVIEW_H
--- a/layers.sysdef.xml Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE SystemDefinition SYSTEM "sysdef_1_4_0.dtd" [
- <!ENTITY layer_real_source_path "sf/app/screensaver" >
-]>
-
-<SystemDefinition name="screensaver" schema="1.4.0">
- <systemModel>
- <layer name="app_layer">
- <module name="screensaver">
- <unit unitID="abs.screensaver" mrp="" bldFile="&layer_real_source_path;/group" name="screensaver" />
- </module>
- </layer>
- </systemModel>
-</SystemDefinition>
--- a/rom/screensaver.iby Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-/*
-* Copyright (c) 2002-2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Screen saver application IBY
-*
-*/
-
-
-
-
-
-#ifndef SCREENSAVER_IBY
-#define SCREENSAVER_IBY
-
-// Application
-S60_APP_EXE(screensaver)
-
-// Resources (not localised)
-S60_APP_RESOURCE(screensaver)
-
-// Application information files
-S60_APP_AIF_RSC(screensaver)
-
-// Backup registration
-data=ZPRIVATE\100056CF\backup_registration.xml private\100056CF\backup_registration.xml
-
-#endif // SCREENSAVER_IBY
--- a/scrsaver/screensaveraiwplugin/group/bld.inf Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Build information file for project screensaveraiwplugin
-*
-*/
-
-
-
-
-
-
-// ============================================================================
-// Platforms
-// ============================================================================
-//
-PRJ_PLATFORMS
-
-// ============================================================================
-// Exports
-// ============================================================================
-//
-PRJ_EXPORTS
-../loc/screensaveraiwplugin.loc MW_LAYER_LOC_EXPORT_PATH(screensaveraiwplugin.loc)
-
-../rom/screensaveraiwplugin.iby CORE_MW_LAYER_IBY_EXPORT_PATH(screensaveraiwplugin.iby)
-../rom/screensaveraiwpluginresources.iby LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(screensaveraiwpluginresources.iby)
-
-
-// ============================================================================
-// MMP Files
-// ============================================================================
-//
-PRJ_MMPFILES
-
-#if defined(TOOLS) || defined(CWTOOLS)
-#else
-screensaveraiwplugin.mmp
-#endif
-
-PRJ_TESTMMPFILES
-
-// End of file
--- a/scrsaver/screensaveraiwplugin/group/screensaveraiwplugin.mmp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Project definition file for project aknswallpaperplugin
-*
-*/
-
-
-
-
-#include <platform_paths.hrh>
-#include <data_caging_paths.hrh>
-
-TARGET screensaveraiwplugin.dll
-TARGETTYPE PLUGIN
-UID 0x10009D8D 0x10282921
-
-CAPABILITY CAP_ECOM_PLUGIN
-VENDORID VID_DEFAULT
-
-SOURCEPATH ../src
-SOURCE screensaveraiwplugin.cpp
-
-// Published to /resource
-START RESOURCE screensaveraiwplugin.rss
-HEADER
-TARGET screensaveraiwplugin.rsc
-TARGETPATH RESOURCE_FILES_DIR
-LANGUAGE_IDS
-END // RESOURCE
-
-// Published to /resource/plugins
-START RESOURCE 10282921.rss
-TARGET screensaveraiwplugin.rsc
-END
-
-USERINCLUDE ../inc
-USERINCLUDE ../../scrsaverplugins/ScreenSaverAnimPlugin/inc
-
-// This is a SYSTEMINCLUDE macro containing the middleware
-// layer specific include directories
-MW_LAYER_SYSTEMINCLUDE
-
-SYSTEMINCLUDE /epoc32/include/ecom
-
-LIBRARY euser.lib
-LIBRARY servicehandler.lib
-LIBRARY CommonEngine.lib // RConeResourceLoader
-LIBRARY cone.lib // CCoeEnv
-LIBRARY efsrv.lib // TParse
-LIBRARY avkon.lib
-LIBRARY aknskinsrv.lib // RAknsSrvSession
-LIBRARY imageconversion.lib // CImageDecoder
-LIBRARY centralrepository.lib // CRepository
--- a/scrsaver/screensaveraiwplugin/inc/screensaveraiwplugin.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,122 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Header file for class CScreenSaverAIWPlugin
-*
-*/
-
-
-
-
-#ifndef C_CSCREENSAVERAIWPLUGIN_H
-#define C_CSCREENSAVERAIWPLUGIN_H
-
-#include <AiwServiceIfMenu.h>
-#include <ConeResLoader.h>
-
-#define CSCREENSAVERAIWPLUGIN_TRACES
-
-
-class CRepository;
-
-/**
- * CScreenSaverAIWPlugin plugin implementation.
- *
- * This plugin implements an AIW provider for setting image files as slide set
- * screen saver or setting a single animated image file as animated screen saver.
- *
- *
- * @since S60 v3.2
- */
-class CScreenSaverAIWPlugin : public CAiwServiceIfMenu
- {
- public:
- static CScreenSaverAIWPlugin* NewL();
- virtual ~CScreenSaverAIWPlugin();
-
- private:
- // from base class CAiwServiceIfMenu
-
- void InitialiseL(
- MAiwNotifyCallback& aFrameworkCallback,
- const RCriteriaArray& aInterest);
-
- void HandleServiceCmdL(
- const TInt& aCmdId,
- const CAiwGenericParamList& aInParamList,
- CAiwGenericParamList& aOutParamList,
- TUint aCmdOptions = 0,
- const MAiwNotifyCallback* aCallback = NULL);
-
- void InitializeMenuPaneL(
- CAiwMenuPane& aMenuPane,
- TInt aIndex,
- TInt aCascadeId,
- const CAiwGenericParamList& aInParamList);
-
- void HandleMenuCmdL(
- TInt aMenuCmdId,
- const CAiwGenericParamList& aInParamList,
- CAiwGenericParamList& aOutParamList,
- TUint aCmdOptions = 0,
- const MAiwNotifyCallback* aCallback = NULL);
-
- private:
- CScreenSaverAIWPlugin();
- void ConstructL();
-
- private: // New
-
- struct TImageFile
- {
- TPtrC iFileName;
- TPtrC iMimeType;
- };
-
- void DisplayInfoNoteL(TInt aTextResourceId);
- void ValidateParamListL(const CAiwGenericParamList& aParamList);
- TBool AnyMimeTypeSupportedL(const CAiwGenericParamList& aParamList);
- TBool IsMimeTypeSupportedL(const TDesC& aMimeTypeString);
- TBool IsAnimatedMimeTypeL( const TDesC& aMimeTypeString, TBool& aUseImageDecoder );
- TPtrC GetAiwParamAsDescriptor(TInt& aIndex,
- const CAiwGenericParamList& aParamList,
- TGenericParamId aParamType);
- void StoreImageListToFileL( const RArray<TImageFile>& aSupportedImageFiles );
- void OpenImageFileL( RFile& aImageFile, const TInt aSlideSetType );
- TBool IsAnimatedImageL( const TDesC& aFileName, const TDesC& aMimeTypeString );
- TBool IsReallyAnimatedImageL( const TDesC& aFileName );
-
-#ifdef CSCREENSAVERAIWPLUGIN_TRACES
-
- void DumpParamList(const TDesC& aMethod, const CAiwGenericParamList& aParamList);
- void DumpParamList(const TDesC& aMethod,
- TGenericParamId aParamType,
- const CAiwGenericParamList& aParamList);
- void DumpSupportedImageFileList(const RArray<TImageFile>& aSupportedImageFiles);
-#endif
-
-
- void GetSupportedImageFilesL(const CAiwGenericParamList& aParamList,
- RArray<TImageFile>& aSupportedImageFiles);
- void SetAnimatedScreenSaverL( const RArray<TImageFile>& aSupportedImageFiles );
- void SetSlideShowScreenSaverL( const RArray<TImageFile>& aSupportedImageFiles );
-
- private:
- RConeResourceLoader iConeResLoader;
- RArray<TImageFile> iSupportedImageFiles;
- CRepository* iScreensaverRepository;
- CRepository* iAnimationRepository;
- CRepository* iSlideshowRepository;
- };
-
-#endif // C_CSCREENSAVERAIWPLUGIN_H
--- a/scrsaver/screensaveraiwplugin/inc/screensaveraiwplugin.rh Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Resource header for project screensaveraiwplugin
-*
-*/
-
-
-
-
-#ifndef SCREENSAVERAIWPLUGIN_RH
-#define SCREENSAVERAIWPLUGIN_RH
-
-#define KScreenSaverAIWPluginImplementationUid 0x10282921
-
-//
-// ---------------------------------------------------------------------------
-// Menu commands for screensaver AIW plugin
-// ---------------------------------------------------------------------------
-//
-enum TScreenSaverAIWPluginCommands
- {
- EScreenSaverAIWPluginCmdSetScreenSaver = 1
- };
-
-
-enum TScreenSaverAIWPluginNotes
- {
- EScreenSaverAIWPluginGeneralWaitNote = 1
- };
-
-#endif // SCREENSAVERAIWPLUGIN_RH
--- a/scrsaver/screensaveraiwplugin/loc/screensaveraiwplugin.loc Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Localization strings for project screensaveraiwplugin
-*
-*/
-
-
-
-
-
-//d:Menu item text for setting the selected images as screen saver
-//l:list_single_popup_menu_pane_1
-//w:
-//r:3.2
-//
-#define qtn_sanim_set_as_screensaver "Set as screen saver"
-
-//d:Menu item text for setting the selected images as screen saver
-//l:list_single_popup_submenu_pane_t1
-//w:
-//r:3.2
-//
-#define qtn_sanim_submenu_screensaver "Screen saver"
-
-
-//d:Confirmation note text for setting and image as animated
-//d:screen saver.
-//l:popup_note_window_1
-//w:
-//r:3.2
-//
-#define qtn_sanim_image_as_animation "File set as animated screen saver"
-
-//d:Confirmation note text for adding an image to slide set screen saver
-//l:popup_note_window_1
-//w:
-//r:3.2
-//
-#define qtn_sanim_image_added "Image added to slide set screen saver"
-
-//d:Confirmation note text for adding images to slide set screen saver
-//l:popup_note_window_1
-//w:
-//r:3.2
-//
-#define qtn_sanim_images_added "Images added to slide set screen saver"
-
-// End of File
--- a/scrsaver/screensaveraiwplugin/rom/screensaveraiwplugin.iby Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: IBY file for screensaveraiwplugin
-*
-*/
-
-
-
-#ifndef __SCREENSAVERAIWPLUGIN_IBY__
-#define __SCREENSAVERAIWPLUGIN_IBY__
-
-
-#ifdef RD_SCREENSAVERAIWPLUGIN
-ECOM_PLUGIN(screensaveraiwplugin.dll,10282921.rsc)
-#endif
-
-#endif // __SCREENSAVERAIWPLUGIN_IBY__
-
-// End of File
\ No newline at end of file
--- a/scrsaver/screensaveraiwplugin/rom/screensaveraiwpluginresources.iby Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: IBY file for screensaveraiwpluginresouces
-*
-*/
-
-
-
-#ifndef __SCREENSAVERAIWPLUGINRESOURCES_IBY__
-#define __SCREENSAVERAIWPLUGINRESOURCES_IBY__
-
-#ifdef RD_SCREENSAVERAIWPLUGIN
-//localizable resources
-data=DATAZ_\RESOURCE_FILES_DIR\screensaveraiwplugin.rsc RESOURCE_FILES_DIR\screensaveraiwplugin.rsc
-#endif
-
-#endif // __SCREENSAVERAIWPLUGINRESOURCES_IBY__
\ No newline at end of file
--- a/scrsaver/screensaveraiwplugin/src/10282921.rss Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: AIW(ECOM) registration resource file for project screensaveraiwplugin
-*
-*/
-
-
-
-
-#include <registryinfov2.rh>
-#include <AiwCommon.hrh>
-#include "screensaveraiwplugin.rh"
-
-
-// ---------------------------------------------------------------------------
-// Registration info for ECOM framework.
-// Specifies also provider interest for AIW framework.
-// ---------------------------------------------------------------------------
-//
-RESOURCE REGISTRY_INFO theInfo
- {
- resource_format_version = RESOURCE_FORMAT_VERSION_2;
- dll_uid = KScreenSaverAIWPluginImplementationUid;
- interfaces =
- {
- INTERFACE_INFO
- {
- // Menu service class (offers menu based services)
- interface_uid = KAiwClassMenu;
- implementations =
- {
- IMPLEMENTATION_INFO
- {
- implementation_uid = KScreenSaverAIWPluginImplementationUid;
- version_no = 1;
- display_name = "";
- default_data = "*";
- opaque_data = KAiwCmdAssignScreenSaverStr;
- }
- };
- }
- };
- }
--- a/scrsaver/screensaveraiwplugin/src/screensaveraiwplugin.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,657 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Implementation file for class CScreenSaverAIWPlugin
-*
-*/
-
-
-
-#include <eikmenup.h>
-#include <f32file.h>
-#include <e32property.h>
-#include <AiwMenu.h>
-#include <AiwCommon.h>
-#include <AiwCommon.hrh>
-#include <barsread.h>
-#include <eikenv.h>
-#include <implementationproxy.h>
-#include <StringLoader.h>
-#include <aknnotewrappers.h>
-#include <data_caging_path_literals.hrh>
-#include <screensaveraiwplugin.rsg>
-#include <AknsSrvClient.h>
-#include <imageconversion.h>
-#include <centralrepository.h>
-#include <ScreensaverInternalCRKeys.h>
-#include <ScreensaverInternalPSKeys.h>
-#include <pslninternalcrkeys.h>
-#include "ScreenSaverAnimPluginInternalCRKeys.h"
-#include "screensaveraiwplugin.h"
-#include "screensaveraiwplugin.rh"
-
-_LIT(KResourceFileName, "screensaveraiwplugin.rsc");
-_LIT(KDriveZ, "z:");
-_LIT(KPluginUidAnimation, "[1020744D]25"); // '25' is the drive number (Z = ROM), not
-_LIT(KPluginUidSlideshow, "[102823ED]25"); // mandatory
-
-
-_LIT(KScreenSaverAIWPluginMimeTypeImage, "image");
-_LIT(KScreenSaverAIWPluginMimeTypeOTABitmap, "image/x-ota-bitmap");
-_LIT(KScreenSaverAIWPluginSeparator, "/");
-
-_LIT(KScreenSaverAIWPluginMimeTypeGIF, "image/gif");
-_LIT(KScreenSaverAIWPluginMimeTypeSVG, "image/svg+xml");
-_LIT(KScreenSaverAIWPluginMimeTypeM3G, "application/m3g");
-_LIT(KScreenSaverAIWPluginMimeTypeSWF, "application/x-shockwave-flash");
-
-
-// ======== LOCAL FUNCTIONS ========
-
-// ======== MEMBER FUNCTIONS ========
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAIWPlugin::NewL
-// -----------------------------------------------------------------------------
-//
-CScreenSaverAIWPlugin* CScreenSaverAIWPlugin::NewL()
- {
- CScreenSaverAIWPlugin* self = new( ELeave ) CScreenSaverAIWPlugin;
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop(self);
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAIWPlugin::CScreenSaverAIWPlugin
-// -----------------------------------------------------------------------------
-//
-CScreenSaverAIWPlugin::CScreenSaverAIWPlugin():
- iConeResLoader(*CCoeEnv::Static())
- {
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAIWPlugin::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAIWPlugin::ConstructL()
- {
- TParse parse;
- parse.Set(KResourceFileName, &KDC_RESOURCE_FILES_DIR, &KDriveZ);
- TFileName resourceFileName;
- resourceFileName.Append(parse.FullName());
- iConeResLoader.OpenL(resourceFileName);
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAIWPlugin::~CScreenSaverAIWPlugin
-// -----------------------------------------------------------------------------
-//
-CScreenSaverAIWPlugin::~CScreenSaverAIWPlugin()
- {
- iConeResLoader.Close();
- iSupportedImageFiles.Close();
- delete iScreensaverRepository;
- delete iAnimationRepository;
- }
-
-// ---------------------------------------------------------------------------
-// From class CAiwServiceIfMenu.
-// ---------------------------------------------------------------------------
-//
-void CScreenSaverAIWPlugin::InitialiseL(MAiwNotifyCallback& /*aFrameworkCallback*/,
- const RCriteriaArray& /*aInterest*/)
- {
- // Not needed.
- }
-
-// ---------------------------------------------------------------------------
-// From class CAiwServiceIfMenu.
-//
-// Implements setting the passed image(s) as screensaver.
-// ---------------------------------------------------------------------------
-//
-void CScreenSaverAIWPlugin::HandleServiceCmdL(const TInt& aCmdId,
- const CAiwGenericParamList& aInParamList,
- CAiwGenericParamList& /*aOutParamList*/,
- TUint /*aCmdOptions*/,
- const MAiwNotifyCallback* aCallback)
- {
- // Handle only KAiwCmdAssignScreenSaver command.
- if ( aCmdId == KAiwCmdAssignScreenSaver )
- {
-#ifdef CSCREENSAVERAIWPLUGIN_TRACES
- DumpParamList(_L("HandleServiceCmdL"),aInParamList);
-#endif
-
- // Leave, if there were not given all the required parameters
- ValidateParamListL(aInParamList);
-
- // Get the supported image files to iSupportedImageFiles
- GetSupportedImageFilesL(aInParamList,iSupportedImageFiles);
-
-#ifdef CSCREENSAVERAIWPLUGIN_TRACES
- DumpSupportedImageFileList(iSupportedImageFiles);
-#endif
-
- TInt textResourceId = 0;
- if (iSupportedImageFiles.Count() == 1 && IsAnimatedImageL(iSupportedImageFiles[0].iFileName,
- iSupportedImageFiles[0].iMimeType))
- {
- textResourceId = R_SCREEN_SAVER_AIW_PLUGIN_TEXT_IMAGE_AS_ANIMATION;
- SetAnimatedScreenSaverL(iSupportedImageFiles);
- }
- else
- {
- textResourceId = ((iSupportedImageFiles.Count() > 1)?R_SCREEN_SAVER_AIW_PLUGIN_TEXT_IMAGES_ADDED:
- R_SCREEN_SAVER_AIW_PLUGIN_TEXT_IMAGE_ADDED);
- SetSlideShowScreenSaverL(iSupportedImageFiles);
- }
-
- // display confirmation note
- DisplayInfoNoteL(textResourceId);
-
- // If aCallback defined inform consumers that we have done with
- // the operation.
- if (aCallback)
- {
- // Cope with the design problems of AIW framework
- MAiwNotifyCallback* nonConstCallback =
- const_cast<MAiwNotifyCallback*> (aCallback);
-
- CAiwGenericParamList* eventParamList = CAiwGenericParamList::NewL();
- CleanupStack::PushL(eventParamList);
- nonConstCallback->HandleNotifyL(
- KAiwCmdAssignScreenSaver,
- KAiwEventCompleted,
- *eventParamList,
- aInParamList);
- CleanupStack::PopAndDestroy(eventParamList);
- }
- }
- }
-
-// ---------------------------------------------------------------------------
-// From class CAiwServiceIfMenu.
-//
-// Inserts plugin's menu items to aMenuPane.
-// ---------------------------------------------------------------------------
-//
-void CScreenSaverAIWPlugin::InitializeMenuPaneL(CAiwMenuPane& aMenuPane,
- TInt aIndex,
- TInt /*aCascadeId*/,
- const CAiwGenericParamList& aInParamList)
- {
-#ifdef CSCREENSAVERAIWPLUGIN_TRACES
- DumpParamList(_L("InitializeMenuPaneL"),aInParamList);
-#endif
-
- // Insert menu only if there is at least a single supported MIME type is given
- if ( AnyMimeTypeSupportedL(aInParamList) )
- {
- TResourceReader reader;
- CCoeEnv::Static()->CreateResourceReaderLC(reader, R_SCREEN_SAVER_AIW_PLUGIN_MENU);
- aMenuPane.AddMenuItemsL(reader, KAiwCmdAssignScreenSaver, aIndex);
- CleanupStack::PopAndDestroy(); // reader
- }
- }
-
-// ---------------------------------------------------------------------------
-// From class CAiwServiceIfMenu.
-//
-// Implements menu command handling for EScreenSaverAIWPluginCmdSetScreenSaver.
-// ---------------------------------------------------------------------------
-//
-void CScreenSaverAIWPlugin::HandleMenuCmdL(
- TInt aMenuCmdId,
- const CAiwGenericParamList& aInParamList,
- CAiwGenericParamList& aOutParamList,
- TUint aCmdOptions,
- const MAiwNotifyCallback* aCallback)
- {
- if (aMenuCmdId == EScreenSaverAIWPluginCmdSetScreenSaver)
- {
- // Menu commands are handled as service commands.
- HandleServiceCmdL(
- KAiwCmdAssignScreenSaver,
- aInParamList,
- aOutParamList,
- aCmdOptions,
- aCallback );
- }
- }
-
-// -----------------------------------------------------------------------------
-// Implements showing information note
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAIWPlugin::DisplayInfoNoteL(TInt aTextResourceId)
- {
- HBufC* text = StringLoader::LoadLC(aTextResourceId);
- CAknInformationNote* dlg = new (ELeave) CAknInformationNote(EFalse);
- dlg->ExecuteLD(*text);
- CleanupStack::PopAndDestroy(text);
- }
-
-
-// -----------------------------------------------------------------------------
-// Validates aParamList if it is not valid
-// the method leaves with KErrArgument
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAIWPlugin::ValidateParamListL(const CAiwGenericParamList& aParamList)
- {
- TBool valid = EFalse;
-
- // The parameter list must be dividable by 2 because the number of file name
- // items must be equal with the number of MIME type items.
- valid = !(aParamList.Count()%2);
-
- valid = valid && AnyMimeTypeSupportedL(aParamList);
-
- if (valid)
- {
- TInt index = 0;
- TPtrC fileName = GetAiwParamAsDescriptor(index, aParamList, EGenericParamFile);
-
- // At least one file name parameter should be given
- valid = !(fileName == KNullDesC);
- }
-
- if (!valid)
- {
- User::Leave(KErrArgument);
- }
- }
-
-// -----------------------------------------------------------------------------
-// Gets supported image file list from generic param list
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAIWPlugin::GetSupportedImageFilesL(const CAiwGenericParamList& aParamList,
- RArray<TImageFile>& aSupportedImageFiles)
- {
- aSupportedImageFiles.Reset();
- for (TInt i = 0;; i++)
- {
- TImageFile imageFile;
- TPtrC fileName = GetAiwParamAsDescriptor(i, aParamList, EGenericParamFile);
-
- if (fileName == KNullDesC)
- {
- // last file item is reached
- break;
- }
-
- TPtrC mimeTypeString = GetAiwParamAsDescriptor(i, aParamList, EGenericParamMIMEType);
- if (mimeTypeString == KNullDesC)
- {
- // missing MIME type for file
- User::Leave(KErrArgument);
- break;
- }
- else if (IsMimeTypeSupportedL(mimeTypeString))
- {
- imageFile.iFileName.Set(fileName);
- imageFile.iMimeType.Set(mimeTypeString);
- aSupportedImageFiles.Append(imageFile);
- }
- }
- }
-
-
-// -----------------------------------------------------------------------------
-// Returns ETrue if any of the MIME types is supported
-// -----------------------------------------------------------------------------
-//
-TBool CScreenSaverAIWPlugin::AnyMimeTypeSupportedL(const CAiwGenericParamList& aParamList)
- {
- TBool ret = EFalse;
- for (TInt i = 0;; i++)
- {
- TPtrC mimeTypeString = GetAiwParamAsDescriptor(i, aParamList, EGenericParamMIMEType);
- if (mimeTypeString == KNullDesC)
- {
- // If no MIME type parameters are passed just leave
- if (i <= 0)
- {
- User::Leave(KErrArgument);
- }
- break;
- }
- else if (IsMimeTypeSupportedL(mimeTypeString))
- {
- ret = ETrue;
- break;
- }
- }
- return ret;
- }
-// -----------------------------------------------------------------------------
-// Implements checking if a given MIME type is supported or not
-// -----------------------------------------------------------------------------
-//
-TBool CScreenSaverAIWPlugin::IsMimeTypeSupportedL(const TDesC& aMimeTypeString)
- {
- // Check for a type separator in the string
- TInt pos = aMimeTypeString.Find(KScreenSaverAIWPluginSeparator);
-
- // Leave if no separator was found.. the MIME
- // standard requires it
- if (pos == KErrNotFound)
- {
- User::Leave(KErrArgument);
- }
-
- // Construct the compare string
- TPtrC compareString(aMimeTypeString.Left(pos));
-
- // Perform the comparison
- TBool ret = EFalse;
-
- // Mime type case: IMAGE/* except IMAGE/X-OTA-BITMAP
- if (!compareString.CompareF(KScreenSaverAIWPluginMimeTypeImage) &&
- aMimeTypeString.CompareF(KScreenSaverAIWPluginMimeTypeOTABitmap))
- {
- ret = ETrue;
- }
-
- if (!ret)
- {
- TBool dummy;
- ret = IsAnimatedMimeTypeL(aMimeTypeString,dummy);
- }
-
- return ret;
- }
-
-// ---------------------------------------------------------------------------
-// Determines if the MIME type is animated or not and in addition returns
-// in aUseImageDecoder if image decoder should be used to determine if
-// the image is really animated
-// ---------------------------------------------------------------------------
-//
-TBool CScreenSaverAIWPlugin::IsAnimatedMimeTypeL( const TDesC& aMimeTypeString, TBool& aUseImageDecoder )
- {
- TBool ret = EFalse;
- aUseImageDecoder = EFalse;
-
- // check if animated an needs image decoder
- if (!aMimeTypeString.CompareF(KScreenSaverAIWPluginMimeTypeGIF))
- {
- aUseImageDecoder = ETrue;
- ret = ETrue;
- }
- else if (!aMimeTypeString.CompareF(KScreenSaverAIWPluginMimeTypeSVG) ||
- !aMimeTypeString.CompareF(KScreenSaverAIWPluginMimeTypeM3G) ||
- !aMimeTypeString.CompareF(KScreenSaverAIWPluginMimeTypeSWF))
- {
- ret = ETrue;
- }
-
- return ret;
- }
-
-
-// -----------------------------------------------------------------------------
-// Implements getting a AIW parameter as descriptor
-// -----------------------------------------------------------------------------
-//
-TPtrC CScreenSaverAIWPlugin::GetAiwParamAsDescriptor(
- TInt& aIndex,
- const CAiwGenericParamList& aParamList,
- TGenericParamId aParamType)
- {
- const TAiwGenericParam* genericParam = NULL;
- genericParam = aParamList.FindFirst(
- aIndex,
- aParamType,
- EVariantTypeDesC);
-
- if (aIndex != KErrNotFound && genericParam)
- {
- // Get the data
- return genericParam->Value().AsDes();
- }
- else
- {
- return KNullDesC();
- }
- }
-
-#ifdef CSCREENSAVERAIWPLUGIN_TRACES
-
-// -----------------------------------------------------------------------------
-// Dump parameters in aParamList
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAIWPlugin::DumpParamList(const TDesC& aMethod, const CAiwGenericParamList& aParamList)
- {
- DumpParamList(aMethod,EGenericParamFile,aParamList);
- DumpParamList(aMethod,EGenericParamMIMEType,aParamList);
- }
-
-// -----------------------------------------------------------------------------
-// Dump parameters in aParamList for a given aParamType
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAIWPlugin::DumpParamList(const TDesC& aMethod,
- TGenericParamId aParamType,
- const CAiwGenericParamList& aParamList)
- {
- for (TInt i = 0 ;; i++)
- {
- TPtrC paramString = GetAiwParamAsDescriptor(i, aParamList, aParamType);
- if (paramString == KNullDesC)
- {
- break;
- }
- else
- {
- RDebug::Print( _L("ScreenSaverAIWPlugin: %x CScreenSaverAIWPlugin::%S: Index=%d, paramType=%d, paramString=%S"), this, &aMethod, i, aParamType, ¶mString);
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// Dump supported image file list
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAIWPlugin::DumpSupportedImageFileList(const RArray<TImageFile>& aSupportedImageFiles)
- {
- for (TInt i = 0 ; i < aSupportedImageFiles.Count() ; i++)
- {
- RDebug::Print( _L("ScreenSaverAIWPlugin: %x DumpSupportedImageFileList: Index=%d, file=%S, MIME type=%S"), this, i, &aSupportedImageFiles[i].iFileName, &aSupportedImageFiles[i].iMimeType);
- }
- }
-
-#endif
-
-// ---------------------------------------------------------------------------
-// Determines if an image is animated or not
-// ---------------------------------------------------------------------------
-//
-TBool CScreenSaverAIWPlugin::IsAnimatedImageL( const TDesC& aFileName,
- const TDesC& aMimeTypeString )
- {
- TBool useImageDecoder = EFalse;
- TBool animated = IsAnimatedMimeTypeL( aMimeTypeString, useImageDecoder );
-
- if (useImageDecoder)
- {
- animated = IsReallyAnimatedImageL(aFileName);
- }
-
- return animated;
- }
-
-// ---------------------------------------------------------------------------
-// Determines if an image file is really animated or not
-// ---------------------------------------------------------------------------
-//
-TBool CScreenSaverAIWPlugin::IsReallyAnimatedImageL( const TDesC& aFileName )
- {
- CImageDecoder* decoder = CImageDecoder::FileNewL(CCoeEnv::Static()->FsSession(),aFileName);
- CleanupStack::PushL( decoder );
- TBool animated = (decoder->FrameCount() > 1);
- CleanupStack::PopAndDestroy(); // decoder
- return animated;
- }
-
-// ---------------------------------------------------------------------------
-// Set and activate slide-show screen saver.
-// ---------------------------------------------------------------------------
-//
-void CScreenSaverAIWPlugin::SetSlideShowScreenSaverL( const RArray<TImageFile>& aSupportedImageFiles )
- {
- StoreImageListToFileL(aSupportedImageFiles);
-
- if (iScreensaverRepository == NULL)
- {
- // Setting the screensaver type & plugin name
- iScreensaverRepository = CRepository::NewL(KCRUidScreenSaver);
- }
- if (iSlideshowRepository == NULL)
- {
- iSlideshowRepository = CRepository::NewL(KCRUidThemes);
- }
-
- // set psln to "not random"
- iSlideshowRepository->Set(KThemesScreenSaverSlideSetType, 0);
-
- // Slideshow plugin used
- iScreensaverRepository->Set(KScreenSaverPluginName, KPluginUidSlideshow);
-
- // Type 3 = plugin
- iScreensaverRepository->Set(KScreenSaverObject, EScreensaverTypePlugin);
-
- // Inform screensaver that slide set has changed
- User::LeaveIfError(
- RProperty::Set(
- KPSUidScreenSaver,
- KScreenSaverPluginSettingsChanged,
- EScreenSaverPluginSettingsChanged ) );
- }
-
-// ---------------------------------------------------------------------------
-// Set and activate animated screen saver.
-// ---------------------------------------------------------------------------
-//
-void CScreenSaverAIWPlugin::SetAnimatedScreenSaverL( const RArray<TImageFile>& aSupportedImageFiles )
- {
- if (iScreensaverRepository == NULL)
- {
- // Setting the screensaver type & plugin name
- iScreensaverRepository = CRepository::NewL(KCRUidScreenSaver);
- }
-
- if (iAnimationRepository == NULL)
- {
- // Setting the screensaver type & plugin name
- iAnimationRepository = CRepository::NewL(KCRUidScreenSaverAnimPlugin);
- }
-
- iAnimationRepository->Set(KScreenSaverAnimatedFileName, aSupportedImageFiles[0].iFileName);
-
- // Animation plugin used
- iScreensaverRepository->Set(KScreenSaverPluginName, KPluginUidAnimation);
-
- // Type 3 = plugin
- iScreensaverRepository->Set(KScreenSaverObject, EScreensaverTypePlugin);
- }
-
-// ---------------------------------------------------------------------------
-// Stores slide set image file names to file.
-// ---------------------------------------------------------------------------
-//
-void CScreenSaverAIWPlugin::StoreImageListToFileL( const RArray<TImageFile>& aSupportedImageFiles )
- {
- // Get file from server.
- RFile imgFile;
- OpenImageFileL( imgFile, EAknsSrvInifileSSSS );
- CleanupClosePushL( imgFile );
-
- // Finally, write image filenames to the file.
- TFileText textFile;
- textFile.Set( imgFile );
- textFile.Seek( ESeekEnd );
-
- for (TInt i = 0 ; i < aSupportedImageFiles.Count(); i++)
- {
- User::LeaveIfError( textFile.Write( aSupportedImageFiles[i].iFileName ) );
- }
-
- imgFile.Flush();
-
- CleanupStack::PopAndDestroy(); // imgFile
- }
-
-// ---------------------------------------------------------------------------
-// Open image list file for operations.
-// ---------------------------------------------------------------------------
-//
-void CScreenSaverAIWPlugin::OpenImageFileL( RFile& aImageFile, const TInt aSlideSetType )
- {
- // First, connect to skin server.
- RAknsSrvSession skinsrv;
- User::LeaveIfError( skinsrv.Connect() );
- CleanupClosePushL( skinsrv );
-
- // Then get file handle.
- TInt fileserverhandle = 0;
- TInt filehandle = 0;
- // Validate type and open image file.
- if ( aSlideSetType == EAknsSrvInifileSSWP )
- {
- fileserverhandle =
- skinsrv.OpenImageInifile( EAknsSrvInifileSSWP, filehandle );
- }
- else
- {
- fileserverhandle =
- skinsrv.OpenImageInifile( EAknsSrvInifileSSSS, filehandle );
-
- }
- if ( fileserverhandle <= 0 || filehandle == 0 )
- {
- User::Leave( fileserverhandle );
- }
-
- // Finally adopt file from server.
- User::LeaveIfError( aImageFile.AdoptFromServer( fileserverhandle, filehandle ) );
- CleanupStack::PopAndDestroy(); // skinsrv
- }
-
-
-
-// ======== ECOM INITIALIZATION ========
-
-// Map the interface UIDs to implementation factory functions
-const TImplementationProxy ImplementationTable[] =
- {
- IMPLEMENTATION_PROXY_ENTRY(KScreenSaverAIWPluginImplementationUid, CScreenSaverAIWPlugin::NewL)
- };
-
-// ---------------------------------------------------------
-// Exported proxy for instantiation method resolution
-// ---------------------------------------------------------
-//
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
- {
- aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
- return ImplementationTable;
- }
-
--- a/scrsaver/screensaveraiwplugin/src/screensaveraiwplugin.rss Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Resource file for project aknswallpaperplugin
-*
-*/
-
-
-
-
-
-NAME SSAP // screensaveraiwplugin AIW Provider
-
-// Resource types
-#include <eikon.rh>
-
-// Commands etc.
-#include "screensaveraiwplugin.rh"
-
-
-// Localized texts.
-#include <screensaveraiwplugin.loc>
-
-
-RESOURCE RSS_SIGNATURE { }
-
-// ---------------------------------------------------------------------------
-// r_screen_saver_aiw_plugin_menu
-//
-// Menu for setting image(s) as screen saver.
-// ---------------------------------------------------------------------------
-//
-RESOURCE MENU_PANE r_screen_saver_aiw_plugin_menu
- {
- items =
- {
- MENU_ITEM {
- command = EScreenSaverAIWPluginCmdSetScreenSaver;
- txt = qtn_sanim_set_as_screensaver;
- extratxt = qtn_sanim_submenu_screensaver;
- }
- };
- }
-
-RESOURCE TBUF r_screen_saver_aiw_plugin_text_image_added { buf = qtn_sanim_image_added; }
-RESOURCE TBUF r_screen_saver_aiw_plugin_text_images_added { buf = qtn_sanim_images_added; }
-RESOURCE TBUF r_screen_saver_aiw_plugin_text_image_as_animation { buf = qtn_sanim_image_as_animation; }
-
-
-
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/EABI/bmpanimscrplugin_ecomU.def Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-EXPORTS
- _Z24ImplementationGroupProxyRi @ 1 NONAME
- _ZTI12CBmpAnimItem @ 2 NONAME ; #<TI>#
- _ZTI13CBmpAnimModel @ 3 NONAME ; #<TI>#
- _ZTI15CBmpAnimIniData @ 4 NONAME ; #<TI>#
- _ZTI16CBmpAnimSettings @ 5 NONAME ; #<TI>#
- _ZTI17CBmpAnimScrPlugin @ 6 NONAME ; #<TI>#
- _ZTV12CBmpAnimItem @ 7 NONAME ; #<VT>#
- _ZTV13CBmpAnimModel @ 8 NONAME ; #<VT>#
- _ZTV15CBmpAnimIniData @ 9 NONAME ; #<VT>#
- _ZTV16CBmpAnimSettings @ 10 NONAME ; #<VT>#
- _ZTV17CBmpAnimScrPlugin @ 11 NONAME ; #<VT>#
-
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/bmarm/BMPANIMSCRPLUGINU.DEF Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
- CreatePluginModule__Fv @ 1 NONAME R3UNUSED ; CreatePluginModule(void)
-
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/bmarm/BMPANIMSCRPLUGIN_ECOMU.DEF Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
- ImplementationGroupProxy__FRi @ 1 NONAME R3UNUSED ; ImplementationGroupProxy(int &)
-
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/bwins/BMPANIMSCRPLUGIN_ECOMU.DEF Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
- ?ImplementationGroupProxy@@YAPBUTImplementationProxy@@AAH@Z @ 1 NONAME ; struct TImplementationProxy const * __cdecl ImplementationGroupProxy(int &)
-
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/bwins/bmpanimscrpluginu.def Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
- ?CreatePluginModule@@YAPAVMScreensaverPlugin@@XZ @ 1 NONAME ; class MScreensaverPlugin * __cdecl CreatePluginModule(void)
-
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/group/ABLD.BAT Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-@ECHO OFF
-
-REM Bldmake-generated batch file - ABLD.BAT
-REM ** DO NOT EDIT **
-
-perl -S ABLD.PL "\S60\BmpAnimScrPlugin\group\\" %1 %2 %3 %4 %5 %6 %7 %8 %9
-if errorlevel==1 goto CheckPerl
-goto End
-
-:CheckPerl
-perl -v >NUL
-if errorlevel==1 echo Is Perl, version 5.003_07 or later, installed?
-goto End
-
-:End
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/group/BmpAnimConfig.hrh Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Project definition file
-*
-*/
-
-
-
-#ifndef BMPANIMCONFIG_HRH
-#define BMPANIMCONFIG_HRH
-
-// Compiled at all?
-// #define RD_SCREENSAVER_BMPANIM
-
-// use logging?
-// #define LOGGING_ENABLED
-
-#endif // BMPANIMCONFIG_HRH
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/group/BmpAnimScrPlugin.ini Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-[info]
-; Plugin name
-name=Operator zaver 4.0
-
-; Bitmap file name (on ROM full path is needed)
-mbmfile=\resource\plugins\BmpAnimScrPlugin.mbm
-
-; Landscape bitmap file name (on ROM full path is needed)
-;mbmfilelandscape=\resource\plugins\BmpAnimScrPluginL.mbm
-
-; Should separate landscape graphics be used (file must be defined) (1 = use landscape)
-uselandscape=0
-
-; Scale bitmaps to screen size (SVG is always scaled) (1 = scale)
-scalebmps=0
-
-; Running time in millis
-runningtime=30000000
-
-; Suspend time in millis (max 2147483647, -1 indefinitely)
-suspendtime=-1
-
-; Time between images in millis
-timing=100000
-
-; Time to keep lights on in seconds
-lights=15
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/group/BmpAnimScrPlugin.mmp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-/*
-* Copyright (c) 2003, 2004 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Project definition file
-*
-*/
-
-
-
-
-// Animator configuration (logging flags)
-#include "BmpAnimConfig.hrh"
-
-#include <platform_paths.hrh>
-
-TARGET BmpAnimScrPlugin.dll
-TARGETTYPE PLUGIN
-
-CAPABILITY CAP_ECOM_PLUGIN
-VENDORID VID_DEFAULT
-//2nd UID is the ECOM plugin UID, 3rd is screensaver plugin dll's uid
-UID 0x10009D8D 0x101F86FF
-
-#ifdef LOGGING_ENABLED
-MACRO USE_LOGGER
-MACRO USE_RDEBUG
-#endif
-
-SOURCEPATH ../src
-
-SOURCE BmpAnimScrPluginDll.cpp
-SOURCE CBmpAnimScrPlugin.cpp
-SOURCE CBmpAnimModel.cpp
-SOURCE CBmpAnimItem.cpp
-SOURCE CBmpAnimSettings.cpp
-SOURCE CBmpAnimIniData.cpp
-
-LANG SC
-
-USERINCLUDE ../inc
-
-// This is a SYSTEMINCLUDE macro containing the middleware
-// layer specific include directories
-MW_LAYER_SYSTEMINCLUDE
-
-SYSTEMINCLUDE ../../../../inc
-SYSTEMINCLUDE /epoc32/include/ecom
-
-LIBRARY ecom.lib
-LIBRARY euser.lib
-LIBRARY fbscli.lib
-LIBRARY eikcore.lib
-LIBRARY cone.lib
-LIBRARY egul.lib
-LIBRARY efsrv.lib
-LIBRARY avkon.lib
-LIBRARY aknicon.lib
-// LIBRARY bitgdi.lib
-
-#ifdef LOGGING_ENABLED
-LIBRARY flogger.lib
-#endif
-
-// The deffile name has to be changed to be able to build
-// ecom and non-ecom plugin versions
-DEFFILE bmpanimscrplugin_ecom.def
-
-START RESOURCE 101F86FF.rss
-TARGET BmpAnimScrPlugin.rsc
-END
-
-// End of File
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/group/BmpAnimScrPlugin.pkg Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-;
-; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-; All rights reserved.
-; This component and the accompanying materials are made available
-; under the terms of "Eclipse Public License v1.0"
-; which accompanies this distribution, and is available
-; at the URL "http://www.eclipse.org/legal/epl-v10.html".
-;
-; Initial Contributors:
-; Nokia Corporation - initial contribution.
-;
-; Contributors:
-;
-; Description: The Package file for BmpAnimScrPlugin
-;
-
-;Languages
-&EN
-
-;Header
- ; {Names},(UID),major,minor,variant
-#{"zippo Zaver"},(0x101F86FF),3,1,0
-
-;Supports Series 60 v3
-;This line indicates that this installation is for the Series 60 platform v3
-;This line must appear _exactly_ as shown below in the sis file
-;If this line is missing or incorrect, the sis file will not be able
-;to be installed on Series 60 v3 platforms
-;(0x10201A7A), 0, 0, 0, {"Series60v3.0"}
-(0x101F7961), 0, 0, 0, {"Series60ProductID"}
-
-;Localised Vendor name
-%{"zippo Zoftware"}
-
-;Unique Vendor name
-:"zippo Zoftware"
-
-;Key and certificate
-;*"rd-key.pem","rd.cer"
-
-; Bitmap Animator
-"\epoc32\release\armv5\urel\BmpAnimScrPlugin.dll"-"!:\sys\bin\BmpAnimScrPlugin.dll"
-"\epoc32\data\z\resource\plugins\BmpAnimScrPlugin.RSC"-"!:\resource\plugins\BmpAnimScrPlugin.RSC"
-
-; Animation images
-; NOTE Switch between MIF or both, depending on which
-; kind of bitmaps the animation has (bmp - both)
-"\epoc32\data\z\resource\plugins\BmpAnimScrPlugin.mif"-"!:\resource\plugins\BmpAnimScrPlugin.mif"
-"\epoc32\data\z\resource\plugins\BmpAnimScrPlugin.mbm"-"!:\resource\plugins\BmpAnimScrPlugin.mbm"
-
-; Settings file with MBM
-"\epoc32\data\z\resource\plugins\BmpAnimScrPlugin.ini"-"!:\resource\plugins\BmpAnimScrPlugin.ini"
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/group/bld.inf Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* build information file for BmpAnimScrPlugin
-*
-*/
-
-
-
-
-#include "BmpAnimConfig.hrh"
-
-#ifdef RD_SCREENSAVER_BMPANIM
-
-PRJ_PLATFORMS
-DEFAULT
-
-PRJ_EXPORTS
-BmpAnimScrPlugin.ini /epoc32/wins/c/resource/plugins/BmpAnimScrPlugin.ini
-BmpAnimScrPlugin.ini /epoc32/winscw/c/resource/plugins/BmpAnimScrPlugin.ini
-BmpAnimScrPlugin.ini /epoc32/data/z/resource/plugins/BmpAnimScrPlugin.ini
-
-PRJ_MMPFILES
-// Plugin
-BmpAnimScrPlugin.mmp
-
-// Animation bitmaps, can be after actual mmp, bitmap header is not used
-gnumakefile ../srcdata/animation.mk
-
-#endif
-// End of File
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/group/makesis_3x.bat Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-@echo off
-rem
-rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-rem All rights reserved.
-rem This component and the accompanying materials are made available
-rem under the terms of "Eclipse Public License v1.0"
-rem which accompanies this distribution, and is available
-rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
-rem
-rem Initial Contributors:
-rem Nokia Corporation - initial contribution.
-rem
-rem Contributors:
-rem
-rem Description: Makesis command for BmpAnimScrPlugin
-rem
-@echo on
-
-
-
-
-makesis BmpAnimScrPlugin.pkg
-signsis BmpAnimScrPlugin.sis BmpAnimScrPlugin_3x.sisx \S60\AppinstUi\internal\RD_RootCA\rd.cer \S60\AppinstUi\internal\RD_RootCA\rd-key.pem
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/inc/BmpAnimUtils.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,164 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: BmpAnimScrPlugin utilities collection
-*
-*/
-
-
-
-#ifndef BMPANIMUTILS_H
-#define BMPANIMUTILS_H
-
-// ========== LOGGING MACROS ===============================
-
-#ifdef USE_LOGGER
-
-#include <e32std.h>
-#include <e32def.h>
-#include <eikenv.h>
-#include <flogger.h>
-
-
-/* logging macros usage:
-
-// set logging on in mmp file...
-MACRO USE_LOGGER
-#ifdef WINS
-MACRO USE_RDEBUG
-#endif
-
-
-void CTestAppUi::ConstructL()
-{
-// creates log directory and log file on app startup.
-// prints starting banner...
-BMALOGGER_CREATE;
-
-// entering to function...
-BMALOGGER_ENTERFN("ConstructL()");
-
-TInt number = 42;
-TFileName file;
-file = "something" ....
-
-// print variable number of parameters...
-// Note: use _L macro for format string!
-BMALOGGER_WRITEF(_L("BMA: number = %d, file = %S"), number, &file);
-
-// print just a string (no _L macro here!)
-BMALOGGER_WRITE("Hello world!");
-
-// leave from function...
-BMALOGGER_LEAVEFN("ConstructL()");
-}
-
-CTestAppUi::~CTestAppUi()
-{
-// print app exit banner when application exits.
-BMALOGGER_DELETE;
-}
-
-*/
-
-#ifdef USE_RDEBUG
-
-_LIT(KBMALogBanner, "BmpAnim log start");
-_LIT(KBMALogEnterFn, "BMA: enter --> %S");
-_LIT(KBMALogLeaveFn, "BMA: leave <-- %S");
-_LIT(KBMALogWrite, "BMA: %S");
-_LIT(KBMALogTag, "BMA: ");
-_LIT(KBMALogExit, "BmpAnim log end");
-_LIT(KBMALogTimeFormatString, "%H:%T:%S:%*C2");
-
-#define BMALOGGER_CREATE {RDebug::Print(KBMALogBanner);}
-#define BMALOGGER_DELETE {RDebug::Print(KBMALogExit);}
-#define BMALOGGER_ENTERFN(a) {_LIT(temp, a); RDebug::Print(KBMALogEnterFn, &temp);}
-#define BMALOGGER_LEAVEFN(a) {_LIT(temp, a); RDebug::Print(KBMALogLeaveFn, &temp);}
-#define BMALOGGER_WRITE(a) {_LIT(temp, a); RDebug::Print(KBMALogWrite, &temp);}
-#define BMALOGGER_WRITE_TIMESTAMP(a) {_LIT(temp, a); TTime time; time.HomeTime(); TBuf<256> buffer; time.FormatL(buffer, KBMALogTimeFormatString); buffer.Insert(0, temp); buffer.Insert(0, KBMALogTag); RDebug::Print(buffer); }
-#define BMALOGGER_WRITEF RDebug::Print
-
-#else // !USE_RDEBUG
-
-_LIT(KBMALogDir, "BMA");
-_LIT(KBMALogFile, "BMA.txt");
-_LIT8(KBMALogBanner, "BmpAnim log start");
-_LIT8(KBMALogEnterFn, "BMA: -> %S");
-_LIT8(KBMALogLeaveFn, "BMA: <- %S");
-_LIT8(KBMALogExit, "BmpAnim log end");
-_LIT(KBMALogTimeFormatString, "%H:%T:%S:%*C2");
-
-#define BMALOGGER_CREATE {FCreate();}
-#define BMALOGGER_DELETE {RFileLogger::Write(KBMALogDir, KBMALogFile, EFileLoggingModeAppend, KBMALogExit);}
-#define BMALOGGER_ENTERFN(a) {_LIT8(temp, a); RFileLogger::WriteFormat(KBMALogDir, KBMALogFile, EFileLoggingModeAppend, KBMALogEnterFn, &temp);}
-#define BMALOGGER_LEAVEFN(a) {_LIT8(temp, a); RFileLogger::WriteFormat(KBMALogDir, KBMALogFile, EFileLoggingModeAppend, KBMALogLeaveFn, &temp);}
-#define BMALOGGER_WRITE(a) {_LIT(temp, a); RFileLogger::Write(KBMALogDir, KBMALogFile, EFileLoggingModeAppend, temp);}
-#define BMALOGGER_WRITE_TIMESTAMP(a) {_LIT(temp, a); TTime time; time.HomeTime(); TBuf<256> buffer; time.FormatL(buffer, KBMALogTimeFormatString); buffer.Insert(0, temp); RFileLogger::Write(KBMALogDir, KBMALogFile, EFileLoggingModeAppend, buffer); }
-#define BMALOGGER_WRITEF FPrint
-
-inline void FPrint(const TRefByValue<const TDesC> aFmt, ...)
- {
- VA_LIST list;
- VA_START(list, aFmt);
- RFileLogger::WriteFormat(KBMALogDir, KBMALogFile, EFileLoggingModeAppend, aFmt, list);
- }
-
-inline void FPrint(const TDesC& aDes)
- {
- RFileLogger::WriteFormat(KBMALogDir, KBMALogFile, EFileLoggingModeAppend, aDes);
- }
-
-inline void FHex(const TUint8* aPtr, TInt aLen)
- {
- RFileLogger::HexDump(KBMALogDir, KBMALogFile, EFileLoggingModeAppend, 0, 0, aPtr, aLen);
- }
-
-inline void FHex(const TDesC8& aDes)
- {
- FHex(aDes.Ptr(), aDes.Length());
- }
-
-inline void FCreate()
- {
-#ifdef RD_PF_SEC_APPARC
- // Use screensaver private dir
- TFileName path(_L("c:\\private\\100056cf\\"));
-#else
- TFileName path(_L("c:\\logs\\"));
-#endif
- path.Append(KBMALogDir);
- path.Append(_L("\\"));
- RFs& fs = CEikonEnv::Static()->FsSession();
- fs.MkDirAll(path);
- RFileLogger::WriteFormat(KBMALogDir, KBMALogFile, EFileLoggingModeOverwrite, KBMALogBanner);
- }
-
-#endif // !USE_RDEBUG
-
-#else // !USE_LOGGER
-
-inline void FPrint(const TRefByValue<const TDesC> /*aFmt*/, ...) { };
-
-#define BMALOGGER_CREATE
-#define BMALOGGER_DELETE
-#define BMALOGGER_ENTERFN(a)
-#define BMALOGGER_LEAVEFN(a)
-#define BMALOGGER_WRITE(a)
-#define BMALOGGER_WRITEF 1 ? ((void)0) : FPrint
-#define BMALOGGER_WRITE_TIMESTAMP(a)
-
-#endif // USE_LOGGER
-
-#endif // BMPANIMUTILS_H
-
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/inc/CBmpAnimIniData.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Bitmap animator INI file handler
-*
-*/
-
-
-
-#ifndef C_CBMPANIMINIDATA_H
-#define C_CBMPANIMINIDATA_H
-
-#include <e32base.h>
-
-class CBmpAnimIniData : public CBase
- {
-public:
- // Constructor, pass in name of ini file to open
- // Default search path is 'c:\system\data' on target filesystem
- // ie. 'NewL(_L("c:\\system\\data\\ttools.ini"))' is equivalent
- // to 'NewL(_L("ttools.ini"))'
- static CBmpAnimIniData* NewL(const TDesC& aName);
- virtual ~CBmpAnimIniData();
-
- // Read text value regardless of section
- // Returns: True(Success) or false(Failure)
- TBool FindVar(const TDesC8& aKeyName, TDes16& aResult);
- TBool FindVar(const TDesC8& aKeyName, TPtrC8& aResult);
-
- // Read integer value regardless of section
- // Returns: True(Success) or false(Failure)
- TBool FindVar(const TDesC8& aKeyName, TInt& aResult);
-
- // Read text value under section
- // Returns: True(Success) or false(Failure)
- TBool FindVar(
- const TDesC8& aSection, const TDesC8& aKeyName, TDes16& aResult);
- TBool FindVar(
- const TDesC8& aSection, const TDesC8& aKeyName, TPtrC8& aResult);
-
- // Read integer value under section
- // Returns: True(Success) or false(Failure)
- TBool FindVar(
- const TDesC8& aSection, const TDesC8& aKeyName, TInt& aResult);
-
- // Write integer value associated with a token
- TInt WriteVarL(
- const TDesC8& aSection, const TDesC8& aKeyName, TInt aValue);
-
- // Write string associated with a token
- TInt WriteVarL(
- const TDesC8& aSection, const TDesC8& aKeyName, const TDesC8& aValue);
-
- // Commits the changes done. NOTE if not called, the changes will NOT
- // be saved into file
- void CommitL();
-
-
-protected:
- CBmpAnimIniData();
- void ConstructL(const TDesC& aName);
-
-private:
- // Tries to locate the given section. EFalse if not found
- TBool FindSection(const TDesC8& aSection, TInt& aStart, TInt& aEnd);
-
-private:
- HBufC* iName;
- HBufC8* iToken;
- TPtr8 iPtr; // Holds the file in memory, written back in CommitL()
- };
-
-#endif // C_CBMPANIMINIDATA_H
-
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/inc/CBmpAnimItem.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Stores a single bitmap animation item: image with its
-* properties (position, timing et al)
-*
-*/
-
-
-
-#ifndef C_CBMPANIMITEM_H
-#define C_CBMPANIMITEM_H
-
-// INCLUDES
-#include <e32base.h> // e32def, e32std
-#include <gulicon.h>
-
-// CONSTANTS
-
-// MACROS
-
-// Item flags
-#define BAIF_OWNSICON 0x01
-
-
-// DATA TYPES
-
-// EXTERNAL DATA STRUCTURES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-// CLASS DEFINITIONS
-class CBmpAnimItem : public CBase
- {
-public:
- // Public constructor, doesn't need a two-phase construction
- CBmpAnimItem();
-
- // Destructor
- virtual ~CBmpAnimItem();
-
- // Set icon. If owned, an icon is deleted by the item
- void SetIcon(CGulIcon* aIcon, TBool aItemOwnsIcon = ETrue);
-
- // Set icon from bitmaps. If owned, an icon is deleted by the item
- void SetIconL(
- CFbsBitmap* aBitmap,
- CFbsBitmap* aMask = NULL,
- TBool aItemOwnsIcon = ETrue);
-
- // Get icon
- CGulIcon* Icon() const { return iIcon; }
-
- // Set timing (microsecs to display the image)
- void SetTiming(TInt aMicros) { iTiming = aMicros; }
-
- // Get timing
- TInt Timing() { return iTiming; }
-
- // Set position
- void SetPosition(TPoint aPos) { iPosition = aPos; }
-
- // Get position
- TPoint Position() { return iPosition; }
-
- // Get flags
- TInt Flags() const { return iFlags; }
-protected:
-private:
- // Type flags
- TInt iFlags;
-
- // Icon
- CGulIcon* iIcon;
-
- // Timing
- TInt iTiming;
-
- // Position
- TPoint iPosition;
- };
-
-#endif // C_CBMPANIMITEM_H
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/inc/CBmpAnimModel.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,109 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Takes care of storing and serving the bitmaps
-* to be animated along with their properties
-*
-*/
-
-
-
-#ifndef C_CBMPANIMMODEL_H
-#define C_CBMPANIMMODEL_H
-
-#include "CBmpAnimItem.h"
-#include "CBmpAnimSettings.h"
-
-// 5 seems like a reasonable granularity
-const TInt KBmpAnimItemArrayGranularity = 5;
-
-// BmpAnim model. Contains BmpAnim items, serves the items to BmpAnim plugin
-class CBmpAnimModel : public CBase
- {
-public:
- // Default constructor & destructor
- CBmpAnimModel();
- virtual ~CBmpAnimModel();
-
-public:
- // Two-phase constructor, initialises member arrays and stuff
- virtual void ConstructL(CBmpAnimSettings* aSettings);
-
-public: // Access functions
- // Number of items query
- TInt NumberOfItems() const;
-
- // Add an item to the end of the array
- void AppendItemL(CBmpAnimItem* aItem);
-
- // Insert an item at <aIndex>. Space must be reserved.
- void InsertItemL(TInt aIndex, CBmpAnimItem* aItem);
-
- // Delete item at <anIndex>.
- void DeleteItemL(TInt aIndex);
-
- // Delete all items
- void DeleteAll();
-
- // Get item at position <aIndex>
- CBmpAnimItem* ItemAt(TInt aIndex) const;
-
- // Get current item index
- inline TInt CurrentItemIndex() const;
-
- // Set current item index
- inline void SetCurrentItemIndex(TInt aIndex);
-
- // Get next item in animation sequence. aWrapped is ETrue, if the
- // next item caused a wrap to the beginning of sequence
- CBmpAnimItem* NextItem(TBool& aWrapped);
-
- // Reserve space for <aCount> items
- void SetReserveL(TInt aCount);
-
- // Get settings
- inline CBmpAnimSettings* Settings() const;
-
-private: // Utility functions
-
-private:
- // Item array
- CArrayPtrFlat<CBmpAnimItem>* iItems;
-
- // Current item index
- TInt iCurrentItem;
-
- CBmpAnimSettings* iSettings;
- };
-
-
-// --- inlines ---
-
-// Get current item index
-inline TInt CBmpAnimModel::CurrentItemIndex() const
- { return iCurrentItem; }
-
-
-// Set current item index
-inline void CBmpAnimModel::SetCurrentItemIndex(TInt aIndex)
- {
- iCurrentItem = aIndex;
- }
-
-// Get settings
-inline CBmpAnimSettings* CBmpAnimModel::Settings() const
- { return iSettings; }
-
-#endif // C_CBMPANIMMODEL_H
-
-// End of file
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/inc/CBmpAnimScrPlugin.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,178 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Main include file for plugin
-*
-*/
-
-
-
-#ifndef C_CBMPANIMSCRPLUGIN_H
-#define C_CBMPANIMSCRPLUGIN_H
-
-#include <e32base.h>
-#include <fbs.h>
-#include <eikenv.h>
-#include <coecntrl.h>
-#include <coeccntx.h>
-
-#include <ScreensaverpluginIntDef.h>
-
-#include "CBmpAnimModel.h"
-#include "CBmpAnimItem.h"
-#include "CBmpAnimSettings.h"
-
-// The screensaver plugin implementation must inherit from
-// CScreensaverPluginInterfaceDefinition
-class CBmpAnimScrPlugin : public CScreensaverPluginInterfaceDefinition
- {
- enum TPluginState
- {
- EPluginStateLoading = 0,
- EPluginStateInitializing,
- EPluginStateAnimation,
- EPluginStateStoppingAnimation,
- };
-
- enum TLoadedAnimation
- {
- ENone,
- EPortrait,
- ELandscape,
- EPortraitRotated
- };
-
-public:
- // Class instance creation
- static CBmpAnimScrPlugin* NewL();
-
-private:
- // Construction
- CBmpAnimScrPlugin();
-
-public:
- // Destruction
- ~CBmpAnimScrPlugin();
-
-public: // from MScreensaverPlugin
- TInt InitializeL(MScreensaverPluginHost *aHost);
- TInt Draw(CWindowGc& aGc);
- const TDesC16& Name() const;
- TInt HandleScreensaverEventL(TScreensaverEvent aEvent, TAny* aData);
- TInt Capabilities();
- TInt PluginFunction(TScPluginCaps aFunction, TAny* aParam);
-
-private:
- // Draws centered items
- void DrawCentered(CWindowGc& aGc, CBmpAnimItem* aItem);
-
- // Loads the animation into the model
- void LoadAnimationL(TBool aLandscape = EFalse, TBool aRotate = EFalse);
-
- // Re-loads the animation when display changes, if needed
- void ReloadAnimationL();
-
- // Starts the display timer
- void StartDisplayTimer();
-
- // Stops the display timer
- void StopDisplayTimer();
-
- // Display timer callback
- static TInt DisplayTimerCallback(TAny* aPtr);
-
- // Starts the lights timer
- void StartLightsTimer();
-
- // Stops the lights
- void StopLightsTimer();
-
- // Lights timer callback
- static TInt LightsTimerCallback(TAny* aPtr);
-
- // Advances the plugin state
- void HandlePluginState();
-
- // Requests a suitable display mode from host
- void SetDisplayMode();
-
- void Lights(TInt aSecs);
-
- // Configures the plugin
- TInt ConfigureL(TAny* aParam);
-
- // Sets sizes of bitmaps
- TInt ScaleBitmap(CFbsBitmap* aBmp, TBool aRotate = EFalse);
-
- // Returns ETrue if reload of the animation is needed
- TBool ReloadNeeded();
-
- // Returns ETrue if display is landscape
- TBool DisplayIsLandscape();
-
- // Returns ETrue if graphics should be rotated
- TBool RotateNeeded();
-
- // Returns ETrue if landscape graphics should be loaded
- TBool LoadLandscape();
-
- // Updates the saved display information
- void UpdateDisplayInfo();
-
- // Sets bitmap size and rotation (used instead of AknIconUtils function)
- // Actually an "Easy Leaving :)" wrapper around the L-version
- TInt SetSizeAndRotation(CFbsBitmap* aBmp, TSize aSize, TInt aAngle);
-
- // Sets bitmap size and rotation (used instead of AknIconUtils function)
- void SetSizeAndRotationL(CFbsBitmap* aBmp, TSize aSize, TInt aAngle);
-
- // Rotates and scales a source bitmap into target bitmap
- void RotateAndScaleBitmapL(
- const TRect& aTrgRect,
- CFbsBitmap* aTrgBitmap,
- CFbsBitmap* aSrcBitmap,
- TInt aAngle);
-
-private:
- // Plugin host interface
- MScreensaverPluginHost* iHost;
-
- // Plugin state
- TInt iState;
-
- // Needed to retrieve bitmaps from files
- CEikonEnv* iEikEnv;
-
- // Animator model, stores and serves animation items
- CBmpAnimModel* iModel;
-
- // Animator settings. Created and deleted here, but used and managed by
- // the model. Creating here enables retrieving the plugin name
- // in non-plugin-host applications (such as Themes)
- CBmpAnimSettings* iSettings;
-
- // Timer to control how long the animation is displayed
- CPeriodic* iDisplayTimer;
-
- // Flag to control animation stop. Changed from display timer callback
- TInt iStopDisplaying;
-
- TScreensaverDisplayInfo iDi;
-
- TLoadedAnimation iLoadedAnimation;
- };
-
-
-#endif // C_CBMPANIMSCRPLUGIN_H
-
-// End of file
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/inc/CBmpAnimSettings.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,183 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Loads and stores the bitmap animator settings
-*
-*/
-
-
-
-#ifndef C_CBMPANIMSETTINGS_H
-#define C_CBMPANIMSETTINGS_H
-
-#include <e32std.h>
-#include "CBmpAnimIniData.h"
-
-// Default plugin name
-_LIT(KPluginName, "BitmapAnimator");
-const TInt KMaxPluginNameLength = 30;
-
-// BmpAnim settings
-class CBmpAnimSettings : public CBase
- {
-public:
- // User constructor
- static CBmpAnimSettings* NewL();
-
- // Construction & destruction
-private:
- CBmpAnimSettings();
- void ConstructL();
-public:
- virtual ~CBmpAnimSettings();
-
-public: // Access functions
- // Load the current settings from file (may be used from outside,
- // hence public). Usually just called from ConstructL(), tho
- TBool LoadSettingsL();
-
- // Save settings
- TBool SaveSettingsL();
-
- // Get running time (-1 = not defined)
- inline TInt RunningTime();
-
- // Get loop count (-1 = not defined)
- inline TInt LoopCount();
-
- // Get suspend time (-1 = indefinitely)
- inline TInt SuspendTime();
-
- // Get / set default timing
- inline TInt Timing();
- inline void SetTiming(TInt aTiming);
-
- // Get plugin name
- inline TDesC& PluginName();
-
- // Get bitmap file name
- inline TDesC& BitmapFilename();
-
- // Get landscape bitmap file name
- inline TDesC& BitmapFilenameLandscape();
-
- // Get/set lights on time (secs)
- inline TInt Lights();
- inline void SetLights(TInt aSecs);
-
- // Landscape used?
- inline TInt UseLandscape();
-
- // Should bitmaps be scaled to screen
- inline TInt ScaleBmps();
-
-private: // Utility functions
- // Opens the settings file (initialises the settings reader)
- TInt OpenSettings();
-
- // Figures out the bitmap file name
- void LoadBitmapFileName(TBool aLandscape = EFalse);
-
-private:
- // Settings file handler
- CBmpAnimIniData* iIniData;
-
- // Time to run the animation. Overrides loop count
- TInt iRunningTime;
-
- // Number of loops to be run. Used if run time is undefined
- TInt iLoopCount;
-
- // Time to suspend the animation. -1 = indefinitely
- TInt iSuspendTime;
-
- // Time to display each image. Individual image timing overrides this.
- TInt iTiming;
-
- // Plugin name
- TBuf<KMaxPluginNameLength> iPluginName;
-
- // Bitmap file name
- TFileName iMbmFileName;
-
- // Landscale bitmap file name
- TFileName iMbmFileNameL;
-
- // Lights on time (secs)
- TInt iLights;
-
- // Landscape images used (0 = no)
- TInt iUseLandscape;
-
- // Bitmaps scaled to screen size (0 = no)
- TInt iScaleBmps;
- };
-
-
-// --- inlines ---
-
-// Get run time (-1 = not defined)
-inline TInt CBmpAnimSettings::RunningTime()
- { return iRunningTime; }
-
-
-// Get loop count (-1 = not defined)
-inline TInt CBmpAnimSettings::LoopCount()
- { return iLoopCount; }
-
-
-// Get suspend time (-1 = indefinitely)
-inline TInt CBmpAnimSettings::SuspendTime()
- { return iSuspendTime; }
-
-
-// Get default timing
-inline TInt CBmpAnimSettings::Timing()
- { return iTiming; }
-
-// Set default timing
-inline void CBmpAnimSettings::SetTiming(TInt aTiming)
- { iTiming = aTiming; }
-
-
-// Get default bitmap file
-inline TDesC16& CBmpAnimSettings::PluginName()
- { return iPluginName; }
-
-
-// Get default bitmap file
-inline TDesC16& CBmpAnimSettings::BitmapFilename()
- { return iMbmFileName; }
-
-// Get landscape bitmap file
-inline TDesC16& CBmpAnimSettings::BitmapFilenameLandscape()
- { return iMbmFileNameL; }
-
-// Get lights on time (secs)
-inline TInt CBmpAnimSettings::Lights()
- { return iLights; }
-
-
-// Set lights on time (secs)
-inline void CBmpAnimSettings::SetLights(TInt aSecs)
- { iLights = aSecs; }
-
-// Use landscape?
-inline TInt CBmpAnimSettings::UseLandscape()
- { return iUseLandscape; }
-
-// Scale bitmaps?
-inline TInt CBmpAnimSettings::ScaleBmps()
- { return iScaleBmps; }
-
-#endif // C_CBMPANIMSETTINGS_H
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/rom/bmpanimscrplugin.iby Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: IBY file for BmpAnimScrPlugin
-*
-*/
-
-
-
-#ifndef __BMPANIMSCRPLUGIN_IBY__
-#define __BMPANIMSCRPLUGIN_IBY__
-
-REM Bmpanim screensaver plugin
-
-#ifdef RD_SCREENSAVER_BMPANIM
-
-ECOM_PLUGIN(BmpAnimScrPlugin.dll, 101F86FF.rsc)
-
-data=DATAZ_\resource\plugins\BmpAnimScrPlugin.ini \resource\plugins\BmpAnimScrPlugin.ini
-data=DATAZ_\resource\plugins\BmpAnimScrPlugin.mif \resource\plugins\BmpAnimScrPlugin.mif
-
-// Only present, if using BMP graphics
-data=DATAZ_\resource\plugins\BmpAnimScrPlugin.mbm \resource\plugins\BmpAnimScrPlugin.mbm
-
-#endif
-#endif // __BMPANIMSCRPLUGIN_IBY__
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/src/101F86FF.rss Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: ECOM Resource file for BmpAnimScrPlugin
-*
-*/
-
-
-
-// 101F86FF.RSS
-//
-// Registry file for Bounce-plugin Implementation.
-//
-// Interface(s) :
-//
-
-#include <RegistryInfo.rh>
-#include <ScreensaverpluginIntDef.hrh>
-
-
-RESOURCE REGISTRY_INFO theInfo
- {
- // plugin's UID
- dll_uid = 0x101F86FF;
- interfaces =
- {
- INTERFACE_INFO
- {
- // ScreenSaver ECOM Plugin interface UID.
- interface_uid = KCScreensaverPluginInterfaceDefinitionUid;
- implementations =
- {
- IMPLEMENTATION_INFO
- {
- // plugin's UID
- implementation_uid = 0x101F87F9;
- version_no = 1;
- // This is the displayed name of the plugin.
- // It can be localised if needed
- display_name = "zippo Zaver 3.1";
- default_data = "";
- // This must correspond the value returned by
- // CBmpAnimScrPlugin::Capabilities
- opaque_data = KScrPluginCapabilitiesNoneStr;
- }
- };
- }
- };
- }
-
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/src/BmpAnimScrPluginDll.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Plugin DLL export that creates the plugin object itself
-*
-*/
-
-
-
-
-
-#include "CBmpAnimScrPlugin.h"
-
-
-#ifndef EKA2
-// Dll entry point or something
-GLDEF_C TInt E32Dll(TDllReason)
- {
- return KErrNone;
- }
-#endif
-
-
-#define KCScreensaverPluginInterfaceDefinitionImpUid 0x101F87F9
-
-#include <implementationproxy.h>
-
-// __________________________________________________________________________
-// Exported proxy for instantiation method resolution
-// Use the plugin UID and Implementation factory method
-// as a pair for ECom instantiation.
-const TImplementationProxy ImplementationTable[] =
- {
- IMPLEMENTATION_PROXY_ENTRY(KCScreensaverPluginInterfaceDefinitionImpUid, CBmpAnimScrPlugin::NewL)
- };
-
-// Give the table to the caller
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount )
- {
- aTableCount = sizeof( ImplementationTable ) / sizeof( TImplementationProxy );
- return ImplementationTable;
- }
-// End of File
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/src/CBmpAnimIniData.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,472 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Bitmap animator INI file handler
-*
-*/
-
-
-
-
-
-#include "CBmpAnimIniData.h"
-
-#include <f32file.h>
-#include <e32std.h>
-
-// Default directory to look for INI file
-_LIT(KIniFileDir,"C:\\private\\100056cf\\");
-
-const TInt KTokenSize=32;
-
-#ifdef _DEBUG
-// Debugging aids
-enum TIniPanic
- {
- ESectionNameTooBig,
- EKeyNameTooBig,
- };
-
-void Panic(TIniPanic aPanic)
- {
- _LIT(CBmpAnimIniData,"CBmpAnimIniData");
- User::Panic(CBmpAnimIniData,aPanic);
- }
-#endif // _DEBUG
-
-// d'tor
-CBmpAnimIniData::~CBmpAnimIniData()
- {
- delete (TText*)iPtr.Ptr();
- delete iToken;
- delete iName;
- }
-
-
-// Public allocation method
-CBmpAnimIniData* CBmpAnimIniData::NewL(const TDesC& aName)
- {
- CBmpAnimIniData* p=new(ELeave) CBmpAnimIniData;
- CleanupStack::PushL(p);
- p->ConstructL(aName);
- CleanupStack::Pop();
- return p;
- }
-
-
-// Find a key's string) value regardless of section (wide)
-TBool CBmpAnimIniData::FindVar(const TDesC8& aKeyName, TDes16& aResult)
- {
- TPtrC8 tmpRes;
- if (!FindVar(aKeyName, tmpRes))
- {
- return EFalse;
- }
-
- // Copy the 8-bit result into the 16-bit descriptor
- aResult.Copy(tmpRes);
- return ETrue;
- }
-
-
-// Find a key's (string) value regardless of section
-TBool CBmpAnimIniData::FindVar(const TDesC8& aKeyName, TPtrC8& aResult)
- {
- _LIT8(KDummySection, "");
- // Call with no section, so starts at beginning
- if (FindVar(KDummySection, aKeyName, aResult))
- {
- return ETrue;
- }
- else
- {
- return EFalse;
- }
- }
-
-
-// Find a key's (string) value given a section name and a key name (wide)
-TBool CBmpAnimIniData::FindVar(const TDesC8& aSectName,
- const TDesC8& aKeyName,
- TDes16& aResult)
- {
- TPtrC8 tmpRes;
- if (!FindVar(aSectName, aKeyName, tmpRes))
- {
- return EFalse;
- }
-
- // Copy the 8-bit result into the 16-bit descriptor
- aResult.Copy(tmpRes);
- return ETrue;
- }
-
-
-// Find a key's (string) value given a section name and a key name
-TBool CBmpAnimIniData::FindVar(const TDesC8& aSectName,
- const TDesC8& aKeyName,
- TPtrC8& aResult)
- {
- __ASSERT_DEBUG(aSectName.Length() <= KTokenSize, Panic(ESectionNameTooBig));
- __ASSERT_DEBUG(aKeyName.Length() <= KTokenSize, Panic(EKeyNameTooBig));
-
- TInt posStartOfSection(0);
- TInt posEndOfSection(0);
- TPtrC8 SearchBuf;
-
- // If we have a section, set pos to section start
- if (aSectName.Length() > 0)
- {
- if (!FindSection(aSectName, posStartOfSection, posEndOfSection))
- {
- return EFalse;
- }
- }
-
- // Look for key in ini file data Buffer
- TInt posI = posStartOfSection; // Position in internal data Buffer
- TBool FoundKey(EFalse);
- while (!FoundKey)
- {
- // Search for next occurrence of aKeyName
- SearchBuf.Set(iPtr.Mid(posI));
- TInt posSB = SearchBuf.Find(aKeyName);
-
- // If not found, return
- if (posSB == KErrNotFound)
- {
- return EFalse;
- }
-
- // Check this is at beginning of line (ie. non-commented)
- // ie. Check preceding char was CR or LF
- if(posSB > 0)
- {
- // Create a Buffer, starting one char before found subBuf
- TPtrC8 CharBefore(SearchBuf.Right(SearchBuf.Length() - posSB + 1));
- // Check first char is end of prev
- if(CharBefore[0] == '\n')
- {
- FoundKey = ETrue;
- posI = posI + posSB;
- }
- else
- {
- posI = posI + posSB + 1;
- }
- }
- else
- {
- FoundKey = ETrue;
- }
-
- } // while (!FoundKey)
-
- // Set pos to just after '=' sign
- SearchBuf.Set(iPtr.Mid(posI));
- TInt posSB = SearchBuf.Locate('=');
- if (posSB == KErrNotFound) // Illegal format, should flag this...
- {
- return EFalse;
- }
-
- // Identify start and end of data (EOL or EOF)
- posI = posI + posSB + 1; // 1 char after '='
- TInt posValStart = posI;
- TInt posValEnd;
- SearchBuf.Set(iPtr.Mid(posI));
- posSB = SearchBuf.Locate('\r');
- if (posSB != KErrNotFound)
- {
- posValEnd = posI + posSB;
- }
- else
- {
- posValEnd = iPtr.Length();
- }
-
- // Check we are still in the section requested
- if (aSectName.Length() > 0)
- {
- if (posValEnd > posEndOfSection)
- {
- return EFalse;
- }
- }
-
- // Parse Buffer from posn of key
- // Start one space after '='
- TLex8 lex(iPtr.Mid(posValStart, posValEnd - posValStart));
- lex.SkipSpaceAndMark(); // Should be at the start of the data
- aResult.Set(lex.MarkedToken().Ptr(),
- posValEnd - posValStart - lex.Offset());
-
- return ETrue;
- }
-
-
-// Find integer value regardless of section
-TBool CBmpAnimIniData::FindVar(const TDesC8& aKeyName, TInt& aResult)
- {
- TPtrC8 ptr(NULL, 0);
- if (FindVar(aKeyName, ptr))
- {
- TLex8 lex(ptr);
- if (lex.Val(aResult) == KErrNone)
- {
- return ETrue;
- }
- }
- return EFalse;
- }
-
-
-// Find integer value within a given section
-TBool CBmpAnimIniData::FindVar(
- const TDesC8& aSection, const TDesC8& aKeyName, TInt& aResult)
- {
- TPtrC8 ptr(NULL, 0);
- if (FindVar(aSection, aKeyName, ptr))
- {
- TLex8 lex(ptr);
- if (lex.Val(aResult) == KErrNone)
- {
- return ETrue;
- }
- }
- return EFalse;
- }
-
-
-// Write integer value in given section
-TInt CBmpAnimIniData::WriteVarL(
- const TDesC8& aSection, const TDesC8& aKeyName, TInt aValue)
- {
- TBuf8<32> buf;
- buf.Num(aValue);
- return WriteVarL(aSection, aKeyName, buf);
- }
-
-
-// Write string value in given section
-TInt CBmpAnimIniData::WriteVarL(
- const TDesC8& aSection, const TDesC8& aKeyName, const TDesC8& aValue)
- {
- // First find the variable - this gives us a descriptor into the
- // ini data giving the bound of the item that has to be replaced
- TPtrC8 ptr;
- TInt pos;
- TBool found = FindVar(aSection, aKeyName, ptr);
-
- HBufC8* text = HBufC8::NewLC(
- aSection.Length() + aKeyName.Length() + aValue.Length() + 7); // +7 for '=', '[', ']' and 2*cr+lf.
- TPtr8 textp = text->Des();
-
- if (found)
- {
- pos = ptr.Ptr() - iPtr.Ptr();
- textp.Append(aValue);
- }
- else
- {
- TInt posStartOfSection = 0;
- TInt posEndOfSection = 0;
-
- if (FindSection(aSection, posStartOfSection, posEndOfSection))
- {
- pos = posEndOfSection;
- }
- else
- {
- pos = iPtr.Length();
- textp.Append('[');
- textp.Append(aSection);
- textp.Append(']');
- textp.Append('\r');
- textp.Append('\n');
- }
- textp.Append(aKeyName);
- textp.Append('=');
- textp.Append(aValue);
- textp.Append('\r');
- textp.Append('\n');
- }
-
- TInt size = (iPtr.Length() + textp.Length() - ptr.Length()) * sizeof(TText8);
-
- if (size > iPtr.MaxLength())
- {
- TText8* newdata = (TText8*) User::ReAllocL((TUint8*)iPtr.Ptr(), size);
- iPtr.Set(newdata, iPtr.Length(), size/sizeof(TText8));
- }
-
- iPtr.Replace(pos, ptr.Length(), textp);
-
- CleanupStack::PopAndDestroy(text);
-
- return KErrNone;
- }
-
-
-// Commits the changes in variables, ie writes the file data (held in iPtr)
-// into the actual disk file
-void CBmpAnimIniData::CommitL()
- {
- TAutoClose<RFs> fs;
- User::LeaveIfError(fs.iObj.Connect());
- fs.PushL();
-
- // Just replace the file with the data, no seeking necessary
- TAutoClose<RFile> file;
- file.iObj.Replace(fs.iObj, *iName, EFileStreamText|EFileWrite);
- file.PushL();
-
- TPtrC8 ptrc8((TUint8*)iPtr.Ptr(), iPtr.Size());
- User::LeaveIfError(file.iObj.Write(ptrc8));
-
- file.Pop();
- fs.Pop();
- }
-
-
-// --- protected ---
-
-// c'tor
-CBmpAnimIniData::CBmpAnimIniData()
-: iPtr(NULL, 0)
- {
- __DECLARE_NAME(_S("CBmpAnimIniData"));
- }
-
-
-// Allocate a buffer and Read file's contents into iPtr
-void CBmpAnimIniData::ConstructL(const TDesC& aName)
- {
- // Allocate space for token
- iToken = HBufC8::NewL(KTokenSize + 2); // 2 extra chars for [tokenName]
-
- // Connect to file server
- TAutoClose<RFs> fs;
- User::LeaveIfError(fs.iObj.Connect());
- fs.PushL();
-
- // Find file, given name
- TFindFile ff(fs.iObj);
- TAutoClose<RFile> file;
- TInt err = ff.FindByDir(aName, KIniFileDir);
-
- // If found - cool, use the found file's name and open it
- if (err == KErrNone)
- {
- iName = ff.File().AllocL();
- err = file.iObj.Open(fs.iObj, *iName, EFileStreamText | EFileRead);
- }
-
- // If not found - create the file using the given name
- if (err == KErrNotFound)
- {
- err = file.iObj.Create(fs.iObj, aName, EFileStreamText);
- iName = aName.AllocL();
- }
-
- file.PushL();
-
- // Get file size and read in as 8-bit data
- TInt size = 0;
- User::LeaveIfError(file.iObj.Size(size));
- TText8* data = (TText8*) User::AllocL(size);
- iPtr.Set(data, size, size);
- TPtr8 dest((TUint8*)data, 0, size);
- User::LeaveIfError(file.iObj.Read(dest));
-
- file.Pop();
- fs.Pop();
- }
-
-
-// --- private ---
-
-
-// Find a section in the INIfile
-TBool CBmpAnimIniData::FindSection(
- const TDesC8& aSection, TInt& aStart, TInt& aEnd)
- {
- TInt posI = 0; // Position in internal databuffer
- TBool FoundSection = EFalse;
- TPtrC8 SearchBuf;
-
- while (!FoundSection)
- {
- // Move search buffer to next area of interest
- SearchBuf.Set(iPtr.Mid(posI));
-
- // Make up token "[SECTIONNAME]", to search for
- TPtr8 sectionToken = iToken->Des();
- _LIT8(sectionTokenFmtString,"[%S]");
- sectionToken.Format(sectionTokenFmtString, &aSection);
-
- // Search for next occurrence of aSection
- TInt posSB = SearchBuf.Find(sectionToken);
-
- // If not found, return
- if (posSB == KErrNotFound)
- {
- return EFalse;
- }
-
- // Check this is at beginning of line (ie. non-commented)
- // ie. Check preceding char was LF
- if (posSB > 0)
- {
- // Create a Buffer, starting one char before found subBuf
- TPtrC8 CharBefore(SearchBuf.Right(SearchBuf.Length() - posSB + 1));
- // Check first char is end of prev
- if (CharBefore[0] == '\n')
- {
- FoundSection = ETrue; // found
- posI = posI + posSB;
- }
- else
- {
- posI = posI + posSB + 1; // try again
- }
- }
- else
- {
- FoundSection = ETrue;
- }
-
- } // while (!FoundSection)
-
- // Set start of section, after section name, (incl '[' and ']')
- aStart = posI + aSection.Length() + 2;
-
- // Set end of section, by finding begin of next section or end
- SearchBuf.Set(iPtr.Mid(posI));
-
- _LIT8(nextSectionBuf,"\n[");
-
- TInt posSB = SearchBuf.Find(nextSectionBuf);
- if (posSB != KErrNotFound)
- {
- aEnd = posI + posSB + 1;
- }
- else
- {
- aEnd = iPtr.Length();
- }
-
- return ETrue;
- }
-
-// EOF
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/src/CBmpAnimItem.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Stores a single bitmap animation item: image with its
-* properties (position, timing et al)
-*
-*/
-
-
-
-
-
-// INCLUDES
-#include <fbs.h>
-#include <bitdev.h>
-#include <gdi.h>
-
-#include "CBmpAnimItem.h"
-
-// default 0.20 secs
-const TInt KDefaultTiming = 200000;
-
-// Public constructor, doesn't need a two-phase construction
-CBmpAnimItem::CBmpAnimItem()
- : iFlags(BAIF_OWNSICON),
- iTiming(KDefaultTiming),
- iPosition(TPoint(0, 0))
- {
- }
-
-
-// Destructor
-CBmpAnimItem::~CBmpAnimItem()
- {
- if (Flags() & BAIF_OWNSICON)
- {
- delete iIcon;
- }
- }
-
-
-// Set icon. If owned, an icon is deleted by the item
-void CBmpAnimItem::SetIcon(
- CGulIcon* aIcon,
- TBool aItemOwnsIcon /*= ETrue */)
- {
- // Get rid of old icon, if any and if owned
- if ((iIcon) && (Flags() & BAIF_OWNSICON))
- {
- delete iIcon;
- }
-
- iIcon = aIcon;
-
- if (aItemOwnsIcon)
- {
- iFlags |= BAIF_OWNSICON;
- }
- else
- {
- iFlags &= ~BAIF_OWNSICON;
- }
- }
-
-
-// Set icon from bitmaps. If owned, an icon is deleted by the item
-void CBmpAnimItem::SetIconL(
- CFbsBitmap* aBitmap,
- CFbsBitmap* aMask /* = NULL */,
- TBool aItemOwnsIcon /* = ETrue */)
- {
- // Create a new icon
- CGulIcon* icon = CGulIcon::NewL();
-
- // Plug the bitmaps in
- icon->SetBitmap(aBitmap);
- icon->SetMask(aMask);
-
- // Does icon own bitmaps?
- icon->SetBitmapsOwnedExternally(!aItemOwnsIcon);
-
- // Store the newly created icon
- SetIcon(icon, aItemOwnsIcon);
- }
-// End of File
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/src/CBmpAnimModel.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,170 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Takes care of storing and serving the bitmaps
-* to be animated along with their properties
-*
-*/
-
-
-
-
-
-#include "CBmpAnimModel.h"
-
-
-// C'tor
-CBmpAnimModel::CBmpAnimModel()
- {
- }
-
-
-// D'tor
-CBmpAnimModel::~CBmpAnimModel()
- {
- // Delete item array
- if (iItems)
- {
- iItems->ResetAndDestroy();
- }
- delete iItems;
- }
-
-
-// Two-phase constructor, initialises member arrays and stuff
-void CBmpAnimModel::ConstructL(CBmpAnimSettings* aSettings)
- {
- // Create item array
- iItems = new(ELeave) CArrayPtrFlat<CBmpAnimItem>(
- KBmpAnimItemArrayGranularity);
-
- iSettings = aSettings;
- }
-
-
-// Number of items query
-TInt CBmpAnimModel::NumberOfItems() const
- {
- return iItems ? iItems->Count() : 0;
- }
-
-
-// Add an item to the end of the array
-void CBmpAnimModel::AppendItemL(CBmpAnimItem* aItem)
- {
- // Sanity check
- if (!iItems)
- {
- ASSERT(EFalse);
- return;
- }
-
- // Stash it in
- iItems->AppendL(aItem);
- }
-
-
-// Insert an item at <aIndex>. Space must be reserved.
-void CBmpAnimModel::InsertItemL(TInt aIndex, CBmpAnimItem* aItem)
- {
- if ((iItems) && (aIndex >= 0) && (aIndex <= NumberOfItems()))
- {
- // Squeeze it in
- iItems->InsertL(aIndex, aItem);
- }
- else
- {
- ASSERT(EFalse);
- }
- }
-
-
-// Delete item at <aIndex>
-void CBmpAnimModel::DeleteItemL(TInt aIndex)
- {
- if ((iItems) && (aIndex >= 0) && (aIndex <= NumberOfItems()))
- {
- // Grab hold of the item for deletion, remove from array
- // and compress the array
- CBmpAnimItem* ptr = iItems->At(aIndex);
- iItems->Delete(aIndex);
- delete ptr;
- iItems->Compress();
- }
- else
- {
- ASSERT(EFalse);
- }
- }
-
-
-// Delete all Items
-void CBmpAnimModel::DeleteAll()
- {
- if (iItems)
- {
- iItems->ResetAndDestroy();
- }
- }
-
-
-// Get item at position <aIndex>
-CBmpAnimItem* CBmpAnimModel::ItemAt(TInt aIndex) const
- {
- if ((iItems) && (aIndex >= 0) && (aIndex < NumberOfItems()))
- {
- return iItems->At(aIndex);
- }
- else
- {
- return NULL;
- }
- }
-
-
-// Get next item in animation sequence. Returns NULL at the end of the
-// sequence (or if there are no items at all), and wraps around to the
-// beginning, so that next call again returns an item.
-CBmpAnimItem* CBmpAnimModel::NextItem(TBool& aWrapped)
- {
- CBmpAnimItem* pItem = ItemAt(iCurrentItem++);
-
- if (pItem)
- {
- aWrapped = EFalse;
- }
- else
- {
- // Apparently there are no more items - wrap around and set indicator
- iCurrentItem = 0;
- aWrapped = ETrue;
-
- pItem = ItemAt(iCurrentItem++);
- }
-
- return pItem;
- }
-
-
-// Reserve space for <aCount> Items
-void CBmpAnimModel::SetReserveL(TInt aCount)
- {
- if ((iItems) && (aCount >= NumberOfItems()))
- {
- iItems->SetReserveL(aCount);
- }
- }
-
-
-// --- private functions ---
-// End of File
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/src/CBmpAnimScrPlugin.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1073 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Main code file for plugin
-*
-*/
-
-
-
-#include <eikenv.h>
-#include <e32math.h>
-#include <bitdev.h>
-#include <aknutils.h>
-#include <akniconutils.h>
-#include <mifconvdefs.h>
-
-#include "CBmpAnimScrPlugin.h"
-#include "BmpAnimUtils.h"
-
-#include <AknQueryDialog.h>
-#include <avkon.rsg>
-// "BmpAnimScrPlugin.rsg"
-
-const TInt KDefaultViewTime = 1000000;
-
-//
-// CBmpAnimSrcPlugin
-//
-
-// Creates and returns a new instance of CBmpAnimScrPlugin
-CBmpAnimScrPlugin* CBmpAnimScrPlugin::NewL()
- {
- CBmpAnimScrPlugin *plugin = new (ELeave) CBmpAnimScrPlugin();
-
- // Initialize settings object so that the plugin name can be retrieved
- iSettings = CBmpAnimSettings::NewL();
-
- return plugin;
- }
-
-
-// Default constructor
-CBmpAnimScrPlugin::CBmpAnimScrPlugin()
- : iState(EPluginStateLoading),
- iStopDisplaying(EFalse),
- iLoadedAnimation(ENone)
- {
- BMALOGGER_CREATE;
-
- }
-
-
-// Destructor
-CBmpAnimScrPlugin::~CBmpAnimScrPlugin()
- {
- delete iModel;
- delete iSettings;
-
- StopDisplayTimer();
- delete iDisplayTimer;
-
- BMALOGGER_DELETE;
- }
-
-
-// --- from Screensaverplugin ---
-
-
-// Initialization function. Must be called before anything but
-// name query can be done
-TInt CBmpAnimScrPlugin::InitializeL(MScreensaverPluginHost *aHost)
- {
- ASSERT(aHost);
-
- // Sanity check
- if (!aHost)
- {
- return KErrArgument;
- }
-
- // Save the host interface
- iHost = aHost;
-
- // Start state
- iState = EPluginStateLoading;
-
- // Initial timing (may be overridden by settings)
- iHost->SetRefreshTimerValue(KDefaultViewTime);
-
- // Lie that we'll show indicators so that host does not prevent
- // plugin to be run if there are any to show. We'll stop after a
- // while anyway and the indicators are shown by normal Screensaver
- iHost->OverrideStandardIndicators();
-
- // Grab hold of the environment (this could be in the plugin host interface)
- iEikEnv = CEikonEnv::Static();
-
- // Create the model to store the animation in
- iModel = new(ELeave) CBmpAnimModel();
- iModel->ConstructL(iSettings);
-
- // Get screen info
- UpdateDisplayInfo();
-
- // Load the animation (Reload figures out which graphics should be used)
- ReloadAnimationL();
-
- // Create display timer
- iDisplayTimer = CPeriodic::NewL(CActive::EPriorityStandard);
-
- return KErrNone;
- }
-
-
-// Draw function being called repeatedly by the host
-TInt CBmpAnimScrPlugin::Draw(CWindowGc& aGc)
- {
- // If initializing, start the timer and move on to animation state
- if (iState == EPluginStateInitializing)
- {
- BMALOGGER_WRITE("First draw, initializing");
-
- StartDisplayTimer();
- HandlePluginState();
- SetDisplayMode();
- TInt nLights = iModel->Settings()->Lights();
-
- if (nLights > 0)
- {
- Lights(nLights);
- }
-
- // Make sure the animation sequence starts from the beginning
- iModel->SetCurrentItemIndex(0);
- }
-
- // Retrieve the next image in sequence
- TBool endOfSequence = EFalse;
- CBmpAnimItem* pItem = iModel->NextItem(endOfSequence);
-
- if ((endOfSequence) || (!pItem))
- {
- // End of sequence reached, see if we've shown enough (1 minute)
- if (iStopDisplaying)
- {
- // Stop the timer
- StopDisplayTimer();
-
- // Back to square 1
- iState = EPluginStateInitializing;
-
- // Set a lower refresh rate while plugin is suspended.
- // This allows the Screensaver to stop Window Server heartbeat
- // and the system is able to sleep normally
- // NOTE: Not needed anymore, Screensaver now shuts down
- // WSERV heartbeat for suspended plugins
- // iHost->SetRefreshTimerValue(KDefaultViewTime);
-
- TInt suspendTime = iModel->Settings()->SuspendTime();
-
- BMALOGGER_WRITEF(_L("BMA: Done drawing, suspending for %d"),
- suspendTime);
-
- iHost->Suspend(suspendTime);
-
- return KErrNone;
- }
- }
-
- if (pItem)
- {
- // Make sure the window is empty in case the bitmap doesn't
- // fill the whole screen
- aGc.Clear();
-
- DrawCentered(aGc, pItem);
- }
-
-// Activate code if centering INI-controllable
-#if 0
- // Retrieve drawing information
- CGulIcon* pIcon = pItem->Icon();
- TPoint position = pItem->Position();
- CFbsBitmap* bitmap = pIcon->Bitmap();
- CFbsBitmap* mask = pIcon->Mask();
-
- // Draw the whole bitmap at position
- TRect rect(position, bitmap->SizeInPixels());
-
- if (mask)
- {
- // Looks like a real icon - draw masked
- aGc.BitBltMasked(position, bitmap, rect, mask, ETrue);
- }
- else
- {
- // Just the bitmap - no masked draw
- aGc.BitBlt(position, bitmap, rect);
- }
-
- // Wait for the specified time until next image
- //
- // TODO: The new wk28 Screensaver crashes if the next call
- // is uncommented. Maybe the timer is not stopped
- // before starting again? Hmm... doesn't seem to happen
- // anymore. I wonder what changed. Anyway, I'll have it
- // commented out for the time being, in order to control
- // all frames' rate with the single setting
- //
- // NOTE: There was a flaw in Screensaver where it would try to
- // start refresh timer twice, if plugin changes the value during
- // the first draw. The fix is released for 2.6_wk40_FB4
- // iHost->SetRefreshTimerValue(pItem->Timing());
- }
-/*
- aGc.SetPenColor(TRgb(255,0,0));
- aGc.SetPenStyle(CGraphicsContext::ESolidPen);
- aGc.DrawRect(TRect(30, 30, 100, 100));
-
- aGc.SetPenColor(TRgb(255,0,0));
- aGc.SetPenSize(TSize(3,3));
- aGc.DrawRect(TRect(120, 100, 200, 150));
-*/
-#endif
- return KErrNone;
- }
-
-
-// Return the name of the plugin
-const TDesC16& CBmpAnimScrPlugin::Name() const
- {
- if (iSettings)
- {
- return iSettings->PluginName();
- }
-
- return KPluginName;
- }
-
-
-// Handles events sent by the screensaver
-TInt CBmpAnimScrPlugin::HandleScreensaverEventL(
- TScreensaverEvent aEvent,
- TAny* /* aData */)
- {
- switch (aEvent)
- {
- case EScreensaverEventStarting:
- BMALOGGER_WRITE("Start event");
- break;
- case EScreensaverEventStopping:
- BMALOGGER_WRITE("Stop event");
- StopDisplayTimer();
- iState = EPluginStateInitializing;
- break;
- case EScreensaverEventDisplayChanged:
- BMALOGGER_WRITE("Display changed event");
- // Grab current screen info
- UpdateDisplayInfo();
- // Reload animation, if needed
- ReloadAnimationL();
- break;
- default:
- break;
- }
-
- return KErrNone;
- }
-
-
-// Return plugin capabilities (configurable)
-TInt CBmpAnimScrPlugin::Capabilities()
- {
- return EScpCapsConfigure;
- }
-
-
-// Perform a plugin function
-TInt CBmpAnimScrPlugin::PluginFunction(TScPluginCaps aFunction, TAny* aParam)
- {
- switch (aFunction)
- {
- case EScpCapsConfigure:
- {
- TRAPD(err, err = ConfigureL(aParam));
- return err;
- }
- break;
- default:
- return KErrNotSupported;
- break;
- }
- }
-
-
-// --- private functions ---
-
-// Draws centered items
-void CBmpAnimScrPlugin::DrawCentered(CWindowGc& aGc, CBmpAnimItem* aItem)
- {
- CGulIcon* pIcon = aItem->Icon();
- CFbsBitmap* bitmap = pIcon->Bitmap();
- CFbsBitmap* mask = pIcon->Mask();
-
- if (!bitmap)
- return;
-
- // Center the bitmap horizontally and vertically (crop off excess)
- TPoint pos;
- TRect rectToDraw;
- TSize sizeBmp = bitmap->SizeInPixels();
- TInt screenWidth = iDi.iRect.Width();
- TInt screenHeight = iDi.iRect.Height();
-
- // Horizontally
- if (sizeBmp.iWidth <= screenWidth)
- {
- // Width fits on screen - center xpos
- pos.iX = (screenWidth - sizeBmp.iWidth) / 2;
-
- // Whole width of bmp can be drawn
- rectToDraw.SetWidth(sizeBmp.iWidth);
- }
- else
- {
- // Bmp wider than screen - xpos top left
- pos.iX = 0;
-
- // Adjust draw rect position and width
- rectToDraw.iTl.iX = (sizeBmp.iWidth - screenWidth) / 2;
- rectToDraw.SetWidth(screenWidth);
- }
-
- // Vertically
- if (sizeBmp.iHeight <= screenHeight)
- {
- // Height fits on screen - center ypos
- pos.iY = (screenHeight - sizeBmp.iHeight) / 2;
-
- // Whole height of bmp can be drawn
- rectToDraw.SetHeight(sizeBmp.iHeight);
- }
- else
- {
- // Bmp higher than screen - ypos top left
- pos.iY = 0;
-
- // Adjust draw rect position and height
- rectToDraw.iTl.iY = (sizeBmp.iHeight - screenHeight) / 2;
- rectToDraw.SetHeight(screenHeight);
- }
-
- // Do the drawing
- if (mask)
- {
- // Looks like a real icon - draw masked
- aGc.BitBltMasked(pos, bitmap, rectToDraw, mask, ETrue);
- }
- else
- {
- // Just the bitmap - no masked draw
- aGc.BitBlt(pos, bitmap, rectToDraw);
- }
- }
-
-
-// Loads the animation into the model
-void CBmpAnimScrPlugin::LoadAnimationL(TBool aLandscape, TBool aRotate)
- {
- // Rotated landscape not supported
- ASSERT(!(aLandscape && aRotate));
-
- // Start by getting rid of a possible loaded animation
- iModel->DeleteAll();
-
- // Bitmap index. If negative, loading is finished.
- TInt nIndex = KMifIdFirst;
-
- TFileName fileName;
-
- if (aLandscape)
- {
- fileName = iModel->Settings()->BitmapFilenameLandscape();
- }
- else
- {
- fileName = iModel->Settings()->BitmapFilename();
- }
-
- BMALOGGER_WRITEF(_L("BMA: Loading from: %S"), &(fileName));
-
- while (nIndex > 0)
- {
- CFbsBitmap* pBmp = NULL;
-
- TRAPD(err, pBmp = AknIconUtils::CreateIconL(fileName, nIndex));
-
- if ((pBmp) && (err == KErrNone))
- {
- // Got bitmap, push and set size
- CleanupStack::PushL(pBmp);
- TInt scaleErr = ScaleBitmap(pBmp, aRotate);
- if (scaleErr == KErrNone)
- {
- // Create an item with the bitmap and store it in the model
- CBmpAnimItem* pItem = new(ELeave) CBmpAnimItem();
- CleanupStack::PushL(pItem);
-
- pItem->SetIconL(pBmp);
- iModel->AppendItemL(pItem);
-
- CleanupStack::Pop(2); // pBmp, pItem
-
- BMALOGGER_WRITEF(_L("BMA: Loaded bmp %d"), nIndex);
-
- // Try loading next bitmap (skip mask IDs)
- nIndex += 2;
- }
- else
- {
- BMALOGGER_WRITEF(_L("BMA: Bmp %d scale err %d"),
- nIndex, scaleErr);
-
- // Apparently SVG icon was not found, this is not caught
- // in CreateIconL(). Assume last image was loaded.
- CleanupStack::PopAndDestroy(); // pBmp
- nIndex = -1;
- }
- }
- else
- {
- // Loading failed - maybe reached end of bitmaps
- nIndex = -1;
-
- BMALOGGER_WRITEF(_L("BMA: Bmp load failed: %d"), err);
- }
- }
-
- // Save the type of loaded animation
- if (aLandscape)
- {
- iLoadedAnimation = ELandscape;
- }
- else if (aRotate)
- {
- iLoadedAnimation = EPortraitRotated;
- }
- else
- {
- iLoadedAnimation = EPortrait;
- }
-
- // On to next state
- HandlePluginState();
-
- // Start animating, when appropriate
- iHost->SetRefreshTimerValue(iModel->Settings()->Timing());
-
- BMALOGGER_WRITE("BMA: Animation loaded");
- }
-
-
-// Re-loads the animation into the model, if needed
-void CBmpAnimScrPlugin::ReloadAnimationL()
- {
- // Check if the correct graphics are already loaded
- if (!ReloadNeeded())
- {
- // Done! That was easy :)
- return;
- }
-
- // Load correct graphics
- LoadAnimationL(LoadLandscape(), RotateNeeded());
- }
-
-
-// Starts the display timer
-void CBmpAnimScrPlugin::StartDisplayTimer()
- {
- ASSERT(iDisplayTimer);
-
- TInt time = iModel->Settings()->RunningTime();
-
- BMALOGGER_WRITEF(_L("BMA: Start display timer for %d"), time);
-
- iStopDisplaying = EFalse;
- iDisplayTimer->Start(
- time,
- time,
- TCallBack(DisplayTimerCallback, this));
- }
-
-
-// Stops the display timer
-void CBmpAnimScrPlugin::StopDisplayTimer()
- {
- BMALOGGER_WRITE("BMA: Stop display timer");
-
- if (iDisplayTimer)
- {
- iDisplayTimer->Cancel();
- }
-
- iStopDisplaying = EFalse;
- }
-
-
-// Display timer callback - sets animation stop flag
-TInt CBmpAnimScrPlugin::DisplayTimerCallback(TAny* aPtr)
- {
- BMALOGGER_WRITE("BMA: Display timer timeout");
-
- CBmpAnimScrPlugin* _this = REINTERPRET_CAST(CBmpAnimScrPlugin*, aPtr);
- _this->iStopDisplaying = ETrue;
- return KErrNone;
- }
-
-
-// Changes the internal state flag
-void CBmpAnimScrPlugin::HandlePluginState()
- {
- switch (iState)
- {
- case EPluginStateLoading:
- iState = EPluginStateInitializing;
- break;
- case EPluginStateInitializing:
- iState = EPluginStateAnimation;
- break;
- case EPluginStateAnimation:
- break;
- case EPluginStateStoppingAnimation:
- iHost->SetRefreshTimerValue(KDefaultViewTime);
- iState = EPluginStateInitializing;
- break;
- }
- }
-
-
-// Requests display mode from host
-void CBmpAnimScrPlugin::SetDisplayMode()
- {
- if (!iHost)
- {
- return;
- }
-
- // Exit partial mode
- iHost->ExitPartialMode();
- }
-
-
-void CBmpAnimScrPlugin::Lights(TInt aSecs)
- {
- BMALOGGER_WRITEF(_L("BMA: Request lights for %d secs"), aSecs);
- iHost->RequestLights(aSecs);
- }
-
-
-// Configure the plugin
-TInt CBmpAnimScrPlugin::ConfigureL(TAny* aParam)
- {
- if (!iSettings)
- {
- return KErrNotFound;
- }
-
- // Grab the parameter (CEikonEnv in this case)
- CEikonEnv* eikEnv = NULL;
-
- if (aParam)
- {
- // The host was kind enough to provide us with a param - use it
- eikEnv = REINTERPRET_CAST(CEikonEnv*, aParam);
- }
- else if (iEikEnv)
- {
- // Use own env, if initialized
- eikEnv = iEikEnv;
- }
-
- TInt setting = iSettings->Lights();
-
- CAknNumberQueryDialog* dlg = CAknNumberQueryDialog::NewL(setting);
- CleanupStack::PushL(dlg);
- _LIT(KPrompt, "Lights time (sec)");
- dlg->SetPromptL(KPrompt);
- dlg->SetMinimumAndMaximum(0, 30);
- CleanupStack::Pop();
-
- if (dlg->ExecuteLD(R_AVKON_DIALOG_QUERY_VALUE_NUMBER))
- {
- iSettings->SetLights(setting);
- iSettings->SaveSettingsL();
- }
-
- // All was swell!
- return KErrNone;
- }
-
-
-// Scale bitmap to screen size, set size of SVG bitmaps
-TInt CBmpAnimScrPlugin::ScaleBitmap(CFbsBitmap* aBmp, TBool aRotate)
- {
- TInt ret = KErrNone;
-
- // SVG size always screen size
- TSize size = iDi.iRect.Size();
-
- if (!AknIconUtils::IsMifIcon(aBmp))
- {
- // Bitmaps maintain their original size, unless scaling requested, in which
- // case screen size is OK
- if (!iSettings->ScaleBmps())
- {
- // No scaling, use original size
- size = aBmp->SizeInPixels();
-
- if (aRotate)
- {
- // Lie the target size, otherwise IconUitls will think
- // the image needs scaling (this won't work perfectly
- // either, the image gets clipped a little :(
- //size.SetSize(size.iHeight, size.iHeight);
-
- // Flip size for rotation
- size.SetSize(size.iHeight, size.iWidth);
- }
- }
- }
-
- if (aRotate)
- {
- // Set image to screen size and rotate 90 deg left (270 right)
- // ret = SetSizeAndRotation(aBmp, size, 270);
- ret = AknIconUtils::SetSizeAndRotation(
- aBmp, size, EAspectRatioPreservedSlice, 270);
- }
- else
- {
- // Just set image to size
- ret = AknIconUtils::SetSize(aBmp, size, EAspectRatioPreserved);
- }
-
- return ret;
- }
-
-
-// Returns ETrue if reload of the animation is needed
-TBool CBmpAnimScrPlugin::ReloadNeeded()
- {
- // Assume reload needed
- TBool needed = ETrue;
-
- switch (iLoadedAnimation)
- {
- case EPortrait:
- // No reload if display portrait
- if (!DisplayIsLandscape())
- {
- needed = EFalse;
- }
- break;
-
- case ELandscape:
- case EPortraitRotated:
- // No reload if display landscape
- if (DisplayIsLandscape())
- {
- needed = EFalse;
- }
- break;
-
- case ENone:
- default:
- // Reload
- break;
- }
-
- return needed;
- }
-
-
-// Returns ETrue if display in landscape
-TBool CBmpAnimScrPlugin::DisplayIsLandscape()
- {
- // Should actually check the rotation and stuff, but what the hey...
- return (iDi.iRect.Width() > iDi.iRect.Height());
- }
-
-
-// Returns ETrue if graphics should be rotated
-TBool CBmpAnimScrPlugin::RotateNeeded()
- {
- // Rotate needed, if only portrait graphics are used, and
- // display is landscape
- return ((!iSettings->UseLandscape()) && (DisplayIsLandscape()));
- }
-
-
-// Returns ETrue if landscape graphics should be loaded
-TBool CBmpAnimScrPlugin::LoadLandscape()
- {
- // Landscape, if only available and display is landscape
- return ((iSettings->UseLandscape()) && (DisplayIsLandscape()));
- }
-
-
-// Updates the saved information about display
-void CBmpAnimScrPlugin::UpdateDisplayInfo()
- {
- iDi.iSize = sizeof(TScreensaverDisplayInfo);
- iHost->DisplayInfo(&iDi);
- }
-
-#if 0
-// Rotates and scales a source bitmap into target bitmap (non-leaving wrapper)
-TInt CBmpAnimScrPlugin::SetSizeAndRotation(
- CFbsBitmap* aBmp, TSize aSize, TInt aAngle)
- {
- // Anything to do?
- if ((aBmp) && (aBmp->SizeInPixels() == aSize) && ((aAngle % 360) == 0))
- {
- // Duh, the bitmap is already as requested
- return KErrNone;
- }
-
- // Call the actual workhorse
- TRAPD(err, SetSizeAndRotationL(aBmp, aSize, aAngle));
-
- return err;
- }
-
-
-// Rotates and scales a source bitmap into target bitmap (leaving version)
-void CBmpAnimScrPlugin::SetSizeAndRotationL(
- CFbsBitmap* aBmp, TSize aSize, TInt aAngle)
- {
- // Make a copy of the source bitmap, and use the original source as target
- CFbsBitmap* tmpBmp = new (ELeave) CFbsBitmap;
- CleanupStack::PushL(tmpBmp);
-
- User::LeaveIfError(tmpBmp->Duplicate(aBmp->Handle()));
-
- // Discard original bitmap
- aBmp->Reset();
-
- // Create new target bitmap in the original object
- User::LeaveIfError(aBmp->Create(aSize, tmpBmp->DisplayMode()));
-
- // Let the workhorse do its work
- RotateAndScaleBitmapL(TRect(aSize), aBmp, tmpBmp, aAngle);
-
- // Not interested in original anymore
- CleanupStack::PopAndDestroy(tmpBmp);
- }
-
-
-// Rotates and scales a source bitmap into target bitmap
-void CBmpAnimScrPlugin::RotateAndScaleBitmapL(
- const TRect& aTrgRect,
- CFbsBitmap* aTrgBitmap,
- CFbsBitmap* aSrcBitmap,
- TInt aAngle)
- {
- aAngle = aAngle % 360;
- if (aAngle < 0)
- {
- aAngle+=360;
- }
-
- if (!aSrcBitmap) User::Leave(KErrArgument);
- if (!aTrgBitmap) User::Leave(KErrArgument);
- if (aSrcBitmap->DisplayMode() != aTrgBitmap->DisplayMode())
- User::Leave(KErrArgument);
-
- TSize trgBitmapSize = aTrgBitmap->SizeInPixels();
- if ((trgBitmapSize.iHeight < aTrgRect.iBr.iY) ||
- (trgBitmapSize.iWidth < aTrgRect.iBr.iX))
- {
- User::Leave(KErrArgument);
- }
-
- if (aTrgRect.IsEmpty())
- return;
-
- TSize srcSize = aSrcBitmap->SizeInPixels();
-
- TInt centerX = srcSize.iWidth / 2;
- TInt centerY = srcSize.iHeight / 2;
-
- TInt trgWidth = aTrgRect.Width();
- TInt trgHeight = aTrgRect.Height();
-
- TInt scalefactor = 65536;
- TInt xscalefactor = (srcSize.iWidth << 16) / trgWidth;
- TInt yscalefactor = (srcSize.iHeight << 16) / trgHeight;
-
- // Check if rotating 90 left or right, no need to scale
- if (((aAngle == 270) || (aAngle == 90)) &&
- (srcSize.iWidth == trgHeight) &&
- (srcSize.iHeight == trgWidth))
- {
- scalefactor = 65535;
- }
- else
- {
- if (xscalefactor < yscalefactor)
- {
- scalefactor = yscalefactor;
- }
- else
- {
- scalefactor = xscalefactor;
- }
- }
-
- TBool srcTemporary = EFalse;
- TBool hardMask = EFalse;
- if (aSrcBitmap->IsRomBitmap())
- {
- srcTemporary = ETrue;
- }
- if (aSrcBitmap->IsCompressedInRAM())
- {
- srcTemporary = ETrue;
- }
-
- TBool fallbackOnly = EFalse;
- TDisplayMode displayMode = aSrcBitmap->DisplayMode();
- TUint8 fillColor = 0;
-
- switch(displayMode)
- {
- case EGray2:
- srcTemporary = ETrue;
- hardMask = ETrue;
- fillColor = 0xff; // white
- break;
- case EGray4:
- case EGray16:
- case EColor16:
- case EColor16M:
- case ERgb:
- fallbackOnly = ETrue;
- break;
- case EColor256:
- fillColor = 0xff; // should be black in our indexed palette....
- case EGray256:
- case EColor4K:
- case EColor64K:
-
- case EColor16MU:
- // These are the supported modes
- break;
- default:
- fallbackOnly = ETrue;
- }
-
- if (fallbackOnly)
- {
- // Color mode not supported
- User::Leave(KErrNotSupported);
- }
-
- CFbsBitmap* realSource = aSrcBitmap;
- CFbsBitmap* realTarget = aTrgBitmap;
- if (srcTemporary)
- {
- realSource = new (ELeave) CFbsBitmap();
- CleanupStack::PushL(realSource);
- if (hardMask)
- {
- realTarget = new (ELeave) CFbsBitmap();
- CleanupStack::PushL(realTarget);
- User::LeaveIfError(realSource->Create(srcSize, EGray256));
- displayMode = EGray256;
- User::LeaveIfError(realTarget->Create(
- aTrgBitmap->SizeInPixels(), EGray256));
- }
- else
- {
- User::LeaveIfError(realSource->Create(
- srcSize, aSrcBitmap->DisplayMode()));
- }
-
- CFbsBitmapDevice* dev = CFbsBitmapDevice::NewL(realSource);
- CleanupStack::PushL(dev);
- CFbsBitGc* gc = NULL;
- User::LeaveIfError(dev->CreateContext(gc));
- CleanupStack::PushL(gc);
- gc->BitBlt(TPoint(0,0), aSrcBitmap);
- CleanupStack::PopAndDestroy(2); // dev, gc
- }
-
- // Heap lock for FBServ large chunk is only needed with large bitmaps.
- if (realSource->IsLargeBitmap() || realTarget->IsLargeBitmap())
- {
- realTarget->LockHeapLC(ETrue); // fbsheaplock
- }
- else
- {
- // Bogus push so we can pop() anyway
- CleanupStack::PushL((TAny*)NULL);
- }
-
- TUint32* srcAddress = realSource->DataAddress();
- TUint32* trgAddress = realTarget->DataAddress();
-
- TReal realsin;
- TReal realcos;
- TInt sin;
- TInt cos;
-
- User::LeaveIfError(Math::Sin(realsin, ((2*KPi)/360) * aAngle));
- User::LeaveIfError(Math::Cos(realcos, ((2*KPi)/360) * aAngle));
-
- sin = ((TInt)(realsin * scalefactor));
- cos = ((TInt)(realcos * scalefactor));
-
- TInt xx = ((trgWidth)/2) - ((srcSize.iWidth/2) - centerX);
- TInt yy = ((trgHeight)/2) - ((srcSize.iHeight/2) - centerY);
-
- TInt x = 0;
- TInt y = 0;
- TInt u = 0;
- TInt v = 0;
-
- if( (displayMode==EGray256) || (displayMode==EColor256) )
- {
- TInt srcScanLen8 = CFbsBitmap::ScanLineLength(
- srcSize.iWidth, displayMode);
- TInt trgScanLen8 = CFbsBitmap::ScanLineLength(
- trgBitmapSize.iWidth, displayMode);
- TUint8* srcAddr8 = reinterpret_cast<TUint8*>(srcAddress);
- TUint8* trgAddr8 = reinterpret_cast<TUint8*>(trgAddress);
-
- // skip left and top margins in the beginning
- trgAddr8 += trgScanLen8 * aTrgRect.iTl.iY + aTrgRect.iTl.iX;
-
- for (y = 0; y < trgHeight; y++)
- {
- u = (-xx) * cos + (y-yy) * sin + (centerX<<16);
- v = (y-yy) * cos - (-xx) * sin + (centerY<<16);
- for (x = 0; x < trgWidth; x++)
- {
- if (((u>>16)>=srcSize.iWidth) ||
- ((v>>16)>=srcSize.iHeight) ||
- ((u>>16)<0) ||
- ((v>>16)<0))
- {
- *trgAddr8++ = fillColor;
- }
- else
- {
- *trgAddr8++ = srcAddr8[(u>>16)+(((v>>16))*srcScanLen8)];
- }
- u += cos;
- v -= sin;
- }
- trgAddr8 += trgScanLen8 - trgWidth;
- }
- }
- else if( displayMode == EColor64K || displayMode == EColor4K)
- {
- TInt srcScanLen16 = CFbsBitmap::ScanLineLength(
- srcSize.iWidth, displayMode) / 2;
- TInt trgScanLen16 = CFbsBitmap::ScanLineLength(
- trgBitmapSize.iWidth, displayMode) / 2;
- TUint16* srcAddr16 = reinterpret_cast<TUint16*>(srcAddress);
- TUint16* trgAddr16 = reinterpret_cast<TUint16*>(trgAddress);
-
- // skip left and top margins in the beginning
- trgAddr16 += trgScanLen16 * aTrgRect.iTl.iY + aTrgRect.iTl.iX;
-
- for (y = 0; y < trgHeight; y++)
- {
- u = (-xx) * cos + (y-yy) * sin + (centerX<<16);
- v = (y-yy) * cos - (-xx) * sin + (centerY<<16);
- for (x = 0; x < trgWidth; x++)
- {
- if (((u>>16)>=srcSize.iWidth) ||
- ((v>>16)>=srcSize.iHeight) ||
- ((u>>16)<0) ||
- ((v>>16)<0))
- {
- *trgAddr16++ = 0;
- }
- else
- {
- *trgAddr16++ =
- srcAddr16[(u>>16)+(((v>>16))*srcScanLen16)];
- }
- u += cos;
- v -= sin;
- }
- trgAddr16 += trgScanLen16 - trgWidth;
- }
- }
- else if(displayMode == EColor16MU)
- {
- TInt srcScanLen32 = CFbsBitmap::ScanLineLength(
- srcSize.iWidth, displayMode) / 4;
- TInt trgScanLen32 = CFbsBitmap::ScanLineLength(
- trgBitmapSize.iWidth, displayMode) / 4;
- TUint32* srcAddr32 = srcAddress;
- TUint32* trgAddr32 = trgAddress;
-
- // skip left and top margins in the beginning
- trgAddr32 += trgScanLen32 * aTrgRect.iTl.iY + aTrgRect.iTl.iX;
-
- for (y = 0; y < trgHeight; y++)
- {
- u = (-xx) * cos + (y-yy) * sin + (centerX<<16);
- v = (y-yy) * cos - (-xx) * sin + (centerY<<16);
- for (x = 0; x < trgWidth; x++)
- {
- if (((u>>16)>=srcSize.iWidth) ||
- ((v>>16)>=srcSize.iHeight) ||
- ((u>>16)<0) ||
- ((v>>16)<0))
- {
- *trgAddr32++ = 0;
- }
- else
- {
- *trgAddr32++ =
- srcAddr32[(u>>16)+(((v>>16))*srcScanLen32)];
- }
- u += cos;
- v -= sin;
- }
- trgAddr32 += trgScanLen32 - trgWidth;
- }
- }
- else
- {
- // Display mode not supported - but this should've been caught
- // already earlier
- User::Leave(KErrUnknown);
- }
-
- CleanupStack::PopAndDestroy(); // fbsheaplock
-
- if (srcTemporary)
- {
- if (hardMask)
- {
- CFbsBitmapDevice* dev = CFbsBitmapDevice::NewL(aTrgBitmap);
- CleanupStack::PushL(dev);
- CFbsBitGc* gc = NULL;
- User::LeaveIfError(dev->CreateContext(gc));
- CleanupStack::PushL(gc);
- gc->BitBlt(TPoint(0,0), realTarget);
- CleanupStack::PopAndDestroy(3); // dev, gc, realtarget
- }
- CleanupStack::PopAndDestroy(); // realSource
- }
- }
-#endif
-
-// End of file
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/src/CBmpAnimSettings.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,320 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Loads and stores the bitmap animator settings
-*
-*/
-
-
-
-
-
-#include <e32std.h>
-
-#include "CBmpAnimSettings.h"
-
-#include "BmpAnimUtils.h"
-#include <f32file.h>
-
-// Defaults
-const TInt KRunningTime = 1000000 * 60; // 60 secs
-const TInt KTiming = 200000; // 5 fps
-const TInt KSuspendTime = -1; // Max = KMaxTInt, -1 = indefinitely
-const TInt KUndefined = -1;
-
-// Configuration file name
-_LIT(KIniFile, "BmpAnimScrPlugin.ini");
-
-// Default bitmap file name
-_LIT(KMbmFileName, "BmpAnimScrPlugin.mbm");
-
-// Default bitmap file name - lansdscape
-_LIT(KMbmFileNameL, "BmpAnimScrPluginL.mbm");
-
-// Basic info section name
-_LIT8(KIniSectionInfo, "info");
-
-// Info section keys
-_LIT8(KIniKeyName, "name"); // plugin name
-_LIT8(KIniKeyNumImages, "numimages"); // number of images
-_LIT8(KIniKeyMbmFile, "mbmfile"); // name of imagefile
-_LIT8(KIniKeyMbmFileL, "mbmfilelandscape"); // name of landscape imagefile
-_LIT8(KIniKeyRunningTime, "runningtime"); // time to run animation (in millis)
-_LIT8(KIniKeyLoopCount, "loopcount"); // loop count (if time is not defined)
-_LIT8(KIniKeySuspendTime, "suspendtime"); // time to suspend (in millis)
-_LIT8(KIniKeyTiming, "timing"); // time to display each image (RE-USED BELOW)
-_LIT8(KIniKeyLights, "lights"); // lights on for 5 secs. Over 5 = number of secs
-_LIT8(KIniKeyUseLandscape, "uselandscape"); // 1 = landscape image file used
-_LIT8(KIniKeyScaleBmps, "scalebmps"); // 1 = bitmaps scaled to screen size
-
-// Image section base name
-_LIT8(KIniSectionImageBase, "image"); // image information section name
-
-// Image section keys
-_LIT8(KIniKeyType, "type"); // 0 = background, 1 = bitmap, 2 = icon
-_LIT8(KIniKeyIndex, "index"); // index of image in mbm
-_LIT8(KIniKeyMaskIndex, "maskindex"); // index of icon mask in mbm
-_LIT8(KIniKeyFile, "file"); // name of image file (not yet supported)
-_LIT8(KIniKeyPosX, "posx"); // display position X
-_LIT8(KIniKeyPosY, "posy"); // display position Y
-// _LIT8(KIniKeyTiming, "timing"); // time to display this image (NOTE RE-USE!)
-
-
-// User constructor
-CBmpAnimSettings* CBmpAnimSettings::NewL()
- {
- CBmpAnimSettings* self = new(ELeave) CBmpAnimSettings();
-
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop();
-
- return self;
- }
-
-
-// C'tor, sets defaults
-CBmpAnimSettings::CBmpAnimSettings()
- : iRunningTime(KRunningTime),
- iLoopCount(KUndefined),
- iSuspendTime(KSuspendTime),
- iTiming(KTiming),
- iPluginName(KPluginName),
- iMbmFileName(KMbmFileName),
- iMbmFileNameL(KMbmFileNameL),
- iLights(KUndefined),
- iUseLandscape(0),
- iScaleBmps(0)
- {
- }
-
-
-// Two-phase constructor
-void CBmpAnimSettings::ConstructL()
- {
- // Try to open the settings file
- if (OpenSettings() == KErrNone)
- {
- LoadSettingsL();
- }
- }
-
-
-// D'tor
-CBmpAnimSettings::~CBmpAnimSettings()
- {
- delete iIniData;
- }
-
-
-// --- Access functions ---
-
-
-// Loads (common) settings from the settings file
-TBool CBmpAnimSettings::LoadSettingsL()
- {
- // Sanity check
- if (!iIniData)
- {
- return EFalse;
- }
-
- // Running time (never mind the section)
- if (!(iIniData->FindVar(KIniKeyRunningTime, iRunningTime)))
- {
- // Running time not found - try loop count
- if (!(iIniData->FindVar(KIniKeyLoopCount, iLoopCount)))
- {
- // That's not there either - use default running time
- iRunningTime = KRunningTime;
- }
- else
- {
- // Loop count found - running time is undefined
- iRunningTime = KUndefined;
- }
- }
-
- // Suspend time
- if (!(iIniData->FindVar(KIniKeySuspendTime, iSuspendTime)))
- {
- iSuspendTime = KSuspendTime; // TODO: KUndefined
- }
-
- // Default timing (need to use section as well)
- if (!(iIniData->FindVar(
- KIniSectionInfo,
- KIniKeyTiming,
- iTiming)))
- {
- iTiming = KTiming;
- }
-
- // Lights time
- if (!(iIniData->FindVar(KIniKeyLights, iLights)))
- {
- iLights = KUndefined;
- }
-
- // Use landscape
- if (!(iIniData->FindVar(KIniKeyUseLandscape, iUseLandscape)))
- {
- iUseLandscape = 0;
- }
-
- // Scale bmps
- if (!(iIniData->FindVar(KIniKeyScaleBmps, iScaleBmps)))
- {
- iScaleBmps = 0;
- }
-
- // Plugin name
- iPluginName = KNullDesC;
- if ((!(iIniData->FindVar(KIniKeyName, iPluginName))) ||
- (iPluginName.Length() <= 0))
- {
- // Not found, or empty setting - use default
- iPluginName = KPluginName;
- }
-
- // Load BMP file names
- LoadBitmapFileName();
- LoadBitmapFileName(ETrue);
-
- BMALOGGER_WRITEF(_L("BMA: Detected settings:"));
- BMALOGGER_WRITEF(_L(" Name: %S"), &iPluginName);
- BMALOGGER_WRITEF(_L(" Run for: %d"), RunningTime());
- BMALOGGER_WRITEF(_L(" Loops: %d"), LoopCount());
- BMALOGGER_WRITEF(_L(" Suspend: %d"), SuspendTime());
- BMALOGGER_WRITEF(_L(" Timing: %d"), Timing());
- BMALOGGER_WRITEF(_L(" Lights: %d"), Lights());
- BMALOGGER_WRITEF(_L(" Bitmap file: %S"), &iMbmFileName);
- BMALOGGER_WRITEF(_L(" Lanscape bitmap file: %S"), &iMbmFileNameL);
- BMALOGGER_WRITEF(_L(" Use landscape: %d"), UseLandscape());
- BMALOGGER_WRITEF(_L(" Scale bmps: %d"), ScaleBmps());
- BMALOGGER_WRITEF(_L("BMA: End settings"));
-
- return ETrue;
- }
-
-
-// Saves (common) settings
-TBool CBmpAnimSettings::SaveSettingsL()
- {
- // Sanity check
- if (!iIniData)
- {
- return EFalse;
- }
-
- // Write lights
- if (iIniData->WriteVarL(
- KIniSectionInfo, KIniKeyLights, iLights) == KErrNone)
- {
- iIniData->CommitL();
- }
-
- return ETrue;
- }
-
-// --- private ---
-
-
-// Opens the settings file (initialises the settings reader)
-TInt CBmpAnimSettings::OpenSettings()
- {
- // Locate the dll path
- TFileName dllName;
-// Dll::FileName(dllName);
- dllName.Append(_L("\\resource\\plugins\\"));
-
- // Combine the dll path with the settings file name
- TParse p;
- p.SetNoWild(KIniFile, &dllName, NULL);
-
- BMALOGGER_WRITEF(_L("Searching INI: %S"), &(p.FullName()));
-
- // Try to open the INI file from plugin directory
- TRAPD(err, iIniData = CBmpAnimIniData::NewL(p.FullName()));
-
- if (err != KErrNone)
- {
- BMALOGGER_WRITE("INI not in plugin dir, trying \\system\\data");
- // Try \system\data instead
- TRAP(err, iIniData = CBmpAnimIniData::NewL(KIniFile));
- }
-
- if (err != KErrNone)
- {
- // Make sure the settings are not attempted to be used
- delete iIniData;
- iIniData = NULL;
- BMALOGGER_WRITE("INI not found");
- }
- else
- {
- BMALOGGER_WRITE("INI found");
- }
-
- return err;
- }
-
-
-// Gets the bitmap file name from settings, or uses default
-void CBmpAnimSettings::LoadBitmapFileName(TBool aLandscape)
- {
- // Get the DLL path name. The path is used, if only a file name
- // is specified.
- TFileName dllName;
- Dll::FileName(dllName);
-
- // Get whatever's in the settings
- TFileName fileName;
- TBool res = ETrue;
- if (aLandscape)
- {
- res = iIniData->FindVar(KIniKeyMbmFileL, fileName);
- }
- else
- {
- res = iIniData->FindVar(KIniKeyMbmFile, fileName);
- }
-
- if (!res)
- {
- // Not found - use the default name with the plugin directory
- // there's really no need to do anything here (I think)
- fileName = (_L("\\resource\\plugins\\"));
- }
-
- // The combination order should be:
- // 1. use whatever was defined in the settings (part or full path)
- // 2. use the default name part
- // 3. use the DLL path, if no path parts have yet been defined
- TParse p;
- if (p.SetNoWild(fileName,
- aLandscape ? &KMbmFileNameL : &KMbmFileName,
- &dllName) == KErrNone)
- {
- if (aLandscape)
- {
- iMbmFileNameL = p.FullName();
- }
- else
- {
- iMbmFileName = p.FullName();
- }
- }
- }
-
-// End of File
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/animation.mk Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-#
-# Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description: Bitmap animation plugin animation makefile
-#
-
-include bitmaps.mk
-
-ifeq (WINS,$(findstring WINS, $(PLATFORM)))
-ZDIR=\epoc32\release\$(PLATFORM)\$(CFG)\Z
-else
-ZDIR=\epoc32\data\z
-endif
-
-# ----------------------------------------------------------------------------
-# TODO: Configure these
-# ----------------------------------------------------------------------------
-
-TARGETDIR=$(ZDIR)\resource\plugins
-ICONTARGETFILENAME=$(TARGETDIR)\bmpanimscrplugin.mif
-
-HEADERDIR=\epoc32\include
-HEADERFILENAME=$(HEADERDIR)\bmpanimscrplugin.mbg
-
-do_nothing :
- @rem do_nothing
-
-MAKMAKE : do_nothing
-
-BLD : do_nothing
-
-CLEAN : do_nothing
-
-LIB : do_nothing
-
-CLEANLIB : do_nothing
-
-# ----------------------------------------------------------------------------
-# TODO: Configure these.
-#
-# NOTE 1: DO NOT DEFINE MASK FILE NAMES! They are included automatically by
-# MifConv if the mask detph is defined.
-#
-# NOTE 2: Usually, source paths should not be included in the bitmap
-# definitions. MifConv searches for the icons in all icon directories in a
-# predefined order, which is currently \s60\icons, \s60\bitmaps2, \s60\bitmaps.
-# The directory \s60\icons is included in the search only if the feature flag
-# __SCALABLE_ICONS is defined.
-# ----------------------------------------------------------------------------
-
-RESOURCE :
- mifconv $(ICONTARGETFILENAME) /h$(HEADERFILENAME) $(ANIMBITMAPS)
-
-FREEZE : do_nothing
-
-SAVESPACE : do_nothing
-
-RELEASABLES :
- @echo $(HEADERFILENAME)&& \
- @echo $(ICONTARGETFILENAME)
-
-FINAL : do_nothing
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/bitmaps.mk Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description: The bitmap files will be used int bitmap animation plugin
-#
-
-# Do not change the ANIMBITMAPS variable name, remember to
-# add line continuation marks (backslash) until the last line.
-# NOTE that rotation (portrait graphics used in landscape) supports
-# only color modes c1, c8, c16, c32
-
-BMPDIR = s60
-
-ANIMBITMAPS = \
-/c16 $(BMPDIR)\BmpAnim01.bmp \
-/c16 $(BMPDIR)\BmpAnim02.bmp \
-/c16 $(BMPDIR)\BmpAnim03.bmp \
-/c16 $(BMPDIR)\BmpAnim04.bmp \
-/c16 $(BMPDIR)\BmpAnim05.bmp \
-/c16 $(BMPDIR)\BmpAnim06.bmp \
-/c16 $(BMPDIR)\BmpAnim07.bmp \
-/c16 $(BMPDIR)\BmpAnim08.bmp \
-/c16 $(BMPDIR)\BmpAnim09.bmp \
-/c16 $(BMPDIR)\BmpAnim10.bmp \
-/c16 $(BMPDIR)\BmpAnim11.bmp \
-/c16 $(BMPDIR)\BmpAnim12.bmp \
-/c16 $(BMPDIR)\BmpAnim13.bmp \
-/c16 $(BMPDIR)\BmpAnim14.bmp \
-/c16 $(BMPDIR)\BmpAnim15.bmp \
-/c16 $(BMPDIR)\BmpAnim16.bmp \
-/c16 $(BMPDIR)\BmpAnim17.bmp \
-/c16 $(BMPDIR)\BmpAnim18.bmp \
-/c16 $(BMPDIR)\BmpAnim19.bmp \
-/c16 $(BMPDIR)\BmpAnim20.bmp \
-/c16 $(BMPDIR)\BmpAnim21.bmp \
-/c16 $(BMPDIR)\BmpAnim22.bmp \
-/c16 $(BMPDIR)\BmpAnim23.bmp \
-/c16 $(BMPDIR)\BmpAnim24.bmp \
-/c16 $(BMPDIR)\BmpAnim25.bmp \
-/c16 $(BMPDIR)\BmpAnim26.bmp \
-/c16 $(BMPDIR)\BmpAnim27.bmp
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/bitmaps.s60.mk Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description: The bitmap files will be used int bitmap animation plugin
-#
-
-# Do not change the ANIMBITMAPS variable name, remember to
-# add line continuation marks (backslash) until the last line.
-# NOTE that rotation (portrait graphics used in landscape) supports
-# only color modes c1, c8, c16, c32
-
-BMPDIR = s60
-
-ANIMBITMAPS = \
-/c16 $(BMPDIR)\BmpAnim01.bmp \
-/c16 $(BMPDIR)\BmpAnim02.bmp \
-/c16 $(BMPDIR)\BmpAnim03.bmp \
-/c16 $(BMPDIR)\BmpAnim04.bmp \
-/c16 $(BMPDIR)\BmpAnim05.bmp \
-/c16 $(BMPDIR)\BmpAnim06.bmp \
-/c16 $(BMPDIR)\BmpAnim07.bmp \
-/c16 $(BMPDIR)\BmpAnim08.bmp \
-/c16 $(BMPDIR)\BmpAnim09.bmp \
-/c16 $(BMPDIR)\BmpAnim10.bmp \
-/c16 $(BMPDIR)\BmpAnim11.bmp \
-/c16 $(BMPDIR)\BmpAnim12.bmp \
-/c16 $(BMPDIR)\BmpAnim13.bmp \
-/c16 $(BMPDIR)\BmpAnim14.bmp \
-/c16 $(BMPDIR)\BmpAnim15.bmp \
-/c16 $(BMPDIR)\BmpAnim16.bmp \
-/c16 $(BMPDIR)\BmpAnim17.bmp \
-/c16 $(BMPDIR)\BmpAnim18.bmp \
-/c16 $(BMPDIR)\BmpAnim19.bmp \
-/c16 $(BMPDIR)\BmpAnim20.bmp \
-/c16 $(BMPDIR)\BmpAnim21.bmp \
-/c16 $(BMPDIR)\BmpAnim22.bmp \
-/c16 $(BMPDIR)\BmpAnim23.bmp \
-/c16 $(BMPDIR)\BmpAnim24.bmp \
-/c16 $(BMPDIR)\BmpAnim25.bmp \
-/c16 $(BMPDIR)\BmpAnim26.bmp \
-/c16 $(BMPDIR)\BmpAnim27.bmp
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/bitmaps.series60.mk Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description: The bitmap files will be used int bitmap animation plugin
-#
-
-# First image MUST be named BmpAnim_first, and
-# last image BmpAnim_last. Middle ones don't matter.
-# Do not change the ANIMBITMAPS variable name, remember to
-# add line continuation marks (backslash) until the last line.
-
-# NOTE that rotation (portrait graphics used in landscape) supports only color
-# modes c1, c8, c16, c32
-
-BMPDIR = series60
-
-ANIMBITMAPS = \
-/c16 $(BMPDIR)\SS10000.bmp \
-/c16 $(BMPDIR)\SS10001.bmp \
-/c16 $(BMPDIR)\SS10002.bmp \
-/c16 $(BMPDIR)\SS10003.bmp \
-/c16 $(BMPDIR)\SS10004.bmp \
-/c16 $(BMPDIR)\SS10005.bmp \
-/c16 $(BMPDIR)\SS10006.bmp \
-/c16 $(BMPDIR)\SS10007.bmp \
-/c16 $(BMPDIR)\SS10008.bmp \
-/c16 $(BMPDIR)\SS10009.bmp \
-/c16 $(BMPDIR)\SS10010.bmp \
-/c16 $(BMPDIR)\SS10011.bmp \
-/c16 $(BMPDIR)\SS10012.bmp \
-/c16 $(BMPDIR)\SS10013.bmp \
-/c16 $(BMPDIR)\SS10014.bmp \
-/c16 $(BMPDIR)\SS10015.bmp \
-/c16 $(BMPDIR)\SS10016.bmp \
-/c16 $(BMPDIR)\SS10017.bmp \
-/c16 $(BMPDIR)\SS10018.bmp \
-/c16 $(BMPDIR)\SS10019.bmp
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/bitmaps.series60_lowcolor.mk Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description: The bitmap files will be used int bitmap animation plugin
-#
-
-# First image MUST be named BmpAnim_first, and
-# last image BmpAnim_last. Middle ones don't matter.
-# Do not change the ANIMBITMAPS variable name, remember to
-# add line continuation marks (backslash) until the last line.
-BMPDIR = series60
-
-ANIMBITMAPS = \
-/c4 $(BMPDIR)\SS10000.bmp \
-/c4 $(BMPDIR)\SS10001.bmp \
-/c4 $(BMPDIR)\SS10002.bmp \
-/c4 $(BMPDIR)\SS10003.bmp \
-/c4 $(BMPDIR)\SS10004.bmp \
-/c4 $(BMPDIR)\SS10005.bmp \
-/c4 $(BMPDIR)\SS10006.bmp \
-/c4 $(BMPDIR)\SS10007.bmp \
-/c4 $(BMPDIR)\SS10008.bmp \
-/c4 $(BMPDIR)\SS10009.bmp \
-/c4 $(BMPDIR)\SS10010.bmp \
-/c4 $(BMPDIR)\SS10011.bmp \
-/c4 $(BMPDIR)\SS10012.bmp \
-/c4 $(BMPDIR)\SS10013.bmp \
-/c4 $(BMPDIR)\SS10014.bmp \
-/c4 $(BMPDIR)\SS10015.bmp \
-/c4 $(BMPDIR)\SS10016.bmp \
-/c4 $(BMPDIR)\SS10017.bmp \
-/c4 $(BMPDIR)\SS10018.bmp \
-/c4 $(BMPDIR)\SS10019.bmp
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim01.svg Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,122 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
- <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
- <!ENTITY ns_svg "http://www.w3.org/2000/svg">
- <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
-]>
-<svg xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
- width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
- <metadata>
- <x:xmpmeta x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
- <rdf:RDF xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
- <rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-04T09:32:55Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType="Resource">
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
-AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
-DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
-Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
-AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
-AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
-UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
-1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
-qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
-obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
-0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
-+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX//2Q==
- </xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
- <rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
- </rdf:RDF>
- </x:xmpmeta>
-<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
-<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-
- <rdf:Description rdf:about=''
- xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:xap='http://ns.adobe.com/xap/1.0/'
- xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-20T12:03:52Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType='Resource'>
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX//2Q==</xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:dc='http://purl.org/dc/elements/1.1/'>
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
-
-</rdf:RDF>
-</x:xmpmeta>
- <?xpacket end='w'?>
- </metadata>
- <g id="_x30_1">
- <rect fill="none" width="352" height="352"/>
- </g>
- </svg>
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim02.svg Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,147 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
- <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
- <!ENTITY ns_svg "http://www.w3.org/2000/svg">
- <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
-]>
-<svg xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
- width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
- <metadata>
- <x:xmpmeta x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
- <rdf:RDF xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
- <rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-04T09:23:39Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType="Resource">
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
-AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
-DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
-Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
-AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
-AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
-UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
-1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
-qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
-obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
-0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
-+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-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
- </xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
- <rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
- </rdf:RDF>
- </x:xmpmeta>
-<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
-<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-
- <rdf:Description rdf:about=''
- xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:xap='http://ns.adobe.com/xap/1.0/'
- xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-20T12:03:44Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType='Resource'>
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
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</xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:dc='http://purl.org/dc/elements/1.1/'>
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
-
-</rdf:RDF>
-</x:xmpmeta>
- <?xpacket end='w'?>
- </metadata>
- <g id="_x30_1">
- <rect fill="none" width="352" height="352"/>
- </g>
- <g id="_x30_2">
- <g opacity="0.3">
- <polygon fill="#FFCC00" points="145.002,104.102 112.421,121.947 149.582,139.471 180.031,118.835 "/>
- <polygon fill="#FF9900" points="112.421,121.947 116.345,163.209 151.221,181.376 149.582,139.471 "/>
-
- <linearGradient id="XMLID_146_" gradientUnits="userSpaceOnUse" x1="-6.1548" y1="435.9668" x2="28.7212" y2="435.9668" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_146_)" points="116.345,163.209 151.221,181.376 149.582,139.471 "/>
- <polygon fill="#F27C0E" points="180.031,118.835 149.582,139.471 151.221,181.376 180.031,160.096 "/>
- </g>
- </g>
- </svg>
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim03.svg Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,138 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
- <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
- <!ENTITY ns_svg "http://www.w3.org/2000/svg">
- <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
-]>
-<svg xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
- width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
- <metadata>
- <x:xmpmeta x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
- <rdf:RDF xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
- <rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-04T09:23:58Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType="Resource">
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
-AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
-DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
-Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
-AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
-AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
-UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
-1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
-qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
-obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
-0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
-+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX//2Q==
- </xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
- <rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
- </rdf:RDF>
- </x:xmpmeta>
-<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
-<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-
- <rdf:Description rdf:about=''
- xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:xap='http://ns.adobe.com/xap/1.0/'
- xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-20T12:03:37Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType='Resource'>
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX//2Q==</xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:dc='http://purl.org/dc/elements/1.1/'>
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
-
-</rdf:RDF>
-</x:xmpmeta>
- <?xpacket end='w'?>
- </metadata>
- <g id="_x30_1">
- <rect fill="none" width="352" height="352"/>
- </g>
- <g id="_x30_3">
- <g opacity="0">
- <polygon fill="#FFCC00" points="145.002,104.102 112.421,121.947 149.582,139.471 180.031,118.835 "/>
- <polygon fill="#FF9900" points="112.421,121.947 116.345,163.209 151.221,181.376 149.582,139.471 "/>
-
- <linearGradient id="XMLID_144_" gradientUnits="userSpaceOnUse" x1="-6.1548" y1="435.9668" x2="28.7212" y2="435.9668" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_144_)" points="116.345,163.209 151.221,181.376 149.582,139.471 "/>
- <polygon fill="#F27C0E" points="180.031,118.835 149.582,139.471 151.221,181.376 180.031,160.096 "/>
- </g>
- </g>
- </svg>
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim04.svg Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,147 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
- <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
- <!ENTITY ns_svg "http://www.w3.org/2000/svg">
- <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
-]>
-<svg xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
- width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
- <metadata>
- <x:xmpmeta x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
- <rdf:RDF xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
- <rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-04T09:25:01Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType="Resource">
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
-AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
-DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
-Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
-AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
-AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
-UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
-1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
-qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
-obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
-0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
-+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-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
- </xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
- <rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
- </rdf:RDF>
- </x:xmpmeta>
-<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
-<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-
- <rdf:Description rdf:about=''
- xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:xap='http://ns.adobe.com/xap/1.0/'
- xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-20T12:03:31Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType='Resource'>
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
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</xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:dc='http://purl.org/dc/elements/1.1/'>
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
-
-</rdf:RDF>
-</x:xmpmeta>
- <?xpacket end='w'?>
- </metadata>
- <g id="_x30_1">
- <rect fill="none" width="352" height="352"/>
- </g>
- <g id="_x30_4">
- <g opacity="0.3">
- <polygon fill="#FFCC00" points="145.002,104.102 112.421,121.947 149.582,139.471 180.031,118.835 "/>
- <polygon fill="#FF9900" points="112.421,121.947 116.345,163.209 151.221,181.376 149.582,139.471 "/>
-
- <linearGradient id="XMLID_142_" gradientUnits="userSpaceOnUse" x1="-6.1548" y1="435.9668" x2="28.7212" y2="435.9668" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_142_)" points="116.345,163.209 151.221,181.376 149.582,139.471 "/>
- <polygon fill="#F27C0E" points="180.031,118.835 149.582,139.471 151.221,181.376 180.031,160.096 "/>
- </g>
- </g>
- </svg>
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim05.svg Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,153 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
- <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
- <!ENTITY ns_svg "http://www.w3.org/2000/svg">
- <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
-]>
-<svg xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
- width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
- <metadata>
- <x:xmpmeta x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
- <rdf:RDF xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
- <rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-04T09:25:35Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType="Resource">
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
-AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
-DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
-Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
-AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
-AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
-UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
-1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
-qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
-obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
-0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
-+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FUNdahbWwo7Vfsi7n+zMDV9o4sH1G5
-dw5t2PBKfLkhYNdgY0mQx+DD4h9Oa/T9v45Gpjh+1unoyOW6YxyxSryjYOviDXN3izQyC4kEOLKJ
-HNdljF2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVSuLu3
-t1rK4Hgvc/IZjanWY8IuZr72yGOUuSTXeszy1WH90nj+0fp7ZzGs7byZNoeiP2/sc/HpYjnulxJJ
-qdyepzSE25TsCro5ZI25RsVbxBplmPLKBuJIKJRB5plba7MtBOvqD+YbN/TN5pu3px2yDiHfyP6v
-ucSejB+nZNbS8t7uMyQNyVW4t7MADT8c6XTamOaPFHk4WTFKBoq2XtbsVdirsVdirsVdirsVdirs
-VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirD9cmlh1ecA1U8SAfdRnG9rYx+Yl8PuDvtHASx
-BQivIn2b4G9+n35qpYz0bJYiERlTU7FVkkscSF5GCqO5yUYmRoJAJ5JTd6pJJVIaonc9z/TM7Fpx
-Hc7lyoYQObKPJH/HKl/4zt/xBM6nsn+6P9b9AdT2p/eD+r+ksgzZutdirsVdirsVdirsVdirsVdi
-rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVYh5pTjqgP88an8SP4ZynbMaze+Id72cbx/FJ81
-TnKkc8sf2Tt4HpkTEFjKAKtLqYji5FCXOwHbBHT2fJq8DfmlU9xLO/KRq+A7D5ZmwgIig5MYgclL
-Jsmb+SP+OVL/AMZ2/wCIJnQdk/3R/rfoDou1P7wf1f0lkGbN1rsVdirsVdirsVdirsVdirsVdirs
-VdirsVdirsVdirsVdirsVdirsVdirsVdirF/NyUubd/5kI+41/jnNduR9cT5O57MPpI80hAJNAKk
-9s0gDslZYOIq/Xwy0Y65tZnfJC332B8/4ZKHNsggsubHYqzfyR/xypf+M7f8QTOg7J/uj/W/QHRd
-qf3g/q/pLIM2brXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FUj
-80Wkk62zINkLhm7CtP6ZpO2cJmIkdL/Q7Ls/II8VpQtvHCtF3Pdj1zTjGIucZmSjJlcmcUvvf7v6
-RkYc2+CBy5tXIjuwRFLMxoqgVJJ8BiATsEE1zZ95X065sdNMdwAskkhk41qQCqih9/hzpez8EseO
-pcybed12aOSdx5AUm+ZzhuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K
-uxV2KuIBBBFQdiDiRapbeaJDLVoT6T+H7J/pmt1HZsZbx9J+xy8WrMee7H76xurY0mQgHo43U/Tm
-h1GmnjPqDtMOaM+RSm9/uj9GYsOblwUtP027v5/Stk5H9pzsqjxJzMw4JZDUQjNmjjFyZzo3l+00
-1Q9PVuSPimI6eyjtnRaXRRxC+cu90Op1ksu3KPcmmZjiOxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux
-V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVp0R1KuoZTsVIqDglEEUeSQSNwk195VsblwY3aBSa
-yIu4I9q9M1eTsnGZXH0+X45Ofi7QnEUd00tLO2s4RDbxiOMdh1J8Se5zY48UYCoig4WTJKZuRsq2
-WMHYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FX/2Q==
- </xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
- <rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
- </rdf:RDF>
- </x:xmpmeta>
-<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
-<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-
- <rdf:Description rdf:about=''
- xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:xap='http://ns.adobe.com/xap/1.0/'
- xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-20T12:03:27Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType='Resource'>
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
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
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FX/2Q==</xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:dc='http://purl.org/dc/elements/1.1/'>
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
-
-</rdf:RDF>
-</x:xmpmeta>
- <?xpacket end='w'?>
- </metadata>
- <g id="_x30_1">
- <rect fill="none" width="352" height="352"/>
- </g>
- <g id="_x30_5">
- <g opacity="0.6">
- <polygon fill="#FFCC00" points="145.002,104.102 112.421,121.947 149.582,139.471 180.031,118.835 "/>
- <polygon fill="#FF9900" points="112.421,121.947 116.345,163.209 151.221,181.376 149.582,139.471 "/>
-
- <linearGradient id="XMLID_140_" gradientUnits="userSpaceOnUse" x1="-6.1548" y1="435.9668" x2="28.7212" y2="435.9668" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_140_)" points="116.345,163.209 151.221,181.376 149.582,139.471 "/>
- <polygon fill="#F27C0E" points="180.031,118.835 149.582,139.471 151.221,181.376 180.031,160.096 "/>
- </g>
- </g>
- </svg>
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim06.svg Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,158 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
- <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
- <!ENTITY ns_svg "http://www.w3.org/2000/svg">
- <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
-]>
-<svg xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
- width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
- <metadata>
- <x:xmpmeta x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
- <rdf:RDF xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
- <rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-04T09:25:56Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType="Resource">
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
-AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
-DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
-Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
-AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
-AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
-UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
-1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
-qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
-obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
-0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
-+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FVG7vbW0j9S4kEa9q9T8h1OYms12HT
-Q4sshEfjkOrZjxSmaiLSy382aXLKUfnCK0V3Gx+dK0zQab2v0mSfDLih3Ejb7LpzJ9m5Iixum8cs
-cqB43DoejKQQfpGdNiywyR4oESieo3cCUSDRXZYh2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2
-KuxV2KuxV2KuxV2KuxV2KuxV2KuxVZNNDDGZJnEaDqzGgyrNnhiiZTIjEdSyjAyNAWWOal5vArHY
-LU/7+cbf7Ff65w/antkB6dMP84/oH6/k7XB2Z1n8mNz3E9xIZZ5GkkPVmNc4TUanJmlx5JGUu8u3
-hCMRQFBTylkrWt7d2r87eVoz3odj8x0OZWl12bTy4sUjE+X6RyLXkxRmKkLT+x84uKLexch/vyPY
-/SpzstB7aSG2ojf9KP6v2j3OszdljnA/NkNlqNleoWtpRJxpzUbMtelQdxnbaLtDDqocWKXEPudX
-lwTxmpCkRmY1OxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KvPPP
-l/d2uuqnIvA0KOsTHYVLKaeH2c839rYGWpAJNcII+0foep7HwxnhvrZSm31K2m2J9N/5W/gc4+eC
-Q5budPBKPmi8paHYq0SFBJNANyT0xAtUh1PzIq1isviboZj0H+qO+bPT6DrP5Odh0l7yZX+UUjyQ
-6q8jFnZ4izHcnZ89C9mABGYHl+l0vtCADADuP6HoWdS827FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq88/M2Kmo2cv88JWv+q1f+Ns4L2uh+9hLvjXyP7XqewJfu5D
-zYZnIvQIi3v7mCgVuS/ytuMhLGJc2qeGMkcdctkgaSVWUr+yN6n2OUx0kpGg4p0sroMe1LWLq9JU
-n04O0Q6fT45tsGmjj5c+9zcWCMPegMyG96b+T/8AvNqf+vD+p8672Z+mfvH6XlfaP6ofH9D0POoe
-bdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVYP+Z8VYtPlp9lpV
-J/1gp/41zjPbCHpxy/rfoej9n5bzHu/SwHOHelREVm5HKT4V7DucujiPMtUso5BDaooFsQNgCP15
-bi2kzxHdJsynIdir038n/wDebU/9eH9T513sz9M/eP0vK+0f1Q+P6HoedQ827FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqxX8xLSW40m29JeUi3AFNuhRq/qGcx7VY
-TPBGufH+gu67DyiOWV8uH9IYdb6XHbjlJR5fwHyzjselENzuXfT1BlsOS2fvkciYJPqg/wBGf6P1
-jKIfWHMxc0kzLcl2KvVvyp0y+tNOu7i5haKK6aNoC2xZVDVNOtN9s7T2d084Y5SkKEqp5Dt/PCc4
-xibMbtnWdE6B2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVp40k
-QpIodG2ZWFQfoORlESFEWEgkGwx/VPKUMwZ7J/Rk6+m1Sh+R6r+OaDW9gwnviPCe7p+z7XZ6ftIx
-2mLH2sL1TTr2yfhdQtGT9kndT8mGxzj9ZpMuE1OJH473oNPnhkFxNpDqP+88nyzXw+sOxxpPa2lz
-d3CW9tE008hokaCpJzPx45TkIxFkt2TJGEeKRoB6l5S/La2sOF7q4W4vB8SW/WKM+/8AOw+759c7
-Ds3sKOOp5fVPu6D9Z+x5PtDtqWS449o9/U/qZznROgdirsVdirsVdirsVdirsVdirsVdirsVdirs
-VdirsVdirsVdirsVdirsVdirsVdirsVdiqye3guIjFPGssbdUcAg/QcryYo5I8MgCPNlCcom4miw
-7Xfy4guwTp0/1bnQNFJVlA7lT9r6D9+cxq/ZiEpCWE8Pkdx8Dz/HMO90vbko7ZBxeYTzy55V0vQb
-fhapzuHFJrpx8b/80r7DN5oezsemjUfq6nq63W6/JqJXLl0CcZnuE7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q//Z
- </xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
- <rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
- </rdf:RDF>
- </x:xmpmeta>
-<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
-<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-
- <rdf:Description rdf:about=''
- xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:xap='http://ns.adobe.com/xap/1.0/'
- xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-20T12:03:22Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType='Resource'>
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
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
fhapzuHFJrpx8b/80r7DN5oezsemjUfq6nq63W6/JqJXLl0CcZnuE7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q//Z</xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:dc='http://purl.org/dc/elements/1.1/'>
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
-
-</rdf:RDF>
-</x:xmpmeta>
- <?xpacket end='w'?>
- </metadata>
- <g id="_x30_1">
- <rect fill="none" width="352" height="352"/>
- </g>
- <g id="_x30_6">
- <g>
- <polygon fill="#FFCC00" points="146.102,105.201 113.521,123.046 150.682,140.57 181.131,119.935 "/>
- <polygon fill="#FF9900" points="113.521,123.046 117.445,164.31 152.321,182.479 150.682,140.57 "/>
-
- <linearGradient id="XMLID_138_" gradientUnits="userSpaceOnUse" x1="-5.0552" y1="434.8662" x2="29.8208" y2="434.8662" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_138_)" points="117.445,164.31 152.321,182.479 150.682,140.57 "/>
- <polygon fill="#F27C0E" points="181.131,119.935 150.682,140.57 152.321,182.479 181.131,161.195 "/>
- </g>
- </g>
- </svg>
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim07.svg Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,158 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
- <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
- <!ENTITY ns_svg "http://www.w3.org/2000/svg">
- <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
-]>
-<svg xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
- width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
- <metadata>
- <x:xmpmeta x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
- <rdf:RDF xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
- <rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-04T09:26:11Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType="Resource">
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
-AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
-DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
-Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
-AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
-AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
-UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
-1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
-qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
-obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
-0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
-+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FVO4uYLeMyzyLGg/aY0yjUarHg
-hx5JCMfNnDHKRqIssa1PzcxrHYLxHT13G/8AsV/rnCdqe2RNx0wr+kf0D9fydtp+zOs/kk0GsanD
-MZUuH5MatyPIH5g7Zy2DtrV4pmcckrPO9wfgXYT0uOQogJ7Y+cUNEvYuJ/37HuPpU751+g9tInbU
-Rr+lH9X9rrc3ZZ5wPzT+1vbW6TnbyrIvfidx8x1Gdlpdbh1EeLFISHl+kcw6zJilA1IUrZlNbsVd
-irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVSDzB5pj025Fkif6S6
-B1eTZKEkCniajOX7f7fnpD4eOFzIuzyHw5l2ei7OOWPGfpti11e3V3J6lxIZG7V6D5DoM8z1euza
-mfFlkZH8chyDuceKMBURSjmK2OxV2KrXvVsh9YMvo8OjgkH6Kb5dp5ZBMHGSJeWy+Hx7VbIvIvmu
-61ue8hl+KK1VDHIwo7ciwNabds9S9nNbnyxlHNLiMa3r8W6ntbQRwCJHOVsuzpnSuxV2KuxV2Kux
-V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KvOvzNipqdpL/ADwFK/6rk/8AG2cD
-7XQ/fQl3xr5H9r1XYEv3ch/S/Qxa3v7mCgVuSD9htxnHyxiXN3M8MZJnb6rby0D/ALt/fp9+Y08B
-HLdxJ6eQ5bowEEVG4yinHS7U9btrMFF/ez/yA7D/AFjmZp9HLJudouRh05nvyDF7y+ubuTnO/L+V
-Rso+QzcYsUYCoh2WPGICgzz8n/8AenU/9SL9b51vsz9U/cP0vPe0f0w+P6Hpmda8s7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqwb8z4vg0+UDoZUJ+fEj9Rzi/bCG
-2OX9Yfc9H7Py3mPd+lgWcQ9M4Ak0AqcQLQSuuprq3tHEcrJWgIB6VPbLseIGQ4hbARjI7hIySTU9
-cz3Jdir0T8n/APenU/8AUi/W+dT7M/VP3D9LzXtH9MPj+h6ZnWvLOxV2KuxV2KuxV2KuxV2KuxV2
-KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KsR/MuLlo9tL/ACXAH0Mjf0zlfa2F6eJ7p/oLvOwJ
-fvZD+j+kPPrazmuDVRRB1c9M4PHhlPlyeoyZRFG/V44Voo37sepzK8MRGzj8ZlzS3UxW3kH0/ca5
-XD6w5OPmkeZTkuxV6J+T/wDvTqf+pF+t86n2Z+qfuH6XmvaP6YfH9D0zOteWdirsVdirsVdirsVd
-irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVS7XtHTVrD6q540cSLXoStdjT55r+09AN
-Vi4Ca3ty9HqjgnxD3MM1HS7qwoksPpxjZGUfAfkRtnF6vRZMG0o0Psd/g1Ecm4Nn7Umn75qpufBK
-dR/3nk+WY8fqDmY0izLclNNA8t6prl16NlH8C09adto0B8T4+w3zM0ehyaiVQHvPQOJq9bjwRuR9
-w6l7F5X8qaf5ftWjgJluJafWLhtixHQBeigV6Z3XZ/Z0NNGo7yPMvFa7Xz1ErO0RyCdZsHBdirsV
-dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdiq2SOORCkih0bZlYAgj3
-ByM4CQoiwmMiDY5sa1fyRbXAMlg/1eX/AH21TGfp3ZfxznNd7OQyb4jwy7un6x9rt9L2tKO0xxD7
-Xn3mDSdQ09ZI7uFoyQeLdVbavwsNjnGanRZdPkAyRr7j7i9NpNTjyi4G0V5R/Lu81XheajytdPNC
-q9JZR/kg/ZX3P0Z0HZvYk81TyemH2lxO0O2I4rjD1T+wPV7Gws7C1S1s4lhgT7KKKfSfE+5zs8OG
-GOIjAUA8hlzSyS4pGyr5a1uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2
-KuxV2KuxV2KuxV2KrJoIZ4zHNGssbdUcBlNPY5GcIyFSFjzZRmYmwaK/JMXYq7FXYq7FXYq7FXYq
-7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-7FX/2Q==
- </xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
- <rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
- </rdf:RDF>
- </x:xmpmeta>
-<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
-<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-
- <rdf:Description rdf:about=''
- xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:xap='http://ns.adobe.com/xap/1.0/'
- xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-20T12:03:16Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType='Resource'>
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
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
/9k=</xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:dc='http://purl.org/dc/elements/1.1/'>
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
-
-</rdf:RDF>
-</x:xmpmeta>
- <?xpacket end='w'?>
- </metadata>
- <g id="_x30_1">
- <rect fill="none" width="352" height="352"/>
- </g>
- <g id="_x30_7">
- <g>
- <polygon fill="#FFCC00" points="157.502,110.602 124.922,128.448 162.083,145.971 192.529,125.336 "/>
- <polygon fill="#FF9900" points="124.922,128.448 128.846,169.707 163.721,187.874 162.083,145.971 "/>
-
- <linearGradient id="XMLID_136_" gradientUnits="userSpaceOnUse" x1="6.3462" y1="429.4688" x2="41.2212" y2="429.4688" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_136_)" points="128.846,169.707 163.721,187.874 162.083,145.971 "/>
- <polygon fill="#F27C0E" points="192.529,125.336 162.083,145.971 163.721,187.874 192.529,166.596 "/>
- </g>
- </g>
- </svg>
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim08.svg Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,158 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
- <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
- <!ENTITY ns_svg "http://www.w3.org/2000/svg">
- <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
-]>
-<svg xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
- width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
- <metadata>
- <x:xmpmeta x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
- <rdf:RDF xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
- <rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-04T09:26:27Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType="Resource">
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
-AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
-DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
-Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
-AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
-AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
-UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
-1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
-qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
-obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
-0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
-+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-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
-ftD2YjP1YTwnuPL58x9ru9J2yY7ZBY7xzY9ov5ZXt1qDz6x/o9ojbQqwLyU91qFX365i9m+z2Q/3
-3pA6dT+xz9X25CMaxeqXf0D0qzs7WytktrWJYYIxRI0FAM7HFijjiIxFAPLZMkpy4pGyVbLGDsVd
-irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
-rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir
-sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs
-VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV
-dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd
-irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
-rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir
-sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs
-VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV
-dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd
-irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
-rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir
-sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs
-VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV
-dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd
-irsVdirsVf/Z
- </xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
- <rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
- </rdf:RDF>
- </x:xmpmeta>
-<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
-<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-
- <rdf:Description rdf:about=''
- xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:xap='http://ns.adobe.com/xap/1.0/'
- xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-20T12:03:05Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType='Resource'>
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
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
ftD2YjP1YTwnuPL58x9ru9J2yY7ZBY7xzY9ov5ZXt1qDz6x/o9ojbQqwLyU91qFX365i9m+z2Q/3
3pA6dT+xz9X25CMaxeqXf0D0qzs7WytktrWJYYIxRI0FAM7HFijjiIxFAPLZMkpy4pGyVbLGDsVd
irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir
sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs
VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV
dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd
irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir
sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs
VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV
dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd
irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir
sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs
VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV
dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd
irsVdirsVf/Z</xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:dc='http://purl.org/dc/elements/1.1/'>
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
-
-</rdf:RDF>
-</x:xmpmeta>
- <?xpacket end='w'?>
- </metadata>
- <g id="_x30_1">
- <rect fill="none" width="352" height="352"/>
- </g>
- <g id="_x30_8">
- <g>
- <polygon fill="#FFCC00" points="172.506,118.298 139.926,136.144 177.086,153.667 207.514,133.032 "/>
- <polygon fill="#FF9900" points="139.926,136.144 143.85,177.421 178.725,195.591 177.086,153.667 "/>
-
- <linearGradient id="XMLID_134_" gradientUnits="userSpaceOnUse" x1="21.3501" y1="421.7617" x2="56.2246" y2="421.7617" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_134_)" points="143.85,177.421 178.725,195.591 177.086,153.667 "/>
- <polygon fill="#F27C0E" points="207.514,133.032 177.086,153.667 178.725,195.591 207.514,174.307 "/>
- </g>
- </g>
- </svg>
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim09.svg Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,167 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
- <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
- <!ENTITY ns_svg "http://www.w3.org/2000/svg">
- <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
-]>
-<svg xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
- width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
- <metadata>
- <x:xmpmeta x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
- <rdf:RDF xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
- <rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-04T09:26:45Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType="Resource">
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
-AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
-DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
-Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
-AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
-AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
-UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
-1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
-qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
-obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
-0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
-+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FVOa4iiHxHfso64s4wMuSHTUULUdeI
-7Eb4thwHoi0kRxVGDD2xaSCObeKHYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FWmdVXkxoB3OKQLQU+oE/DFsP5j/DFyIYe9BkkmpNSepOLfTWKW1dkNVJB8Ri
-ggFFxagw2kHIfzDri0SwDojIpo5V5RmoBofni0SiRzX4sXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FUs1tmVIWU0oSPvphDmaQAkhAR3SnZ9j49sXJlj7lcEEVG4w
-NbsVaZgoqTQDviqCnvC1Vj2X+bucNMgFe01yy0+xKyEvMXJES9eg6noM0fantBptJsTxZP5o5/Hu
-+/yY/k55ZbbDvTCx8w6Zd0USelIf91yfD9x6HIaD2k0mp2EuCXdLb7eR+dtObQ5IdLHkmWb5xHYq
-7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYql+uLW0U+Dj9RwhytIfV8E
-jwuxXJI6H4T9GBBiCri8UISw3HYY00yhSAu74dZGp4IM1vaHa+n0gvJLf+aN5H4fr2bMeGUuSWT3
-0smyfAvt1+/PPO1PavUai44/3cPL6j8f1fa5+PTRjz3KGzlXJdiqOsdb1KyoIpSYx/up/iX7u30Z
-t9B27qtLtCVx/mncfs+FONm0mPJzG7IbHzfZy0W7QwP/ADj4k/qM7XQe2WDJtmBxy7+cf1j7fe6v
-N2ZMbxNp5DNFNEssTiSJxyR1NQQe4IzsITE4iUTYLrpRMTR2K/JMXYq7FXYq7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FUHq61sXP8AKVP40xDkaY+sMfyTs3Yqtf7BHjgIYy5MIi1edHK3
-A9ShoW/a2/XniGoxGUySTxder0h00SPTsmMF3BOP3bAn+U7H7swp4zHm408co81bINbsVUbq7t7W
-P1J3CL28SfADLMWKUzUQzhAyNBi+p69cXdY4qxQHsPtN8z/DNzp9HHHud5Oxw6YR3O5ezeUf+UY0
-v/mGj/4iM9U7N/xeH9UPD9of4xP+sU2zNcN2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2
-KuxV2KuxVD6ivKymH+TX7jXFtwH1hjeSds7FVr/ZOLGXJ59fJwvbhP5ZHH3Mc8d18OHUZI905fe9
-VgN44nyCgCQag0I6EZiNqOt9Vnjosn7xPf7X35TPDE+Tjz00Ty2XX/mKGCMCFC0zCoDCgHz8clg0
-JkbJ2asekJO/JjVzdT3Mpkmcu58eg9gO2beEBEUBQdhCAiKClkmb3ryj/wAoxpf/ADDR/wDERnpP
-Zv8Ai8P6ofPe0P8AGJ/1im2ZrhuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K
-tOqupVhVWFCD4YpBrdKrvRerWx/55t/A4bczHq+kkrkjkjYpIpVh2OFzYyBFhYehxRLkwPWk4arc
-jxav/BAH+OeT9uQ4dZkH9K/nu9LojeGPuQaI7sFUVJ7DNWIk7ByiQOaKFqIxV928Owy/wq5tPiXy
-SfVQfrCnsVp+Jy/By+LkY+SCy5sdir3ryj/yjGl/8w0f/ERnpPZv+Lw/qh897Q/xif8AWKbZmuG7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqpz28M68ZVDDt4j5HFlCZib
-CU3WiyrU255qduJ2IrhtzY6oEVJhPmPQbga5ItaRlI2eXtXjQgePTPOvaDSSlrJHoRH7q/Q9D2fq
-4jAO+yoC1ht04xj5sepzXDEICg3eIZGyg5++Y02+CQat/ep8jksHIuZj5IHLm1VtbW5up0t7aNpp
-5DRI0FSTk8eOU5CMRZLCeSMAZSNAPe/L1nPZaHYWlwAs8ECJIoINGC7ioz0nRYpY8MIy5iIfPdZk
-E8spR5ElMMynGdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVULu
-xtbuPhcRhx2PQj5EbjKNRpseYVMW2Y80oG4liur+T7lAZLFvXQf7qagcfI9G/DOW13s/OO+I8Q7u
-v7fsd1pu04nae33MPvIpInaOVCki7MjAgg+4OcnmhKJIkKLvcUgRY3DH9W/vE+RwYOrnY+SI8u+V
-9U1659O0TjCh/fXL1EafT3PsM2ui7PyamVRG3U9A4+s12PTxuXPoOr2Dy35U0vQbfjbL6lywpNdO
-Bzb2H8q+wzudD2dj00ajvLqerxmt7QyaiXq2j0Cc5nuC7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FUHqWj6dqUfC7hDkCiyDZ1+TDf6OmYer0GHUCskb8+
-o+LkYNVkxG4H9TEJPyut5dTR5bovpyVJipSUkkUUsNqeJH3Zz+H2XjDKSZXj+33ft+x3X8vy8OhH
-1/YzWzs7WytktrWJYYIxRI0FAM6jFijjiIxFAOgyZJTlxSNkq2WMHYq7FXYq7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/2Q==
- </xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
- <rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
- </rdf:RDF>
- </x:xmpmeta>
-<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
-<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-
- <rdf:Description rdf:about=''
- xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:xap='http://ns.adobe.com/xap/1.0/'
- xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-20T12:02:59Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType='Resource'>
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
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</xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:dc='http://purl.org/dc/elements/1.1/'>
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
-
-</rdf:RDF>
-</x:xmpmeta>
- <?xpacket end='w'?>
- </metadata>
- <g id="_x30_1">
- <rect fill="none" width="352" height="352"/>
- </g>
- <g id="_x30_9">
- <g opacity="0.2">
- <polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
- <polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
- <polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
- </g>
- <g>
- <polygon fill="#FFCC00" points="186.506,127.103 153.92,144.948 191.086,162.472 221.537,141.836 "/>
- <polygon fill="#FF9900" points="153.92,144.948 157.844,186.202 192.725,204.372 191.086,162.472 "/>
-
- <linearGradient id="XMLID_132_" gradientUnits="userSpaceOnUse" x1="35.3438" y1="412.9688" x2="70.2246" y2="412.9688" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_132_)" points="157.844,186.202 192.725,204.372 191.086,162.472 "/>
- <polygon fill="#F27C0E" points="221.537,141.836 191.086,162.472 192.725,204.372 221.537,183.086 "/>
- </g>
- </g>
- </svg>
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim10.svg Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,173 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
- <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
- <!ENTITY ns_svg "http://www.w3.org/2000/svg">
- <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
-]>
-<svg xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
- width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
- <metadata>
- <x:xmpmeta x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
- <rdf:RDF xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
- <rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-04T09:27:02Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType="Resource">
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
-AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
-DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
-Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
-AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
-AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
-UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
-1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
-qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
-obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
-0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
-+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-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
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/9k=
- </xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
- <rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
- </rdf:RDF>
- </x:xmpmeta>
-<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
-<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-
- <rdf:Description rdf:about=''
- xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:xap='http://ns.adobe.com/xap/1.0/'
- xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-20T12:02:54Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType='Resource'>
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
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
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/9k=</xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:dc='http://purl.org/dc/elements/1.1/'>
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
-
-</rdf:RDF>
-</x:xmpmeta>
- <?xpacket end='w'?>
- </metadata>
- <g id="_x30_1">
- <rect fill="none" width="352" height="352"/>
- </g>
- <g id="_x31_0">
- <g>
- <polygon fill="#FFCC00" points="202.904,113.501 170.324,131.347 207.484,148.864 237.936,128.235 "/>
- <polygon fill="#FF9900" points="170.324,131.347 174.248,172.605 209.123,190.777 207.484,148.864 "/>
-
- <linearGradient id="XMLID_130_" gradientUnits="userSpaceOnUse" x1="51.748" y1="426.5703" x2="86.623" y2="426.5703" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_130_)" points="174.248,172.605 209.123,190.777 207.484,148.864 "/>
- <polygon fill="#F27C0E" points="237.936,128.235 207.484,148.864 209.123,190.777 237.936,169.488 "/>
- </g>
- <g opacity="0.5">
- <polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
- <polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
- <polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
- </g>
- </g>
- </svg>
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim11.svg Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,181 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
- <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
- <!ENTITY ns_svg "http://www.w3.org/2000/svg">
- <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
-]>
-<svg xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
- width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
- <metadata>
- <x:xmpmeta x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
- <rdf:RDF xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
- <rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-04T09:27:16Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType="Resource">
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
-AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
-DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
-Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
-AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
-AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
-UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
-1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
-qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
-obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
-0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
-+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-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
- </xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
- <rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
- </rdf:RDF>
- </x:xmpmeta>
-<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
-<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-
- <rdf:Description rdf:about=''
- xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:xap='http://ns.adobe.com/xap/1.0/'
- xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-20T12:02:49Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType='Resource'>
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
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</xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:dc='http://purl.org/dc/elements/1.1/'>
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
-
-</rdf:RDF>
-</x:xmpmeta>
- <?xpacket end='w'?>
- </metadata>
- <g id="_x30_1">
- <rect fill="none" width="352" height="352"/>
- </g>
- <g id="_x31_1">
- <g>
- <polygon fill="#FFCC00" points="217.904,101.501 185.324,119.347 222.484,136.864 252.936,116.235 "/>
- <polygon fill="#FF9900" points="185.324,119.347 189.248,160.605 224.123,178.777 222.484,136.864 "/>
-
- <linearGradient id="XMLID_128_" gradientUnits="userSpaceOnUse" x1="66.748" y1="438.5703" x2="101.623" y2="438.5703" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_128_)" points="189.248,160.605 224.123,178.777 222.484,136.864 "/>
- <polygon fill="#F27C0E" points="252.936,116.235 222.484,136.864 224.123,178.777 252.936,157.488 "/>
- </g>
- <g opacity="0.65">
- <polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
- <polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
- <polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
- </g>
- <g opacity="0.2">
- <polygon fill="#BFE230" points="153.919,143.233 183.227,122.111 220.314,139.299 191.896,163.205 "/>
- <polygon fill="#84C322" points="153.919,143.233 155.552,187.436 191.572,207.083 191.896,163.205 "/>
- <polygon fill="#5DAA3B" points="191.896,163.205 191.572,207.083 219.734,181.211 220.314,139.299 "/>
- </g>
- </g>
- </svg>
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim12.svg Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,187 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
- <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
- <!ENTITY ns_svg "http://www.w3.org/2000/svg">
- <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
-]>
-<svg xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
- width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
- <metadata>
- <x:xmpmeta x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
- <rdf:RDF xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
- <rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-04T09:27:28Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType="Resource">
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
-AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
-DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
-Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
-AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
-AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
-UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
-1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
-qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
-obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
-0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
-+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-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
-7FXYq7FXYq7FXYq7FXYq7FX/2Q==
- </xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
- <rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
- </rdf:RDF>
- </x:xmpmeta>
-<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
-<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-
- <rdf:Description rdf:about=''
- xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:xap='http://ns.adobe.com/xap/1.0/'
- xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-20T12:02:42Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType='Resource'>
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
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
7FXYq7FXYq7FXYq7FXYq7FX/2Q==</xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:dc='http://purl.org/dc/elements/1.1/'>
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
-
-</rdf:RDF>
-</x:xmpmeta>
- <?xpacket end='w'?>
- </metadata>
- <g id="_x30_1">
- <rect fill="none" width="352" height="352"/>
- </g>
- <g id="_x31_2">
- <g>
- <polygon fill="#FFCC00" points="217.904,101.501 185.324,119.347 222.484,136.864 252.936,116.235 "/>
- <polygon fill="#FF9900" points="185.324,119.347 189.248,160.605 224.123,178.777 222.484,136.864 "/>
-
- <linearGradient id="XMLID_126_" gradientUnits="userSpaceOnUse" x1="66.748" y1="438.5703" x2="101.623" y2="438.5703" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_126_)" points="189.248,160.605 224.123,178.777 222.484,136.864 "/>
- <polygon fill="#F27C0E" points="252.936,116.235 222.484,136.864 224.123,178.777 252.936,157.488 "/>
- </g>
- <g>
- <polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
- <polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
- <polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
- </g>
- <g opacity="0.4">
- <polygon fill="#BFE230" points="153.919,143.233 183.227,122.111 220.314,139.299 191.896,163.205 "/>
- <polygon fill="#84C322" points="153.919,143.233 155.552,187.436 191.572,207.083 191.896,163.205 "/>
- <polygon fill="#5DAA3B" points="191.896,163.205 191.572,207.083 219.734,181.211 220.314,139.299 "/>
- </g>
- </g>
- </svg>
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim13.svg Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,205 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
- <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
- <!ENTITY ns_svg "http://www.w3.org/2000/svg">
- <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
-]>
-<svg xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
- width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
- <metadata>
- <x:xmpmeta x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
- <rdf:RDF xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
- <rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-04T09:27:40Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType="Resource">
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
-AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
-DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
-Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
-AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
-AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
-UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
-1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
-qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
-obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
-0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
-+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-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
-TC/tpfgFrOyxzR8/h+2aI6rWpOx9jlgyd73uk9ssWXGYagcE65jeJr7R9qcaF5Uj0CIW0xWa/hHo
-zTL9mqfCQlf2ajON1P8AeS/rH73zbX6s5skiNo8R+9NsocF2KoS96p9OZun+n4teRDZe1o/R9FvN
-VuvRtxRRvLKfsoPf38BluLEZmgzhjMjs9ZzduzdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir
-sVdirsVdirsVdirsVdirsVdiqVap5b0+/wCUgHo3B39VB1P+UvfMLUaCGTflLva5YwWI6noOoaeS
-0ic4e0ybr9Ph9OaLUaPJi5jbvaJQIS7MVghL3qn05m6f6fi15EXoPl+71e44p8FuhHrTnoPYeLZm
-4cJmfJceMyL0vT9OtNPtVtrVOEa9T3Y92Y9zm3hARFB2EYiIoInJsnYq7FXYq7FXYq7FXYq7FXYq
-7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXEAggioOxBxVItU8p2VzWS1pbTHegHwE/L
-t9Ga3UdmwnvH0n7GqWIHkx+DyZqFxfiK6Ho20e8kqkHkD0Ce5/DMfTaGYNS2aPAJO/JnFpaW9pbp
-b26COKMUVR/n1zcRiIig5cYgCgq5JLsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs
-VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV
-dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd
-irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
-rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir
-sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs
-VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV
-dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd
-irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
-rsVdirsVdirsVdirsVdirsVdirsVdirTMqirGgHfBKQAspAtRN0K7CozEOr32GzYMapHMklQp3HU
-ZkY8onyYSiQvyxi7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
-FXYq7FXYqp3IrA49v45XmFxLPGfUlrl0XrTNfwuVsVfTK8pD8t8y9P1as/RH5kuO7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FVGW0ik8R40yqWGJL
-ZHIQqoiooVRRR0GWAUwJtvCh2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K
-uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku
-xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux
-V2KuxV2KuxV//9k=
- </xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
- <rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
- </rdf:RDF>
- </x:xmpmeta>
-<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
-<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-
- <rdf:Description rdf:about=''
- xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:xap='http://ns.adobe.com/xap/1.0/'
- xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-20T12:02:33Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType='Resource'>
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
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
TC/tpfgFrOyxzR8/h+2aI6rWpOx9jlgyd73uk9ssWXGYagcE65jeJr7R9qcaF5Uj0CIW0xWa/hHo
zTL9mqfCQlf2ajON1P8AeS/rH73zbX6s5skiNo8R+9NsocF2KoS96p9OZun+n4teRDZe1o/R9FvN
VuvRtxRRvLKfsoPf38BluLEZmgzhjMjs9ZzduzdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir
sVdirsVdirsVdirsVdirsVdiqVap5b0+/wCUgHo3B39VB1P+UvfMLUaCGTflLva5YwWI6noOoaeS
0ic4e0ybr9Ph9OaLUaPJi5jbvaJQIS7MVghL3qn05m6f6fi15EXoPl+71e44p8FuhHrTnoPYeLZm
4cJmfJceMyL0vT9OtNPtVtrVOEa9T3Y92Y9zm3hARFB2EYiIoInJsnYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXEAggioOxBxVItU8p2VzWS1pbTHegHwE/L
t9Ga3UdmwnvH0n7GqWIHkx+DyZqFxfiK6Ho20e8kqkHkD0Ce5/DMfTaGYNS2aPAJO/JnFpaW9pbp
b26COKMUVR/n1zcRiIig5cYgCgq5JLsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs
VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV
dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd
irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir
sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs
VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV
dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd
irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
rsVdirsVdirsVdirsVdirsVdirsVdirTMqirGgHfBKQAspAtRN0K7CozEOr32GzYMapHMklQp3HU
ZkY8onyYSiQvyxi7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FXYqp3IrA49v45XmFxLPGfUlrl0XrTNfwuVsVfTK8pD8t8y9P1as/RH5kuO7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FVGW0ik8R40yqWGJL
ZHIQqoiooVRRR0GWAUwJtvCh2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K
uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku
xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux
V2KuxV2KuxV//9k=</xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:dc='http://purl.org/dc/elements/1.1/'>
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
-
-</rdf:RDF>
-</x:xmpmeta>
- <?xpacket end='w'?>
- </metadata>
- <g id="_x30_1">
- <rect fill="none" width="352" height="352"/>
- </g>
- <g id="_x31_3">
- <g opacity="0.2">
- <polygon fill="#FFCC00" points="83.551,301.553 74.234,306.654 84.862,311.665 93.57,305.768 "/>
- <polygon fill="#FF9900" points="74.234,306.654 75.357,318.456 85.331,323.65 84.862,311.665 "/>
-
- <linearGradient id="XMLID_123_" gradientUnits="userSpaceOnUse" x1="-47.1431" y1="278.7324" x2="-37.1689" y2="278.7324" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_123_)" points="75.357,318.456 85.331,323.65 84.862,311.665 "/>
- <polygon fill="#F27C0E" points="93.57,305.768 84.862,311.665 85.331,323.65 93.57,317.564 "/>
- </g>
- <g>
- <polygon fill="#FFCC00" points="199.904,92.501 167.324,110.347 204.484,127.864 234.936,107.235 "/>
- <polygon fill="#FF9900" points="167.324,110.347 171.248,151.605 206.123,169.778 204.484,127.864 "/>
-
- <linearGradient id="XMLID_124_" gradientUnits="userSpaceOnUse" x1="48.748" y1="447.5703" x2="83.623" y2="447.5703" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_124_)" points="171.248,151.605 206.123,169.778 204.484,127.864 "/>
- <polygon fill="#F27C0E" points="234.936,107.235 204.484,127.864 206.123,169.778 234.936,148.488 "/>
- </g>
- <g>
- <polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
- <polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
- <polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
- </g>
- <g opacity="0.65">
- <polygon fill="#BFE230" points="153.919,143.233 183.227,122.111 220.314,139.299 191.896,163.205 "/>
- <polygon fill="#84C322" points="153.919,143.233 155.552,187.436 191.572,207.083 191.896,163.205 "/>
- <polygon fill="#5DAA3B" points="191.896,163.205 191.572,207.083 219.734,181.211 220.314,139.299 "/>
- </g>
- </g>
- </svg>
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim14.svg Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,211 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
- <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
- <!ENTITY ns_svg "http://www.w3.org/2000/svg">
- <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
-]>
-<svg xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
- width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
- <metadata>
- <x:xmpmeta x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
- <rdf:RDF xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
- <rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-04T09:27:56Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType="Resource">
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
-AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
-DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
-Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
-AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
-AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
-UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
-1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
-qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
-obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
-0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
-+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-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
-e+U6vIJ5pyHWRP2t5jOO7FUu1X7UfyP8M2mi+g+9oy80BmW0px5Z8r6l5hvxa2a8UXee4avCNfE+
-JPYd8v0+nlllQbcWEzNB9EKqr0FK51EYCPJ3xLeSQ7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-7FXYq7FXYq7FXYq7FXYq7FXYqx7X/JGj6tylC/Vbxqn14gPiJ7uvRv1++arW9kYs+/0z7x+lqnhE
-ve8513yjrOjsWmi9W27XMXxJ/su6/TnKazszLg3IuPePxs4c8Rikua9rS7VftR/I/wAM2mi+g+9o
-y80x8o+TtQ8x3nCL91ZREfWbojZR/Kv8zHw+/NrptLLKduXenDgOQ+T3PRtF0/RrCOxsI/ThTck7
-szHqznuTnR4sUcceGLuMeMQFBHZYzdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
-rsVdirsVdirsVdirsVcyhgVYAqRQg7gg4kWrEte/LvS77lNYUsrk78VH7pj7qPs/7H7s0es7Dx5N
-4eiX2fs+DRPADy2Yfa/lhrN7rC29+Pq1jBvNcKQ3MHosXuadxt38Mw9D2VkiTGewvn+pxPyspS35
-PVdO06y06zis7KIQ28IoiL+s+JPc50sICAocnYRiIigiMmydirsVdirsVdirsVdirsVdirsVdirs
-VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV
-dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd
-irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
-rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir
-sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs
-VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV
-dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd
-irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
-rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVWySJGhdzxUdSchOYiLPJMYkmggn1
-QB/gSqdydic1U+1hxbD0uQNPtuUTb3kM5KofjWhZT1Fc2Gn1McosNU8ZjzVsyGt2KuxV2KuxV2Ku
-xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVDamhexlUCpoCB8iDmNq
-43iLdpzUwxyVpooj8VD4eGaAYxe7tBRKP8shi9wxrQhd/ffNtoBzcXXcgnubJ17sVdirsVdirsVd
-irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVQV1pFrcEE1TerBehz
-EyaOEjfJyIamUUVFDFDGI4lCIvQDMmMREUGmUiTZX5Ji7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq//9k=
- </xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
- <rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
- </rdf:RDF>
- </x:xmpmeta>
-<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
-<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-
- <rdf:Description rdf:about=''
- xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:xap='http://ns.adobe.com/xap/1.0/'
- xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-20T12:02:24Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType='Resource'>
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
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
e+U6vIJ5pyHWRP2t5jOO7FUu1X7UfyP8M2mi+g+9oy80BmW0px5Z8r6l5hvxa2a8UXee4avCNfE+
JPYd8v0+nlllQbcWEzNB9EKqr0FK51EYCPJ3xLeSQ7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYqx7X/JGj6tylC/Vbxqn14gPiJ7uvRv1++arW9kYs+/0z7x+lqnhE
ve8513yjrOjsWmi9W27XMXxJ/su6/TnKazszLg3IuPePxs4c8Rikua9rS7VftR/I/wAM2mi+g+9o
y80x8o+TtQ8x3nCL91ZREfWbojZR/Kv8zHw+/NrptLLKduXenDgOQ+T3PRtF0/RrCOxsI/ThTck7
szHqznuTnR4sUcceGLuMeMQFBHZYzdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
rsVdirsVdirsVdirsVcyhgVYAqRQg7gg4kWrEte/LvS77lNYUsrk78VH7pj7qPs/7H7s0es7Dx5N
4eiX2fs+DRPADy2Yfa/lhrN7rC29+Pq1jBvNcKQ3MHosXuadxt38Mw9D2VkiTGewvn+pxPyspS35
PVdO06y06zis7KIQ28IoiL+s+JPc50sICAocnYRiIigiMmydirsVdirsVdirsVdirsVdirsVdirs
VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV
dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd
irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir
sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs
VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV
dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd
irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVWySJGhdzxUdSchOYiLPJMYkmggn1
QB/gSqdydic1U+1hxbD0uQNPtuUTb3kM5KofjWhZT1Fc2Gn1McosNU8ZjzVsyGt2KuxV2KuxV2Ku
xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVDamhexlUCpoCB8iDmNq
43iLdpzUwxyVpooj8VD4eGaAYxe7tBRKP8shi9wxrQhd/ffNtoBzcXXcgnubJ17sVdirsVdirsVd
irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVQV1pFrcEE1TerBehz
EyaOEjfJyIamUUVFDFDGI4lCIvQDMmMREUGmUiTZX5Ji7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq//9k=</xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:dc='http://purl.org/dc/elements/1.1/'>
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
-
-</rdf:RDF>
-</x:xmpmeta>
- <?xpacket end='w'?>
- </metadata>
- <g id="_x30_1">
- <rect fill="none" width="352" height="352"/>
- </g>
- <g id="_x31_4">
- <g opacity="0.4">
- <polygon fill="#FFCC00" points="83.551,301.553 74.234,306.654 84.862,311.665 93.57,305.768 "/>
- <polygon fill="#FF9900" points="74.234,306.654 75.357,318.456 85.331,323.65 84.862,311.665 "/>
-
- <linearGradient id="XMLID_119_" gradientUnits="userSpaceOnUse" x1="-47.1431" y1="278.7324" x2="-37.1689" y2="278.7324" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_119_)" points="75.357,318.456 85.331,323.65 84.862,311.665 "/>
- <polygon fill="#F27C0E" points="93.57,305.768 84.862,311.665 85.331,323.65 93.57,317.564 "/>
- </g>
- <g>
- <polygon fill="#FFCC00" points="181.004,83.198 148.42,101.043 185.584,118.561 216.035,97.932 "/>
- <polygon fill="#FF9900" points="148.42,101.043 152.344,142.302 187.223,160.488 185.584,118.561 "/>
-
- <linearGradient id="XMLID_120_" gradientUnits="userSpaceOnUse" x1="29.8438" y1="456.8662" x2="64.7227" y2="456.8662" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_120_)" points="152.344,142.302 187.223,160.488 185.584,118.561 "/>
- <polygon fill="#F27C0E" points="216.035,97.932 185.584,118.561 187.223,160.488 216.035,139.185 "/>
- </g>
- <g>
- <polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
- <polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
- <polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
- </g>
- <g opacity="0.2">
- <polygon fill="#F5F661" points="250.023,114.932 212.693,99.54 185.518,119.518 222.518,136.871 "/>
- <polygon fill="#FFF500" points="185.518,119.518 185.846,160.119 222.193,178.786 222.518,136.871 "/>
- <polygon fill="#FFCC00" points="222.518,136.871 222.193,178.786 248.391,154.223 250.023,114.932 "/>
- </g>
- <g>
- <polygon fill="#BFE230" points="153.919,143.233 183.227,122.111 220.314,139.299 191.896,163.205 "/>
- <polygon fill="#84C322" points="153.919,143.233 155.552,187.436 191.572,207.083 191.896,163.205 "/>
- <polygon fill="#5DAA3B" points="191.896,163.205 191.572,207.083 219.734,181.211 220.314,139.299 "/>
- </g>
- </g>
- </svg>
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim15.svg Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,234 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
- <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
- <!ENTITY ns_svg "http://www.w3.org/2000/svg">
- <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
-]>
-<svg xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
- width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
- <metadata>
- <x:xmpmeta x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
- <rdf:RDF xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
- <rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-04T09:28:12Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType="Resource">
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
-AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
-DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
-Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
-AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
-AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
-UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
-1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
-qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
-obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
-0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
-+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-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
-V2KuxV2KuxV2KuxV2KuxV//Z
- </xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
- <rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
- </rdf:RDF>
- </x:xmpmeta>
-<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
-<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-
- <rdf:Description rdf:about=''
- xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:xap='http://ns.adobe.com/xap/1.0/'
- xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-20T12:02:17Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType='Resource'>
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
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
sVdirsVdirsVdirsVdir/9k=</xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:dc='http://purl.org/dc/elements/1.1/'>
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
-
-</rdf:RDF>
-</x:xmpmeta>
- <?xpacket end='w'?>
- </metadata>
- <g id="_x30_1">
- <rect fill="none" width="352" height="352"/>
- </g>
- <g id="_x31_5">
- <path opacity="0.2" enable-background="new " d="M82.136,289.623c-2.612,0-5.184-0.329-7.715-0.984v-4.279
- c2.772,0.754,5.231,1.131,7.378,1.131c2.035,0,3.625-0.457,4.771-1.37s1.718-2.211,1.718-3.894c0-1.586-0.473-2.832-1.418-3.738
- c-0.945-0.904-2.7-2.086-5.263-3.545c-2.804-1.569-4.695-3.151-5.672-4.746c-0.978-1.594-1.466-3.408-1.466-5.442
- c0-3.237,1.085-5.668,3.257-7.295c2.171-1.626,5.003-2.438,8.496-2.438c2.532,0,4.863,0.24,6.994,0.722v4.183
- c-2.259-0.514-4.358-0.771-6.297-0.771c-1.762,0-3.172,0.418-4.229,1.25c-1.058,0.834-1.586,1.988-1.586,3.462
- c0,1.426,0.46,2.567,1.382,3.425c0.922,0.857,2.496,1.902,4.723,3.137c3.076,1.715,5.135,3.373,6.177,4.975
- c1.041,1.603,1.562,3.404,1.562,5.408c0,3.604-1.069,6.309-3.208,8.11C89.601,288.723,86.398,289.623,82.136,289.623z"/>
- <path opacity="0.2" fill="#808080" enable-background="new " d="M112.728,302.891h4.747c1.875,0,3.24,0.438,4.098,1.316
- c0.857,0.876,1.286,2.284,1.286,4.223c0,1.899-0.515,3.357-1.544,4.375c-1.029,1.018-2.497,1.525-4.404,1.525h-1.598v6.479
- h-2.584L112.728,302.891L112.728,302.891z M115.312,304.607v7.979h1.454c1.169,0,2.031-0.312,2.583-0.931
- c0.553-0.622,0.829-1.674,0.829-3.155s-0.254-2.501-0.763-3.06c-0.509-0.555-1.304-0.834-2.385-0.834H115.312L115.312,304.607z"
- />
- <g opacity="0.65">
- <polygon fill="#FFCC00" points="83.551,301.553 74.234,306.654 84.862,311.665 93.57,305.768 "/>
- <polygon fill="#FF9900" points="74.234,306.654 75.357,318.456 85.331,323.65 84.862,311.665 "/>
-
- <linearGradient id="XMLID_115_" gradientUnits="userSpaceOnUse" x1="-47.1431" y1="278.7324" x2="-37.1689" y2="278.7324" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_115_)" points="75.357,318.456 85.331,323.65 84.862,311.665 "/>
- <polygon fill="#F27C0E" points="93.57,305.768 84.862,311.665 85.331,323.65 93.57,317.564 "/>
- </g>
- <g>
- <polygon fill="#FFCC00" points="176.004,61.198 143.42,79.043 180.584,96.561 211.035,75.932 "/>
- <polygon fill="#FF9900" points="143.42,79.043 147.344,120.302 182.223,138.488 180.584,96.561 "/>
-
- <linearGradient id="XMLID_116_" gradientUnits="userSpaceOnUse" x1="24.8438" y1="478.8662" x2="59.7227" y2="478.8662" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_116_)" points="147.344,120.302 182.223,138.488 180.584,96.561 "/>
- <polygon fill="#F27C0E" points="211.035,75.932 180.584,96.561 182.223,138.488 211.035,117.185 "/>
- </g>
- <g>
- <polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
- <polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
- <polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
- </g>
- <g opacity="0.4">
- <polygon fill="#F5F661" points="250.023,114.932 212.693,99.54 185.518,119.518 222.518,136.871 "/>
- <polygon fill="#FFF500" points="185.518,119.518 185.846,160.119 222.193,178.786 222.518,136.871 "/>
- <polygon fill="#FFCC00" points="222.518,136.871 222.193,178.786 248.391,154.223 250.023,114.932 "/>
- </g>
- <g>
- <polygon fill="#BFE230" points="153.919,143.233 183.227,122.111 220.314,139.299 191.896,163.205 "/>
- <polygon fill="#84C322" points="153.919,143.233 155.552,187.436 191.572,207.083 191.896,163.205 "/>
- <polygon fill="#5DAA3B" points="191.896,163.205 191.572,207.083 219.734,181.211 220.314,139.299 "/>
- </g>
- </g>
- </svg>
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim16.svg Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,259 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
- <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
- <!ENTITY ns_svg "http://www.w3.org/2000/svg">
- <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
-]>
-<svg xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
- width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
- <metadata>
- <x:xmpmeta x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
- <rdf:RDF xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
- <rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-04T09:28:25Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType="Resource">
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
-AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
-DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
-Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
-AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
-AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
-UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
-1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
-qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
-obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
-0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
-+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqhb7U7KxTlcSBSfsoN2PyGa7X9q6fSRvLKj3dT8PwG7Dp5
-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
-7FXYq7FXYq7FXYq7FXYq7FXYq7FX/9k=
- </xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
- <rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
- </rdf:RDF>
- </x:xmpmeta>
-<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
-<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-
- <rdf:Description rdf:about=''
- xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:xap='http://ns.adobe.com/xap/1.0/'
- xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-20T12:02:09Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType='Resource'>
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqhb7U7KxTlcSBSfsoN2PyGa7X9q6fSRvLKj3dT8PwG7Dp5
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
V2KuxV2KuxV2KuxV2KuxV2KuxV//2Q==</xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:dc='http://purl.org/dc/elements/1.1/'>
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
-
-</rdf:RDF>
-</x:xmpmeta>
- <?xpacket end='w'?>
- </metadata>
- <g id="_x30_1">
- <rect fill="none" width="352" height="352"/>
- </g>
- <g id="_x31_6">
- <path opacity="0.4" enable-background="new " d="M82.136,289.623c-2.612,0-5.184-0.329-7.715-0.984v-4.279
- c2.772,0.754,5.231,1.131,7.378,1.131c2.035,0,3.625-0.457,4.771-1.37s1.718-2.211,1.718-3.894c0-1.586-0.473-2.832-1.418-3.738
- c-0.945-0.904-2.7-2.086-5.263-3.545c-2.804-1.569-4.695-3.151-5.672-4.746c-0.978-1.594-1.466-3.408-1.466-5.442
- c0-3.237,1.085-5.668,3.257-7.295c2.171-1.626,5.003-2.438,8.496-2.438c2.532,0,4.863,0.24,6.994,0.722v4.183
- c-2.259-0.514-4.358-0.771-6.297-0.771c-1.762,0-3.172,0.418-4.229,1.25c-1.058,0.834-1.586,1.988-1.586,3.462
- c0,1.426,0.46,2.567,1.382,3.425c0.922,0.857,2.496,1.902,4.723,3.137c3.076,1.715,5.135,3.373,6.177,4.975
- c1.041,1.603,1.562,3.404,1.562,5.408c0,3.604-1.069,6.309-3.208,8.11C89.601,288.723,86.398,289.623,82.136,289.623z"/>
- <path opacity="0.2" enable-background="new " d="M119.364,288.396c-2.692,0.816-5.488,1.227-8.388,1.227
- c-4.198,0-7.346-1.21-9.445-3.629c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.03-7.742,3.088-10.395
- c2.059-2.65,4.931-3.979,8.616-3.979c3.396,0,5.98,1.127,7.75,3.377c1.77,2.252,2.656,6.414,2.656,12.486h-15.309
- c0,3.012,0.577,5.271,1.73,6.776s2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227L119.364,288.396L119.364,288.396z
- M105.184,273.04h8.892c0-3.302-0.353-5.576-1.057-6.826c-0.705-1.249-1.73-1.874-3.077-1.874c-1.506,0-2.651,0.674-3.437,2.02
- C105.719,267.705,105.28,269.932,105.184,273.04z"/>
- <path opacity="0.4" fill="#808080" enable-background="new " d="M112.728,302.891h4.747c1.875,0,3.24,0.438,4.098,1.316
- c0.857,0.876,1.286,2.284,1.286,4.223c0,1.899-0.515,3.357-1.544,4.375c-1.029,1.018-2.497,1.525-4.404,1.525h-1.598v6.479
- h-2.584L112.728,302.891L112.728,302.891z M115.312,304.607v7.979h1.454c1.169,0,2.031-0.312,2.583-0.931
- c0.553-0.622,0.829-1.674,0.829-3.155s-0.254-2.501-0.763-3.06c-0.509-0.555-1.304-0.834-2.385-0.834H115.312L115.312,304.607z"
- />
- <rect x="135.898" y="301.786" opacity="0.2" fill="#808080" enable-background="new " width="2.56" height="19.022"/>
- <g>
- <polygon fill="#FFCC00" points="83.551,301.553 74.234,306.654 84.862,311.665 93.57,305.768 "/>
- <polygon fill="#FF9900" points="74.234,306.654 75.357,318.456 85.331,323.65 84.862,311.665 "/>
-
- <linearGradient id="XMLID_111_" gradientUnits="userSpaceOnUse" x1="-47.1431" y1="278.7324" x2="-37.1689" y2="278.7324" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_111_)" points="75.357,318.456 85.331,323.65 84.862,311.665 "/>
- <polygon fill="#F27C0E" points="93.57,305.768 84.862,311.665 85.331,323.65 93.57,317.564 "/>
- </g>
- <g opacity="0.2">
- <polygon fill="#ABDD99" points="176.811,84.505 148.321,102.182 181.396,117.244 208.896,97.272 "/>
- <polygon fill="#46AB48" points="148.321,102.182 150.291,142.135 181.721,157.521 181.396,117.244 "/>
- <polygon fill="#16923B" points="208.896,97.272 181.396,117.244 181.721,157.521 208.245,134.602 "/>
- </g>
- <g>
- <polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
- <polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
- <polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
- </g>
- <g opacity="0.65">
- <polygon fill="#F5F661" points="250.023,114.932 212.693,99.54 185.518,119.518 222.518,136.871 "/>
- <polygon fill="#FFF500" points="185.518,119.518 185.846,160.119 222.193,178.786 222.518,136.871 "/>
- <polygon fill="#FFCC00" points="222.518,136.871 222.193,178.786 248.391,154.223 250.023,114.932 "/>
- </g>
- <g>
- <polygon fill="#BFE230" points="153.919,143.233 183.227,122.111 220.314,139.299 191.896,163.205 "/>
- <polygon fill="#84C322" points="153.919,143.233 155.552,187.436 191.572,207.083 191.896,163.205 "/>
- <polygon fill="#5DAA3B" points="191.896,163.205 191.572,207.083 219.734,181.211 220.314,139.299 "/>
- </g>
- <g>
- <polygon fill="#FFCC00" points="175.4,40.401 142.82,58.247 179.986,75.764 210.438,55.135 "/>
- <polygon fill="#FF9900" points="142.82,58.247 146.744,99.505 181.625,117.675 179.986,75.764 "/>
-
- <linearGradient id="XMLID_112_" gradientUnits="userSpaceOnUse" x1="24.2441" y1="499.6719" x2="59.125" y2="499.6719" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_112_)" points="146.744,99.505 181.625,117.675 179.986,75.764 "/>
- <polygon fill="#F27C0E" points="210.438,55.135 179.986,75.764 181.625,117.675 210.438,96.388 "/>
- </g>
- </g>
- </svg>
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim17.svg Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,275 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
- <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
- <!ENTITY ns_svg "http://www.w3.org/2000/svg">
- <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
-]>
-<svg xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
- width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
- <metadata>
- <x:xmpmeta x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
- <rdf:RDF xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
- <rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-04T09:28:37Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType="Resource">
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
-AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
-DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
-Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
-AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
-AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
-UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
-1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
-qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
-obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
-0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
-+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
-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
-rsVdirsVdirsVdirsVdirsVdirsVdirsVf/Z
- </xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
- <rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
- </rdf:RDF>
- </x:xmpmeta>
-<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
-<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-
- <rdf:Description rdf:about=''
- xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:xap='http://ns.adobe.com/xap/1.0/'
- xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-20T12:02:05Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType='Resource'>
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
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
fQfe0ZeaY+UfJ2oeY7zhF+6soiPrN0Rso/lX+Zj4ffm102lllO3LvThwHIfJ7no2i6fo1hHY2Efp
wpuSd2Zj1Zz3Jzo8WKOOPDF3GPGICgjssZuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux
V2KuxV2KuxV2KuxV2KuxV2KuZQwKsAVIoQdwQcSLViWvfl3pd9ymsKWVyd+Kj90x91H2f9j92aPW
dh48m8PRL7P2fBongB5bMPtfyw1m91hbe/H1axg3muFIbmD0WL3NO427+GYeh7KyRJjPYXz/AFOJ
+VlKW/J6rp2nWWnWcVnZRCG3hFERf1nxJ7nOlhAQFDk7CMREUERk2TsVdirsVdirsVdirsVdirsV
dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd
irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir
sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs
VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdiqQeffMM3l7yhqesQANcW0YEHLcCSV1iQkdwGcG
mKvFPy/8hXX5ji+1rzBrFw4hl9FQCHlLlQ5NXqqIARQBfupir13yD+Xdn5NN+tnezXUF76NI5wv7
sxc60K0Hxep4dsVTbWfNeh6Q4ivbik5FfRQF3oe5A6fTirejeatD1hzFZXHKZRyMLgo9PEA9foxV
HTX9rDcx28jUll+wKGhqadcVU01jT5LpbaOXnKxIHEEioFevTFUZirsVdirsVdirsVdirsVdirsV
dirsVdirsVdirsVdirsVdirsVdirsVdirsVdiqWeZtCttf0G+0e4YpFeRGPmBUq32kenfiwBxV85
+n+YX5V6w0gUpbTNxL0MlnchdxvtQ/cwxV7b5D/MvS/Nmk3FxHGbbULJOd5ZE8qChIZGoOSmnht+
tViflG/0ufzJcalr0yVKtIhmFVMrMANjX7K1pires3ulWvnO1vtFdPq4aKR/R2TkWpIoAHdevzxV
mvmskXsJGxEex/2RxVONP0axtkikEdZ1AJkJNakb7VpiqYYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqoX+oWOn2r3d/cR2trGVEk8zBI15sEXkzUAqzAYqknmLz
D5Hk0G7/AEtf2dxpkkbCWP1Y5OYp0RQSWav2ab1xV4v/AM4+addXPmTVJV5LaLp7wTuBUcppE4L8
/gY/RirKfJ8elWnmCay16GPiVaEeuBxSVWHXlsK0Irir0I6Z5HjkjX0bASyMqxL+75M5NFCjqTXF
UN5s/wB7If8AjH/xscVZNF/dp8h+rFV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV
2KuxV2KuxV2KuxV2KoDXtC03XtJuNJ1KMyWVzx9VFYoTwcOtGWh2ZQcVYKv5AeQRLzP1xlrX0jMO
Py2Tl+OKs40Hy7ougWAsNItUtLYHkVWpLNSnJ2NWY7dScVQ2teT9C1iX1ruAi4pQzxsUYgePY/SM
VQmn/l75csbqK6RJZJYXWSIySGgZSCpooXoR3xVOb7SbO9kWScMWUcRQ02rXFUYAAAB0GwxV2Kux
V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KqV1dW9rA09w4jiSnJz
7mg/HKdRqIYYGczUQzx45TlwxFlj8/nNBOBDb84B1ZjRj8utM4nP7bRGSseO8fmaJ93d+OTtIdlH
h3O6a6Xrun6k0kdu59aIBpYmG6hq0rTbemdR2X2vi1seKFgjmCPwC4Wo0k8VGXI9UwzaOKkVz5lu
I7q+hg09riPT+JuJFkVSFZeVQpG+wOKpvZXcV5aRXUNfTmUOtetD2OKqa3bnUntKDgsQkDd6lqYq
iiQBUmgHUnFVqSxv9h1anWhBxVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV
dirsVdiqT+b4Gn8uX0agsxRWAG5JV1bt8s1PbmPj0eQeX3EFz+zJ8OoifxyeU3suoWNk370qxoOP
XiD755lHSjiHEN3soiGSXJkn5QLIZ9UlYMVKxDma0LVY0r4523szHefdt+l03tERUB7/AND0rOte
XYgltqd1rfmC2spIoUmMKXEkgZmCtGw+ACgr164qyiws47KyhtIySkKBAT1NO5+eKoVP+O/L/wAw
6/8AE8VRtxII4XcryAH2fHFUNFy+ux8ggJQmieHviqNxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2
KuxV2KuxV2KuxV2KuxV2KuxVxAIodweoxVjuseRtF1NlZg8A5BpFiICsAakUNeP0ZpNT2Bp8sxIX
Hvrkf1fB2mm7Wy4hXP3p3Y2NnY2yWtnEsMEYokaig/tPuc2+LDHHERgKiHX5csskuKRslXyxrUor
S2hnmnjjCzXHEzOOrcRRa/KuKquKrBDEJjMFHqleJfvTrTFV5AIIIqD1BxVYkEKGqIFPiPfFV+Ku
xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux
V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV
2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kv/9k=</xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:dc='http://purl.org/dc/elements/1.1/'>
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
-
-</rdf:RDF>
-</x:xmpmeta>
- <?xpacket end='w'?>
- </metadata>
- <g id="_x30_1">
- <rect fill="none" width="352" height="352"/>
- </g>
- <g id="_x31_7">
- <path opacity="0.65" enable-background="new " d="M82.136,289.623c-2.612,0-5.184-0.329-7.715-0.984v-4.279
- c2.772,0.754,5.231,1.131,7.378,1.131c2.035,0,3.625-0.457,4.771-1.37s1.718-2.211,1.718-3.894c0-1.586-0.473-2.832-1.418-3.738
- c-0.945-0.904-2.7-2.086-5.263-3.545c-2.804-1.569-4.695-3.151-5.672-4.746c-0.978-1.594-1.466-3.408-1.466-5.442
- c0-3.237,1.085-5.668,3.257-7.295c2.171-1.626,5.003-2.438,8.496-2.438c2.532,0,4.863,0.24,6.994,0.722v4.183
- c-2.259-0.514-4.358-0.771-6.297-0.771c-1.762,0-3.172,0.418-4.229,1.25c-1.058,0.834-1.586,1.988-1.586,3.462
- c0,1.426,0.46,2.567,1.382,3.425c0.922,0.857,2.496,1.902,4.723,3.137c3.076,1.715,5.135,3.373,6.177,4.975
- c1.041,1.603,1.562,3.404,1.562,5.408c0,3.604-1.069,6.309-3.208,8.11C89.601,288.723,86.398,289.623,82.136,289.623z"/>
- <path opacity="0.4" enable-background="new " d="M119.364,288.396c-2.692,0.816-5.488,1.227-8.388,1.227
- c-4.198,0-7.346-1.21-9.445-3.629c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.03-7.742,3.088-10.395
- c2.059-2.65,4.931-3.979,8.616-3.979c3.396,0,5.98,1.127,7.75,3.377c1.77,2.252,2.656,6.414,2.656,12.486h-15.309
- c0,3.012,0.577,5.271,1.73,6.776s2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227L119.364,288.396L119.364,288.396z
- M105.184,273.04h8.892c0-3.302-0.353-5.576-1.057-6.826c-0.705-1.249-1.73-1.874-3.077-1.874c-1.506,0-2.651,0.674-3.437,2.02
- C105.719,267.705,105.28,269.932,105.184,273.04z"/>
- <path opacity="0.2" enable-background="new " d="M125.805,289.238v-28.096h3.797l1.273,4.662
- c0.785-1.634,1.867-2.863,3.245-3.689c1.378-0.824,3.052-1.236,5.023-1.236c0.513,0,0.889,0.016,1.129,0.049v5.383
- c-0.897-0.063-1.554-0.097-1.971-0.097c-2.163,0-3.701,0.478-4.614,1.431s-1.37,2.527-1.37,4.724v16.87H125.805L125.805,289.238z
- "/>
- <path opacity="0.65" fill="#808080" enable-background="new " d="M112.728,302.891h4.747c1.875,0,3.24,0.438,4.098,1.316
- c0.857,0.876,1.286,2.284,1.286,4.223c0,1.899-0.515,3.357-1.544,4.375c-1.029,1.018-2.497,1.525-4.404,1.525h-1.598v6.479
- h-2.584L112.728,302.891L112.728,302.891z M115.312,304.607v7.979h1.454c1.169,0,2.031-0.312,2.583-0.931
- c0.553-0.622,0.829-1.674,0.829-3.155s-0.254-2.501-0.763-3.06c-0.509-0.555-1.304-0.834-2.385-0.834H115.312L115.312,304.607z"
- />
- <rect x="135.898" y="301.786" opacity="0.4" fill="#808080" enable-background="new " width="2.56" height="19.022"/>
- <path opacity="0.2" fill="#808080" enable-background="new " d="M159.537,318.788c-0.865,1.476-2.211,2.212-4.038,2.212
- c-1.273,0-2.265-0.359-2.974-1.074c-0.709-0.72-1.063-1.722-1.063-3.012c0-1.33,0.365-2.322,1.094-2.975
- c0.729-0.653,1.602-1.063,2.62-1.226c1.017-0.166,2.255-0.247,3.713-0.247v-1.646c0-1.625-0.869-2.438-2.607-2.438
- c-1.001,0-2.223,0.214-3.665,0.638v-1.791c1.45-0.399,2.828-0.601,4.134-0.601c1.538,0,2.706,0.369,3.503,1.112
- c0.797,0.738,1.195,1.83,1.195,3.273v9.793h-1.394L159.537,318.788z M158.888,313.994h-1.43c-1.146,0-2.005,0.242-2.578,0.727
- c-0.573,0.485-0.859,1.209-0.859,2.17c0,0.785,0.174,1.371,0.523,1.762c0.348,0.387,0.871,0.582,1.568,0.582
- c0.881,0,1.564-0.28,2.049-0.842c0.485-0.562,0.727-1.322,0.727-2.283V313.994z"/>
- <g>
- <polygon fill="#FFCC00" points="83.551,301.553 74.234,306.654 84.862,311.665 93.57,305.768 "/>
- <polygon fill="#FF9900" points="74.234,306.654 75.357,318.456 85.331,323.65 84.862,311.665 "/>
-
- <linearGradient id="XMLID_107_" gradientUnits="userSpaceOnUse" x1="-47.1431" y1="278.7324" x2="-37.1689" y2="278.7324" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_107_)" points="75.357,318.456 85.331,323.65 84.862,311.665 "/>
- <polygon fill="#F27C0E" points="93.57,305.768 84.862,311.665 85.331,323.65 93.57,317.564 "/>
- </g>
- <g opacity="0.4">
- <polygon fill="#ABDD99" points="176.811,84.505 148.321,102.182 181.396,117.244 208.896,97.272 "/>
- <polygon fill="#46AB48" points="148.321,102.182 150.291,142.135 181.721,157.521 181.396,117.244 "/>
- <polygon fill="#16923B" points="208.896,97.272 181.396,117.244 181.721,157.521 208.245,134.602 "/>
- </g>
- <g>
- <polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
- <polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
- <polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
- </g>
- <g>
- <polygon fill="#F5F661" points="250.023,114.932 212.693,99.54 185.518,119.518 222.518,136.871 "/>
- <polygon fill="#FFF500" points="185.518,119.518 185.846,160.119 222.193,178.786 222.518,136.871 "/>
- <polygon fill="#FFCC00" points="222.518,136.871 222.193,178.786 248.391,154.223 250.023,114.932 "/>
- </g>
- <g>
- <polygon fill="#BFE230" points="153.919,143.233 183.227,122.111 220.314,139.299 191.896,163.205 "/>
- <polygon fill="#84C322" points="153.919,143.233 155.552,187.436 191.572,207.083 191.896,163.205 "/>
- <polygon fill="#5DAA3B" points="191.896,163.205 191.572,207.083 219.734,181.211 220.314,139.299 "/>
- </g>
- <g>
- <polygon fill="#FFCC00" points="195.4,51.401 162.82,69.247 199.986,86.764 230.438,66.135 "/>
- <polygon fill="#FF9900" points="162.82,69.247 166.744,110.505 201.625,128.675 199.986,86.764 "/>
-
- <linearGradient id="XMLID_108_" gradientUnits="userSpaceOnUse" x1="44.2441" y1="488.6719" x2="79.125" y2="488.6719" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_108_)" points="166.744,110.505 201.625,128.675 199.986,86.764 "/>
- <polygon fill="#F27C0E" points="230.438,66.135 199.986,86.764 201.625,128.675 230.438,107.388 "/>
- </g>
- </g>
- </svg>
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim18.svg Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,295 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
- <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
- <!ENTITY ns_svg "http://www.w3.org/2000/svg">
- <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
-]>
-<svg xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
- width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
- <metadata>
- <x:xmpmeta x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
- <rdf:RDF xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
- <rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-04T09:28:51Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType="Resource">
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
-AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
-DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
-Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
-AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
-AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
-UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
-1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
-qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
-obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
-0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
-+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXAg9DXADa27CrsVdirsVdirsVdirsVdirsVdirsVdir
-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
-xV2KuxV2KuxV2KuxV2KuxV2Kse1/yRo+rcpQv1W8ap9eID4ie7r0b9fvmq1vZGLPv9M+8fpap4RL
-3vOdd8o6zo7FpovVtu1zF8Sf7Luv05yms7My4NyLj3j8bOHPEYpLmva0u1X7UfyP8M2mi+g+9oy8
-0x8o+TtQ8x3nCL91ZREfWbojZR/Kv8zHw+/NrptLLKduXenDgOQ+T3PRtF0/RrCOxsI/ThTck7sz
-HqznuTnR4sUcceGLuMeMQFBHZYzdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs
-VdirsVdirsVdirsVcyhgVYAqRQg7gg4kWrEte/LvS77lNYUsrk78VH7pj7qPs/7H7s0es7Dx5N4e
-iX2fs+DRPADy2Yfa/lhrN7rC29+Pq1jBvNcKQ3MHosXuadxt38Mw9D2VkiTGewvn+pxPyspS35PV
-dO06y06zis7KIQ28IoiL+s+JPc50sICAocnYRiIigiMmydirsVdirsVdirsVdirsVdirsVdirsVd
-irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
-rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir
-sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs
-VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdiqkLu1M/1cSr63++6jl49MVVcVdirsVdir
-sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirD/AM3vOVz5M/LbXfMloqteWMCr
-a8hVRNPIkETMO4V5QxHfFXy3+Tv5Q3/52DVvNHnLzJeyLbXH1ZArCSdpSqyMay8ljjAYBVVflSmK
-vo78oPyW0z8sm1dNN1W61C11T6txhuglYTb+rUqU4g8/W3+EdO+Ksh80fmN5R8szC31W9C3bAMLW
-JWlkCnoWCii+3IiuKu8rfmL5S8zytBpV5zu0Xm1rKrRycR3AYUYf6pOKprea/pdnqNvp1xKUurqn
-orxJBqSo+LoNxiqEXzn5dk1AWEVz6055bxqzJ8Klj8VKHYdsVU7Y6JPq63EU0jTuxZYyCF5U8aYq
-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
-sVdirsVdirsVdirsVdirsVdirsVf/9k=
- </xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
- <rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
- </rdf:RDF>
- </x:xmpmeta>
-<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
-<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-
- <rdf:Description rdf:about=''
- xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:xap='http://ns.adobe.com/xap/1.0/'
- xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-20T12:01:59Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType='Resource'>
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXAg9DXADa27CrsVdirsVdirsVdirsVdirsVdirsVdir
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
XYq7FXYq7FXYq7FXYq7FXYq7FWPa/wCSNH1blKF+q3jVPrxAfET3dejfr981Wt7IxZ9/pn3j9LVP
CJe95zrvlHWdHYtNF6tt2uYviT/Zd1+nOU1nZmXBuRce8fjZw54jFJc17Wl2q/aj+R/hm00X0H3t
GXmmPlHydqHmO84RfurKIj6zdEbKP5V/mY+H35tdNpZZTty704cByHye56Noun6NYR2NhH6cKbkn
dmY9Wc9yc6PFijjjwxdxjxiAoI7LGbsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs
VdirsVdirsVdirsVdirmUMCrAFSKEHcEHEi1Ylr35d6XfcprCllcnfio/dMfdR9n/Y/dmj1nYePJ
vD0S+z9nwaJ4AeWzD7X8sNZvdYW3vx9WsYN5rhSG5g9Fi9zTuNu/hmHoeyskSYz2F8/1OJ+VlKW/
J6rp2nWWnWcVnZRCG3hFERf1nxJ7nOlhAQFDk7CMREUERk2TsVdirsVdirsVdirsVdirsVdirsVd
irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir
sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs
VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVUhd2pn+riVfW/33UcvHpiqrirsVdir
sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVYf8Am95yufJn5ba75ktFVryx
gVbXkKqJp5EgiZh3CvKGI74q+W/yd/KG/wDzsGreaPOXmS9kW2uPqyBWEk7SlVkY1l5LHGAwCqq/
KlMVfR35Qfktpn5ZNq6abqt1qFrqn1bjDdBKwm39WpUpxB5+tv8ACOnfFWQ+aPzG8o+WZhb6rehb
tgGFrErSyBT0LBRRfbkRXFXeVvzF8peZ5Wg0q853aLza1lVo5OI7gMKMP9UnFU1vNf0uz1G3064l
KXV1T0V4kg1JUfF0G4xVCL5z8uyagLCK59ac8t41Zk+FSx+KlDsO2KqdsdEn1dbiKaRp3YssZBC8
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
KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV//2Q==</xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:dc='http://purl.org/dc/elements/1.1/'>
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
-
-</rdf:RDF>
-</x:xmpmeta>
- <?xpacket end='w'?>
- </metadata>
- <g id="_x30_1">
- <rect fill="none" width="352" height="352"/>
- </g>
- <g id="_x31_8">
- <path d="M82.136,289.623c-2.612,0-5.184-0.329-7.715-0.984v-4.279c2.772,0.754,5.231,1.131,7.378,1.131
- c2.035,0,3.625-0.457,4.771-1.37s1.718-2.211,1.718-3.894c0-1.586-0.473-2.832-1.418-3.738c-0.945-0.904-2.7-2.086-5.263-3.545
- c-2.804-1.569-4.695-3.151-5.672-4.746c-0.978-1.594-1.466-3.408-1.466-5.442c0-3.237,1.085-5.668,3.257-7.295
- c2.171-1.626,5.003-2.438,8.496-2.438c2.532,0,4.863,0.24,6.994,0.722v4.183c-2.259-0.514-4.358-0.771-6.297-0.771
- c-1.762,0-3.172,0.418-4.229,1.25c-1.058,0.834-1.586,1.988-1.586,3.462c0,1.426,0.46,2.567,1.382,3.425
- c0.922,0.857,2.496,1.902,4.723,3.137c3.076,1.715,5.135,3.373,6.177,4.975c1.041,1.603,1.562,3.404,1.562,5.408
- c0,3.604-1.069,6.309-3.208,8.11C89.601,288.723,86.398,289.623,82.136,289.623z"/>
- <path opacity="0.65" enable-background="new " d="M119.364,288.396c-2.692,0.816-5.488,1.227-8.388,1.227
- c-4.198,0-7.346-1.21-9.445-3.629c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.03-7.742,3.088-10.395
- c2.059-2.65,4.931-3.979,8.616-3.979c3.396,0,5.98,1.127,7.75,3.377c1.77,2.252,2.656,6.414,2.656,12.486h-15.309
- c0,3.012,0.577,5.271,1.73,6.776s2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227L119.364,288.396L119.364,288.396z
- M105.184,273.04h8.892c0-3.302-0.353-5.576-1.057-6.826c-0.705-1.249-1.73-1.874-3.077-1.874c-1.506,0-2.651,0.674-3.437,2.02
- C105.719,267.705,105.28,269.932,105.184,273.04z"/>
- <path opacity="0.4" enable-background="new " d="M125.805,289.238v-28.096h3.797l1.273,4.662
- c0.785-1.634,1.867-2.863,3.245-3.689c1.378-0.824,3.052-1.236,5.023-1.236c0.513,0,0.889,0.016,1.129,0.049v5.383
- c-0.897-0.063-1.554-0.097-1.971-0.097c-2.163,0-3.701,0.478-4.614,1.431s-1.37,2.527-1.37,4.724v16.87H125.805L125.805,289.238z
- "/>
- <path opacity="0.2" enable-background="new " d="M145.104,289.238v-24.273h-3.101v-3.82h9.589v28.094H145.104L145.104,289.238
- z M148.348,257.635c-1.057,0-1.918-0.297-2.583-0.89s-0.997-1.378-0.997-2.354c0-0.978,0.332-1.764,0.997-2.355
- s1.526-0.889,2.583-0.889c1.025,0,1.883,0.305,2.572,0.912c0.689,0.608,1.033,1.387,1.033,2.332c0,0.992-0.336,1.781-1.009,2.366
- C150.271,257.342,149.405,257.635,148.348,257.635z"/>
- <path fill="#808080" d="M112.728,302.891h4.747c1.875,0,3.24,0.438,4.098,1.316c0.857,0.876,1.286,2.284,1.286,4.223
- c0,1.899-0.515,3.357-1.544,4.375c-1.029,1.018-2.497,1.525-4.404,1.525h-1.598v6.479h-2.584L112.728,302.891L112.728,302.891z
- M115.312,304.607v7.979h1.454c1.169,0,2.031-0.312,2.583-0.931c0.553-0.622,0.829-1.674,0.829-3.155s-0.254-2.501-0.763-3.06
- c-0.509-0.555-1.304-0.834-2.385-0.834H115.312L115.312,304.607z"/>
- <rect x="135.898" y="301.786" opacity="0.65" fill="#808080" enable-background="new " width="2.56" height="19.022"/>
- <path opacity="0.4" fill="#808080" enable-background="new " d="M159.537,318.788c-0.865,1.476-2.211,2.212-4.038,2.212
- c-1.273,0-2.265-0.359-2.974-1.074c-0.709-0.72-1.063-1.722-1.063-3.012c0-1.33,0.365-2.322,1.094-2.975
- c0.729-0.653,1.602-1.063,2.62-1.226c1.017-0.166,2.255-0.247,3.713-0.247v-1.646c0-1.625-0.869-2.438-2.607-2.438
- c-1.001,0-2.223,0.214-3.665,0.638v-1.791c1.45-0.399,2.828-0.601,4.134-0.601c1.538,0,2.706,0.369,3.503,1.112
- c0.797,0.738,1.195,1.83,1.195,3.273v9.793h-1.394L159.537,318.788z M158.888,313.994h-1.43c-1.146,0-2.005,0.242-2.578,0.727
- c-0.573,0.485-0.859,1.209-0.859,2.17c0,0.785,0.174,1.371,0.523,1.762c0.348,0.387,0.871,0.582,1.568,0.582
- c0.881,0,1.564-0.28,2.049-0.842c0.485-0.562,0.727-1.322,0.727-2.283V313.994z"/>
- <path opacity="0.2" fill="#808080" enable-background="new " d="M181.83,320.566c-1.074,0.289-2.083,0.434-3.028,0.434
- c-1.09,0-1.887-0.256-2.392-0.764c-0.505-0.51-0.757-1.319-0.757-2.434v-9.302h-1.838v-0.961l3.737-3.81h0.661v3.101h3.4v1.67
- h-3.4v8.882c0,0.76,0.124,1.262,0.372,1.508c0.248,0.244,0.625,0.365,1.13,0.365c0.521,0,1.227-0.115,2.115-0.349V320.566
- L181.83,320.566z"/>
- <g>
- <polygon fill="#FFCC00" points="83.551,301.553 74.234,306.654 84.862,311.665 93.57,305.768 "/>
- <polygon fill="#FF9900" points="74.234,306.654 75.357,318.456 85.331,323.65 84.862,311.665 "/>
-
- <linearGradient id="XMLID_103_" gradientUnits="userSpaceOnUse" x1="-47.1431" y1="278.7324" x2="-37.1689" y2="278.7324" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_103_)" points="75.357,318.456 85.331,323.65 84.862,311.665 "/>
- <polygon fill="#F27C0E" points="93.57,305.768 84.862,311.665 85.331,323.65 93.57,317.564 "/>
- </g>
- <g opacity="0.65">
- <polygon fill="#ABDD99" points="176.811,84.505 148.321,102.182 181.396,117.244 208.896,97.272 "/>
- <polygon fill="#46AB48" points="148.321,102.182 150.291,142.135 181.721,157.521 181.396,117.244 "/>
- <polygon fill="#16923B" points="208.896,97.272 181.396,117.244 181.721,157.521 208.245,134.602 "/>
- </g>
- <g>
- <polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
- <polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
- <polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
- </g>
- <g>
- <polygon fill="#F5F661" points="250.023,114.932 212.693,99.54 185.518,119.518 222.518,136.871 "/>
- <polygon fill="#FFF500" points="185.518,119.518 185.846,160.119 222.193,178.786 222.518,136.871 "/>
- <polygon fill="#FFCC00" points="222.518,136.871 222.193,178.786 248.391,154.223 250.023,114.932 "/>
- </g>
- <g>
- <polygon fill="#BFE230" points="153.919,143.233 183.227,122.111 220.314,139.299 191.896,163.205 "/>
- <polygon fill="#84C322" points="153.919,143.233 155.552,187.436 191.572,207.083 191.896,163.205 "/>
- <polygon fill="#5DAA3B" points="191.896,163.205 191.572,207.083 219.734,181.211 220.314,139.299 "/>
- </g>
- <g opacity="0.2">
- <polygon fill="#99FF66" points="147.897,58.767 176.792,42.482 210.77,55.167 182.688,73.26 "/>
- <polygon fill="#66CC33" points="147.897,58.767 148.881,99.045 182.277,114.76 182.688,73.26 "/>
- <polygon fill="#669900" points="182.688,73.26 182.277,114.76 209.783,94.787 210.77,55.167 "/>
- </g>
- <g>
- <polygon fill="#FFCC00" points="214.502,55.302 181.922,73.147 219.082,90.665 249.533,70.036 "/>
- <polygon fill="#FF9900" points="181.922,73.147 185.846,114.406 220.721,132.576 219.082,90.665 "/>
-
- <linearGradient id="XMLID_104_" gradientUnits="userSpaceOnUse" x1="63.3457" y1="484.7695" x2="98.2207" y2="484.7695" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_104_)" points="185.846,114.406 220.721,132.576 219.082,90.665 "/>
- <polygon fill="#F27C0E" points="249.533,70.036 219.082,90.665 220.721,132.576 249.533,111.289 "/>
- </g>
- </g>
- </svg>
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim19.svg Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,309 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
- <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
- <!ENTITY ns_svg "http://www.w3.org/2000/svg">
- <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
-]>
-<svg xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
- width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
- <metadata>
- <x:xmpmeta x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
- <rdf:RDF xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
- <rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-04T09:29:06Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType="Resource">
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
-AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
-DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
-Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
-AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
-AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
-UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
-1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
-qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
-obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
-0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
-+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq4kAVOwxVpWVhVSCPEYBIHkgEFvCl2KuxV2KuxV2KuxV2K
-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
- </xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
- <rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
- </rdf:RDF>
- </x:xmpmeta>
-<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
-<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-
- <rdf:Description rdf:about=''
- xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:xap='http://ns.adobe.com/xap/1.0/'
- xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-20T12:01:53Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType='Resource'>
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq4kAVOwxVpWVhVSCPEYBIHkgEFvCl2KuxV2KuxV2KuxV2K
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</xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:dc='http://purl.org/dc/elements/1.1/'>
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
-
-</rdf:RDF>
-</x:xmpmeta>
- <?xpacket end='w'?>
- </metadata>
- <g id="_x30_1">
- <rect fill="none" width="352" height="352"/>
- </g>
- <g id="_x31_9">
- <path d="M82.136,289.623c-2.612,0-5.184-0.329-7.715-0.984v-4.279c2.772,0.754,5.231,1.131,7.378,1.131
- c2.035,0,3.625-0.457,4.771-1.37s1.718-2.211,1.718-3.894c0-1.586-0.473-2.832-1.418-3.738c-0.945-0.904-2.7-2.086-5.263-3.545
- c-2.804-1.569-4.695-3.151-5.672-4.746c-0.978-1.594-1.466-3.408-1.466-5.442c0-3.237,1.085-5.668,3.257-7.295
- c2.171-1.626,5.003-2.438,8.496-2.438c2.532,0,4.863,0.24,6.994,0.722v4.183c-2.259-0.514-4.358-0.771-6.297-0.771
- c-1.762,0-3.172,0.418-4.229,1.25c-1.058,0.834-1.586,1.988-1.586,3.462c0,1.426,0.46,2.567,1.382,3.425
- c0.922,0.857,2.496,1.902,4.723,3.137c3.076,1.715,5.135,3.373,6.177,4.975c1.041,1.603,1.562,3.404,1.562,5.408
- c0,3.604-1.069,6.309-3.208,8.11C89.601,288.723,86.398,289.623,82.136,289.623z"/>
- <path d="M119.364,288.396c-2.692,0.816-5.488,1.227-8.388,1.227c-4.198,0-7.346-1.21-9.445-3.629
- c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.03-7.742,3.088-10.395c2.059-2.65,4.931-3.979,8.616-3.979
- c3.396,0,5.98,1.127,7.75,3.377c1.77,2.252,2.656,6.414,2.656,12.486h-15.309c0,3.012,0.577,5.271,1.73,6.776
- s2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227L119.364,288.396L119.364,288.396z M105.184,273.04h8.892
- c0-3.302-0.353-5.576-1.057-6.826c-0.705-1.249-1.73-1.874-3.077-1.874c-1.506,0-2.651,0.674-3.437,2.02
- C105.719,267.705,105.28,269.932,105.184,273.04z"/>
- <path opacity="0.65" enable-background="new " d="M125.805,289.238v-28.096h3.797l1.273,4.662
- c0.785-1.634,1.867-2.863,3.245-3.689c1.378-0.824,3.052-1.236,5.023-1.236c0.513,0,0.889,0.016,1.129,0.049v5.383
- c-0.897-0.063-1.554-0.097-1.971-0.097c-2.163,0-3.701,0.478-4.614,1.431s-1.37,2.527-1.37,4.724v16.87H125.805L125.805,289.238z
- "/>
- <path opacity="0.4" enable-background="new " d="M145.104,289.238v-24.273h-3.101v-3.82h9.589v28.094H145.104L145.104,289.238
- z M148.348,257.635c-1.057,0-1.918-0.297-2.583-0.89s-0.997-1.378-0.997-2.354c0-0.978,0.332-1.764,0.997-2.355
- s1.526-0.889,2.583-0.889c1.025,0,1.883,0.305,2.572,0.912c0.689,0.608,1.033,1.387,1.033,2.332c0,0.992-0.336,1.781-1.009,2.366
- C150.271,257.342,149.405,257.635,148.348,257.635z"/>
- <path opacity="0.2" enable-background="new " d="M178.197,288.396c-2.692,0.816-5.488,1.227-8.388,1.227
- c-4.198,0-7.346-1.21-9.445-3.629c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.029-7.742,3.088-10.395
- c2.059-2.65,4.931-3.979,8.616-3.979c3.396,0,5.98,1.127,7.75,3.377c1.771,2.252,2.656,6.414,2.656,12.486h-15.31
- c0,3.012,0.577,5.271,1.73,6.776c1.153,1.506,2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227v3.992H178.197z
- M164.018,273.04h8.893c0-3.302-0.353-5.576-1.058-6.826c-0.705-1.249-1.73-1.874-3.076-1.874c-1.506,0-2.652,0.674-3.437,2.02
- C164.555,267.705,164.114,269.932,164.018,273.04z"/>
- <path fill="#808080" d="M112.728,302.891h4.747c1.875,0,3.24,0.438,4.098,1.316c0.857,0.876,1.286,2.284,1.286,4.223
- c0,1.899-0.515,3.357-1.544,4.375c-1.029,1.018-2.497,1.525-4.404,1.525h-1.598v6.479h-2.584L112.728,302.891L112.728,302.891z
- M115.312,304.607v7.979h1.454c1.169,0,2.031-0.312,2.583-0.931c0.553-0.622,0.829-1.674,0.829-3.155s-0.254-2.501-0.763-3.06
- c-0.509-0.555-1.304-0.834-2.385-0.834H115.312L115.312,304.607z"/>
- <rect x="135.898" y="301.786" fill="#808080" width="2.56" height="19.022"/>
- <path opacity="0.65" fill="#808080" enable-background="new " d="M159.537,318.788c-0.865,1.476-2.211,2.212-4.038,2.212
- c-1.273,0-2.265-0.359-2.974-1.074c-0.709-0.72-1.063-1.722-1.063-3.012c0-1.33,0.365-2.322,1.094-2.975
- c0.729-0.653,1.602-1.063,2.62-1.226c1.017-0.166,2.255-0.247,3.713-0.247v-1.646c0-1.625-0.869-2.438-2.607-2.438
- c-1.001,0-2.223,0.214-3.665,0.638v-1.791c1.45-0.399,2.828-0.601,4.134-0.601c1.538,0,2.706,0.369,3.503,1.112
- c0.797,0.738,1.195,1.83,1.195,3.273v9.793h-1.394L159.537,318.788z M158.888,313.994h-1.43c-1.146,0-2.005,0.242-2.578,0.727
- c-0.573,0.485-0.859,1.209-0.859,2.17c0,0.785,0.174,1.371,0.523,1.762c0.348,0.387,0.871,0.582,1.568,0.582
- c0.881,0,1.564-0.28,2.049-0.842c0.485-0.562,0.727-1.322,0.727-2.283V313.994z"/>
- <path opacity="0.4" fill="#808080" enable-background="new " d="M181.83,320.566c-1.074,0.289-2.083,0.434-3.028,0.434
- c-1.09,0-1.887-0.256-2.392-0.764c-0.505-0.51-0.757-1.319-0.757-2.434v-9.302h-1.838v-0.961l3.737-3.81h0.661v3.101h3.4v1.67
- h-3.4v8.882c0,0.76,0.124,1.262,0.372,1.508c0.248,0.244,0.625,0.365,1.13,0.365c0.521,0,1.227-0.115,2.115-0.349V320.566
- L181.83,320.566z"/>
- <path opacity="0.2" fill="#808080" enable-background="new " d="M198.402,301.594c0.81,0,1.595,0.096,2.354,0.287v1.742
- c-0.753-0.24-1.382-0.359-1.887-0.359c-0.802,0-1.306,0.254-1.515,0.762c-0.209,0.511-0.313,1.445-0.313,2.808h2.561v1.67h-2.561
- v12.306h-2.561v-12.306h-1.693v-1.67h1.693c0-2.123,0.324-3.526,0.975-4.211C196.107,301.936,197.089,301.594,198.402,301.594
- L198.402,301.594z"/>
- <g>
- <polygon fill="#FFCC00" points="83.551,301.553 74.234,306.654 84.862,311.665 93.57,305.768 "/>
- <polygon fill="#FF9900" points="74.234,306.654 75.357,318.456 85.331,323.65 84.862,311.665 "/>
-
- <linearGradient id="XMLID_99_" gradientUnits="userSpaceOnUse" x1="-47.1431" y1="278.7324" x2="-37.1689" y2="278.7324" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_99_)" points="75.357,318.456 85.331,323.65 84.862,311.665 "/>
- <polygon fill="#F27C0E" points="93.57,305.768 84.862,311.665 85.331,323.65 93.57,317.564 "/>
- </g>
- <g>
- <polygon fill="#ABDD99" points="176.811,84.505 148.321,102.182 181.396,117.244 208.896,97.272 "/>
- <polygon fill="#46AB48" points="148.321,102.182 150.291,142.135 181.721,157.521 181.396,117.244 "/>
- <polygon fill="#16923B" points="208.896,97.272 181.396,117.244 181.721,157.521 208.245,134.602 "/>
- </g>
- <g>
- <polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
- <polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
- <polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
- </g>
- <g>
- <polygon fill="#F5F661" points="250.023,114.932 212.693,99.54 185.518,119.518 222.518,136.871 "/>
- <polygon fill="#FFF500" points="185.518,119.518 185.846,160.119 222.193,178.786 222.518,136.871 "/>
- <polygon fill="#FFCC00" points="222.518,136.871 222.193,178.786 248.391,154.223 250.023,114.932 "/>
- </g>
- <g>
- <polygon fill="#BFE230" points="153.919,143.233 183.227,122.111 220.314,139.299 191.896,163.205 "/>
- <polygon fill="#84C322" points="153.919,143.233 155.552,187.436 191.572,207.083 191.896,163.205 "/>
- <polygon fill="#5DAA3B" points="191.896,163.205 191.572,207.083 219.734,181.211 220.314,139.299 "/>
- </g>
- <g opacity="0.4">
- <polygon fill="#99FF66" points="147.897,58.767 176.792,42.482 210.77,55.167 182.688,73.26 "/>
- <polygon fill="#66CC33" points="147.897,58.767 148.881,99.045 182.277,114.76 182.688,73.26 "/>
- <polygon fill="#669900" points="182.688,73.26 182.277,114.76 209.783,94.787 210.77,55.167 "/>
- </g>
- <g>
- <polygon fill="#FFCC00" points="198.502,67.302 165.922,85.147 203.082,102.665 233.533,82.036 "/>
- <polygon fill="#FF9900" points="165.922,85.147 169.846,126.406 204.721,144.576 203.082,102.665 "/>
-
- <linearGradient id="XMLID_100_" gradientUnits="userSpaceOnUse" x1="47.3462" y1="472.7695" x2="82.2207" y2="472.7695" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_100_)" points="169.846,126.406 204.721,144.576 203.082,102.665 "/>
- <polygon fill="#F27C0E" points="233.533,82.036 203.082,102.665 204.721,144.576 233.533,123.289 "/>
- </g>
- </g>
- </svg>
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim20.svg Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,333 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
- <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
- <!ENTITY ns_svg "http://www.w3.org/2000/svg">
- <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
-]>
-<svg xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
- width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
- <metadata>
- <x:xmpmeta x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
- <rdf:RDF xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
- <rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-04T09:29:28Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType="Resource">
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
-AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
-DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
-Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
-AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
-AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
-UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
-1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
-qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
-obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
-0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
-+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq4kAEk0A6k4CaW1qSRuOSMGHiDXBGYkLBtAkDyXZJLsVdi
-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
-q7FXYq//2Q==
- </xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
- <rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
- </rdf:RDF>
- </x:xmpmeta>
-<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
-<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-
- <rdf:Description rdf:about=''
- xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:xap='http://ns.adobe.com/xap/1.0/'
- xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-20T12:01:48Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType='Resource'>
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq4kAEk0A6k4CaW1qSRuOSMGHiDXBGYkLBtAkDyXZJLsVdi
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
KuxV/9k=</xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:dc='http://purl.org/dc/elements/1.1/'>
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
-
-</rdf:RDF>
-</x:xmpmeta>
- <?xpacket end='w'?>
- </metadata>
- <g id="_x30_1">
- <rect fill="none" width="352" height="352"/>
- </g>
- <g id="_x32_0">
- <path d="M82.136,289.623c-2.612,0-5.184-0.329-7.715-0.984v-4.279c2.772,0.754,5.231,1.131,7.378,1.131
- c2.035,0,3.625-0.457,4.771-1.37s1.718-2.211,1.718-3.894c0-1.586-0.473-2.832-1.418-3.738c-0.945-0.904-2.7-2.086-5.263-3.545
- c-2.804-1.569-4.695-3.151-5.672-4.746c-0.978-1.594-1.466-3.408-1.466-5.442c0-3.237,1.085-5.668,3.257-7.295
- c2.171-1.626,5.003-2.438,8.496-2.438c2.532,0,4.863,0.24,6.994,0.722v4.183c-2.259-0.514-4.358-0.771-6.297-0.771
- c-1.762,0-3.172,0.418-4.229,1.25c-1.058,0.834-1.586,1.988-1.586,3.462c0,1.426,0.46,2.567,1.382,3.425
- c0.922,0.857,2.496,1.902,4.723,3.137c3.076,1.715,5.135,3.373,6.177,4.975c1.041,1.603,1.562,3.404,1.562,5.408
- c0,3.604-1.069,6.309-3.208,8.11C89.601,288.723,86.398,289.623,82.136,289.623z"/>
- <path d="M119.364,288.396c-2.692,0.816-5.488,1.227-8.388,1.227c-4.198,0-7.346-1.21-9.445-3.629
- c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.03-7.742,3.088-10.395c2.059-2.65,4.931-3.979,8.616-3.979
- c3.396,0,5.98,1.127,7.75,3.377c1.77,2.252,2.656,6.414,2.656,12.486h-15.309c0,3.012,0.577,5.271,1.73,6.776
- s2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227L119.364,288.396L119.364,288.396z M105.184,273.04h8.892
- c0-3.302-0.353-5.576-1.057-6.826c-0.705-1.249-1.73-1.874-3.077-1.874c-1.506,0-2.651,0.674-3.437,2.02
- C105.719,267.705,105.28,269.932,105.184,273.04z"/>
- <path d="M125.805,289.238v-28.096h3.797l1.273,4.662c0.785-1.634,1.867-2.863,3.245-3.689c1.378-0.824,3.052-1.236,5.023-1.236
- c0.513,0,0.889,0.016,1.129,0.049v5.383c-0.897-0.063-1.554-0.097-1.971-0.097c-2.163,0-3.701,0.478-4.614,1.431
- s-1.37,2.527-1.37,4.724v16.87H125.805L125.805,289.238z"/>
- <path opacity="0.65" enable-background="new " d="M145.104,289.238v-24.273h-3.101v-3.82h9.589v28.094H145.104
- L145.104,289.238z M148.348,257.635c-1.057,0-1.918-0.297-2.583-0.89s-0.997-1.378-0.997-2.354c0-0.978,0.332-1.764,0.997-2.355
- s1.526-0.889,2.583-0.889c1.025,0,1.883,0.305,2.572,0.912c0.689,0.608,1.033,1.387,1.033,2.332c0,0.992-0.336,1.781-1.009,2.366
- C150.271,257.342,149.405,257.635,148.348,257.635z"/>
- <path opacity="0.4" enable-background="new " d="M178.197,288.396c-2.692,0.816-5.488,1.227-8.388,1.227
- c-4.198,0-7.346-1.21-9.445-3.629c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.029-7.742,3.088-10.395
- c2.059-2.65,4.931-3.979,8.616-3.979c3.396,0,5.98,1.127,7.75,3.377c1.771,2.252,2.656,6.414,2.656,12.486h-15.31
- c0,3.012,0.577,5.271,1.73,6.776c1.153,1.506,2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227v3.992H178.197z
- M164.018,273.04h8.893c0-3.302-0.353-5.576-1.058-6.826c-0.705-1.249-1.73-1.874-3.076-1.874c-1.506,0-2.652,0.674-3.437,2.02
- C164.555,267.705,164.114,269.932,164.018,273.04z"/>
- <path opacity="0.2" enable-background="new " d="M190.693,289.623c-2.402,0-4.989-0.329-7.762-0.984v-4.184
- c2.739,0.834,4.998,1.25,6.776,1.25c1.649,0,2.894-0.324,3.726-0.975c0.834-0.647,1.25-1.621,1.25-2.92
- c0-0.769-0.231-1.484-0.697-2.149c-0.465-0.665-1.777-1.542-3.94-2.632c-1.458-0.754-2.624-1.446-3.497-2.079
- c-0.873-0.634-1.599-1.454-2.175-2.464c-0.577-1.01-0.865-2.268-0.865-3.772c0-2.5,0.921-4.454,2.765-5.864
- c1.843-1.41,4.205-2.115,7.09-2.115c2.498,0,4.773,0.313,6.824,0.938v3.989c-2.002-0.688-3.916-1.033-5.744-1.033
- c-1.488,0-2.604,0.305-3.34,0.913s-1.104,1.522-1.104,2.739c0,0.642,0.22,1.242,0.66,1.804s1.702,1.354,3.784,2.379
- c2.916,1.427,4.768,2.82,5.553,4.183c0.785,1.361,1.178,2.867,1.178,4.519c0,2.788-0.896,4.896-2.691,6.319
- C196.688,288.91,194.092,289.623,190.693,289.623z"/>
- <path fill="#808080" d="M112.728,302.891h4.747c1.875,0,3.24,0.438,4.098,1.316c0.857,0.876,1.286,2.284,1.286,4.223
- c0,1.899-0.515,3.357-1.544,4.375c-1.029,1.018-2.497,1.525-4.404,1.525h-1.598v6.479h-2.584L112.728,302.891L112.728,302.891z
- M115.312,304.607v7.979h1.454c1.169,0,2.031-0.312,2.583-0.931c0.553-0.622,0.829-1.674,0.829-3.155s-0.254-2.501-0.763-3.06
- c-0.509-0.555-1.304-0.834-2.385-0.834H115.312L115.312,304.607z"/>
- <rect x="135.898" y="301.786" fill="#808080" width="2.56" height="19.022"/>
- <path fill="#808080" d="M159.537,318.788c-0.865,1.476-2.211,2.212-4.038,2.212c-1.273,0-2.265-0.359-2.974-1.074
- c-0.709-0.72-1.063-1.722-1.063-3.012c0-1.33,0.365-2.322,1.094-2.975c0.729-0.653,1.602-1.063,2.62-1.226
- c1.017-0.166,2.255-0.247,3.713-0.247v-1.646c0-1.625-0.869-2.438-2.607-2.438c-1.001,0-2.223,0.214-3.665,0.638v-1.791
- c1.45-0.399,2.828-0.601,4.134-0.601c1.538,0,2.706,0.369,3.503,1.112c0.797,0.738,1.195,1.83,1.195,3.273v9.793h-1.394
- L159.537,318.788z M158.888,313.994h-1.43c-1.146,0-2.005,0.242-2.578,0.727c-0.573,0.485-0.859,1.209-0.859,2.17
- c0,0.785,0.174,1.371,0.523,1.762c0.348,0.387,0.871,0.582,1.568,0.582c0.881,0,1.564-0.28,2.049-0.842
- c0.485-0.562,0.727-1.322,0.727-2.283V313.994z"/>
- <path opacity="0.65" fill="#808080" enable-background="new " d="M181.83,320.566c-1.074,0.289-2.083,0.434-3.028,0.434
- c-1.09,0-1.887-0.256-2.392-0.764c-0.505-0.51-0.757-1.319-0.757-2.434v-9.302h-1.838v-0.961l3.737-3.81h0.661v3.101h3.4v1.67
- h-3.4v8.882c0,0.76,0.124,1.262,0.372,1.508c0.248,0.244,0.625,0.365,1.13,0.365c0.521,0,1.227-0.115,2.115-0.349V320.566
- L181.83,320.566z"/>
- <path opacity="0.4" fill="#808080" enable-background="new " d="M198.402,301.594c0.81,0,1.595,0.096,2.354,0.287v1.742
- c-0.753-0.24-1.382-0.359-1.887-0.359c-0.802,0-1.306,0.254-1.515,0.762c-0.209,0.511-0.313,1.445-0.313,2.808h2.561v1.67h-2.561
- v12.306h-2.561v-12.306h-1.693v-1.67h1.693c0-2.123,0.324-3.526,0.975-4.211C196.107,301.936,197.089,301.594,198.402,301.594
- L198.402,301.594z"/>
- <path opacity="0.2" fill="#808080" enable-background="new " d="M216.611,321c-1.883,0-3.293-0.617-4.229-1.852
- c-0.938-1.233-1.405-3.084-1.405-5.551c0-2.148,0.485-3.847,1.459-5.097c0.975-1.249,2.367-1.874,4.178-1.874
- c1.826,0,3.222,0.616,4.187,1.852c0.966,1.232,1.449,2.955,1.449,5.166c0,2.275-0.451,4.069-1.353,5.385
- C219.994,320.344,218.566,321,216.611,321z M216.611,319.354c0.986,0,1.729-0.445,2.229-1.34c0.501-0.893,0.752-2.39,0.752-4.488
- c0-1.481-0.256-2.726-0.769-3.731c-0.513-1.004-1.25-1.507-2.212-1.507c-0.978,0-1.719,0.451-2.223,1.357
- c-0.506,0.904-0.758,2.199-0.758,3.881c0,1.892,0.252,3.334,0.758,4.332C214.895,318.854,215.635,319.354,216.611,319.354z"/>
- <g>
- <polygon fill="#FFCC00" points="83.551,301.553 74.234,306.654 84.862,311.665 93.57,305.768 "/>
- <polygon fill="#FF9900" points="74.234,306.654 75.357,318.456 85.331,323.65 84.862,311.665 "/>
-
- <linearGradient id="XMLID_95_" gradientUnits="userSpaceOnUse" x1="-47.1431" y1="278.7324" x2="-37.1689" y2="278.7324" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_95_)" points="75.357,318.456 85.331,323.65 84.862,311.665 "/>
- <polygon fill="#F27C0E" points="93.57,305.768 84.862,311.665 85.331,323.65 93.57,317.564 "/>
- </g>
- <g>
- <polygon fill="#ABDD99" points="176.811,84.505 148.321,102.182 181.396,117.244 208.896,97.272 "/>
- <polygon fill="#46AB48" points="148.321,102.182 150.291,142.135 181.721,157.521 181.396,117.244 "/>
- <polygon fill="#16923B" points="208.896,97.272 181.396,117.244 181.721,157.521 208.245,134.602 "/>
- </g>
- <g>
- <polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
- <polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
- <polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
- </g>
- <g>
- <polygon fill="#F5F661" points="250.023,114.932 212.693,99.54 185.518,119.518 222.518,136.871 "/>
- <polygon fill="#FFF500" points="185.518,119.518 185.846,160.119 222.193,178.786 222.518,136.871 "/>
- <polygon fill="#FFCC00" points="222.518,136.871 222.193,178.786 248.391,154.223 250.023,114.932 "/>
- </g>
- <g>
- <polygon fill="#BFE230" points="153.919,143.233 183.227,122.111 220.314,139.299 191.896,163.205 "/>
- <polygon fill="#84C322" points="153.919,143.233 155.552,187.436 191.572,207.083 191.896,163.205 "/>
- <polygon fill="#5DAA3B" points="191.896,163.205 191.572,207.083 219.734,181.211 220.314,139.299 "/>
- </g>
- <g opacity="0.65">
- <polygon fill="#99FF66" points="147.897,58.767 176.792,42.482 210.77,55.167 182.688,73.26 "/>
- <polygon fill="#66CC33" points="147.897,58.767 148.881,99.045 182.277,114.76 182.688,73.26 "/>
- <polygon fill="#669900" points="182.688,73.26 182.277,114.76 209.783,94.787 210.77,55.167 "/>
- </g>
- <g opacity="0.2">
- <polygon fill="#CC66FF" points="185.191,74.515 222.688,91.457 251.824,70.171 212.861,56.423 "/>
- <polygon fill="#6F348E" points="222.927,91.133 221.895,133.763 249.195,111.758 251.742,70.171 "/>
- <polygon fill="#9933CC" points="184.781,74.515 184.287,116.015 221.895,133.763 222.927,91.133 "/>
- </g>
- <g>
- <polygon fill="#FFCC00" points="184.563,79.017 151.989,96.863 189.143,114.38 219.594,93.751 "/>
- <polygon fill="#FF9900" points="151.989,96.863 155.913,138.121 190.781,156.291 189.143,114.38 "/>
-
- <linearGradient id="XMLID_96_" gradientUnits="userSpaceOnUse" x1="33.4131" y1="461.0547" x2="68.2813" y2="461.0547" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_96_)" points="155.913,138.121 190.781,156.291 189.143,114.38 "/>
- <polygon fill="#F27C0E" points="219.594,93.751 189.143,114.38 190.781,156.291 219.594,135.004 "/>
- </g>
- </g>
- </svg>
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim21.svg Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,361 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
- <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
- <!ENTITY ns_svg "http://www.w3.org/2000/svg">
- <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
-]>
-<svg xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
- width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
- <metadata>
- <x:xmpmeta x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
- <rdf:RDF xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
- <rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-04T09:29:42Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType="Resource">
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
-AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
-DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
-Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
-AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
-AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
-UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
-1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
-qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
-obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
-0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
-+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq5mVQWYgKNyTsMBIAsoJpZFNFKvKJ1dfFSCPwyMMkZi4kE
-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
- </xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
- <rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
- </rdf:RDF>
- </x:xmpmeta>
-<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
-<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-
- <rdf:Description rdf:about=''
- xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:xap='http://ns.adobe.com/xap/1.0/'
- xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-20T12:01:43Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType='Resource'>
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq5mVQWYgKNyTsMBIAsoJpZFNFKvKJ1dfFSCPwyMMkZi4kE
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</xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:dc='http://purl.org/dc/elements/1.1/'>
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
-
-</rdf:RDF>
-</x:xmpmeta>
- <?xpacket end='w'?>
- </metadata>
- <g id="_x30_1">
- <rect fill="none" width="352" height="352"/>
- </g>
- <g id="_x32_1">
- <path d="M82.136,289.623c-2.612,0-5.184-0.329-7.715-0.984v-4.279c2.772,0.754,5.231,1.131,7.378,1.131
- c2.035,0,3.625-0.457,4.771-1.37s1.718-2.211,1.718-3.894c0-1.586-0.473-2.832-1.418-3.738c-0.945-0.904-2.7-2.086-5.263-3.545
- c-2.804-1.569-4.695-3.151-5.672-4.746c-0.978-1.594-1.466-3.408-1.466-5.442c0-3.237,1.085-5.668,3.257-7.295
- c2.171-1.626,5.003-2.438,8.496-2.438c2.532,0,4.863,0.24,6.994,0.722v4.183c-2.259-0.514-4.358-0.771-6.297-0.771
- c-1.762,0-3.172,0.418-4.229,1.25c-1.058,0.834-1.586,1.988-1.586,3.462c0,1.426,0.46,2.567,1.382,3.425
- c0.922,0.857,2.496,1.902,4.723,3.137c3.076,1.715,5.135,3.373,6.177,4.975c1.041,1.603,1.562,3.404,1.562,5.408
- c0,3.604-1.069,6.309-3.208,8.11C89.601,288.723,86.398,289.623,82.136,289.623z"/>
- <path d="M119.364,288.396c-2.692,0.816-5.488,1.227-8.388,1.227c-4.198,0-7.346-1.21-9.445-3.629
- c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.03-7.742,3.088-10.395c2.059-2.65,4.931-3.979,8.616-3.979
- c3.396,0,5.98,1.127,7.75,3.377c1.77,2.252,2.656,6.414,2.656,12.486h-15.309c0,3.012,0.577,5.271,1.73,6.776
- s2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227L119.364,288.396L119.364,288.396z M105.184,273.04h8.892
- c0-3.302-0.353-5.576-1.057-6.826c-0.705-1.249-1.73-1.874-3.077-1.874c-1.506,0-2.651,0.674-3.437,2.02
- C105.719,267.705,105.28,269.932,105.184,273.04z"/>
- <path d="M125.805,289.238v-28.096h3.797l1.273,4.662c0.785-1.634,1.867-2.863,3.245-3.689c1.378-0.824,3.052-1.236,5.023-1.236
- c0.513,0,0.889,0.016,1.129,0.049v5.383c-0.897-0.063-1.554-0.097-1.971-0.097c-2.163,0-3.701,0.478-4.614,1.431
- s-1.37,2.527-1.37,4.724v16.87H125.805L125.805,289.238z"/>
- <path d="M145.104,289.238v-24.273h-3.101v-3.82h9.589v28.094H145.104L145.104,289.238z M148.348,257.635
- c-1.057,0-1.918-0.297-2.583-0.89s-0.997-1.378-0.997-2.354c0-0.978,0.332-1.764,0.997-2.355s1.526-0.889,2.583-0.889
- c1.025,0,1.883,0.305,2.572,0.912c0.689,0.608,1.033,1.387,1.033,2.332c0,0.992-0.336,1.781-1.009,2.366
- C150.271,257.342,149.405,257.635,148.348,257.635z"/>
- <path opacity="0.65" enable-background="new " d="M178.197,288.396c-2.692,0.816-5.488,1.227-8.388,1.227
- c-4.198,0-7.346-1.21-9.445-3.629c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.029-7.742,3.088-10.395
- c2.059-2.65,4.931-3.979,8.616-3.979c3.396,0,5.98,1.127,7.75,3.377c1.771,2.252,2.656,6.414,2.656,12.486h-15.31
- c0,3.012,0.577,5.271,1.73,6.776c1.153,1.506,2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227v3.992H178.197z
- M164.018,273.04h8.893c0-3.302-0.353-5.576-1.058-6.826c-0.705-1.249-1.73-1.874-3.076-1.874c-1.506,0-2.652,0.674-3.437,2.02
- C164.555,267.705,164.114,269.932,164.018,273.04z"/>
- <path opacity="0.4" enable-background="new " d="M190.693,289.623c-2.402,0-4.989-0.329-7.762-0.984v-4.184
- c2.739,0.834,4.998,1.25,6.776,1.25c1.649,0,2.894-0.324,3.726-0.975c0.834-0.647,1.25-1.621,1.25-2.92
- c0-0.769-0.231-1.484-0.697-2.149c-0.465-0.665-1.777-1.542-3.94-2.632c-1.458-0.754-2.624-1.446-3.497-2.079
- c-0.873-0.634-1.599-1.454-2.175-2.464c-0.577-1.01-0.865-2.268-0.865-3.772c0-2.5,0.921-4.454,2.765-5.864
- c1.843-1.41,4.205-2.115,7.09-2.115c2.498,0,4.773,0.313,6.824,0.938v3.989c-2.002-0.688-3.916-1.033-5.744-1.033
- c-1.488,0-2.604,0.305-3.34,0.913s-1.104,1.522-1.104,2.739c0,0.642,0.22,1.242,0.66,1.804s1.702,1.354,3.784,2.379
- c2.916,1.427,4.768,2.82,5.553,4.183c0.785,1.361,1.178,2.867,1.178,4.519c0,2.788-0.896,4.896-2.691,6.319
- C196.688,288.91,194.092,289.623,190.693,289.623z"/>
- <path fill="#808080" d="M112.728,302.891h4.747c1.875,0,3.24,0.438,4.098,1.316c0.857,0.876,1.286,2.284,1.286,4.223
- c0,1.899-0.515,3.357-1.544,4.375c-1.029,1.018-2.497,1.525-4.404,1.525h-1.598v6.479h-2.584L112.728,302.891L112.728,302.891z
- M115.312,304.607v7.979h1.454c1.169,0,2.031-0.312,2.583-0.931c0.553-0.622,0.829-1.674,0.829-3.155s-0.254-2.501-0.763-3.06
- c-0.509-0.555-1.304-0.834-2.385-0.834H115.312L115.312,304.607z"/>
- <rect x="135.898" y="301.786" fill="#808080" width="2.56" height="19.022"/>
- <path fill="#808080" d="M159.537,318.788c-0.865,1.476-2.211,2.212-4.038,2.212c-1.273,0-2.265-0.359-2.974-1.074
- c-0.709-0.72-1.063-1.722-1.063-3.012c0-1.33,0.365-2.322,1.094-2.975c0.729-0.653,1.602-1.063,2.62-1.226
- c1.017-0.166,2.255-0.247,3.713-0.247v-1.646c0-1.625-0.869-2.438-2.607-2.438c-1.001,0-2.223,0.214-3.665,0.638v-1.791
- c1.45-0.399,2.828-0.601,4.134-0.601c1.538,0,2.706,0.369,3.503,1.112c0.797,0.738,1.195,1.83,1.195,3.273v9.793h-1.394
- L159.537,318.788z M158.888,313.994h-1.43c-1.146,0-2.005,0.242-2.578,0.727c-0.573,0.485-0.859,1.209-0.859,2.17
- c0,0.785,0.174,1.371,0.523,1.762c0.348,0.387,0.871,0.582,1.568,0.582c0.881,0,1.564-0.28,2.049-0.842
- c0.485-0.562,0.727-1.322,0.727-2.283V313.994z"/>
- <path fill="#808080" d="M181.83,320.566c-1.074,0.289-2.083,0.434-3.028,0.434c-1.09,0-1.887-0.256-2.392-0.764
- c-0.505-0.51-0.757-1.319-0.757-2.434v-9.302h-1.838v-0.961l3.737-3.81h0.661v3.101h3.4v1.67h-3.4v8.882
- c0,0.76,0.124,1.262,0.372,1.508c0.248,0.244,0.625,0.365,1.13,0.365c0.521,0,1.227-0.115,2.115-0.349V320.566L181.83,320.566z"
- />
- <path opacity="0.65" fill="#808080" enable-background="new " d="M198.402,301.594c0.81,0,1.595,0.096,2.354,0.287v1.742
- c-0.753-0.24-1.382-0.359-1.887-0.359c-0.802,0-1.306,0.254-1.515,0.762c-0.209,0.511-0.313,1.445-0.313,2.808h2.561v1.67h-2.561
- v12.306h-2.561v-12.306h-1.693v-1.67h1.693c0-2.123,0.324-3.526,0.975-4.211C196.107,301.936,197.089,301.594,198.402,301.594
- L198.402,301.594z"/>
- <path opacity="0.4" fill="#808080" enable-background="new " d="M216.611,321c-1.883,0-3.293-0.617-4.229-1.852
- c-0.938-1.233-1.405-3.084-1.405-5.551c0-2.148,0.485-3.847,1.459-5.097c0.975-1.249,2.367-1.874,4.178-1.874
- c1.826,0,3.222,0.616,4.187,1.852c0.966,1.232,1.449,2.955,1.449,5.166c0,2.275-0.451,4.069-1.353,5.385
- C219.994,320.344,218.566,321,216.611,321z M216.611,319.354c0.986,0,1.729-0.445,2.229-1.34c0.501-0.893,0.752-2.39,0.752-4.488
- c0-1.481-0.256-2.726-0.769-3.731c-0.513-1.004-1.25-1.507-2.212-1.507c-0.978,0-1.719,0.451-2.223,1.357
- c-0.506,0.904-0.758,2.199-0.758,3.881c0,1.892,0.252,3.334,0.758,4.332C214.895,318.854,215.635,319.354,216.611,319.354z"/>
- <path opacity="0.2" fill="#808080" enable-background="new " d="M236.909,306.832l0.589,2.331
- c0.777-1.644,2.131-2.464,4.063-2.464c0.256,0,0.444,0.013,0.564,0.035v2.332c-0.201-0.016-0.501-0.023-0.9-0.023
- c-1.099,0-1.904,0.262-2.416,0.788c-0.514,0.522-0.77,1.343-0.77,2.456v8.521h-2.561v-13.977H236.909z"/>
- <path opacity="0.2" fill="#0F3AAC" enable-background="new " d="M228.208,242.369c2.563,0,4.944,0.191,7.146,0.576v5.576
- c-1.942-0.428-4.047-0.642-6.313-0.642c-3.354,0-5.977,1.181-7.867,3.541c-1.89,2.36-3.049,5.901-3.477,10.623
- c2.072-2.009,4.935-3.013,8.588-3.013c4.102,0,7.221,1.303,9.357,3.908c2.135,2.606,3.203,6.334,3.203,11.185
- c0,5.362-1.309,9.544-3.926,12.546c-2.615,3.001-6.393,4.502-11.327,4.502c-4.934,0-8.657-1.752-11.168-5.255
- c-2.51-3.504-3.765-9.313-3.765-17.433c0-7.989,1.677-14.34,5.029-19.051C217.046,244.725,221.885,242.369,228.208,242.369
- L228.208,242.369z M223.594,285.854c2.157,0,3.771-0.828,4.84-2.482c1.066-1.655,1.602-4.674,1.602-9.053
- c0-3.291-0.502-5.764-1.506-7.418c-1.004-1.656-2.51-2.483-4.52-2.483c-2.093,0-3.689,0.79-4.789,2.371
- c-1.102,1.581-1.65,3.76-1.65,6.536c0,3.332,0.225,5.849,0.673,7.547c0.448,1.699,1.116,2.953,2.003,3.766
- S222.248,285.854,223.594,285.854z"/>
- <g>
- <polygon fill="#FFCC00" points="83.551,301.553 74.234,306.654 84.862,311.665 93.57,305.768 "/>
- <polygon fill="#FF9900" points="74.234,306.654 75.357,318.456 85.331,323.65 84.862,311.665 "/>
-
- <linearGradient id="XMLID_91_" gradientUnits="userSpaceOnUse" x1="-47.1431" y1="278.7324" x2="-37.1689" y2="278.7324" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_91_)" points="75.357,318.456 85.331,323.65 84.862,311.665 "/>
- <polygon fill="#F27C0E" points="93.57,305.768 84.862,311.665 85.331,323.65 93.57,317.564 "/>
- </g>
- <g>
- <polygon fill="#ABDD99" points="176.811,84.505 148.321,102.182 181.396,117.244 208.896,97.272 "/>
- <polygon fill="#46AB48" points="148.321,102.182 150.291,142.135 181.721,157.521 181.396,117.244 "/>
- <polygon fill="#16923B" points="208.896,97.272 181.396,117.244 181.721,157.521 208.245,134.602 "/>
- </g>
- <g>
- <polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
- <polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
- <polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
- </g>
- <g>
- <polygon fill="#F5F661" points="250.023,114.932 212.693,99.54 185.518,119.518 222.518,136.871 "/>
- <polygon fill="#FFF500" points="185.518,119.518 185.846,160.119 222.193,178.786 222.518,136.871 "/>
- <polygon fill="#FFCC00" points="222.518,136.871 222.193,178.786 248.391,154.223 250.023,114.932 "/>
- </g>
- <g>
- <polygon fill="#BFE230" points="153.919,143.233 183.227,122.111 220.314,139.299 191.896,163.205 "/>
- <polygon fill="#84C322" points="153.919,143.233 155.552,187.436 191.572,207.083 191.896,163.205 "/>
- <polygon fill="#5DAA3B" points="191.896,163.205 191.572,207.083 219.734,181.211 220.314,139.299 "/>
- </g>
- <g>
- <polygon fill="#99FF66" points="147.897,58.767 176.792,42.482 210.77,55.167 182.688,73.26 "/>
- <polygon fill="#66CC33" points="147.897,58.767 148.881,99.045 182.277,114.76 182.688,73.26 "/>
- <polygon fill="#669900" points="182.688,73.26 182.277,114.76 209.783,94.787 210.77,55.167 "/>
- </g>
- <g opacity="0.4">
- <polygon fill="#CC66FF" points="185.191,74.515 222.688,91.457 251.824,70.171 212.861,56.423 "/>
- <polygon fill="#6F348E" points="222.927,91.133 221.895,133.763 249.195,111.758 251.742,70.171 "/>
- <polygon fill="#9933CC" points="184.781,74.515 184.287,116.015 221.895,133.763 222.927,91.133 "/>
- </g>
- <g>
- <polygon fill="#FFCC00" points="167.563,71.017 134.989,88.863 172.143,106.38 202.594,85.751 "/>
- <polygon fill="#FF9900" points="134.989,88.863 138.913,130.121 173.781,148.291 172.143,106.38 "/>
-
- <linearGradient id="XMLID_92_" gradientUnits="userSpaceOnUse" x1="16.4131" y1="469.0547" x2="51.2813" y2="469.0547" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_92_)" points="138.913,130.121 173.781,148.291 172.143,106.38 "/>
- <polygon fill="#F27C0E" points="202.594,85.751 172.143,106.38 173.781,148.291 202.594,127.004 "/>
- </g>
- </g>
- </svg>
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim22.svg Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,397 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
- <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
- <!ENTITY ns_svg "http://www.w3.org/2000/svg">
- <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
-]>
-<svg xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
- width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
- <metadata>
- <x:xmpmeta x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
- <rdf:RDF xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
- <rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-04T09:29:58Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType="Resource">
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
-AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
-DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
-Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
-AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
-AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
-UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
-1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
-qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
-obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
-0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
-+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq5mVQWYgKNyTsMBIAsoJpZFNFKvKJ1dfFSCPwyMMkZi4kE
-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
-xV2KuxV2KuxV/9k=
- </xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
- <rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
- </rdf:RDF>
- </x:xmpmeta>
-<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
-<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-
- <rdf:Description rdf:about=''
- xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:xap='http://ns.adobe.com/xap/1.0/'
- xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-20T12:01:36Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType='Resource'>
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq5mVQWYgKNyTsMBIAsoJpZFNFKvKJ1dfFSCPwyMMkZi4kE
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
/9k=</xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:dc='http://purl.org/dc/elements/1.1/'>
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
-
-</rdf:RDF>
-</x:xmpmeta>
- <?xpacket end='w'?>
- </metadata>
- <g id="_x30_1">
- <rect fill="none" width="352" height="352"/>
- </g>
- <g id="_x32_2">
- <path d="M82.136,289.623c-2.612,0-5.184-0.329-7.715-0.984v-4.279c2.772,0.754,5.231,1.131,7.378,1.131
- c2.035,0,3.625-0.457,4.771-1.37s1.718-2.211,1.718-3.894c0-1.586-0.473-2.832-1.418-3.738c-0.945-0.904-2.7-2.086-5.263-3.545
- c-2.804-1.569-4.695-3.151-5.672-4.746c-0.978-1.594-1.466-3.408-1.466-5.442c0-3.237,1.085-5.668,3.257-7.295
- c2.171-1.626,5.003-2.438,8.496-2.438c2.532,0,4.863,0.24,6.994,0.722v4.183c-2.259-0.514-4.358-0.771-6.297-0.771
- c-1.762,0-3.172,0.418-4.229,1.25c-1.058,0.834-1.586,1.988-1.586,3.462c0,1.426,0.46,2.567,1.382,3.425
- c0.922,0.857,2.496,1.902,4.723,3.137c3.076,1.715,5.135,3.373,6.177,4.975c1.041,1.603,1.562,3.404,1.562,5.408
- c0,3.604-1.069,6.309-3.208,8.11C89.601,288.723,86.398,289.623,82.136,289.623z"/>
- <path d="M119.364,288.396c-2.692,0.816-5.488,1.227-8.388,1.227c-4.198,0-7.346-1.21-9.445-3.629
- c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.03-7.742,3.088-10.395c2.059-2.65,4.931-3.979,8.616-3.979
- c3.396,0,5.98,1.127,7.75,3.377c1.77,2.252,2.656,6.414,2.656,12.486h-15.309c0,3.012,0.577,5.271,1.73,6.776
- s2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227L119.364,288.396L119.364,288.396z M105.184,273.04h8.892
- c0-3.302-0.353-5.576-1.057-6.826c-0.705-1.249-1.73-1.874-3.077-1.874c-1.506,0-2.651,0.674-3.437,2.02
- C105.719,267.705,105.28,269.932,105.184,273.04z"/>
- <path d="M125.805,289.238v-28.096h3.797l1.273,4.662c0.785-1.634,1.867-2.863,3.245-3.689c1.378-0.824,3.052-1.236,5.023-1.236
- c0.513,0,0.889,0.016,1.129,0.049v5.383c-0.897-0.063-1.554-0.097-1.971-0.097c-2.163,0-3.701,0.478-4.614,1.431
- s-1.37,2.527-1.37,4.724v16.87H125.805L125.805,289.238z"/>
- <path d="M145.104,289.238v-24.273h-3.101v-3.82h9.589v28.094H145.104L145.104,289.238z M148.348,257.635
- c-1.057,0-1.918-0.297-2.583-0.89s-0.997-1.378-0.997-2.354c0-0.978,0.332-1.764,0.997-2.355s1.526-0.889,2.583-0.889
- c1.025,0,1.883,0.305,2.572,0.912c0.689,0.608,1.033,1.387,1.033,2.332c0,0.992-0.336,1.781-1.009,2.366
- C150.271,257.342,149.405,257.635,148.348,257.635z"/>
- <path d="M178.197,288.396c-2.692,0.816-5.488,1.227-8.388,1.227c-4.198,0-7.346-1.21-9.445-3.629
- c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.029-7.742,3.088-10.395c2.059-2.65,4.931-3.979,8.616-3.979
- c3.396,0,5.98,1.127,7.75,3.377c1.771,2.252,2.656,6.414,2.656,12.486h-15.31c0,3.012,0.577,5.271,1.73,6.776
- c1.153,1.506,2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227v3.992H178.197z M164.018,273.04h8.893
- c0-3.302-0.353-5.576-1.058-6.826c-0.705-1.249-1.73-1.874-3.076-1.874c-1.506,0-2.652,0.674-3.437,2.02
- C164.555,267.705,164.114,269.932,164.018,273.04z"/>
- <path opacity="0.65" enable-background="new " d="M190.693,289.623c-2.402,0-4.989-0.329-7.762-0.984v-4.184
- c2.739,0.834,4.998,1.25,6.776,1.25c1.649,0,2.894-0.324,3.726-0.975c0.834-0.647,1.25-1.621,1.25-2.92
- c0-0.769-0.231-1.484-0.697-2.149c-0.465-0.665-1.777-1.542-3.94-2.632c-1.458-0.754-2.624-1.446-3.497-2.079
- c-0.873-0.634-1.599-1.454-2.175-2.464c-0.577-1.01-0.865-2.268-0.865-3.772c0-2.5,0.921-4.454,2.765-5.864
- c1.843-1.41,4.205-2.115,7.09-2.115c2.498,0,4.773,0.313,6.824,0.938v3.989c-2.002-0.688-3.916-1.033-5.744-1.033
- c-1.488,0-2.604,0.305-3.34,0.913s-1.104,1.522-1.104,2.739c0,0.642,0.22,1.242,0.66,1.804s1.702,1.354,3.784,2.379
- c2.916,1.427,4.768,2.82,5.553,4.183c0.785,1.361,1.178,2.867,1.178,4.519c0,2.788-0.896,4.896-2.691,6.319
- C196.688,288.91,194.092,289.623,190.693,289.623z"/>
- <path fill="#808080" d="M112.728,302.891h4.747c1.875,0,3.24,0.438,4.098,1.316c0.857,0.876,1.286,2.284,1.286,4.223
- c0,1.899-0.515,3.357-1.544,4.375c-1.029,1.018-2.497,1.525-4.404,1.525h-1.598v6.479h-2.584L112.728,302.891L112.728,302.891z
- M115.312,304.607v7.979h1.454c1.169,0,2.031-0.312,2.583-0.931c0.553-0.622,0.829-1.674,0.829-3.155s-0.254-2.501-0.763-3.06
- c-0.509-0.555-1.304-0.834-2.385-0.834H115.312L115.312,304.607z"/>
- <rect x="135.898" y="301.786" fill="#808080" width="2.56" height="19.022"/>
- <path fill="#808080" d="M159.537,318.788c-0.865,1.476-2.211,2.212-4.038,2.212c-1.273,0-2.265-0.359-2.974-1.074
- c-0.709-0.72-1.063-1.722-1.063-3.012c0-1.33,0.365-2.322,1.094-2.975c0.729-0.653,1.602-1.063,2.62-1.226
- c1.017-0.166,2.255-0.247,3.713-0.247v-1.646c0-1.625-0.869-2.438-2.607-2.438c-1.001,0-2.223,0.214-3.665,0.638v-1.791
- c1.45-0.399,2.828-0.601,4.134-0.601c1.538,0,2.706,0.369,3.503,1.112c0.797,0.738,1.195,1.83,1.195,3.273v9.793h-1.394
- L159.537,318.788z M158.888,313.994h-1.43c-1.146,0-2.005,0.242-2.578,0.727c-0.573,0.485-0.859,1.209-0.859,2.17
- c0,0.785,0.174,1.371,0.523,1.762c0.348,0.387,0.871,0.582,1.568,0.582c0.881,0,1.564-0.28,2.049-0.842
- c0.485-0.562,0.727-1.322,0.727-2.283V313.994z"/>
- <path fill="#808080" d="M181.83,320.566c-1.074,0.289-2.083,0.434-3.028,0.434c-1.09,0-1.887-0.256-2.392-0.764
- c-0.505-0.51-0.757-1.319-0.757-2.434v-9.302h-1.838v-0.961l3.737-3.81h0.661v3.101h3.4v1.67h-3.4v8.882
- c0,0.76,0.124,1.262,0.372,1.508c0.248,0.244,0.625,0.365,1.13,0.365c0.521,0,1.227-0.115,2.115-0.349V320.566L181.83,320.566z"
- />
- <path fill="#808080" d="M198.402,301.594c0.81,0,1.595,0.096,2.354,0.287v1.742c-0.753-0.24-1.382-0.359-1.887-0.359
- c-0.802,0-1.306,0.254-1.515,0.762c-0.209,0.511-0.313,1.445-0.313,2.808h2.561v1.67h-2.561v12.306h-2.561v-12.306h-1.693v-1.67
- h1.693c0-2.123,0.324-3.526,0.975-4.211C196.107,301.936,197.089,301.594,198.402,301.594L198.402,301.594z"/>
- <path opacity="0.65" fill="#808080" enable-background="new " d="M216.611,321c-1.883,0-3.293-0.617-4.229-1.852
- c-0.938-1.233-1.405-3.084-1.405-5.551c0-2.148,0.485-3.847,1.459-5.097c0.975-1.249,2.367-1.874,4.178-1.874
- c1.826,0,3.222,0.616,4.187,1.852c0.966,1.232,1.449,2.955,1.449,5.166c0,2.275-0.451,4.069-1.353,5.385
- C219.994,320.344,218.566,321,216.611,321z M216.611,319.354c0.986,0,1.729-0.445,2.229-1.34c0.501-0.893,0.752-2.39,0.752-4.488
- c0-1.481-0.256-2.726-0.769-3.731c-0.513-1.004-1.25-1.507-2.212-1.507c-0.978,0-1.719,0.451-2.223,1.357
- c-0.506,0.904-0.758,2.199-0.758,3.881c0,1.892,0.252,3.334,0.758,4.332C214.895,318.854,215.635,319.354,216.611,319.354z"/>
- <path opacity="0.4" fill="#808080" enable-background="new " d="M236.909,306.832l0.589,2.331
- c0.777-1.644,2.131-2.464,4.063-2.464c0.256,0,0.444,0.013,0.564,0.035v2.332c-0.201-0.016-0.501-0.023-0.9-0.023
- c-1.099,0-1.904,0.262-2.416,0.788c-0.514,0.522-0.77,1.343-0.77,2.456v8.521h-2.561v-13.977H236.909z"/>
- <path opacity="0.2" fill="#808080" enable-background="new " d="M272.073,320.809h-2.56v-9.627
- c0-0.929-0.177-1.629-0.523-2.096c-0.35-0.471-0.871-0.704-1.568-0.704c-0.896,0-1.588,0.353-2.072,1.058
- s-0.728,1.623-0.728,2.752v8.617h-2.56v-9.627c0-0.929-0.18-1.629-0.535-2.096c-0.356-0.471-0.891-0.704-1.604-0.704
- c-0.881,0-1.563,0.356-2.043,1.069s-0.721,1.627-0.721,2.74v8.615h-2.56v-13.976h1.43l0.517,2.065
- c0.856-1.514,2.163-2.271,3.918-2.271c0.929,0,1.699,0.177,2.313,0.528c0.611,0.353,1.063,0.881,1.353,1.586
- c0.793-1.409,2.063-2.114,3.81-2.114c1.379,0,2.412,0.372,3.101,1.117s1.034,1.858,1.034,3.341L272.073,320.809L272.073,320.809z
- "/>
- <path opacity="0.4" fill="#0F3AAC" enable-background="new " d="M228.208,242.369c2.563,0,4.944,0.191,7.146,0.576v5.576
- c-1.942-0.428-4.047-0.642-6.313-0.642c-3.354,0-5.977,1.181-7.867,3.541c-1.89,2.36-3.049,5.901-3.477,10.623
- c2.072-2.009,4.935-3.013,8.588-3.013c4.102,0,7.221,1.303,9.357,3.908c2.135,2.606,3.203,6.334,3.203,11.185
- c0,5.362-1.309,9.544-3.926,12.546c-2.615,3.001-6.393,4.502-11.327,4.502c-4.934,0-8.657-1.752-11.168-5.255
- c-2.51-3.504-3.765-9.313-3.765-17.433c0-7.989,1.677-14.34,5.029-19.051C217.046,244.725,221.885,242.369,228.208,242.369
- L228.208,242.369z M223.594,285.854c2.157,0,3.771-0.828,4.84-2.482c1.066-1.655,1.602-4.674,1.602-9.053
- c0-3.291-0.502-5.764-1.506-7.418c-1.004-1.656-2.51-2.483-4.52-2.483c-2.093,0-3.689,0.79-4.789,2.371
- c-1.102,1.581-1.65,3.76-1.65,6.536c0,3.332,0.225,5.849,0.673,7.547c0.448,1.699,1.116,2.953,2.003,3.766
- S222.248,285.854,223.594,285.854z"/>
- <path opacity="0.2" fill="#0F3AAC" enable-background="new " d="M260.316,242.369c4.935,0,8.662,1.752,11.184,5.255
- c2.521,3.504,3.781,9.688,3.781,18.554c0,9.721-1.276,16.316-3.829,19.789c-2.554,3.471-6.318,5.206-11.296,5.206
- c-4.358,0-7.647-1.153-9.87-3.461c-2.222-2.308-3.669-5.224-4.343-8.748c-0.672-3.524-1.008-7.786-1.008-12.786
- c0-8.693,1.291-14.836,3.877-18.425C251.396,244.164,255.232,242.369,260.316,242.369z M260.092,285.854
- c2.18,0,3.776-1.223,4.791-3.668c1.016-2.447,1.521-7.781,1.521-16.008c0-7.904-0.522-12.962-1.569-15.173
- s-2.628-3.315-4.743-3.315c-1.922,0-3.338,0.77-4.244,2.308c-0.908,1.538-1.476,3.546-1.699,6.024
- c-0.225,2.478-0.336,5.863-0.336,10.156c0,8.461,0.502,13.854,1.506,16.184C256.32,284.689,257.913,285.854,260.092,285.854z"/>
- <g>
- <polygon fill="#FFCC00" points="83.551,301.553 74.234,306.654 84.862,311.665 93.57,305.768 "/>
- <polygon fill="#FF9900" points="74.234,306.654 75.357,318.456 85.331,323.65 84.862,311.665 "/>
-
- <linearGradient id="XMLID_87_" gradientUnits="userSpaceOnUse" x1="-47.1431" y1="278.7324" x2="-37.1689" y2="278.7324" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_87_)" points="75.357,318.456 85.331,323.65 84.862,311.665 "/>
- <polygon fill="#F27C0E" points="93.57,305.768 84.862,311.665 85.331,323.65 93.57,317.564 "/>
- </g>
- <g>
- <polygon fill="#ABDD99" points="176.811,84.505 148.321,102.182 181.396,117.244 208.896,97.272 "/>
- <polygon fill="#46AB48" points="148.321,102.182 150.291,142.135 181.721,157.521 181.396,117.244 "/>
- <polygon fill="#16923B" points="208.896,97.272 181.396,117.244 181.721,157.521 208.245,134.602 "/>
- </g>
- <g>
- <polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
- <polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
- <polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
- </g>
- <g>
- <polygon fill="#F5F661" points="250.023,114.932 212.693,99.54 185.518,119.518 222.518,136.871 "/>
- <polygon fill="#FFF500" points="185.518,119.518 185.846,160.119 222.193,178.786 222.518,136.871 "/>
- <polygon fill="#FFCC00" points="222.518,136.871 222.193,178.786 248.391,154.223 250.023,114.932 "/>
- </g>
- <g>
- <polygon fill="#BFE230" points="153.919,143.233 183.227,122.111 220.314,139.299 191.896,163.205 "/>
- <polygon fill="#84C322" points="153.919,143.233 155.552,187.436 191.572,207.083 191.896,163.205 "/>
- <polygon fill="#5DAA3B" points="191.896,163.205 191.572,207.083 219.734,181.211 220.314,139.299 "/>
- </g>
- <g>
- <polygon fill="#99FF66" points="147.897,58.767 176.792,42.482 210.77,55.167 182.688,73.26 "/>
- <polygon fill="#66CC33" points="147.897,58.767 148.881,99.045 182.277,114.76 182.688,73.26 "/>
- <polygon fill="#669900" points="182.688,73.26 182.277,114.76 209.783,94.787 210.77,55.167 "/>
- </g>
- <g opacity="0.65">
- <polygon fill="#CC66FF" points="185.191,74.515 222.688,91.457 251.824,70.171 212.861,56.423 "/>
- <polygon fill="#6F348E" points="222.927,91.133 221.895,133.763 249.195,111.758 251.742,70.171 "/>
- <polygon fill="#9933CC" points="184.781,74.515 184.287,116.015 221.895,133.763 222.927,91.133 "/>
- </g>
- <g>
- <polygon fill="#FFCC00" points="143.801,59.9 111.221,77.746 148.382,95.263 178.832,74.634 "/>
- <polygon fill="#FF9900" points="111.221,77.746 115.145,119.004 150.02,137.174 148.382,95.263 "/>
-
- <linearGradient id="XMLID_88_" gradientUnits="userSpaceOnUse" x1="-7.355" y1="480.1719" x2="27.52" y2="480.1719" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_88_)" points="115.145,119.004 150.02,137.174 148.382,95.263 "/>
- <polygon fill="#F27C0E" points="178.832,74.634 148.382,95.263 150.02,137.174 178.832,115.888 "/>
- </g>
- <g opacity="0.2">
- <polygon fill="#0099FF" points="152.426,97.736 154.061,139.652 192.048,159.625 192.048,116.076 "/>
- <polygon fill="#00CCFF" points="152.426,97.736 183.527,77.107 221.434,93.402 192.048,116.076 "/>
- <polygon fill="#0066FF" points="192.048,116.076 192.048,159.625 220.443,136.396 221.434,93.402 "/>
- </g>
- </g>
- </svg>
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim23.svg Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,411 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
- <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
- <!ENTITY ns_svg "http://www.w3.org/2000/svg">
- <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
-]>
-<svg xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
- width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
- <metadata>
- <x:xmpmeta x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
- <rdf:RDF xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
- <rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-04T09:30:16Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType="Resource">
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
-AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
-DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
-Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
-AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
-AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
-UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
-1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
-qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
-obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
-0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
-+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq0XQMFLAM32VJ3NPDImcQQCdymjzbySHYq7FXMyqCzEBRuSdhgJAFlBN
-LIpopV5ROrr4qQR+GRhkjMXEghEZiQsG1+TZOxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K
-uxV2KuxV2KuxV2KuxVZNPDBGZJnEca9WY0GU588MUTOZEYjqWUIGRoCyxvUvN43jsF9vXcf8RX+u
-cN2p7Zc46Yf5x/QP1/J22DszrP5McmubiaUyyyM8h35k7/RnD59Tkyz45yMpd7tY44xFAbJlY+Zt
-TtqK7fWIx+zJufobr9+bzQe1OrwbSPiR7pc/9Nz+duJm7Pxz5ek+TIbHzPptzRZG+ryH9mT7P0N0
-++mdtoParS59pHw5f0uX+m5fOnV5uz8kOXqHkq32vWdsOKH1peyodvpbNjqu1cWMek8UvL9bpdRr
-I49ucmOX2qXl4f3r0j7Rrso/r9Oc3qtdkzH1Hbu6OnzameTmdu5DxTTQvzidkbxUkH8MxseSUDcS
-QWmMzE2DSa2vmW8joJ1Ey+P2W+8bfhm3wdtZI7THEPkXOxdozH1bpxa67p9xQc/Sc/sybfj0zc4O
-1MOTrwnz/FOxxa3HPrR80wBBFRuD0ObEFy3Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FUq8y602j6eLpY/ULSCPfovIE8iO/TNR232hPSYOOABkTW/Ic93N0Gk8fJw3W1sKm1aXU
-m9WSf1fAdAtfBe2eTa/W6jUT4s0jL7h7uj0MNMMQoClPMFk7FXYqslliijMkrBEXqx2GGMTI0OaQ
-CdglUPmT1tSgt7f4LdnAeRv2h7A9M3/Z+CeMiz8Ojg9tdmYzpZ5JxHHGO39rJs3T5g7FVG7vLWzg
-ae6lWGFersaD5fPG2UYmRoMQ1XzXe31YtP5WlqdjcH+9cf5I/YHv1zrOxvZPNqqnlvHi/wBkfcOn
-vPyL0fZ/YMp1LJsHaV5s8w6WI0tb1/RjAVYZDzSg/wAlq0r3I3z0mHY+mhjGOMajH5/Pq9R+RxcP
-DTMdK/NlDxTVbPie81uaj/gGP/G2a/P2F1xy+B/W4mTsz+afmzHS/MuhaoALK8jkkP8AuonhJ/wD
-UbNPn0eXF9UT+h1+TTzh9QTPMZpdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirHfP0XP
-y1O1P7p42+9wv/G2aD2mhejke4xP21+l2vY0q1A8wfueWI7IwZSVYdCNs8zezIB5o+31iVaCYcx/
-MNjlE8APLZxZ6UHkmcF1BOKxuCe46H7sxp4zHm4k8co80LqOr2tktGPOb9mIdfp8MuwaWWTflHvZ
-4sEp+5i1/qV1eycpm+EfZjH2Rm6w4I4xQdnjwxhyQ8X94vzzJx/UHW9vf4ll/qpvZ6vf2lBFISg/
-3W/xL/Z9GZ744jL/AM9xWdl6j2/78ninxfu6nux65fpdNPPljjxi5y5OVpNKc8xAMdmu59SkF3dz
-i5b/AHWFP7pP9RRt9PXPU+xfZTDpankrJl/2MfcP0n4U9xoOyceAWd5N51rtnYq7FWwSDUdcVR2h
-/mprFr5i0vQ7W8N2L27gtZRMfUSNZZVjNGPxVAboDmj7QwYDEkR9QHTZ1uqx4qNDd77nLuldirsV
-dirsVdirsVdirsVdirsVdirsVdirsVdirsVSjzbF6vlu/Xwj5f8AAEN/DNV23Di0eQf0fu3c7s2V
-aiHveQZ5S924Ak0G5PbFCsIWT4iaMOlO2WcFc2BkCkLli7ciWapqx6k5sacgLcUrov7xfnlmP6g6
-jt7/ABLL/VRJIGbvS6GeXflHvfFc2ojD3pbrnxWlDuK9M7PsHSwxamAiOvP4Fr0GeUswNsejSSB/
-UtpGgfvx+yfmp2z0ent9P2vlhtL1D7fmmFvr88dFvIuS/wC/ov4qcXeaftLFl2uj3FNra9tbpeUE
-iuO4HUfMdcLsF1zcwW0LTTuI4l+0zdMjKQAsoJA5sI13zdcXnK3s6w224Z+juP8AjUZr82pMthyc
-TJmJ2HJV/LKH1vzB8vpttexPv/kNz/41zXak/u5e5xM30F9hZzzqnYq7FXYq7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FUJrEXq6RexfzwSr96EZia+HFgyR74S+5v0suHLE/0h97xq2tJrhqRjYfaY9B
-nkePFKZ2e+yZBEbpitnHbrt8T92OZgwiA83EOUyQs/fKJt8GNSf3jfM/rzMDmDktyUYmRocyxnMR
-BJ5Bcn2hnR6HskRIlk3Pd0eF9o+2zk02SGPaNc+v7FfOkAfI0u1v/eUf62bPsYf4VD4/7kuw7M/v
-QkWd89K7FUPcGCL96SY5P2WQ0avtTJRiTydhpNbmgaibHceSRavqN5dzATytIqAcFPQbe1N/fNXr
-L4yO56GWQyAJ7kBmKxZr+TEPrfmboabbSTPv0+C3kf8A41zG1h/dFqz/AEF9aZoHVuxV2KuxV2Ku
-xV2KuxV2KuxV2KuxV2KuxV2KuxV2KtOodGU9GBB+RwSFikg0bYjf+U5rWP8A0AerAvSMbOP+av1+
-2chq+wZ4x+69Ue7r+38bO8w9pCZ9ex+z9jF7pWRmVgVZTRlIoQR4jObyxINHm7jGQdwls/fMGbmQ
-Y3N/ev8A6x/XmXHkHMCm4Jjagrsc2PZenyZdRAQF+ofe42uF4J/1T9y21khICiXhN3jlFAf9Vume
-jns/h/rPiXampy5DwSBgO7v+PX7kSXKHjKpQ9q9D8jmLPFKPN0MsRCB1r/eQfMZn9jf41D4/7kub
-2Z/ehIs756RC3V6kNVX4pPDsPnlkMZPubseEy3PJK5JHkYs5qTmUAByc2MQNgl93/ft9H6hnPaz+
-9k7uP0j+qPuUcxkvQ/yEh9T8yrF6D9zDcPv13iZNvf48w9cf3RaNT9D6mzRutdirsVdirsVdirsV
-dirsVdirsVdirsVdirsVdirsVdirsVSvXrLQ5bV59TKQogp9ZJCMvhRu/sN8wtZ2fh1A9Y37+v4+
-xzNHlzCQGOye55PfXmmm7kjtJXkgB/dyyLw5fRU/jnF9o+zubF6sf7yP+y+XX4fJ7bDiycIMhUu4
-bpDLGWnkPbkd/pw9l9j5M4Bl6Yd/6nMiNnMoEbAeB/Vnd6HTY8FRgKFhhqR+6l/VP3JcyqwoRUZ0
-5APN87y4o5BUhYXRS3EI4xvyj/31J8S/1GY09MDydHqewonfEa8juP1j7UHqF7HdBLW1jb6078BG
-rKUDVHjlOmjj0+YZJ7CN/cQ6OMTps4jOO5SnWYNV04rFc27QM/STqp/1WFR+OdfotRhzjihIS/Hc
-9HhhGW6S9c2LmOxVBXwAuWA8EP3qM5rUm8kve7sch7h9y/TNMv8AVL2KxsIGuLqY0jiQVJ9z4Ady
-emYeo1EMMDPIeGI6qTT6C/KXyDY+WNSjmuGF3rc8bpNKpPpQKVqUj/mJIoWP0Z5+Pa06zWjBjH7r
-f37An8Bq1GKRxmR2D13N86t2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV5D/zkPcX
-lpZaHe20hjaOaeNqdDzVGoR0P2O+TgLe69iIQnPLCQu4xPyv9bzHS/OdvLSO/X0X6eqtSh+Y6jCc
-fc9fqOypR3huO7qyOOSORA8bB0bdWU1Byt1UokGi232T8slDmGrMLgfcUrlmihjaSVgiLuWOwzoX
-ztJxc6nrU7WulIY7cbS3LbAD59vkN8p1GphhFyPwYZ88MIuZ+DKNG8vWWmQIqj1plPMzOBXl1qo/
-Z6ZzGr1ksxN7R7nldVm8bL4hG/RM7u4SRBFcRrJG1eSkAg9OqnbMHBHJilxYpGJb8Ofbdjmo+S9O
-ugZNPk+rS9eBq0Z+j7S/jnVaH2tyYzw6iNjv6/t/G7nwzfFiupaHqenMfrUJEdaCZfiQ/wCyH8c7
-PR9pYNQLxyvy6t8ZgtaJ5R1jzLq7W9hHxhjVDc3cm0US8RuzeJ7KNznK9t9rYNEJTynqaHU/jvd8
-dqHue0+XfLmj+WrI2ulqWmkAF3qDiksp8B/Ingozwzt72lza6fOoDkPx9/3OXh03WXNk/lVa6xGf
-BXP4UweyUb10fKMvuY9on90fgzfPWXnXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-Xln/ADkVbiTyVZzD7UOoR/8AAtFKD+NMnj5vZ+w861kh34z98Xznlz6qjNP1W/sH5W0pUH7UZ3Q/
-MYCAWjNpoZR6gyIefLSOyeS5gcTqNkTdWJ26n7OV8FF0Os7OMBsdjsqWHl3VdZeO81Xna2LUeG3o
-VZlPQgHoD4nfMjP2ziAIxETl39B+18d7Q1v5cmAFz+z9rMLW1t7WBYLeMRRJsqL0zQZMkpnikbLz
-GTJKZ4pGyq5Bgh7vqv05PH1bsfJDgkGoND45YQDzbQaRkEhaJ2uSBaLtLIwqN/2aftE+Ga7U5xp9
-8ZPidI/jkPNyceQn6uXezAQ21pCLSyhS2tVo4iiUICzAEswHfPMNf2pn1c+PLKy93pcQEQeq3MBy
-k68ogHVifCJiPvAzqvY4XrP8w/odf2n/AHXxZpnqjz7sVdirsVdirsVdirsVdirsVdirsVdirsVd
-irsVdirsVdirAPz0t/V/Li/f/fEtvJ98yp/xvk4c3pvZCddoQH84SH+xJ/Q+X8ufYnYqpXTlLd2B
-ow48T7hgcBF7OF2hHix10e22+oTRKI3Amh/32+9PkeozyiJMTxRPDLyfnLjsVLcIhY7W5/3mfhJ/
-viQ0J/1W75udN2yRtlH+cP0j9Tjz0gO8D8FCSN42KupVh2ObzHljMcUTYcKUDE0ULd9V+nL8fVsx
-8lvpwwQi5uyViP8Adxj7chH8vt4nMHV6/hPBj3n9kff+pyYwAFy5felV9fzXbjkAkSbRQr9lR/Xx
-OayMKJJNyPMtc5mXuemTfb/2K/8AERnmtU+kaf8Aux7lmLcn3k0H9JSnsISPvZc7D2KH+FSP+1n/
-AHUXW9qH92P636CzDPTnQuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KsU/NW2+sfl
-5rkdK8bf1O3+6nWTv/q5KPN3fs5k4dfiP9KvmKfJeXvtrsVUL4f6M/tT9YxcbWf3Zew25rBGa1qq
-mv0Z5TkHqPvfm/KKmfeqZBrRkGpOFEVwvrxdg32h8myWOcsZ4oHhLMy4hUhYUr+60u3VZ15TOa+l
-buKAHxc9wPDvm4x9oZ8seH6e+Q/R5tJhCG438mPXV1PdTNNO3Jz9wHYAdhk4YxEUHHlMyNlRyTF6
-vcKVlKnYgKCPcAZ5nI2bfTMAqAX2VlcXlwsEC8nbv2A8SfDMrRaHLqcgx4xcj9nmfJllyxxx4pM4
-0nSLfToOKfFMw/ey9z7D2z1vsfsbFosdR3mfql3/ALHnNTqZZTvy7kfm4cZ2KuxV2KuxV2KuxV2K
-uxV2KuxV2KuxV2KuxV2KuxV2KuxVRvLO1vbSazu4lmtrhGjmicVVkYUIOLZiyyxyE4mpRNgvGPOv
-/OPat6l55Um4ndjplw23yilP6n/4LLBk73v+yvbYioaof54/SP1fJ4zqmk6npV49lqVrJaXUf2op
-VKn5ivUeBG2WgvfafU480BPHISieoQE6gwSAivwsfuFcWOs/uj8PvesaawbTrVhuDDGQfmozyzUi
-skv6x+9+c9YKzTH9I/eicpcd2Kpfqv8Aur/ZfwzZ6L6T72jMl+ZjS7FXsaafcX2pPDAN61Zj0UU6
-nPP+zezsuryDHjHQWegHeX0g5o48dlmWmaXbafbiKIVc/wB5KerH+ntnr3ZXZWLRY+CH1dZdT+zu
-DoNRqJZZWUZmzaHYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqlfmDyxoPm
-GzNnrFnHdRb8GYUdCe8bijKfkcINOZou0M+lnx4pGJ+w+8ci8R85f8496zbM8vliYX9tL8AtZ2WO
-aPn8P2zRHVa1J2PscsGTve90ntliy4zDUDgnXMbxNfaPtcunTaYBps7K01iPq0rJXiWi+BitaGlV
-zzPWCs0/60vvfKdXkE805DrIn7W8xnHdiqXar9qP5H+GbTRfQfe0ZeaAzLaU48s+V9S8w34tbNeK
-LvPcNXhGvifEnsO+X6fTyyyoNuLCZmg+hLe1t7cMIUCBzyanc5v9HocOmjw4oiIegnklLmVXMtg7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqx7X/JGj6tylC/Vbxq
-n14gPiJ7uvRv1++arW9kYs+/0z7x+lqnhEve8513yjrOjsWmi9W27XMXxJ/su6/TnKazszLg3IuP
-ePxs4c8Rikua9rS7VftR/I/wzaaL6D72jLzTHyj5O1DzHecIv3VlER9ZuiNlH8q/zMfD782um0ss
-p25d6cOA5D5Pc9G0XT9GsI7Gwj9OFNyTuzMerOe5OdHixRxx4Yu4x4xAUEdljN2KuxV2KuxV2Kux
-V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVzKGBVgCpFCDuCDiRasS178u9L
-vuU1hSyuTvxUfumPuo+z/sfuzR6zsPHk3h6JfZ+z4NE8APLZh9r+WGs3usLb34+rWMG81wpDcwei
-xe5p3G3fwzD0PZWSJMZ7C+f6nE/KylLfk9V07TrLTrOKzsohDbwiiIv6z4k9znSwgIChydhGIiKC
-IybJ2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K
-uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku
-xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux
-V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV
-2KpKnnbye/mM+WV1mzbzAo5HSxPH9Y2XmR6deXLh8XHrx36YqnWKuxV2KuxV2KvOvzM/MO40mX9D
-6S4W+Khrq52JiDCoVQf2iN69h+Gz0OjE/VLk42fNWwY5pX5b+ctctl1K+1A25uAHj+sPJJKyncFh
-2B+eZWTW4sZ4QLruao4ZS3Jeh+RfLGoeXtOuLS9uluzJN6kTqW2XiBSjdNwc1mrzxyyBApycUDEU
-V3nHzDNpsEdtanjdTgkv1KINqj3J6Y6bCJmzyC5J0kGn+V9a1Wx/SDXZDy1MSyMzM9DSpau1cyZ5
-4QPDTWMZItf5X8x39rqSadfO0kMj+lSQ1aOStBue1dqYNRhiY8QTjmQaLP8ANa5DsVdirsVdirsV
-dirsVdirsVdirsVdirD/AM3vOVz5M/LbXfMloqteWMCra8hVRNPIkETMO4V5QxHfFXy3+Tv5Q3/5
-2DVvNHnLzJeyLbXH1ZArCSdpSqyMay8ljjAYBVVflSmKvo78oPyW0z8sm1dNN1W61C11T6txhugl
-YTb+rUqU4g8/W3+EdO+Kozz9+dn5ceRLlbPzBqgTUXUONPt0eecKejOqAhAe3MivbFW/IH51fl15
-8uJLTy9qfqahEpkewnjeCfgDQsquAHA78Cad8VTDX/zN8naB5r0ryrql40Gs60FOnw+m5R/UcxrW
-QDgtXWm5xVIJP+ch/wApv0+2hW+s/XL2NJnle1hllhUW0TzSfvQvBqJGfsE4q8r8oyf848eY/wA8
-7XzPo2ualceY9QuXubXS3hkjtjdekxZy7RKwWgLBS/2vb4cVfQ/mfzV5e8raPLrHmC+j0/TYaB55
-a7seioqhndj2VQTirzrSv+cp/wAmNR1FLEavJatIwSO4ureWKEkmgrIQQg93oMVep3eoWNnYy393
-cR29jBGZprqRgsSRqORdnJoFA3riryW8/wCcsPyWtr1rZdTuLhVbi1zDazGLrQkFgrEDxC/KuKvT
-vLnmbRfMmg2uvaPcfWdKvUMlvcFHjqqsVaqyBWFGUjcYq+f11K1v/NQ1LVCfqk93690KFj6fPkUA
-H+T8IzqeAxx8MedOr4rlZekP+d+libjHpc7QV+2zorU/1AGH/DZqx2VKvqDlfmh3M18t+aNJ8w2R
-utPkJ4ELNC4pJGx6BgCevYjbMDPgliNSb4ZBIWGF+eJjJ5hlQmoiSNB7VXn/AMbZn6QVBoyn1M/0
-dAmk2SDosEQ/4QZrcp9R97kR5B5r5h/c+Ybxo9isxcH3J5frza4d4D3ONP6nqiMGRWHRgD9+acuW
-3irsVdirsVdirsVdirsVdirsVdirsVSLz15SsvN/lDVfLV6xjg1OAxeqBUxuCGjkA78JFVqe2Kvi
-gQ/nN/zj75meZUMdjcuEaWhm0y+VKlQT8NGAJp9mQfLFX1J+VX58+X/P3lfUNSigaz1fR4Gn1PSi
-3IhVUsHieg5o3GnSoOx7EqvmT8jPM3k7UvzZ1Pzb+Zl9bVeGa6ga+HOJryWRFWikMP3cZbgtNtqd
-MVXef/MXkrRfz/0jzJ+X1xb/AKKWazup/qI4QiRpClzGqgDiJI/tAD9o4qyH/nNZ3j/MLQJI2KOm
-lqyOpoQRcykEEYq9y/LX/nHz8tPLel6Pf/olbrXo7ZWudQnklcvLNDxm/dF/S4EOy8eNKeJ3xV4L
-oFnZ2X/OZAtLOCO2tYdUuFighRY40X6o+yqoAA+WKrv+cuPM02rfmrp3le5uDb6NpMUAk3+FZLsh
-5Zj8oig+j3xVNf8AnIbUfyF1D8urSHyZPph1rS5oI7NbFAkxtqMro7cVLrvyPIk138cVV7u88y+a
-P+cNbZbP1bmbSpxBqCoCzNZWU7Fdh+zEnpE+y1xVL/8AnGTz1+TFhocvlrzbY2cGtXl0zDUtRt4p
-YJ43ChIjM6t6QXj9l6J3rU4q+sbTS9K0vQ/qOk20Nnp0MT/V7a2RY4UV6ueCpRQCWJ2wx5hB5Pnz
-yppcWq+Y9P0+aphnmAlA2JRfiYV91GdTqMhhjMg6zHG5APavOflTRbjypfRw2UMUlpA81q0aKjK0
-S8gAQBseNDmh0uomMgsncudlxgxOzzf8n76aDzctup/dXcMiSL2+Aeop+Y4/jm07SgDivuLjaY+p
-knnRSPMl2T+0IyP+Raj+GYul/uw25fqeiaVvpdn/AMYI/wDiAzWZPqPvcmPJ5p5n/wCO/ff8ZD+o
-ZtcH0BxZ8y9ShBEKA7EKKj6M1B5uWF+BXYq7FXYq7FXYq7FXYq7FXYq7FXYqg9X1jSdG0+TUdWvI
-dP0+EoJru5kWKJPUcRpzdyFWrsBucVYt5z85/lTN5R1A+YdX0y80KaBxPD68M3rLSvGJFYl5Kj4O
-O9emKvlz/nD7y/f6p5x8xuhePTjok9ldzKKjndyRiJd+9I3Yf6uKpH+Q9t5K0X80b7y9+ZdhaCJo
-prEfpNUMMF7FKpHMyfCnIIyhj7eOKvqZvJ//ADjnbXdpEdP8tR3dzNHDZRD6r6sk7sFjSJQeTMWI
-oBirwP8A5za/5T/Qv+2UP+omXFX2BpP/AByrL/jBF/xAYq+P9M/9bSf/ALatx/1BviqE/wCct9Dn
-0f8AN+y8wXNv9Y0zVLe3mUMPgka0IimhNf8AIVCfZsVe9aPoH/OMuraNBrFpp/lsWM8YkDSraxMg
-IqVkVyCjL0YHpirMtFv/AMs/L3lq0k0i70rTPLV9M0djLDLBFZzTvy5LE9RG7N6TdDvQ4q+av+cr
-PIn5T6Vpdl5g8tSWtlr17dLHLp1hJGYZoWjZmm9FDSPiVX4kABruKmuKvZ/+cXb3Vrz8ltEfUmaT
-02uIbSR92NtFO6RjfstCg9gMVYhbJ/hfz5Gt0pWLT7wczuf3JbZx/wA825DOmkfFw7dQ60eie/R6
-7518z6Pb+Ur6WK8hla7geG1EUisXaVSlV4k148qnNJpcEjlArkXNyzAiXnf5N6XNceZnvwp9Cyhb
-k/bnL8Cr93I/Rmz7TyAY66lxdNG5Wy78wLJ49TiuwP3c8YXl/lodx9xGYejlcab8w3tknlvWLGTQ
-bd3mRDbRiOYMQCvpim/zAzFz4yJnbm2QkKYMqnWPMZ9MErdXBanhGWqSfkubD6MfuDR9Unqmady3
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FUn83+U9E83eXbzy9rkTT6XfBBcRo7RsfSkWVCHQgijxqcVe
-Tp/zh3+T63AlP6SZK19A3S8KeFRGHp/ssVereUfJflfyhpC6T5c0+PT7FTzZI6lnegBeR2LO7UHV
-iTirGPzA/Ij8tfPd5+kNb05k1QqEbUbSRoJmUCg50qj0AoC6kjp0xVI/K3/OLX5T+XdZs9Yt4L27
-vtPnjurNrm5Yqk0LB434xCLlxZQaNUeNcVT78xPyP8h/mBqltqfmKK4kurSD6tCYJjEvp82fcAGp
-q5xVnkEKQQRwx/YiUItdzRRQYqwOH8j/ACHD+YR8/JFcf4hM73JkMx9L1HjMZ/d0pTi2Ksk83+Sv
-K/nDSG0jzJp8eoWLMHVH5KyONg8ciFXRt6VUjbbpirysf84efk+Lj1SNSMdSfq5uhw+VRHz/AOGx
-Vm2s/kt+X2r+R7DyTc2Ui+X9LlE9jBHPKHjlAkHL1CzM39++zVG/yxVhunf84hfk7aXaXEsF/fIp
-r9WuLo+mfn6SxP8A8Nir2SxsbKwsoLGxgS2s7ZFit7eJQiIiCiqqjYADFUj81+Q9E8ycZbkNBeov
-FLqKganZWB2Yf51zK0+rni5cmrJiEmKwfkdYLLWfVZZIq7okSo1P9Ys4/DMw9qnpFqGlHez7RNC0
-zRLBbHToRFCp5MerOx6s7dyc1uXLLIbk5EYCIoK2oadaahatbXSc4238CD2KnscEJmJsJIBYxJ+X
-NuXrHeuqfysgY/eCv6syxrT3NXg+ad6J5a07SavCDJOwo0z0rTwFOgzHy55T58mcYAJrlLN2KuxV
-2KuxV2KuxV2KuxV2KuxV2KuxVSurq3tYGnuHEcSU5Ofc0H45TqNRDDAzmaiGePHKcuGIssfn85oJ
-wIbfnAOrMaMfl1pnE5/baIyVjx3j8zRPu7vxydpDso8O53TXS9d0/Umkjt3PrRANLEw3UNWlabb0
-zqOy+18WtjxQsEcwR+AXC1Gknioy5HqmGbRxWJ33ni9h1DVra10d7yHRuDXkyTIpCOhfkEYVNAp2
-GKsj0zUbfUtOt7+2JMFzGskddiAwrQ+46HFUvi1u4fzdPopjT6vFZLdCTfmWaThTrSlMVTeWaKGJ
-pZnWOJAWeRyFVQOpJOwxVDWOsaTfsy2F7b3bIKuIJUkKg9K8CaYqrXl5bWdrLdXUiw28Kl5ZGNAA
-MVQGgeZNJ120FxYTKx3LwFlMqDkVUugJK8uNRXFUL5x80xeXtOSYem93cSCK2hlcICSRyc9+KV+L
-FUy0ee8uNPimu3t5JZAWElmzPAyk/CUZtzUYq681nSLKVYb2+t7aVxVI5pUjZhWlQGIJxVGAgio3
-B6HFVGe9s7evrzxw0AY+o6rQE0B3PjiqsCCAQag9Diqk15aKwVp4wxJUKWUGoNCOvjircd1bSOY4
-5UeRftIrAkU8QMVVMVdirsVdirsVdirsVdirsVdirsVdirsVSfzfA0/ly+jUFmKKwA3JKurdvlmp
-7cx8ejyDy+4guf2ZPh1ET+OTym9l1Cxsm/elWNBx68QffPMo6UcQ4hu9lEQyS5Mk/KBZDPqkrBip
-WIczWharGlfHO29mY7z7tv0um9oiKgPf+h6VnWvLvN4rDXdQ81ecLLTJ7e3iuTbRXk0yu7hHhdf3
-QUgVoT1xVnukaZDpel2unwEtFaxrGrN1PEbk08euKpBb/wDkzbv/ALZUf/J/FU28z6nBpegXt/Pb
-i6ihj+K3IqH5EKFbZtqtvt0xVh2kNcn8wNNe4Syhnm06R3isAwUIx5KJCdmOKs51iJZdJvEZA4aC
-T4SK1PE02+eKpF+WcVuvk3TpI0QSuj+o6gcmpK4+Ijc0xVDfmjFE+j6ezIrMNRt1BIBNGrUfTTFW
-YoiRoEjUIiiiqooAPAAYq84jg0e51HzsdZWF7uMn0zPx5pAIj6Zj5bj9n7PentirKfILXLeTtJNx
-X1PQAHLrwBIj/wCEpiqzULO1u/N9rHcxLNGtmzhHAZahyBUHY9cVZEAAAAKAdBirHDBC1nrEjIC4
-ncBiNxRq7HFUULeGC/0n0lCco5AxG1aRg7+PXFU5xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVxAIo
-dweoxVjuseRtF1NlZg8A5BpFiICsAakUNeP0ZpNT2Bp8sxIXHvrkf1fB2mm7Wy4hXP3p3Y2NnY2y
-WtnEsMEYokaig/tPuc2+LDHHERgKiHX5csskuKRslXyxrQ1vptjbXVzdwQrHc3hU3Mo6uUBC1+QO
-KonFUOun2S3zX4hUXjxiFp/2jGDyC/KuKqs8EFxC8E8aywyArJG4DKynqCDsRiqX6f5Z0DTpVmsb
-CG3lXlxkjUBvjADb9e2KpniqA03QdG0t5X0+zitWnp6piXjypWn68VVr/TbG/iSK8hWeON1lRW6B
-1+y30YqicVSzUfLPl/Urhbm/sIbmdAAJHUE0HQHxHzxVMlVVUKoCqooqjYADsMVUza25uRdGMfWF
-QxiTuFJrT78VVcVUfqdtwlT0xxmJaUfzE9ScVXG3hLxuUHKEERH+WooafRiqpirsVdirsVdirsVd
-irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
-rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir
-sVdirsVdir//2Q==
- </xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
- <rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
- </rdf:RDF>
- </x:xmpmeta>
-<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
-<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-
- <rdf:Description rdf:about=''
- xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:xap='http://ns.adobe.com/xap/1.0/'
- xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-20T12:01:29Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType='Resource'>
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq0XQMFLAM32VJ3NPDImcQQCdymjzbySHYq7FXMyqCzEBRuSdhgJAFlBN
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
irsVdirsVdirsVdir//Z</xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:dc='http://purl.org/dc/elements/1.1/'>
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
-
-</rdf:RDF>
-</x:xmpmeta>
- <?xpacket end='w'?>
- </metadata>
- <g id="_x30_1">
- <rect fill="none" width="352" height="352"/>
- </g>
- <g id="_x32_3">
- <path d="M82.136,289.623c-2.612,0-5.184-0.329-7.715-0.984v-4.279c2.772,0.754,5.231,1.131,7.378,1.131
- c2.035,0,3.625-0.457,4.771-1.37s1.718-2.211,1.718-3.894c0-1.586-0.473-2.832-1.418-3.738c-0.945-0.904-2.7-2.086-5.263-3.545
- c-2.804-1.569-4.695-3.151-5.672-4.746c-0.978-1.594-1.466-3.408-1.466-5.442c0-3.237,1.085-5.668,3.257-7.295
- c2.171-1.626,5.003-2.438,8.496-2.438c2.532,0,4.863,0.24,6.994,0.722v4.183c-2.259-0.514-4.358-0.771-6.297-0.771
- c-1.762,0-3.172,0.418-4.229,1.25c-1.058,0.834-1.586,1.988-1.586,3.462c0,1.426,0.46,2.567,1.382,3.425
- c0.922,0.857,2.496,1.902,4.723,3.137c3.076,1.715,5.135,3.373,6.177,4.975c1.041,1.603,1.562,3.404,1.562,5.408
- c0,3.604-1.069,6.309-3.208,8.11C89.601,288.723,86.398,289.623,82.136,289.623z"/>
- <path d="M119.364,288.396c-2.692,0.816-5.488,1.227-8.388,1.227c-4.198,0-7.346-1.21-9.445-3.629
- c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.03-7.742,3.088-10.395c2.059-2.65,4.931-3.979,8.616-3.979
- c3.396,0,5.98,1.127,7.75,3.377c1.77,2.252,2.656,6.414,2.656,12.486h-15.309c0,3.012,0.577,5.271,1.73,6.776
- s2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227L119.364,288.396L119.364,288.396z M105.184,273.04h8.892
- c0-3.302-0.353-5.576-1.057-6.826c-0.705-1.249-1.73-1.874-3.077-1.874c-1.506,0-2.651,0.674-3.437,2.02
- C105.719,267.705,105.28,269.932,105.184,273.04z"/>
- <path d="M125.805,289.238v-28.096h3.797l1.273,4.662c0.785-1.634,1.867-2.863,3.245-3.689c1.378-0.824,3.052-1.236,5.023-1.236
- c0.513,0,0.889,0.016,1.129,0.049v5.383c-0.897-0.063-1.554-0.097-1.971-0.097c-2.163,0-3.701,0.478-4.614,1.431
- s-1.37,2.527-1.37,4.724v16.87H125.805L125.805,289.238z"/>
- <path d="M145.104,289.238v-24.273h-3.101v-3.82h9.589v28.094H145.104L145.104,289.238z M148.348,257.635
- c-1.057,0-1.918-0.297-2.583-0.89s-0.997-1.378-0.997-2.354c0-0.978,0.332-1.764,0.997-2.355s1.526-0.889,2.583-0.889
- c1.025,0,1.883,0.305,2.572,0.912c0.689,0.608,1.033,1.387,1.033,2.332c0,0.992-0.336,1.781-1.009,2.366
- C150.271,257.342,149.405,257.635,148.348,257.635z"/>
- <path d="M178.197,288.396c-2.692,0.816-5.488,1.227-8.388,1.227c-4.198,0-7.346-1.21-9.445-3.629
- c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.029-7.742,3.088-10.395c2.059-2.65,4.931-3.979,8.616-3.979
- c3.396,0,5.98,1.127,7.75,3.377c1.771,2.252,2.656,6.414,2.656,12.486h-15.31c0,3.012,0.577,5.271,1.73,6.776
- c1.153,1.506,2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227v3.992H178.197z M164.018,273.04h8.893
- c0-3.302-0.353-5.576-1.058-6.826c-0.705-1.249-1.73-1.874-3.076-1.874c-1.506,0-2.652,0.674-3.437,2.02
- C164.555,267.705,164.114,269.932,164.018,273.04z"/>
- <path d="M190.693,289.623c-2.402,0-4.989-0.329-7.762-0.984v-4.184c2.739,0.834,4.998,1.25,6.776,1.25
- c1.649,0,2.894-0.324,3.726-0.975c0.834-0.647,1.25-1.621,1.25-2.92c0-0.769-0.231-1.484-0.697-2.149
- c-0.465-0.665-1.777-1.542-3.94-2.632c-1.458-0.754-2.624-1.446-3.497-2.079c-0.873-0.634-1.599-1.454-2.175-2.464
- c-0.577-1.01-0.865-2.268-0.865-3.772c0-2.5,0.921-4.454,2.765-5.864c1.843-1.41,4.205-2.115,7.09-2.115
- c2.498,0,4.773,0.313,6.824,0.938v3.989c-2.002-0.688-3.916-1.033-5.744-1.033c-1.488,0-2.604,0.305-3.34,0.913
- s-1.104,1.522-1.104,2.739c0,0.642,0.22,1.242,0.66,1.804s1.702,1.354,3.784,2.379c2.916,1.427,4.768,2.82,5.553,4.183
- c0.785,1.361,1.178,2.867,1.178,4.519c0,2.788-0.896,4.896-2.691,6.319C196.688,288.91,194.092,289.623,190.693,289.623z"/>
- <path fill="#808080" d="M112.728,302.891h4.747c1.875,0,3.24,0.438,4.098,1.316c0.857,0.876,1.286,2.284,1.286,4.223
- c0,1.899-0.515,3.357-1.544,4.375c-1.029,1.018-2.497,1.525-4.404,1.525h-1.598v6.479h-2.584L112.728,302.891L112.728,302.891z
- M115.312,304.607v7.979h1.454c1.169,0,2.031-0.312,2.583-0.931c0.553-0.622,0.829-1.674,0.829-3.155s-0.254-2.501-0.763-3.06
- c-0.509-0.555-1.304-0.834-2.385-0.834H115.312L115.312,304.607z"/>
- <rect x="135.898" y="301.786" fill="#808080" width="2.56" height="19.022"/>
- <path fill="#808080" d="M159.537,318.788c-0.865,1.476-2.211,2.212-4.038,2.212c-1.273,0-2.265-0.359-2.974-1.074
- c-0.709-0.72-1.063-1.722-1.063-3.012c0-1.33,0.365-2.322,1.094-2.975c0.729-0.653,1.602-1.063,2.62-1.226
- c1.017-0.166,2.255-0.247,3.713-0.247v-1.646c0-1.625-0.869-2.438-2.607-2.438c-1.001,0-2.223,0.214-3.665,0.638v-1.791
- c1.45-0.399,2.828-0.601,4.134-0.601c1.538,0,2.706,0.369,3.503,1.112c0.797,0.738,1.195,1.83,1.195,3.273v9.793h-1.394
- L159.537,318.788z M158.888,313.994h-1.43c-1.146,0-2.005,0.242-2.578,0.727c-0.573,0.485-0.859,1.209-0.859,2.17
- c0,0.785,0.174,1.371,0.523,1.762c0.348,0.387,0.871,0.582,1.568,0.582c0.881,0,1.564-0.28,2.049-0.842
- c0.485-0.562,0.727-1.322,0.727-2.283V313.994z"/>
- <path fill="#808080" d="M181.83,320.566c-1.074,0.289-2.083,0.434-3.028,0.434c-1.09,0-1.887-0.256-2.392-0.764
- c-0.505-0.51-0.757-1.319-0.757-2.434v-9.302h-1.838v-0.961l3.737-3.81h0.661v3.101h3.4v1.67h-3.4v8.882
- c0,0.76,0.124,1.262,0.372,1.508c0.248,0.244,0.625,0.365,1.13,0.365c0.521,0,1.227-0.115,2.115-0.349V320.566L181.83,320.566z"
- />
- <path fill="#808080" d="M198.402,301.594c0.81,0,1.595,0.096,2.354,0.287v1.742c-0.753-0.24-1.382-0.359-1.887-0.359
- c-0.802,0-1.306,0.254-1.515,0.762c-0.209,0.511-0.313,1.445-0.313,2.808h2.561v1.67h-2.561v12.306h-2.561v-12.306h-1.693v-1.67
- h1.693c0-2.123,0.324-3.526,0.975-4.211C196.107,301.936,197.089,301.594,198.402,301.594L198.402,301.594z"/>
- <path fill="#808080" d="M216.611,321c-1.883,0-3.293-0.617-4.229-1.852c-0.938-1.233-1.405-3.084-1.405-5.551
- c0-2.148,0.485-3.847,1.459-5.097c0.975-1.249,2.367-1.874,4.178-1.874c1.826,0,3.222,0.616,4.187,1.852
- c0.966,1.232,1.449,2.955,1.449,5.166c0,2.275-0.451,4.069-1.353,5.385C219.994,320.344,218.566,321,216.611,321z
- M216.611,319.354c0.986,0,1.729-0.445,2.229-1.34c0.501-0.893,0.752-2.39,0.752-4.488c0-1.481-0.256-2.726-0.769-3.731
- c-0.513-1.004-1.25-1.507-2.212-1.507c-0.978,0-1.719,0.451-2.223,1.357c-0.506,0.904-0.758,2.199-0.758,3.881
- c0,1.892,0.252,3.334,0.758,4.332C214.895,318.854,215.635,319.354,216.611,319.354z"/>
- <path opacity="0.65" fill="#808080" enable-background="new " d="M236.909,306.832l0.589,2.331
- c0.777-1.644,2.131-2.464,4.063-2.464c0.256,0,0.444,0.013,0.564,0.035v2.332c-0.201-0.016-0.501-0.023-0.9-0.023
- c-1.099,0-1.904,0.262-2.416,0.788c-0.514,0.522-0.77,1.343-0.77,2.456v8.521h-2.561v-13.977H236.909z"/>
- <path opacity="0.4" fill="#808080" enable-background="new " d="M272.073,320.809h-2.56v-9.627
- c0-0.929-0.177-1.629-0.523-2.096c-0.35-0.471-0.871-0.704-1.568-0.704c-0.896,0-1.588,0.353-2.072,1.058
- s-0.728,1.623-0.728,2.752v8.617h-2.56v-9.627c0-0.929-0.18-1.629-0.535-2.096c-0.356-0.471-0.891-0.704-1.604-0.704
- c-0.881,0-1.563,0.356-2.043,1.069s-0.721,1.627-0.721,2.74v8.615h-2.56v-13.976h1.43l0.517,2.065
- c0.856-1.514,2.163-2.271,3.918-2.271c0.929,0,1.699,0.177,2.313,0.528c0.611,0.353,1.063,0.881,1.353,1.586
- c0.793-1.409,2.063-2.114,3.81-2.114c1.379,0,2.412,0.372,3.101,1.117s1.034,1.858,1.034,3.341L272.073,320.809L272.073,320.809z
- "/>
- <path opacity="0.65" fill="#0F3AAC" enable-background="new " d="M228.208,242.369c2.563,0,4.944,0.191,7.146,0.576v5.576
- c-1.942-0.428-4.047-0.642-6.313-0.642c-3.354,0-5.977,1.181-7.867,3.541c-1.89,2.36-3.049,5.901-3.477,10.623
- c2.072-2.009,4.935-3.013,8.588-3.013c4.102,0,7.221,1.303,9.357,3.908c2.135,2.606,3.203,6.334,3.203,11.185
- c0,5.362-1.309,9.544-3.926,12.546c-2.615,3.001-6.393,4.502-11.327,4.502c-4.934,0-8.657-1.752-11.168-5.255
- c-2.51-3.504-3.765-9.313-3.765-17.433c0-7.989,1.677-14.34,5.029-19.051C217.046,244.725,221.885,242.369,228.208,242.369
- L228.208,242.369z M223.594,285.854c2.157,0,3.771-0.828,4.84-2.482c1.066-1.655,1.602-4.674,1.602-9.053
- c0-3.291-0.502-5.764-1.506-7.418c-1.004-1.656-2.51-2.483-4.52-2.483c-2.093,0-3.689,0.79-4.789,2.371
- c-1.102,1.581-1.65,3.76-1.65,6.536c0,3.332,0.225,5.849,0.673,7.547c0.448,1.699,1.116,2.953,2.003,3.766
- S222.248,285.854,223.594,285.854z"/>
- <path opacity="0.4" fill="#0F3AAC" enable-background="new " d="M260.316,242.369c4.935,0,8.662,1.752,11.184,5.255
- c2.521,3.504,3.781,9.688,3.781,18.554c0,9.721-1.276,16.316-3.829,19.789c-2.554,3.471-6.318,5.206-11.296,5.206
- c-4.358,0-7.647-1.153-9.87-3.461c-2.222-2.308-3.669-5.224-4.343-8.748c-0.672-3.524-1.008-7.786-1.008-12.786
- c0-8.693,1.291-14.836,3.877-18.425C251.396,244.164,255.232,242.369,260.316,242.369z M260.092,285.854
- c2.18,0,3.776-1.223,4.791-3.668c1.016-2.447,1.521-7.781,1.521-16.008c0-7.904-0.522-12.962-1.569-15.173
- s-2.628-3.315-4.743-3.315c-1.922,0-3.338,0.77-4.244,2.308c-0.908,1.538-1.476,3.546-1.699,6.024
- c-0.225,2.478-0.336,5.863-0.336,10.156c0,8.461,0.502,13.854,1.506,16.184C256.32,284.689,257.913,285.854,260.092,285.854z"/>
- <g>
- <polygon fill="#FFCC00" points="83.551,301.553 74.234,306.654 84.862,311.665 93.57,305.768 "/>
- <polygon fill="#FF9900" points="74.234,306.654 75.357,318.456 85.331,323.65 84.862,311.665 "/>
-
- <linearGradient id="XMLID_83_" gradientUnits="userSpaceOnUse" x1="-47.1431" y1="278.7324" x2="-37.1689" y2="278.7324" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_83_)" points="75.357,318.456 85.331,323.65 84.862,311.665 "/>
- <polygon fill="#F27C0E" points="93.57,305.768 84.862,311.665 85.331,323.65 93.57,317.564 "/>
- </g>
- <g>
- <polygon fill="#ABDD99" points="176.811,84.505 148.321,102.182 181.396,117.244 208.896,97.272 "/>
- <polygon fill="#46AB48" points="148.321,102.182 150.291,142.135 181.721,157.521 181.396,117.244 "/>
- <polygon fill="#16923B" points="208.896,97.272 181.396,117.244 181.721,157.521 208.245,134.602 "/>
- </g>
- <g>
- <polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
- <polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
- <polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
- </g>
- <g>
- <polygon fill="#F5F661" points="250.023,114.932 212.693,99.54 185.518,119.518 222.518,136.871 "/>
- <polygon fill="#FFF500" points="185.518,119.518 185.846,160.119 222.193,178.786 222.518,136.871 "/>
- <polygon fill="#FFCC00" points="222.518,136.871 222.193,178.786 248.391,154.223 250.023,114.932 "/>
- </g>
- <g>
- <polygon fill="#BFE230" points="153.919,143.233 183.227,122.111 220.314,139.299 191.896,163.205 "/>
- <polygon fill="#84C322" points="153.919,143.233 155.552,187.436 191.572,207.083 191.896,163.205 "/>
- <polygon fill="#5DAA3B" points="191.896,163.205 191.572,207.083 219.734,181.211 220.314,139.299 "/>
- </g>
- <g>
- <polygon fill="#99FF66" points="147.897,58.767 176.792,42.482 210.77,55.167 182.688,73.26 "/>
- <polygon fill="#66CC33" points="147.897,58.767 148.881,99.045 182.277,114.76 182.688,73.26 "/>
- <polygon fill="#669900" points="182.688,73.26 182.277,114.76 209.783,94.787 210.77,55.167 "/>
- </g>
- <g>
- <polygon fill="#CC66FF" points="185.191,74.515 222.688,91.457 251.824,70.171 212.861,56.423 "/>
- <polygon fill="#6F348E" points="222.927,91.133 221.895,133.763 249.195,111.758 251.742,70.171 "/>
- <polygon fill="#9933CC" points="184.781,74.515 184.287,116.015 221.895,133.763 222.927,91.133 "/>
- </g>
- <g>
- <polygon fill="#FFCC00" points="127.601,43.202 95.021,61.047 132.182,78.564 162.633,57.936 "/>
- <polygon fill="#FF9900" points="95.021,61.047 98.945,102.306 133.82,120.476 132.182,78.564 "/>
-
- <linearGradient id="XMLID_84_" gradientUnits="userSpaceOnUse" x1="-23.5552" y1="496.8701" x2="11.3198" y2="496.8701" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_84_)" points="98.945,102.306 133.82,120.476 132.182,78.564 "/>
- <polygon fill="#F27C0E" points="162.633,57.936 132.182,78.564 133.82,120.476 162.633,99.189 "/>
- </g>
- <g opacity="0.4">
- <polygon fill="#0099FF" points="152.426,97.736 154.061,139.652 192.048,159.625 192.048,116.076 "/>
- <polygon fill="#00CCFF" points="152.426,97.736 183.527,77.107 221.434,93.402 192.048,116.076 "/>
- <polygon fill="#0066FF" points="192.048,116.076 192.048,159.625 220.443,136.396 221.434,93.402 "/>
- </g>
- </g>
- </svg>
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim24.svg Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,416 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
- <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
- <!ENTITY ns_svg "http://www.w3.org/2000/svg">
- <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
-]>
-<svg xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
- width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
- <metadata>
- <x:xmpmeta x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
- <rdf:RDF xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
- <rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-04T09:30:28Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType="Resource">
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
-AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
-DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
-Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
-AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
-AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
-UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
-1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
-qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
-obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
-0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
-+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq0XQMFLAM32VJ3NPDImcQQCdymjzbySHYq7FXMyqCzEBRuSdhgJAFlBN
-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
-FXYq7FXYq7FXYq7FX//Z
- </xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
- <rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
- </rdf:RDF>
- </x:xmpmeta>
-<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
-<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-
- <rdf:Description rdf:about=''
- xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:xap='http://ns.adobe.com/xap/1.0/'
- xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-20T12:01:23Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType='Resource'>
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq0XQMFLAM32VJ3NPDImcQQCdymjzbySHYq7FXMyqCzEBRuSdhgJAFlBN
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
VS7VftR/I/wzaaL6D72jLzQGZbSnHlnyvqXmG/FrZrxRd57hq8I18T4k9h3y/T6eWWVBtxYTM0H0
Jb2tvbhhCgQOeTU7nN/o9Dh00eHFERD0E8kpcyq5lsHYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FWPa/5I0fVuUoX6reNU+vEB8RPd16N+v3zVa3sjFn3+mfeP0tU8
Il73nOu+UdZ0di00Xq23a5i+JP8AZd1+nOU1nZmXBuRce8fjZw54jFJc17Wl2q/aj+R/hm00X0H3
tGXmmPlHydqHmO84RfurKIj6zdEbKP5V/mY+H35tdNpZZTty704cByHye56Noun6NYR2NhH6cKbk
ndmY9Wc9yc6PFijjjwxdxjxiAoI7LGbsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir
sVdirsVdirsVdirsVdirmUMCrAFSKEHcEHEi1Ylr35d6XfcprCllcnfio/dMfdR9n/Y/dmj1nYeP
JvD0S+z9nwaJ4AeWzD7X8sNZvdYW3vx9WsYN5rhSG5g9Fi9zTuNu/hmHoeyskSYz2F8/1OJ+VlKW
/J6rp2nWWnWcVnZRCG3hFERf1nxJ7nOlhAQFDk7CMREUERk2TsVdirsVdirsVdirsVdirsVdirsV
dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd
irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir
sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVSVPO3k9/MZ8srrNm3mBRyOlieP6xs
vMj068uXD4uPXjv0xVOsVdirsVdirsVeKfnr+c975dn/AMNeXZBHqrIHv72gYwK4qsaAinqMp5cv
2RSm5233ZPZgyjxJ/T0He4Oq1Jj6Y82FeXvyR/M3zXYprmray1m14okhF5LNLcOjbqzAfZBBqATX
2zPzdq6fCeCMbruqnHhpckxZL2f8pfIes+TNFvNO1TUF1Bprn1oJELkKhRV40fp8QJ2zRdo6uGeY
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
irsVdirsVdirsVdirsVdirsVdirsVf/Z</xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:dc='http://purl.org/dc/elements/1.1/'>
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
-
-</rdf:RDF>
-</x:xmpmeta>
- <?xpacket end='w'?>
- </metadata>
- <g id="_x30_1">
- <rect fill="none" width="352" height="352"/>
- </g>
- <g id="_x32_4">
- <path d="M82.136,289.623c-2.612,0-5.184-0.329-7.715-0.984v-4.279c2.772,0.754,5.231,1.131,7.378,1.131
- c2.035,0,3.625-0.457,4.771-1.37s1.718-2.211,1.718-3.894c0-1.586-0.473-2.832-1.418-3.738c-0.945-0.904-2.7-2.086-5.263-3.545
- c-2.804-1.569-4.695-3.151-5.672-4.746c-0.978-1.594-1.466-3.408-1.466-5.442c0-3.237,1.085-5.668,3.257-7.295
- c2.171-1.626,5.003-2.438,8.496-2.438c2.532,0,4.863,0.24,6.994,0.722v4.183c-2.259-0.514-4.358-0.771-6.297-0.771
- c-1.762,0-3.172,0.418-4.229,1.25c-1.058,0.834-1.586,1.988-1.586,3.462c0,1.426,0.46,2.567,1.382,3.425
- c0.922,0.857,2.496,1.902,4.723,3.137c3.076,1.715,5.135,3.373,6.177,4.975c1.041,1.603,1.562,3.404,1.562,5.408
- c0,3.604-1.069,6.309-3.208,8.11C89.601,288.723,86.398,289.623,82.136,289.623z"/>
- <path d="M119.364,288.396c-2.692,0.816-5.488,1.227-8.388,1.227c-4.198,0-7.346-1.21-9.445-3.629
- c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.03-7.742,3.088-10.395c2.059-2.65,4.931-3.979,8.616-3.979
- c3.396,0,5.98,1.127,7.75,3.377c1.77,2.252,2.656,6.414,2.656,12.486h-15.309c0,3.012,0.577,5.271,1.73,6.776
- s2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227L119.364,288.396L119.364,288.396z M105.184,273.04h8.892
- c0-3.302-0.353-5.576-1.057-6.826c-0.705-1.249-1.73-1.874-3.077-1.874c-1.506,0-2.651,0.674-3.437,2.02
- C105.719,267.705,105.28,269.932,105.184,273.04z"/>
- <path d="M125.805,289.238v-28.096h3.797l1.273,4.662c0.785-1.634,1.867-2.863,3.245-3.689c1.378-0.824,3.052-1.236,5.023-1.236
- c0.513,0,0.889,0.016,1.129,0.049v5.383c-0.897-0.063-1.554-0.097-1.971-0.097c-2.163,0-3.701,0.478-4.614,1.431
- s-1.37,2.527-1.37,4.724v16.87H125.805L125.805,289.238z"/>
- <path d="M145.104,289.238v-24.273h-3.101v-3.82h9.589v28.094H145.104L145.104,289.238z M148.348,257.635
- c-1.057,0-1.918-0.297-2.583-0.89s-0.997-1.378-0.997-2.354c0-0.978,0.332-1.764,0.997-2.355s1.526-0.889,2.583-0.889
- c1.025,0,1.883,0.305,2.572,0.912c0.689,0.608,1.033,1.387,1.033,2.332c0,0.992-0.336,1.781-1.009,2.366
- C150.271,257.342,149.405,257.635,148.348,257.635z"/>
- <path d="M178.197,288.396c-2.692,0.816-5.488,1.227-8.388,1.227c-4.198,0-7.346-1.21-9.445-3.629
- c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.029-7.742,3.088-10.395c2.059-2.65,4.931-3.979,8.616-3.979
- c3.396,0,5.98,1.127,7.75,3.377c1.771,2.252,2.656,6.414,2.656,12.486h-15.31c0,3.012,0.577,5.271,1.73,6.776
- c1.153,1.506,2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227v3.992H178.197z M164.018,273.04h8.893
- c0-3.302-0.353-5.576-1.058-6.826c-0.705-1.249-1.73-1.874-3.076-1.874c-1.506,0-2.652,0.674-3.437,2.02
- C164.555,267.705,164.114,269.932,164.018,273.04z"/>
- <path d="M190.693,289.623c-2.402,0-4.989-0.329-7.762-0.984v-4.184c2.739,0.834,4.998,1.25,6.776,1.25
- c1.649,0,2.894-0.324,3.726-0.975c0.834-0.647,1.25-1.621,1.25-2.92c0-0.769-0.231-1.484-0.697-2.149
- c-0.465-0.665-1.777-1.542-3.94-2.632c-1.458-0.754-2.624-1.446-3.497-2.079c-0.873-0.634-1.599-1.454-2.175-2.464
- c-0.577-1.01-0.865-2.268-0.865-3.772c0-2.5,0.921-4.454,2.765-5.864c1.843-1.41,4.205-2.115,7.09-2.115
- c2.498,0,4.773,0.313,6.824,0.938v3.989c-2.002-0.688-3.916-1.033-5.744-1.033c-1.488,0-2.604,0.305-3.34,0.913
- s-1.104,1.522-1.104,2.739c0,0.642,0.22,1.242,0.66,1.804s1.702,1.354,3.784,2.379c2.916,1.427,4.768,2.82,5.553,4.183
- c0.785,1.361,1.178,2.867,1.178,4.519c0,2.788-0.896,4.896-2.691,6.319C196.688,288.91,194.092,289.623,190.693,289.623z"/>
- <path fill="#808080" d="M112.728,302.891h4.747c1.875,0,3.24,0.438,4.098,1.316c0.857,0.876,1.286,2.284,1.286,4.223
- c0,1.899-0.515,3.357-1.544,4.375c-1.029,1.018-2.497,1.525-4.404,1.525h-1.598v6.479h-2.584L112.728,302.891L112.728,302.891z
- M115.312,304.607v7.979h1.454c1.169,0,2.031-0.312,2.583-0.931c0.553-0.622,0.829-1.674,0.829-3.155s-0.254-2.501-0.763-3.06
- c-0.509-0.555-1.304-0.834-2.385-0.834H115.312L115.312,304.607z"/>
- <rect x="135.898" y="301.786" fill="#808080" width="2.56" height="19.022"/>
- <path fill="#808080" d="M159.537,318.788c-0.865,1.476-2.211,2.212-4.038,2.212c-1.273,0-2.265-0.359-2.974-1.074
- c-0.709-0.72-1.063-1.722-1.063-3.012c0-1.33,0.365-2.322,1.094-2.975c0.729-0.653,1.602-1.063,2.62-1.226
- c1.017-0.166,2.255-0.247,3.713-0.247v-1.646c0-1.625-0.869-2.438-2.607-2.438c-1.001,0-2.223,0.214-3.665,0.638v-1.791
- c1.45-0.399,2.828-0.601,4.134-0.601c1.538,0,2.706,0.369,3.503,1.112c0.797,0.738,1.195,1.83,1.195,3.273v9.793h-1.394
- L159.537,318.788z M158.888,313.994h-1.43c-1.146,0-2.005,0.242-2.578,0.727c-0.573,0.485-0.859,1.209-0.859,2.17
- c0,0.785,0.174,1.371,0.523,1.762c0.348,0.387,0.871,0.582,1.568,0.582c0.881,0,1.564-0.28,2.049-0.842
- c0.485-0.562,0.727-1.322,0.727-2.283V313.994z"/>
- <path fill="#808080" d="M181.83,320.566c-1.074,0.289-2.083,0.434-3.028,0.434c-1.09,0-1.887-0.256-2.392-0.764
- c-0.505-0.51-0.757-1.319-0.757-2.434v-9.302h-1.838v-0.961l3.737-3.81h0.661v3.101h3.4v1.67h-3.4v8.882
- c0,0.76,0.124,1.262,0.372,1.508c0.248,0.244,0.625,0.365,1.13,0.365c0.521,0,1.227-0.115,2.115-0.349V320.566L181.83,320.566z"
- />
- <path fill="#808080" d="M198.402,301.594c0.81,0,1.595,0.096,2.354,0.287v1.742c-0.753-0.24-1.382-0.359-1.887-0.359
- c-0.802,0-1.306,0.254-1.515,0.762c-0.209,0.511-0.313,1.445-0.313,2.808h2.561v1.67h-2.561v12.306h-2.561v-12.306h-1.693v-1.67
- h1.693c0-2.123,0.324-3.526,0.975-4.211C196.107,301.936,197.089,301.594,198.402,301.594L198.402,301.594z"/>
- <path fill="#808080" d="M216.611,321c-1.883,0-3.293-0.617-4.229-1.852c-0.938-1.233-1.405-3.084-1.405-5.551
- c0-2.148,0.485-3.847,1.459-5.097c0.975-1.249,2.367-1.874,4.178-1.874c1.826,0,3.222,0.616,4.187,1.852
- c0.966,1.232,1.449,2.955,1.449,5.166c0,2.275-0.451,4.069-1.353,5.385C219.994,320.344,218.566,321,216.611,321z
- M216.611,319.354c0.986,0,1.729-0.445,2.229-1.34c0.501-0.893,0.752-2.39,0.752-4.488c0-1.481-0.256-2.726-0.769-3.731
- c-0.513-1.004-1.25-1.507-2.212-1.507c-0.978,0-1.719,0.451-2.223,1.357c-0.506,0.904-0.758,2.199-0.758,3.881
- c0,1.892,0.252,3.334,0.758,4.332C214.895,318.854,215.635,319.354,216.611,319.354z"/>
- <path fill="#808080" d="M236.909,306.832l0.589,2.331c0.777-1.644,2.131-2.464,4.063-2.464c0.256,0,0.444,0.013,0.564,0.035
- v2.332c-0.201-0.016-0.501-0.023-0.9-0.023c-1.099,0-1.904,0.262-2.416,0.788c-0.514,0.522-0.77,1.343-0.77,2.456v8.521h-2.561
- v-13.977H236.909z"/>
- <path opacity="0.65" fill="#808080" enable-background="new " d="M272.073,320.809h-2.56v-9.627
- c0-0.929-0.177-1.629-0.523-2.096c-0.35-0.471-0.871-0.704-1.568-0.704c-0.896,0-1.588,0.353-2.072,1.058
- s-0.728,1.623-0.728,2.752v8.617h-2.56v-9.627c0-0.929-0.18-1.629-0.535-2.096c-0.356-0.471-0.891-0.704-1.604-0.704
- c-0.881,0-1.563,0.356-2.043,1.069s-0.721,1.627-0.721,2.74v8.615h-2.56v-13.976h1.43l0.517,2.065
- c0.856-1.514,2.163-2.271,3.918-2.271c0.929,0,1.699,0.177,2.313,0.528c0.611,0.353,1.063,0.881,1.353,1.586
- c0.793-1.409,2.063-2.114,3.81-2.114c1.379,0,2.412,0.372,3.101,1.117s1.034,1.858,1.034,3.341L272.073,320.809L272.073,320.809z
- "/>
- <path fill="#0F3AAC" d="M228.208,242.369c2.563,0,4.944,0.191,7.146,0.576v5.576c-1.942-0.428-4.047-0.642-6.313-0.642
- c-3.354,0-5.977,1.181-7.867,3.541c-1.89,2.36-3.049,5.901-3.477,10.623c2.072-2.009,4.935-3.013,8.588-3.013
- c4.102,0,7.221,1.303,9.357,3.908c2.135,2.606,3.203,6.334,3.203,11.185c0,5.362-1.309,9.544-3.926,12.546
- c-2.615,3.001-6.393,4.502-11.327,4.502c-4.934,0-8.657-1.752-11.168-5.255c-2.51-3.504-3.765-9.313-3.765-17.433
- c0-7.989,1.677-14.34,5.029-19.051C217.046,244.725,221.885,242.369,228.208,242.369L228.208,242.369z M223.594,285.854
- c2.157,0,3.771-0.828,4.84-2.482c1.066-1.655,1.602-4.674,1.602-9.053c0-3.291-0.502-5.764-1.506-7.418
- c-1.004-1.656-2.51-2.483-4.52-2.483c-2.093,0-3.689,0.79-4.789,2.371c-1.102,1.581-1.65,3.76-1.65,6.536
- c0,3.332,0.225,5.849,0.673,7.547c0.448,1.699,1.116,2.953,2.003,3.766S222.248,285.854,223.594,285.854z"/>
- <path opacity="0.65" fill="#0F3AAC" enable-background="new " d="M260.316,242.369c4.935,0,8.662,1.752,11.184,5.255
- c2.521,3.504,3.781,9.688,3.781,18.554c0,9.721-1.276,16.316-3.829,19.789c-2.554,3.471-6.318,5.206-11.296,5.206
- c-4.358,0-7.647-1.153-9.87-3.461c-2.222-2.308-3.669-5.224-4.343-8.748c-0.672-3.524-1.008-7.786-1.008-12.786
- c0-8.693,1.291-14.836,3.877-18.425C251.396,244.164,255.232,242.369,260.316,242.369z M260.092,285.854
- c2.18,0,3.776-1.223,4.791-3.668c1.016-2.447,1.521-7.781,1.521-16.008c0-7.904-0.522-12.962-1.569-15.173
- s-2.628-3.315-4.743-3.315c-1.922,0-3.338,0.77-4.244,2.308c-0.908,1.538-1.476,3.546-1.699,6.024
- c-0.225,2.478-0.336,5.863-0.336,10.156c0,8.461,0.502,13.854,1.506,16.184C256.32,284.689,257.913,285.854,260.092,285.854z"/>
- <g>
- <polygon fill="#FFCC00" points="83.551,301.553 74.234,306.654 84.862,311.665 93.57,305.768 "/>
- <polygon fill="#FF9900" points="74.234,306.654 75.357,318.456 85.331,323.65 84.862,311.665 "/>
-
- <linearGradient id="XMLID_79_" gradientUnits="userSpaceOnUse" x1="-47.1431" y1="278.7324" x2="-37.1689" y2="278.7324" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_79_)" points="75.357,318.456 85.331,323.65 84.862,311.665 "/>
- <polygon fill="#F27C0E" points="93.57,305.768 84.862,311.665 85.331,323.65 93.57,317.564 "/>
- </g>
- <g>
- <polygon fill="#ABDD99" points="176.811,84.505 148.321,102.182 181.396,117.244 208.896,97.272 "/>
- <polygon fill="#46AB48" points="148.321,102.182 150.291,142.135 181.721,157.521 181.396,117.244 "/>
- <polygon fill="#16923B" points="208.896,97.272 181.396,117.244 181.721,157.521 208.245,134.602 "/>
- </g>
- <g>
- <polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
- <polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
- <polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
- </g>
- <g>
- <polygon fill="#F5F661" points="250.023,114.932 212.693,99.54 185.518,119.518 222.518,136.871 "/>
- <polygon fill="#FFF500" points="185.518,119.518 185.846,160.119 222.193,178.786 222.518,136.871 "/>
- <polygon fill="#FFCC00" points="222.518,136.871 222.193,178.786 248.391,154.223 250.023,114.932 "/>
- </g>
- <g>
- <polygon fill="#BFE230" points="153.919,143.233 183.227,122.111 220.314,139.299 191.896,163.205 "/>
- <polygon fill="#84C322" points="153.919,143.233 155.552,187.436 191.572,207.083 191.896,163.205 "/>
- <polygon fill="#5DAA3B" points="191.896,163.205 191.572,207.083 219.734,181.211 220.314,139.299 "/>
- </g>
- <g>
- <polygon fill="#99FF66" points="147.897,58.767 176.792,42.482 210.77,55.167 182.688,73.26 "/>
- <polygon fill="#66CC33" points="147.897,58.767 148.881,99.045 182.277,114.76 182.688,73.26 "/>
- <polygon fill="#669900" points="182.688,73.26 182.277,114.76 209.783,94.787 210.77,55.167 "/>
- </g>
- <g>
- <polygon fill="#CC66FF" points="185.191,74.515 222.688,91.457 251.824,70.171 212.861,56.423 "/>
- <polygon fill="#6F348E" points="222.927,91.133 221.895,133.763 249.195,111.758 251.742,70.171 "/>
- <polygon fill="#9933CC" points="184.781,74.515 184.287,116.015 221.895,133.763 222.927,91.133 "/>
- </g>
- <g>
- <polygon fill="#FFCC00" points="127.601,43.202 95.021,61.047 132.182,78.564 162.633,57.936 "/>
- <polygon fill="#FF9900" points="95.021,61.047 98.945,102.306 133.82,120.476 132.182,78.564 "/>
-
- <linearGradient id="XMLID_80_" gradientUnits="userSpaceOnUse" x1="-23.5552" y1="496.8701" x2="11.3198" y2="496.8701" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_80_)" points="98.945,102.306 133.82,120.476 132.182,78.564 "/>
- <polygon fill="#F27C0E" points="162.633,57.936 132.182,78.564 133.82,120.476 162.633,99.189 "/>
- </g>
- <g opacity="0.65">
- <polygon fill="#0099FF" points="152.426,97.736 154.061,139.652 192.048,159.625 192.048,116.076 "/>
- <polygon fill="#00CCFF" points="152.426,97.736 183.527,77.107 221.434,93.402 192.048,116.076 "/>
- <polygon fill="#0066FF" points="192.048,116.076 192.048,159.625 220.443,136.396 221.434,93.402 "/>
- </g>
- </g>
- </svg>
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim25.svg Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,419 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
- <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
- <!ENTITY ns_svg "http://www.w3.org/2000/svg">
- <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
-]>
-<svg xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
- width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
- <metadata>
- <x:xmpmeta x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
- <rdf:RDF xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
- <rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-04T09:30:40Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType="Resource">
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
-AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
-DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
-Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
-AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
-AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
-UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
-1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
-qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
-obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
-0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
-+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq0XQMFLAM32VJ3NPDImcQQCdymjzbySHYq7FXMyqCzEBRuSdhgJAFlBN
-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
-V2KuxV2KuxV2Kv8A/9k=
- </xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
- <rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
- </rdf:RDF>
- </x:xmpmeta>
-<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
-<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-
- <rdf:Description rdf:about=''
- xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:xap='http://ns.adobe.com/xap/1.0/'
- xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-20T12:01:18Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType='Resource'>
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq0XQMFLAM32VJ3NPDImcQQCdymjzbySHYq7FXMyqCzEBRuSdhgJAFlBN
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
KuxV2KuxV2KuxV2Kv//Z</xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:dc='http://purl.org/dc/elements/1.1/'>
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
-
-</rdf:RDF>
-</x:xmpmeta>
- <?xpacket end='w'?>
- </metadata>
- <g id="_x30_1">
- <rect fill="none" width="352" height="352"/>
- </g>
- <g id="_x32_5">
- <path d="M82.136,289.623c-2.612,0-5.184-0.329-7.715-0.984v-4.279c2.772,0.754,5.231,1.131,7.378,1.131
- c2.035,0,3.625-0.457,4.771-1.37s1.718-2.211,1.718-3.894c0-1.586-0.473-2.832-1.418-3.738c-0.945-0.904-2.7-2.086-5.263-3.545
- c-2.804-1.569-4.695-3.151-5.672-4.746c-0.978-1.594-1.466-3.408-1.466-5.442c0-3.237,1.085-5.668,3.257-7.295
- c2.171-1.626,5.003-2.438,8.496-2.438c2.532,0,4.863,0.24,6.994,0.722v4.183c-2.259-0.514-4.358-0.771-6.297-0.771
- c-1.762,0-3.172,0.418-4.229,1.25c-1.058,0.834-1.586,1.988-1.586,3.462c0,1.426,0.46,2.567,1.382,3.425
- c0.922,0.857,2.496,1.902,4.723,3.137c3.076,1.715,5.135,3.373,6.177,4.975c1.041,1.603,1.562,3.404,1.562,5.408
- c0,3.604-1.069,6.309-3.208,8.11C89.601,288.723,86.398,289.623,82.136,289.623z"/>
- <path d="M119.364,288.396c-2.692,0.816-5.488,1.227-8.388,1.227c-4.198,0-7.346-1.21-9.445-3.629
- c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.03-7.742,3.088-10.395c2.059-2.65,4.931-3.979,8.616-3.979
- c3.396,0,5.98,1.127,7.75,3.377c1.77,2.252,2.656,6.414,2.656,12.486h-15.309c0,3.012,0.577,5.271,1.73,6.776
- s2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227L119.364,288.396L119.364,288.396z M105.184,273.04h8.892
- c0-3.302-0.353-5.576-1.057-6.826c-0.705-1.249-1.73-1.874-3.077-1.874c-1.506,0-2.651,0.674-3.437,2.02
- C105.719,267.705,105.28,269.932,105.184,273.04z"/>
- <path d="M125.805,289.238v-28.096h3.797l1.273,4.662c0.785-1.634,1.867-2.863,3.245-3.689c1.378-0.824,3.052-1.236,5.023-1.236
- c0.513,0,0.889,0.016,1.129,0.049v5.383c-0.897-0.063-1.554-0.097-1.971-0.097c-2.163,0-3.701,0.478-4.614,1.431
- s-1.37,2.527-1.37,4.724v16.87H125.805L125.805,289.238z"/>
- <path d="M145.104,289.238v-24.273h-3.101v-3.82h9.589v28.094H145.104L145.104,289.238z M148.348,257.635
- c-1.057,0-1.918-0.297-2.583-0.89s-0.997-1.378-0.997-2.354c0-0.978,0.332-1.764,0.997-2.355s1.526-0.889,2.583-0.889
- c1.025,0,1.883,0.305,2.572,0.912c0.689,0.608,1.033,1.387,1.033,2.332c0,0.992-0.336,1.781-1.009,2.366
- C150.271,257.342,149.405,257.635,148.348,257.635z"/>
- <path d="M178.197,288.396c-2.692,0.816-5.488,1.227-8.388,1.227c-4.198,0-7.346-1.21-9.445-3.629
- c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.029-7.742,3.088-10.395c2.059-2.65,4.931-3.979,8.616-3.979
- c3.396,0,5.98,1.127,7.75,3.377c1.771,2.252,2.656,6.414,2.656,12.486h-15.31c0,3.012,0.577,5.271,1.73,6.776
- c1.153,1.506,2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227v3.992H178.197z M164.018,273.04h8.893
- c0-3.302-0.353-5.576-1.058-6.826c-0.705-1.249-1.73-1.874-3.076-1.874c-1.506,0-2.652,0.674-3.437,2.02
- C164.555,267.705,164.114,269.932,164.018,273.04z"/>
- <path d="M190.693,289.623c-2.402,0-4.989-0.329-7.762-0.984v-4.184c2.739,0.834,4.998,1.25,6.776,1.25
- c1.649,0,2.894-0.324,3.726-0.975c0.834-0.647,1.25-1.621,1.25-2.92c0-0.769-0.231-1.484-0.697-2.149
- c-0.465-0.665-1.777-1.542-3.94-2.632c-1.458-0.754-2.624-1.446-3.497-2.079c-0.873-0.634-1.599-1.454-2.175-2.464
- c-0.577-1.01-0.865-2.268-0.865-3.772c0-2.5,0.921-4.454,2.765-5.864c1.843-1.41,4.205-2.115,7.09-2.115
- c2.498,0,4.773,0.313,6.824,0.938v3.989c-2.002-0.688-3.916-1.033-5.744-1.033c-1.488,0-2.604,0.305-3.34,0.913
- s-1.104,1.522-1.104,2.739c0,0.642,0.22,1.242,0.66,1.804s1.702,1.354,3.784,2.379c2.916,1.427,4.768,2.82,5.553,4.183
- c0.785,1.361,1.178,2.867,1.178,4.519c0,2.788-0.896,4.896-2.691,6.319C196.688,288.91,194.092,289.623,190.693,289.623z"/>
- <path fill="#808080" d="M112.728,302.891h4.747c1.875,0,3.24,0.438,4.098,1.316c0.857,0.876,1.286,2.284,1.286,4.223
- c0,1.899-0.515,3.357-1.544,4.375c-1.029,1.018-2.497,1.525-4.404,1.525h-1.598v6.479h-2.584L112.728,302.891L112.728,302.891z
- M115.312,304.607v7.979h1.454c1.169,0,2.031-0.312,2.583-0.931c0.553-0.622,0.829-1.674,0.829-3.155s-0.254-2.501-0.763-3.06
- c-0.509-0.555-1.304-0.834-2.385-0.834H115.312L115.312,304.607z"/>
- <rect x="135.898" y="301.786" fill="#808080" width="2.56" height="19.022"/>
- <path fill="#808080" d="M159.537,318.788c-0.865,1.476-2.211,2.212-4.038,2.212c-1.273,0-2.265-0.359-2.974-1.074
- c-0.709-0.72-1.063-1.722-1.063-3.012c0-1.33,0.365-2.322,1.094-2.975c0.729-0.653,1.602-1.063,2.62-1.226
- c1.017-0.166,2.255-0.247,3.713-0.247v-1.646c0-1.625-0.869-2.438-2.607-2.438c-1.001,0-2.223,0.214-3.665,0.638v-1.791
- c1.45-0.399,2.828-0.601,4.134-0.601c1.538,0,2.706,0.369,3.503,1.112c0.797,0.738,1.195,1.83,1.195,3.273v9.793h-1.394
- L159.537,318.788z M158.888,313.994h-1.43c-1.146,0-2.005,0.242-2.578,0.727c-0.573,0.485-0.859,1.209-0.859,2.17
- c0,0.785,0.174,1.371,0.523,1.762c0.348,0.387,0.871,0.582,1.568,0.582c0.881,0,1.564-0.28,2.049-0.842
- c0.485-0.562,0.727-1.322,0.727-2.283V313.994z"/>
- <path fill="#808080" d="M181.83,320.566c-1.074,0.289-2.083,0.434-3.028,0.434c-1.09,0-1.887-0.256-2.392-0.764
- c-0.505-0.51-0.757-1.319-0.757-2.434v-9.302h-1.838v-0.961l3.737-3.81h0.661v3.101h3.4v1.67h-3.4v8.882
- c0,0.76,0.124,1.262,0.372,1.508c0.248,0.244,0.625,0.365,1.13,0.365c0.521,0,1.227-0.115,2.115-0.349V320.566L181.83,320.566z"
- />
- <path fill="#808080" d="M198.402,301.594c0.81,0,1.595,0.096,2.354,0.287v1.742c-0.753-0.24-1.382-0.359-1.887-0.359
- c-0.802,0-1.306,0.254-1.515,0.762c-0.209,0.511-0.313,1.445-0.313,2.808h2.561v1.67h-2.561v12.306h-2.561v-12.306h-1.693v-1.67
- h1.693c0-2.123,0.324-3.526,0.975-4.211C196.107,301.936,197.089,301.594,198.402,301.594L198.402,301.594z"/>
- <path fill="#808080" d="M216.611,321c-1.883,0-3.293-0.617-4.229-1.852c-0.938-1.233-1.405-3.084-1.405-5.551
- c0-2.148,0.485-3.847,1.459-5.097c0.975-1.249,2.367-1.874,4.178-1.874c1.826,0,3.222,0.616,4.187,1.852
- c0.966,1.232,1.449,2.955,1.449,5.166c0,2.275-0.451,4.069-1.353,5.385C219.994,320.344,218.566,321,216.611,321z
- M216.611,319.354c0.986,0,1.729-0.445,2.229-1.34c0.501-0.893,0.752-2.39,0.752-4.488c0-1.481-0.256-2.726-0.769-3.731
- c-0.513-1.004-1.25-1.507-2.212-1.507c-0.978,0-1.719,0.451-2.223,1.357c-0.506,0.904-0.758,2.199-0.758,3.881
- c0,1.892,0.252,3.334,0.758,4.332C214.895,318.854,215.635,319.354,216.611,319.354z"/>
- <path fill="#808080" d="M236.909,306.832l0.589,2.331c0.777-1.644,2.131-2.464,4.063-2.464c0.256,0,0.444,0.013,0.564,0.035
- v2.332c-0.201-0.016-0.501-0.023-0.9-0.023c-1.099,0-1.904,0.262-2.416,0.788c-0.514,0.522-0.77,1.343-0.77,2.456v8.521h-2.561
- v-13.977H236.909z"/>
- <path fill="#808080" d="M272.073,320.809h-2.56v-9.627c0-0.929-0.177-1.629-0.523-2.096c-0.35-0.471-0.871-0.704-1.568-0.704
- c-0.896,0-1.588,0.353-2.072,1.058s-0.728,1.623-0.728,2.752v8.617h-2.56v-9.627c0-0.929-0.18-1.629-0.535-2.096
- c-0.356-0.471-0.891-0.704-1.604-0.704c-0.881,0-1.563,0.356-2.043,1.069s-0.721,1.627-0.721,2.74v8.615h-2.56v-13.976h1.43
- l0.517,2.065c0.856-1.514,2.163-2.271,3.918-2.271c0.929,0,1.699,0.177,2.313,0.528c0.611,0.353,1.063,0.881,1.353,1.586
- c0.793-1.409,2.063-2.114,3.81-2.114c1.379,0,2.412,0.372,3.101,1.117s1.034,1.858,1.034,3.341L272.073,320.809L272.073,320.809z
- "/>
- <path fill="#0F3AAC" d="M228.208,242.369c2.563,0,4.944,0.191,7.146,0.576v5.576c-1.942-0.428-4.047-0.642-6.313-0.642
- c-3.354,0-5.977,1.181-7.867,3.541c-1.89,2.36-3.049,5.901-3.477,10.623c2.072-2.009,4.935-3.013,8.588-3.013
- c4.102,0,7.221,1.303,9.357,3.908c2.135,2.606,3.203,6.334,3.203,11.185c0,5.362-1.309,9.544-3.926,12.546
- c-2.615,3.001-6.393,4.502-11.327,4.502c-4.934,0-8.657-1.752-11.168-5.255c-2.51-3.504-3.765-9.313-3.765-17.433
- c0-7.989,1.677-14.34,5.029-19.051C217.046,244.725,221.885,242.369,228.208,242.369L228.208,242.369z M223.594,285.854
- c2.157,0,3.771-0.828,4.84-2.482c1.066-1.655,1.602-4.674,1.602-9.053c0-3.291-0.502-5.764-1.506-7.418
- c-1.004-1.656-2.51-2.483-4.52-2.483c-2.093,0-3.689,0.79-4.789,2.371c-1.102,1.581-1.65,3.76-1.65,6.536
- c0,3.332,0.225,5.849,0.673,7.547c0.448,1.699,1.116,2.953,2.003,3.766S222.248,285.854,223.594,285.854z"/>
- <path fill="#0F3AAC" d="M260.316,242.369c4.935,0,8.662,1.752,11.184,5.255c2.521,3.504,3.781,9.688,3.781,18.554
- c0,9.721-1.276,16.316-3.829,19.789c-2.554,3.471-6.318,5.206-11.296,5.206c-4.358,0-7.647-1.153-9.87-3.461
- c-2.222-2.308-3.669-5.224-4.343-8.748c-0.672-3.524-1.008-7.786-1.008-12.786c0-8.693,1.291-14.836,3.877-18.425
- C251.396,244.164,255.232,242.369,260.316,242.369z M260.092,285.854c2.18,0,3.776-1.223,4.791-3.668
- c1.016-2.447,1.521-7.781,1.521-16.008c0-7.904-0.522-12.962-1.569-15.173s-2.628-3.315-4.743-3.315
- c-1.922,0-3.338,0.77-4.244,2.308c-0.908,1.538-1.476,3.546-1.699,6.024c-0.225,2.478-0.336,5.863-0.336,10.156
- c0,8.461,0.502,13.854,1.506,16.184C256.32,284.689,257.913,285.854,260.092,285.854z"/>
- <g>
- <polygon fill="#FFCC00" points="83.551,301.553 74.234,306.654 84.862,311.665 93.57,305.768 "/>
- <polygon fill="#FF9900" points="74.234,306.654 75.357,318.456 85.331,323.65 84.862,311.665 "/>
-
- <linearGradient id="XMLID_75_" gradientUnits="userSpaceOnUse" x1="-47.1431" y1="278.7324" x2="-37.1689" y2="278.7324" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_75_)" points="75.357,318.456 85.331,323.65 84.862,311.665 "/>
- <polygon fill="#F27C0E" points="93.57,305.768 84.862,311.665 85.331,323.65 93.57,317.564 "/>
- </g>
- <g>
- <polygon fill="#ABDD99" points="176.811,84.505 148.321,102.182 181.396,117.244 208.896,97.272 "/>
- <polygon fill="#46AB48" points="148.321,102.182 150.291,142.135 181.721,157.521 181.396,117.244 "/>
- <polygon fill="#16923B" points="208.896,97.272 181.396,117.244 181.721,157.521 208.245,134.602 "/>
- </g>
- <g>
- <polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
- <polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
- <polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
- </g>
- <g>
- <polygon fill="#F5F661" points="250.023,114.932 212.693,99.54 185.518,119.518 222.518,136.871 "/>
- <polygon fill="#FFF500" points="185.518,119.518 185.846,160.119 222.193,178.786 222.518,136.871 "/>
- <polygon fill="#FFCC00" points="222.518,136.871 222.193,178.786 248.391,154.223 250.023,114.932 "/>
- </g>
- <g>
- <polygon fill="#BFE230" points="153.919,143.233 183.227,122.111 220.314,139.299 191.896,163.205 "/>
- <polygon fill="#84C322" points="153.919,143.233 155.552,187.436 191.572,207.083 191.896,163.205 "/>
- <polygon fill="#5DAA3B" points="191.896,163.205 191.572,207.083 219.734,181.211 220.314,139.299 "/>
- </g>
- <g>
- <polygon fill="#99FF66" points="147.897,58.767 176.792,42.482 210.77,55.167 182.688,73.26 "/>
- <polygon fill="#66CC33" points="147.897,58.767 148.881,99.045 182.277,114.76 182.688,73.26 "/>
- <polygon fill="#669900" points="182.688,73.26 182.277,114.76 209.783,94.787 210.77,55.167 "/>
- </g>
- <g>
- <polygon fill="#CC66FF" points="185.191,74.515 222.688,91.457 251.824,70.171 212.861,56.423 "/>
- <polygon fill="#6F348E" points="222.927,91.133 221.895,133.763 249.195,111.758 251.742,70.171 "/>
- <polygon fill="#9933CC" points="184.781,74.515 184.287,116.015 221.895,133.763 222.927,91.133 "/>
- </g>
- <g>
- <polygon fill="#FFCC00" points="127.601,43.202 95.021,61.047 132.182,78.564 162.633,57.936 "/>
- <polygon fill="#FF9900" points="95.021,61.047 98.945,102.306 133.82,120.476 132.182,78.564 "/>
-
- <linearGradient id="XMLID_76_" gradientUnits="userSpaceOnUse" x1="-23.5552" y1="496.8701" x2="11.3198" y2="496.8701" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_76_)" points="98.945,102.306 133.82,120.476 132.182,78.564 "/>
- <polygon fill="#F27C0E" points="162.633,57.936 132.182,78.564 133.82,120.476 162.633,99.189 "/>
- </g>
- <g>
- <polygon fill="#0099FF" points="152.426,97.736 154.061,139.652 192.048,159.625 192.048,116.076 "/>
- <polygon fill="#00CCFF" points="152.426,97.736 183.527,77.107 221.434,93.402 192.048,116.076 "/>
- <polygon fill="#0066FF" points="192.048,116.076 192.048,159.625 220.443,136.396 221.434,93.402 "/>
- </g>
- </g>
- </svg>
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim26.svg Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,419 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
- <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
- <!ENTITY ns_svg "http://www.w3.org/2000/svg">
- <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
-]>
-<svg xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
- width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
- <metadata>
- <x:xmpmeta x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
- <rdf:RDF xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
- <rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-04T09:30:56Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType="Resource">
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
-AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
-DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
-Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
-AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
-AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
-UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
-1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
-qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
-obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
-0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
-+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq0XQMFLAM32VJ3NPDImcQQCdymjzbySHYq7FXMyqCzEBRuSdhgJAFlBN
-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
-V2KuxV2KuxV2Kv8A/9k=
- </xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
- <rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
- </rdf:RDF>
- </x:xmpmeta>
-<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
-<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-
- <rdf:Description rdf:about=''
- xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:xap='http://ns.adobe.com/xap/1.0/'
- xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-20T12:01:12Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType='Resource'>
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq0XQMFLAM32VJ3NPDImcQQCdymjzbySHYq7FXMyqCzEBRuSdhgJAFlBN
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
KuxV2KuxV2KuxV2Kv//Z</xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:dc='http://purl.org/dc/elements/1.1/'>
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
-
-</rdf:RDF>
-</x:xmpmeta>
- <?xpacket end='w'?>
- </metadata>
- <g id="_x30_1">
- <rect fill="none" width="352" height="352"/>
- </g>
- <g id="_x32_6">
- <path d="M82.136,289.623c-2.612,0-5.184-0.329-7.715-0.984v-4.279c2.772,0.754,5.231,1.131,7.378,1.131
- c2.035,0,3.625-0.457,4.771-1.37s1.718-2.211,1.718-3.894c0-1.586-0.473-2.832-1.418-3.738c-0.945-0.904-2.7-2.086-5.263-3.545
- c-2.804-1.569-4.695-3.151-5.672-4.746c-0.978-1.594-1.466-3.408-1.466-5.442c0-3.237,1.085-5.668,3.257-7.295
- c2.171-1.626,5.003-2.438,8.496-2.438c2.532,0,4.863,0.24,6.994,0.722v4.183c-2.259-0.514-4.358-0.771-6.297-0.771
- c-1.762,0-3.172,0.418-4.229,1.25c-1.058,0.834-1.586,1.988-1.586,3.462c0,1.426,0.46,2.567,1.382,3.425
- c0.922,0.857,2.496,1.902,4.723,3.137c3.076,1.715,5.135,3.373,6.177,4.975c1.041,1.603,1.562,3.404,1.562,5.408
- c0,3.604-1.069,6.309-3.208,8.11C89.601,288.723,86.398,289.623,82.136,289.623z"/>
- <path d="M119.364,288.396c-2.692,0.816-5.488,1.227-8.388,1.227c-4.198,0-7.346-1.21-9.445-3.629
- c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.03-7.742,3.088-10.395c2.059-2.65,4.931-3.979,8.616-3.979
- c3.396,0,5.98,1.127,7.75,3.377c1.77,2.252,2.656,6.414,2.656,12.486h-15.309c0,3.012,0.577,5.271,1.73,6.776
- s2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227L119.364,288.396L119.364,288.396z M105.184,273.04h8.892
- c0-3.302-0.353-5.576-1.057-6.826c-0.705-1.249-1.73-1.874-3.077-1.874c-1.506,0-2.651,0.674-3.437,2.02
- C105.719,267.705,105.28,269.932,105.184,273.04z"/>
- <path d="M125.805,289.238v-28.096h3.797l1.273,4.662c0.785-1.634,1.867-2.863,3.245-3.689c1.378-0.824,3.052-1.236,5.023-1.236
- c0.513,0,0.889,0.016,1.129,0.049v5.383c-0.897-0.063-1.554-0.097-1.971-0.097c-2.163,0-3.701,0.478-4.614,1.431
- s-1.37,2.527-1.37,4.724v16.87H125.805L125.805,289.238z"/>
- <path d="M145.104,289.238v-24.273h-3.101v-3.82h9.589v28.094H145.104L145.104,289.238z M148.348,257.635
- c-1.057,0-1.918-0.297-2.583-0.89s-0.997-1.378-0.997-2.354c0-0.978,0.332-1.764,0.997-2.355s1.526-0.889,2.583-0.889
- c1.025,0,1.883,0.305,2.572,0.912c0.689,0.608,1.033,1.387,1.033,2.332c0,0.992-0.336,1.781-1.009,2.366
- C150.271,257.342,149.405,257.635,148.348,257.635z"/>
- <path d="M178.197,288.396c-2.692,0.816-5.488,1.227-8.388,1.227c-4.198,0-7.346-1.21-9.445-3.629
- c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.029-7.742,3.088-10.395c2.059-2.65,4.931-3.979,8.616-3.979
- c3.396,0,5.98,1.127,7.75,3.377c1.771,2.252,2.656,6.414,2.656,12.486h-15.31c0,3.012,0.577,5.271,1.73,6.776
- c1.153,1.506,2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227v3.992H178.197z M164.018,273.04h8.893
- c0-3.302-0.353-5.576-1.058-6.826c-0.705-1.249-1.73-1.874-3.076-1.874c-1.506,0-2.652,0.674-3.437,2.02
- C164.555,267.705,164.114,269.932,164.018,273.04z"/>
- <path d="M190.693,289.623c-2.402,0-4.989-0.329-7.762-0.984v-4.184c2.739,0.834,4.998,1.25,6.776,1.25
- c1.649,0,2.894-0.324,3.726-0.975c0.834-0.647,1.25-1.621,1.25-2.92c0-0.769-0.231-1.484-0.697-2.149
- c-0.465-0.665-1.777-1.542-3.94-2.632c-1.458-0.754-2.624-1.446-3.497-2.079c-0.873-0.634-1.599-1.454-2.175-2.464
- c-0.577-1.01-0.865-2.268-0.865-3.772c0-2.5,0.921-4.454,2.765-5.864c1.843-1.41,4.205-2.115,7.09-2.115
- c2.498,0,4.773,0.313,6.824,0.938v3.989c-2.002-0.688-3.916-1.033-5.744-1.033c-1.488,0-2.604,0.305-3.34,0.913
- s-1.104,1.522-1.104,2.739c0,0.642,0.22,1.242,0.66,1.804s1.702,1.354,3.784,2.379c2.916,1.427,4.768,2.82,5.553,4.183
- c0.785,1.361,1.178,2.867,1.178,4.519c0,2.788-0.896,4.896-2.691,6.319C196.688,288.91,194.092,289.623,190.693,289.623z"/>
- <path fill="#808080" d="M112.728,302.891h4.747c1.875,0,3.24,0.438,4.098,1.316c0.857,0.876,1.286,2.284,1.286,4.223
- c0,1.899-0.515,3.357-1.544,4.375c-1.029,1.018-2.497,1.525-4.404,1.525h-1.598v6.479h-2.584L112.728,302.891L112.728,302.891z
- M115.312,304.607v7.979h1.454c1.169,0,2.031-0.312,2.583-0.931c0.553-0.622,0.829-1.674,0.829-3.155s-0.254-2.501-0.763-3.06
- c-0.509-0.555-1.304-0.834-2.385-0.834H115.312L115.312,304.607z"/>
- <rect x="135.898" y="301.786" fill="#808080" width="2.56" height="19.022"/>
- <path fill="#808080" d="M159.537,318.788c-0.865,1.476-2.211,2.212-4.038,2.212c-1.273,0-2.265-0.359-2.974-1.074
- c-0.709-0.72-1.063-1.722-1.063-3.012c0-1.33,0.365-2.322,1.094-2.975c0.729-0.653,1.602-1.063,2.62-1.226
- c1.017-0.166,2.255-0.247,3.713-0.247v-1.646c0-1.625-0.869-2.438-2.607-2.438c-1.001,0-2.223,0.214-3.665,0.638v-1.791
- c1.45-0.399,2.828-0.601,4.134-0.601c1.538,0,2.706,0.369,3.503,1.112c0.797,0.738,1.195,1.83,1.195,3.273v9.793h-1.394
- L159.537,318.788z M158.888,313.994h-1.43c-1.146,0-2.005,0.242-2.578,0.727c-0.573,0.485-0.859,1.209-0.859,2.17
- c0,0.785,0.174,1.371,0.523,1.762c0.348,0.387,0.871,0.582,1.568,0.582c0.881,0,1.564-0.28,2.049-0.842
- c0.485-0.562,0.727-1.322,0.727-2.283V313.994z"/>
- <path fill="#808080" d="M181.83,320.566c-1.074,0.289-2.083,0.434-3.028,0.434c-1.09,0-1.887-0.256-2.392-0.764
- c-0.505-0.51-0.757-1.319-0.757-2.434v-9.302h-1.838v-0.961l3.737-3.81h0.661v3.101h3.4v1.67h-3.4v8.882
- c0,0.76,0.124,1.262,0.372,1.508c0.248,0.244,0.625,0.365,1.13,0.365c0.521,0,1.227-0.115,2.115-0.349V320.566L181.83,320.566z"
- />
- <path fill="#808080" d="M198.402,301.594c0.81,0,1.595,0.096,2.354,0.287v1.742c-0.753-0.24-1.382-0.359-1.887-0.359
- c-0.802,0-1.306,0.254-1.515,0.762c-0.209,0.511-0.313,1.445-0.313,2.808h2.561v1.67h-2.561v12.306h-2.561v-12.306h-1.693v-1.67
- h1.693c0-2.123,0.324-3.526,0.975-4.211C196.107,301.936,197.089,301.594,198.402,301.594L198.402,301.594z"/>
- <path fill="#808080" d="M216.611,321c-1.883,0-3.293-0.617-4.229-1.852c-0.938-1.233-1.405-3.084-1.405-5.551
- c0-2.148,0.485-3.847,1.459-5.097c0.975-1.249,2.367-1.874,4.178-1.874c1.826,0,3.222,0.616,4.187,1.852
- c0.966,1.232,1.449,2.955,1.449,5.166c0,2.275-0.451,4.069-1.353,5.385C219.994,320.344,218.566,321,216.611,321z
- M216.611,319.354c0.986,0,1.729-0.445,2.229-1.34c0.501-0.893,0.752-2.39,0.752-4.488c0-1.481-0.256-2.726-0.769-3.731
- c-0.513-1.004-1.25-1.507-2.212-1.507c-0.978,0-1.719,0.451-2.223,1.357c-0.506,0.904-0.758,2.199-0.758,3.881
- c0,1.892,0.252,3.334,0.758,4.332C214.895,318.854,215.635,319.354,216.611,319.354z"/>
- <path fill="#808080" d="M236.909,306.832l0.589,2.331c0.777-1.644,2.131-2.464,4.063-2.464c0.256,0,0.444,0.013,0.564,0.035
- v2.332c-0.201-0.016-0.501-0.023-0.9-0.023c-1.099,0-1.904,0.262-2.416,0.788c-0.514,0.522-0.77,1.343-0.77,2.456v8.521h-2.561
- v-13.977H236.909z"/>
- <path fill="#808080" d="M272.073,320.809h-2.56v-9.627c0-0.929-0.177-1.629-0.523-2.096c-0.35-0.471-0.871-0.704-1.568-0.704
- c-0.896,0-1.588,0.353-2.072,1.058s-0.728,1.623-0.728,2.752v8.617h-2.56v-9.627c0-0.929-0.18-1.629-0.535-2.096
- c-0.356-0.471-0.891-0.704-1.604-0.704c-0.881,0-1.563,0.356-2.043,1.069s-0.721,1.627-0.721,2.74v8.615h-2.56v-13.976h1.43
- l0.517,2.065c0.856-1.514,2.163-2.271,3.918-2.271c0.929,0,1.699,0.177,2.313,0.528c0.611,0.353,1.063,0.881,1.353,1.586
- c0.793-1.409,2.063-2.114,3.81-2.114c1.379,0,2.412,0.372,3.101,1.117s1.034,1.858,1.034,3.341L272.073,320.809L272.073,320.809z
- "/>
- <path fill="#0F3AAC" d="M228.208,242.369c2.563,0,4.944,0.191,7.146,0.576v5.576c-1.942-0.428-4.047-0.642-6.313-0.642
- c-3.354,0-5.977,1.181-7.867,3.541c-1.89,2.36-3.049,5.901-3.477,10.623c2.072-2.009,4.935-3.013,8.588-3.013
- c4.102,0,7.221,1.303,9.357,3.908c2.135,2.606,3.203,6.334,3.203,11.185c0,5.362-1.309,9.544-3.926,12.546
- c-2.615,3.001-6.393,4.502-11.327,4.502c-4.934,0-8.657-1.752-11.168-5.255c-2.51-3.504-3.765-9.313-3.765-17.433
- c0-7.989,1.677-14.34,5.029-19.051C217.046,244.725,221.885,242.369,228.208,242.369L228.208,242.369z M223.594,285.854
- c2.157,0,3.771-0.828,4.84-2.482c1.066-1.655,1.602-4.674,1.602-9.053c0-3.291-0.502-5.764-1.506-7.418
- c-1.004-1.656-2.51-2.483-4.52-2.483c-2.093,0-3.689,0.79-4.789,2.371c-1.102,1.581-1.65,3.76-1.65,6.536
- c0,3.332,0.225,5.849,0.673,7.547c0.448,1.699,1.116,2.953,2.003,3.766S222.248,285.854,223.594,285.854z"/>
- <path fill="#0F3AAC" d="M260.316,242.369c4.935,0,8.662,1.752,11.184,5.255c2.521,3.504,3.781,9.688,3.781,18.554
- c0,9.721-1.276,16.316-3.829,19.789c-2.554,3.471-6.318,5.206-11.296,5.206c-4.358,0-7.647-1.153-9.87-3.461
- c-2.222-2.308-3.669-5.224-4.343-8.748c-0.672-3.524-1.008-7.786-1.008-12.786c0-8.693,1.291-14.836,3.877-18.425
- C251.396,244.164,255.232,242.369,260.316,242.369z M260.092,285.854c2.18,0,3.776-1.223,4.791-3.668
- c1.016-2.447,1.521-7.781,1.521-16.008c0-7.904-0.522-12.962-1.569-15.173s-2.628-3.315-4.743-3.315
- c-1.922,0-3.338,0.77-4.244,2.308c-0.908,1.538-1.476,3.546-1.699,6.024c-0.225,2.478-0.336,5.863-0.336,10.156
- c0,8.461,0.502,13.854,1.506,16.184C256.32,284.689,257.913,285.854,260.092,285.854z"/>
- <g>
- <polygon fill="#FFCC00" points="83.551,301.553 74.234,306.654 84.862,311.665 93.57,305.768 "/>
- <polygon fill="#FF9900" points="74.234,306.654 75.357,318.456 85.331,323.65 84.862,311.665 "/>
-
- <linearGradient id="XMLID_71_" gradientUnits="userSpaceOnUse" x1="-47.1431" y1="278.7324" x2="-37.1689" y2="278.7324" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_71_)" points="75.357,318.456 85.331,323.65 84.862,311.665 "/>
- <polygon fill="#F27C0E" points="93.57,305.768 84.862,311.665 85.331,323.65 93.57,317.564 "/>
- </g>
- <g>
- <polygon fill="#ABDD99" points="176.811,84.505 148.321,102.182 181.396,117.244 208.896,97.272 "/>
- <polygon fill="#46AB48" points="148.321,102.182 150.291,142.135 181.721,157.521 181.396,117.244 "/>
- <polygon fill="#16923B" points="208.896,97.272 181.396,117.244 181.721,157.521 208.245,134.602 "/>
- </g>
- <g>
- <polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
- <polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
- <polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
- </g>
- <g>
- <polygon fill="#F5F661" points="250.023,114.932 212.693,99.54 185.518,119.518 222.518,136.871 "/>
- <polygon fill="#FFF500" points="185.518,119.518 185.846,160.119 222.193,178.786 222.518,136.871 "/>
- <polygon fill="#FFCC00" points="222.518,136.871 222.193,178.786 248.391,154.223 250.023,114.932 "/>
- </g>
- <g>
- <polygon fill="#BFE230" points="153.919,143.233 183.227,122.111 220.314,139.299 191.896,163.205 "/>
- <polygon fill="#84C322" points="153.919,143.233 155.552,187.436 191.572,207.083 191.896,163.205 "/>
- <polygon fill="#5DAA3B" points="191.896,163.205 191.572,207.083 219.734,181.211 220.314,139.299 "/>
- </g>
- <g>
- <polygon fill="#99FF66" points="147.897,58.767 176.792,42.482 210.77,55.167 182.688,73.26 "/>
- <polygon fill="#66CC33" points="147.897,58.767 148.881,99.045 182.277,114.76 182.688,73.26 "/>
- <polygon fill="#669900" points="182.688,73.26 182.277,114.76 209.783,94.787 210.77,55.167 "/>
- </g>
- <g>
- <polygon fill="#CC66FF" points="185.191,74.515 222.688,91.457 251.824,70.171 212.861,56.423 "/>
- <polygon fill="#6F348E" points="222.927,91.133 221.895,133.763 249.195,111.758 251.742,70.171 "/>
- <polygon fill="#9933CC" points="184.781,74.515 184.287,116.015 221.895,133.763 222.927,91.133 "/>
- </g>
- <g>
- <polygon fill="#FFCC00" points="127.601,43.202 95.021,61.047 132.182,78.564 162.633,57.936 "/>
- <polygon fill="#FF9900" points="95.021,61.047 98.945,102.306 133.82,120.476 132.182,78.564 "/>
-
- <linearGradient id="XMLID_72_" gradientUnits="userSpaceOnUse" x1="-23.5552" y1="496.8701" x2="11.3198" y2="496.8701" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_72_)" points="98.945,102.306 133.82,120.476 132.182,78.564 "/>
- <polygon fill="#F27C0E" points="162.633,57.936 132.182,78.564 133.82,120.476 162.633,99.189 "/>
- </g>
- <g>
- <polygon fill="#0099FF" points="152.426,97.736 154.061,139.652 192.048,159.625 192.048,116.076 "/>
- <polygon fill="#00CCFF" points="152.426,97.736 183.527,77.107 221.434,93.402 192.048,116.076 "/>
- <polygon fill="#0066FF" points="192.048,116.076 192.048,159.625 220.443,136.396 221.434,93.402 "/>
- </g>
- </g>
- </svg>
--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim27.svg Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,419 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
- <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
- <!ENTITY ns_svg "http://www.w3.org/2000/svg">
- <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
-]>
-<svg xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
- width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
- <metadata>
- <x:xmpmeta x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
- <rdf:RDF xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
- <rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
- <rdf:Description rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-04T09:32:40Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType="Resource">
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
-AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
-DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
-Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
-AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
-AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
-UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
-1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
-qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
-obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
-0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
-+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
-FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
-XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
-Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
-q7FXYq7FXYq7FXYq7FXYq0XQMFLAM32VJ3NPDImcQQCdymjzbySHYq7FXMyqCzEBRuSdhgJAFlBN
-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
-V2KuxV2KuxV2Kv8A/9k=
- </xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
- <rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
- </rdf:RDF>
- </x:xmpmeta>
-<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
-<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-
- <rdf:Description rdf:about=''
- xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:xap='http://ns.adobe.com/xap/1.0/'
- xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
- <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
- <xap:ModifyDate>2005-04-20T12:01:04Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType='Resource'>
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>256</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq0XQMFLAM32VJ3NPDImcQQCdymjzbySHYq7FXMyqCzEBRuSdhgJAFlBN
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
KuxV2KuxV2KuxV2Kv//Z</xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
-
- <rdf:Description rdf:about=''
- xmlns:dc='http://purl.org/dc/elements/1.1/'>
- <dc:format>image/svg+xml</dc:format>
- </rdf:Description>
-
-</rdf:RDF>
-</x:xmpmeta>
- <?xpacket end='w'?>
- </metadata>
- <g id="_x30_1">
- <rect fill="none" width="352" height="352"/>
- </g>
- <g id="_x32_7">
- <path d="M82.136,289.623c-2.612,0-5.184-0.329-7.715-0.984v-4.279c2.772,0.754,5.231,1.131,7.378,1.131
- c2.035,0,3.625-0.457,4.771-1.37s1.718-2.211,1.718-3.894c0-1.586-0.473-2.832-1.418-3.738c-0.945-0.904-2.7-2.086-5.263-3.545
- c-2.804-1.569-4.695-3.151-5.672-4.746c-0.978-1.594-1.466-3.408-1.466-5.442c0-3.237,1.085-5.668,3.257-7.295
- c2.171-1.626,5.003-2.438,8.496-2.438c2.532,0,4.863,0.24,6.994,0.722v4.183c-2.259-0.514-4.358-0.771-6.297-0.771
- c-1.762,0-3.172,0.418-4.229,1.25c-1.058,0.834-1.586,1.988-1.586,3.462c0,1.426,0.46,2.567,1.382,3.425
- c0.922,0.857,2.496,1.902,4.723,3.137c3.076,1.715,5.135,3.373,6.177,4.975c1.041,1.603,1.562,3.404,1.562,5.408
- c0,3.604-1.069,6.309-3.208,8.11C89.601,288.723,86.398,289.623,82.136,289.623z"/>
- <path d="M119.364,288.396c-2.692,0.816-5.488,1.227-8.388,1.227c-4.198,0-7.346-1.21-9.445-3.629
- c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.03-7.742,3.088-10.395c2.059-2.65,4.931-3.979,8.616-3.979
- c3.396,0,5.98,1.127,7.75,3.377c1.77,2.252,2.656,6.414,2.656,12.486h-15.309c0,3.012,0.577,5.271,1.73,6.776
- s2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227L119.364,288.396L119.364,288.396z M105.184,273.04h8.892
- c0-3.302-0.353-5.576-1.057-6.826c-0.705-1.249-1.73-1.874-3.077-1.874c-1.506,0-2.651,0.674-3.437,2.02
- C105.719,267.705,105.28,269.932,105.184,273.04z"/>
- <path d="M125.805,289.238v-28.096h3.797l1.273,4.662c0.785-1.634,1.867-2.863,3.245-3.689c1.378-0.824,3.052-1.236,5.023-1.236
- c0.513,0,0.889,0.016,1.129,0.049v5.383c-0.897-0.063-1.554-0.097-1.971-0.097c-2.163,0-3.701,0.478-4.614,1.431
- s-1.37,2.527-1.37,4.724v16.87H125.805L125.805,289.238z"/>
- <path d="M145.104,289.238v-24.273h-3.101v-3.82h9.589v28.094H145.104L145.104,289.238z M148.348,257.635
- c-1.057,0-1.918-0.297-2.583-0.89s-0.997-1.378-0.997-2.354c0-0.978,0.332-1.764,0.997-2.355s1.526-0.889,2.583-0.889
- c1.025,0,1.883,0.305,2.572,0.912c0.689,0.608,1.033,1.387,1.033,2.332c0,0.992-0.336,1.781-1.009,2.366
- C150.271,257.342,149.405,257.635,148.348,257.635z"/>
- <path d="M178.197,288.396c-2.692,0.816-5.488,1.227-8.388,1.227c-4.198,0-7.346-1.21-9.445-3.629
- c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.029-7.742,3.088-10.395c2.059-2.65,4.931-3.979,8.616-3.979
- c3.396,0,5.98,1.127,7.75,3.377c1.771,2.252,2.656,6.414,2.656,12.486h-15.31c0,3.012,0.577,5.271,1.73,6.776
- c1.153,1.506,2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227v3.992H178.197z M164.018,273.04h8.893
- c0-3.302-0.353-5.576-1.058-6.826c-0.705-1.249-1.73-1.874-3.076-1.874c-1.506,0-2.652,0.674-3.437,2.02
- C164.555,267.705,164.114,269.932,164.018,273.04z"/>
- <path d="M190.693,289.623c-2.402,0-4.989-0.329-7.762-0.984v-4.184c2.739,0.834,4.998,1.25,6.776,1.25
- c1.649,0,2.894-0.324,3.726-0.975c0.834-0.647,1.25-1.621,1.25-2.92c0-0.769-0.231-1.484-0.697-2.149
- c-0.465-0.665-1.777-1.542-3.94-2.632c-1.458-0.754-2.624-1.446-3.497-2.079c-0.873-0.634-1.599-1.454-2.175-2.464
- c-0.577-1.01-0.865-2.268-0.865-3.772c0-2.5,0.921-4.454,2.765-5.864c1.843-1.41,4.205-2.115,7.09-2.115
- c2.498,0,4.773,0.313,6.824,0.938v3.989c-2.002-0.688-3.916-1.033-5.744-1.033c-1.488,0-2.604,0.305-3.34,0.913
- s-1.104,1.522-1.104,2.739c0,0.642,0.22,1.242,0.66,1.804s1.702,1.354,3.784,2.379c2.916,1.427,4.768,2.82,5.553,4.183
- c0.785,1.361,1.178,2.867,1.178,4.519c0,2.788-0.896,4.896-2.691,6.319C196.688,288.91,194.092,289.623,190.693,289.623z"/>
- <path fill="#808080" d="M112.728,302.891h4.747c1.875,0,3.24,0.438,4.098,1.316c0.857,0.876,1.286,2.284,1.286,4.223
- c0,1.899-0.515,3.357-1.544,4.375c-1.029,1.018-2.497,1.525-4.404,1.525h-1.598v6.479h-2.584L112.728,302.891L112.728,302.891z
- M115.312,304.607v7.979h1.454c1.169,0,2.031-0.312,2.583-0.931c0.553-0.622,0.829-1.674,0.829-3.155s-0.254-2.501-0.763-3.06
- c-0.509-0.555-1.304-0.834-2.385-0.834H115.312L115.312,304.607z"/>
- <rect x="135.898" y="301.786" fill="#808080" width="2.56" height="19.022"/>
- <path fill="#808080" d="M159.537,318.788c-0.865,1.476-2.211,2.212-4.038,2.212c-1.273,0-2.265-0.359-2.974-1.074
- c-0.709-0.72-1.063-1.722-1.063-3.012c0-1.33,0.365-2.322,1.094-2.975c0.729-0.653,1.602-1.063,2.62-1.226
- c1.017-0.166,2.255-0.247,3.713-0.247v-1.646c0-1.625-0.869-2.438-2.607-2.438c-1.001,0-2.223,0.214-3.665,0.638v-1.791
- c1.45-0.399,2.828-0.601,4.134-0.601c1.538,0,2.706,0.369,3.503,1.112c0.797,0.738,1.195,1.83,1.195,3.273v9.793h-1.394
- L159.537,318.788z M158.888,313.994h-1.43c-1.146,0-2.005,0.242-2.578,0.727c-0.573,0.485-0.859,1.209-0.859,2.17
- c0,0.785,0.174,1.371,0.523,1.762c0.348,0.387,0.871,0.582,1.568,0.582c0.881,0,1.564-0.28,2.049-0.842
- c0.485-0.562,0.727-1.322,0.727-2.283V313.994z"/>
- <path fill="#808080" d="M181.83,320.566c-1.074,0.289-2.083,0.434-3.028,0.434c-1.09,0-1.887-0.256-2.392-0.764
- c-0.505-0.51-0.757-1.319-0.757-2.434v-9.302h-1.838v-0.961l3.737-3.81h0.661v3.101h3.4v1.67h-3.4v8.882
- c0,0.76,0.124,1.262,0.372,1.508c0.248,0.244,0.625,0.365,1.13,0.365c0.521,0,1.227-0.115,2.115-0.349V320.566L181.83,320.566z"
- />
- <path fill="#808080" d="M198.402,301.594c0.81,0,1.595,0.096,2.354,0.287v1.742c-0.753-0.24-1.382-0.359-1.887-0.359
- c-0.802,0-1.306,0.254-1.515,0.762c-0.209,0.511-0.313,1.445-0.313,2.808h2.561v1.67h-2.561v12.306h-2.561v-12.306h-1.693v-1.67
- h1.693c0-2.123,0.324-3.526,0.975-4.211C196.107,301.936,197.089,301.594,198.402,301.594L198.402,301.594z"/>
- <path fill="#808080" d="M216.611,321c-1.883,0-3.293-0.617-4.229-1.852c-0.938-1.233-1.405-3.084-1.405-5.551
- c0-2.148,0.485-3.847,1.459-5.097c0.975-1.249,2.367-1.874,4.178-1.874c1.826,0,3.222,0.616,4.187,1.852
- c0.966,1.232,1.449,2.955,1.449,5.166c0,2.275-0.451,4.069-1.353,5.385C219.994,320.344,218.566,321,216.611,321z
- M216.611,319.354c0.986,0,1.729-0.445,2.229-1.34c0.501-0.893,0.752-2.39,0.752-4.488c0-1.481-0.256-2.726-0.769-3.731
- c-0.513-1.004-1.25-1.507-2.212-1.507c-0.978,0-1.719,0.451-2.223,1.357c-0.506,0.904-0.758,2.199-0.758,3.881
- c0,1.892,0.252,3.334,0.758,4.332C214.895,318.854,215.635,319.354,216.611,319.354z"/>
- <path fill="#808080" d="M236.909,306.832l0.589,2.331c0.777-1.644,2.131-2.464,4.063-2.464c0.256,0,0.444,0.013,0.564,0.035
- v2.332c-0.201-0.016-0.501-0.023-0.9-0.023c-1.099,0-1.904,0.262-2.416,0.788c-0.514,0.522-0.77,1.343-0.77,2.456v8.521h-2.561
- v-13.977H236.909z"/>
- <path fill="#808080" d="M272.073,320.809h-2.56v-9.627c0-0.929-0.177-1.629-0.523-2.096c-0.35-0.471-0.871-0.704-1.568-0.704
- c-0.896,0-1.588,0.353-2.072,1.058s-0.728,1.623-0.728,2.752v8.617h-2.56v-9.627c0-0.929-0.18-1.629-0.535-2.096
- c-0.356-0.471-0.891-0.704-1.604-0.704c-0.881,0-1.563,0.356-2.043,1.069s-0.721,1.627-0.721,2.74v8.615h-2.56v-13.976h1.43
- l0.517,2.065c0.856-1.514,2.163-2.271,3.918-2.271c0.929,0,1.699,0.177,2.313,0.528c0.611,0.353,1.063,0.881,1.353,1.586
- c0.793-1.409,2.063-2.114,3.81-2.114c1.379,0,2.412,0.372,3.101,1.117s1.034,1.858,1.034,3.341L272.073,320.809L272.073,320.809z
- "/>
- <path fill="#0F3AAC" d="M228.208,242.369c2.563,0,4.944,0.191,7.146,0.576v5.576c-1.942-0.428-4.047-0.642-6.313-0.642
- c-3.354,0-5.977,1.181-7.867,3.541c-1.89,2.36-3.049,5.901-3.477,10.623c2.072-2.009,4.935-3.013,8.588-3.013
- c4.102,0,7.221,1.303,9.357,3.908c2.135,2.606,3.203,6.334,3.203,11.185c0,5.362-1.309,9.544-3.926,12.546
- c-2.615,3.001-6.393,4.502-11.327,4.502c-4.934,0-8.657-1.752-11.168-5.255c-2.51-3.504-3.765-9.313-3.765-17.433
- c0-7.989,1.677-14.34,5.029-19.051C217.046,244.725,221.885,242.369,228.208,242.369L228.208,242.369z M223.594,285.854
- c2.157,0,3.771-0.828,4.84-2.482c1.066-1.655,1.602-4.674,1.602-9.053c0-3.291-0.502-5.764-1.506-7.418
- c-1.004-1.656-2.51-2.483-4.52-2.483c-2.093,0-3.689,0.79-4.789,2.371c-1.102,1.581-1.65,3.76-1.65,6.536
- c0,3.332,0.225,5.849,0.673,7.547c0.448,1.699,1.116,2.953,2.003,3.766S222.248,285.854,223.594,285.854z"/>
- <path fill="#0F3AAC" d="M260.316,242.369c4.935,0,8.662,1.752,11.184,5.255c2.521,3.504,3.781,9.688,3.781,18.554
- c0,9.721-1.276,16.316-3.829,19.789c-2.554,3.471-6.318,5.206-11.296,5.206c-4.358,0-7.647-1.153-9.87-3.461
- c-2.222-2.308-3.669-5.224-4.343-8.748c-0.672-3.524-1.008-7.786-1.008-12.786c0-8.693,1.291-14.836,3.877-18.425
- C251.396,244.164,255.232,242.369,260.316,242.369z M260.092,285.854c2.18,0,3.776-1.223,4.791-3.668
- c1.016-2.447,1.521-7.781,1.521-16.008c0-7.904-0.522-12.962-1.569-15.173s-2.628-3.315-4.743-3.315
- c-1.922,0-3.338,0.77-4.244,2.308c-0.908,1.538-1.476,3.546-1.699,6.024c-0.225,2.478-0.336,5.863-0.336,10.156
- c0,8.461,0.502,13.854,1.506,16.184C256.32,284.689,257.913,285.854,260.092,285.854z"/>
- <g>
- <polygon fill="#FFCC00" points="83.551,301.553 74.234,306.654 84.862,311.665 93.57,305.768 "/>
- <polygon fill="#FF9900" points="74.234,306.654 75.357,318.456 85.331,323.65 84.862,311.665 "/>
-
- <linearGradient id="XMLID_67_" gradientUnits="userSpaceOnUse" x1="-47.1431" y1="278.7324" x2="-37.1689" y2="278.7324" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_67_)" points="75.357,318.456 85.331,323.65 84.862,311.665 "/>
- <polygon fill="#F27C0E" points="93.57,305.768 84.862,311.665 85.331,323.65 93.57,317.564 "/>
- </g>
- <g>
- <polygon fill="#ABDD99" points="176.811,84.505 148.321,102.182 181.396,117.244 208.896,97.272 "/>
- <polygon fill="#46AB48" points="148.321,102.182 150.291,142.135 181.721,157.521 181.396,117.244 "/>
- <polygon fill="#16923B" points="208.896,97.272 181.396,117.244 181.721,157.521 208.245,134.602 "/>
- </g>
- <g>
- <polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
- <polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
- <polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
- </g>
- <g>
- <polygon fill="#F5F661" points="250.023,114.932 212.693,99.54 185.518,119.518 222.518,136.871 "/>
- <polygon fill="#FFF500" points="185.518,119.518 185.846,160.119 222.193,178.786 222.518,136.871 "/>
- <polygon fill="#FFCC00" points="222.518,136.871 222.193,178.786 248.391,154.223 250.023,114.932 "/>
- </g>
- <g>
- <polygon fill="#BFE230" points="153.919,143.233 183.227,122.111 220.314,139.299 191.896,163.205 "/>
- <polygon fill="#84C322" points="153.919,143.233 155.552,187.436 191.572,207.083 191.896,163.205 "/>
- <polygon fill="#5DAA3B" points="191.896,163.205 191.572,207.083 219.734,181.211 220.314,139.299 "/>
- </g>
- <g>
- <polygon fill="#99FF66" points="147.897,58.767 176.792,42.482 210.77,55.167 182.688,73.26 "/>
- <polygon fill="#66CC33" points="147.897,58.767 148.881,99.045 182.277,114.76 182.688,73.26 "/>
- <polygon fill="#669900" points="182.688,73.26 182.277,114.76 209.783,94.787 210.77,55.167 "/>
- </g>
- <g>
- <polygon fill="#CC66FF" points="185.191,74.515 222.688,91.457 251.824,70.171 212.861,56.423 "/>
- <polygon fill="#6F348E" points="222.927,91.133 221.895,133.763 249.195,111.758 251.742,70.171 "/>
- <polygon fill="#9933CC" points="184.781,74.515 184.287,116.015 221.895,133.763 222.927,91.133 "/>
- </g>
- <g>
- <polygon fill="#FFCC00" points="127.601,43.202 95.021,61.047 132.182,78.564 162.633,57.936 "/>
- <polygon fill="#FF9900" points="95.021,61.047 98.945,102.306 133.82,120.476 132.182,78.564 "/>
-
- <linearGradient id="XMLID_68_" gradientUnits="userSpaceOnUse" x1="-23.5552" y1="496.8701" x2="11.3198" y2="496.8701" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
- <stop offset="0" style="stop-color:#FFCC66"/>
- <stop offset="1" style="stop-color:#FF9900"/>
- <a:midPointStop offset="0" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="0.5" style="stop-color:#FFCC66"/>
- <a:midPointStop offset="1" style="stop-color:#FF9900"/>
- </linearGradient>
- <polygon fill="url(#XMLID_68_)" points="98.945,102.306 133.82,120.476 132.182,78.564 "/>
- <polygon fill="#F27C0E" points="162.633,57.936 132.182,78.564 133.82,120.476 162.633,99.189 "/>
- </g>
- <g>
- <polygon fill="#0099FF" points="152.426,97.736 154.061,139.652 192.048,159.625 192.048,116.076 "/>
- <polygon fill="#00CCFF" points="152.426,97.736 183.527,77.107 221.434,93.402 192.048,116.076 "/>
- <polygon fill="#0066FF" points="192.048,116.076 192.048,159.625 220.443,136.396 221.434,93.402 "/>
- </g>
- </g>
- </svg>
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10000.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10001.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10002.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10003.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10004.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10005.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10006.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10007.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10008.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10009.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10010.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10011.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10012.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10013.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10014.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10015.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10016.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10017.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10018.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10019.bmp has changed
Binary file scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/cenrep/1020744E.txt has changed
Binary file scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/cenrep/keys_screensaveranimplugin.xls has changed
Binary file scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/conf/screensaveranimplugin.confml has changed
Binary file scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/conf/screensaveranimplugin_1020744E.crml has changed
--- a/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/data/10207447.rss Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: ECOM Resource file for ScreenSaverAnimPlugin
-*
-*/
-
-
-
-
-
-// INCLUDES
-#include <ecom/registryinfo.rh>
-
-#include "ScreensaverpluginIntDef.hrh"
-#include "ScreenSaverAnimPluginImplementationUid.hrh"
-#include "screensaveranimplugin.loc"
-
-// RESOURCE DEFINITIONS
-// -----------------------------------------------------------------------------
-//
-// theInfo
-// ECOM DLL interface & implementation description resource.
-//
-// -----------------------------------------------------------------------------
-//
-RESOURCE REGISTRY_INFO theInfo
- {
- dll_uid = 0x10207447;
- interfaces =
- {
- INTERFACE_INFO
- {
- interface_uid = KCScreensaverPluginInterfaceDefinitionUid;
- implementations =
- {
- IMPLEMENTATION_INFO
- {
- implementation_uid =KScreenSaverAnimPluginImplementationUID;
- version_no = 1;
- display_name = qtn_sanim_screensaver_name;
- default_data = "";
- opaque_data = "07";
- }
- };
- }
- };
- }
-// End of File
--- a/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/data/ScreenSaverAnimPlugin.rss Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,378 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Resource file for ScreenSaverAnimPlugin
-*
-*/
-
-
-
-
-
-// RESOURCE IDENTIFIER
-
-NAME ANSS
-
-#include <eikon.rh>
-#include <avkon.rh>
-#include <avkon.mbg>
-#include <avkon.hrh>
-#include <avkon.rsg>
-#include <aknsconstants.hrh>
-#include <pathconfiguration.hrh>
-#include <avkon.loc>
-#include "ScreenSaverAnimCustControl.rh"
-#include <screensaveranimplugin.loc>
-#include "ScreenSaverAnimPlugin.hrh"
-
-// ---------------------------------------------------------
-//
-// Define the resource file signature
-// This resource should be empty.
-//
-// ---------------------------------------------------------
-//
-RESOURCE RSS_SIGNATURE
- {
- }
-
-RESOURCE TBUF
- {
- buf = "AnimScreenSaver";
- }
-
-STRUCT MIMETYPE_SPECIFIC_PLUGIN_ARRAY
- {
- STRUCT pairs[]; // array of mimetype and implementation uid pair
- }
-// -----------------------------------------------------------------------------
-// SCREENSAVER_MIMETYPE_PLUGIN_PAIR
-// One mapping between file name extension and MIME type.
-// -----------------------------------------------------------------------------
-//
-STRUCT SCREENSAVER_MIMETYPE_PLUGIN_PAIR
- {
- LTEXT mimetype;
- LONG implementation_uid;
- }
-
-RESOURCE MIMETYPE_SPECIFIC_PLUGIN_ARRAY r_mimetype_specific_plugin_array
- {
- pairs =
- {
- SCREENSAVER_MIMETYPE_PLUGIN_PAIR
- {
- mimetype = "image/svg+xml";
- implementation_uid = 0x102071E6;
- },
- SCREENSAVER_MIMETYPE_PLUGIN_PAIR
- {
- mimetype = "image/gif";
- implementation_uid = 0x102750B4;
- },
- SCREENSAVER_MIMETYPE_PLUGIN_PAIR
- {
- mimetype = "application/m3g";
- implementation_uid = 0x102750B3;
- }
-#ifdef RD_FLASHLITE_SCREENSAVER
- ,
- SCREENSAVER_MIMETYPE_PLUGIN_PAIR
- {
- mimetype = "application/x-shockwave-flash";
- implementation_uid = 0x101f4e5d;
- }
-#endif
-
- };
- }
-
-//----------------------------------------------------
-//
-// r_anim_timeout_slider
-// Duration slider.
-//
-//----------------------------------------------------
-//
-RESOURCE SLIDER r_anim_timeout_slider
- {
- layout = EAknSettingsItemSliderLayout;
- minvalue = 5;
- maxvalue = 60;
- step = 1;
- valuetype = EAknSliderValueBareFigure;
- singular_valuelabel = qtn_sanim_duration_slider_ykcur;
- minlabel = qtn_sanim_duration_slider_min;
- maxlabel = qtn_sanim_duration_slider_max;
- valuelabel = qtn_sanim_duration_slider_cur;
- }
-
-//----------------------------------------------------
-//
-// r_light_timeout_slider
-// Backlight slider.
-//
-//----------------------------------------------------
-//
-RESOURCE SLIDER r_light_timeout_slider
- {
- layout = EAknSettingsItemSliderLayout;
- minvalue = 0;
- maxvalue = 30;
- step = 1;
- valuetype = EAknSliderValueBareFigure;
- singular_valuelabel = qtn_sanim_duration_slider_ykcur;
- minlabel = qtn_sanim_slider_off;
- maxlabel = qtn_sanim_slider_max_secs;
- valuelabel = qtn_sanim_slider_context_value_secs;
- }
-
-// -----------------------------------------------------------------------------
-//
-// r_anim_timeout_setting_page
-// Screen saver setting page.
-//
-// -----------------------------------------------------------------------------
-//
-RESOURCE AVKON_SETTING_PAGE r_anim_timeout_setting_page
- {
- number = EAknSettingPageNoOrdinalDisplayed;
- label = qtn_sanim_list_anim_timeout;
- softkey_resource = R_AVKON_SOFTKEYS_OK_CANCEL__OK;
- type = EAknCtSlider;//0xffff;
- editor_resource_id = r_anim_timeout_slider;
- }
-
-// -----------------------------------------------------------------------------
-//
-// r_light_timeout_setting_page
-// Screen saver setting page.
-//
-// -----------------------------------------------------------------------------
-//
-RESOURCE AVKON_SETTING_PAGE r_light_timeout_setting_page
- {
- number = EAknSettingPageNoOrdinalDisplayed;
- label = qtn_sanim_list_light_timeout;
- softkey_resource = R_AVKON_SOFTKEYS_OK_CANCEL__OK;
- type = EAknCtSlider;//0xffff;
- editor_resource_id = r_light_timeout_slider;
- }
-
-
-// -----------------------------------------------------------------------------
-//
-// r_sanim_setting_lbx
-//
-// -----------------------------------------------------------------------------
-//
-RESOURCE LISTBOX r_sanim_setting_lbx
- {
- array_id = r_sanim_setting_lbx_items;
- flags = EEikListBoxMultipleSelection;
- }
-
-// -----------------------------------------------------------------------------
-//
-// r_sanim_setting_lbx_items
-//
-// -----------------------------------------------------------------------------
-//
-RESOURCE ARRAY r_sanim_setting_lbx_items
- {
- items =
- {
- LBUF
- {
- txt = "\t"qtn_sanim_list_anim_file"\t\t";
- },
- LBUF
- {
- txt = "\t"qtn_sanim_list_anim_timeout"\t\t";
- },
- LBUF
- {
- txt = "\t"qtn_sanim_list_light_timeout"\t\t";
- }
-
- };
- }
-
-// ---------------------------------------------------------
-//
-// r_sanim_setting_dialog
-// SVG-T Dialog
-//
-// ---------------------------------------------------------
-//
-
-RESOURCE DIALOG r_sanim_setting_dialog
- {
- flags = EAknDialogSelectionList;
- title = "SANIM Dialog";
- buttons = R_AVKON_SOFTKEYS_SELECTION_LIST;
- items =
- {
- DLG_LINE
- {
- type = ESanimCustControl;
- id = ESanimDialogCustControlIdData;
- control = SANIM_CUST_CONTROL
- {
- };
- }
- };
- }
-// -----------------------------------------------------------------------------
-//
-// r_sanim_dialog_menubar
-// Resource for Dialog "Options" Menu Bar
-//
-// -----------------------------------------------------------------------------
-//
-RESOURCE MENU_BAR r_sanim_dialog_menubar
- {
- titles =
- {
- MENU_TITLE
- {
- menu_pane = r_sanim_dialog_menu;
- }
- };
- }
-
-// -----------------------------------------------------------------------------
-//
-// r_sanim_dialog_menu
-// Resource for Screen saver setting Dialog "Options" Menu Pane
-//
-// -----------------------------------------------------------------------------
-//
-RESOURCE MENU_PANE r_sanim_dialog_menu
- {
- items =
- {
- MENU_ITEM
- {
- command = ESanimDlgChangeCommand;
- txt = qtn_sanim_option_change;
- flags = EEikMenuItemAction; // add this line to list item action commands
- },
-#ifdef __SERIES60_HELP
- MENU_ITEM
- {
- command = ESanimDlgHelpCommand;
- txt = qtn_options_help;
- },
-#endif // __SERIES60_HELP
- MENU_ITEM
- {
- command = EAknCmdExit;
- txt = qtn_options_exit;
- }
- };
- }
-
-// ---------------------------------------------------
-//
-// r_sanim_title_settings
-//
-// ---------------------------------------------------
-//
-RESOURCE TBUF r_sanim_title_settings
- {
- buf = qtn_sanim_title_settings;
- }
-
-// ---------------------------------------------------
-//
-// r_sanim_title_settings
-//
-// ---------------------------------------------------
-//
-RESOURCE TBUF r_sanim_not_supported
- {
- buf = qtn_err_not_supp;
- }
-
-// ---------------------------------------------------
-//
-// r_sanim_title_settings
-//
-// ---------------------------------------------------
-//
-RESOURCE TBUF r_sanim_error_wrong_format
- {
- buf = qtn_sanim_error_wrong_format;
- }
-
-
-// ---------------------------------------------------
-//
-// r_sanim_err_failure
-//
-// ---------------------------------------------------
-//
-RESOURCE TBUF r_sanim_err_failure
- {
- buf = qtn_err_failure;
- }
-
-// ---------------------------------------------------
-//
-// r_sanim_slider_off
-//
-// ---------------------------------------------------
-//
-RESOURCE TBUF r_sanim_slider_off
- {
- buf = qtn_sanim_slider_off;
- }
-
-// ---------------------------------------------------
-//
-// r_drm_prev_rights_set
-//
-// ---------------------------------------------------
-//
-RESOURCE TBUF r_drm_prev_rights_set
- {
- buf = qtn_drm_prev_rights_set;
- }
-
-
-// ---------------------------------------------------
-//
-// r_sanim_screensaver_name
-//
-// ---------------------------------------------------
-//
-RESOURCE TBUF r_sanim_screensaver_name
- {
- buf = qtn_sanim_screensaver_name;
- }
-
-
-// -----------------------------------------------------------------------------
-//
-// r_sanim_msk_change
-// Middle softkey label: change. From Avkon resources (avkon.loc)
-// -----------------------------------------------------------------------------
-//
-RESOURCE TBUF r_sanim_msk_change
- {
- buf = qtn_msk_change;
- }
-
-
-// End of File
--- a/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/group/ScreenSaverAnimPlugin.mmp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: This is the .mmp for building the Screen Saver Anim Plugin
-*
-*/
-
-
-
-
-
-#include <bldvariant.hrh>
-#include <data_caging_paths.hrh>
-#include <platform_paths.hrh>
-
-TARGET ScreenSaverAnimPlugin.dll
-
-
-TARGETTYPE PLUGIN
-
-UID 0x10009D8D 0x10207447
-
-CAPABILITY CAP_ECOM_PLUGIN
-VENDORID VID_DEFAULT
-
-START RESOURCE ../data/10207447.rss
-TARGET ScreenSaverAnimPlugin.rsc
-END
-
-START RESOURCE ../data/ScreenSaverAnimPlugin.rss
-HEADER
-TARGETPATH RESOURCE_FILES_DIR
-LANGUAGE_IDS
-END // RESOURCE
-
-
-/* exportunfrozen */
-
-SOURCEPATH ../src
-SOURCE ScreenSaverAnimPlugin.cpp
-SOURCE ScreenSaverAnimPluginProxy.cpp
-SOURCE NpnImplementation.cpp
-SOURCE ScreenSaverAnimPluginContainer.cpp
-SOURCE ScreenSaverAnimSettingDialog.cpp
-SOURCE ScreenSaverAnimPluginHelper.cpp
-
-
-
-USERINCLUDE ../inc
-
-// This is a SYSTEMINCLUDE macro containing the middleware
-// layer specific include directories
-APP_LAYER_SYSTEMINCLUDE
-
-
-LIBRARY ecom.lib
-LIBRARY euser.lib
-LIBRARY eikcore.lib
-LIBRARY cone.lib
-LIBRARY efsrv.lib
-LIBRARY bafl.lib
-LIBRARY centralrepository.lib
-LIBRARY cenrepnotifhandler.lib
-LIBRARY DrmHelper.lib
-LIBRARY aknicon.lib // AknIconUtils
-LIBRARY aknlayout2.lib // Scalable UI
-LIBRARY AknLayout2Scalable.lib // Scalable UI
-LIBRARY aknskins.lib
-LIBRARY CdlEngine.lib // Scalable UI
-LIBRARY avkon.lib
-LIBRARY apgrfx.lib
-LIBRARY apmime.lib
-LIBRARY mgfetch.lib
-LIBRARY eikcoctl.lib
-LIBRARY CommonEngine.lib
-LIBRARY eikdlg.lib
-LIBRARY flogger.lib
-LIBRARY caf.lib
-LIBRARY cafutils.lib
-#ifdef __SERIES60_HELP
-LIBRARY hlplch.lib // for "Help" options menu
-#endif // __SERIES60_HELP
-
-
-// End of File
--- a/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/group/bld.inf Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Build information file for ScreenSaverAnimPlugin
-*
-*/
-
-
-
-
-
-#include <platform_paths.hrh>
-
-PRJ_PLATFORMS
-// Defaults
-
-
-
-PRJ_MMPFILES
-
-ScreenSaverAnimPlugin.mmp
-PRJ_EXPORTS
-//../inc/NPNExtensions.h MW_LAYER_PLATFORM_EXPORT_PATH(NPNExtensions.h)
-../loc/screensaveranimplugin.loc MW_LAYER_LOC_EXPORT_PATH(screensaveranimplugin.loc)
-
-../rom/ScreenSaverAnimPlugin.iby CORE_MW_LAYER_IBY_EXPORT_PATH(ScreenSaverAnimPlugin.iby)
-../rom/ScreenSaverAnimPluginResources.iby LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(ScreenSaverAnimPluginResources.iby)
-
-// Generic configuration interface for component cenrep settings
-../conf/screensaveranimplugin.confml APP_LAYER_CONFML(screensaveranimplugin.confml)
-../conf/screensaveranimplugin_1020744E.crml APP_LAYER_CRML(screensaveranimplugin_1020744E.crml)
-
-// End of file
--- a/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/NpnImplementation.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,140 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Thin wrapper around plugin's function table.
-*
-*/
-
-
-
-
-
-#ifndef NPNIMPLEMENTATION_H
-#define NPNIMPLEMENTATION_H
-
- // INCLUDE FILES
-#include <e32std.h>
-#include <e32base.h>
-#include <eikenv.h>
-#include <npupp.h>
-#include <sysutil.h>
-
-
-NPError NpnGetUrl( NPP aInstance, const TDesC& aUrl,
- const TDesC* aWindowType );
-
-
-NPError NpnPostUrl( NPP aInstance, const TDesC& aUrl,
- const TDesC* aWindowType, const TDesC& aBuf, NPBool aFile );
-
-
-NPError NpnRequestRead( NPStream* /*aStream*/,
- NPByteRange* /*aRangeList*/ );
-
-
-NPError NpnNewStream( NPP /*aInstance*/, NPMIMEType /*aType*/,
- const TDesC* /*aWindowType*/, NPStream** /*aStream*/ );
-
-
-TInt32 NpnWrite( NPP /*aInstance*/, NPStream* /*aStream*/,
- TInt32 /*aLen*/, void* /*aBuffer*/ );
-
-
-NPError NpnDestroyStream( NPP /*aInstance*/,
- NPStream* /*aStream*/, NPReason /*aReason*/ );
-
-
-void NpnStatus( NPP /*aInstance*/, const TDesC& aMessage );
-
-
-const TDesC* NpnUAgent( NPP /*aInstance*/ );
-
-
-void* NpnMemAlloc( uint32 aSize );
-
-
-void NpnMemFree( void* aPtr );
-
-
-uint32 NpnMemFlush( uint32 /*aSize*/ );
-
-
-void NpnReloadPlugins( NPBool aReloadPages );
-
-
-JRIEnv* NpnGetJavaEnv();
-
-
-jref NpnGetJavaPeer( NPP /*aInstance*/ );
-
-
-NPError NpnGetUrlNotify( NPP aInstance, const TDesC& aUrl,
- const TDesC* aWindowType, void* aNotifyData );
-
-
-NPError NpnPostUrlNotify( NPP aInstance, const TDesC& aUrl,
- const TDesC* aWindowType, const TDesC& aBuf, NPBool aFile, void* aNotifyData );
-
-
-NPError NpnGetValue( NPP aInstance, NPNVariable aVariable, void *aRetValue );
-
-
-NPError NpnSetValue( NPP aInstance, NPPVariable aVariable, void *aSetValue );
-
-
-void NpnInvalidateRect( NPP /*aInstance*/, NPRect * /*aRect*/ );
-
-
-void NpnInvalidateRegion( NPP /*aInstance*/, NPRegion /*aRegion*/ );
-
-
-void NpnForceRedraw( NPP /*aInstance*/ );
-
-
-
-// -----------------------------------------------------------------------------
-// PluginNpnFuncs
-//
-// A const global variable used to hold the browser callback functions.
-// -----------------------------------------------------------------------------
-//
-const NPNetscapeFuncs NpnImplementationFuncs =
- {
- sizeof( NPNetscapeFuncs ),
- 1, // Version
- NpnGetUrl,
- NpnPostUrl,
- NpnRequestRead,
- NpnNewStream,
- NpnWrite,
- NpnDestroyStream,
- NpnStatus,
- NpnUAgent,
- NpnMemAlloc,
- NpnMemFree,
- NpnMemFlush,
- NpnReloadPlugins,
- NpnGetJavaEnv,
- NpnGetJavaPeer,
- NpnGetUrlNotify,
- NpnPostUrlNotify,
- NpnGetValue,
- NpnSetValue,
- NpnInvalidateRect,
- NpnInvalidateRegion,
- NpnForceRedraw
- };
-
-
-#endif // NPNIMPLEMENTATION_H
-// End Of file
--- a/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/ScreenSaverAnimCustControl.rh Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-/*
-* Copyright (c) 2004,2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Resource Header for SVGT Custom Control Structure
-*
-*/
-
-
-
-
-
-#ifndef SCREENSAVERANIMCUSTCONTROL_RH
-#define SCREENSAVERANIMCUSTCONTROL_RH
-// INCLUDES
-
-// MACROS
-
-// STRUCTURE DEFINITIONS
-
-// -----------------------------------------------------------------------------
-// SANIM_CUST_CONTROL
-// Defines the resource structure for SVGT Custom Control.
-// -----------------------------------------------------------------------------
-//
-
-STRUCT SANIM_CUST_CONTROL
- {
- }
-#endif // SCREENSAVERANIMCUSTCONTROL_RH
-
-// End of File
--- a/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/ScreenSaverAnimPlugin.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,576 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: ScreenSaverAnimPlugin provides an implementation of
-* MScreensaverPlugin for animation files.
-*
-*/
-
-
-
-#ifndef C_SCREENSAVERANIMPLUGIN_H
-#define C_SCREENSAVERANIMPLUGIN_H
-
-#include <gdi.h>
-#include <ScreensaverpluginIntDef.h>
-#include <coecntrl.h>
-#include <e32cmn.h>
-#include <screensaverplugin.h>
-#include <coecobs.h>
-#include <npupp.h>
-#include <ecom/implementationinformation.h>
-#include <cecombrowserplugininterface.h>
-#include <pluginadapterinterface.h>
-#include <flogger.h>
-
-
-class CEikonEnv;
-class CDRMHelper;
-class CScreensaverRepositoryWatcher;
-class CRepository;
-
-
-_LIT( KFileLoggingDir, "ScreenSaver" );
-_LIT( KFileLog, "SaveLog.txt" );
-_LIT( KEmptyString, "" );
-
-#ifdef SCREENSAVER_LOG_ENABLED
-
-inline void PrintDebugMsg( const TDesC& aMsg )
- {
- RDebug::Print( aMsg );
-#if 0
- RFileLogger::Write( KFileLoggingDir,
- KFileLog, EFileLoggingModeAppend, aMsg );
-#endif
- }
-#else
-
-inline void PrintDebugMsg( const TDesC& /*aMsg*/ )
- {
- }
-
-#endif
-
-/**
-* Encapsulates the Settings that are written into the central repository
-* @lib ScreenSaverAnimPlugin.lib
-* @since 3.1
-*/
-class CScreenSaverAnimSettingObject : public CBase
- {
-
- public:
- CScreenSaverAnimSettingObject();
-
- public:
-
- // Name of the file to be set as screensaver
- TFileName iFileName;
-
- // Animation Timeout
- TInt iAnimationTimeout;
-
- // Lights Timeout
- TInt iLightsTimeout;
- };
-
-/**
-* Provides the Animated ScreenSaverPlugin functionality which implements
-* ScreenSaver Interface and gives a Netscape Browser Plugin Interface
-* to the format specific plugins like SVG, Flash, M3G etc.
-* @lib ScreenSaverAnimPlugin.lib
-* @since 3.1
-*/
-
-class CScreenSaverAnimPlugin: public CScreensaverPluginInterfaceDefinition,
- public MPluginAdapter,
- public MCoeControlObserver
- {
-
- public:
-
- /**
- * Two-phased constructor.
- * @since 3.1
- */
- static CScreenSaverAnimPlugin* NewL();
-
- /**
- * Destructor.
- */
- virtual ~CScreenSaverAnimPlugin();
-
- public: // Functions From CScreensaverPluginInterfaceDefinition
-
- /**
- * From MScreensaverPlugin, Method called by ScreenSaver Application
- * when an animation file is configured as a Screen Saver.
- * @param aHost Screen saver plugin host.
- * @since 3.1
- */
- virtual TInt InitializeL( MScreensaverPluginHost *aHost );
-
- /**
- * From MScreensaverPlugin, Method called by ScreenSaver Application
- * when Screen Saver is activated.
- * @since 3.1
- */
- virtual TInt Draw( CWindowGc& aGc );
-
- /**
- * From MScreensaverPlugin, Method called by ScreenSaver Application
- * before the InitializeL.
- * @since 3.1
- */
- virtual const TDesC16& Name() const;
-
- /**
- * From MScreensaverPlugin, Method called by ScreenSaver Application
- * to get the capabilities of Screensaver plugin.
- * @since 3.1
- */
- virtual TInt Capabilities();
-
- /**
- * From MScreensaverPlugin, Method called by Psln Application
- * when the user selects Animated ScreenSaver
- * @since 3.1
- */
- virtual TInt PluginFunction(
- TScPluginCaps /*aFunction*/,
- TAny* /*aParam*/ );
-
- /**
- * From MScreensaverPlugin, Method called by ScreenSaver Application
- * when there are Screen Saver events.
- * @since 3.1
- */
- virtual TInt HandleScreensaverEventL(
- TScreensaverEvent aEvent,
- TAny* aData );
-
- public: // New Functions
-
- /**
- * Reads the animation settings from the central repository
- * @since 3.1
- * @return System wide Error value
- */
- TInt GetAnimSettings();
-
- /**
- * Writes the animation settings to the central repository
- * @since 3.1
- * @return System wide Error value
- */
- TInt SetAnimSettings() const;
-
- /**
- * This method registers for expiry of drm content
- * @since 3.1
- * @return System wide Error value
- */
- TInt RegisterForDrmExpiry();
-
- /**
- * This method unregisters for expiry of drm content
- * @since 3.1
- * @return System wide Error value
- */
- TInt UnregisterForDrmExpiry();
-
- /**
- * This method reads and parses the central repository key
- * for drm expiry
- * @since 3.1
- * @return System wide Error value
- */
- TInt ReadDrmNotification( TDes8& aString );
-
- /**
- * Called when there is a drm expiry notification
- * @since 3.1
- */
- void ProcessDrmNotificationL();
-
- /**
- * This method pops the settings dialog
- * @since 3.1
- */
- void PopSettingsDialogL();
-
- /**
- * This method checks whether the set file exists currently
- * if not, it updates the filename string
- * This also checks if the rights are valid if the content is drm
- * if not, it updates the filename with the empty file name
- * returns True, if the Filename is updated
- * False, otherwise
- * @since 3.1
- */
- TBool UpdateFileName();
-
- /**
- * Called when HandleScreenSaverEventL is called with EDisplayChanged
- * Used to set the parent control for the animation plugins
- * returns KErrGeneral when SetWindow does not go through
- * @since 3.1
- */
- TInt SetWindow( CCoeControl* aParent );
-
- /**
- * Called to set the filename for the animation plugins
- * @since 3.1
- */
- void AsFile();
-
- /**
- * Called when there is a central repository settings change
- * @since 3.1
- */
- void HandleSettingsChange( TAny* aPtr );
-
- /**
- * Called by the repository watcher when there is a central
- * repository settings change
- * @since 3.1
- */
- static TInt HandleRepositoryCallBack( TAny* aPtr );
-
- /**
- * Called by the repository watcher when there is a
- * drm expiry notification
- * @since 3.1
- */
- static TInt HandleDrmNotification( TAny* aPtr );
-
- /**
- * Sends an event to the plugins to check for the file's validity
- * repository settings change
- * returns KErrNone if the file is valid
- * @since 3.1
- */
- TInt CheckFileValidityL( const TDesC& aFileName );
-
- /**
- * Parses the mime description and checks whether the given mime type
- * is present in the mime description
- * @since 3.1
- * @param aMIMEDescription mime Description which has mimetype,
- * extension and description
- * @param aDataType mimetype to be searched
- * @return TBool ETrue if aDataType is present in aMIMEDescription
- * EFalse otherwise
- */
- static TBool ParseMimeStringL( const TDesC& aMIMEDescription,
- const TDesC& aDataType );
-
- /**
- * Given the mimetype searches and returns the browser plugin which
- * handles the given mimetype
- * @since 3.1
- * @param aDataType
- * @return TUid uid of the plugin which handles the mimetype
- */
- TUid FindAnimPluginL( const TDesC& aDataType );
-
-
- public: // From MPluginAdapter
-
- /**
- * Gets the pointer to the minor version number of the plug-in version
- * number of the Browser Plug-in API.
- * @since 3.1
- * @return Series 60 returns 1. Series 80 and
- * the Nokia 7710 smartphone return 101.
- */
- virtual TUint16 GetVersion();
-
- /**
- * Called when the plug-in has completed its creation.
- * This function is called from the constructL function of the plug-in.
- * @since 3.1
- * @param aPluginControl A pointer to the plug-in control window
- */
- virtual void PluginConstructedL( CCoeControl* aPluginControl );
-
- /**
- * Called after the plug-in has been deleted.
- * This function is called from the destructor of the plug-in.
- * @since 3.1
- */
- virtual void PluginFinishedL();
-
-#ifndef __SERIES60_30__
-
- /**
- * Called by the plug-in to open a URL in the parent frame.
- * This function is not implemented in Series 60.
- * It is supported in Series 80 and in the Nokia 7710 smartphone.
- * @since 3.1
- * @param aUrl Name of the URL to open
- */
- virtual void OpenUrlL( const TDesC& aUrl );
-
- /**
- * Called by the plug-in to open a URL in a named window or frame.
- * This function is not implemented in Series 60.
- * It is supported in Series 80 and in the Nokia 7710 smartphone.
- * @since 3.1
- * @param aUrl Name of the URL to open
- * @param aNewTargetWindowName The name of the target window or frame
- */
- virtual void OpenUrlInTargetWindowL( const TDesC& aUrl,
- const TDesC& aNewTargetWindowName );
-
- /**
- * Specifies whether or not the frame has a previous navigation
- * history item.
- * This function is not implemented in Series 60.
- * It is supported in Series 80 and in the Nokia 7710 smartphone.
- * @since 3.1
- * @return true if the frame has a previous navigation
- * history item false otherwise
- */
- virtual TBool HasNavigationHistoryPrevious() const;
-
- /**
- * Informs the browser to load the next navigation history URL
- * in its parent frame.
- * This function is not implemented in Series 60.
- * It is supported in Series 80 and in the Nokia 7710 smartphone.
- * @since 3.1
- */
- virtual void LoadNavigationHistoryPreviousL();
-
- /**
- * Returns whether the frame has a next navigation history item.
- * This function is not implemented in Series 60.
- * It is supported in Series 80 and in the Nokia 7710 smartphone.
- * @since 3.1
- * @return Returns whether the frame has a next navigation history item.
- */
- virtual TBool HasNavigationHistoryNext() const;
-
- /**
- * Informs the browser to load the next navigation history URL
- * in its parent frame.
- * This function is not implemented in Series 60. It is supported in
- * Series 80 and in the Nokia 7710 smartphone.
- * @since 3.1
- */
- virtual void LoadNavigationHistoryNextL();
-
-#endif
- /**
- * Returns the window system level control object for the plug-in.
- * @since 3.1
- * @return A pointer to the parent control window.
- */
- virtual CCoeControl* GetParentControl();
-
- /**
- * Returns the observer for the plug-in control.
- * @since 3.1
- * @return Observer that the plug-in can use to send events
- * to the browser.
- */
- virtual MCoeControlObserver* GetParentControlObserver();
-
- /**
- * Sets the plug-in notifier allowing the plug-in to control
- * portions of the browser.
- * @since 3.1
- * @param aNotifier Pointer to an interface that the browser can
- * use to send events to the plug-in.
- */
- virtual void SetPluginNotifier( MPluginNotifier *aNotifier );
-
- /**
- * Tells the plugin adapter if plugin content can accept user interaction. This function
- * is called from the plugin.
- * @since Series 60 3nd Edition
- * @param None
- * @return None
- */
- virtual void SetContentInteractive( TBool /*aInteractive*/ );
-
- public: //MCoeControlObserver
- /**
- * Handles an event from an observed control.
- * This function is called when a control for which this control
- * is the observer calls CCoeControl::ReportEventL(). It should be
- * implemented by the observer control, and should handle all events
- * sent by controls it observes.
- * @param aControl The control that sent the event.
- * @param aEventType The event type.
- */
- virtual void HandleControlEventL( CCoeControl* aControl,
- TCoeEvent aEventType );
-
- private: // New functions
-
- /**
- * Finds the mime type of the file, searches the corresponding
- * browser plugin which handles the mime type and starts the same.
- * @since 3.1
- */
- void FindAndStartPluginL( const TDesC& aFileName,
- TBool aCheckFileMode = EFalse );
-
- /**
- * Makes use of ecom api to find out whether an implementation with uid
- * aImpUid is present which implements the interface aInterfaceUid.
- * @since 3.1
- */
- TBool CheckIfPluginPresentL( TUid aInterfaceUid,
- TUid aImpUid );
-
- /**
- * Finds the mime type of the file, searches the corresponding
- * browser plugin which handles the mime type
- * @since 3.1
- */
- void FindPluginL( const TDesC& aFileName );
-
- /**
- * Creates the format specific plugin
- * @since 3.1
- */
- void CreatePluginL( TBool aCheckFileMode = EFalse );
-
- /**
- * Deletes the browser plugin.
- * @since 3.1
- */
- void DeletePlugin();
-
- /**
- * Deletes and Sets the browser plugin members to NULL
- * @since 3.1
- */
- void SetPluginDeleted();
-
- /**
- * Connects the central repository session
- * @since 3.1
- */
- void InitializeCenRepL();
-
- /**
- * Registers for central repository key changes
- * @since 3.1
- */
- void NotifyCenrepChangeL();
-
- /**
- * Cancels registration for central repository key changes
- * @since 3.1
- */
- void NotifyCenrepChangeCancel();
-
- /**
- * Disconnects the central repository session
- * @since 3.1
- */
- void UnInitializeCenRep();
-
- /**
- * Sends an animation end event to the plugins
- * @since 3.1
- */
- TInt SendEndEvent();
-
- /**
- * Checks whether the given content id matches the content id of the
- * file name given
- * @return ETrue if the content id matches
- * EFalse if not
- * @since 3.1
- */
- TBool CheckContentIdL( const TDesC& aFileName, TDesC8& aContentUri );
-
- private:
-
- /**
- * Default Constructor
- * @since 3.1
- */
- CScreenSaverAnimPlugin();
-
- /**
- * 2nd phase constructor
- * @since 3.1
- */
- void ConstructL();
-
- public:
-
- // Pointer to the screen saver host
- MScreensaverPluginHost* iScreenSaverHost;
-
- private:
-
- // Resource file offset
- TInt iResourceOffset;
-
- // Handle to the central repository session
- CRepository* iAnimPluginSession;
-
- // Handle to the central repository session
- CRepository* iDrmSession;
-
- // Environment pointer
- CEikonEnv* iEikEnv;
-
- // Format specific Netscape plugin UID
- TUid iPluginUID;
-
- // Netscape plugin functions.
- NPPluginFuncs* iPluginFuncs;
-
- // Netscape ECOM plugin interface.
- CEcomBrowserPluginInterface* iPluginInterface;
-
- // Netscape plugin instance.
- NPP iNPPinstance;
-
- // Plugin Type
- HBufC8* iPluginType;
-
- // Parent control given by the screen saver application
- CCoeControl* iParentControl;
-
- // Pointer to the Settings object
- CScreenSaverAnimSettingObject* iSettingObject;
-
- // Pointer to Drm Helper
- CDRMHelper* iDrmHelper;
-
- // Cenrep Watcher for settings change
- CScreensaverRepositoryWatcher* iScreensaverRepositoryWatcher;
-
- // Cenrep Watcher for drm expiry
- CScreensaverRepositoryWatcher* iDrmExpiryWatcher;
-
- // To save the error encountered by the plugin
- TInt iPluginError;
-
- // Screensaver plugin name
- HBufC* iScreensaverName;
- };
-
-
-#endif // C_SCREENSAVERANIMPLUGIN_H
-// End Of file
--- a/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/ScreenSaverAnimPlugin.hrh Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: The enumeration will be used in the animation plugin
-*
-*/
-
-
-
-#ifndef SCREENSAVERANIMPLUGIN_HRH
-#define SCREENSAVERANIMPLUGIN_HRH
-
-#include <avkon.hrh>
-
-
-// Screen Animation Plugin's Setting List Items.
-enum TSanimSettingListItemIds
- {
- ESanimAnimFileNameId,
- ESanimAnimTimeoutId,
- ESanimLightsTimeoutId
- };
-
-enum TSAnimDialogMenuCommands
- {
- ESanimDlgChangeCommand = 1, // Must not start with 0 - dialog ignores it
- ESanimDlgHelpCommand
- };
-
-enum { ESanimDialogCustControlIdData = 1 };
-enum { ESanimCustControl = 1020 };
-
-
-#endif
-
-// End of file.
--- a/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/ScreenSaverAnimPluginConst.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Constant definitions for Screen Saver Anim Plugin
-*
-*/
-
-
-
-
-
-#ifndef SCREENSAVERANIMPLUGINCONST_H
-#define SCREENSAVERANIMPLUGINCONST_H
-
-// Feature IDs.
-enum
- {
- // Remove Back Light Setting
- EAnimPluginBacklightRemoved,
-
- /*Insert new item here*/
-
- // last feature should be max value
- KAnimPluginMaxFeatureID
- };
-
-/**
-*******************************************************************************
-* Following constants are shared between PLSN. The three constants need to be
-* sychronized in both PLSN and Screensaver Animation plugin projects when each
-* has changes.
-*******************************************************************************
-*/
-// Same definition as in PslnVariationPrivateCRKeys.h
-const TUid KCRUidThemesVariation = { 0x102818EB };
-
-
-/**
-* Specifies the bitmask for Themes applications locally variated features.
-*
-* Possible values are defined in PslnVariant.hrh.
-*/
-const TUint32 KThemesLocalVariation = 0x00000001;
-
-
-// Same definition as in pslnvariant.hrh
-// Removes screensaver animation plugin's timeout setting.
-// Bitmask value in decimals: 256.
-#define KScreenSaverRemoveAnimPluginTimeout 0x00000100
-
-
-#endif // SCREENSAVERANIMPLUGINCONST_H
-// End Of file
--- a/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/ScreenSaverAnimPluginContainer.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,160 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: This header defines the container for the settings list
-*
-*/
-
-
-
-#ifndef C_SCREENSAVERANIMPLUGINCONTAINER_H
-#define C_SCREENSAVERANIMPLUGINCONTAINER_H
-
-// INCLUDES
-#include <coeccntx.h>
-#include <eikclb.h>
-#include <eiklbo.h>
-
-// CLASS DECLARATION
-
-/**
-* CScreenSaverAnimPluginContainer container class
-*
-*/
-class CScreenSaverAnimPluginContainer : public CCoeControl,
- public MEikListBoxObserver
- {
- public: // Constructors and destructor
-
- static CScreenSaverAnimPluginContainer* NewLC(
- CScreenSaverAnimPlugin* aCaller,
- const CCoeControl* aParent,
- CScreenSaverAnimSettingObject* aSettingObject );
-
- static CScreenSaverAnimPluginContainer* NewL(
- CScreenSaverAnimPlugin* aCaller,
- const CCoeControl* aParent,
- CScreenSaverAnimSettingObject* aSettingObject );
-
- CScreenSaverAnimPluginContainer(
- CScreenSaverAnimPlugin* aCaller,
- CScreenSaverAnimSettingObject* aSettingObject );
-
- virtual void ConstructL( const CCoeControl* aParent,
- const TRect& aRect );
-
- /**
- * Constructs all common parts of the container.
- * @param aRect Listbox control's rect.
- * @param aResTitleId Resource id for title.
- * @param aResLbxId Resource id for listbox.
- * @return void
- */
- void BaseConstructL( const TRect& aRect, TInt aResTitleId,
- TInt aResLbxId = 0 );
-
- /**
- * Destructor.
- */
- ~CScreenSaverAnimPluginContainer();
-
- public: //new
-
- /**
- * Updates listbox's item's value.
- * @param aItemId An item which is updated.
- * @return void.
- */
- void UpdateListBoxL( TInt aItemId );
-
- void HandleListBoxSelectionL();
-
- /**
- * Sets feature support - see screensaveranimpluginconst.h for feature list.
- * @param aFeatureBitFlags feature support bitflags.
- */
- void GetFeatureSupportL( TBitFlags& aFeatureBitFlags ) const;
-
- /**
- * Checks if feature is supported.
- * @param aFeatureID feature ID.
- * @return ETrue if feature is supported, EFalse otherwise.
- */
- TBool IsFeatureSupported( TInt aFeatureID );
-
- public: //MEikListBoxObserver
-
- virtual void HandleListBoxEventL( CEikListBox* aListBox,
- TListBoxEvent aEventType );
-
- public: //From CCoeControl
-
- virtual void HandleResourceChange( TInt aType );
-
- TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent,
- TEventCode aType ); // this processes key events
-
- virtual void SetContainerWindowL( const CCoeControl& aContainer );
-
- // Focus change handler
- void FocusChanged( TDrawNow aDrawNow );
-
- protected: // New methods
-
- /**
- * Constructs listbox.
- * @param aResLbxId Resource id for listbox.
- * @return void
- */
- virtual void ConstructListBoxL( TInt aResLbxId );
-
- private: // new
- void CreateListBoxItemsL();
- void MakeAnimTimeOutItemL();
- void MakeLightsTimeOutItemL();
- void MakeFileNameItem();
- void ShowFileNameItemL();
- void ShowAnimTimeOutItemL();
- void ShowLightsTimeOutItemL();
-
- private: // from CCoeControl
-
- void SizeChanged();
-
- TInt CountComponentControls() const;
-
- CCoeControl* ComponentControl( TInt /*aIndex*/ ) const;
-
- void GetNormalScreenLayoutRect( TRect& aRect ) const;
-
- protected: // Data
- CEikTextListBox* iListBox;
-
- private: // new
- CDesCArrayFlat* iItems;
- CDesCArray* iItemArray;
- TBuf<128> iItem;
- CScreenSaverAnimSettingObject* iSettingObject;
- CScreenSaverAnimPlugin* iCaller;
- TBool iInShowFileItem;
-
- /**
- * Defines which features are supported.
- */
- TBitFlags iFeaturesSupport;
-
- };
-
-#endif // C_SCREENSAVERANIMPLUGINCONTAINER_H
-
-// End of File
--- a/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/ScreenSaverAnimPluginHelper.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,144 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: This file declares all helper classes
-* for ScreenSaverAnimPlugin
-*
-*/
-
-
-
-#ifndef C_SCREENSAVERANIMPLUGINHELPER_H
-#define C_SCREENSAVERANIMPLUGINHELPER_H
-
-// INCLUDES
-#include <e32base.h>
-#include <MMGFetchVerifier.h>
-#include <cenrepnotifyhandler.h>
-
-// FORWARD DECLARATIONS
-class CDRMHelper;
-class CCoeEnv;
-class CScreenSaverAnimPlugin;
-class CRepository;
-
-// CLASS DECLARATION
-
-/**
-* Implementation for File Validity Check.
-* @since 3.1
-* @internal
-*/
-class CScreenSaverAnimPluginVerifier : public CBase, public MMGFetchVerifier
- {
- public: // Constructors and destructor
-
- /**
- * Two-phased constructor.
- */
- static CScreenSaverAnimPluginVerifier* NewL(
- CScreenSaverAnimPlugin* aFileVerify );
-
- /**
- * Destructor.
- */
- ~CScreenSaverAnimPluginVerifier();
-
- public: // Functions from base classes
-
- /**
- * From MFLDFileObserver.
- */
- TBool VerifySelectionL( const MDesCArray* aSelectedFiles );
-
- private:
-
- /**
- * C++ default constructor.
- */
- CScreenSaverAnimPluginVerifier( CScreenSaverAnimPlugin* aFileVerify );
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructL();
- void ShowErrorNoteL( TInt aResourceId ) const;
-
- private: // Data
- // Own: DRM helper
- CDRMHelper* iDRMHelper;
-
- // Environment pointer
- CCoeEnv* iCoeEnv;
-
- CScreenSaverAnimPlugin* iFileVerify;
-
- };
-
-
-// CLASS DECLARATION
-
-/**
-* Helper Class to watch Central Repository Changes.
-* @since 3.1
-* @internal
-*/
-class CScreensaverRepositoryWatcher : public CBase, public MCenRepNotifyHandlerCallback
- {
-public:
- static CScreensaverRepositoryWatcher* NewL(
- const TUid aUid,
- const TUint32 aKey,
- CCenRepNotifyHandler::TCenRepKeyType aKeyType,
- TCallBack aCallBack,
- CRepository* aRepository );
-
- static CScreensaverRepositoryWatcher* NewL(
- const TUid aUid,
- TCallBack aCallBack,
- CRepository* aRepository );
-
- ~CScreensaverRepositoryWatcher();
-
- TUint32 ChangedKey();
-
-public: // from MCenRepNotifyHandlerCallback
- void HandleNotifyInt ( TUint32 aKey, TInt aNewValue );
- void HandleNotifyString ( TUint32 aKey, const TDesC16& aNewValue );
- void HandleNotifyGeneric( TUint32 aKey );
- void HandleNotifyError ( TUint32 aKey, TInt aError, CCenRepNotifyHandler* aHandler );
-
-private:
- CScreensaverRepositoryWatcher(
- const TUid aUid,
- const TUint32 aKey,
- TCallBack aCallBack,
- CRepository* aRepository );
-
- void ConstructL( CCenRepNotifyHandler::TCenRepKeyType aKeyType );
-
- void ConstructL();
-
-private:
- TUid iUid;
- TUint32 iKey;
- TUint32 iChangedKey;
- TCallBack iCallBack;
- CRepository* iRepository;
- CCenRepNotifyHandler* iNotifyHandler;
-
- };
-
-#endif // C_SCREENSAVERANIMPLUGINHELPER_H
-
-// End of File
--- a/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/ScreenSaverAnimPluginImplementationUid.hrh Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Defines the ECOM Implementation UIDs.
-*
-*/
-
-
-
-
-
-#ifndef SCREENSAVERANIMPLUGINIMPLEMENTATIONUID_HRH
-#define SCREENSAVERANIMPLUGINIMPLEMENTATIONUID_HRH
-
-#define KScreenSaverAnimPluginImplementationUID 0x1020744D
-
-#endif // SCREENSAVERANIMPLUGINIMPLEMENTATIONUID_HRH
-// End of File
-
--- a/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/ScreenSaverAnimPluginInternalCRKeys.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: This header file gives the central repository key
-* enumerations
-*
-*/
-
-
-
-
-#ifndef SCREENSAVERANIMPLUGININTERNALCRKEYS_H
-#define SCREENSAVERANIMPLUGININTERNALCRKEYS_H
-
-const TUid KCRUidScreenSaverAnimPlugin = { 0x1020744E };
-
-const TUint32 KScreenSaverAnimatedFileName = 0x00000001;
-
-const TUint32 KScreenSaverAnimationTimeOut = 0x00000002;
-
-const TUint32 KScreenSaverLightsTimeOut = 0x00000003;
-
-#endif // SCREENSAVERANIMPLUGININTERNALCRKEYS_H
-// End of File
-
-
-
--- a/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/ScreenSaverAnimSettingDialog.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,192 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: ScreenSaverAnimPlugin Settings Dialog
-*
-*/
-
-
-
-#ifndef C_SCREENSAVERANIMSETTINGDIALOH_H
-#define C_SCREENSAVERANIMSETTINGDIALOH_H
-
-
-// FORWARD DECLARATIONS
-class CAknDialog;
-class CScreenSaverAnimPluginContainer;
-class CScreenSaverAnimSettingObject;
-
-/**
-* Provides the dialog functionality for viewing Settings.
-* @lib ScreenSaverAnimPlugin.dll
-* @since 3.1
-*/
-
-class CScreenSaverAnimSettingDialog : public CAknDialog
- {
- public: // Constructors and destructor
- /**
- * Two-phased constructor.
- */
- static CScreenSaverAnimSettingDialog* NewL(
- CScreenSaverAnimPlugin* aCaller,
- CScreenSaverAnimSettingObject* aSettingObject );
-
- /**
- * Two-phased constructor.
- */
- static CScreenSaverAnimSettingDialog* NewLC(
- CScreenSaverAnimPlugin* aCaller,
- CScreenSaverAnimSettingObject* aSettingObject );
-
- // Destructor
- virtual ~CScreenSaverAnimSettingDialog();
-
- public: // New functions
- public: // Functions from base classes
-
- /**
- * From CAknDialog Executes the dialog and deletes the dialog on exit.
- * @since 3.1
- * @param aFileHandle File handle to the SVGT content.
- * @param aAppObs Implementation Class provided by application that
- * uses this dialog
- * Note: The ownership of the file handle is not transferred.
- * It is the responsibility of the caller to close this file
- * after deleting this dialog.
- * @return Integer - Indicates Exit Reason.
- */
- virtual TInt ExecuteLD();
- /**
- * From CAknDialog - Called by framework to process commands invoked by
- * the user.
- */
- virtual void ProcessCommandL( TInt aCommandId );
-
-#ifdef __SERIES60_HELP
- /**
- * From CCoeControl Context Sensitive Help ID retrieving function.
- * @since 3.0
- * @see CCoeControl
- */
- void GetHelpContext( TCoeHelpContext& aContext ) const;
-#endif
-
- public:
-
- /**
- * Function used by the application to handle background/foreground
- * events. When the application goes to background the presentation
- * needs to be paused. When application comes back to foreground,
- * the user would need to start the paused presentation.
- * @param aForeground: ETrue: Foreground event,
- * EFalse: Background event.
- * @since 3.1
- */
- virtual void HandleApplicationForegroundEvent( TBool aForeground );
-
- protected: // Functions from base classes
- // From CEikDialog
- // From CAknDialog
-
- /**
- * From CAknDialog - Called by framework to dynamically manipulate
- * the menu for the dialog.
- */
- void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane );
-
- /**
- * From CEikDialog. Prelayouts the dialog.
- */
- void PreLayoutDynInitL();
-
- /**
- * From CAknDialog - Framework method to determine if it OK
- * to exit the dialog.
- */
- TBool OkToExitL( TInt aButtonId );
-
- /**
- * From CAknDialog - Called by framework to add custom control to the
- * dialog when specified in resource.
- */
- SEikControlInfo CreateCustomControlL( TInt aControlType );
-
- /**
- * From CAknDialog - Called by framework to notify resize of dialog.
- */
- void SizeChanged();
-
- /**
- * From CCoeControl Key Handling Method for control.
- * @since 3.1
- * @param aKeyEvent Key Event.
- * @param aType Type of Key Event.
- * @return TKeyResponse - EKeyWasConsumed/EKeyWasNotConsumed.
- */
- TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent,
- TEventCode aType );
-
- /**
- * From CCoeControl
- * @see CCoeControl::HandleResourceChange
- */
- void HandleResourceChange( TInt aType );
-
- /**
- * From CCoeControl
- * @see CCoeControl::FocusChanged
- */
- void FocusChanged( TDrawNow aDrawNow );
-
- /**
- * Sets middle softkey label.
- * @param aResourceId resource ID of label text to use.
- * @param aCommandId command to place to middle softkey.
- */
- void SetMiddleSoftKeyLabelL( const TInt aResourceId,
- const TInt aCommandId );
-
- private:
- /**
- * C++ default constructor.
- */
- CScreenSaverAnimSettingDialog(
- CScreenSaverAnimPlugin* aCaller,
- CScreenSaverAnimSettingObject* aSettingObject );
- /**
- * Second Phase constructor.
- */
- void ConstructL();
-
- private: // Data
-
- // Pointer to Custom CCoeControl.
- CScreenSaverAnimPluginContainer* iCustControl;
-
- // Application Title Text
- HBufC* iAppTitleText;
-
- // Text to be displayed in the title pane
- HBufC* iTitlePaneString;
-
- // Setting Object
- CScreenSaverAnimSettingObject* iSettingObject ;
-
- // Caller's reference
- CScreenSaverAnimPlugin* iCaller;
-
- };
-
-#endif // C_SCREENSAVERANIMSETTINGDIALOH_H
-// End of File
--- a/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/screensaver.hlp.hrh Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: The string to be used in the animation plugin
-*
-*/
-
-
-
-//
-// screensaver.hlp.hrh
-//
-
-//
-// File generated by cshlpcmp Version 011
-//
-
-#ifndef SCREENSAVER_HLP_HRH
-#define SCREENSAVER_HLP_HRH
-
-
-_LIT( KSCREENSAVER_HLP_ANIM_SETTINGS, "SCREENSAVER_HLP_ANIM_SETTINGS" ); //ScreenSaver animation settings
-_LIT( KSCREENSAVER_HLP_SLIDE_SET, "SCREENSAVER_HLP_SLIDE_SET" ); //Slide set screen saver settings
-
-#endif
--- a/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/loc/screensaveranimplugin.loc Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,141 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Localization strings for ScreenSaverAnimPlugin
-*
-*/
-
-
-
-
-
-//d: Screensaver name
-//d: Displayed in Themes application screensaver list
-//l: list_set_graphic_pane_t1
-//w:
-//r:3.1
-#define qtn_sanim_screensaver_name "Animation"
-
-//d: Title Pane String
-//d: Displayed in the title Pane when settings dialog is displayed.
-//l: title_pane_1
-//w:
-//r:3.1
-#define qtn_sanim_title_settings "Settings"
-
-//d: Text in the setting list item.
-//d: Displayed in the setting page to select backlight timer value
-//l: list_setting_pane_1
-//w:
-//r:3.1
-#define qtn_sanim_list_light_timeout "BackLight"
-
-//d: Text in the setting list item
-//d: Displayed in the setting page to select animation duration
-//l: list_setting_pane_t1
-//w:
-//r:3.1
-#define qtn_sanim_list_anim_timeout "Duration"
-
-//d: Text in the setting list item
-//d: Displayed in the setting page to select animation file
-//l: list_setting_pane_t1
-//w:
-//r:3.1
-#define qtn_sanim_list_anim_file "Animation file"
-
-//d:Text in slider control
-//d:Screen saver animation duration setting page
-//d:Minimum value
-//l:setting_slider_pane_t2
-//r:3.1
-#define qtn_sanim_duration_slider_min "5 sec."
-
-//d:Text in slider control
-//d:Screen saver animation duration setting page
-//d:Maximum value
-//l:setting_slider_pane_t3
-//r:3.1
-#define qtn_sanim_duration_slider_max "60 sec."
-
-//d:Text in slider control / setting list item value
-//d:Screen saver animation duration setting page
-//d:Context specific text
-//l:setting_slider_pane_t1 / list_set_graphic_pane_t1
-//r:3.1
-#define qtn_sanim_duration_slider_cur "%U seconds"
-
-//d:Text in slider control / setting list item value
-//d:Screen saver animation duration / backlight timeout setting page
-//d:Context specific text for singular value
-//l:setting_slider_pane_t1 / list_set_graphic_pane_t1
-//r:3.1
-#define qtn_sanim_duration_slider_ykcur "%U second"
-
-//d:Text in slider control
-//d:Screen saver backlight time-out setting page
-//d:Minimum value
-//l:slider_set_pane_2
-//r:3.1
-#define qtn_sanim_slider_off "Off"
-
-//d:Text in slider control
-//d:Screen saver backlight time-out setting page
-//d:Maximum value
-//l:slider_set_pane_2
-//r:3.1
-#define qtn_sanim_slider_max_secs "30 secs."
-
-//d:Text in slider control / setting list item value
-//d:Screen saver backlight time-out setting page
-//d:Context specific text
-//l:setting_slider_pane_t1 / list_set_graphic_pane_t1
-//r:3.1
-#define qtn_sanim_slider_context_value_secs "%U seconds"
-
-//d: Option in the Options menu.
-//d: Option used to change the settings
-//l: list_single_popup_menu_pane_1
-//w:
-//r:3.1
-#define qtn_sanim_option_change "Change"
-
-// Taken from errorres.loc
-// d: Generic error note to be displayed when user tries to
-// d: use some feature which is not supported
-// l: popup_note_window_1_four_rows
-// w: Errorres
-//
-#define qtn_err_not_supp "Feature is not supported"
-
-// d: error note to be displayed when user tries to
-// d: select some file which is corrupted
-// l: popup_note_window/opt2
-// w:
-// r:3.1
-#define qtn_sanim_error_wrong_format "File is corrupted or wrong format"
-
-// d: error note to be displayed when animation couldnot
-// d: be played as a screensaver
-// l: popup_note_window_1_four_rows
-// w:
-// r:3.1
-#define qtn_err_failure "Unable to perform operation"
-
-// d: error note to be displayed when animation couldnot
-// d: be set as a screensaver
-// l: popup_note_window_1_four_rows
-// w:
-// r:3.1
-#define qtn_drm_prev_rights_set "Unable to select.Object can only be viewed"
-
--- a/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/rom/ScreenSaverAnimPlugin.iby Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: IBY file for ScreenSaverAnimPlugin
-*
-*/
-
-
-
-
-#ifndef __SCREENSAVERANIMPLUGIN_IBY
-#define __SCREENSAVERANIMPLUGIN_IBY
-
-// File empty on 3.0, or if S60 native browser is not used
-#ifndef __SERIES60_30__
-#ifdef __SERIES60_NATIVE_BROWSER
-ECOM_PLUGIN(ScreenSaverAnimPlugin.dll,10207447.rsc)
-#endif
-#endif
-
-#endif // __SCREENSAVERANIMPLUGIN_IBY
-// End of File
--- a/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/rom/ScreenSaverAnimPluginResources.iby Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: IBY file for ScreenSaverAnimPlugin
-*
-*/
-
-
-
-
-#ifndef __SCREENSAVERANIMPLUGINRESOURCES_IBY
-#define __SCREENSAVERANIMPLUGINRESOURCES_IBY
-
-// File empty on 3.0, also if S60 browser is not used (media plugins not present)
-#ifndef __SERIES60_30__
-#ifdef __SERIES60_NATIVE_BROWSER
-data=DATAZ_\RESOURCE_FILES_DIR\ScreenSaverAnimPlugin.rsc RESOURCE_FILES_DIR\ScreenSaverAnimPlugin.rsc
-#endif
-#endif
-
-#endif // __SCREENSAVERANIMPLUGINRESOURCES_IBY
-// End of File
--- a/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/src/NpnImplementation.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,286 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: This file defines the functions
-* _NPNetscapeFuncs of Browser's Netscape API
-*
-*/
-
-
-
-
-
-#include "NpnImplementation.h"
-
-
-// -----------------------------------------------------------------------------
-// NpnGetUrl
-//
-// Requests the associated pluginInst to load the given url.
-// -----------------------------------------------------------------------------
-//
- NPError NpnGetUrl( NPP /*aInstance*/, const TDesC& /*aUrl*/,
- const TDesC* /*aWindowType*/ )
- {
- return NPERR_GENERIC_ERROR;
- }
-
-// -----------------------------------------------------------------------------
-// NpnPostUrl
-//
-// Requests the associated pluginInst to POST to the given url.
-// -----------------------------------------------------------------------------
-//
- NPError NpnPostUrl( NPP /*aInstance*/, const TDesC& /*aUrl*/,
- const TDesC* /*aWindowType*/,
- const TDesC& /*aBuf*/, NPBool /*aFile*/ )
- {
- return NPERR_GENERIC_ERROR;
- }
-
-// -----------------------------------------------------------------------------
-// NpnRequestRead
-//
-// Unsupported.
-// -----------------------------------------------------------------------------
-//
- NPError NpnRequestRead( NPStream* /*aStream*/, NPByteRange* /*aRangeList*/ )
- {
- // This function is not supported
- return NPERR_GENERIC_ERROR;
- }
-
-// -----------------------------------------------------------------------------
-// NpnNewStream
-//
-// Unsupported.
-// -----------------------------------------------------------------------------
-//
- NPError NpnNewStream( NPP /*aInstance*/, NPMIMEType /*aType*/,
- const TDesC* /*aWindowType*/, NPStream** /*aStream*/ )
- {
- // This function is not supported.
- // It is specifically intended to create a new Browser window
- return NPERR_GENERIC_ERROR;
- }
-
-// -----------------------------------------------------------------------------
-// NpnWrite
-//
-// Unsupported.
-// -----------------------------------------------------------------------------
-//
- TInt32 NpnWrite( NPP /*aInstance*/, NPStream* /*aStream*/,
- TInt32 /*aLen*/, void* /*aBuffer*/ )
- {
- // This function is not supported.
- // It is specifically intended to create a new Browser window
- return NPERR_GENERIC_ERROR;
- }
-
-// -----------------------------------------------------------------------------
-// NpnDestroyStream
-//
-// Unsupported.
-// -----------------------------------------------------------------------------
-//
- NPError NpnDestroyStream( NPP /*aInstance*/, NPStream* /*aStream*/,
- NPReason /*aReason*/ )
- {
- // This function is not supported.
- // It is specifically intended to create a new Browser window
- return NPERR_GENERIC_ERROR;
- }
-
-// -----------------------------------------------------------------------------
-// NpnStatus
-//
-// Allows a plugin to report its current status to the associated PluginInst.
-// -----------------------------------------------------------------------------
-//
- void NpnStatus( NPP /*aInstance*/, const TDesC& /*aMessage*/ )
- {
- }
-
-// -----------------------------------------------------------------------------
-// NpnUAgent
-//
-// Returns the user agent of the Series 60 Browser.
-// -----------------------------------------------------------------------------
-//
- const TDesC* NpnUAgent( NPP /*aInstance*/ )
- {
- return NULL;
- }
-
-// -----------------------------------------------------------------------------
-// NpnMemAlloc
-//
-// Allocates a chunk of memory on the behalf of the plugin.
-// -----------------------------------------------------------------------------
-//
- void* NpnMemAlloc( uint32 aSize )
- {
- if ( aSize )
- {
- return User::Alloc( aSize );
- }
- return NULL;
- }
-
-// -----------------------------------------------------------------------------
-// NpnMemFree
-//
-// Deallocates a chunk of memory on the behalf of the plugin.
-// -----------------------------------------------------------------------------
-//
- void NpnMemFree( void* aPtr )
- {
- User::Free( aPtr );
- }
-
-// -----------------------------------------------------------------------------
-// NpnMemFlush
-//
-// Unsupported.
-// -----------------------------------------------------------------------------
-//
- uint32 NpnMemFlush( uint32 /*aSize*/ )
- {
- // This function is not supported
- return NPERR_GENERIC_ERROR;
- }
-
-// -----------------------------------------------------------------------------
-// NpnReloadPlugins
-//
-// Causes the PluginHandler to scan for new plugins and reloads the current
-// page if aReloadPages is true.
-// -----------------------------------------------------------------------------
-//
- void NpnReloadPlugins( NPBool /*aReloadPages*/ )
- {
- //This is currently not supported since CPluginHandler is non static
- }
-
-// -----------------------------------------------------------------------------
-// NpnGetJavaEnv
-//
-// Unsupported.
-// -----------------------------------------------------------------------------
-//
- JRIEnv* NpnGetJavaEnv()
- {
- // This function is not supported
- return NULL;
- }
-
-// -----------------------------------------------------------------------------
-// NpnGetJavaPeer
-//
-// Unsupported.
-// -----------------------------------------------------------------------------
-//
- jref NpnGetJavaPeer( NPP /*aInstance*/ )
- {
- // This function is not supported
- return NULL;
- }
-
-// -----------------------------------------------------------------------------
-// NpnGetUrlNotify
-//
-// Requests the associated PluginInst to load the given url. The plugin is
-// notified when the request completes.
-// -----------------------------------------------------------------------------
-//
- NPError NpnGetUrlNotify( NPP /*aInstance*/, const TDesC& /*aUrl*/,
- const TDesC* /*aWindowType*/, void* /*aNotifyData*/ )
- {
- return NPERR_GENERIC_ERROR;
- }
-
-// -----------------------------------------------------------------------------
-// NpnPostUrlNotify
-//
-// Requests the associated PluginInst to POST to the given url. The plugin is
-// notified when the request completes.
-// -----------------------------------------------------------------------------
-//
- NPError NpnPostUrlNotify( NPP /*aInstance*/, const TDesC& /*aUrl*/,
- const TDesC* /*aWindowType*/, const TDesC& /*aBuf*/,
- NPBool /*aFile*/, void* /*aNotifyData*/ )
- {
- return NPERR_GENERIC_ERROR;
- }
-
-// -----------------------------------------------------------------------------
-// NpnGetValue
-//
-// Query the associated PluginInst for information.
-// -----------------------------------------------------------------------------
-//
- NPError NpnGetValue( NPP /*aInstance*/, NPNVariable /*aVariable*/,
- void* /*aRetValue*/ )
- {
- return NPERR_GENERIC_ERROR;
- }
-
-// -----------------------------------------------------------------------------
-// NpnSetValue
-//
-// Set a value on the associated PluginInst
-// -----------------------------------------------------------------------------
-//
- NPError NpnSetValue( NPP /*aInstance*/, NPPVariable /*aVariable*/,
- void* /*aSetValue*/ )
- {
- return NPERR_GENERIC_ERROR;
- }
-
-// -----------------------------------------------------------------------------
-// NpnInvalidateRect
-//
-// Unsupported.
-// -----------------------------------------------------------------------------
-//
- void NpnInvalidateRect( NPP /*aInstance*/, NPRect * /*aRect*/ )
- {
- // This function is not supported
- }
-
-// -----------------------------------------------------------------------------
-// NpnInvalidateRegion
-//
-// Unsupported.
-// -----------------------------------------------------------------------------
-//
- void NpnInvalidateRegion( NPP /*aInstance*/, NPRegion /*aRegion*/ )
- {
- // This function is not supported
- }
-
-// -----------------------------------------------------------------------------
-// NpnForceRedraw
-//
-// Unsupported.
-// -----------------------------------------------------------------------------
-//
- void NpnForceRedraw( NPP /*aInstance*/ )
- {
- // This function is not supported
- }
-
-
-// End Of File
-
--- a/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/src/ScreenSaverAnimPlugin.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1570 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: This file implements the Screen Saver Animation Plugin which
-* is used by Screen Saver application to load animation
-* screen savers.
-*
-*/
-
-
-
-
-
-#include <eikenv.h>
-#include <bautils.h>
-#include <apgcli.h>
-#include <data_caging_path_literals.hrh>
-#include <centralrepository.h>
-#include <DRMHelper.h>
-#include <aknnotewrappers.h>
-#include <aknnavi.h>
-#include <aknnavide.h>
-#include <npupp.h>
-#include <cecombrowserplugininterface.h>
-#include <browserplugininterface.h>
-#include <mmf/common/mmfcontrollerpluginresolver.h>
-#include <DRMHelperServerInternalCRKeys.h>
-#include <NPNExtensions.h>
-#include <screensaveranimplugin.rsg>
-#include <coecntrl.h>
-#include "ScreenSaverAnimPluginInternalCRKeys.h"
-#include "ScreenSaverAnimPlugin.h"
-#include "ScreenSaverAnimPluginContainer.h"
-#include "ScreenSaverAnimSettingDialog.h"
-#include "NpnImplementation.h"
-#include "ScreenSaverAnimPluginHelper.h"
-
-// Constants
-#ifdef SCREENSAVER_LOG_ENABLED
-const TInt KMaxBufLen = 64;
-#endif
-const TInt KSixteenBytes = 128;
-const TInt KUrlMaxLen = 1024;
-
-// Animation Timeout values
-const TInt KMinDurationValue = 5;
-const TInt KMaxDurationValue = 60;
-const TInt KDefaultDurationValue = 5;
-
-// Backlight Values
-const TInt KMinBackLightValue = 0;
-const TInt KMaxBackLightValue = 30;
-const TInt KDefaultBackLightValue = 0;
-
-const TInt KScreensaverAnimPluginInterfaceUid = 0x102750CB;
-
-
-_LIT( KResourceFileName, "Z:ScreenSaverAnimPlugin.rsc" );
-
-
-CScreenSaverAnimSettingObject::CScreenSaverAnimSettingObject()
- {
- iAnimationTimeout = KDefaultDurationValue;
- iLightsTimeout = KDefaultBackLightValue;
- }
-// ============================ MEMBER FUNCTIONS =============================
-
-
-// ---------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::NewL
-// ---------------------------------------------------------------------------
-//
-CScreenSaverAnimPlugin* CScreenSaverAnimPlugin::NewL()
- {
- CScreenSaverAnimPlugin* self = new ( ELeave ) CScreenSaverAnimPlugin;
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// ----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::~CScreenSaverAnimPlugin
-// ----------------------------------------------------------------------------
-//
-CScreenSaverAnimPlugin::~CScreenSaverAnimPlugin()
- {
- if ( iResourceOffset != 0 )
- {
- iEikEnv->DeleteResourceFile( iResourceOffset );
- }
- UnregisterForDrmExpiry();
- NotifyCenrepChangeCancel();
- UnInitializeCenRep();
-
- // Final place to delete plug-in. Plug-in is deleted here
- // if plug-in notices runtime error.
- SetPluginDeleted();
-
- delete iDrmHelper;
- delete iSettingObject;
- delete iScreensaverName;
- }
-
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::InitializeL
-// -----------------------------------------------------------------------------
-//
-TInt CScreenSaverAnimPlugin::InitializeL( MScreensaverPluginHost *aHost )
- {
-
- if ( !aHost )
- {
- return KErrCancel;
- }
-#ifdef SCREENSAVER_LOG_ENABLED
- _LIT( msg, "InitializeL called " );
- PrintDebugMsg( msg );
-#endif
-
- iScreenSaverHost = aHost;
- iScreenSaverHost->UseRefreshTimer( EFalse );
-
-#ifdef SCREENSAVER_LOG_ENABLED
- _LIT( cenrepmsg, "before NotifyCenrepChangeL" );
- PrintDebugMsg( cenrepmsg );
-#endif
-
- NotifyCenrepChangeL();
-
-#ifdef SCREENSAVER_LOG_ENABLED
- _LIT( cenrepmsg1, "After NotifyCenrepChangeL" );
- PrintDebugMsg( cenrepmsg1 );
-#endif
-
- iScreenSaverHost->OverrideStandardIndicators();
-
- iScreenSaverHost->ExitPartialMode();
-
-#ifdef SCREENSAVER_LOG_ENABLED
- _LIT( FindPluginLmsg, "before FindPluginL" );
- PrintDebugMsg( FindPluginLmsg );
-#endif
-
- TRAPD( err, FindPluginL( iSettingObject->iFileName ) )
-
- if ( err != KErrNone )
- {
- return err;
- }
-
-#ifdef SCREENSAVER_LOG_ENABLED
- _LIT( FindPluginLmsg1, "After FindPluginL" );
- PrintDebugMsg( FindPluginLmsg1 );
-#endif
-
- return KErrNone;
-
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::Draw
-// -----------------------------------------------------------------------------
-//
-TInt CScreenSaverAnimPlugin::Draw(CWindowGc& /*aGc*/)
- {
- return KErrNone;
- }
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::SetWindow
-// -----------------------------------------------------------------------------
-//
-TInt CScreenSaverAnimPlugin::SetWindow( CCoeControl* aParent )
- {
-
- iParentControl = aParent;
- NPWindow window;
- TInt ret = KErrNone;
-
- window.window = STATIC_CAST( MPluginAdapter*, this );
- iNPPinstance->ndata = STATIC_CAST( MPluginAdapter*, this );
- window.x = 0; /* Position of top left corner relative */
- window.y = 0; /* to a netscape page.*/
-
- if ( aParent )
- {
- window.width = aParent->Rect().Width(); /* Max window size */
- window.height = aParent->Rect().Height();
- window.type = NPWindowTypeDrawable;
- }
-
- if ( iPluginFuncs && !iPluginFuncs->setwindow( iNPPinstance, &window ) )
- {
- ret = KErrNone;
- }
- else
- {
- ret = KErrGeneral;
- }
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::Name
-// -----------------------------------------------------------------------------
-//
-const TDesC16& CScreenSaverAnimPlugin::Name() const
- {
- if ( iScreensaverName )
- {
- return *iScreensaverName;
- }
- else
- {
- return KNullDesC;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::Capabilities
-// -----------------------------------------------------------------------------
-//
-TInt CScreenSaverAnimPlugin::Capabilities()
- {
- return EScpCapsConfigure;
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::PluginFunction
-// -----------------------------------------------------------------------------
-//
-TInt CScreenSaverAnimPlugin::PluginFunction(
- TScPluginCaps aFunction,
- TAny* /*aParam*/)
- {
- if ( aFunction == EScpCapsSelectionNotification
- || aFunction == EScpCapsPreviewNotification )
- {
- _LIT( msg, "Plugin function called Sel Notify" );
- PrintDebugMsg( msg );
-
- if ( iSettingObject->iFileName.Length() == 0 || UpdateFileName() )
- {
- // File is not configured yet or deleted/renamed,
- // pop the settings dialog
- TInt err = KErrNone;
- TRAP( err, PopSettingsDialogL() );
- return err;
- }
- else
- {
- return KErrNone;
- }
- }
- if ( aFunction == EScpCapsConfigure )
- {
- _LIT( msg, "Plugin function called Configure" );
- PrintDebugMsg( msg );
- UpdateFileName();
- TInt err = KErrNone;
- TRAP( err, PopSettingsDialogL() );
- return err;
- }
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::HandleScreensaverEventL
-// -----------------------------------------------------------------------------
-//
-TInt CScreenSaverAnimPlugin::HandleScreensaverEventL(
- TScreensaverEvent aEvent,
- TAny* /*aData*/ )
- {
-
- if ( aEvent == EScreensaverEventDisplayChanged )
- {
- // Display Changed is called when there is a change in the size
- // of the window and when the parent control is set for the
- // first time.
- TScreensaverDisplayInfo* displayInfo = new( ELeave )
- TScreensaverDisplayInfo;
- displayInfo->iSize = sizeof( TScreensaverDisplayInfo );
- iScreenSaverHost->DisplayInfo( displayInfo );
- iParentControl = displayInfo->iParent;
- delete displayInfo;
- }
-
- if ( aEvent == EScreensaverEventStopping )
- {
-#ifdef SCREENSAVER_LOG_ENABLED
- _LIT( KStopEventMsg, "Stop Event" );
- PrintDebugMsg( KStopEventMsg );
-#endif
-
- // Delete the Plugin
- SendEndEvent();
- DeletePlugin();
- }
-
- if ( aEvent == EScreensaverEventStarting )
- {
-#ifdef SCREENSAVER_LOG_ENABLED
- _LIT( KStartEventMsg, "Start Event" );
- PrintDebugMsg( KStartEventMsg );
-#endif
- // Check for drm rights
- // If the file is not valid, suspend and return
- if ( iDrmHelper )
- {
- TBool yes = EFalse;
- iDrmHelper->CanSetAutomated(
- iSettingObject->iFileName, yes );
- if ( !yes )
- {
- iScreenSaverHost->RevertToDefaultSaver();
- return KErrNotFound;
- }
- }
-
- if ( iScreenSaverHost )
- {
- iScreenSaverHost->RequestTimeout(
- iSettingObject->iAnimationTimeout );
- }
-
-#ifdef SCREENSAVER_LOG_ENABLED
- _LIT( KStartMsg, "Starting" );
- PrintDebugMsg( KStartMsg );
-#endif
-
- // Reset plugin creation error
- // The plugin cannot leave or return error
- // The plugin sets the error using pluginFinishedL
- iPluginError = KErrNone;
- // Create the plugin
- TRAPD( err,CreatePluginL() );
- if ( err != KErrNone )
- {
- DeletePlugin();
- return err;
- }
-
- // Check whether the plugin has
- // reported any error using PluginFinishedL
- if ( iPluginError )
- {
- SetPluginDeleted();
- return iPluginError;
- }
-
-#ifdef SCREENSAVER_LOG_ENABLED
- _LIT( KStartedMsg, "Started" );
- PrintDebugMsg( KStartedMsg );
-#endif
-
- // send an event to plugins
- if ( iPluginFuncs )
- {
- NPAnimationEvent event;
- event = NPStartAnimation;
- iPluginFuncs->setvalue( iNPPinstance,
- ( NPNVariable )NPNScreenSaverAnimationEvent,
- &event );
- }
-
- // Request lights only if set - otherwise it will turn off lights
- // (e.g. in preview). Not nice.
- TInt nLights = iSettingObject->iLightsTimeout;
-
- if ( nLights > 0 )
- {
- iScreenSaverHost->RequestLights( nLights );
- }
- }
-
- if ( aEvent == EScreensaverEventTimeout )
- {
-#ifdef SCREENSAVER_LOG_ENABLED
- _LIT( KTimeoutEventMsg, "Timeout Event" );
- PrintDebugMsg( KTimeoutEventMsg );
-#endif
- // Delete the Plugin
- SendEndEvent();
- DeletePlugin();
- iScreenSaverHost->Suspend( -1) ;
- }
-
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::GetAnimSettings
-// -----------------------------------------------------------------------------
-//
-TInt CScreenSaverAnimPlugin::GetAnimSettings()
- {
- // Read the file last, since if it is missing the reading will be
- // stopped and settings all wrong
- TInt err = iAnimPluginSession->Get( KScreenSaverAnimationTimeOut,
- iSettingObject->iAnimationTimeout );
-
- if ( iSettingObject->iAnimationTimeout < KMinDurationValue ||
- iSettingObject->iAnimationTimeout > KMaxDurationValue )
- {
- // Out of range set it to default
- iSettingObject->iAnimationTimeout = KDefaultDurationValue;
- }
-
- if ( err != KErrNone )
- {
- return err;
- }
-
- err = iAnimPluginSession->Get( KScreenSaverLightsTimeOut,
- iSettingObject->iLightsTimeout );
-
- if ( iSettingObject->iLightsTimeout < KMinBackLightValue ||
- iSettingObject->iLightsTimeout > KMaxBackLightValue )
- {
- // Out of range set it to default
- iSettingObject->iLightsTimeout = KDefaultBackLightValue;
- }
-
- if ( err != KErrNone )
- {
- return err;
- }
-
- // read the file from central repository and return
- err = iAnimPluginSession->Get( KScreenSaverAnimatedFileName,
- iSettingObject->iFileName );
-
- if ( err != KErrNone )
- {
- return err;
- }
-
- if ( !BaflUtils::FileExists( iEikEnv->FsSession(),
- iSettingObject->iFileName ) )
- {
- return KErrNotFound;
- }
-
- TBool yes = EFalse;
- if ( iDrmHelper )
- {
- TInt err = iDrmHelper->CanSetAutomated(
- iSettingObject->iFileName, yes );
- if ( !yes )
- {
- return KErrNotFound;
- }
- }
-
- return err;
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::SetAnimSettings
-// -----------------------------------------------------------------------------
-//
-TInt CScreenSaverAnimPlugin::SetAnimSettings() const
- {
-
- TInt err = KErrNone;
- err = iAnimPluginSession->Set( KScreenSaverAnimatedFileName,
- iSettingObject->iFileName );
- if ( err != KErrNone )
- {
- return err;
- }
- err = iAnimPluginSession->Set( KScreenSaverAnimationTimeOut,
- iSettingObject->iAnimationTimeout );
-
- if ( err != KErrNone )
- {
- return err;
- }
-
- err = iAnimPluginSession->Set( KScreenSaverLightsTimeOut,
- iSettingObject->iLightsTimeout );
-
- return err;
-
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::RegisterForDrmExpiry
-// -----------------------------------------------------------------------------
-//
-TInt CScreenSaverAnimPlugin::RegisterForDrmExpiry()
- {
- TInt err = iDrmHelper->SetAutomatedType(
- CDRMHelper::EAutomatedTypeScreenSaver );
- if ( err == KErrNone )
- {
- return iDrmHelper->SetAutomatedSilent( iSettingObject->iFileName,
- ETrue );
- }
- else
- {
- return err;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::UnregisterForDrmExpiry
-// -----------------------------------------------------------------------------
-//
-TInt CScreenSaverAnimPlugin::UnregisterForDrmExpiry()
- {
- if ( iDrmHelper )
- {
- iDrmHelper->SetAutomatedType(
- CDRMHelper::EAutomatedTypeScreenSaver );
- return iDrmHelper->RemoveAutomated( iSettingObject->iFileName );
- }
- else
- {
- return KErrNone;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::ReadDrmNotification
-// -----------------------------------------------------------------------------
-//
-TInt CScreenSaverAnimPlugin::ReadDrmNotification( TDes8& aString )
- {
- return iDrmSession->Get( KDRMHelperServerNotification, aString );
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::ProcessDrmNotificationL
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimPlugin::ProcessDrmNotificationL()
- {
-
- TInt size = KSixteenBytes;
- HBufC8* buf = HBufC8::NewLC( size );
- TPtr8 bufPtr = buf->Des();
-
- TInt error = ReadDrmNotification( bufPtr );
- while ( error == KErrTooBig )
- {
- size += KSixteenBytes;
- CleanupStack::PopAndDestroy( buf ); // buf
- buf = HBufC8::NewLC( size );
- bufPtr = buf->Des();
- error = ReadDrmNotification( bufPtr );
- }
-
- TUint8 count = ( TUint8 )( *( buf->Ptr() ) );
- TChar type = ( TUint8 )( *( buf->Ptr() + 1 ) );
-
- TUint8 permType = ( TUint8 )( *( buf->Ptr() + 2 ) );
- TUint8 autoType = ( TUint8 )( *( buf->Ptr() + 3 ) );
-
- TPtr8 ptr( ( TUint8* ) ( buf->Ptr() + 4 ) , buf->Length() - 5 , buf->Length() - 5 );
- HBufC8* content = HBufC8::NewLC( ptr.Length() );
- *content = ptr;
-
- TBool matched = CheckContentIdL( iSettingObject->iFileName, *content );
-
- CleanupStack::PopAndDestroy( content );
- CleanupStack::PopAndDestroy( buf );
-
- if ( !matched )
- {
- return;
- }
-
- if ( type == 'E')
- {
- if ( count == 0 )
- {
-#ifdef SCREENSAVER_LOG_ENABLED
- _LIT( msg, "First Notification" );
- PrintDebugMsg( msg );
-#endif
-
- // Expire screen saver here..., no note
- if ( iScreenSaverHost )
- {
- SendEndEvent();
- // Delete the Plugin
- DeletePlugin();
- iScreenSaverHost->Suspend(-1);
- }
- }
- else
- {
-#ifdef SCREENSAVER_LOG_ENABLED
- _LIT( msg, "Second Notification" );
- PrintDebugMsg( msg );
-#endif
-
- // Show expiration notes...
- iDrmHelper->SetAutomatedType(
- CDRMHelper::EAutomatedTypeScreenSaver );
- iDrmHelper->CheckRightsAmountL( iSettingObject->iFileName );
- UnregisterForDrmExpiry();
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::FindAndStartPluginL
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimPlugin::FindAndStartPluginL( const TDesC& aFileName,
- TBool aCheckFileMode )
- {
- FindPluginL( aFileName );
- CreatePluginL( aCheckFileMode );
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::FindPluginL
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimPlugin::FindPluginL( const TDesC& aFileName )
- {
-
- RApaLsSession ls;
- CleanupClosePushL( ls );
- TUid dummyUid( KNullUid );
- TDataType dataType;
- User::LeaveIfError( ls.Connect() );
- User::LeaveIfError( ls.AppForDocument( aFileName,
- dummyUid, dataType ) );
- CleanupStack::PopAndDestroy( &ls );
-
-#ifdef SCREENSAVER_LOG_ENABLED
- _LIT( msg, "before FindAnimPluginL" );
- PrintDebugMsg( msg );
-#endif
-
- iPluginUID = FindAnimPluginL( dataType.Des() );
-
-#ifdef SCREENSAVER_LOG_ENABLED
- _LIT( msg1, "After FindAnimPluginL" );
- PrintDebugMsg( msg1 );
-#endif
-
- if ( iPluginUID == KNullUid )
- {
- User::Leave( KErrNotFound );
- }
-
-#ifdef SCREENSAVER_LOG_ENABLED
- _LIT( registermsg, "Before RegisterForDrmExpiry" );
- PrintDebugMsg( registermsg );
-#endif
-
- RegisterForDrmExpiry();
-
-#ifdef SCREENSAVER_LOG_ENABLED
- _LIT( registermsg1, "After RegisterForDrmExpiry" );
- PrintDebugMsg( registermsg1 );
-#endif
-
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::CreatePluginL
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimPlugin::CreatePluginL( TBool aCheckFileMode )
- {
-
- /* Create the Netscape plugin for the animation format.
- * Allocate memory for the plugin functions array. This
- * would be filled by the netscape plugin.
- * Initialize the plugin.
- */
-
- iPluginFuncs =
- ( NPPluginFuncs* ) User::AllocL( sizeof( NPPluginFuncs ) );
- Mem::FillZ( ( void* )iPluginFuncs, sizeof( NPPluginFuncs ) );
-
- iNPPinstance = ( NPP ) User::AllocL( sizeof( NPP_t ) );
- Mem::FillZ( ( void* )iNPPinstance, sizeof( NPP_t ) );
-
- iPluginType = ( HBufC8* )User::AllocL( sizeof( NPMIMEType ) );
- Mem::FillZ( ( void* )iPluginType, sizeof( NPMIMEType ) );
-
- TRAPD( err, iPluginInterface =
- CEcomBrowserPluginInterface::CreatePluginL( iPluginUID,
- ( NPNetscapeFuncs* ) ( &NpnImplementationFuncs ),
- iPluginFuncs ) );
-
- if ( err != KErrNone )
- {
- SetPluginDeleted();
- User::Leave( err );
- }
-
-#ifdef SCREENSAVER_LOG_ENABLED
- _LIT( newpmsg, "Before newp" );
- PrintDebugMsg( newpmsg );
-#endif
-
- // Create an instance.
- // Flash Plugin needs the NPInteractionMode in the newp
-
- CDesCArrayFlat* attributeNames = new( ELeave ) CDesCArrayFlat( 1 );
- CDesCArrayFlat* attributeValues = new( ELeave ) CDesCArrayFlat( 1 );
- attributeNames->AppendL( KAttributeInteractionMode );
- attributeValues->AppendL( KValueScreensaver );
-
- User::LeaveIfError( iPluginFuncs->newp( *iPluginType, iNPPinstance,
- 0 /*mode*/,
- attributeNames /*argn*/,
- attributeValues /*argv*/,
- NULL /*saved*/ ) );
-
- delete attributeNames;
- delete attributeValues;
-
-#ifdef SCREENSAVER_LOG_ENABLED
- _LIT( newpmsg1, "After newp" );
- PrintDebugMsg( newpmsg1 );
-#endif
-
- // Set ScreenSaver Mode
- if ( iPluginFuncs )
- {
- NPInteractionMode mode;
- mode = NPScreenSaverMode;
- iPluginFuncs->setvalue( iNPPinstance,
- ( NPNVariable )NPNInteractionMode,
- &mode );
- }
-
- if ( !aCheckFileMode )
- {
- SetWindow( iParentControl );
- AsFile();
- }
-
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::FindAnimPluginL
-// -----------------------------------------------------------------------------
-//
-TUid CScreenSaverAnimPlugin::FindAnimPluginL( const TDesC& aDataType )
- {
-
- TUid impUid = KNullUid;
-
- TResourceReader reader;
- iEikEnv->CreateResourceReaderLC( reader, R_MIMETYPE_SPECIFIC_PLUGIN_ARRAY );
- TInt countResource = reader.ReadInt16();
-
- for ( TInt i = 0; i < countResource; i++ )
- {
- HBufC* newMimeTypeEntry = reader.ReadHBufCL();
- TPtr mimePtr( newMimeTypeEntry->Des() );
- impUid.iUid = reader.ReadInt32();
- if ( newMimeTypeEntry->Compare( aDataType ) == 0 )
- {
- delete newMimeTypeEntry;
- break;
- }
- else
- {
- delete newMimeTypeEntry;
- }
- }
- CleanupStack::PopAndDestroy(); // reader
-
- if ( CheckIfPluginPresentL( KBrowserPluginInterfaceUid, impUid ) ||
- CheckIfPluginPresentL( TUid::Uid( KScreensaverAnimPluginInterfaceUid ),impUid ) )
- {
- return impUid;
- }
-
- return KNullUid;
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::CheckIfPluginPresentL
-// -----------------------------------------------------------------------------
-//
-TBool CScreenSaverAnimPlugin::CheckIfPluginPresentL( TUid aInterfaceUid ,
- TUid aImpUid )
- {
- TBool ret( EFalse );
- RImplInfoPtrArray animPluginList;
-
- REComSession::ListImplementationsL( aInterfaceUid, animPluginList );
-
- const TInt count = animPluginList.Count();
-
- for ( TInt i = 0; i < count; i++ )
- {
- CImplementationInformation* implInfo = animPluginList[i];
- if ( aImpUid == implInfo->ImplementationUid() )
- {
- ret = ETrue;
- break;
- }
- }
- animPluginList.ResetAndDestroy();
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::ParseMimeStringL
-// -----------------------------------------------------------------------------
-//
-TBool CScreenSaverAnimPlugin::ParseMimeStringL( const TDesC& aMIMEDescription,
- const TDesC& aDataType )
- {
-
- if ( aMIMEDescription.Length() == 0 ||
- aDataType.Length() == 0 )
- {
- return EFalse;
- }
-
- _LIT( KPattern1Ptr, ",;|" );
- _LIT( KPattern2Ptr, ";|" );
-
- TUint end( aMIMEDescription.Length() );
- TUint i( 0 );
- TUint marker( 0 );
- TUint16 mimeSeparator( '|' );
- TUint fieldSeparator( ';' );
- HBufC* newMimeTypeEntry = NULL;
-
- // Parse the aMIMEDescription string to populate the mimeTypes
- for ( ; i < end; ) // outer for loop
- {
- // Search until end of buffer or match one of the delimiters ';' or '|'.
- // We are looking for the mimeType, ie "text/html",
- // "application/pdf", etc.
- for ( ; ( i < end ) && ( KPattern2Ptr().Locate( ( aMIMEDescription )[i] ) ==
- KErrNotFound ); i++ )
- {
- // Walking the aMIMEDescription string
- }
-
- if ( i > marker )
- {
- // Create new mimeType entry, the first entry is mimeType
- newMimeTypeEntry = HBufC::NewLC( i - marker );
- TPtr mimePtr( newMimeTypeEntry->Des() );
- mimePtr.Copy( aMIMEDescription.Mid( marker, i - marker ) );
- if ( newMimeTypeEntry->Compare( aDataType ) == 0 )
- {
- CleanupStack::PopAndDestroy( newMimeTypeEntry ); //newMimeTypeEntry
- return ETrue;
- }
- CleanupStack::PopAndDestroy( newMimeTypeEntry ); //newMimeTypeEntry
- }
-
- // Are we at the end of the supported mime string
- if ( i == end )
- {
- // This break with i=end means we leave outer for loop
- break;
- }
-
- marker = ++i;
- if ( ( aMIMEDescription )[i - 1] == mimeSeparator )
- {
- // Found a mime separator '|', get next supported mime
- continue;
- }
-
- // There can be multiple mimeFileExtentions per mimeType
- for ( ; ( i < end ); ) // inner for loop
- {
- // Search until end of buffer or match one of the delimiters
- // ';' or ',' or '|'.
- for ( ; (i < end) && ( KPattern1Ptr().Locate( ( aMIMEDescription )[i] ) ==
- KErrNotFound ); i++ )
- {
- // Walking the aMIMEDescription string
- }
-
- // Are we at the end of the supported mime string
- if ( i == end )
- {
- // This break means we leave the inner loop,
- // and with i=end means
- // we leave the outer loop
- break;
- }
-
- marker = ++i;
- if ( ( aMIMEDescription )[i - 1] == mimeSeparator )
- {
- // Found a mime separator '|', get next supported mime
- break;
- }
-
- if ( ( aMIMEDescription )[i - 1] == fieldSeparator )
- {
- // Found a field separator ';', get the mimeDescription.
- // Search until end of buffer or match one of the
- // delimiters ';' or '|'.
- for ( ; (i < end) &&
- ( KPattern2Ptr().Locate( ( aMIMEDescription )[i] ) ==
- KErrNotFound ); i++ )
- {
- // Walking the aMIMEDescription string
- }
-
-
- // Are we at the end of the supported mime string
- if ( i == end )
- {
- // This break means we leave the inner loop,
- // and with i=end means
- // we leave the outer loop
- break;
- }
-
- marker = ++i;
- // Make sure we start at the next mime,
- // after we found the mimeDescription.
- // We are handling a mime string with an extra semi-colon(s),
- // ie "...mimeDescription1;|mimeType2
- for (; (i < end) &&
- ((aMIMEDescription)[i-1] != mimeSeparator); i++)
- {
- // Walking the aMIMEDescription string
- }
-
- // Leave the inner loop and look for the next mime
- break;
- } // end of if fieldSeparator aka get mimeDescription
-
- // If we get here, we have another mimeFileExtension.
- // Continue on the
- // inner loop to find additional mimeFileExtensions.
-
- } // end of inner for (;i<end;)
- } // end of outer for (;i<end;)
-
- return EFalse;
-
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::DeletePlugin
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimPlugin::DeletePlugin()
- {
-#ifdef SCREENSAVER_LOG_ENABLED
- _LIT( msg, "delete called " );
- PrintDebugMsg( msg );
-#endif
- if ( iPluginFuncs )
- {
- iPluginFuncs->destroy( iNPPinstance, NULL );
- }
- SetPluginDeleted();
- }
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::SetPluginDeleted
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimPlugin::SetPluginDeleted()
- {
-
- delete iPluginType;
- iPluginType = NULL;
-
- delete iPluginFuncs;
- iPluginFuncs = NULL;
-
- delete iNPPinstance;
- iNPPinstance = NULL;
-
- delete iPluginInterface;
- iPluginInterface = NULL;
-
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::AsFile
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimPlugin::AsFile()
- {
-
- // Set the File-name to the plugin.
- // Note that the SVG-T plugin atleast wants setwindow
- // to be called first
- iPluginFuncs->asfile( iNPPinstance, NULL, iSettingObject->iFileName );
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::UpdateFileName
-// -----------------------------------------------------------------------------
-//
-TBool CScreenSaverAnimPlugin::UpdateFileName()
- {
- if ( !BaflUtils::FileExists( iEikEnv->FsSession(),
- iSettingObject->iFileName ) )
- {
- // File is deleted now, Show empty string
- iSettingObject->iFileName.Copy( KEmptyString );
- return ETrue;
- }
-
- TBool canbeautomated( EFalse );
-
- TInt res = 0;
- iDrmHelper->SetAutomatedType(
- CDRMHelper::EAutomatedTypeScreenSaver );
- res = iDrmHelper->CanSetAutomated( iSettingObject->iFileName,
- canbeautomated );
-
- if ( res || !canbeautomated )
- {
- iSettingObject->iFileName.Copy( KEmptyString );
- return ETrue;
- }
- return EFalse;
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::PopSettingsDialogL
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimPlugin::PopSettingsDialogL()
- {
-#ifdef SCREENSAVER_LOG_ENABLED
- _LIT( msg, "Pop Settings Dialog" );
- PrintDebugMsg( msg );
-#endif
-
- // Get the Status Pane Control
- CEikStatusPane* sp = iEikEnv->AppUiFactory()->StatusPane();
-
- // Fetch pointer to the default navi pane control
- CAknNavigationControlContainer* NaviPane =
- ( CAknNavigationControlContainer* )sp->ControlL(
- TUid::Uid( EEikStatusPaneUidNavi ) );
-
- NaviPane->PushDefaultL( ETrue );
-
- CScreenSaverAnimSettingDialog* dlg =
- CScreenSaverAnimSettingDialog::NewL( this, iSettingObject );
-
-#ifdef SCREENSAVER_LOG_ENABLED
- _LIT( msg1, "dlg created Call executeld" );
- PrintDebugMsg( msg1 );
-#endif
-
- dlg->ExecuteLD();
-
- NaviPane->Pop();
-
-#ifdef SCREENSAVER_LOG_ENABLED
- _LIT( msg2, "Executed dlg, write to cenrep" );
- PrintDebugMsg( msg2 );
-#endif
-
- User::LeaveIfError( SetAnimSettings() );
-
- // Check if a file is selected
- if ( iSettingObject->iFileName.Length() == 0 )
- {
- // Don't Pop an error note
- // Just leave
- User::Leave( KErrCancel ) ;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::HandleRepositoryCallBack
-// -----------------------------------------------------------------------------
-//
-TInt CScreenSaverAnimPlugin::HandleRepositoryCallBack( TAny* aPtr )
- {
- STATIC_CAST( CScreenSaverAnimPlugin*, aPtr )->HandleSettingsChange( aPtr );
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::HandleRepositoryCallBack
-// -----------------------------------------------------------------------------
-//
-TInt CScreenSaverAnimPlugin::HandleDrmNotification( TAny* aPtr )
- {
- TRAPD( err, STATIC_CAST( CScreenSaverAnimPlugin*, aPtr )
- ->ProcessDrmNotificationL() );
- return err;
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::HandleSettingsChange
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimPlugin::HandleSettingsChange( TAny* /*aPtr*/ )
- {
- if ( iScreensaverRepositoryWatcher )
- {
- if ( iScreensaverRepositoryWatcher->ChangedKey() ==
- KScreenSaverAnimationTimeOut )
- {
- // Update the iSettingObject
- iAnimPluginSession->Get( KScreenSaverAnimationTimeOut,
- iSettingObject->iAnimationTimeout );
- }
- if ( iScreensaverRepositoryWatcher->ChangedKey() ==
- KScreenSaverLightsTimeOut )
- {
- // Update the iSettingObject
- iAnimPluginSession->Get( KScreenSaverLightsTimeOut,
- iSettingObject->iLightsTimeout );
- }
-
- if ( iScreensaverRepositoryWatcher->ChangedKey() ==
- KScreenSaverAnimatedFileName )
- {
- UnregisterForDrmExpiry();
- iAnimPluginSession->Get( KScreenSaverAnimatedFileName,
- iSettingObject->iFileName );
- // Find the Plugin for the new file
- TInt err;
- TRAP( err, FindPluginL( iSettingObject->iFileName ) );
- if ( err != KErrNone )
- {
- NotifyCenrepChangeCancel();
- iScreenSaverHost->RevertToDefaultSaver();
- return;
- }
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::InitializeCenRepL
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimPlugin::InitializeCenRepL()
- {
-
- TRAPD( err, iAnimPluginSession =
- CRepository::NewL( KCRUidScreenSaverAnimPlugin ) );
-#ifdef SCREENSAVER_LOG_ENABLED
- TBuf<KMaxBufLen> buffer;
- _LIT( msg, "After SS Cenrep Init : %d" );
- buffer.Format( msg, err );
- PrintDebugMsg( buffer );
-#endif
- User::LeaveIfError( err );
-
- TRAPD( err1, iDrmSession = CRepository::NewL( KCRUidDRMHelperServer ) );
-#ifdef SCREENSAVER_LOG_ENABLED
- TBuf<KMaxBufLen> buffer1;
- _LIT( msg1, "After DRM Cenrep Init : %d" );
- buffer1.Format( msg1, err1 );
- PrintDebugMsg( buffer1 );
-#endif
- User::LeaveIfError( err1 );
-
- }
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::NotifyCenrepChangeL
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimPlugin::NotifyCenrepChangeL()
- {
-
- iScreensaverRepositoryWatcher = CScreensaverRepositoryWatcher::NewL(
- KCRUidScreenSaverAnimPlugin,
- TCallBack( HandleRepositoryCallBack, this ),
- iAnimPluginSession );
-
- iDrmExpiryWatcher = CScreensaverRepositoryWatcher::NewL(
- KCRUidDRMHelperServer,
- KDRMHelperServerNotification,
- CCenRepNotifyHandler::EIntKey,
- TCallBack( HandleDrmNotification, this ),
- iDrmSession );
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::NotifyCenrepChangeCancel
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimPlugin::NotifyCenrepChangeCancel()
- {
-
- delete iScreensaverRepositoryWatcher;
- iScreensaverRepositoryWatcher = NULL;
-
- delete iDrmExpiryWatcher;
- iDrmExpiryWatcher = NULL;
-
- }
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::UnInitializeCenRep
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimPlugin::UnInitializeCenRep()
- {
- if ( iAnimPluginSession )
- {
- delete iAnimPluginSession;
- iAnimPluginSession = NULL;
- }
- if ( iDrmSession )
- {
- delete iDrmSession;
- iDrmSession = NULL;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::CScreenSaverAnimPlugin
-// -----------------------------------------------------------------------------
-//
-CScreenSaverAnimPlugin::CScreenSaverAnimPlugin():
- iParentControl( NULL ),iPluginError( KErrNone )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimPlugin::ConstructL()
- {
-#ifdef SCREENSAVER_LOG_ENABLED
- _LIT( msg, "ConstructL of ScreenSaverAnimPlugin" );
- PrintDebugMsg( msg );
-#endif
-
- // Find which drive this DLL is installed.
- TFileName fileName;
-
- // Get the full resource file
- TParse lParse;
-
- // Add the resource dir
- lParse.Set( KResourceFileName, &KDC_RESOURCE_FILES_DIR, NULL );
-
- // Get the filename with full path
- fileName = lParse.FullName();
-
- iEikEnv = CEikonEnv::Static();
-
- BaflUtils::NearestLanguageFile( iEikEnv->FsSession(), fileName ); //for
- // localization
-
- iDrmHelper = CDRMHelper::NewL( *iEikEnv );
-
-#ifdef SCREENSAVER_LOG_ENABLED
- _LIT( msg1, "Before Cenrep Init " );
- PrintDebugMsg( msg1 );
-#endif
-
- InitializeCenRepL();
-
-#ifdef SCREENSAVER_LOG_ENABLED
- _LIT( msg2, "After Cenrep Init " );
- PrintDebugMsg( msg2 );
-#endif
-
- iSettingObject = new( ELeave ) CScreenSaverAnimSettingObject;
-
- GetAnimSettings();
-
- iResourceOffset = iEikEnv->AddResourceFileL( fileName );
-
-#ifdef SCREENSAVER_LOG_ENABLED
- _LIT( msg3, "ConstructL end " );
- PrintDebugMsg( msg3 );
-#endif
-
- // Load localised name of screensaver to be returned for
- // Themes app in Name() query
- iScreensaverName = iEikEnv->AllocReadResourceL( R_SANIM_SCREENSAVER_NAME );
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::SendEndEvent
-// -----------------------------------------------------------------------------
-//
-TInt CScreenSaverAnimPlugin::SendEndEvent()
- {
- NPAnimationEvent event;
- event = NPEndAnimation;
- if ( iPluginFuncs )
- {
- return iPluginFuncs->setvalue( iNPPinstance,
- ( NPNVariable )NPNScreenSaverAnimationEvent,
- &event );
- }
- return KErrNone;
-
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::CheckFileValidity
-// -----------------------------------------------------------------------------
-//
-TInt CScreenSaverAnimPlugin::CheckFileValidityL( const TDesC& aFileName )
- {
- FindAndStartPluginL( aFileName , ETrue /* Check File Mode */);
- NPCheckFile checkFile;
- checkFile.fileValidityCheckError = KErrNone;
- checkFile.fileName = HBufC::NewL( aFileName.Length() );
- checkFile.fileName->Des().Copy( aFileName );
-
- if ( iPluginFuncs )
- {
- iPluginFuncs->getvalue( iNPPinstance,
- ( NPPVariable )NPPCheckFileIsValid,
- &checkFile );
- }
- delete checkFile.fileName;
- DeletePlugin();
- return checkFile.fileValidityCheckError;
-
- }
-
-/* MPluginAdapter Interface functions, The plugins call
- * these back
- */
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::GetVersion
-// -----------------------------------------------------------------------------
-//
-TUint16 CScreenSaverAnimPlugin::GetVersion()
- {
- return 0;
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::PluginConstructedL
-// Called when the plug-in has completed its creation.
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimPlugin::PluginConstructedL( CCoeControl*
- /*aPluginControl*/ )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::PluginFinishedL
-// Called when the plug-in has completed its creation.
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimPlugin::PluginFinishedL()
- {
- TInt error;
- iPluginFuncs->getvalue( iNPPinstance,
- ( NPPVariable )NPPScreenSaverGetLastError,
- &error );
-
-#ifdef SCREENSAVER_LOG_ENABLED
- TBuf<KMaxBufLen> buffer1;
- _LIT( msg, "Plugin finishedL Error: %d" );
- buffer1.Format( msg, error );
- PrintDebugMsg( buffer1 );
-#endif
-
- if ( iScreenSaverHost )
- {
- if ( error != KErrNone )
- {
- iPluginError = error;
- // Plugin has encountered an error
- iScreenSaverHost->RevertToDefaultSaver();
- }
- }
- }
-
-#ifndef __SERIES60_30__
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::OpenUrlL
-// Called by the plug-in to open a URL in the parent frame.
-// This function is not implemented in Series 60. It is supported
-// in Series 80 and in the Nokia 7710 smartphone
-// -----------------------------------------------------------------------------
-//
-
-void CScreenSaverAnimPlugin::OpenUrlL( const TDesC& /* aUrl */ )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::OpenUrlInTargetWindowL
-// Called by the plug-in to open a URL in a named window or frame.
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimPlugin::OpenUrlInTargetWindowL( const TDesC& /* aUrl */,
- const TDesC& /* aNewTargetWindowName */ )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::HasNavigationHistoryPrevious
-// Specifies whether or not the frame has a previous navigation history item.
-// -----------------------------------------------------------------------------
-//
-TBool CScreenSaverAnimPlugin::HasNavigationHistoryPrevious() const
- {
- return EFalse;
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::LoadNavigationHistoryPreviousL
-// Informs the browser to load the next navigation history URL in its parent
-// frame.
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimPlugin::LoadNavigationHistoryPreviousL()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::HasNavigationHistoryNext
-// Returns whether the frame has a next navigation history item.
-// -----------------------------------------------------------------------------
-//
-TBool CScreenSaverAnimPlugin::HasNavigationHistoryNext() const
- {
- return EFalse;
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::LoadNavigationHistoryNextL
-// Informs the browser to load the next navigation history URL in its parent
-// frame.
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimPlugin::LoadNavigationHistoryNextL()
- {
- }
-
-#endif
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::GetParentControl
-// Returns the window system level control object for the plug-in.
-// -----------------------------------------------------------------------------
-//
-CCoeControl* CScreenSaverAnimPlugin::GetParentControl()
- {
- return iParentControl;
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::GetParentControlObserver
-// Returns the observer for the plug-in control.
-// -----------------------------------------------------------------------------
-//
-MCoeControlObserver* CScreenSaverAnimPlugin::GetParentControlObserver()
- {
- return this;
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::GetParentControlObserver
-// Sets the plug-in notifier allowing the plug-in to control
-// portions of the browser.
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimPlugin::SetPluginNotifier( MPluginNotifier* /*aNotifier*/ )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::SetContentInteractive
-// Tells the plugin adapter if plugin content can accept user interaction.
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimPlugin::SetContentInteractive( TBool /*aInteractive*/ )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::HandleControlEventL
-// Handles an event from an observed control.This function is called
-// when a control for which this control is the observer calls
-// CCoeControl::ReportEventL(). It should be implemented by the observer
-// control, and should handle all events sent by controls it observes.
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimPlugin::HandleControlEventL( CCoeControl* /*aControl*/,
- TCoeEvent /*aEventType*/ )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPlugin::CheckContentIdL
-// -----------------------------------------------------------------------------
-//
-TBool CScreenSaverAnimPlugin::CheckContentIdL( const TDesC& aFileName,
- TDesC8& aContentUri )
- {
-
- TBool matched = EFalse;
- HBufC* contentURI = NULL;
- HBufC8* contentURI8 = NULL;
-
- RFile fileHandle;
-
- TInt error = fileHandle.Open( iEikEnv->FsSession(),
- aFileName,
- EFileRead | EFileShareReadersOnly );
- if ( error != KErrNone )
- {
- return matched;
- }
-
- CleanupClosePushL( fileHandle );
- CData* content = CData::NewL( fileHandle, KDefaultContentObject, EPeek );
- CleanupStack::PopAndDestroy( &fileHandle );
-
- CleanupStack::PushL( content );
-
- contentURI = HBufC::NewLC( KUrlMaxLen );
-
- // create attribute set
- RStringAttributeSet stringAttributeSet;
- CleanupClosePushL( stringAttributeSet );
- // add the attributes we are interested in
- stringAttributeSet.AddL( EContentID );
-
- User::LeaveIfError( content->GetStringAttributeSet( stringAttributeSet ) );
-
- // pass on values of string attributes
- TPtr ptr = contentURI->Des();
- error = stringAttributeSet.GetValue( EContentID, ptr );
- if ( error == KErrNone )
- {
- contentURI8 = HBufC8::NewLC( contentURI->Length() );
- contentURI8->Des().Copy( contentURI->Des() );
- if ( contentURI8->Compare( aContentUri ) == 0 )
- {
- matched = ETrue;
- }
- CleanupStack::PopAndDestroy( contentURI8 );
- }
-
- CleanupStack::PopAndDestroy( 2, contentURI ); // stringAttributeSet.Close()
- CleanupStack::PopAndDestroy( content );
-
- return matched;
- }
-
-// End Of file.
-
--- a/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/src/ScreenSaverAnimPluginContainer.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,614 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* Provides ScreenSaverAnimPlugin edit list view container methods.
-*
-*
-*/
-
-
-
-// INCLUDE FILES
-
-#include <aknlists.h>
-#include <akntitle.h>
-#include <aknslider.h>
-#include <aknsettingpage.h>
-#include <aknslidersettingpage.h>
-#include <CFLDFileListContainer.h>
-#include <MGFetch.h>
-#include <DRMHelper.h>
-#include <screensaveranimplugin.rsg>
-#include <barsread.h>
-#include <centralrepository.h>
-
-#include "ScreenSaverAnimPlugin.h"
-#include "ScreenSaverAnimPluginConst.h"
-#include "ScreenSaverAnimPluginHelper.h"
-#include "ScreenSaverAnimPluginContainer.h"
-#include "ScreenSaverAnimPlugin.hrh"
-
-// ========================= MEMBER FUNCTIONS ================================
- CScreenSaverAnimPluginContainer* CScreenSaverAnimPluginContainer::NewLC(
- CScreenSaverAnimPlugin* aCaller,
- const CCoeControl* aParent,
- CScreenSaverAnimSettingObject* aSettingObject )
- {
- CScreenSaverAnimPluginContainer* self =
- new ( ELeave ) CScreenSaverAnimPluginContainer( aCaller,
- aSettingObject );
- CleanupStack::PushL( self );
- TRect rect;
- self->GetNormalScreenLayoutRect( rect );
- self->ConstructL(aParent, rect );
- return self;
-
- }
-
-// ---------------------------------------------------------------------------
-// CScreenSaverAnimPluginContainer::NewL
-// ---------------------------------------------------------------------------
-//
-
-CScreenSaverAnimPluginContainer* CScreenSaverAnimPluginContainer::NewL(
- CScreenSaverAnimPlugin* aCaller,
- const CCoeControl* aParent,
- CScreenSaverAnimSettingObject* aSettingObject )
- {
- CScreenSaverAnimPluginContainer* self =
- CScreenSaverAnimPluginContainer::NewLC( aCaller,
- aParent,
- aSettingObject );
- CleanupStack::Pop( self );
- return self;
-
- }
-
-// ---------------------------------------------------------------------------
-// Constructor
-//
-// ---------------------------------------------------------------------------
-//
-CScreenSaverAnimPluginContainer::CScreenSaverAnimPluginContainer(
- CScreenSaverAnimPlugin* aCaller,
- CScreenSaverAnimSettingObject* aSettingObject )
- :
- iSettingObject( aSettingObject ),
- iCaller( aCaller )
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CScreenSaverAnimPluginContainer::ConstructL(const TRect& aRect)
-// EPOC two phased constructor
-//
-// ---------------------------------------------------------------------------
-//
-void CScreenSaverAnimPluginContainer::ConstructL( const CCoeControl* aParent,
- const TRect& aRect )
- {
-#ifdef SCREENSAVER_LOG_ENABLED
- _LIT( msg, "In ConstructL of container" );
- PrintDebugMsg( msg );
-#endif
-
- CreateWindowL( aParent );
-
-#ifdef SCREENSAVER_LOG_ENABLED
- _LIT( msg1, "Window Created" );
- PrintDebugMsg( msg1 );
-#endif
-
- BaseConstructL( aRect, NULL, R_SANIM_SETTING_LBX_ITEMS );
-
-#ifdef SCREENSAVER_LOG_ENABLED
- _LIT( msg2, "Base ConstructL called" );
- PrintDebugMsg( msg2 );
-#endif
-
- }
-
-// ---------------------------------------------------------------------------
-// CScreenSaverAnimPluginContainer::BaseConstructL
-
-// ---------------------------------------------------------------------------
-//
-void CScreenSaverAnimPluginContainer::BaseConstructL(
- const TRect& aRect, TInt /* aTitleId */, TInt aResLbxId )
- {
- // Feature support should only be read once. It should not change run-time.
- GetFeatureSupportL( iFeaturesSupport );
- CEikStatusPane* sp = static_cast< CAknAppUi* >(
- CEikonEnv::Static()->EikAppUi() )->StatusPane();
- CAknTitlePane* title = static_cast<CAknTitlePane*>(
- sp->ControlL( TUid::Uid( EEikStatusPaneUidTitle) ) );
-
- iListBox = new( ELeave ) CAknSettingStyleListBox;
-
- ConstructListBoxL( aResLbxId );
- iListBox->SetContainerWindowL( *this );
- iListBox->SetRect( aRect );
-
- iListBox->CreateScrollBarFrameL( ETrue );
- iListBox->ScrollBarFrame()->SetScrollBarVisibilityL(
- CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto );
-
- SetRect( aRect );
- ActivateL();
-
- }
-
-// ---------------------------------------------------------------------------
-// CScreenSaverAnimPluginContainer::~CScreenSaverAnimPluginContainer()
-// Destructor
-// ---------------------------------------------------------------------------
-//
-CScreenSaverAnimPluginContainer::~CScreenSaverAnimPluginContainer()
- {
- delete iItems;
- delete iListBox;
- // delete iItemArray;
- }
-
-// ---------------------------------------------------------------------------
-// Sets feature support - see screensaveranimpluginconst.h for feature list.
-// ---------------------------------------------------------------------------
-//
-void CScreenSaverAnimPluginContainer::GetFeatureSupportL(
- TBitFlags& aFeatureBitFlags ) const
- {
- CRepository* featureRep = CRepository::NewLC( KCRUidThemesVariation );
- TInt value = KErrNone;
- featureRep->Get( KThemesLocalVariation, value );
-
- aFeatureBitFlags.ClearAll();
-
- //map value to feature flags
- if ( value & KScreenSaverRemoveAnimPluginTimeout )
- {
- aFeatureBitFlags.Set( EAnimPluginBacklightRemoved );
- }
-
- CleanupStack::PopAndDestroy( featureRep );
- }
-
-// ---------------------------------------------------------------------------
-// Checks if feature is supported.
-// ---------------------------------------------------------------------------
-//
-TBool CScreenSaverAnimPluginContainer::IsFeatureSupported( TInt aFeatureID )
- {
- if ( ( aFeatureID >= 0 ) && ( aFeatureID < KAnimPluginMaxFeatureID ) )
- {
- return iFeaturesSupport.IsSet( aFeatureID );
- }
- else
- {
- // invalid feature value.
- return EFalse;
- }
- }
-
-// ---------------------------------------------------------------------------
-// CScreenSaverAnimPluginContainer::HandleListBoxEventL
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-void CScreenSaverAnimPluginContainer::HandleListBoxEventL(
- CEikListBox* /*aListBox*/, TListBoxEvent aEventType )
- {
- switch ( aEventType )
- {
- case EEventEnterKeyPressed:
- case EEventItemDoubleClicked:
- case EEventItemSingleClicked:
- HandleListBoxSelectionL();
- break;
- default:
- break;
- }
- }
-
-// ---------------------------------------------------------------------------
-// CScreenSaverAnimPluginContainer::HandleListBoxSelectionL()
-// ---------------------------------------------------------------------------
-//
-void CScreenSaverAnimPluginContainer::HandleListBoxSelectionL()
- {
- TInt index = iListBox->CurrentItemIndex();
-
- switch ( index )
- {
- case ESanimAnimFileNameId:
- if ( !iInShowFileItem )
- {
- iInShowFileItem = ETrue;
- TRAPD( err,ShowFileNameItemL() );
- iInShowFileItem = EFalse;
- User::LeaveIfError( err );
- }
- break;
- case ESanimAnimTimeoutId:
- ShowAnimTimeOutItemL();
- break;
- case ESanimLightsTimeoutId:
- ShowLightsTimeOutItemL();
- break;
- default:
- break;
- }
- }
-
-// ---------------------------------------------------------------------------
-// CScreenSaverAnimPluginContainer::ConstructListBoxL( TInt aResLbxId )
-// ---------------------------------------------------------------------------
-//
-void CScreenSaverAnimPluginContainer::ConstructListBoxL( TInt aResLbxId )
- {
-#ifdef SCREENSAVER_LOG_ENABLED
- _LIT( msg, "In Construct ListBoxL" );
- PrintDebugMsg( msg );
-#endif
-
- iListBox->ConstructL( this, EAknListBoxSelectionList );
- iItems = iCoeEnv->ReadDesC16ArrayResourceL( aResLbxId );
- iItemArray = static_cast< CDesCArray* >( iListBox->Model()->ItemTextArray() );
- iListBox->SetListBoxObserver( this );
- CreateListBoxItemsL();
- }
-
-// ---------------------------------------------------------------------------
-// CScreenSaverAnimPluginContainer::CreateListBoxItemsL()
-//
-//
-// ---------------------------------------------------------------------------
-//
-void CScreenSaverAnimPluginContainer::CreateListBoxItemsL()
- {
-#ifdef SCREENSAVER_LOG_ENABLED
- _LIT( msg, "Make FileName" );
- PrintDebugMsg( msg );
-#endif
-
- MakeFileNameItem();
- iItemArray->InsertL( ESanimAnimFileNameId, iItem );
-
-#ifdef SCREENSAVER_LOG_ENABLED
- _LIT( msg1, "Make Duration" );
- PrintDebugMsg( msg1 );
-#endif
-
- MakeAnimTimeOutItemL();
- iItemArray->InsertL( ESanimAnimTimeoutId, iItem );
-
- if ( !IsFeatureSupported( EAnimPluginBacklightRemoved ) )
- {
- #ifdef SCREENSAVER_LOG_ENABLED
- _LIT( msg2, "Make Backlight" );
- PrintDebugMsg( msg2 );
- #endif
-
- MakeLightsTimeOutItemL();
- iItemArray->InsertL( ESanimLightsTimeoutId, iItem );
- }
- }
-
-// ---------------------------------------------------------------------------
-// CScreenSaverAnimPluginContainer::UpdateListBoxL( TInt aItemId )
-// ---------------------------------------------------------------------------
-//
-void CScreenSaverAnimPluginContainer::UpdateListBoxL( TInt aItemId )
- {
- switch ( aItemId )
- {
- case ESanimAnimFileNameId:
- MakeFileNameItem();
- break;
- case ESanimAnimTimeoutId:
- MakeAnimTimeOutItemL();
- break;
- case ESanimLightsTimeoutId:
- MakeLightsTimeOutItemL();
- break;
- default:
- break;
- }
-
- iItemArray->Delete( aItemId );
- iItemArray->InsertL( aItemId, iItem );
- iListBox->HandleItemAdditionL();
- }
-
-// ---------------------------------------------------------------------------
-// CScreenSaverAnimPluginContainer::HandleResourceChange( TInt aType )
-// ---------------------------------------------------------------------------
-//
-void CScreenSaverAnimPluginContainer::HandleResourceChange( TInt aType )
- {
- CCoeControl::HandleResourceChange( aType );
- if( aType == KEikDynamicLayoutVariantSwitch )
- {
- TRect mainPaneRect;
- GetNormalScreenLayoutRect( mainPaneRect );
- SetRect(mainPaneRect);
-
- DrawNow();
- }
- }
-
-// ---------------------------------------------------------------------------
-// CScreenSaverAnimPluginContainer::MakeFileNameItem()
-//
-// ---------------------------------------------------------------------------
-//
-void CScreenSaverAnimPluginContainer::MakeFileNameItem()
- {
- iItem = ( *iItems )[ESanimAnimFileNameId];
- TParsePtrC fileParser( iSettingObject->iFileName );
- TPtrC ptr( fileParser.NameAndExt() );
-
- // Filename may be quite long - copy only the amount there's space left
- iItem += ptr.Left( iItem.MaxLength() - iItem.Length() - 1 );
- }
-
-// ---------------------------------------------------------------------------
-// CScreenSaverAnimPluginContainer::MakeAnimTimeOutItemL()
-//
-// ---------------------------------------------------------------------------
-//
-void CScreenSaverAnimPluginContainer::MakeAnimTimeOutItemL()
- {
- iItem = ( *iItems )[ESanimAnimTimeoutId];
-
- HBufC* animText = CAknSlider::CreateValueTextInHBufCL(
- iSettingObject->iAnimationTimeout,
- R_ANIM_TIMEOUT_SLIDER );
-
- // for A&H number conversion
- TPtr bufPtr = animText->Des();
- if( AknTextUtils::DigitModeQuery( AknTextUtils::EDigitModeShownToUser ) )
- {
- AknTextUtils::LanguageSpecificNumberConversion( bufPtr );
- }
- iItem += bufPtr;
- delete animText;
-
- }
-
-// ---------------------------------------------------------------------------
-// CScreenSaverAnimPluginContainer::MakeLightTimeOutItemL()
-//
-// ---------------------------------------------------------------------------
-//
-void CScreenSaverAnimPluginContainer::MakeLightsTimeOutItemL()
- {
- iItem = ( *iItems )[ESanimLightsTimeoutId];
-
- HBufC* animText = NULL;
-
- if ( iSettingObject->iLightsTimeout == 0 )
- {
- animText = iCoeEnv->AllocReadResourceL( R_SANIM_SLIDER_OFF );
- }
- else
- {
- animText = CAknSlider::CreateValueTextInHBufCL(
- iSettingObject->iLightsTimeout,
- R_LIGHT_TIMEOUT_SLIDER );
- }
-
- // for A&H number conversion
- TPtr bufPtr = animText->Des();
- if( AknTextUtils::DigitModeQuery( AknTextUtils::EDigitModeShownToUser ) )
- {
- AknTextUtils::LanguageSpecificNumberConversion( bufPtr );
- }
- iItem += bufPtr;
- delete animText;
-
- }
-
-// ---------------------------------------------------------------------------
-// CScreenSaverAnimPluginContainer::ShowFileNameItemL()
-//
-// ---------------------------------------------------------------------------
-//
-void CScreenSaverAnimPluginContainer::ShowFileNameItemL()
- {
-
- CDesCArrayFlat* selectedFile = new( ELeave )CDesCArrayFlat( 1 );
- CleanupStack::PushL( selectedFile );
-
- TResourceReader reader;
- iCoeEnv->CreateResourceReaderLC( reader,
- R_MIMETYPE_SPECIFIC_PLUGIN_ARRAY );
- TInt countResource = reader.ReadInt16();
-
- CDesCArrayFlat* mimetypesList = new( ELeave )
- CDesCArrayFlat( countResource );
-
- CleanupStack::PushL( mimetypesList );
-
- for ( TInt i = 0; i < countResource; i++ )
- {
- HBufC* mimeType = reader.ReadHBufCL();
-
- // Check plugin availability before appending mimetype
- TUid uid = iCaller->FindAnimPluginL( *mimeType );
- if ( uid != KNullUid )
- {
- mimetypesList->AppendL( *mimeType );
- }
- delete mimeType;
- reader.ReadInt32();
- }
-
- CScreenSaverAnimPluginVerifier* verifier =
- CScreenSaverAnimPluginVerifier::NewL( iCaller );
- CleanupStack::PushL( verifier );
- TBool fileSelected = MGFetch::RunL( *selectedFile,
- EAnyMediaFile,
- EFalse,
- KNullDesC,
- KNullDesC,
- mimetypesList,
- verifier );
-
- CleanupStack::PopAndDestroy( verifier );
- CleanupStack::PopAndDestroy( mimetypesList );
- CleanupStack::PopAndDestroy(); // reader
-
- if ( fileSelected )
- {
- TPtrC fileNamePtr = selectedFile->MdcaPoint( 0 );
- TFileName tempFileName;
- tempFileName.Copy( fileNamePtr );
- iSettingObject->iFileName.Copy( tempFileName );
- // Write the new setting into the central repository
- iCaller->SetAnimSettings();
- UpdateListBoxL( ESanimAnimFileNameId );
- }
-
- CleanupStack::PopAndDestroy( selectedFile );
-
- }
-
-// ----------------------------------------------------
-// CScreenSaverAnimPluginContainer::ShowAnimTimeOutItemL()
-// Display the animation time-out setting page.
-// ----------------------------------------------------
-//
-void CScreenSaverAnimPluginContainer::ShowAnimTimeOutItemL()
- {
-
- CAknSettingPage* dlg = new( ELeave ) CAknSliderSettingPage(
- R_ANIM_TIMEOUT_SETTING_PAGE,
- iSettingObject->iAnimationTimeout );
- if ( dlg->ExecuteLD( CAknSettingPage::EUpdateWhenChanged ) )
- {
- // Write the new setting into the central repository
- iCaller->SetAnimSettings();
- UpdateListBoxL( ESanimAnimTimeoutId );
- }
- }
-
-// ----------------------------------------------------
-// CScreenSaverAnimPluginContainer::ShowLightsTimeOutItemL()
-// Display the animation time-out setting page.
-// ----------------------------------------------------
-//
-void CScreenSaverAnimPluginContainer::ShowLightsTimeOutItemL()
- {
- CAknSettingPage* dlg =
- new( ELeave ) CAknSliderSettingPage( R_LIGHT_TIMEOUT_SETTING_PAGE,
- iSettingObject->iLightsTimeout );
- if ( dlg->ExecuteLD( CAknSettingPage::EUpdateWhenChanged ) )
- {
- // Write the new setting into the central repository
- iCaller->SetAnimSettings();
- UpdateListBoxL( ESanimLightsTimeoutId );
- }
- }
-
-void CScreenSaverAnimPluginContainer::SizeChanged()
- {
- if (iListBox)
- {
- // Get size from main pane, place from this rect
- TRect mainPaneRect;
- AknLayoutUtils::LayoutMetricsRect(
- AknLayoutUtils::EMainPane,
- mainPaneRect );
-
- iListBox->SetExtent( Rect().iTl, mainPaneRect.Size() );
- }
- }
-
-TInt CScreenSaverAnimPluginContainer::CountComponentControls() const
- {
- if ( iListBox )
- {
- return 1;
- }
- else
- {
- return 0;
- }
- }
-
-CCoeControl* CScreenSaverAnimPluginContainer::
- ComponentControl( TInt /*aIndex*/ ) const
- {
- if ( iListBox )
- {
- return iListBox;
- }
- else
- {
- return NULL;
- }
- }
-
-// ---------------------------------------------------------------------------
-// CScreenSaverAnimPluginContainer::OfferKeyEventL
-// Called when a key is pressed.
-//
-// ---------------------------------------------------------------------------
-TKeyResponse CScreenSaverAnimPluginContainer::OfferKeyEventL(
- const TKeyEvent& aKeyEvent, TEventCode aType )
- {
- switch (aKeyEvent.iCode)
- {
- case EKeyLeftArrow:
- case EKeyRightArrow:
- // Listbox takes all event even if it doesn't use them
- return EKeyWasNotConsumed;
- default:
- break;
- }
- return iListBox->OfferKeyEventL( aKeyEvent, aType );
- }
-
-void CScreenSaverAnimPluginContainer::SetContainerWindowL( const CCoeControl&
- /* aContainer*/ )
- {
- }
-
-// ---------------------------------------------------------------------------
-// CScreenSaverAnimPluginContainer::FocusChanged
-// ---------------------------------------------------------------------------
-void CScreenSaverAnimPluginContainer::FocusChanged( TDrawNow aDrawNow )
- {
- // Pass focus changed event to listbox.
- if ( iListBox )
- {
- iListBox->SetFocus( IsFocused(), aDrawNow );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CSvgRenderFrameControl::GetNormalScreenLayoutRect
-// Gets the normal screen layout rectangle for control from LAF.
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimPluginContainer::GetNormalScreenLayoutRect(
- TRect& aRect ) const // Rectangle specifying extent of control
- {
- AknLayoutUtils::LayoutMetricsRect(
- AknLayoutUtils::EMainPane,
- aRect );
- }
-
-// End of File
--- a/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/src/ScreenSaverAnimPluginHelper.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,361 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: This file implements all helper classes
-* for ScreenSaverAnimPlugin
-*
-*/
-
-
-
-// INCLUDE FILES
-
-#include <DRMHelper.h>
-#include <coemain.h>
-#include <apgcli.h>
-#include <barsread.h>
-#include <aknnotewrappers.h>
-#include <centralrepository.h>
-
-#include <screensaveranimplugin.rsg>
-
-#include "ScreenSaverAnimPluginHelper.h"
-#include "ScreenSaverAnimPlugin.h"
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPluginVerifier::CScreenSaverAnimPluginVerifier
-// C++ default constructor can NOT contain any code, that might leave.
-// -----------------------------------------------------------------------------
-//
-CScreenSaverAnimPluginVerifier::CScreenSaverAnimPluginVerifier(
- CScreenSaverAnimPlugin* aFileVerify ) :
- iFileVerify( aFileVerify )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPluginVerifier::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimPluginVerifier::ConstructL()
- {
- iCoeEnv = CCoeEnv::Static();
- iDRMHelper = CDRMHelper::NewL( *iCoeEnv );
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPluginVerifier::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CScreenSaverAnimPluginVerifier* CScreenSaverAnimPluginVerifier::NewL(
- CScreenSaverAnimPlugin* aFileVerify )
- {
- CScreenSaverAnimPluginVerifier* self = new( ELeave )
- CScreenSaverAnimPluginVerifier( aFileVerify );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPluginVerifier::~CScreenSaverAnimPluginVerifier
-// Destructor.
-// -----------------------------------------------------------------------------
-//
-CScreenSaverAnimPluginVerifier::~CScreenSaverAnimPluginVerifier()
- {
- delete iDRMHelper;
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPluginVerifier::IsFileValidL
-// Empty implementation.
-// -----------------------------------------------------------------------------
-//
-TBool CScreenSaverAnimPluginVerifier::VerifySelectionL( const MDesCArray*
- aSelectedFiles )
- {
-
- TBool canbeautomated( EFalse );
-
- if( aSelectedFiles->MdcaCount()<1 )
- {
- // Download item
- return ETrue;
- }
-
- // 1. Check whether the drm rights are ok
- TInt res = 0;
- iDRMHelper->SetAutomatedType(
- CDRMHelper::EAutomatedTypeScreenSaver );
- res = iDRMHelper->CanSetAutomated( aSelectedFiles->MdcaPoint( 0 ), canbeautomated );
- if ( KErrUnderflow == res )
- {
- TInt resourceId = R_SANIM_ERROR_WRONG_FORMAT;
- // Show information note
- ShowErrorNoteL( resourceId );
- return EFalse;
- }
- if ( res )
- {
- iDRMHelper->HandleErrorL( res, aSelectedFiles->MdcaPoint( 0 ) );
- return canbeautomated;
- }
- else if ( !canbeautomated )
- {
- ShowErrorNoteL( R_DRM_PREV_RIGHTS_SET );
- return canbeautomated;
- }
-
- // 2. Check whether the file is supported
- RApaLsSession ls;
- CleanupClosePushL( ls );
- TUid dummyUid( KNullUid );
- TDataType dataType;
- User::LeaveIfError( ls.Connect() );
- // find the mimetype
- User::LeaveIfError( ls.AppForDocument( aSelectedFiles->MdcaPoint( 0 ),
- dummyUid, dataType ) );
-
- CleanupStack::PopAndDestroy( &ls );
-
- TResourceReader reader;
- TBool valid( EFalse );
- iCoeEnv->CreateResourceReaderLC( reader,
- R_MIMETYPE_SPECIFIC_PLUGIN_ARRAY );
- TInt countResource = reader.ReadInt16();
-
- for ( TInt i = 0; i < countResource; i++ )
- {
- HBufC* newMimeTypeEntry = reader.ReadHBufCL();
- TPtr mimePtr( newMimeTypeEntry->Des() );
- reader.ReadInt32();
- if ( newMimeTypeEntry->Compare( dataType.Des() ) == 0 )
- {
- valid = ETrue;
- }
- delete newMimeTypeEntry;
- }
- CleanupStack::PopAndDestroy(); // reader
-
- if ( !valid )
- {
- // Pop a not supported error message
- ShowErrorNoteL( R_SANIM_NOT_SUPPORTED );
- return EFalse;
- }
-
- //3. Check file for Validity
-
- //Display the confirmation query when setting
- //a DRM protected image as screensaver in General settings.
- TInt isCancel;
- isCancel = iDRMHelper->ShowAutomatedNote( aSelectedFiles->MdcaPoint( 0 ) );
- if ( KErrCancel == isCancel )
- {
- return EFalse;
- }
-
-
- TInt validity = KErrNone;
- TRAPD( err,
- validity = iFileVerify->CheckFileValidityL( aSelectedFiles->MdcaPoint( 0 ) ));
-
- if ( err )
- {
- // Dll may not be present
- ShowErrorNoteL( R_SANIM_NOT_SUPPORTED );
- return EFalse;
- }
-
- if ( validity == KErrNoMemory )
- {
- // Pop up a Corrupted File message
- CEikonEnv::Static()->HandleError( validity );
- return EFalse;
- }
- else if ( validity != KErrNone )
- {
- TInt resourceId = R_SANIM_ERROR_WRONG_FORMAT;
- // Show information note
- ShowErrorNoteL( resourceId );
- return EFalse;
- }
-
- return valid;
-
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPluginVerifier::ShowErrorNoteL
-// Displays the error note
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimPluginVerifier::ShowErrorNoteL( TInt aResourceId ) const
- {
- HBufC* errorText =
- iCoeEnv->AllocReadResourceLC( aResourceId );
- CAknInformationNote* note = new( ELeave ) CAknInformationNote( EFalse );
- note->ExecuteLD( *errorText );
- CleanupStack::PopAndDestroy( errorText ); // errorText
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverRepositoryWatcher::NewL
-// -----------------------------------------------------------------------------
-//
-CScreensaverRepositoryWatcher* CScreensaverRepositoryWatcher::NewL(
- const TUid aUid,
- const TUint32 aKey,
- CCenRepNotifyHandler::TCenRepKeyType aKeyType,
- TCallBack aCallBack,
- CRepository* aRepository )
- {
- CScreensaverRepositoryWatcher* self = new( ELeave )
- CScreensaverRepositoryWatcher( aUid, aKey, aCallBack, aRepository );
-
- CleanupStack::PushL( self );
- self->ConstructL( aKeyType );
- CleanupStack::Pop( self );
-
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverRepositoryWatcher::NewL
-// -----------------------------------------------------------------------------
-//
-CScreensaverRepositoryWatcher* CScreensaverRepositoryWatcher::NewL(
- const TUid aUid,
- TCallBack aCallBack,
- CRepository* aRepository )
- {
- CScreensaverRepositoryWatcher* self = new( ELeave ) CScreensaverRepositoryWatcher(
- aUid, NCentralRepositoryConstants::KInvalidNotificationId, aCallBack, aRepository );
-
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
-
- return self;
- }
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverRepositoryWatcher::~CScreensaverRepositoryWatcher
-// -----------------------------------------------------------------------------
-//
-CScreensaverRepositoryWatcher::~CScreensaverRepositoryWatcher()
- {
- if ( iNotifyHandler )
- {
- iNotifyHandler->StopListening();
- delete iNotifyHandler;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverRepositoryWatcher::CScreensaverRepositoryWatcher
-// -----------------------------------------------------------------------------
-//
-CScreensaverRepositoryWatcher::CScreensaverRepositoryWatcher(
- const TUid aUid,
- const TUint32 aKey,
- TCallBack aCallBack,
- CRepository* aRepository )
- :
- iUid( aUid ), iKey( aKey ), iCallBack( aCallBack ), iRepository( aRepository )
- {
- }
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverRepositoryWatcher::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverRepositoryWatcher::ConstructL(CCenRepNotifyHandler::TCenRepKeyType aKeyType)
- {
- iNotifyHandler = CCenRepNotifyHandler::NewL( *this, *iRepository, aKeyType, iKey );
- iNotifyHandler->StartListeningL();
- }
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverRepositoryWatcher::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverRepositoryWatcher::ConstructL()
- {
- iNotifyHandler = CCenRepNotifyHandler::NewL( *this, *iRepository );
- iNotifyHandler->StartListeningL();
- }
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverRepositoryWatcher::ChangedKey
-// -----------------------------------------------------------------------------
-//
-TUint32 CScreensaverRepositoryWatcher::ChangedKey()
- {
- return iChangedKey;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverRepositoryWatcher::HandleNotifyInt
-// -----------------------------------------------------------------------------
-//
-void CScreensaverRepositoryWatcher::HandleNotifyInt(
- TUint32 aKey, TInt /*aNewValue*/ )
- {
- iChangedKey = aKey;
- iCallBack.CallBack();
- iChangedKey = NCentralRepositoryConstants::KInvalidNotificationId;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverRepositoryWatcher::HandleNotifyString
-// -----------------------------------------------------------------------------
-//
-void CScreensaverRepositoryWatcher::HandleNotifyString( TUint32 aKey,
- const TDesC16& /*aNewValue*/ )
- {
- iChangedKey = aKey;
- iCallBack.CallBack();
- iChangedKey = NCentralRepositoryConstants::KInvalidNotificationId;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverRepositoryWatcher::HandleNotifyGeneric
-// -----------------------------------------------------------------------------
-//
-void CScreensaverRepositoryWatcher::HandleNotifyGeneric(TUint32 aKey)
- {
- iChangedKey = aKey;
- iCallBack.CallBack();
- iChangedKey = NCentralRepositoryConstants::KInvalidNotificationId;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverRepositoryWatcher::HandleNotifyError
-// -----------------------------------------------------------------------------
-//
-void CScreensaverRepositoryWatcher::HandleNotifyError(TUint32 /*aKey*/, TInt /*aError*/, CCenRepNotifyHandler* /*aHandler*/)
- {
- }
-
-// End of File
--- a/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/src/ScreenSaverAnimPluginProxy.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: ECOM Implementation Array.
-*
-*/
-
-
-
-
-
-// INCLUDE FILES
-#include <e32std.h>
-#include <ecom/implementationproxy.h>
-#include <coecntrl.h>
-#include "ScreenSaverAnimPluginImplementationUid.hrh"
-#include "ScreenSaverAnimPlugin.h"
-
-// CONSTANTS
-const TImplementationProxy ImplementationTable[] =
- {
- IMPLEMENTATION_PROXY_ENTRY( KScreenSaverAnimPluginImplementationUID,
- CScreenSaverAnimPlugin::NewL )
- };
-
-// ========================== OTHER EXPORTED FUNCTIONS =========================
-
-// -----------------------------------------------------------------------------
-// ImplementationProxy
-// ECOM implementation table entry.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount )
- {
- aTableCount = sizeof( ImplementationTable ) / sizeof( TImplementationProxy );
-
- return ImplementationTable;
- }
-
-// End of File
-
--- a/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/src/ScreenSaverAnimSettingDialog.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,470 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: This file implements the Setting Dialog which
-* is used to display Settings container
-*
-*/
-
-
-
-
-
-#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
-#include <uikon/eikctrlstatus.h>
-#endif
-#include <e32std.h>
-#include <AknDialog.h>
-#include <coeaui.h>
-#include <eikenv.h>
-#include <bautils.h>
-#include <eikdialg.h>
-#include <eikmenup.h>
-#include <eikspane.h>
-
-#ifdef __SERIES60_HELP
-#include <hlplch.h>
-#endif // __SERIES60_HELP
-
-#ifdef __SERIES60_HELP
-// Help Context UID = DLL UID3
-const TUid KScreenSaverAnimPluginHelpContextUid = { 0x10207447 };
-#endif // __SERIES60_HELP
-
-#include <coeaui.h>
-#include <AknWaitNoteWrapper.h>
-#include <aknnotewrappers.h>
-#include <akntitle.h>
-#include <data_caging_path_literals.hrh>
-#include <StringLoader.h>
-#include <screensaveranimplugin.rsg>
-//-----------
-// USER INCLUDES
-#include "ScreenSaverAnimPlugin.h"
-#include "ScreenSaverAnimPlugin.hrh"
-#include "ScreenSaverAnimSettingDialog.h"
-#include "ScreenSaverAnimPluginContainer.h"
-#include "screensaver.hlp.hrh"
-
-// Middle softkey control ID
-const TInt KSanimMSKControlID = 3;
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimSettingDialog::CScreenSaverAnimSettingDialog
-// Default Constructor. Initialises Dialog State Variables.
-// -----------------------------------------------------------------------------
-//
-CScreenSaverAnimSettingDialog::CScreenSaverAnimSettingDialog(
- CScreenSaverAnimPlugin* aCaller,
- CScreenSaverAnimSettingObject* aSettingObject )
- :iSettingObject( aSettingObject ),
- iCaller( aCaller )
- {
- iCustControl = NULL;
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimSettingDialog::ConstructL
-// Second Phase Constructor for CScreenSaverAnimSettingDialog. Opens resource file, reads the
-// dialog menu resource and calls CAknDialog::ConstructL with the resource as
-// param.
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimSettingDialog::ConstructL()
- {
- CAknDialog::ConstructL( R_SANIM_DIALOG_MENUBAR );
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimSettingDialog::NewL
-// Factory function for creating CScreenSaverAnimSettingDialog objects.
-// Returns: CScreenSaverAnimSettingDialog* ; Pointer to the created object.
-// Leaves if error occurs during creation.
-// -----------------------------------------------------------------------------
-//
-CScreenSaverAnimSettingDialog* CScreenSaverAnimSettingDialog::NewL(
- CScreenSaverAnimPlugin* aCaller,
- CScreenSaverAnimSettingObject* aSettingObject )
- {
- CScreenSaverAnimSettingDialog* self = CScreenSaverAnimSettingDialog::NewLC(
- aCaller,
- aSettingObject );
- CleanupStack::Pop( self );
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimSettingDialog::NewLC
-// Factory function for creating CScreenSaverAnimSettingDialog objects.
-// It also pushes the created dialog object onto the cleanup stack.
-// Returns: CScreenSaverAnimSettingDialog* ; Pointer to the created object.
-// Leaves if error occurs during creation.
-// -----------------------------------------------------------------------------
-//
-CScreenSaverAnimSettingDialog* CScreenSaverAnimSettingDialog::NewLC(
- CScreenSaverAnimPlugin* aCaller,
- CScreenSaverAnimSettingObject* aSettingObject )
- {
- CScreenSaverAnimSettingDialog* self = new ( ELeave )
- CScreenSaverAnimSettingDialog( aCaller, aSettingObject );
- CleanupStack::PushL( self );
- self->ConstructL();
- return self;
- }
-
-// Destructor
-CScreenSaverAnimSettingDialog::~CScreenSaverAnimSettingDialog()
- {
- if (this->IsFocused())
- {
- CEikDialog::ButtonGroupContainer().RemoveCommandObserver(
- KSanimMSKControlID );
- }
-
- // Custom Control will be automatically destroyed by dialog framework
- iCustControl = NULL;
-
- // Set the text in status pane to the stored one
- if (iAppTitleText)
- {
- // Get the Status Pane Control
- CEikStatusPane* sp = iEikonEnv->AppUiFactory()->StatusPane();
- // Get the title pane
- CAknTitlePane* tp = NULL;
- TRAPD( errGetControl,
- tp = static_cast< CAknTitlePane* >( sp->ControlL(
- TUid::Uid( EEikStatusPaneUidTitle ) ) ) );
- if ( errGetControl == KErrNone && tp )
- {
- //set application name in the title pane
- TRAPD( errSetText,
- tp->SetTextL( *iAppTitleText ) );
- if ( errSetText != KErrNone )
- {
- // No error handling here
- }
- }
-
- delete iAppTitleText;
- iAppTitleText = NULL;
- }
-
- delete iTitlePaneString;
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimSettingDialog::ExecuteLD
-// Reimplements CAknDialog::ExecuteLD. It initialises the member variables of
-// the class and calls CAknDialog::ExecuteLD() with the dialog resource.
-// -----------------------------------------------------------------------------
-//
-TInt CScreenSaverAnimSettingDialog::ExecuteLD()
- {
-#ifdef SCREENSAVER_LOG_ENABLED
- _LIT( msg, "In Executeld dlg" );
- PrintDebugMsg( msg );
-#endif
-
- // Save this pointer since there are leaving functions in the flow
- CleanupStack::PushL( this );
-
- // Get the Status Pane Control
- CEikStatusPane* sp = iEikonEnv->AppUiFactory()->StatusPane();
-
- // Get the Title Pane Control
- CAknTitlePane* tp = static_cast< CAknTitlePane* >( sp->ControlL(
- TUid::Uid( EEikStatusPaneUidTitle ) ) );
-
- // Store the Application's title text
- iAppTitleText = HBufC::NewL( tp->Text()->Length() );
- *iAppTitleText = *tp->Text();
-
- // Display Settings in the title pane of application
- iTitlePaneString = NULL;
- iTitlePaneString = StringLoader::LoadL( R_SANIM_TITLE_SETTINGS,
- iEikonEnv );
- // SetTextL also ensures that if the length exceeds the layout space
- // available the text is truncated from the end.
- tp->SetTextL( iTitlePaneString->Des() );
-
- // ExecuteLD will delete this, so we have to Pop it...
- CleanupStack::Pop( this ); // this
-
- return CAknDialog::ExecuteLD( R_SANIM_SETTING_DIALOG );
-
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimSettingDialog::DynInitMenuPaneL
-// Reimplements CAknDialog::DynInitMenuPaneL inorder to support dynamic hiding
-// of menu items based on current state of the viewer.
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimSettingDialog::DynInitMenuPaneL(
- TInt aResourceId, // Resource Id for which this func is called
- CEikMenuPane* aMenuPane ) // Menupane object pointer for manipulation
- {
- if ( ( aResourceId == R_SANIM_DIALOG_MENU ) && ( aMenuPane ) )
- {
- }
- }
-
-
-// -----------------------------------------------------------------------------
-// Layouts dialog before showing it.
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimSettingDialog::PreLayoutDynInitL()
- {
- // Set middle softkey as Change.
- SetMiddleSoftKeyLabelL( R_SANIM_MSK_CHANGE, ESanimDlgChangeCommand );
-
- CAknDialog::PreLayoutDynInitL();
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimSettingDialog::OkToExitL
-// Reimplements CAknDialog::OkToExitL inorder to display custom menu and
-// trap the back softkey to provide restore view functionality/exit.
-// -----------------------------------------------------------------------------
-//
-TBool CScreenSaverAnimSettingDialog::OkToExitL( TInt aButtonId ) // ButtonId of button pressed
- {
- if ( aButtonId == EAknSoftkeyOptions )
- {
- DisplayMenuL();
- return EFalse;
- }
- else
- {
- if ( aButtonId == EAknSoftkeyBack )
- {
- }
- else
- {
- // Especially handle Select Key
- if ( ( aButtonId == EAknSoftkeySelect ) ||
- ( aButtonId == EEikBidOk ) ||
- ( aButtonId == ESanimDlgChangeCommand ) )
- {
- // Select button pressed, handle, do not leave dialog
- ProcessCommandL( ESanimDlgChangeCommand );
- return EFalse;
- }
- if ( aButtonId == EEikCmdExit )
- {
- }
- }
- }
-
- return ETrue;
- }
-
-
-// ---------------------------------------------------------------------------
-// CScreenSaverAnimSettingDialog::HandleApplicationForegroundEvent
-// This API is used by the application to give background/foreground events
-// to the Dialog. The dialog inturn passes the events to custom control.
-// ---------------------------------------------------------------------------
-//
-void CScreenSaverAnimSettingDialog::HandleApplicationForegroundEvent( TBool
- /*aForeground*/ )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimSettingDialog::ProcessCommandL
-// Reimplements CAknDialog::ProcessCommandL inorder to handle dialog menu
-// commands.
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimSettingDialog::ProcessCommandL( TInt aCommandId ) // Command Id
- {
- // The Commands are handled by the custom CCoe Control and
- // a boolean varialble is used inorder to keep track whether
- // the control command processing needs to be invoked or not.
- CAknDialog::ProcessCommandL( aCommandId );
- switch ( aCommandId )
- {
- case ESanimDlgChangeCommand:
- if ( iCustControl )
- {
- iCustControl->HandleListBoxSelectionL();
- }
- break;
- case ESanimDlgHelpCommand:
- {
-#ifdef __SERIES60_HELP
- HlpLauncher::LaunchHelpApplicationL( iEikonEnv->WsSession(),
- iEikonEnv->EikAppUi()->AppHelpContextL() );
-#endif
- }
- break;
- case EAknSoftkeyBack: // Fall Through
- case EEikCmdExit:
- case EAknCmdExit:
- // Close this dialog
- TryExitL( aCommandId );
- iAvkonAppUi->ProcessCommandL( aCommandId );
- break;
- default:
- break;
- }
- }
-
-#ifdef __SERIES60_HELP
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimSettingDialog::OfferKeyEventL
-// Handles Key events by reimplementing CCoeControl::OfferKeyEventL.
-// Returns:
-// EKeyWasConsumed: If this control uses this key.
-// EKeyWasNotConsumed: Otherwise.
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimSettingDialog::GetHelpContext( TCoeHelpContext&
- aContext ) const
- {
- aContext.iMajor = KScreenSaverAnimPluginHelpContextUid;
- aContext.iContext = KSCREENSAVER_HLP_ANIM_SETTINGS;
- }
-#endif // __SERIES60_HELP
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimSettingDialog::CreateCustomControlL
-// Reimplements CAknDialog::CreateCustomControlL inorder to add the
-// custom control as part of the dialog in the UI framework.
-// Returns: SEikControlInfo which contains the Cust Control, if
-// aControlType == ESanimCustControl
-// else,
-// the structure does not contain any control.
-// -----------------------------------------------------------------------------
-//
-SEikControlInfo CScreenSaverAnimSettingDialog::CreateCustomControlL(
- TInt aControlType ) // Control Type
- {
-#ifdef SCREENSAVER_LOG_ENABLED
- _LIT( msg, "In Create Custom Control" );
- PrintDebugMsg( msg );
-#endif
-
- SEikControlInfo controlInfo;
- controlInfo.iControl = NULL;
- controlInfo.iTrailerTextId = 0;
- controlInfo.iFlags = EEikControlIsNonFocusing;
-
- switch ( aControlType )
- {
- case ESanimCustControl:
- iCustControl = CScreenSaverAnimPluginContainer::NewL(
- iCaller,
- this,
- iSettingObject );
- controlInfo.iControl = iCustControl;
- break;
- default:
- break;
- }
- return controlInfo;
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimSettingDialog::SizeChanged
-// Reimplements CAknDialog::SizeChanged inorder to support the resize of the
-// dialog when functions such as SetRect, SetExtent are called on the dialog.
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimSettingDialog::SizeChanged()
- {
- CAknDialog::SizeChanged();
- iCustControl->SetExtent( Rect().iTl, Rect().Size() );
- DrawNow();
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimSettingDialog::OfferKeyEventL
-// Handles Key events by reimplementing CCoeControl::OfferKeyEventL.
-// Returns:
-// EKeyWasConsumed: If this control uses this key.
-// EKeyWasNotConsumed: Otherwise.
-// -----------------------------------------------------------------------------
-//
-TKeyResponse CScreenSaverAnimSettingDialog::OfferKeyEventL(
- const TKeyEvent& aKeyEvent, // Key Event
- TEventCode aType ) // Event Code
- {
- if ( iCustControl )
- {
- TKeyResponse lCcRetVal = iCustControl->OfferKeyEventL( aKeyEvent, aType );
- if ( lCcRetVal == EKeyWasConsumed )
- {
- // Key was consumed, UNLESS it was the End key, which should be
- // passed to base class. For some reason listboxes like to eat
- // end keys
- if ( aKeyEvent.iCode != EKeyEscape )
- {
- return EKeyWasConsumed;
- }
- }
- }
- return CAknDialog::OfferKeyEventL( aKeyEvent, aType );
- }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimSettingDialog::HandleResourceChange
-// Handles change of skin/Layout
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimSettingDialog::HandleResourceChange( TInt aType )
- {
- if ( iCustControl )
- {
- iCustControl->HandleResourceChange( aType );
- }
- CAknDialog::HandleResourceChange( aType );
- }
-
-// ---------------------------------------------------------------------------
-// CScreenSaverAnimSettingDialog::FocusChanged
-// ---------------------------------------------------------------------------
-//
-void CScreenSaverAnimSettingDialog::FocusChanged( TDrawNow aDrawNow )
- {
- // Pass focus changed event to listbox.
- if ( iCustControl )
- {
- iCustControl->SetFocus( IsFocused(), aDrawNow );
- }
- }
-
-// ---------------------------------------------------------------------------
-// Sets middle softkey label.
-// ---------------------------------------------------------------------------
-//
-void CScreenSaverAnimSettingDialog::SetMiddleSoftKeyLabelL(
- const TInt aResourceId, const TInt aCommandId )
- {
- HBufC* middleSKText = StringLoader::LoadLC( aResourceId );
- TPtr mskPtr = middleSKText->Des();
- CEikDialog::ButtonGroupContainer().AddCommandToStackL(
- KSanimMSKControlID,
- aCommandId,
- mskPtr );
- CEikDialog::ButtonGroupContainer().UpdateCommandObserverL(
- KSanimMSKControlID,
- *this );
- CleanupStack::PopAndDestroy( middleSKText );
- }
-
-// End of File
--- a/scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/BWINSCW/ScreenSaverGifAnimPluginU.def Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
- ?ImplementationGroupProxy@@YAPBUTImplementationProxy@@AAH@Z @ 1 NONAME ; struct TImplementationProxy const * ImplementationGroupProxy(int &)
-
--- a/scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/EABI/ScreenSaverGifAnimPluginU.def Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-EXPORTS
- _Z24ImplementationGroupProxyRi @ 1 NONAME
- _ZTI19CGifAnimationPlugin @ 2 NONAME ; #<TI>#
- _ZTI26CGifAnimationPluginControl @ 3 NONAME ; #<TI>#
- _ZTI27CGifAnimationPluginEcomMain @ 4 NONAME ; #<TI>#
- _ZTV19CGifAnimationPlugin @ 5 NONAME ; #<VT>#
- _ZTV26CGifAnimationPluginControl @ 6 NONAME ; #<VT>#
- _ZTV27CGifAnimationPluginEcomMain @ 7 NONAME ; #<VT>#
-
--- a/scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/group/ScreenSaverGifAnimPluginEcom.mmp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Project definition file for project GifAnimation plug-in
-*
-*/
-
-
-
-
-
-#include <platform_paths.hrh>
-
-TARGET ScreenSaverGifAnimPlugin.dll
-TARGETTYPE PLUGIN
-UID 0x10009D8D 0x102750B5
-
-CAPABILITY CAP_ECOM_PLUGIN
-VENDORID VID_DEFAULT
-
-SOURCEPATH ../src
-SOURCE GifAnimationPluginMain.cpp
-SOURCE GifAnimationPlugin.cpp
-SOURCE GifAnimationPluginDllApi.cpp
-SOURCE GifAnimationPluginControl.cpp
-
-
-USERINCLUDE ../inc
-USERINCLUDE ../../ScreenSaverAnimPlugin/inc
-
-// This is a SYSTEMINCLUDE macro containing the middleware
-// layer specific include directories
-APP_LAYER_SYSTEMINCLUDE
-
-SOURCEPATH ../resource
-START RESOURCE 102750B5.rss
-TARGET ScreenSaverGifAnimPlugin.rsc
-END // RESOURCE
-
-
-//deffile generation
-#if defined( ARMCC )
-DEFFILE ../EABI/ScreenSaverGifAnimPlugin.def
-#else
-DEFFILE ../BWINSCW/ScreenSaverGifAnimPlugin.def
-#endif
-
-LIBRARY euser.lib cone.lib
-LIBRARY eikcore.lib fbscli.lib gdi.lib
-LIBRARY bitgdi.lib // CFbsBitmapDevice
-LIBRARY ecom.lib
-LIBRARY IHL.lib // MIHLFileImage
-LIBRARY efsrv.lib // RFs
-LIBRARY bafl.lib // baflutils
--- a/scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/group/bld.inf Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-/*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: This is a build file that builds ScreenSaverGifAnimPlugin alone
-*
-*/
-
-
-
-
-
-#ifdef RD_SCREENSAVER_GIFANIMATION
-
-//Platforms listed are not built by ScreenSaver GifAnimPlugin
-PRJ_PLATFORMS
-DEFAULT -ARMI -ARM4
-
-PRJ_EXPORTS
-../rom/ScreenSaverGifAnimPlugin.iby CORE_MW_LAYER_IBY_EXPORT_PATH(ScreenSaverGifAnimPlugin.iby)
-
-PRJ_MMPFILES
-ScreenSaverGifAnimPluginEcom.mmp
-
-#endif // RD_SCREENSAVER_GIFANIMATION
--- a/scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/inc/GifAnimationPlugin.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,434 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Screensaver GifAnimation plug-in implementation header file
-*
-*/
-
-
-
-#ifndef C_GIFANIMATIONPLUGIN_H
-#define C_GIFANIMATIONPLUGIN_H
-
-#include <e32std.h>
-#include <coecntrl.h>
-#include <coemain.h>
-#include <fbs.h>
-#include <barsread.h>
-
-#include <npupp.h>
-#include <pluginadapterinterface.h>
-#include <cecombrowserplugininterface.h>
-#include <MIHLViewerObserver.h>
-
-
-// FORWARD DECLARATIONS
-class MIHLFileImage;
-class MIHLBitmap;
-class MIHLImageViewer;
-
-class CCoeControl;
-class CGifAnimationPlugin;
-
-// CONSTANTS
-/** implementation id GifAnim Ecom Plugin */
-const TInt KGifAnimationPluginImplementationValue = 0x102750B4;
-
-/******************************************
-* This class is specific to ECom Style Plugin.
-* This is used for passing plugin specific initialization information
-* to and from browser.
-*******************************************/
-
-class CGifAnimationPluginEcomMain : public CEcomBrowserPluginInterface
- {
- public: // Functions from base classes
-
- /**
- * Instance factory
- * @param aInitParam an optional parameter
- */
- static CGifAnimationPluginEcomMain* NewL(TAny* aInitParam);
-
- /**
- * Destructor.
- */
- virtual ~CGifAnimationPluginEcomMain();
-
- /**
- * @return pointer to functions struct.
- */
- NPNetscapeFuncs* Funcs() { return iNpf; }
-
- private: // Constructors
- CGifAnimationPluginEcomMain( NPNetscapeFuncs* aNpf );
- void Construct( NPPluginFuncs* aPluginFuncs );
- private: // new functions
- /**
- * Sets pointers to interface functions
- * @param aPpf structure to fill
- */
- NPError InitializeFuncs( NPPluginFuncs* aPpf );
-
- private: // Data
- // pointer to plug-in function pointers struct
- NPNetscapeFuncs* iNpf;
- };
-
-/****************************************
-Class CGifAnimationPluginControl
-Class to Handle UI related actions
-****************************************/
-class CGifAnimationPluginControl : public CCoeControl,
- public MIHLViewerObserver
-
- {
-public: // Constructor and Destructor
-
- /**
- * Function: NewL
- *
- * Description: Get instance of a CGifAnimationPluginControl object.
- * @param aParentControl a parent class to register to
- * @param aPluginAdapter pointer to plugin adapter
- */
- static CGifAnimationPluginControl* NewL( CCoeControl* aParentControl,
- MPluginAdapter* aPluginAdapter);
-
- /**
- * Destructor.
- */
- ~CGifAnimationPluginControl();
-
-public: // From MIHLViewerObserver
- /**
- * From MIHLViewerObserver Notifies client
- * when viewer bitmap content is changed.
- * Leave situation is handled in ViewerError() callback.
- */
- void ViewerBitmapChangedL();
-
- /**
- * From MIHLViewerObserver Notifies client if error occurs in viewer.
- * @param aError IN System wide error code.
- */
- void ViewerError( TInt aError );
-
-public: // new methods
- /**
- * Loads the image into display.
- * @param aImageFileName image file name - expected to be valid image
- */
- void LoadImageL( const TDesC& aImageFileName );
-
- /**
- * @return last error, if any
- */
- TInt GetLastError() const;
-
- /**
- * Start animation.
- */
- void StartAnimationL();
-
- /**
- * Stop animation.
- */
- void StopAnimation();
-
- /**
- * Checks that the file is a valid image file.
- * Will leave otherwise
- *
- * @param aImageFileName image file name - expected to be valid image
- */
- static void CheckFileIsValidL( const TDesC& aImageFileName );
-
-
-private: // new methods
-
- /**
- * @return ETrue if loaded image is animation.
- */
- TBool IsAnimation() const;
-
- /**
- * Cancel animation.
- */
- void CancelAnimation();
-
- /**
- * Performs image loading steps.
- * Uses file name stored in LoadImageL()
- */
- void DoImageLoadingL();
-
- /**
- * Frees resources allocated with LoadImageL()
- */
- void DeleteAnimation();
-
- /**
- * If loading content fails, non-leaving HandleCallback
- * must be call always that parent can update its state
- * properly.
- */
- void HandleCallback( TInt aError );
-
- /**
- * Informes that the plug-in wants to terminate
- */
- void InformPluginFinished();
-
- /**
- * Informs that DRM rights should not be consumed
- */
- void SetPreviewMode();
-
-private: // from CCoeControl
- void Draw(const TRect& aRect) const;
- void SizeChanged();
-
-private: // Constructor
- /**
- * Constructor.
- */
- CGifAnimationPluginControl();
-
- /**
- * ConstructL
- *
- * 2nd phase constructor.
- * @param aParentControl a parent class to register to
- * @param aPluginAdapter pointer to plugin adapter
- */
- void ConstructL( CCoeControl *aParentControl,
- MPluginAdapter* aPluginAdapter );
-
-private: // Data
-
- /**
- * Possible animation states
- */
- enum TAnimationState
- {
- EAnimationNotReady=1, // the file was not loaded yet or corrupt
- EAnimationLoading=2,
- EAnimationPlaying=3
- };
-
- // Source image
- MIHLFileImage* iSourceImage;
-
- // Destination bitmap
- MIHLBitmap* iDrawingBitmap;
-
- // the bitmap is used for scaling our way, IHL will not do scaling
- CFbsBitmap* iScalingBitmap;
-
- // the mask for scaled bitmap
- CFbsBitmap* iScalingBitmapMask;
-
- // size of target bitmap
- TSize iTargetSize;
-
- // new size of target bitmap
- TSize iTargetNewSize;
-
- // Image viewer used as engine
- MIHLImageViewer* iEngine;
-
- // Internal animation state.
- TAnimationState iAnimationState;
-
- // path and name of file being loaded
- TFileName iFileName;
-
- // code of last loading error occured
- TInt iLastError;
-
- // pointer to adapter, we do not own the instance
- MPluginAdapter* iPluginAdapter;
-
- // if true, no DRM rights are consumed
- TBool isPreviewMode;
-
- // a flag to make sure the first ViewerBitmapChangedL is finished,
- // then we could draw image on screen
- TBool isViewerBitmapChangedL;
- };
-
-
-/*******************************************************
-Class CGifAnimationPlugin
-********************************************************/
-
-class CGifAnimationPlugin : public CBase
- {
-public: // Constructor and Destructor
- /**
- * Instance factory
- */
- static CGifAnimationPlugin* NewL( NPP anInstance );
- /**
- * Destructor
- */
- ~CGifAnimationPlugin();
-
- /**
- * Notifies host that plug-in has finished.
- */
- void PrepareToExitL();
-
- /**
- * @return ref of <code>CGifAnimationPluginControl</code>
- */
- CGifAnimationPluginControl* Control();
-
- /**
- * @return pointer on NPP instance
- */
- NPP Instance();
-
- /**
- * Sets the parent window to plug-in. If already set, only updates size.
- * @param aWindow a parent window
- * @param aRect a parent window rectangle
- */
- void SetWindowL( const NPWindow *aWindow, const TRect& aRect );
-
-private:
- /**
- * Construct.
- *
- * 2nd phase constructor.
- * @param anInstance NPP structure
- */
- void Construct( NPP anInstance );
-
-private:
- // pointer to adapter
- MPluginAdapter* iPluginAdapter;
-
- // pointer to Container
- CGifAnimationPluginControl* iControl;
-
- // structure with pointers
- NPP iInstance;
- };
-
-/****************************************************************************
-*
-* Plugin API methods
-*
-*/
-
-/**
- * Create a plugin.
- */
-NPError GifAnimationPluginNewp( NPMIMEType pluginType,
- NPP instance,
- uint16 mode,
- CDesCArray* argn,
- CDesCArray* argv,
- NPSavedData* saved );
-
-/**
- * Destroy a plugin.
- */
-NPError GifAnimationPluginDestroy(NPP instance, NPSavedData** save);
-
-/**
- * This is the parent window of a plugin.
- */
-NPError GifAnimationPluginSetWindow(NPP instance, NPWindow* window);
-
-/**
- * A new data stream has been created for sending data to the plugin.
- */
-NPError GifAnimationPluginNewStream( NPP instance,
- NPMIMEType type,
- NPStream* stream,
- NPBool seekable,
- uint16* stype );
-
-/**
- * A data stream has been terminated.
- */
-NPError GifAnimationPluginDestroyStream( NPP instance,
- NPStream* stream,
- NPReason reason );
-
-/**
- * A data stream has been fully saved to a file.
- */
-void GifAnimationPluginAsFile( NPP instance,
- NPStream* stream,
- const TDesC& fname );
-
-/**
- * Return the maximum number of bytes this plugin can accept from the stream.
- * @param instance - the plug-in instance
- * @param stream - the stream to use
- */
-int32 GifAnimationPluginWriteReady( NPP instance, NPStream* stream );
-
-/**
- * Receive more data - return number of bytes processed.
- *
- * @param instance - the plug-in instance
- * @param stream - the stream to read from
- * @param buffer - contains the data.
- * @param len - the number of bytes in buffer.
- * @param offset - the number of bytes already sent/processed.
- * @return TInt number of bytes processed.
- */
-int32 GifAnimationPluginWrite( NPP instance,
- NPStream* stream,
- int32 offset,
- int32 len,
- void* buffer );
-
-/**
- * Generic hook to retrieve values/attributes from the plugin.
- */
-NPError GifAnimationPluginGetValue( NPP instance,
- NPPVariable variable,
- void *ret_value );
-
-/**
- * Generic hook to set values/attributes within the plugin.
- */
-NPError GifAnimationPluginSetValue( NPP instance,
- NPNVariable variable,
- void *ret_value );
-
-/**
- * Event
- */
-int16 GifAnimationPluginEvent( NPP instance, void* event );
-
-/**
- * Notify
- */
-void GifAnimationPluginURLNotify( NPP instance,
- const TDesC& url,
- NPReason reason,
- void* notifyData );
-
-/**
- * Print
- */
-void GifAnimationPluginPrint( NPP instance, NPPrint* platformPrint );
-
-#endif // C_GIFANIMATIONPLUGIN_H
--- a/scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/inc/GifAnimationUtils.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Screensaver GifAnimation plug-in utility file header
-*
-*/
-
-
-
-
-
-#ifndef GIFANIMPLUGINUTIL_H
-#define GIFANIMPLUGINUTIL_H
-
-// INCLUDES
-#include <e32base.h>
-#include <aknnotewrappers.h>
-
-#ifdef _DEBUG
-
-// MACROS
-#define DBG_TRACE( str ) \
- RDebug::Printf( "GifAnimation plug-in: %s:%s:%d %s", \
- __FILE__, __FUNCTION__, __LINE__, (str) );
-#define DBG_TRACE_FN_BEGIN \
- RDebug::Printf("GifAnimation plug-in: %s:%s begin", \
- __FILE__, __FUNCTION__);
-#define DBG_TRACE_FN_END \
- RDebug::Printf("GifAnimation plug-in: %s:%s end", \
- __FILE__, __FUNCTION__);
-
-#define DBG_ERR_DLG( strDesC, code ) \
- CAknErrorNote* informationNote = \
- new ( ELeave ) CAknErrorNote(ETrue); \
- TBuf<256> message; \
- _LIT(KErrorFormat, "Error: %S, code: %d"); \
- message.Format(KErrorFormat, &strDesC, code); \
- informationNote->ExecuteLD( message );
-#else
-
-#define DBG_TRACE( str )
-#define DBG_TRACE_FN_BEGIN
-#define DBG_TRACE_FN_END
-#define DBG_ERR_DLG( strDesC, code )
-
-#endif // _DEBUG
-
-#endif // GIFANIMPLUGINUTIL_H
--- a/scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/resource/102750B5.rss Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Registry file for Ecom style Screensaver GifAnimation plug-in
-*
-*/
-
-
-
-
-
-#include <ecom/registryinfo.rh>
-
-
-
-// RESOURCE DEFINITIONS
-// -----------------------------------------------------------------------------
-//
-// Registry info
-// The UIDs for the filters implemented in this DLL
-//
-// -----------------------------------------------------------------------------
-//
-
-RESOURCE REGISTRY_INFO theInfo
- {
- dll_uid = 0x102750B5; // should match the name of the file.
- // 3-d Uid of associeted plugin dll (declared in the dll mmp file)
-
- interfaces=
- {
- INTERFACE_INFO
- {
- interface_uid = 0x102750CB; // KScreenSaverPluginInterfaceUid, identifies plugin type (used by ECom)
- implementations =
- {
- IMPLEMENTATION_INFO
- {
- implementation_uid = 0x102750B4; // specify specific implementation (must
- // match an implementation entry in the dll
- version_no = 1;
- display_name = "ScreenSaverGifAnimPlugin.dll;Gif Animation Plugin"; // file name; plugin's name
- default_data = "image/gif";
- // suppored mime types
- // mime Extensions
- // and mime descriptions
- opaque_data = "Gif Animation Plugin"; // plugin's description
- }
- };
- }
- };
- }
-
--- a/scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/rom/ScreenSaverGifAnimPlugin.iby Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: IBY file for ScreenSaverAnimPlugin
-*
-*/
-
-
-
-
-#ifndef __SCREENSAVERGIFANIMPLUGIN_IBY
-#define __SCREENSAVERGIFANIMPLUGIN_IBY
-
-// Not on ROM in 3.0, and only if S60 browser is used
-#ifdef RD_SCREENSAVER_GIFANIMATION
-#ifdef __SERIES60_NATIVE_BROWSER
-ECOM_PLUGIN(ScreenSaverGifAnimPlugin.dll,102750B5.rss)
-#endif
-#endif // RD_SCREENSAVER_GIFANIMATION
-
-#endif // __SCREENSAVERGIFANIMPLUGIN_IBY
-// End of File
--- a/scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/src/GifAnimationPlugin.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,145 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Screensaver GifAnimation plug-in implementation source file
-*
-*/
-
-
-
-
-
-#include <e32std.h>
-#include <eikenv.h>
-#include <barsread.h>
-#include <fbs.h>
-#include <gdi.h>
-#include <f32file.h>
-#include <cecombrowserplugininterface.h>
-
-#include "GifAnimationPlugin.h"
-#include "GifAnimationUtils.h"
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// Instance factory.
-// ---------------------------------------------------------------------------
-//
-CGifAnimationPlugin* CGifAnimationPlugin::NewL( NPP anInstance )
- {
- DBG_TRACE_FN_BEGIN;
- CGifAnimationPlugin *self = new (ELeave) CGifAnimationPlugin;
- CleanupStack::PushL( self );
- self->Construct( anInstance );
-
- CleanupStack::Pop();
- DBG_TRACE_FN_END;
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// Destructor
-// ---------------------------------------------------------------------------
-//
-CGifAnimationPlugin::~CGifAnimationPlugin()
- {
- DBG_TRACE_FN_BEGIN;
- if ( iControl )
- {
- delete iControl;
- iControl=NULL;
- }
- DBG_TRACE_FN_END;
- }
-
-// ---------------------------------------------------------------------------
-// Notifies host that plug-in has finished.
-// ---------------------------------------------------------------------------
-//
-void CGifAnimationPlugin::PrepareToExitL()
- {
- DBG_TRACE_FN_BEGIN;
-
- if ( iPluginAdapter )
- {
- CCoeControl* aParentControl = iPluginAdapter->GetParentControl();
- if ( iControl != NULL )
- {
- // will free resources, if file was loaded but was not stopped
- iControl->StopAnimation();
- }
- iPluginAdapter->PluginFinishedL();
- }
- DBG_TRACE_FN_END;
- }
-
-// ---------------------------------------------------------------------------
-// 2nd phase constructor.
-// ---------------------------------------------------------------------------
-//
-void CGifAnimationPlugin::Construct( NPP anInstance )
- {
- DBG_TRACE_FN_BEGIN;
- iInstance=anInstance;
- DBG_TRACE_FN_END;
- }
-
-// ---------------------------------------------------------------------------
-// Sets the parent window to plug-in. If already set, only updates size.
-// ---------------------------------------------------------------------------
-//
-void CGifAnimationPlugin::SetWindowL( const NPWindow *aWindow,
- const TRect& aRect )
- {
- DBG_TRACE_FN_BEGIN;
- iPluginAdapter = static_cast<MPluginAdapter*>( aWindow->window );
- CCoeControl* aParentControl = iPluginAdapter->GetParentControl();
- if ( iControl == NULL )
- {
- iControl = CGifAnimationPluginControl::NewL( aParentControl,
- iPluginAdapter );
- iPluginAdapter->PluginConstructedL( iControl );
- }
-
- if ( iControl != NULL )
- {
- iControl->SetRect( aRect );
- }
- DBG_TRACE_FN_END;
- }
-
-// ---------------------------------------------------------------------------
-// Returns pointer on instance of CGifAnimationPluginControl
-// ---------------------------------------------------------------------------
-//
-CGifAnimationPluginControl* CGifAnimationPlugin::Control()
- {
- DBG_TRACE_FN_BEGIN;
- ASSERT( iControl );
- DBG_TRACE_FN_END;
- return iControl;
- }
-
-// ---------------------------------------------------------------------------
-// Returns pointer on NPP instance
-// ---------------------------------------------------------------------------
-//
-NPP CGifAnimationPlugin::Instance()
- {
- DBG_TRACE_FN_BEGIN;
- ASSERT( iInstance );
- DBG_TRACE_FN_END;
- return iInstance;
- }
--- a/scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/src/GifAnimationPluginControl.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,603 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Screensaver GifAnimation plug-in container source file
-*
-*/
-
-
-
-
-
-#include <eikenv.h>
-#include <w32std.h>
-#include <e32base.h>
-#include <e32std.h>
-
-#include <IHLImageFactory.h> // IHLImageFactory
-#include <IHLViewerFactory.h> // IHLViewerFactory
-#include <MIHLImageViewer.h> // MIHLImageViewer
-#include <MIHLFileImage.h> // MIHLFileImage
-#include <MIHLBitmap.h> // MIHLBitmap
-#include <MIHLImageViewer.h> // MIHLImageViewer
-#include <MIHLViewerObserver.h>
-#include <bautils.h>
-
-#include "GifAnimationPlugin.h"
-#include "GifAnimationUtils.h"
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// Instance factory
-// ---------------------------------------------------------------------------
-//
-CGifAnimationPluginControl* CGifAnimationPluginControl::NewL(
- CCoeControl *aParentControl,
- MPluginAdapter* aPluginAdapter )
- {
- ASSERT( aPluginAdapter );
- DBG_TRACE_FN_BEGIN;
- CGifAnimationPluginControl* tmp =
- new ( ELeave )CGifAnimationPluginControl();
- CleanupStack::PushL( tmp );
- tmp->ConstructL( aParentControl, aPluginAdapter );
- CleanupStack::Pop();
- DBG_TRACE_FN_END;
- return tmp;
- }
-
-// ---------------------------------------------------------------------------
-// 2nd phase constructor
-// ---------------------------------------------------------------------------
-//
-void CGifAnimationPluginControl::ConstructL( CCoeControl* aParentControl,
- MPluginAdapter* aPluginAdapter )
- {
- DBG_TRACE_FN_BEGIN;
-
- iPluginAdapter = aPluginAdapter;
- isViewerBitmapChangedL = EFalse;
-
- if ( aParentControl != NULL )
- {
- CreateWindowL( aParentControl );
- }
- else
- {
- CreateWindowL();
- }
- ActivateL();
-
- MakeVisible( ETrue ); // make it invisible for now
-
- DBG_TRACE_FN_END;
- }
-
-// ---------------------------------------------------------------------------
-// Constructor
-// ---------------------------------------------------------------------------
-//
-CGifAnimationPluginControl::CGifAnimationPluginControl()
- : iSourceImage( NULL ),
- iDrawingBitmap( NULL ),
- iScalingBitmap( NULL ),
- iScalingBitmapMask( NULL ),
- iEngine( NULL ),
- iAnimationState( EAnimationNotReady ),
- iLastError( KErrNone )
- {
- DBG_TRACE_FN_BEGIN;
- // nothing goes here
- DBG_TRACE_FN_END;
- }
-
-// ---------------------------------------------------------------------------
-// Destructor.
-// ---------------------------------------------------------------------------
-//
-CGifAnimationPluginControl::~CGifAnimationPluginControl()
- {
- DBG_TRACE_FN_BEGIN;
-
- DeleteAnimation();
-
- iPluginAdapter = NULL;
-
- DBG_TRACE_FN_END;
- }
-
-// ---------------------------------------------------------
-// Loads the image into display.
-// Param aImageFileName image file name - expected to be valid image
-// ---------------------------------------------------------
-//
-void CGifAnimationPluginControl::LoadImageL( const TDesC& aImageFileName )
- {
- DBG_TRACE_FN_BEGIN;
- iFileName.Copy( aImageFileName );
-
- iLastError = KErrNotReady; // if asked before loading is complete+Draw()
- TRAPD( error, DoImageLoadingL() );
- if ( error )
- {
- iLastError = error;
- DeleteAnimation();
- DBG_TRACE_FN_END;
- User::Leave( error ); // re-throw it
- }
- else
- {
- DBG_TRACE( "Animation loaded" );
- iAnimationState = EAnimationLoading;
- iLastError = KErrNone;
- }
- DBG_TRACE_FN_END;
- }
-
-// ---------------------------------------------------------
-// Return ETrue if loaded image is animation.
-// ---------------------------------------------------------
-//
-TBool CGifAnimationPluginControl::IsAnimation() const
- {
- DBG_TRACE_FN_BEGIN;
- if ( iSourceImage
- && iLastError == KErrNone ) // we did not have any error loading picture
- {
- DBG_TRACE_FN_END;
- return iSourceImage->IsAnimation();
- }
- DBG_TRACE_FN_END;
- return EFalse;
- }
-
-
-// ---------------------------------------------------------
-// Return TInt with image loading error.
-// ---------------------------------------------------------
-//
-TBool CGifAnimationPluginControl::GetLastError() const
- {
- DBG_TRACE_FN_BEGIN;
- //
- DBG_TRACE_FN_END;
- return iLastError;
- }
-
-// ---------------------------------------------------------
-// Start animation.
-// ---------------------------------------------------------
-//
-void CGifAnimationPluginControl::StartAnimationL()
- {
- DBG_TRACE_FN_BEGIN;
-
- if ( iEngine == NULL ) // animation was stopped,
- { // need to re-load animation file
- DoImageLoadingL();
- }
-
- // start animation
- if ( iEngine && IsAnimation() )
- {
- iEngine->Play();
- iAnimationState = EAnimationPlaying;
- }
-
- DBG_TRACE_FN_END;
- }
-
-// ---------------------------------------------------------
-// Stop animation.
-// ---------------------------------------------------------
-//
-void CGifAnimationPluginControl::StopAnimation()
- {
- DBG_TRACE_FN_BEGIN;
-
- // bugfix for JPYO-6KXHRW
- MakeVisible( EFalse );
-
-
- // instead of just stopping player, we delete it.
- // This is because of stability issues with the start-stop-destroy cycle
- DeleteAnimation();
- DBG_TRACE_FN_END;
- }
-
-// ---------------------------------------------------------
-// Called when size is changed.
-// ---------------------------------------------------------
-//
-void CGifAnimationPluginControl::SizeChanged()
- {
- DBG_TRACE_FN_BEGIN;
- if ( iEngine )
- {
- iEngine->SetViewerSize( Size() );
- }
- DBG_TRACE_FN_END;
- }
-
-// ---------------------------------------------------------------------------
-// Overriden CCoeControl::Draw()
-// ---------------------------------------------------------------------------
-//
-void CGifAnimationPluginControl::Draw( const TRect& /*aRect*/ ) const
- {
- //DBG_TRACE_FN_BEGIN;
- CWindowGc& gc = SystemGc();
- TRect rect( Rect() );
-
- DBG_TRACE( "Draw: Clearing background" );
- gc.Clear( Rect() );
- gc.SetBrushColor( KRgbBlack );
- gc.SetBrushStyle( CGraphicsContext::ESolidBrush);
- gc.DrawRect( rect );
-
- if ( iDrawingBitmap
- && iEngine
- && iLastError == KErrNone // loading was successful
- && isViewerBitmapChangedL ) // need to check whether first ViewerBitmapChangedL
- // has been called;
- {
- TSize screenSize( rect.Size() );
- TPoint destinationPoint(
- ( screenSize.iWidth-iTargetNewSize.iWidth ) / 2,
- ( screenSize.iHeight-iTargetNewSize.iHeight ) / 2 );
-
- TSize drawingBitmapSize( iDrawingBitmap->Bitmap().SizeInPixels() );
- if ( drawingBitmapSize.iHeight == iTargetNewSize.iHeight
- && drawingBitmapSize.iWidth == iTargetNewSize.iWidth )
- {
- // we use unscaled version as size is Ok
- iDrawingBitmap->Draw( gc,
- destinationPoint,
- iTargetNewSize );
- }
- else
- {
- // we use scaled version
- if ( iDrawingBitmap->HasMask() )
- {
- gc.BitBltMasked( destinationPoint,
- iScalingBitmap,
- iTargetNewSize,
- iScalingBitmapMask,
- EFalse );
- }
- else
- {
- gc.BitBlt( destinationPoint,
- iScalingBitmap );
- }
- }
- }
- else // image is not ready or broken
- {
- DBG_TRACE( "image is not ready or broken" );
- }
- //DBG_TRACE_FN_END;
- }
-
-// ---------------------------------------------------------
-// CGifAnimationPluginControl::DoImageLoadingL
-// ---------------------------------------------------------
-//
-void CGifAnimationPluginControl::DoImageLoadingL()
- {
- DBG_TRACE_FN_BEGIN;
-
- RFs& fs = CEikonEnv::Static()->FsSession();
- TBool fileExists = BaflUtils::FileExists( fs, iFileName );
- if ( !fileExists )
- {
- DBG_TRACE_FN_END;
- User::Leave( KErrPathNotFound );
- }
-
-
- RFile fileHandle;
- CleanupClosePushL( fileHandle );
- iLastError = fileHandle.Open( fs, iFileName, EFileRead | EFileShareReadersOnly );
- User::LeaveIfError(iLastError);
-
- // delete old instances, if any
- DeleteAnimation();
-
- // create new objects
- if ( iDrawingBitmap == NULL )
- {
- iDrawingBitmap = IHLBitmap::CreateL();
- }
-
- TInt drmOption( 0 );
- if ( isPreviewMode )
- {
- drmOption = MIHLFileImage::EOptionNoDRMConsume;
- }
- iSourceImage = IHLImageFactory::OpenFileImageL( fileHandle,
- 0, // image index
- drmOption );
-
- // calculate target size so that picture fits the screen and centered
- TSize sourceSize( iSourceImage->Size() );
- TSize maxSize = Size();
-
- iTargetSize = TSize( Min( sourceSize.iWidth, maxSize.iWidth ),
- Min( sourceSize.iHeight, maxSize.iHeight ) );
-
- if ( sourceSize.iWidth < maxSize.iWidth
- && sourceSize.iHeight < maxSize.iHeight )
- {
- // scale up N-times
- TInt upScale = Min( maxSize.iWidth / sourceSize.iWidth,
- maxSize.iHeight / sourceSize.iHeight );
- iTargetSize = TSize( sourceSize.iWidth * upScale,
- sourceSize.iHeight * upScale );
- const TUint32 options( 0 ); // no flags set
- // we do not want IHL do scaling, so targetSize= sourceSize
- iEngine = IHLViewerFactory::CreateImageViewerL( sourceSize,
- *iSourceImage,
- *iDrawingBitmap,
- *this,
- options );
- iTargetNewSize = iTargetSize;
- }
- else
- {
- //The image needs to be scaled down. We pass the target size to
- //IHL so that it doesn't come back with an OOM situation in case
- //the resolution is too high.
- // scale up N-times
- TReal downScale = Min( TReal(maxSize.iWidth) / TReal(sourceSize.iWidth),
- TReal(maxSize.iHeight) / TReal(sourceSize.iHeight) );
- iTargetSize = TSize( sourceSize.iWidth * downScale,
- sourceSize.iHeight * downScale );
- const TUint32 options( 0 ); // no flags set
- TReal widthRatio( TReal( iTargetSize.iWidth ) / TReal( sourceSize.iWidth ) );
- TReal heightRatio( TReal( iTargetSize.iHeight ) / TReal( sourceSize.iHeight ) );
- if( options & MIHLImageViewer::EOptionIgnoreAspectRatio )
- {
- downScale = ( widthRatio > heightRatio ) ? widthRatio : heightRatio;
- }
- else
- {
- downScale = ( widthRatio < heightRatio ) ? widthRatio : heightRatio;
- }
- TReal widthZoomRatio( downScale );
- TReal heightZoomRatio( downScale );
- if( options & MIHLImageViewer::EOptionIgnoreAspectRatio )
- {
- TReal widthRatio( TReal( iTargetSize.iWidth ) / TReal( sourceSize.iWidth ) );
- TReal heightRatio( TReal( iTargetSize.iHeight ) / TReal( sourceSize.iHeight ) );
- if( widthRatio < heightRatio )
- {
- widthZoomRatio = widthZoomRatio * widthRatio / heightRatio;
- }
- else
- {
- heightZoomRatio = heightZoomRatio * heightRatio / widthRatio;
- }
- }
- iTargetNewSize = TSize( sourceSize.iWidth * widthZoomRatio,
- sourceSize.iHeight * heightZoomRatio );
- // we do not want IHL do scaling, so targetSize= sourceSize
- iEngine = IHLViewerFactory::CreateImageViewerL( iTargetSize,
- *iSourceImage,
- *iDrawingBitmap,
- *this,
- options );
- }
-
- // create bitmaps needed for manual scaling
- TDisplayMode dMode = CEikonEnv::Static()->DefaultDisplayMode();
- if ( iScalingBitmap == NULL )
- {
- iScalingBitmap = new( ELeave ) CFbsBitmap;
- iScalingBitmap->Create( iTargetSize, dMode );
- }
-
- if ( iScalingBitmapMask == NULL )
- {
- iScalingBitmapMask = new( ELeave ) CFbsBitmap;
- iScalingBitmapMask->Create( iTargetSize, EGray256 );
- }
-
- CleanupStack::PopAndDestroy( &fileHandle );
- DBG_TRACE_FN_END;
- }
-
-// ---------------------------------------------------------
-// CGifAnimationPluginControl::CheckFileIsValidL
-// ---------------------------------------------------------
-//
-void CGifAnimationPluginControl::CheckFileIsValidL(
- const TDesC& aImageFileName )
- {
- DBG_TRACE_FN_BEGIN;
-
- ASSERT( aImageFileName.Size() );
- CGifAnimationPluginControl* temp =
- new ( ELeave )CGifAnimationPluginControl();
- CleanupStack::PushL( temp );
- temp->SetSize( TSize( 100, 100 ) );
- temp->SetPreviewMode();
- temp->LoadImageL( aImageFileName );
- temp->DeleteAnimation();
- CleanupStack::PopAndDestroy( temp );
-
- DBG_TRACE_FN_END;
- }
-
-// ---------------------------------------------------------
-// CGifAnimationPluginControl::DeleteAnimation
-// ---------------------------------------------------------
-//
-void CGifAnimationPluginControl::DeleteAnimation()
- {
- DBG_TRACE_FN_BEGIN;
- if ( iEngine )
- {
- iAnimationState = EAnimationNotReady;
- iEngine->Stop();
- delete iEngine;
- iEngine = NULL;
- }
-
- if ( iSourceImage )
- {
- delete iSourceImage;
- iSourceImage = NULL;
- }
-
- if ( iDrawingBitmap )
- {
- delete iDrawingBitmap;
- iDrawingBitmap = NULL;
- }
-
- if ( iScalingBitmap )
- {
- delete iScalingBitmap;
- iScalingBitmap = NULL;
- }
-
- if ( iScalingBitmapMask )
- {
- delete iScalingBitmapMask;
- iScalingBitmapMask = NULL;
- }
-
-
- DBG_TRACE_FN_END;
- }
-
-// ---------------------------------------------------------
-// Handle bitmap change notifications. State is changed accordingly
-// if this is the first frame.
-// ---------------------------------------------------------
-//
-void CGifAnimationPluginControl::ViewerBitmapChangedL()
- {
- switch ( iAnimationState )
- {
- case EAnimationLoading:
- {
- iAnimationState = EAnimationPlaying;
- break;
- }
- case EAnimationPlaying:
- {
- // do nothing
- break;
- }
- case EAnimationNotReady:
- default:
- {
- break;
- }
- }
-
- if( iAnimationState == EAnimationPlaying )
- {
- if ( iDrawingBitmap
- && iEngine
- && iLastError == KErrNone ) // loading was successful
- {
- TSize drawingBitmapSize( iDrawingBitmap->Bitmap().SizeInPixels() );
- if ( drawingBitmapSize.iHeight == iTargetNewSize.iHeight
- && drawingBitmapSize.iWidth == iTargetNewSize.iWidth )
- {
- // we do not need to do scaling
- }
- else
- {
- // we need to do scaling
- CFbsBitmapDevice* bitmapDevice = CFbsBitmapDevice::NewL( iScalingBitmap );
- CleanupStack::PushL(bitmapDevice);
- CFbsBitGc* graphicsContext = NULL;
- User::LeaveIfError( bitmapDevice->CreateContext( graphicsContext ) );
- CleanupStack::PushL( graphicsContext );
- TRect srcRect( iSourceImage->Size() );
- graphicsContext->DrawBitmap( iTargetSize, &iDrawingBitmap->Bitmap(), srcRect );
- CleanupStack::PopAndDestroy( 2 );//graphicsContext,bitmapDevice
-
- if ( iDrawingBitmap->HasMask() )
- {
- CFbsBitmapDevice* bitmapMaskDevice = CFbsBitmapDevice::NewL( iScalingBitmapMask );
- CleanupStack::PushL(bitmapMaskDevice);
- CFbsBitGc* graphicsMaskContext = NULL;
- User::LeaveIfError( bitmapMaskDevice->CreateContext( graphicsMaskContext ) );
- CleanupStack::PushL( graphicsMaskContext );
- graphicsMaskContext->DrawBitmap( iTargetSize, &iDrawingBitmap->Mask(), srcRect );
- CleanupStack::PopAndDestroy( 2 );//graphicsContext,bitmapDevice
- }
- }
- }
- isViewerBitmapChangedL = ETrue;
- MakeVisible( ETrue );
- DrawNow();
- }
- }
-
-// ---------------------------------------------------------
-// Handles engine errors.
-// ---------------------------------------------------------
-//
-void CGifAnimationPluginControl::ViewerError( TInt aError )
- {
- DBG_TRACE_FN_BEGIN;
- iLastError = aError;
- HandleCallback( aError );
- DBG_TRACE_FN_END;
- }
-
-
-// ---------------------------------------------------------
-// Handles error codes; stores the error
-// ---------------------------------------------------------
-//
-void CGifAnimationPluginControl::HandleCallback( TInt aError )
- {
- DBG_TRACE_FN_BEGIN;
-
- if ( aError )
- {
- InformPluginFinished();
- }
-
- DBG_TRACE_FN_END;
- }
-
-
-// ---------------------------------------------------------
-// Informs that plug-in wants to terminate
-// ---------------------------------------------------------
-//
-void CGifAnimationPluginControl::InformPluginFinished()
- {
-
- ASSERT( iPluginAdapter );
-
- StopAnimation();
-
- TRAP_IGNORE(iPluginAdapter->PluginFinishedL());
- }
-
-void CGifAnimationPluginControl::SetPreviewMode()
- {
- isPreviewMode = ETrue;
- }
--- a/scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/src/GifAnimationPluginDllApi.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,278 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Screensaver GifAnimation plug-in API file
-*
-*/
-
-
-
-
-
-#include <IHLImageFactory.h> // IHLImageFactory
-
-#include "GifAnimationPlugin.h"
-#include "NPNExtensions.h"
-#include "GifAnimationUtils.h"
-
-// ======== Ecom interface functions implementation ========
-
-NPError GifAnimationPluginNewp( NPMIMEType /*pluginType*/,
- NPP instance,
- uint16 /*mode*/,
- CDesCArray* /*argn*/,
- CDesCArray* /*argv*/,
- NPSavedData* /*saved*/ )
- {
- DBG_TRACE_FN_BEGIN;
- CGifAnimationPlugin* lGifAnimationPlugin=NULL;
- TRAPD(err,lGifAnimationPlugin=CGifAnimationPlugin::NewL( instance ) );
-
- if ( err == KErrNoMemory )
- {
- DBG_TRACE_FN_END;
- return NPERR_OUT_OF_MEMORY_ERROR;
- }
- if ( err != KErrNone )
- {
- DBG_TRACE_FN_END;
- return NPERR_MODULE_LOAD_FAILED_ERROR;
- }
- instance->pdata = (void *) lGifAnimationPlugin;
- DBG_TRACE_FN_END;
- return NPERR_NO_ERROR;
- }
-
-NPError GifAnimationPluginDestroy( NPP instance, NPSavedData** /*save*/ )
- {
- DBG_TRACE_FN_BEGIN;
- CGifAnimationPlugin* lGifAnimationPlugin =
- ( CGifAnimationPlugin * )instance->pdata;
- if ( lGifAnimationPlugin )
- {
- TRAPD( err, lGifAnimationPlugin->PrepareToExitL() );
- if ( err != KErrNone )
- {
- DBG_TRACE(
- "GifAnimationPluginDestroy Error when PrepareToExitL()" );
- }
- /**Ignoring the error*/
- delete lGifAnimationPlugin;
- lGifAnimationPlugin = NULL;
- }
- DBG_TRACE_FN_END;
- return NPERR_NO_ERROR;
- }
-
-NPError GifAnimationPluginSetWindow( NPP instance, NPWindow *window )
- {
- DBG_TRACE_FN_BEGIN;
- CGifAnimationPlugin* lGifAnimationPlugin =
- (CGifAnimationPlugin *) instance->pdata;
- TUint lWidth = window->width;
- TUint lHeight = window->height;
- TRAPD( err,
- lGifAnimationPlugin->SetWindowL( window,
- TRect( TSize( lWidth, lHeight ) ) ) );
-
- if ( err == KErrNoMemory )
- {
- DBG_TRACE_FN_END;
- return NPERR_OUT_OF_MEMORY_ERROR;
- }
- if ( err != KErrNone )
- {
- DBG_TRACE_FN_END;
- return NPERR_GENERIC_ERROR;
- }
- DBG_TRACE_FN_END;
- return NPERR_NO_ERROR;
- }
-
-NPError GifAnimationPluginNewStream( NPP /*instance*/,
- NPMIMEType /*type*/,
- NPStream* /*stream*/,
- NPBool /*seekable*/,
- uint16* stype )
- {
- DBG_TRACE_FN_BEGIN;
- *stype = NP_ASFILEONLY;
- DBG_TRACE_FN_END;
- return NPERR_NO_ERROR;
- }
-
-NPError GifAnimationPluginDestroyStream( NPP /*instance*/,
- NPStream* /*stream*/,
- NPReason /*reason*/ )
- {
- DBG_TRACE_FN_BEGIN;
- //
- DBG_TRACE_FN_END;
- return NPERR_NO_ERROR;
- }
-
-void GifAnimationPluginAsFile( NPP instance,
- NPStream* /*stream*/,
- const TDesC& fname )
- {
- DBG_TRACE_FN_BEGIN;
- CGifAnimationPlugin* lGifAnimationPlugin =
- ( CGifAnimationPlugin* )instance->pdata;
- TRAP_IGNORE( lGifAnimationPlugin->Control()->LoadImageL( fname ) );
- DBG_TRACE_FN_END;
- }
-
-int32 GifAnimationPluginWriteReady( NPP /*instance*/, NPStream* /*stream*/ )
- {
- DBG_TRACE_FN_BEGIN;
- //
- DBG_TRACE_FN_END;
- return 65536;
- }
-
-int32 GifAnimationPluginWrite( NPP /*instance*/,
- NPStream* /*stream*/,
- int32 /*offset*/,
- int32 len,
- void* /*buffer*/ )
- {
- DBG_TRACE_FN_BEGIN;
- //
- DBG_TRACE_FN_END;
- return len;
- }
-
-int16 GifAnimationPluginEvent( NPP /*instance*/, void* /*event*/ )
- {
- DBG_TRACE_FN_BEGIN;
- //
- DBG_TRACE_FN_END;
- return 0;
- }
-
-
-NPError GifAnimationPluginGetValue( NPP instance,
- NPPVariable variable,
- void* ret_value )
- {
- DBG_TRACE_FN_BEGIN;
- if ( variable == NPPCheckFileIsValid )
- {
- NPCheckFile* checkFile = (NPCheckFile*)ret_value;
- TRAPD( err,
- CGifAnimationPluginControl::CheckFileIsValidL(
- checkFile->fileName->Des() ) );
-
- checkFile->fileValidityCheckError = err;
- DBG_TRACE_FN_END;
- return NPERR_NO_ERROR;
- }
-
- if ( variable == NPPScreenSaverGetLastError )
- {
- DBG_TRACE( "GetLastError" );
- TInt* retValue = (TInt*)ret_value;
- CGifAnimationPlugin* lGifAnimationPlugin =
- ( CGifAnimationPlugin* )instance->pdata;
- *retValue = lGifAnimationPlugin->Control()->GetLastError();
- DBG_TRACE_FN_END;
- return NPERR_NO_ERROR;
- }
-
- // new command, panic
- _LIT( KErrGetMsg,
- "CGifAnimationPluginDllApi::GifAnimationPluginGetValue" );
- User::Panic( KErrGetMsg, KErrNotSupported );
- return NPERR_GENERIC_ERROR;
- }
-
-NPError GifAnimationPluginSetValue( NPP instance,
- NPNVariable variable,
- void* value )
- {
- DBG_TRACE_FN_BEGIN;
- CGifAnimationPlugin* lGifAnimationPlugin =
- ( CGifAnimationPlugin* )instance->pdata;
-
- if ( variable == NPNScreenSaverAnimationEvent )
- {
- NPAnimationEvent* event = (NPAnimationEvent*)value;
- switch ( *event )
- {
- case NPStartAnimation:
- DBG_TRACE( "StartAnimationL" );
- TRAPD( errStart,
- lGifAnimationPlugin->Control()->StartAnimationL() );
- if ( errStart != KErrNone )
- {
- DBG_TRACE( "StartAnimation failed!" );
- return NPERR_GENERIC_ERROR;
- }
- return NPERR_NO_ERROR;
- case NPEndAnimation:
- DBG_TRACE( "StopAnimation" );
- TRAPD( errEnd,
- lGifAnimationPlugin->Control()->StopAnimation() );
- if (errEnd != KErrNone)
- {
- DBG_TRACE( "StopAnimation failed!" );
- return NPERR_GENERIC_ERROR;
- }
- DBG_TRACE_FN_END;
- return NPERR_NO_ERROR;
- default:
- // new command, panic
- _LIT( KErrSet1Msg,
- "CGifAnimationPluginDllApi::GifAnimationPluginSetValue1" );
- User::Panic( KErrSet1Msg, KErrNotSupported );
- return NPERR_GENERIC_ERROR;
- }
- }
-
- if ( variable == NPScreenSaverMode )
- {
- // we do not need the event
- DBG_TRACE_FN_END;
- return NPERR_NO_ERROR;
- }
-
- if ( variable == NPNInteractionMode )
- {
- // we do not need the event
- DBG_TRACE_FN_END;
- return NPERR_NO_ERROR;
- }
-
- // new command, panic
- _LIT( KErrSet2Msg,
- "CGifAnimationPluginDllApi::GifAnimationPluginSetValue2" );
- User::Panic( KErrSet2Msg, KErrNotSupported );
- return NPERR_GENERIC_ERROR;
- }
-
-void GifAnimationPluginURLNotify( NPP /*instance*/,
- const TDesC& /*url*/,
- NPReason /*reason*/,
- void* /*notifyData*/ )
- {
- DBG_TRACE_FN_BEGIN;
- //
- DBG_TRACE_FN_END;
- }
-
-void GifAnimationPluginPrint( NPP /*instance*/, NPPrint* /*platformPrint*/ )
- {
- DBG_TRACE_FN_BEGIN;
- //
- DBG_TRACE_FN_END;
- }
--- a/scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/src/GifAnimationPluginMain.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,155 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Screensaver GifAnimation plug-in API file
-*
-*/
-
-
-
-
-
-#include <ecom/implementationproxy.h>
-#include <cecombrowserplugininterface.h>
-
-
-#include "GifAnimationPlugin.h"
-#include "GifAnimationUtils.h"
-
-// ---------------------------------------------------------------------------
-// Table of implementation UID / implementation class factory
-// ---------------------------------------------------------------------------
-//
-const TImplementationProxy KImplementationTable[] =
- {
- { { KGifAnimationPluginImplementationValue },
- (TProxyNewLPtr) CGifAnimationPluginEcomMain::NewL
- }
- };
-
-
-/************************************************************************/
-/**********ECOM STYLE Screensaver GifAnimation plug-in ENTRY POINTS******/
-/************************************************************************/
-
-// ---------------------------------------------------------------------------
-// Instance factory.
-// ---------------------------------------------------------------------------
-//
-CGifAnimationPluginEcomMain* CGifAnimationPluginEcomMain::NewL(
- TAny* aInitParam )
- {
- DBG_TRACE_FN_BEGIN;
- TFuncs* funcs = REINTERPRET_CAST( TFuncs*, aInitParam);
- CGifAnimationPluginEcomMain* self =
- new( ELeave )CGifAnimationPluginEcomMain( funcs->iNetscapeFuncs );
- CleanupStack::PushL(self);
- self->Construct( funcs->iPluginFuncs );
- CleanupStack::Pop();
- DBG_TRACE_FN_END;
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// Destructor.
-// ---------------------------------------------------------------------------
-//
-CGifAnimationPluginEcomMain::~CGifAnimationPluginEcomMain()
- {
- DBG_TRACE_FN_BEGIN;
- // nothing here
- DBG_TRACE_FN_END;
- }
-
-// ---------------------------------------------------------------------------
-// 2nd phase constructor.
-// ---------------------------------------------------------------------------
-//
-void CGifAnimationPluginEcomMain::Construct( NPPluginFuncs* aPluginFuncs )
- {
- DBG_TRACE_FN_BEGIN;
- InitializeFuncs( aPluginFuncs );
- DBG_TRACE_FN_END;
- }
-
-// ---------------------------------------------------------------------------
-// Initializes NPP with pointers to implementing functions.
-// ---------------------------------------------------------------------------
-//
-NPError CGifAnimationPluginEcomMain::InitializeFuncs( NPPluginFuncs* aPpf )
- {
- DBG_TRACE_FN_BEGIN;
- aPpf->size = sizeof(NPPluginFuncs);
- aPpf->version = 1;
- aPpf->newp = NewNPP_NewProc( GifAnimationPluginNewp );
- aPpf->destroy = NewNPP_DestroyProc( GifAnimationPluginDestroy );
- aPpf->setwindow = NewNPP_SetWindowProc( GifAnimationPluginSetWindow );
- aPpf->newstream = NewNPP_NewStreamProc( GifAnimationPluginNewStream );
- aPpf->destroystream = NewNPP_DestroyStreamProc(
- GifAnimationPluginDestroyStream );
- aPpf->asfile = NewNPP_StreamAsFileProc( GifAnimationPluginAsFile );
- aPpf->writeready = NewNPP_WriteReadyProc(
- GifAnimationPluginWriteReady );
- aPpf->write = NewNPP_WriteProc( GifAnimationPluginWrite );
- aPpf->print = NewNPP_PrintProc( GifAnimationPluginPrint );
- aPpf->event = NewNPP_HandleEventProc( GifAnimationPluginEvent );
- aPpf->urlnotify = NewNPP_URLNotifyProc( GifAnimationPluginURLNotify );
- aPpf->javaClass = NULL;
- aPpf->getvalue = NewNPP_GetValueProc( GifAnimationPluginGetValue );
- aPpf->setvalue = NewNPP_SetValueProc( GifAnimationPluginSetValue );
-
- DBG_TRACE_FN_END;
- return NPERR_NO_ERROR;
- }
-
-// ---------------------------------------------------------------------------
-// Constructor.
-// ---------------------------------------------------------------------------
-//
-CGifAnimationPluginEcomMain::CGifAnimationPluginEcomMain(
- NPNetscapeFuncs* aNpf )
- : CEcomBrowserPluginInterface(), iNpf( aNpf )
- {
- DBG_TRACE_FN_BEGIN;
- //
- DBG_TRACE_FN_END;
- }
-
-// ---------------------------------------------------------------------------
-// Returns the filters implemented in this DLL
-// Returns: The filters implemented in this DLL
-// ---------------------------------------------------------------------------
-//
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(
- TInt& aTableCount )
- {
- DBG_TRACE_FN_BEGIN;
- aTableCount = sizeof( KImplementationTable )
- / sizeof( TImplementationProxy );
- DBG_TRACE_FN_END;
- return KImplementationTable;
- }
-
-#ifndef EKA2
-// ---------------------------------------------------------------------------
-// The E32Dll() entry point function. Deprecated.
-// ---------------------------------------------------------------------------
-//
-GLDEF_C TInt E32Dll(TDllReason /*aReason*/)
- {
- DBG_TRACE_FN_BEGIN;
- //
- DBG_TRACE_FN_END;
- return KErrNone;
- }
-#endif // EKA2
--- a/scrsaver/scrsaverplugins/SlideshowPlugin/data/102823EC.rss Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: ECOM Resource file for slideshowplugin
-*
-*/
-
-
-
-
-
-// INCLUDES
-#include <ecom/registryinfo.rh>
-
-#include "ScreensaverpluginIntDef.hrh"
-#include "SlideshowPluginImpUID.hrh"
-
-// RESOURCE DEFINITIONS
-// -----------------------------------------------------------------------------
-//
-// theInfo
-// ECOM DLL interface & implementation description resource.
-//
-// -----------------------------------------------------------------------------
-//
-RESOURCE REGISTRY_INFO theInfo
- {
- dll_uid = 0x102823EC;
- interfaces =
- {
- INTERFACE_INFO
- {
- interface_uid = KCScreensaverPluginInterfaceDefinitionUid;
- implementations =
- {
- IMPLEMENTATION_INFO
- {
- implementation_uid = KSlideshowPluginImpUID;
- version_no = 1;
- display_name = "Slideshow";
- default_data = "";
- opaque_data = "07"; // Conf, sel notif, preview notif
- }
- };
- }
- };
- }
-// End of File
--- a/scrsaver/scrsaverplugins/SlideshowPlugin/data/SlideshowPlugin.rss Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,128 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Localisable resources of SlideshowPlugin
-*
-*/
-
-
-
-
-
-// RESOURCE IDENTIFIER
-
-NAME SSSS
-
-#include <eikon.rh>
-#include <avkon.rh>
-#include <avkon.mbg>
-#include <avkon.hrh>
-#include <avkon.rsg>
-#include <aknsconstants.hrh>
-#include <pathconfiguration.hrh>
-#include <avkon.loc>
-#include <slideshowplugin.loc>
-
-// ---------------------------------------------------------
-//
-// Define the resource file signature
-// This resource should be empty.
-//
-// ---------------------------------------------------------
-//
-RESOURCE RSS_SIGNATURE
- {
- }
-
-
-RESOURCE TBUF
- {
- buf = "SlideshowScreensaver";
- }
-
-
-// ---------------------------------------------------
-//
-// r_slideshow_screensaver_name
-//
-// ---------------------------------------------------
-//
-RESOURCE TBUF r_slideshow_screensaver_name
- {
- buf = qtn_slideshow_screensaver_name;
- }
-
-
-// ---------------------------------------------------
-//
-// r_sanim_title_settings
-//
-// ---------------------------------------------------
-//
-RESOURCE TBUF r_sanim_not_supported
- {
- buf = qtn_err_not_supp;
- }
-
-
-// ---------------------------------------------------
-//
-// r_sanim_title_settings
-//
-// ---------------------------------------------------
-//
-RESOURCE TBUF r_sanim_error_wrong_format
- {
- buf = qtn_sanim_error_wrong_format;
- }
-
-
-// ---------------------------------------------------
-//
-// r_sanim_file_not_selected
-//
-// ---------------------------------------------------
-//
-RESOURCE TBUF r_sanim_file_not_selected
- {
- buf = qtn_sanim_file_not_selected;
- }
-
-
-// ---------------------------------------------------
-//
-// r_sanim_err_failure
-//
-// ---------------------------------------------------
-//
-RESOURCE TBUF r_sanim_err_failure
- {
- buf = qtn_err_failure;
- }
-
-
-// ---------------------------------------------------
-//
-// r_drm_prev_rights_set
-//
-// ---------------------------------------------------
-//
-RESOURCE TBUF r_drm_prev_rights_set
- {
- buf = qtn_drm_prev_rights_set;
- }
-
-
-// End of File
-
-
--- a/scrsaver/scrsaverplugins/SlideshowPlugin/group/ABLD.BAT Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-@ECHO OFF
-
-REM Bldmake-generated batch file - ABLD.BAT
-REM ** DO NOT EDIT **
-
-perl -S ABLD.PL "\S60\screensaver\plugins\SlideshowPlugin\group\\" %1 %2 %3 %4 %5 %6 %7 %8 %9
-if errorlevel==1 goto CheckPerl
-goto End
-
-:CheckPerl
-perl -v >NUL
-if errorlevel==1 echo Is Perl, version 5.003_07 or later, installed?
-goto End
-
-:End
--- a/scrsaver/scrsaverplugins/SlideshowPlugin/group/SlideshowPlugin.mmp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Makefile for Screensaver Slideshow plugin
-*
-*/
-
-
-
-
-
-#include <bldvariant.hrh>
-#include <data_caging_paths.hrh>
-#include <platform_paths.hrh>
-
-TARGET slideshowplugin.dll
-TARGETTYPE PLUGIN
-UID 0x10009D8D 0x102823EC
-
-CAPABILITY CAP_ECOM_PLUGIN
-VENDORID VID_DEFAULT
-
-START RESOURCE ../data/102823EC.rss
-TARGET slideshowplugin.rsc
-END
-
-START RESOURCE ../data/SlideshowPlugin.rss
-HEADER
-TARGETPATH RESOURCE_FILES_DIR
-LANGUAGE_IDS
-END // RESOURCE
-
-
-/* exportunfrozen */
-
-SOURCEPATH ../src
-SOURCE SlideshowPlugin.cpp
-SOURCE SlideshowModel.cpp
-SOURCE SlideshowSlide.cpp
-SOURCE SlideshowSlideLoader.cpp
-SOURCE SlideshowPluginUtils.cpp
-SOURCE SlideshowPluginProxy.cpp
-
-USERINCLUDE ../inc
-
-// This is a SYSTEMINCLUDE macro containing the middleware
-// layer specific include directories
-APP_LAYER_SYSTEMINCLUDE
-
-
-LIBRARY ecom.lib
-LIBRARY euser.lib
-LIBRARY fbscli.lib
-LIBRARY bitgdi.lib
-LIBRARY cone.lib
-LIBRARY efsrv.lib
-LIBRARY bafl.lib
-LIBRARY ws32.lib
-LIBRARY imageconversion.lib
-LIBRARY centralrepository.lib
-LIBRARY cenrepnotifhandler.lib
-LIBRARY DrmHelper.lib
-LIBRARY platformenv.lib
-LIBRARY aknskinsrv.lib
-LIBRARY ContentListingFramework.lib
-LIBRARY avkon.lib
-LIBRARY eikdlg.lib
-LIBRARY eikcore.lib
-LIBRARY eikcoctl.lib
-LIBRARY mdeclient.lib
-
-// LIBRARY AknLayout2.lib // Scalable UI
-// LIBRARY AknLayout2Scalable.lib // Scalable UI
-// LIBRARY CdlEngine.lib // Scalable UI
-// LIBRARY apgrfx.lib
-// LIBRARY apmime.lib
-// LIBRARY MGFetch.lib
-// LIBRARY CommonEngine.lib
-// LIBRARY flogger.lib
-// LIBRARY caf.lib
-// LIBRARY cafutils.lib
-#ifdef __SERIES60_HELP
-// LIBRARY hlplch.lib // for "Help" options menu
-#endif // __SERIES60_HELP
-
-
-// End of File
--- a/scrsaver/scrsaverplugins/SlideshowPlugin/group/bld.inf Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Build information file for slideshowplugin
-*
-*/
-
-
-
-
-PRJ_PLATFORMS
-// Defaults
-
-PRJ_MMPFILES
-#ifdef __SLIDESHOW_SCREENSAVER
-SlideshowPlugin.mmp
-#endif
-
-PRJ_EXPORTS
-../loc/slideshowplugin.loc MW_LAYER_LOC_EXPORT_PATH(slideshowplugin.loc)
-
-../rom/SlideshowPlugin.iby CORE_MW_LAYER_IBY_EXPORT_PATH(SlideshowPlugin.iby)
-../rom/SlideshowPluginResources.iby LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(SlideshowPluginResources.iby)
-
-// End of file
--- a/scrsaver/scrsaverplugins/SlideshowPlugin/inc/SlideshowModel.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,258 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Takes care of storing and serving the slides
-* to Slideshow plugin
-*
-*/
-
-
-
-#ifndef C_SLIDESHOWMODEL_H
-#define C_SLIDESHOWMODEL_H
-
-#include <e32base.h>
-
-class CSlideshowSlide;
-
-// Slide Array's size. 5 seems like a reasonable granularity
-const TInt KSlideshowSlideArrayGranularity = 5;
-
-//Slide status
-//this is only called in startplugin, Dont call it anywhere
-//Get next slide status
-const TInt KStatusNoSlide = 0; //no side
-const TInt KStatusSlideDecoded = 1; //already decoded
-const TInt KStatusDecodingInProgress =2; //decoding in progress
-const TInt KStatusSlideNotDecoding = 3; //slide is there but not decoded
-const TInt KStatusSlideDecodeingFailed = 4; //could not decode the file
-
-// Slideshow model.
-// Contains slideshow slides, serves the slides to Slideshow plugin
-class CSlideshowModel : public CBase
- {
-
-public:
- /**
- * Return a new CSlideshowModel object
- */
- static CSlideshowModel* NewL();
-
- /**
- * Desconstructor
- */
- virtual ~CSlideshowModel();
-
-private:
- /**
- * Default constructor
- */
- CSlideshowModel();
-
- /*
- * Two-phase constructor, initialises member arrays and stuff
- */
- virtual void ConstructL();
-
-public: // Access functions
- /*
- * Number of slides query.
- */
- TInt NumberOfSlides() const;
-
- /*
- * Add a slide to the end of the array.
- *
- * @param aSlide The new slide which will be added to the silde array.
- */
- void AppendSlideL(CSlideshowSlide* aSlide);
-
- /*
- * Insert a slide at <aIndex>. Space must be reserved.
- *
- * @param aIndex The postion index which the new slide will be insert to.
- * @param aSilde The new slide which will be insert.
- */
- void InsertSlideL(TInt aIndex, CSlideshowSlide* aSlide);
-
- /*
- * Delete slide at <aIndex>.
- *
- * @param aIndex The slide at <aIndex> will be delete.
- */
- void DeleteSlide(TInt aIndex);
-
- /*
- * Delete all slides.
- */
- void DeleteAll();
-
- /*
- * Get slide at position <aIndex>.
- *
- * @return a slide at position <aIndex>.
- */
- CSlideshowSlide* SlideAt(TInt aIndex) const;
-
- /*
- * Get current slide index.
- *
- * @return the current slide index.
- */
- inline TInt CurrentSlideIndex() const;
-
- /*
- * Set current slide index.
- *
- * @param aIndex The slide index, which will be show.
- */
- inline void SetCurrentSlideIndex(TInt aIndex);
-
- /*
- * Get next slide in sequence
- *
- * @param aRandom No used now.
- * @return the next slide.
- */
- CSlideshowSlide* NextSlide(TBool aRandom);
-
- /*
- * Get slide status: decoded, decoding ,not started,decoding failed,no slide.
- *
- * @param aSlide the slide which status will be detected.
- * @return status of aSlide.
- */
- TInt SlideStatus(CSlideshowSlide* aSlide);
-
- /*
- * Prepare next slide.
- * @param aRandom Whether select next slide random.( ETrue is random, EFalse is sequential)
- * @param aTargetSize The slide Size.
- */
- void PrepareNextSlide(TBool aRandom, const TSize& aTargetSize);
-
- /*
- * Release next slide.
- */
- void ReleaseNextSlide();
-
- /*
- * Release Current slide.
- */
- void ReleaseCurrentSlide();
-
- /*
- * Get next slide index.
- *
- * @return the position index which slide will be on.
- */
- inline TInt NextSlideIndex() const;
-
- /*
- * Reserve space for <aCount> slides.
- *
- * @param aCount The slide number.
- */
- void SetReserveL(TInt aCount);
-
- /*
- * Query if model is busy (decoding a slide).
- *
- * @return status whether the model is ready.(ETrue is ready, EFalse is not)
- */
- TBool Busy();
-
- /*
- * Reset slide sequence, note that this will not release current image
- */
- inline void ResetSlideSequence();
-
-private: // Utility functions
- /*
- * Get a random number in the range aMin - aMax (inclusive)
- *
- * @param aMax The upper limited.
- * @param aMin The lower limited.
- * @return an random number which is between aMax and aMin.
- */
- TInt Random(TInt aMax, TInt aMin = 0);
-
-private:
- /*
- * Slide array
- */
- CArrayPtrFlat<CSlideshowSlide>* iSlides;
-
- /*
- * Current slide index
- */
- TInt iCurrentSlide;
-
- /*
- * Next slide index
- */
- TInt iNextSlide;
-
- /*
- * Random seed
- */
- TInt64 iRandSeed;
-
- /*
- * Busy flag
- */
- TBool iBusy;
- };
-
-//------------------------------------------------------------------------------
-// CSlideshowModel::CurrentSlideIndex
-//------------------------------------------------------------------------------
-//
-TInt CSlideshowModel::CurrentSlideIndex() const
- {
- return iCurrentSlide;
- }
-
-
-//------------------------------------------------------------------------------
-// CSlideshowModel::SetCurrentSlideIndex
-//------------------------------------------------------------------------------
-//
-void CSlideshowModel::SetCurrentSlideIndex(TInt aIndex)
- {
- iCurrentSlide = aIndex;
- }
-
-
-//------------------------------------------------------------------------------
-// CSlideshowModel::NextSlideIndex
-//------------------------------------------------------------------------------
-//
-TInt CSlideshowModel::NextSlideIndex() const
- {
- return iNextSlide;
- }
-
-//------------------------------------------------------------------------------
-// CSlideshowModel::ResetSlideSequence
-//------------------------------------------------------------------------------
-//
-void CSlideshowModel::ResetSlideSequence()
- {
- iCurrentSlide = 0;
- iNextSlide = -1;
- }
-
-#endif // C_CSLIDESHOWMODEL_H
-
-// End of file
--- a/scrsaver/scrsaverplugins/SlideshowPlugin/inc/SlideshowPlugin.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,361 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Implements the Slideshow plugin beef, especially
-* MScreensaverPlugin interface
-*
-*/
-
-
-
-#ifndef C_SLIDESHOWPLUGIN_H
-#define C_SLIDESHOWPLUGIN_H
-
-#include <gdi.h>
-#include <coecntrl.h>
-#include <e32cmn.h>
-#include <coecobs.h>
-#include <AknsSrvClient.h>
-#include <ScreensaverpluginIntDef.h>
-#include <screensaverplugin.h>
-#include <ScreensaverInternalPSKeys.h>
-
-#include <MCLFOperationObserver.h>
-#include <MCLFContentListingEngine.h>
-#include <MCLFItemListModel.h>
-#include <mdesession.h>
-#include <mdequery.h>
-
-#include "SlideshowModel.h"
-#include "SlideshowSlide.h"
-#include "SlideshowPluginUtils.h"
-
-class CEikonEnv;
-class CDRMHelper;
-class CRepositoryWatcher;
-class CRepository;
-
-/**
-* Encapsulates the Settings that are written into the central repository
-* @lib ScreenSaverAnimPlugin.lib
-* @since 3.1
-*/
-class CSlideshowSettings : public CBase
- {
-public:
- CSlideshowSettings();
-
-public:
- // Slideshow time
- TInt iSlideshowTime;
-
- // Lights time
- TInt iLightsTime;
-
- // Time a slide is displayed
- TInt iSlideTime;
-
- // Slideshow type
- TInt iSlideshowType;
- };
-
-
-/**
-* Provides the Animated ScreenSaverPlugin functionality which implements
-* ScreenSaver Interface and gives a Netscape Browser Plugin Interface
-* to the format specific plugins like SVG, Flash, M3G etc.
-* @lib ScreenSaverAnimPlugin.lib
-* @since 3.1
-*/
-class CSlideshowPlugin: public CScreensaverPluginInterfaceDefinition,
- public MMdESessionObserver,
- public MMdEQueryObserver
- {
- enum TPluginState
- {
- EPluginStateLoading = 0,
- EPluginStateInitializing,
- EPluginStateRunning,
- EPluginStateStopping
- };
-
-public:
-
- /**
- * Creator
- * @since 3.1
- */
- static CSlideshowPlugin* NewL();
-
- /**
- * Destructor
- */
- virtual ~CSlideshowPlugin();
-
-private:
- /**
- * 2nd phase constructor
- * @since 3.1
- */
- void ConstructL();
-
- /**
- * Default Constructor
- * @since 3.1
- */
- CSlideshowPlugin();
-
-public: // Functions From CScreensaverPluginInterfaceDefinition
-
- /**
- * From MScreensaverPlugin, Method called by Screensaver
- * when plugin is being loaded into use
- * @param aHost Plugin host (Screensaver).
- * @since 3.1
- */
- virtual TInt InitializeL(MScreensaverPluginHost *aHost);
-
- /**
- * From MScreensaverPlugin, Method called by Screensaver
- * when plugin is allowed to draw
- * @since 3.1
- */
- virtual TInt Draw( CWindowGc& aGc );
-
- /**
- * From MScreensaverPlugin, Method called by Themes application
- * to get localised name
- * @since 3.1
- */
- virtual const TDesC16& Name() const;
-
- /**
- * From MScreensaverPlugin, Method called by Screensaver
- * to get the capabilities of screensaver plugin
- * @since 3.1
- */
- virtual TInt Capabilities();
-
- /**
- * From MScreensaverPlugin, Method called by Themes application
- * to configure the plugin or to pass e.g. selection notifications
- * to plugin
- * @since 3.1
- */
- virtual TInt PluginFunction(
- TScPluginCaps /* aFunction */,
- TAny* /* aParam */ );
-
- /**
- * From MScreensaverPlugin, Method called by Screensaver
- * when there are screensaver events, such as starting and stopping
- * @since 3.1
- */
- virtual TInt HandleScreensaverEventL(
- TScreensaverEvent aEvent,
- TAny* aData );
-
-public: // from MMdESessionObserver
- /**
- * Called to notify the observer that opening the session has been
- * completed and, if the opening succeeded, the session is ready for use.
- *
- * @param aSession session
- * @param aError <code>KErrNone</code>, if opening the session succeeded;
- * or one of the system-wide error codes, if opening the
- * session failed
- */
- void HandleSessionOpened(CMdESession& aSession, TInt aError);
-
- /**
- * Called to notify the observer about errors, which are not a direct
- * consequence of the operations initiated by the client but caused by
- * some external source (e.g., other clients). The error cannot be
- * recovered and all on-going operations initiated by the client have been
- * aborted. Any attempts to continue using the session will cause a panic.
- * The client should close the session immediately and try to open a new
- * session, if it needs to continue using the metadata engine.
- *
- * @param aSession session
- * @param aError one of the system-wide error codes
- */
- void HandleSessionError(CMdESession& aSession, TInt aError);
-
-public: // from MMdEQueryObserver
- /**
- * Called to notify the observer that new results have been received
- * in the query.
- *
- * @param aQuery Query instance that received new results.
- * @param aFirstNewItemIndex Index of the first new item that was added
- * to the result item array.
- * @param aNewItemCount Number of items added to the result item
- * array.
- */
- void HandleQueryNewResults(CMdEQuery& aQuery,
- TInt aFirstNewItemIndex,
- TInt aNewItemCount);
-
- /**
- * Called to notify the observer that the query has been completed,
- * or that an error has occured.
- *
- * @param aQuery Query instance.
- * @param aError <code>KErrNone</code>, if the query was completed
- * successfully. Otherwise one of the system-wide error
- * codes.
- */
- void HandleQueryCompleted(CMdEQuery& aQuery, TInt aError);
-
-public: // New Functions
-
- /**
- * Reads the settings from the central repository
- * @since 3.1
- * @return System wide Error value
- */
- TInt ReadSettings();
-
-#if 0
- /**
- * This method checks whether the set file exists currently
- * if not, it updates the filename string
- * This also checks if the rights are valid if the content is drm
- * if not, it updates the filename with the empty file name
- * returns True, if the Filename is updated
- * False, otherwise
- * @since 3.2
- */
- TBool UpdateFileName();
-#endif
-
- /**
- * Called when there is a central repository settings change
- * @since 3.2
- */
- void HandleCRSettingsChange(TAny* aPtr);
-
- /**
- * Called by the repository watcher when there is a central
- * repository settings change
- * @since 3.2
- */
- static TInt HandleRepositoryCallBack(TAny* aPtr);
-
- /**
- * Called by the P & S subscriber when the subscribed key value changes
- * @since 3.2
- */
- static TInt HandleSettingsChanged(TAny* aPtr);
-
-private: // New functions
-
- /**
- * Connects the central repository session
- * @since 3.1
- */
- void InitializeCenRepL();
-
- /**
- * Registers for central repository key changes
- * @since 3.1
- */
- void NotifyCenrepChangeL();
-
- /**
- * Cancels registration for central repository key changes
- * @since 3.1
- */
- void NotifyCenrepChangeCancel();
-
- /**
- * Disconnects the central repository session
- * @since 3.1
- */
- void UnInitializeCenRep();
-
- void StartPlugin();
- void StopPlugin();
- void DrawCentered(CWindowGc& aGc, CSlideshowSlide* aSlide);
- void LoadSlidesL();
- void LoadSlideSetL();
- void LoadRandomSlidesL();
- void SetDisplayMode();
- void Lights(TInt aSecs);
- void ConfigureL(TAny* aParam);
- void UpdateDisplayInfo();
- void FlushDrawBuffer();
-
- TInt SettingsChanged();
-
- void ConnectToMDSSessionL();
- void WaitForMDS();
- void EndWaitForMDS();
- void LoadImagesToModel(const CMdEQuery& aQuery,
- TInt aFirstNewItemIndex = 0,
- TInt aNewItemCount = 0);
- void AppendSlideToModelL(TDesC& aFileName, TBool aIsOnMC);
- void OpenQueryL();
-
-private:
- // Pointer to the screensaver host
- MScreensaverPluginHost* iHost;
-
- // Display info
- TScreensaverDisplayInfo iDi;
-
- // Resource file offset
- TInt iResourceOffset;
-
- // Handle to the central repository session
- CRepository* iSlideshowRepository;
-
- // Environment pointer
- CEikonEnv* iEikEnv;
-
- // Pointer to settings
- CSlideshowSettings* iSettings;
-
- // Slideshow model
- CSlideshowModel* iModel;
-
- // Pointer to Drm Helper
- CDRMHelper* iDrmHelper;
-
- // Cenrep watcher for settings change
- CRepositoryWatcher* iSlideshowCRWatcher;
-
- RProperty iSettingsChangedProperty;
- CPSSubscriber* iSettingsChangedSubscriber;
-
- // Localised name
- HBufC* iScreensaverName;
-
- // Waiter
- CActiveSchedulerWait iWaiter;
- TBool iWaitActive;
-
- // Draw count
- TInt iDrawCount;
- TBool iTimerUpdated;
-
- //loading state
- TBool iIsLoadFinished;
-
- // MDS session
- CMdESession* iMdESession;
- };
-
-
-#endif // C_SLIDESHOWPLUGIN_H
-// End Of file
--- a/scrsaver/scrsaverplugins/SlideshowPlugin/inc/SlideshowPluginImpUID.hrh Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Defines the ECOM Implementation UIDs.
-*
-*/
-
-
-
-
-
-#ifndef SLIDESHOWPLUGINIMPUID_HRH
-#define SLIDESHOWPLUGINIMPUID_HRH
-
-#define KSlideshowPluginImpUID 0x102823ED
-
-#endif // SLIDESHOWPLUGINIMPUID_HRH
-// End of File
--- a/scrsaver/scrsaverplugins/SlideshowPlugin/inc/SlideshowPluginUtils.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,283 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: SlideshowPlugin utilities collection
-*
-*/
-
-
-
-#ifndef C_SLIDESHOWPLUGINUTILS_H
-#define C_SLIDESHOWPLUGINUTILS_H
-
-// INCLUDES
-#include <e32base.h>
-#include <cenrepnotifyhandler.h>
-#include <e32property.h>
-
-#include "SlideshowSlide.h"
-
-// FORWARD DECLARATIONS
-class CDRMHelper;
-class CCoeEnv;
-class CRepository;
-
-// CLASS DECLARATION
-
-/**
-* Central Repository Change watcher
-* @since 3.2
-* @internal
-*/
-class CRepositoryWatcher : public CBase, public MCenRepNotifyHandlerCallback
- {
-public:
- static CRepositoryWatcher* NewL(
- const TUid aUid,
- const TUint32 aKey,
- CCenRepNotifyHandler::TCenRepKeyType aKeyType,
- TCallBack aCallBack,
- CRepository* aRepository);
-
- static CRepositoryWatcher* NewL(
- const TUid aUid,
- TCallBack aCallBack,
- CRepository* aRepository);
-
- ~CRepositoryWatcher();
-
- TUint32 ChangedKey();
-
-public: // from MCenRepNotifyHandlerCallback
- void HandleNotifyInt(TUint32 aKey, TInt aNewValue);
- void HandleNotifyString(TUint32 aKey, const TDesC16& aNewValue);
- void HandleNotifyGeneric(TUint32 aKey);
- void HandleNotifyError(
- TUint32 aKey, TInt aError, CCenRepNotifyHandler* aHandler);
-
-private:
- CRepositoryWatcher(
- const TUid aUid,
- const TUint32 aKey,
- TCallBack aCallBack,
- CRepository* aRepository);
-
- void ConstructL(CCenRepNotifyHandler::TCenRepKeyType aKeyType);
-
- void ConstructL();
-
-private:
- TUid iUid;
- TUint32 iKey;
- TUint32 iChangedKey;
- TCallBack iCallBack;
- CRepository* iRepository;
- CCenRepNotifyHandler* iNotifyHandler;
-};
-
-
-/**
-* Publish & Subscribe change subscriber
-* @since 3.2
-* @internal
-*/
-class CPSSubscriber : public CActive
- {
-public:
- CPSSubscriber(TCallBack aCallBack, RProperty& aProperty);
- ~CPSSubscriber();
-
-public: // New functions
- void SubscribeL();
- void StopSubscribe();
-
-private: // from CActive
- void RunL();
- void DoCancel();
-
-private:
- TCallBack iCallBack;
- RProperty& iProperty;
-};
-
-
-// ========== UTILITIES CLASS =============================
-
-class SlideshowUtil
- {
-public:
- // Checks if memory card is present
- static TBool IsMCPresent();
-
- // Checks if the given file is on memory card
- static TBool IsOnMC(TFileName aFile);
-
- // Checks that the file has enough DRM rights to be displayed
- static TBool DRMCheck(CDRMHelper *aDRMHelper, TDesC& aFileName);
-
- // Checks that the slide has enough DRM rights to be displayed
- static TBool DRMCheck(CDRMHelper *aDRMHelper, CSlideshowSlide* aSlide);
-
- // Consumes the slide's DRM rights
- static void DRMConsume(CDRMHelper* aDRMHelper, CSlideshowSlide* aSlide);
-
-private:
- /**
- * Static class can not be instantiated.
- */
- SlideshowUtil();
- //lint -esym(1526, SlideshowUtil::SlideshowUtil) Intentionally undefined
-
- /**
- * Static class can not be instantiated.
- */
- ~SlideshowUtil();
- };
-
-
-// ========== LOGGING MACROS ===============================
-
-#ifdef USE_LOGGER
-
-#include <e32std.h>
-#include <e32def.h>
-#include <eikenv.h>
-#include <flogger.h>
-
-
-/* logging macros usage:
-
-// set logging on in mmp file...
-MACRO USE_LOGGER
-#ifdef WINS
-MACRO USE_RDEBUG
-#endif
-
-
-void CTestAppUi::ConstructL()
-{
-// creates log directory and log file on app startup.
-// prints starting banner...
-SCRLOGGER_CREATE;
-
-// entering to function...
-SCRLOGGER_ENTERFN("ConstructL()");
-
-TInt number = 42;
-TFileName file;
-file = "something" ....
-
-// print variable number of parameters...
-// Note: use _L macro for format string!
-SCRLOGGER_WRITEF(_L("SCR: number = %d, file = %S"), number, &file);
-
-// print just a string (no _L macro here!)
-SCRLOGGER_WRITE("Hello world!");
-
-// leave from function...
-SCRLOGGER_LEAVEFN("ConstructL()");
-}
-
-CTestAppUi::~CTestAppUi()
-{
-// print app exit banner when application exits.
-SCRLOGGER_DELETE;
-}
-
-*/
-
-#ifdef USE_RDEBUG
-
-_LIT(KSSPLogBanner, "SlideshowPlugin log start");
-_LIT(KSSPLogEnterFn, "SSP: enter --> %S");
-_LIT(KSSPLogLeaveFn, "SSP: leave <-- %S");
-_LIT(KSSPLogWrite, "SSP: %S");
-_LIT(KSSPLogTag, "SSP: ");
-_LIT(KSSPLogExit, "SlideshowPlugin log end");
-_LIT(KSSPLogTimeFormatString, "%H:%T:%S:%*C2");
-
-#define SSPLOGGER_CREATE {RDebug::Print(KSSPLogBanner);}
-#define SSPLOGGER_DELETE {RDebug::Print(KSSPLogExit);}
-#define SSPLOGGER_ENTERFN(a) {_LIT(temp, a); RDebug::Print(KSSPLogEnterFn, &temp);}
-#define SSPLOGGER_LEAVEFN(a) {_LIT(temp, a); RDebug::Print(KSSPLogLeaveFn, &temp);}
-#define SSPLOGGER_WRITE(a) {_LIT(temp, a); RDebug::Print(KSSPLogWrite, &temp);}
-#define SSPLOGGER_WRITE_TIMESTAMP(a) {_LIT(temp, a); TTime time; time.HomeTime(); TBuf<256> buffer; time.FormatL(buffer, KSSPLogTimeFormatString); buffer.Insert(0, temp); buffer.Insert(0, KSSPLogTag); RDebug::Print(buffer); }
-#define SSPLOGGER_WRITEF RDebug::Print
-
-#else
-
-_LIT(KSSPLogDir, "SSP");
-_LIT(KSSPLogFile, "SSP.txt");
-_LIT8(KSSPLogBanner, "SlideshowPlugin log start");
-_LIT8(KSSPLogEnterFn, "SSP: -> %S");
-_LIT8(KSSPLogLeaveFn, "SSP: <- %S");
-_LIT8(KSSPLogExit, "SlideshowPlugin log end");
-_LIT(KSSPLogTimeFormatString, "%H:%T:%S:%*C2");
-
-#define SSPLOGGER_CREATE {FCreate();}
-#define SSPLOGGER_DELETE {RFileLogger::Write(KSSPLogDir, KSSPLogFile, EFileLoggingModeAppend, KSSPLogExit);}
-#define SSPLOGGER_ENTERFN(a) {_LIT8(temp, a); RFileLogger::WriteFormat(KSSPLogDir, KSSPLogFile, EFileLoggingModeAppend, KSSPLogEnterFn, &temp);}
-#define SSPLOGGER_LEAVEFN(a) {_LIT8(temp, a); RFileLogger::WriteFormat(KSSPLogDir, KSSPLogFile, EFileLoggingModeAppend, KSSPLogLeaveFn, &temp);}
-#define SSPLOGGER_WRITE(a) {_LIT(temp, a); RFileLogger::Write(KSSPLogDir, KSSPLogFile, EFileLoggingModeAppend, temp);}
-#define SSPLOGGER_WRITE_TIMESTAMP(a) {_LIT(temp, a); TTime time; time.HomeTime(); TBuf<256> buffer; time.FormatL(buffer, KSSPLogTimeFormatString); buffer.Insert(0, temp); RFileLogger::Write(KSSPLogDir, KSSPLogFile, EFileLoggingModeAppend, buffer); }
-#define SSPLOGGER_WRITEF FPrint
-
-inline void FPrint(const TRefByValue<const TDesC> aFmt, ...)
- {
- VA_LIST list;
- VA_START(list, aFmt);
- RFileLogger::WriteFormat(KSSPLogDir, KSSPLogFile, EFileLoggingModeAppend, aFmt, list);
- }
-
-inline void FPrint(const TDesC& aDes)
- {
- RFileLogger::WriteFormat(KSSPLogDir, KSSPLogFile, EFileLoggingModeAppend, aDes);
- }
-
-inline void FHex(const TUint8* aPtr, TInt aLen)
- {
- RFileLogger::HexDump(KSSPLogDir, KSSPLogFile, EFileLoggingModeAppend, 0, 0, aPtr, aLen);
- }
-
-inline void FHex(const TDesC8& aDes)
- {
- FHex(aDes.Ptr(), aDes.Length());
- }
-
-inline void FCreate()
- {
- TFileName path(_L("c:\\logs\\"));
- path.Append(KSSPLogDir);
- path.Append(_L("\\"));
- RFs& fs = CEikonEnv::Static()->FsSession();
- fs.MkDirAll(path);
- RFileLogger::WriteFormat(KSSPLogDir, KSSPLogFile, EFileLoggingModeOverwrite, KSSPLogBanner);
- }
-
-#endif // USE_RDEBUG
-
-#else // USE_LOGGER
-
-inline void FPrint(const TRefByValue<const TDesC> /*aFmt*/, ...) { };
-
-#define SSPLOGGER_CREATE
-#define SSPLOGGER_DELETE
-#define SSPLOGGER_ENTERFN(a)
-#define SSPLOGGER_LEAVEFN(a)
-#define SSPLOGGER_WRITE(a)
-#define SSPLOGGER_WRITEF 1 ? ((void)0) : FPrint
-#define SSPLOGGER_WRITE_TIMESTAMP(a)
-
-#endif // USE_LOGGER
-
-#endif // C_SLIDESHOWPLUGINUTILS_H
--- a/scrsaver/scrsaverplugins/SlideshowPlugin/inc/SlideshowSlide.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,112 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Stores a single slide
-*
-*/
-
-
-
-#ifndef C_SLIDESHOWSLIDE_H
-#define C_SLIDESHOWSLIDE_H
-
-// INCLUDES
-#include <e32base.h> // e32def, e32std
-#include <e32cmn.h>
-#include <fbs.h>
-
-#include "SlideshowSlideLoader.h"
-
-// CONSTANTS
-
-// Leave code when a slide is on memory card and the card is not present
-const TInt KSSTryLater = (-100);
-
-// MACROS
-
-// Item flags
-#define SSS_NONE 0x00
-#define SSS_IMAGELOADED 0x01
-#define SSS_ISONMC 0x02
-#define SSS_DECODEFAILED 0x04
-
-
-// DATA TYPES
-
-// EXTERNAL DATA STRUCTURES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-// CLASS DEFINITIONS
-class CSlideshowSlide : public CBase
- {
-public:
- // Creator
- static CSlideshowSlide* NewL(TDesC& aFileName, TBool aIsOnMC = EFalse);
-
- // Destructor
- virtual ~CSlideshowSlide();
-
- // Is decoding is in progress
- TBool IsDecodingInProgress();
-
- // Could not decode the file
- TBool CouldNotDecodeFile();
-
- //
- friend class CSlideshowSlideLoader;
-private:
-
- // Default constructor
- CSlideshowSlide(TBool aIsOnMC);
-
- // 2-phase
- void ConstructL(TDesC& aFileName);
-
-public:
-
- // Prepares slide (loads image)
- void PrepareSlideL(const TSize& aTargetSize);
-
- // Get image
- CFbsBitmap* Image() const { return iImage; }
-
- // Get filename
- HBufC* FileName() const { return iFileName; }
-
- // Release image
- void ReleaseImage();
-
- // Get flags
- TInt Flags() const { return iFlags; }
-
- // Is slide decoded completely
- TBool IsSlideDecoded();
-
-protected:
- //Empty
-private:
- // Type flags
- TInt iFlags;
-
- // Image
- CFbsBitmap* iImage;
-
- // Filename
- HBufC* iFileName;
- CSlideshowSlideLoader *iSlideLoader;
- };
-
-#endif // C_SLIDESHOWSLIDE_H
--- a/scrsaver/scrsaverplugins/SlideshowPlugin/inc/SlideshowSlideLoader.h Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,78 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Loads a slide from file
-*
-*/
-
-
-
-#ifndef C_SLIDESHOWSLIDELOADER_H
-#define C_SLIDESHOWSLIDELOADER_H
-
-#include <e32std.h>
-#include <fbs.h>
-#include <f32file.h>
-#include <bautils.h>
-#include <coemain.h>
-#include <e32base.h>
-#include <bitstd.h>
-#include <imageconversion.h>
-
-class CSlideshowSlide;
-class CSlideshowSlideLoader : public CActive
- {
-public:
- // Creator
- static CSlideshowSlideLoader* NewL(CSlideshowSlide *aSlide);
-
- // Called when image decoding done
- void RunL();
-
- // Called if user calls Cancel() on active object
- void DoCancel();
-
- //virtual distructor
- virtual ~CSlideshowSlideLoader();
-
- //start decoding the slide
- void LoadSlideL(const TDesC& aFilename, const TSize& aTargetSize);
-
-private:
-
- // Default constructor
- CSlideshowSlideLoader(CSlideshowSlide *aSlide);
-
- //Two Phase constructor
- void ConstructL();
-
- //Delete the Decoder object
- void DeleteDecoder();
-
- //From CActive
- TInt RunError(TInt aError);
-
-private:
-
- // Target size (Phone screen size)
- TSize iTargetSize;
- //Bitmap size
- TSize iBitmapsize;
- //Decoder
- CImageDecoder * iDecoder;
- //Slide
- CSlideshowSlide * iSlide;
-
- };
-
-#endif // C_SLIDESHOWSLIDELOADER_H
--- a/scrsaver/scrsaverplugins/SlideshowPlugin/loc/slideshowplugin.loc Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Localization strings for Slideshow screensaver
-*
-*/
-
-
-
-
-
-//d: Screensaver name
-//d: Displayed in Themes application screensaver list
-//l: list_set_graphic_pane_t1
-//w:
-//r:3.2
-#define qtn_slideshow_screensaver_name "Slideshow"
-
-//d: Title Pane String
-//d: Displayed in the title Pane when settings dialog is displayed.
-//l: title_pane_1
-//w:
-//r:3.2
-#define qtn_sanim_title_settings "Settings"
-
-// Taken from errorres.loc
-// d: Generic error note to be displayed when user tries to
-// d: use some feature which is not supported
-// l: popup_note_window_1_four_rows
-// w: Errorres
-// r: 3.2
-#define qtn_err_not_supp "Feature is not supported"
-
-// d: error note to be displayed when user tries to
-// d: select some file which is corrupted
-// l: popup_note_window/opt2
-// w:
-// r:3.2
-#define qtn_sanim_error_wrong_format "File is corrupted or wrong format"
-
-// d: error note to be displayed when user hasnt
-// d: selected a file
-// l: popup_note_window/opt2
-// w:
-// r:3.2
-#define qtn_sanim_file_not_selected "File not Selected"
-
-// d: error note to be displayed when animation couldnot
-// d: be played as a screensaver
-// l: popup_note_window_1_four_rows
-// w:
-// r:3.2
-#define qtn_err_failure "Unable to perform operation"
-
-// d: error note to be displayed when animation couldnot
-// d: be set as a screensaver
-// l: popup_note_window_1_four_rows
-// w:
-// r:3.2
-#define qtn_drm_prev_rights_set "Unable to select.Object can only be viewed"
-
--- a/scrsaver/scrsaverplugins/SlideshowPlugin/rom/SlideshowPlugin.iby Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: IBY file for Slideshowplugin.dll
-*
-*/
-
-
-
-
-#ifndef SLIDESHOWPLUGIN_IBY
-#define SLIDESHOWPLUGIN_IBY
-
-#ifdef __SLIDESHOW_SCREENSAVER
-ECOM_PLUGIN(SlideshowPlugin.dll, 102823EC.rsc)
-#endif
-
-#endif // SLIDESHOWPLUGIN_IBY
-// End of File
--- a/scrsaver/scrsaverplugins/SlideshowPlugin/rom/SlideshowPluginResources.iby Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: IBY file for SlideshowPlugin resources
-*
-*/
-
-
-
-
-#ifndef SLIDESHOWPLUGINRESOURCES_IBY
-#define SLIDESHOWPLUGINRESOURCES_IBY
-
-#ifdef __SLIDESHOW_SCREENSAVER
-data=DATAZ_\RESOURCE_FILES_DIR\SlideshowPlugin.rsc RESOURCE_FILES_DIR\SlideshowPlugin.rsc
-#endif
-
-#endif // SLIDESHOWPLUGINRESOURCES_IBY
-// End of File
--- a/scrsaver/scrsaverplugins/SlideshowPlugin/src/SlideshowModel.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,441 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Takes care of storing and serving the slides
-* to Slideshow plugin
-*
-*/
-
-
-#include <e32math.h>
-#include <eikenv.h>
-#include <bautils.h>
-
-#include "SlideshowModel.h"
-#include "SlideshowPluginUtils.h"
-
-//------------------------------------------------------------------------------
-// CSlideshowModel::NewL
-//------------------------------------------------------------------------------
-//
-CSlideshowModel* CSlideshowModel::NewL()
- {
- CSlideshowModel* self = new (ELeave) CSlideshowModel();
-
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
-
- return self;
- }
-
-
-//------------------------------------------------------------------------------
-// CSlideshowModel::~CSlideshowModel
-//------------------------------------------------------------------------------
-//
-CSlideshowModel::~CSlideshowModel()
- {
- // Delete slide array
- if (iSlides)
- {
- iSlides->ResetAndDestroy();
- }
- delete iSlides;
- }
-
-
-//------------------------------------------------------------------------------
-// CSlideshowModel::CSlideshowModel
-//------------------------------------------------------------------------------
-//
-CSlideshowModel::CSlideshowModel()
- : iNextSlide(-1)
- {
- }
-
-
-//------------------------------------------------------------------------------
-// CSlideshowModel::ConstructL
-//------------------------------------------------------------------------------
-//
-void CSlideshowModel::ConstructL()
- {
- // Create slide array
- iSlides = new(ELeave) CArrayPtrFlat<CSlideshowSlide>(
- KSlideshowSlideArrayGranularity);
-
- //Get random seed
- TTime time;
- time.HomeTime();
- iRandSeed = time.Int64();
- }
-
-
-//------------------------------------------------------------------------------
-// CSlideshowModel::NumberOfSlides
-//------------------------------------------------------------------------------
-//
-TInt CSlideshowModel::NumberOfSlides() const
- {
- //if the slide array is not NULL, return it's size
- return iSlides ? iSlides->Count() : 0;
- }
-
-
-//------------------------------------------------------------------------------
-// CSlideshowModel::AppendSlideL
-//------------------------------------------------------------------------------
-//
-void CSlideshowModel::AppendSlideL(CSlideshowSlide* aSlide)
- {
- // Sanity check
- if (!iSlides)
- {
- ASSERT(EFalse);
- return;
- }
-
- // Stash it in
- iSlides->AppendL(aSlide);
- }
-
-
-//------------------------------------------------------------------------------
-// CSlideshowModel::InsertSlideL
-//------------------------------------------------------------------------------
-//
-void CSlideshowModel::InsertSlideL(TInt aIndex, CSlideshowSlide* aSlide)
- {
- if ((iSlides) && (aIndex >= 0) && (aIndex <= NumberOfSlides()))
- {
- // Squeeze it in
- iSlides->InsertL(aIndex, aSlide);
- }
- else
- {
- ASSERT(EFalse);
- }
- }
-
-
-//------------------------------------------------------------------------------
-// CSlideshowModel::DeleteSlide
-//------------------------------------------------------------------------------
-//
-void CSlideshowModel::DeleteSlide(TInt aIndex)
- {
- //Sanity check
- if ((iSlides) && (aIndex >= 0) && (aIndex <= NumberOfSlides()))
- {
- // Grab hold of the slide for deletion, remove from array
- // and compress the array
- CSlideshowSlide* ptr = iSlides->At(aIndex);
-
- iSlides->Delete(aIndex);
- delete ptr;
- iSlides->Compress();
-
- }
- else
- {
- ASSERT(EFalse);
- }
- }
-
-
-//------------------------------------------------------------------------------
-// CSlideshowModel::DeleteAll
-//------------------------------------------------------------------------------
-//
-void CSlideshowModel::DeleteAll()
- {
- //Sanity check
- if (iSlides)
- {
- iSlides->ResetAndDestroy();
- }
-
- iCurrentSlide = 0;
- iNextSlide = -1;
- }
-
-
-//------------------------------------------------------------------------------
-// CSlideshowModel::SlideAt
-//------------------------------------------------------------------------------
-//
-CSlideshowSlide* CSlideshowModel::SlideAt(TInt aIndex) const
- {
- if ((iSlides) && (aIndex >= 0) && (aIndex < NumberOfSlides()))
- {
- //return the postion object
- return iSlides->At(aIndex);
- }
- else
- {
- return NULL;
- }
- }
-
-
-//------------------------------------------------------------------------------
-// CSlideshowModel::NextSlide
-//------------------------------------------------------------------------------
-//
-CSlideshowSlide* CSlideshowModel::NextSlide(TBool /*aRandom */)
- {
- if (iNextSlide < 0)
- {
- // Next slide could not be prepared, or preparenextslide not called
- return NULL;
- }
-
- CSlideshowSlide* pSlide = SlideAt(iNextSlide);
-
- if (!pSlide)
- {
- // Apparently there are no more slides - wrap around
- iCurrentSlide = -1;
- iNextSlide = 0;
- pSlide = SlideAt(iNextSlide);
- }
-
- iCurrentSlide = iNextSlide;
- return pSlide;
- }
-
-
-//------------------------------------------------------------------------------
-// CSlideshowModel::PrepareNextSlide
-//------------------------------------------------------------------------------
-//
-void CSlideshowModel::PrepareNextSlide(TBool aRandom, const TSize& aTargetSize)
- {
- SSPLOGGER_WRITE("Model::PrepareNextSlide(), model busy");
-
- SSPLOGGER_WRITEF(_L("SPP: iCurrentSlide %d, iNextSlide %d"),
- iCurrentSlide, iNextSlide);
-
- TBool slideOK = EFalse;
- while (!slideOK)
- {
- TInt nSlides = NumberOfSlides();
- // Any point in continuing?
- if (nSlides == 0)
- {
- iNextSlide = -1;
- break;
- }
-
- // Special cases, 1 or 2 slides only
- if (nSlides == 1)
- {
- iNextSlide = 0;
- SSPLOGGER_WRITEF(_L("SPP: One slide, next slide %d"), iNextSlide);
- }
- else if (nSlides == 2)
- {
- // Switch between slides even if random
- iNextSlide = (iNextSlide == 0 ? 1 : 0);
- SSPLOGGER_WRITEF(_L("SPP: 2 slides, next slide %d"), iNextSlide);
- }
- else
- {
- // We got at least 3 slides, and can also do random
- if (aRandom)
- {
- // Make sure we won't pick the same slide
- do
- {
- iNextSlide = Random(nSlides - 1);
- }
- while (iNextSlide == iCurrentSlide);
-
- SSPLOGGER_WRITEF(_L("SPP: Random, next slide %d"), iNextSlide);
- }
- else
- {
- iNextSlide++;
-
- // Wrap?
- if (iNextSlide >= nSlides)
- {
- SSPLOGGER_WRITE("Wrapping...");
- iNextSlide = 0;
- }
- SSPLOGGER_WRITEF(_L("SPP: Continuous, next slide %d"),
- iNextSlide);
- }
- }
-
- // Get the slide
- CSlideshowSlide* pSlide = SlideAt(iNextSlide);
-
- if (!pSlide)
- {
- // Should not have happened - start from beginning
- iNextSlide = 0;
- SSPLOGGER_WRITEF(_L("SPP: Wrapping, next slide %d"),
- iNextSlide);
- pSlide = SlideAt(iNextSlide);
- }
-
- if (pSlide)
- {
- // Try loading the image, if image does not already exist
- if (!pSlide->IsSlideDecoded())
- {
- SSPLOGGER_WRITE("Preparing next slide");
- if(iCurrentSlide != iNextSlide)
- {
- // relese currently deleted image from RAM.( We dont have caching)
- ReleaseCurrentSlide();
- }
- if ((TInt)ETrue == pSlide->CouldNotDecodeFile())
- {
- // could not decode this file last time. so delete this slide from the
- // list of slide and go to the next one.
- DeleteSlide(iNextSlide);
- iNextSlide--;
- continue;
- }
- TRAPD(err, pSlide->PrepareSlideL(aTargetSize));
- if (err == KErrNone)
- {
- //wait for slide to load.
- iCurrentSlide = iNextSlide;
- SSPLOGGER_WRITE("Started Decoding Wait");
- break;
- }
- else
- {
- // Apparently the file was not a loadable image -
- // remove from slideset and try again
- SSPLOGGER_WRITEF(_L("SSP: Deleting slide %d"), iNextSlide);
- DeleteSlide(iNextSlide);
- iNextSlide--;
- continue; // can not load this image, go to the next one.
- }
- }
- else
- {
- // Slide is already decoded. This is cool, if the file is
- // still there. Otherwise lose image and go on.
- // should not come here as we dont any caching
- SSPLOGGER_WRITEF(_L("Slide %d already has image"), iNextSlide);
-
- if (!BaflUtils::FileExists(CEikonEnv::Static()->FsSession(),
- *(pSlide->FileName())))
- {
- SSPLOGGER_WRITE("Slide image file gone, dropping image");
- pSlide->ReleaseImage();
- continue; // continue with next image
- }
- else
- {
- if(iCurrentSlide != iNextSlide)
- {
- ReleaseCurrentSlide();
- }
- break;
- }
- }
- }
- }
- SSPLOGGER_WRITE("Model::PrepareNextSlide() end, model no longer busy");
- }
-
-
-//------------------------------------------------------------------------------
-// CSlideshowModel::ReleaseCurrentSlide
-//------------------------------------------------------------------------------
-//
-void CSlideshowModel::ReleaseCurrentSlide()
- {
- CSlideshowSlide* pSlide = SlideAt(iCurrentSlide);
- if(pSlide)
- {
- pSlide->ReleaseImage();
- }
- }
-
-
-//------------------------------------------------------------------------------
-// CSlideshowModel::ReleaseNextSlide
-//------------------------------------------------------------------------------
-//
-void CSlideshowModel::ReleaseNextSlide()
- {
- CSlideshowSlide* pSlide = SlideAt(iNextSlide);
- if(pSlide)
- {
- pSlide->ReleaseImage();
- }
- iNextSlide --;
- }
-
-
-//------------------------------------------------------------------------------
-// CSlideshowModel::SetReserveL
-//------------------------------------------------------------------------------
-//
-void CSlideshowModel::SetReserveL(TInt aCount)
- {
- if ((iSlides) && (aCount >= NumberOfSlides()))
- {
- iSlides->SetReserveL(aCount);
- }
- }
-
-//------------------------------------------------------------------------------
-// CSlideshowModel::SlideStatus
-//------------------------------------------------------------------------------
-//
-TInt CSlideshowModel::SlideStatus(CSlideshowSlide* aSlide)
- {
- if(!aSlide)
- {
- return KStatusNoSlide;
- }
- else if(aSlide->IsSlideDecoded())
- {
- return KStatusSlideDecoded;
- }
- else if(aSlide->IsDecodingInProgress())
- {
- return KStatusDecodingInProgress;
- }
- else if (aSlide->CouldNotDecodeFile())
- {
- return KStatusSlideDecodeingFailed;
- }
-
- return KStatusSlideNotDecoding;
- }
-
-
-
-//------------------------------------------------------------------------------
-// CSlideshowModel::Random
-//------------------------------------------------------------------------------
-//
-TInt CSlideshowModel::Random(TInt aMax, TInt aMin /* = 0 */)
- {
- TInt range = aMax - aMin;
- TInt rand = Math::Rand(iRandSeed);
- return (rand % range);
- }
-
-
-// End of File
--- a/scrsaver/scrsaverplugins/SlideshowPlugin/src/SlideshowPlugin.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1124 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: This file implements the Slideshow Screensaver plugin.
-*
-*/
-
-
-
-#include <eikenv.h>
-#include <bautils.h>
-#include <data_caging_path_literals.hrh>
-#include <centralrepository.h>
-#include <DRMHelper.h>
-
-// #include <aknnotewrappers.h> AppendSlideL
-// #include <aknnavi.h>
-// #include <aknnavide.h>
-// #include <mmfcontrollerpluginresolver.h>
-#include <DRMHelperServerInternalCRKeys.h>
-#include <mmf/common/mmfcontrollerpluginresolver.h> // For CleanupResetAndDestroyPushL
-#include <pslninternalcrkeys.h>
-#include <pslnslidesetdialoginterface.h>
-
-// #include <NPNExtensions.h>
-#include <coecntrl.h>
-#include <ecom/ecom.h>
-
-#include <ContentListingFactory.h>
-#include <mdeobjectdef.h>
-#include <mdelogiccondition.h>
-#include <mdenamespacedef.h>
-#include <mdeconstants.h>
-#include <mdeobjectquery.h>
-
-#include <slideshowplugin.rsg>
-
-#include "SlideshowPlugin.h"
-#include "SlideshowSlide.h"
-#include "SlideshowPluginUtils.h"
-
-// Constants
-const TInt KSecsToMicros = 1000000;
-const TUint KDefaultRandomLoadingNumber = 100;
-
-// Slideshow duration times (secs)
-const TInt KMinSlideshowTime = 1;
-const TInt KMaxSlideshowTime = 60;
-const TInt KDefaultSlideshowTime = 5;
-
-// Backlight times (secs)
-const TInt KMinLightsTime = 0;
-const TInt KMaxLightsTime = 30;
-const TInt KDefaultLightsTime = 0;
-
-// Slide times
-// const TInt KMinSlideTime = 1;
-// const TInt KMaxSlideTime = 30;
-const TInt KDefaultSlideTime = 5;
-
-// Refresh interval (Draw() call frequency) in secs.
-// For better resolution kept smaller than slide time
-const TInt KRefreshInterval = 1;
-
-// Slideshow type
-const TInt KSlideshowTypeContinuous = 0;
-const TInt KSlideshowTypeRandom = 1;
-
-// const TInt KScreensaverAnimPluginInterfaceUid = 0x102750CB;
-
-_LIT(KResourceFileName, "Z:SlideshowPlugin.rsc");
-
-
-CSlideshowSettings::CSlideshowSettings()
- {
- iSlideshowTime = KDefaultSlideshowTime;
- iLightsTime = KDefaultLightsTime;
- iSlideTime = KDefaultSlideTime;
- iSlideshowType = KSlideshowTypeContinuous;
- }
-
-// ============================ MEMBER FUNCTIONS =============================
-
-
-// ---------------------------------------------------------------------------
-// CSlideshowPlugin::NewL
-// ---------------------------------------------------------------------------
-//
-CSlideshowPlugin* CSlideshowPlugin::NewL()
- {
- CSlideshowPlugin* self = new (ELeave) CSlideshowPlugin;
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
- return self;
- }
-
-
-// ----------------------------------------------------------------------------
-// CSlideshowPlugin::~CSlideshowPlugin
-// ----------------------------------------------------------------------------
-//
-CSlideshowPlugin::~CSlideshowPlugin()
- {
- if (iResourceOffset != 0)
- {
- iEikEnv->DeleteResourceFile(iResourceOffset);
- }
-
- // Close and delete CR handlers
- NotifyCenrepChangeCancel();
- UnInitializeCenRep();
-
- // Close and delete P&S handlers
- if (iSettingsChangedSubscriber)
- {
- iSettingsChangedSubscriber->StopSubscribe();
- }
- iSettingsChangedProperty.Close();
- delete iSettingsChangedSubscriber;
-
- delete iScreensaverName;
- delete iSettings;
- delete iDrmHelper;
- delete iModel;
-
- // First model, then engine, otherwise bad things happen
- delete iMdESession;
-
- // Logging done
- SSPLOGGER_DELETE;
- }
-
-// -----------------------------------------------------------------------------
-// CSlideshowPlugin::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CSlideshowPlugin::ConstructL()
- {
- // Start logging
- SSPLOGGER_CREATE;
-
- iModel = CSlideshowModel::NewL();
- iSettings = new (ELeave) CSlideshowSettings();
-
- // Get nearest language resource file and add it to the
- // eikon environment for the duration of the plugin life
- TFileName fileName;
- TParse lParse;
-
- // Add the resource dir
- lParse.Set(KResourceFileName, &KDC_RESOURCE_FILES_DIR, NULL);
-
- // Get the filename with full path
- fileName = lParse.FullName();
-
- iEikEnv = CEikonEnv::Static();
-
- BaflUtils::NearestLanguageFile(iEikEnv->FsSession(), fileName);
-
- iResourceOffset = iEikEnv->AddResourceFileL(fileName);
-
- // Load localised name of screensaver to be returned
- // to Themes app in Name() query
- iScreensaverName = iEikEnv->AllocReadResourceL(R_SLIDESHOW_SCREENSAVER_NAME);
-
- InitializeCenRepL();
-
- // Read settings
- ReadSettings();
-
- iTimerUpdated = EFalse;
- }
-
-
-// -----------------------------------------------------------------------------
-// CSlideshowPlugin::CSlideshowPlugin
-// -----------------------------------------------------------------------------
-CSlideshowPlugin::CSlideshowPlugin()
- {
- }
-
-
-// --- MScreensaverPlugin ---
-
-
-// -----------------------------------------------------------------------------
-// CSlideshowPlugin::InitializeL
-// -----------------------------------------------------------------------------
-TInt CSlideshowPlugin::InitializeL(MScreensaverPluginHost *aHost)
- {
- SSPLOGGER_ENTERFN("InitializeL()");
-
- iWaitActive = EFalse;
- iDrawCount = 0;
-
- if (!aHost)
- {
- return KErrArgument;
- }
-
- iHost = aHost;
- // iHost->UseRefreshTimer( EFalse );
-
- NotifyCenrepChangeL();
-
- // No indicators while plugin running
- iHost->OverrideStandardIndicators();
-
- // Get display info
- UpdateDisplayInfo();
-
- // Attach and start watching settings changed key
- User::LeaveIfError(iSettingsChangedProperty.Attach(
- KPSUidScreenSaver, KScreenSaverPluginSettingsChanged));
-
- iSettingsChangedSubscriber = new (ELeave) CPSSubscriber(
- TCallBack(HandleSettingsChanged, this), iSettingsChangedProperty);
- iSettingsChangedSubscriber->SubscribeL();
-
- iDrmHelper = CDRMHelper::NewL(*iEikEnv);
-
- // Load slides on start rather than here
- // LoadSlidesL();
-
- SSPLOGGER_LEAVEFN("InitializeL()");
-
- return KErrNone;
- }
-
-
-// -----------------------------------------------------------------------------
-// CSlideshowPlugin::Draw
-// -----------------------------------------------------------------------------
-TInt CSlideshowPlugin::Draw(CWindowGc& aGc)
- {
- SSPLOGGER_ENTERFN("Draw()");
-
- // Clear the screen on the very first draw call after starting
- if (iDrawCount < 0)
- {
- iDrawCount = 0;
- aGc.SetBrushColor(KRgbBlack);
- aGc.Clear();
- }
-
- // If still waiting for CLF, bail out
- if (iWaitActive)
- {
- SSPLOGGER_WRITE("Draw(): Waiting for CLF, bail out");
- SSPLOGGER_LEAVEFN("Draw()");
- return KErrNone;
- }
- // Make sure we have something to display
- if (iModel->NumberOfSlides() == 0 && iIsLoadFinished )
- {
- iHost->RevertToDefaultSaver();
- SSPLOGGER_WRITE("Draw(): Nothing to display, suspending");
- SSPLOGGER_LEAVEFN("Draw()");
-// iHost->Suspend( -1 ); // This place will be crashed when transform to default type
- return KErrNone;
- }
-
- CSlideshowSlide* pSlide = iModel->NextSlide(EFalse);
- // get the status of the slide
- TInt status = iModel->SlideStatus(pSlide); // TInt decoded(1), decoding(2), not decoding(3),no slide (0)
- // 4 could not decode the slide
- if(KStatusDecodingInProgress == status)
- {
- // decoding in progress... return
- // when ever decoding is going on.. call draw method every 1 second to check the status of the decoding
- // and draw the image as soon as it is available ( otherwise Draw is called every 5 secods, very bad user responce)
- if(iTimerUpdated)
- {
- iHost->SetRefreshTimerValue(KSecsToMicros);
- iTimerUpdated = EFalse;
- }
- return KErrNone;
- }
- else if (KStatusSlideDecoded == status)
- {
- // File was decoded properly and available
- SSPLOGGER_WRITEF(_L("SSP: Draw(): Got slide (%x), drawing"), pSlide);
-
- // Consume slide's DRM rights
- SlideshowUtil::DRMConsume(iDrmHelper, pSlide);
-
- // Make sure the window is empty in case the bitmap doesn't
- // fill the whole screen. Draw background black
- aGc.SetBrushColor(KRgbBlack);
- // aGc.SetBrushStyle(CGraphicsContext::ESolidBrush);
- aGc.Clear();
- // Draw image centered
- DrawCentered(aGc, pSlide);
- if(iHost && !iTimerUpdated)
- {
- iHost->SetRefreshTimerValue(iSettings->iSlideTime * KSecsToMicros);
- iTimerUpdated = ETrue;
- }
- // Flush draw buffer so that the new image is displayed immediately
- FlushDrawBuffer();
- SSPLOGGER_WRITE("Draw(): Prepare next slide");
-
- SSPLOGGER_LEAVEFN("Draw()");
- }
-
- // Prefetch image for the next slide
- iModel->PrepareNextSlide(
- (iSettings->iSlideshowType == KSlideshowTypeRandom), iDi.iRect.Size());
-
- SSPLOGGER_LEAVEFN("Draw()");
-
- return KErrNone;
-
- }
-
-
-// -----------------------------------------------------------------------------
-// CSlideshowPlugin::Name
-// -----------------------------------------------------------------------------
-const TDesC16& CSlideshowPlugin::Name() const
- {
- if (iScreensaverName)
- {
- return *iScreensaverName;
- }
- else
- {
- return KNullDesC;
- }
- }
-
-
-// -----------------------------------------------------------------------------
-// CSlideshowPlugin::Capabilities
-// -----------------------------------------------------------------------------
-TInt CSlideshowPlugin::Capabilities()
- {
- return (EScpCapsConfigure | EScpCapsSelectionNotification);
- }
-
-
-// -----------------------------------------------------------------------------
-// CSlideshowPlugin::PluginFunction
-// -----------------------------------------------------------------------------
-TInt CSlideshowPlugin::PluginFunction(
- TScPluginCaps aFunction,
- TAny* aParam)
- {
- TInt ret = KErrNone;
-
- switch (aFunction)
- {
- case EScpCapsSelectionNotification:
- case EScpCapsPreviewNotification:
- // Peek into the slideset
- TRAP(ret, LoadSlidesL());
- if (ret!=KErrNone || iModel->NumberOfSlides() == 0)
- {
- SSPLOGGER_WRITE("No slides selected - launching settings");
- TRAP(ret, ConfigureL(aParam));
- // Check if at least one file is selected
- ReadSettings();// update the key value of KThemesScreenSaverSlideSetType
- TRAP(ret, LoadSlidesL());
- if ( ret == KErrNone && iModel->NumberOfSlides() == 0)
- {
- // Don't Pop an error note, just return error
- return KErrCancel;
- }
- }
- break;
- case EScpCapsConfigure:
- // Configure command
- TRAP(ret, ConfigureL(aParam));
- break;
- default:
- break;
- }
-
- return ret;
- }
-
-
-// -----------------------------------------------------------------------------
-// CSlideshowPlugin::HandleScreensaverEventL
-// -----------------------------------------------------------------------------
-TInt CSlideshowPlugin::HandleScreensaverEventL(
- TScreensaverEvent aEvent,
- TAny* /*aData*/ )
- {
- switch (aEvent)
- {
- case EScreensaverEventStopping:
- StopPlugin();
- break;
-
- case EScreensaverEventStarting:
- StartPlugin();
- break;
-
- case EScreensaverEventDisplayChanged:
- UpdateDisplayInfo();
- break;
-
- case EScreensaverEventTimeout:
- StopPlugin();
- iHost->Suspend(-1);
- break;
-
- default:
- break;
- }
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CSlideshowPlugin::ReadSettings
-// -----------------------------------------------------------------------------
-TInt CSlideshowPlugin::ReadSettings()
- {
-
- TInt err = KErrNone;
-
- err = iSlideshowRepository->Get(
- KThemesScreenSaverSlideSetDuration,
- iSettings->iSlideshowTime);
-
- if ((iSettings->iSlideshowTime < KMinSlideshowTime) ||
- (iSettings->iSlideshowTime > KMaxSlideshowTime))
- {
- // Out of range, set to default
- iSettings->iSlideshowTime = KDefaultSlideshowTime;
- }
-
- err = iSlideshowRepository->Get(
- KThemesScreenSaverSlideSetBacklight,
- iSettings->iLightsTime);
-
- if ((iSettings->iLightsTime < KMinLightsTime) ||
- (iSettings->iLightsTime > KMaxLightsTime))
- {
- // Out of range, set to default
- iSettings->iLightsTime = KDefaultLightsTime;
- }
-
- err = iSlideshowRepository->Get(
- KThemesScreenSaverSlideSetType,
- iSettings->iSlideshowType);
-
- // No setting for slide timing
- iSettings->iSlideTime = KDefaultSlideTime;
-
- return err;
- }
-
-#if 0
-
-// -----------------------------------------------------------------------------
-// CSlideshowPlugin::UpdateFileName
-// -----------------------------------------------------------------------------
-//
-TBool CSlideshowPlugin::UpdateFileName()
- {
- if ( !BaflUtils::FileExists( iEikEnv->FsSession(),
- iSettings->iFileName ) )
- {
- // File is deleted now, Show empty string
- iSettings->iFileName.Copy( KEmptyString );
- return ETrue;
- }
-
- TBool canbeautomated(EFalse);
-
- TInt res = 0;
- iDrmHelper->SetAutomatedType(
- CDRMHelper::EAutomatedTypeScreenSaver );
- res = iDrmHelper->CanSetAutomated( iSettings->iFileName,
- canbeautomated );
-
- if ( res || !canbeautomated)
- {
- iSettings->iFileName.Copy( KEmptyString );
- return ETrue;
- }
- return EFalse;
- }
-
-#endif
-
-// -----------------------------------------------------------------------------
-// CSlideshowPlugin::HandleRepositoryCallBack
-// -----------------------------------------------------------------------------
-//
-TInt CSlideshowPlugin::HandleRepositoryCallBack(TAny* aPtr)
- {
- STATIC_CAST(CSlideshowPlugin*, aPtr)->HandleCRSettingsChange(aPtr);
- return KErrNone;
- }
-
-
-// -----------------------------------------------------------------------------
-// CSlideshowPlugin::HandleCRSettingsChange
-// -----------------------------------------------------------------------------
-//
-void CSlideshowPlugin::HandleCRSettingsChange(TAny* /*aPtr*/)
- {
- if (iSlideshowCRWatcher)
- {
- TInt changedKey = iSlideshowCRWatcher->ChangedKey();
-
- switch (changedKey)
- {
- case KThemesScreenSaverSlideSetType:
- case KThemesScreenSaverSlideSetBacklight:
- case KThemesScreenSaverSlideSetDuration:
- // Update settings
- ReadSettings();
- break;
-
- default:
- // Not interested in other keys
- break;
- }
- }
- }
-
-
-// -----------------------------------------------------------------------------
-// CSlideshowPlugin::HandleSettingsChanged
-// -----------------------------------------------------------------------------
-//
-TInt CSlideshowPlugin::HandleSettingsChanged(TAny* aPtr)
- {
- return (STATIC_CAST(CSlideshowPlugin*, aPtr)->SettingsChanged());
- }
-
-
-// --- private functions ---
-
-
-// -----------------------------------------------------------------------------
-// CSlideshowPlugin::InitializeCenRepL
-// Connect Central Repository sessions
-// -----------------------------------------------------------------------------
-void CSlideshowPlugin::InitializeCenRepL()
- {
-
- TRAPD(err, iSlideshowRepository = CRepository::NewL(KCRUidThemes));
- User::LeaveIfError(err);
- }
-
-
-// -----------------------------------------------------------------------------
-// CSlideshowPlugin::NotifyCenrepChangeL
-// -----------------------------------------------------------------------------
-//
-void CSlideshowPlugin::NotifyCenrepChangeL()
- {
- iSlideshowCRWatcher = CRepositoryWatcher::NewL(
- KCRUidThemes,
- TCallBack(HandleRepositoryCallBack, this),
- iSlideshowRepository);
- }
-
-
-// -----------------------------------------------------------------------------
-// CSlideshowPlugin::NotifyCenrepChangeCancel
-// -----------------------------------------------------------------------------
-void CSlideshowPlugin::NotifyCenrepChangeCancel()
- {
- delete iSlideshowCRWatcher;
- iSlideshowCRWatcher = NULL;
- }
-
-
-// -----------------------------------------------------------------------------
-// CSlideshowPlugin::UnInitializeCenRep
-// -----------------------------------------------------------------------------
-void CSlideshowPlugin::UnInitializeCenRep()
- {
- if (iSlideshowRepository)
- {
- delete iSlideshowRepository;
- iSlideshowRepository = NULL;
- }
- }
-
-
-// Starts the saver when screensaver starts
-void CSlideshowPlugin::StartPlugin()
- {
- // Make sure we start from a clean slate
- iDrawCount = -1;
-
- // (Re-)load slideset. When done on every start this avoids
- // having to keep track of gallery changes and images on MMC.
- TRAP_IGNORE(LoadSlidesL());
-
- if (iModel->NumberOfSlides() == 0)
- {
- iHost->RevertToDefaultSaver();
- return;
- }
-
- iModel->PrepareNextSlide(
- (iSettings->iSlideshowType == KSlideshowTypeRandom),
- iDi.iRect.Size());
-
- if (iHost)
- {
- // Start animating as per settings
- iHost->RequestTimeout(iSettings->iSlideshowTime);
- Lights(iSettings->iLightsTime);
- // let the draw method be called every 1 second till first image is available
- iHost->SetRefreshTimerValue(KRefreshInterval * KSecsToMicros);
- SetDisplayMode();
- }
- }
-
-
-// Stops the plugin
-void CSlideshowPlugin::StopPlugin()
- {
- // Let go of pre-fetched images
- iModel->ReleaseNextSlide();
- iTimerUpdated = EFalse;
- }
-
-
-// Draws centered slides
-void CSlideshowPlugin::DrawCentered(CWindowGc& aGc, CSlideshowSlide* aSlide)
- {
- CFbsBitmap* bitmap = aSlide->Image();
-
- if (!bitmap)
- return;
-
- // Center the bitmap horizontally and vertically (crop off excess)
- TPoint pos;
- TRect rectToDraw;
- TSize sizeBmp = bitmap->SizeInPixels();
- TInt screenWidth = iDi.iRect.Width();
- TInt screenHeight = iDi.iRect.Height();
-
- // Horizontally
- if (sizeBmp.iWidth <= screenWidth)
- {
- // Width fits on screen - center xpos
- pos.iX = (screenWidth - sizeBmp.iWidth) / 2;
-
- // Whole width of bmp can be drawn
- rectToDraw.SetWidth(sizeBmp.iWidth);
- }
- else
- {
- // Bmp wider than screen - xpos top left
- pos.iX = 0;
-
- // Adjust draw rect position and width
- rectToDraw.iTl.iX = (sizeBmp.iWidth - screenWidth) / 2;
- rectToDraw.SetWidth(screenWidth);
- }
-
- // Vertically
- if (sizeBmp.iHeight <= screenHeight)
- {
- // Height fits on screen - center ypos
- pos.iY = (screenHeight - sizeBmp.iHeight) / 2;
-
- // Whole height of bmp can be drawn
- rectToDraw.SetHeight(sizeBmp.iHeight);
- }
- else
- {
- // Bmp higher than screen - ypos top left
- pos.iY = 0;
-
- // Adjust draw rect position and height
- rectToDraw.iTl.iY = (sizeBmp.iHeight - screenHeight) / 2;
- rectToDraw.SetHeight(screenHeight);
- }
-
- // Do the drawing
- aGc.BitBlt(pos, bitmap, rectToDraw);
- }
-
-
-// Loads the slides into the model
-void CSlideshowPlugin::LoadSlidesL()
- {
- SSPLOGGER_ENTERFN("LoadSlidesL()");
- iIsLoadFinished = EFalse;
- // Based on settings, load predefined set or random slides
- if (iSettings->iSlideshowType == KSlideshowTypeRandom)
- {
- LoadRandomSlidesL();
- }
- else
- {
- LoadSlideSetL();
- }
- iIsLoadFinished = ETrue;
- SSPLOGGER_LEAVEFN("LoadSlidesL()");
- }
-
-
-// Load filenames from settings file stored in skin server directory
-void CSlideshowPlugin::LoadSlideSetL()
- {
- SSPLOGGER_ENTERFN("LoadSlideSetL()");
-
- // Start by getting rid of possibly loaded slides
- iModel->DeleteAll();
-
- // Connect to skin server.
- RAknsSrvSession skinSrv;
- TInt error = skinSrv.Connect();
- User::LeaveIfError(error);
- CleanupClosePushL(skinSrv);
-
- // Open images file
- TInt fileSrvHandle;
- TInt fileHandle;
- fileSrvHandle = skinSrv.OpenImageInifile(EAknsSrvInifileSSSS, fileHandle);
-
- // Adopt the handle to our process
- RFile imgFile;
- error = imgFile.AdoptFromServer(fileSrvHandle, fileHandle);
- User::LeaveIfError(error);
- CleanupClosePushL(imgFile);
-
- // Read image filenames from file (as text)
- TFileText textFile;
- textFile.Set(imgFile);
- textFile.Seek(ESeekStart);
-
- // Read until EOF
- TInt count = 0;
- TFileName fileName;
- while (textFile.Read(fileName) == KErrNone)
- {
- // Check that the file exists. If not, it is still OK, if it is
- // on the memory card - it may show up later. Omit files from other
- // drives that do not exist at the time of loading
- TBool exists = BaflUtils::FileExists(iEikEnv->FsSession(), fileName);
- TBool isOnMC = SlideshowUtil::IsOnMC(fileName);
-
- if (!exists) // && (!isOnMC))
- {
- // Do not add nonexisting files // from other than memory card
- continue;
- }
-#if 0
- // Check that the file's DRM rights allow it to be displayed (if not
- // missing because not on MMC
- if (!SlideshowUtil::DRMCheck(fileName))
- {
- // No point in adding files that cannot be displayed anyway
- continue;
- }
-#endif
- // Create a slide with the filename and store it in the model
- CSlideshowSlide* pSlide = CSlideshowSlide::NewL(fileName, isOnMC);
- CleanupStack::PushL(pSlide);
- iModel->AppendSlideL(pSlide);
- CleanupStack::Pop(pSlide);
-
- SSPLOGGER_WRITEF(_L("SSP: Slide %d added, file: %S"), count, &fileName);
- count++;
- }
-
- CleanupStack::PopAndDestroy(2); // imgFile, skinSrv
-
- SSPLOGGER_LEAVEFN("LoadSlideSetL()");
- }
-
-
-// Load filenames from CLF
-void CSlideshowPlugin::LoadRandomSlidesL()
- {
- SSPLOGGER_ENTERFN("LoadRandomSlidesL()");
- // Start by getting rid of possibly loaded slides
- iModel->DeleteAll();
- // connect to MDS, load data or not
- ConnectToMDSSessionL();
-
- SSPLOGGER_LEAVEFN("LoadRandomSlidesL()");
- }
-
-
-// Requests display mode from host
-void CSlideshowPlugin::SetDisplayMode()
- {
- if (!iHost)
- {
- return;
- }
-
- // Exit partial mode
- iHost->ExitPartialMode();
- }
-
-
-// Requests lights
-void CSlideshowPlugin::Lights(TInt aSecs)
- {
- // Request nothing, if no time set (don't force lights off)
- if ((iHost) && (aSecs > 0))
- {
- SSPLOGGER_WRITEF(_L("SSP: Request lights for %d secs"), aSecs);
- iHost->RequestLights(aSecs);
- }
- }
-
-
-// Configure the plugin
-void CSlideshowPlugin::ConfigureL(TAny* /* aParam */)
- {
- // Look for screensaver slideset setting interface
- RImplInfoPtrArray array;
- const TUid slidesetInterface = { 0x102823AD };
- const TUid slidesetImplUidScreensaver = { 0x102823AF };
- const TEComResolverParams emptyParams;
-
- REComSession::ListImplementationsL(
- slidesetInterface,
- emptyParams,
- KRomOnlyResolverUid,
- array);
- CleanupResetAndDestroyPushL(array);
-
- // Loop through implementations and look for screensaver
- // slideset implementation (this is not really completely
- // necessary, because we already know the implementation UID,
- // but we want to be sure it's there, and on ROM only
- TInt nCount = array.Count();
- TUid implUid;
-
- for (TInt i = 0; i < nCount; i++)
- {
- CImplementationInformation* info = array[i];
-
- if (info->ImplementationUid() == slidesetImplUidScreensaver)
- {
- // Found
- implUid = info->ImplementationUid();
- break;
- }
- }
-
- // Did we get it?
- if (implUid != slidesetImplUidScreensaver)
- {
- User::Leave(KErrNotFound);
- }
-
- // Instantiate the interface
- CPslnSlidesetDialogInterface* plugin =
- CPslnSlidesetDialogInterface::NewL(implUid);
-
- TInt dlgRet = KErrNone;
- if (plugin)
- {
- dlgRet = plugin->ExecuteDialogLD();
- }
-
- // Cleanup
- array.ResetAndDestroy();
- CleanupStack::PopAndDestroy(); // array
-
- User::LeaveIfError(dlgRet);
- }
-
-
-// Updates the saved information about display
-void CSlideshowPlugin::UpdateDisplayInfo()
- {
- iDi.iSize = sizeof(TScreensaverDisplayInfo);
- iHost->DisplayInfo(&iDi);
- }
-
-
-// Flushes pending draws
-void CSlideshowPlugin::FlushDrawBuffer()
- {
- iEikEnv->WsSession().Flush();
- }
-
-
-// -----------------------------------------------------------------------------
-// CSlideshowPlugin::SettingsChanged
-// Called when Themes reports a settings change through P & S
-// -----------------------------------------------------------------------------
-TInt CSlideshowPlugin::SettingsChanged()
- {
- // If current key value is nonzero, it means the settings
- // have just changed, otherwise, no action necessary
- TInt value = 0;
- iSettingsChangedProperty.Get(value);
-
- if (value == EScreenSaverPluginSettingsChanged)
- {
-#if 0
- // Slide file has changed - re-load images
- TRAP_IGNORE(LoadSlidesL());
- // Pre-fetch the fist image to be drawn
- iModel->PrepareNextSlide(
- (iSettings->iSlideshowType == KSlideshowTypeRandom),
- iDi.iRect.Size());
-#endif
- iSettingsChangedProperty.Set(EScreenSaverPluginSettingsNoChange);
- }
-
- return KErrNone;
- }
-
-
-// -----------------------------------------------------------------------------
-// CSlideshowPlugin::ConnectToMDSSessionL
-// Connects to MDS Listing Framework. Can be called many times,
-// connects only once
-// -----------------------------------------------------------------------------
-void CSlideshowPlugin::ConnectToMDSSessionL()
- {
- if (!iMdESession)
- {
- iMdESession = CMdESession::NewL( *this );
- // Wait for query of MDS to complete before continuing
- WaitForMDS();
- }
- }
-
-// -----------------------------------------------------------------------------
-// CSlideshowPlugin::WaitForMDS
-// Begins wait for MDS session connected
-// -----------------------------------------------------------------------------
-void CSlideshowPlugin::WaitForMDS()
- {
- if (iWaitActive)
- {
- return;
- }
- else
- {
- iWaitActive = ETrue;
- iWaiter.Start();
- }
- }
-
-// -----------------------------------------------------------------------------
-// CSlideshowPlugin::WaitForMDS
-// Ends wait for MDS
-// -----------------------------------------------------------------------------
-void CSlideshowPlugin::EndWaitForMDS()
- {
- if (!iWaitActive)
- {
- return;
- }
- else
- {
- iWaiter.AsyncStop();
- iWaitActive = EFalse;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CSlideshowPlugin::HandleSessionOpened
-// Session is open successfully, then start a query for images
-// -----------------------------------------------------------------------------
-void CSlideshowPlugin::HandleSessionOpened(CMdESession& /*aSession*/, TInt aError)
- {
- if ( KErrNone != aError )
- {
- // Error occurred when opening session. iMdeSession must be deleted and new
- // session opened if we wish to use MdE.
- delete iMdESession;
- iMdESession = NULL;
- return;
- }
- // The session was opened successfully.
- TRAP(aError, OpenQueryL() );
- }
-
-// -----------------------------------------------------------------------------
-// CSlideshowPlugin::OpenQueryL
-// -----------------------------------------------------------------------------
-void CSlideshowPlugin::OpenQueryL()
- {
- CMdENamespaceDef& defaultNamespaceDef = iMdESession->GetDefaultNamespaceDefL();
- CMdEObjectDef& imageObjDef = defaultNamespaceDef.GetObjectDefL( MdeConstants::Image::KImageObject );
-
- // query objects with object definition "Image"
- CMdEObjectQuery* query = iMdESession->NewObjectQueryL( defaultNamespaceDef, imageObjDef, this );
-
- query->FindL( KDefaultRandomLoadingNumber );
- }
-
-// -----------------------------------------------------------------------------
-// CSlideshowPlugin::HandleSessionError
-// error happened when open the session, close session and end the waiting
-// -----------------------------------------------------------------------------
-void CSlideshowPlugin::HandleSessionError(CMdESession& /*aSession*/, TInt /*aError*/)
- {
- if ( iMdESession )
- {
- delete iMdESession;
- iMdESession = NULL;
- }
- // error happened when open the session, so end the waiting for MDS session.
- EndWaitForMDS();
- }
-
-// -----------------------------------------------------------------------------
-// CSlideshowPlugin::HandleQueryCompleted
-// query completed, load the images
-// -----------------------------------------------------------------------------
-void CSlideshowPlugin::HandleQueryCompleted(CMdEQuery& aQuery, TInt aError)
- {
- if ( aError == KErrNone )
- {
- LoadImagesToModel( aQuery );
- }
- EndWaitForMDS();
- }
-
-// -----------------------------------------------------------------------------
-// CSlideshowPlugin::HandleQueryCompleted
-// part of query completed, load the completed images
-// -----------------------------------------------------------------------------
-void CSlideshowPlugin::HandleQueryNewResults( CMdEQuery& aQuery,
- TInt aFirstNewItemIndex,
- TInt aNewItemCount)
- {
- LoadImagesToModel( aQuery, aFirstNewItemIndex, aNewItemCount );
- EndWaitForMDS();
- }
-
-// -----------------------------------------------------------------------------
-// CSlideshowPlugin::LoadImagesToModel
-// load the images when query is successfully
-// -----------------------------------------------------------------------------
-void CSlideshowPlugin::LoadImagesToModel(const CMdEQuery& aQuery,
- TInt aFirstNewItemIndex,
- TInt aNewItemCount)
- {
- CMdEObjectQuery& query= ( CMdEObjectQuery& ) aQuery;
- // query is completed
- if( aQuery.Count() > 0 )
- {
- // some items were found!
- // Loop through, add filenames
- TInt startIndex = aFirstNewItemIndex;
- TInt nItem = aNewItemCount;
- if ( aFirstNewItemIndex == 0 && aFirstNewItemIndex == aNewItemCount )
- {
- startIndex = 0;
- nItem = aQuery.Count();
- }
- TInt count = 0;
- for ( ; startIndex < nItem; startIndex++)
- {
- // TFileName fileName;
- TBufC<256> fileName;
-
- const CMdEObject& obj = query.Result(startIndex);
- fileName = obj.Uri();
-
- // Check that the file exists. If not, it is still OK, if it is
- // on the memory card - it may show up later. Omit files from other
- // drives that do not exist at the time of loading
- // TODO: Can be removed, as slides are loaded on every start
- TBool exists = BaflUtils::FileExists(iEikEnv->FsSession(), fileName);
- TBool isOnMC = SlideshowUtil::IsOnMC(fileName);
-
- if (!exists) // && (!isOnMC))
- {
- // Do not add nonexisting files from other than memory card
- continue;
- }
-#if 0
- // Check that the file's DRM rights allow it to be displayed (if not
- // missing because not on MMC
- if (!SlideshowUtil::DRMCheck(fileName))
- {
- // No point in adding files that cannot be displayed anyway
- continue;
- }
-#endif
- // Create a slide with the filename and store it in the model
- TRAPD(err, AppendSlideToModelL( fileName, isOnMC ) );
- if ( KErrNone != err )
- {
- // appending error, go on to append next slide
- continue;
- }
- SSPLOGGER_WRITEF(_L("SSP: Slide %d added, file: %S"), count, &fileName);
- count++;
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CSlideshowPlugin::AppendSlideToModelL
-// Add slide to model
-// -----------------------------------------------------------------------------
-void CSlideshowPlugin::AppendSlideToModelL(TDesC& aFileName, TBool aIsOnMC)
- {
- CSlideshowSlide* pSlide = CSlideshowSlide::NewL(aFileName, aIsOnMC);
- CleanupStack::PushL(pSlide);
- iModel->AppendSlideL(pSlide);
- CleanupStack::Pop(pSlide);
- }
-// End Of file.
--- a/scrsaver/scrsaverplugins/SlideshowPlugin/src/SlideshowPluginProxy.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: ECOM implementation array.
-*
-*/
-
-
-
-
-
-
-// INCLUDE FILES
-#include <e32std.h>
-#include <ecom/implementationinformation.h>
-#include <ecom/implementationproxy.h>
-#include <coecntrl.h>
-#include "SlideshowPluginImpUID.hrh"
-#include "SlideshowPlugin.h"
-
-// CONSTANTS
-const TImplementationProxy ImplementationTable[] =
- {
- IMPLEMENTATION_PROXY_ENTRY(KSlideshowPluginImpUID,
- CSlideshowPlugin::NewL)
- };
-
-// ========================== OTHER EXPORTED FUNCTIONS =========================
-
-// -----------------------------------------------------------------------------
-// ImplementationProxy
-// ECOM implementation table entry.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
- {
- aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
-
- return ImplementationTable;
- }
-
-// End of File
-
--- a/scrsaver/scrsaverplugins/SlideshowPlugin/src/SlideshowPluginUtils.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,327 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: SlideshowPlugin utility classes and functions
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <centralrepository.h>
-#include <f32fsys.h>
-#include <eikenv.h>
-#include <pathinfo.h>
-#include <DRMHelper.h>
-#include <caf/caftypes.h>
-
-#include "SlideshowPluginUtils.h"
-
-_LIT(KSSPDriveLetterMC, "E");
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// Repository watcher
-
-// ---------------------------------------------------------------------------
-// CRepositoryWatcher::NewL
-// ---------------------------------------------------------------------------
-//
-CRepositoryWatcher* CRepositoryWatcher::NewL(
- const TUid aUid,
- const TUint32 aKey,
- CCenRepNotifyHandler::TCenRepKeyType aKeyType,
- TCallBack aCallBack,
- CRepository* aRepository)
- {
- CRepositoryWatcher* self = new(ELeave)
- CRepositoryWatcher(aUid, aKey, aCallBack, aRepository);
-
- CleanupStack::PushL(self);
- self->ConstructL(aKeyType);
- CleanupStack::Pop(self);
-
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CRepositoryWatcher::NewL
-// ---------------------------------------------------------------------------
-//
-CRepositoryWatcher* CRepositoryWatcher::NewL(
- const TUid aUid,
- TCallBack aCallBack,
- CRepository* aRepository)
- {
- CRepositoryWatcher* self = new(ELeave) CRepositoryWatcher(
- aUid, NCentralRepositoryConstants::KInvalidNotificationId, aCallBack, aRepository);
-
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
-
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CRepositoryWatcher::~CRepositoryWatcher
-// ---------------------------------------------------------------------------
-//
-CRepositoryWatcher::~CRepositoryWatcher()
- {
- if ( iNotifyHandler )
- {
- iNotifyHandler->StopListening();
- delete iNotifyHandler;
- }
- }
-
-// ---------------------------------------------------------------------------
-// CRepositoryWatcher::CRepositoryWatcher
-// ---------------------------------------------------------------------------
-//
-CRepositoryWatcher::CRepositoryWatcher(
- const TUid aUid,
- const TUint32 aKey,
- TCallBack aCallBack,
- CRepository* aRepository)
- :
- iUid(aUid), iKey(aKey), iCallBack(aCallBack), iRepository(aRepository)
- {
- }
-
-// ---------------------------------------------------------------------------
-// CRepositoryWatcher::ConstructL
-// ---------------------------------------------------------------------------
-//
-void CRepositoryWatcher::ConstructL(CCenRepNotifyHandler::TCenRepKeyType aKeyType)
- {
- iNotifyHandler = CCenRepNotifyHandler::NewL(*this, *iRepository, aKeyType, iKey);
- iNotifyHandler->StartListeningL();
- }
-
-// ---------------------------------------------------------------------------
-// CRepositoryWatcher::ConstructL
-// ---------------------------------------------------------------------------
-//
-void CRepositoryWatcher::ConstructL()
- {
- iNotifyHandler = CCenRepNotifyHandler::NewL(*this, *iRepository);
- iNotifyHandler->StartListeningL();
- }
-
-// ---------------------------------------------------------------------------
-// CRepositoryWatcher::ChangedKey
-// ---------------------------------------------------------------------------
-//
-TUint32 CRepositoryWatcher::ChangedKey()
- {
- return iChangedKey;
- }
-
-// ---------------------------------------------------------------------------
-// CRepositoryWatcher::HandleNotifyInt
-// ---------------------------------------------------------------------------
-//
-void CRepositoryWatcher::HandleNotifyInt(
- TUint32 aKey, TInt /*aNewValue*/ )
- {
- iChangedKey = aKey;
- iCallBack.CallBack();
- iChangedKey = NCentralRepositoryConstants::KInvalidNotificationId;
- }
-
-// ---------------------------------------------------------------------------
-// CRepositoryWatcher::HandleNotifyString
-// ---------------------------------------------------------------------------
-//
-void CRepositoryWatcher::HandleNotifyString( TUint32 aKey,
- const TDesC16& /*aNewValue*/ )
- {
- iChangedKey = aKey;
- iCallBack.CallBack();
- iChangedKey = NCentralRepositoryConstants::KInvalidNotificationId;
- }
-
-// ---------------------------------------------------------------------------
-// CRepositoryWatcher::HandleNotifyGeneric
-// ---------------------------------------------------------------------------
-//
-void CRepositoryWatcher::HandleNotifyGeneric(TUint32 aKey)
- {
- iChangedKey = aKey;
- iCallBack.CallBack();
- iChangedKey = NCentralRepositoryConstants::KInvalidNotificationId;
- }
-
-// ---------------------------------------------------------------------------
-// CRepositoryWatcher::HandleNotifyError
-// ---------------------------------------------------------------------------
-//
-void CRepositoryWatcher::HandleNotifyError(TUint32 /*aKey*/, TInt /*aError*/, CCenRepNotifyHandler* /*aHandler*/)
- {
- }
-
-
-// P & S subscriber
-
-// ---------------------------------------------------------------------------
-// CPSSubscriber::CPSSubscriber
-// ---------------------------------------------------------------------------
-//
-CPSSubscriber::CPSSubscriber(TCallBack aCallBack, RProperty& aProperty)
- : CActive(EPriorityNormal), iCallBack(aCallBack), iProperty(aProperty)
- {
- CActiveScheduler::Add(this);
- }
-
-// ---------------------------------------------------------------------------
-// CPSSubscriber::~CPSSubscriber
-// ---------------------------------------------------------------------------
-//
-CPSSubscriber::~CPSSubscriber()
- {
- Cancel();
- }
-
-// ---------------------------------------------------------------------------
-// CPSSubscriber::SubscribeL
-// ---------------------------------------------------------------------------
-//
-void CPSSubscriber::SubscribeL()
- {
- if (!IsActive())
- {
- iProperty.Subscribe(iStatus);
- SetActive();
- }
- }
-
-// ---------------------------------------------------------------------------
-// CPSSubscriber::StopSubscribe
-// ---------------------------------------------------------------------------
-//
-void CPSSubscriber::StopSubscribe()
- {
- Cancel();
- }
-
-// ---------------------------------------------------------------------------
-// CPSSubscriber::RunL
-// ---------------------------------------------------------------------------
-//
-void CPSSubscriber::RunL()
- {
- if (iStatus.Int() == KErrNone)
- {
- iCallBack.CallBack();
- SubscribeL();
- }
- }
-
-// ---------------------------------------------------------------------------
-// CPSSubscriber::DoCancel
-// ---------------------------------------------------------------------------
-//
-void CPSSubscriber::DoCancel()
- {
- iProperty.Cancel();
- }
-
-
-
-// ========== UTILITIES CLASS ===============================
-
-// Checks if memory card is present
-TBool SlideshowUtil::IsMCPresent()
- {
- RFs& fs = CCoeEnv::Static()->FsSession();
-
- TInt error = KErrNone;
- TDriveInfo driveInfo;
- TInt res = 0;
- TInt err = fs.CharToDrive(PathInfo::MemoryCardRootPath()[0], res);
- error = fs.Drive(driveInfo, res );
-
- // Not present, locked or unknown is bad
- if ((error != KErrNone) ||
- (driveInfo.iMediaAtt & KMediaAttLocked) ||
- (driveInfo.iType == EMediaNotPresent) ||
- (driveInfo.iType == EMediaUnknown))
- {
- return EFalse;
- }
-
- // Read-only is fine
- return ETrue;
- }
-
-
-// Checks if the given file is on memory card
-TBool SlideshowUtil::IsOnMC(TFileName aFile)
- {
- // Grab drive letter from path and compare to memory card drive letter
- TBuf<1> driveLetterBuf;
- driveLetterBuf.CopyUC(aFile.Left(1));
-
- if (driveLetterBuf.Compare(KSSPDriveLetterMC) == 0)
- {
- return ETrue;
- }
-
- return EFalse;
- }
-
-
-// Checks that the file has enough DRM rights to be displayed
-TBool SlideshowUtil::DRMCheck(CDRMHelper *aDRMHelper, TDesC& /* aFileName */)
- {
- if (!aDRMHelper)
- {
- return EFalse;
- }
-
- return ETrue;
- }
-
-
-// Checks that the slide has enough DRM rights to be displayed
-TBool SlideshowUtil::DRMCheck(CDRMHelper *aDRMHelper, CSlideshowSlide* aSlide)
- {
- if (!aDRMHelper || !aSlide)
- {
- return EFalse;
- }
-
- return (DRMCheck(aDRMHelper, *(aSlide->FileName())));
- }
-
-
-// Consumes the slide's DRM rights
-void SlideshowUtil::DRMConsume(CDRMHelper* aDRMHelper, CSlideshowSlide* aSlide)
- {
- if (!aDRMHelper || !aSlide)
- {
- return;
- }
-
- aDRMHelper->ConsumeFile2(*(aSlide->FileName()),
- ContentAccess::EView,
- CDRMHelper::EStart);
- aDRMHelper->ConsumeFile2(*(aSlide->FileName()),
- ContentAccess::EView,
- CDRMHelper::EFinish);
- }
-
-
-// End of File
--- a/scrsaver/scrsaverplugins/SlideshowPlugin/src/SlideshowSlide.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,123 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Stores a single slide
-*
-*/
-
-
-
-
-
-// INCLUDES
-#include "SlideshowSlide.h"
-#include "SlideshowSlideLoader.h"
-#include "SlideshowPluginUtils.h"
-
-// Creator
-CSlideshowSlide* CSlideshowSlide::NewL(TDesC& aFileName, TBool aIsOnMC)
- {
- CSlideshowSlide* self = new (ELeave) CSlideshowSlide(aIsOnMC);
- CleanupStack::PushL(self);
- self->ConstructL(aFileName);
- CleanupStack::Pop(self);
- return self;
- }
-
-// Destructor
-CSlideshowSlide::~CSlideshowSlide()
- {
- ReleaseImage();
- delete iSlideLoader;
- delete iFileName;
- }
-
-
-// Default C'tor
-CSlideshowSlide::CSlideshowSlide(TBool aIsOnMC)
- : iFlags(SSS_NONE)
- {
- if (aIsOnMC)
- {
- iFlags |= SSS_ISONMC;
- }
- }
-
-// is decoding in progress
-TBool CSlideshowSlide::IsDecodingInProgress()
- {
- if(iSlideLoader->IsActive())
- {
- return ETrue;
- }
- return EFalse;
- }
-// Could not decode the file
-TBool CSlideshowSlide::CouldNotDecodeFile()
- {
- if (iFlags & SSS_DECODEFAILED)
- {
- return ETrue;
- }
- return EFalse;
- }
-// Two-phase constructor
-void CSlideshowSlide::ConstructL(TDesC& aFileName)
- {
- // Allocate space for the filename and save it
- iFileName = HBufC::NewL(aFileName.Length());
- *iFileName = aFileName;
- iSlideLoader = CSlideshowSlideLoader::NewL(this);
- }
-// Prepares the slide (loads image)
-void CSlideshowSlide::PrepareSlideL(const TSize& aTargetSize)
- {
- if (iFlags & SSS_IMAGELOADED)
- {
- return;
- }
- if( iSlideLoader->IsActive())
- {
- // slide is being decoded ... should wait .. dont call LoadSlideL here
- // should not come here..
- return;
- }
- iSlideLoader->LoadSlideL(*iFileName, aTargetSize);
- }
-
-// Is slide decoded completely
-TBool CSlideshowSlide::IsSlideDecoded()
- {
- if (iFlags & SSS_IMAGELOADED)
- {
- return ETrue;
- }
- return EFalse;
- }
-// Releases the slide's image
-void CSlideshowSlide::ReleaseImage()
- {
- // if decoding is in progress... at any cost dont delete the image before Canceling the decoding
- if(IsDecodingInProgress())
- {
- iSlideLoader->Cancel();
- }
- else if(iImage )
- {
- delete iImage;
- iImage = NULL;
- }
- //image deleted, revert back to not decoded state
- iFlags &= ~(SSS_IMAGELOADED);
- }
-// End of File
--- a/scrsaver/scrsaverplugins/SlideshowPlugin/src/SlideshowSlideLoader.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,286 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Loads a slide from file
-*
-*/
-
-
-
-// INCLUDES
-#include "SlideshowPluginUtils.h"
-#include "SlideshowSlideLoader.h"
-
-// ---------------------------------------------------------------------------
-// DivAndRoundUp
-// ---------------------------------------------------------------------------
-//
-TInt DivAndRoundUp(const TInt aNumber, const TInt aDivider)
- {
- TInt result = aNumber / aDivider;
-
- if (aNumber % aDivider)
- {
- result += 1;
- }
-
- return result;
- }
-
-// ---------------------------------------------------------------------------
-// CSlideshowSlideLoader::NewL
-// ---------------------------------------------------------------------------
-//
-CSlideshowSlideLoader* CSlideshowSlideLoader::NewL(CSlideshowSlide *aSlide)
- {
- CSlideshowSlideLoader * self = new (ELeave)CSlideshowSlideLoader(aSlide);
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CSlideshowSlideLoader::ConstructL
-// ---------------------------------------------------------------------------
-//
-void CSlideshowSlideLoader::ConstructL()
- {
- // Add this object to active scheduler
- CActiveScheduler::Add(this);
- }
-
-// ---------------------------------------------------------------------------
-// CSlideshowSlideLoader::CSlideshowSlideLoader
-// ---------------------------------------------------------------------------
-//
-CSlideshowSlideLoader::CSlideshowSlideLoader(CSlideshowSlide *aSlide)
- : CActive(CActive::EPriorityStandard),iSlide(aSlide)
- {
- // Empty
- }
-
-// ---------------------------------------------------------------------------
-// CSlideshowSlideLoader::~CSlideshowSlideLoader
-// ---------------------------------------------------------------------------
-//
-CSlideshowSlideLoader::~CSlideshowSlideLoader()
- {
- if(IsActive())
- {
- Cancel();
- }
-
- }
-
-// ---------------------------------------------------------------------------
-// CSlideshowSlideLoader::DeleteDecoder
-// ---------------------------------------------------------------------------
-//
-void CSlideshowSlideLoader::DeleteDecoder()
- {
- if(iDecoder)
- {
- delete iDecoder;
- iDecoder = NULL;
- }
-
- }
-
-// ---------------------------------------------------------------------------
-// CSlideshowSlideLoader::DoCancel
-// ---------------------------------------------------------------------------
-//
-void CSlideshowSlideLoader::DoCancel()
- {
- iDecoder->Cancel();
- DeleteDecoder();
- // delete the image
- if(iSlide->iImage)
- {
- delete iSlide->iImage;
- iSlide->iImage = NULL;
- }
- }
-
-// ---------------------------------------------------------------------------
-// CSlideshowSlideLoader::RunL
-// ---------------------------------------------------------------------------
-//
-void CSlideshowSlideLoader::RunL()
- {
- // delete the decoder to save some memory.
- DeleteDecoder();
- if(iStatus != KErrNone)
- {
- iSlide->ReleaseImage();
- // SSS_DECODEFAILED says that Image could not be decoded. Corrupted image.
- (iSlide->iFlags) |= SSS_DECODEFAILED;
- return;
- }
-
- // Image loaded, size scaled down while loading. Find out, if the
- // image still needs to be scaled smaller to fit the screen
-
- TReal aspectRatio = (TReal) iBitmapsize.iWidth / (TReal) iBitmapsize.iHeight;
-
- if ((iBitmapsize.iWidth <= iTargetSize.iWidth) &&
- (iBitmapsize.iHeight <= iTargetSize.iHeight))
- {
- // Fits completely - finish
- SSPLOGGER_WRITE("No resize needed");
-
- // Compress the heap after imageconversion as
- // imagedecoder seems to leave heap uncompressed
- User::Heap().Compress();
- (iSlide->iFlags) |= SSS_IMAGELOADED;
- return;
- }
-
- // Figure out which dimension needs most scaling
- TReal xFactor = (TReal) iTargetSize.iWidth / (TReal) iBitmapsize.iWidth;
- TReal yFactor = (TReal) iTargetSize.iHeight / (TReal) iBitmapsize.iHeight;
-
- // Start with target (screen) size
- TSize finalSize = iTargetSize;
-
- if (xFactor <= yFactor)
- {
- // X-dimension needs most scaling - fit to x, re-calc y
- finalSize.iHeight = (TInt) ((TReal) finalSize.iWidth / aspectRatio);
- }
- else
- {
- // Y-dimension needs most scaling - fit to y, re-calc x
- finalSize.iWidth = (TInt) ((TReal) finalSize.iHeight * aspectRatio);
- }
-
- SSPLOGGER_WRITEF(_L("SSP: Final size (%d, %d)"),
- finalSize.iWidth, finalSize.iHeight);
-
- // Create a final bitmap with the final size, and draw to it
- CFbsBitmap* finalBmp = new (ELeave) CFbsBitmap;
- CleanupStack::PushL(finalBmp);
- User::LeaveIfError(finalBmp->Create(finalSize, (iSlide->iImage)->DisplayMode()));
-
- CFbsBitmapDevice* bmpDev = CFbsBitmapDevice::NewL(finalBmp);
- CleanupStack::PushL(bmpDev);
-
- CFbsBitGc* bmpCxt;
- User::LeaveIfError(bmpDev->CreateContext(bmpCxt));
- CleanupStack::PushL(bmpCxt);
- bmpCxt->DrawBitmap(TRect(0, 0, finalSize.iWidth, finalSize.iHeight),
- (iSlide->iImage),
- TRect(0, 0, iBitmapsize.iWidth, iBitmapsize.iHeight));
-
- CleanupStack::PopAndDestroy(2); // bmpDev, bmpCxt
- // Return the result in the original bitmap parameter
- (iSlide->iImage)->Reset();
-
- User::LeaveIfError((iSlide->iImage)->Duplicate(finalBmp->Handle()));
- CleanupStack::PopAndDestroy(finalBmp);
- // Compress the heap after imageconversion as
- // imagedecoder seems to leave heap uncompressed
- User::Heap().Compress();
- (iSlide->iFlags) |= SSS_IMAGELOADED;
- return;
- }
-
-// ---------------------------------------------------------------------------
-// CSlideshowSlideLoader::LoadSlideL
-// ---------------------------------------------------------------------------
-//
-void CSlideshowSlideLoader::LoadSlideL(
- const TDesC& aFilename, const TSize& aTargetSize)
- {
-
- iTargetSize = aTargetSize;
- RFs filesys;
- User::LeaveIfError(filesys.Connect());
- CleanupClosePushL(filesys);
- // this line can leave if decoder is not found..need to cacth this.
- iDecoder = CImageDecoder::FileNewL(filesys, aFilename, ContentAccess::EView,CImageDecoder::EOptionAlwaysThread);
- if (aTargetSize == TSize(-1,-1))
- {
- CleanupStack::PopAndDestroy(&filesys);
- iDecoder = NULL;
- return;
- }
-
- // Get image information
- TFrameInfo frameinfo = iDecoder->FrameInfo();
- TDisplayMode mode;
-
- // Tone down colors if possible (saves memory)
- if (frameinfo.iFlags & TFrameInfo::ECanDither)
- {
- mode = EColor64K;
- }
- else
- {
- mode = frameinfo.iFrameDisplayMode;
- }
-
- // Find out if the image can be downscaled during loading
- iBitmapsize = frameinfo.iOverallSizeInPixels;
-
-
- if ((iBitmapsize.iWidth >= aTargetSize.iWidth * 2) &&
- (iBitmapsize.iHeight >= aTargetSize.iHeight * 2))
- {
- // 1/2 size
- iBitmapsize.iWidth = DivAndRoundUp(frameinfo.iOverallSizeInPixels.iWidth, 2);
- iBitmapsize.iHeight = DivAndRoundUp(frameinfo.iOverallSizeInPixels.iHeight, 2);
-
- if ((iBitmapsize.iWidth >= aTargetSize.iWidth * 2) &&
- (iBitmapsize.iHeight >= aTargetSize.iHeight * 2))
- {
- // 1/4 size
- iBitmapsize.iWidth = DivAndRoundUp(frameinfo.iOverallSizeInPixels.iWidth, 4);
- iBitmapsize.iHeight = DivAndRoundUp(frameinfo.iOverallSizeInPixels.iHeight, 4);
-
- if ((iBitmapsize.iWidth >= aTargetSize.iWidth * 2) &&
- (iBitmapsize.iHeight >= aTargetSize.iHeight * 2))
- {
- // 1/8 size
- iBitmapsize.iWidth = DivAndRoundUp(frameinfo.iOverallSizeInPixels.iWidth, 8);
- iBitmapsize.iHeight = DivAndRoundUp(frameinfo.iOverallSizeInPixels.iHeight, 8);
- }
- }
- }
-
- // Create a target bitmap
- iSlide->iImage = new (ELeave) CFbsBitmap;
- User::LeaveIfError((iSlide->iImage)->Create(iBitmapsize, mode));
- // for filesys
- CleanupStack::PopAndDestroy(&filesys);
-
- //Start decoding the image ...
- // RunL method is called when decoding is done.
- iDecoder->Convert(&iStatus, *(iSlide->iImage),0);
- SetActive();
- }
-
-// ---------------------------------------------------------------------------
-// CSlideshowSlideLoader::RunError
-// ---------------------------------------------------------------------------
-//
-TInt CSlideshowSlideLoader::RunError(TInt aError)
- {
- if (NULL != iSlide->iImage)
- {
- delete iSlide->iImage;
- iSlide->iImage = NULL;
- }
- return aError;
- }
--- a/scrsaver/scrsaverplugins/group/bld.inf Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Build information file for all plugins
-*
-*/
-
-
-
-
-#include "../BmpAnimScrPlugin/group/bld.inf"
-#include "../ScreenSaverAnimPlugin/group/bld.inf"
-#include "../ScreenSaverGifAnimPlugin/group/bld.inf"
-#include "../SlideshowPlugin/group/bld.inf"
--- a/src/Screensaver.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +0,0 @@
-/*
-* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Document and application class file for screensaver app.
-*
-*/
-
-
-
-#include <eikstart.h>
-#include "screensaver.hrh"
-#include "screensaver.h"
-#include "screensaverappui.h"
-
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverDocument::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverDocument::ConstructL()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverDocument::CScreensaverDocument
-// -----------------------------------------------------------------------------
-//
-CScreensaverDocument::CScreensaverDocument(CEikApplication& aApp): CAknDocument(aApp)
- {
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverDocument::~CScreensaverDocument
-// -----------------------------------------------------------------------------
-//
-CScreensaverDocument::~CScreensaverDocument()
- {
-
- }
-
-//
-// CScreensaverEikDocument
-//
-
-// -----------------------------------------------------------------------------
-// CScreensaverDocument::CreateAppUiL
-// -----------------------------------------------------------------------------
-//
-CEikAppUi* CScreensaverDocument::CreateAppUiL()
- {
- return ( new (ELeave) CScreensaverAppUi );
- }
-
-
-//
-// CScreensaverApplication
-//
-// -----------------------------------------------------------------------------
-// CScreensaverApplication::CreateDocumentL
-// -----------------------------------------------------------------------------
-//
-CApaDocument* CScreensaverApplication::CreateDocumentL()
- {
- CScreensaverDocument* document=new(ELeave) CScreensaverDocument(*this);
- // No need to do ConstructL for document since it is empty.
- return(document);
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverApplication::AppDllUid
-// -----------------------------------------------------------------------------
-//
-TUid CScreensaverApplication::AppDllUid() const
- {
- return KUidScreensaverApp;
- }
-
-
-//
-// EXPORTed functions
-//
-LOCAL_C CApaApplication* NewApplication()
- {
- return new CScreensaverApplication;
- }
-
-
-GLDEF_C TInt E32Main()
- {
- return EikStart::RunApplication(NewApplication);
- }
-
-
-// End of file.
--- a/src/screensaver.rss Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,405 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Screensaver resource file.
-*
-*/
-
-
-
-
-
-NAME SCRE
-
-#include <eikon.rh>
-#include <avkon.rh>
-#include <avkon.mbg>
-#include <avkon.hrh>
-#include <avkon.rsg>
-#include <aknsconstants.hrh>
-
-#include "screensaver.hrh"
-
-RESOURCE RSS_SIGNATURE { }
-
-RESOURCE TBUF
- {
- buf= "";
- }
-
-RESOURCE EIK_APP_INFO
- {
- status_pane = r_status_pane;
- }
-
-RESOURCE STATUS_PANE_APP_MODEL r_status_pane
- {
- layout= R_AVKON_STATUS_PANE_LAYOUT_EMPTY;
- }
-
-
-STRUCT SCREENSAVER_COLOR_MODEL
- {
- LONG color_depth; // Highest color model supported in partial mode.
- WORD colors[8]; // This array is for defining colors for 3-bit mode.
- LONG dark_gradient[6]; // Darker shades for gradient effect (in high color mode).
- LONG light_gradient[6]; // Lighter shades for gradient effect (in high color mode).
- }
-
-
-RESOURCE SCREENSAVER_COLOR_MODEL r_screensaver_color_model
- {
- color_depth = ESsColorModel3BitMode;
- colors =
- {
- 210,
- 35,
- 23,
- 185,
- 105,
- 95,
- 159,
- 221
- };
- dark_gradient =
- {
- 0x993300,
- 0x990033,
- 0x680069,
- 0x003bce,
- 0x225904,
- 0x090273
- };
- light_gradient =
- {
- 0xfbb100,
- 0xfd9597,
- 0xfe00cb,
- 0x00c8fe,
- 0x33fa95,
- 0xa843fd
- };
- }
-
-
-//
-// This struct contains various rendering parameters for screensaver
-// indicator bar. Do not change the order of fields in this struct.
-//
-STRUCT SCREENSAVER_PARAMETERS_ARRAY
- {
- WORD KIndicatorMargin; // Minimum indicator distance to left and right border.
- WORD KIndicatorGap; // How many pixels between indicators.
- WORD KIndicatorTopMargin; // Distance from top border of indicator bar to top border of indicator icon.
- WORD KIndicatorTextLevel;
- LONG KBackGroundColor; // Background color in TRgb format.
- WORD KHeight; // Height of the indicator bar.
- }
-
-
-RESOURCE SCREENSAVER_PARAMETERS_ARRAY r_screensaver_parameters
- {
- KIndicatorMargin = 5;
- KIndicatorGap = 4;
- KIndicatorTopMargin = 2;
- KIndicatorTextLevel = 17;
- KBackGroundColor = 0x00c8c8c8;
- KHeight = 14;
- }
-
-
-//
-// Numeric indicator. Displays number over bitmap background.
-// there can be separate background bitmap for each number of digits
-// displayed. 'Icons' array has following format:
-// icons =
-// {
-// // Backround bitmap for one digit case
-// EMbmAvkonQgn_background_for_one_digit_case,
-// // Mask for one digit case.
-// EMbmAvkonQgn_mask_for_one_digit_case,
-// // X position of numeric value inside of bitmap (value is an example).
-// 23,
-// // Y position of numeric value inside of bitmap.
-// 17,
-// // Two digit case starts here...
-// EMbmAvkonQgn_background_for_two_digit_case,
-// EMbmAvkonQgn_mask_for_two_digit_case,
-// 22,
-// 15
-// // ... and so on for each number of digits.
-// };
-// This indicator type is not currently used in standard 2.x screensaver.
-//
-STRUCT SCRN_NUMERIC_INDICTOR
- {
- LONG type = ESsNumericIndicator;
- WORD id;
- WORD priority = ESsDrawTypeNotDrawn;
- WORD align;
- LONG icons[];
- }
-
-
-//
-// Icon indicator. Displays bitmap and mask (if specified).
-//
-STRUCT SCRN_ICON_INDICATOR
- {
- LONG type = ESsIconIndicator;
- WORD id;
- WORD priority = ESsDrawTypeNotDrawn;
- WORD align;
- LONG icon[4]; // Bmp id, mask id, skinned bmp id, skinned bmp mask id
- }
-
-
-//
-// Text indicator. Displays text without background bitmap.
-//
-STRUCT SCRN_TEXT_INDICATOR
- {
- LONG type = ESsTextIndicator;
- WORD id;
- WORD priority = ESsDrawTypeNotDrawn;
- WORD align;
- LONG font_id = ELatinPlain12;
- }
-
-
-//
-// Number & Icon indicator. Displays numeric information with
-// icon. Number is displayed on left or right side of the
-// icon (depending on icon_align), not over the icon like with
-// numeric indicator.
-//
-STRUCT SCRN_NUMBER_AND_ICON_INDICATOR
- {
- LONG type = ESsNumberAndIconIndicator;
- WORD id;
- WORD priority = ESsDrawTypeNotDrawn;
- WORD align;
- LONG icon_align;
- LONG font_id = ELatinPlain12;
- LONG icon[4]; // Bmp id, mask id, skinned bmp id, skinned bmp mask id
- }
-
-
-//
-// The screensaver indicator array. Defines indicators for
-// indicator bar in default screensaver view.
-// The order of indicators in this array specifies the order
-// of indicators on screen.
-//
-RESOURCE ARRAY r_screensaver_indicator_array
- {
- items =
- {
- SCRN_ICON_INDICATOR // Voicemail indicator
- {
- id = ESsVoicemailInd;
- align = ESsAlignRight;
- priority = ESsDrawTypePrimary;
- icon =
- {
- EMbmAvkonQgn_stat_vm0_uni,
- EMbmAvkonQgn_stat_vm0_uni,
- EAknsMinorGenericQgnStatVm0Uni,
- EAknsMinorGenericQgnStatVm0Uni
- };
- },
- SCRN_ICON_INDICATOR // E-mail indicator
- {
- id = ESsMailInd;
- align = ESsAlignRight;
- priority = ESsDrawTypePrimary;
- icon =
- {
- EMbmAvkonQgn_stat_message_mail_uni,
- EMbmAvkonQgn_stat_message_mail_uni,
- EAknsMinorGenericQgnStatMessageMailUni,
- EAknsMinorGenericQgnStatMessageMailUni
- };
- },
- SCRN_ICON_INDICATOR // Instant messaging indicator.
- {
- id = ESsImInd;
- align = ESsAlignRight;
- priority = ESsDrawTypePrimary;
- icon =
- {
- EMbmAvkonQgn_stat_im_uni,
- EMbmAvkonQgn_stat_im_uni,
- EAknsMinorGenericQgnStatImUni,
- EAknsMinorGenericQgnStatImUni
- };
- },
- SCRN_NUMBER_AND_ICON_INDICATOR // Unread messages indicator.
- {
- id = ESsNewMessagesInd;
- align = ESsAlignRight;
- priority = ESsDrawTypePrimary;
- icon_align = ESsAlignRight;
- icon =
- {
- EMbmAvkonQgn_stat_message_ps,
- EMbmAvkonQgn_stat_message_ps,
- EAknsMinorGenericQgnStatMessagePs,
- EAknsMinorGenericQgnStatMessagePs
- };
- },
- SCRN_NUMBER_AND_ICON_INDICATOR // Missed calls indicator.
- {
- id = ESsMissedCallsInd;
- align = ESsAlignRight;
- priority = ESsDrawTypePrimary;
- icon_align = ESsAlignRight;
- icon =
- {
- EMbmAvkonQgn_stat_missed_call_ps,
- EMbmAvkonQgn_stat_missed_call_ps,
- EAknsMinorGenericQgnStatMissedCallPs,
- EAknsMinorGenericQgnStatMissedCallPs
- };
- },
- SCRN_TEXT_INDICATOR // Profile name indicator.
- {
- id = ESsProfileInd;
- align = ESsAlignLeft;
- priority = ESsDrawTypeSecondary;
- },
- SCRN_ICON_INDICATOR // Keyguard indicator.
- {
- id = ESsKeyLockInd;
- align = ESsAlignLeft;
- priority = ESsDrawTypeSecondary;
- icon =
- {
- EMbmAvkonQgn_stat_keyguard,
- EMbmAvkonQgn_stat_keyguard,
- EAknsMinorGenericQgnStatKeyguard,
- EAknsMinorGenericQgnStatKeyguard
- };
- }
- };
- }
-
-
-//
-// The screensaver indicator array. Defines indicators for
-// indicator bar in default screensaver view.
-// The order of indicators in this array specifies the order
-// of indicators on screen.
-RESOURCE ARRAY r_screensaver_indicator_array_new_layout
- {
- items =
- {
- SCRN_TEXT_INDICATOR // Am/Pm indicator.
- {
- id = ESsAmPmInd;
- align = ESsAlignRight;
- priority = ESsDrawTypePrimary;
- },
- SCRN_TEXT_INDICATOR // Profile name indicator.
- {
- id = ESsProfileInd;
- align = ESsAlignLeft;
- priority = ESsDrawTypeSecondary;
- },
- SCRN_ICON_INDICATOR // Voicemail indicator
- {
- id = ESsVoicemailInd;
- align = ESsAlignLeft;
- priority = ESsDrawTypeSecondary;
- icon =
- {
- EMbmAvkonQgn_stat_vm0_uni,
- EMbmAvkonQgn_stat_vm0_uni,
- EAknsMinorGenericQgnStatVm0Uni,
- EAknsMinorGenericQgnStatVm0Uni
- };
- },
- SCRN_ICON_INDICATOR // E-mail indicator
- {
- id = ESsMailInd;
- align = ESsAlignLeft;
- priority = ESsDrawTypeSecondary;
- icon =
- {
- EMbmAvkonQgn_stat_message_mail_uni,
- EMbmAvkonQgn_stat_message_mail_uni,
- EAknsMinorGenericQgnStatMessageMailUni,
- EAknsMinorGenericQgnStatMessageMailUni
- };
- },
- SCRN_ICON_INDICATOR // Instant messaging indicator.
- {
- id = ESsImInd;
- align = ESsAlignLeft;
- priority = ESsDrawTypeSecondary;
- icon =
- {
- EMbmAvkonQgn_stat_im_uni,
- EMbmAvkonQgn_stat_im_uni,
- EAknsMinorGenericQgnStatImUni,
- EAknsMinorGenericQgnStatImUni
- };
- },
- SCRN_NUMBER_AND_ICON_INDICATOR // Unread messages indicator.
- {
- id = ESsNewMessagesInd;
- align = ESsAlignLeft;
- priority = ESsDrawTypePrimary;
- icon_align = ESsAlignRight;
- icon =
- {
- EMbmAvkonQgn_stat_message_uni, //ps,
- EMbmAvkonQgn_stat_message_uni, //ps,
- EAknsMinorGenericQgnStatMessageUni,
- EAknsMinorGenericQgnStatMessageUni
- };
- },
- SCRN_NUMBER_AND_ICON_INDICATOR // Missed calls indicator.
- {
- id = ESsMissedCallsInd;
- align = ESsAlignLeft;
- priority = ESsDrawTypePrimary;
- icon_align = ESsAlignRight;
- icon =
- {
- EMbmAvkonQgn_stat_missed_calls_uni, //_ps,
- EMbmAvkonQgn_stat_missed_calls_uni, //_ps,
- EAknsMinorGenericQgnStatMissedCallsUni,
- EAknsMinorGenericQgnStatMissedCallsUni
- };
- },
- SCRN_ICON_INDICATOR // Keyguard indicator.
- {
- id = ESsKeyLockInd;
- align = ESsAlignLeft;
- priority = ESsDrawTypePrimary;
- icon =
- {
- EMbmAvkonQgn_stat_keyguard,
- EMbmAvkonQgn_stat_keyguard,
- EAknsMinorGenericQgnStatKeyguard,
- EAknsMinorGenericQgnStatKeyguard
- };
- }
- };
- }
-
-// 01:20, 1:20, 13:05, 1:05 // separators are locale dependent
-RESOURCE TBUF r_screensaver_time_usual_without_ampm { buf = "%J%:1%T"; }
-
-// End of file.
--- a/src/screensaveractivitymanager.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,131 +0,0 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// CScreensaverActivityManager class
-//
-//
-
-#include "screensaveractivitymanager.h"
-
-CScreensaverActivityManager* CScreensaverActivityManager::NewL(TInt aPriority)
- {
- CScreensaverActivityManager* self = new (ELeave) CScreensaverActivityManager(aPriority);
- CleanupStack::PushL(self);
- self->ConstructL();
- CActiveScheduler::Add(self);
- CleanupStack::Pop(self);
- return self;
- }
-
-CScreensaverActivityManager::CScreensaverActivityManager(TInt aPriority)
- : CTimer(aPriority), iInactiveCallback(0,0), iActiveCallback(0,0), iState(EStNotActive)
- {
- }
-
-
-CScreensaverActivityManager::~CScreensaverActivityManager()
- {
- }
-
-
-void CScreensaverActivityManager::Start(TTimeIntervalSeconds aInterval,
- TCallBack aInactiveCallback, TCallBack aActiveCallback)
- {
- iInterval = aInterval;
- iInactiveCallback = aInactiveCallback;
- iActiveCallback = aActiveCallback;
-
- if (iInterval.Int() < 0)
- {
- iInterval = TTimeIntervalSeconds(0);
- }
-
- // Cancel outstanding timer, if any
- CTimer::Cancel();
-
- if (iState == EStNotActive || iState == EStMonForInactivity)
- {
- // Begin or contine monitoring for user inactivity
- MonitorInactivity();
- }
- else
- {
- // Continue monitoring for user activity
- Inactivity(0);
- }
- }
-
-
-void CScreensaverActivityManager::SetInactivityTimeout(TTimeIntervalSeconds aInterval)
- {
- if (iState <= EStNotActive)
- {
- }
- Start(aInterval, iInactiveCallback, iActiveCallback);
- }
-
-
-void CScreensaverActivityManager::MonitorInactivity()
- {
- if (User::InactivityTime() >= iInterval)
- {
- // Already inactive enough, monitor for activity
- iState = EStMonForActivity;
- // Monitor for activity, set timer before callback to avoid missing any
- // user activity should callback take some time.
- Inactivity(0);
- // Inform client that the inactivity interval has ended.
- (void) iInactiveCallback.CallBack();
- }
- else
- {
- // Monitor for Inactivity
- iState = EStMonForInactivity;
- Inactivity(iInterval);
- }
- }
-
-
-void CScreensaverActivityManager::RunL()
- {
- if (iStatus == KErrNone)
- {
- if (iState == EStMonForInactivity)
- {
- // Looking for Inactivity, found it
- // Monitor for activity, set timer before callback to avoid missing
- // any user activity should callback take some time.
- iState = EStMonForActivity;
- Inactivity(0);
- // Inform client that the inactivity interval has ended.
- (void) iInactiveCallback.CallBack();
- }
- else if (iState == EStMonForActivity)
- {
- // Looking for activity, found it
- // Monitor for activity unless MonitorInactivity overrides it
- iState = EStMonForInactivity;
- MonitorInactivity();
- (void) iActiveCallback.CallBack();
- }
- else
- { // Must never happen, indicates internal state of object incorrect.
-
- }
- }
- }
-
-TBool CScreensaverActivityManager::IsMonitoringForActivity()
- {
- return ( iState == EStMonForActivity );
- }
--- a/src/screensaverappui.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,217 +0,0 @@
-/*
-* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: The AppUi file for screensaver application.
-*
-*/
-
-
-
-#include <eikenv.h>
-
-#include "screensavershareddatai.h"
-#include "screensaverappui.h"
-#include "screensaverengine.h"
-
-//
-// CScreensaverAppUi
-//
-// -----------------------------------------------------------------------------
-// CScreensaverAppUi::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverAppUi::ConstructL()
- {
- SCRLOGGER_WRITEF(_L("SCR:CScreensaverAppUi::ConstructL start") );
- SCRLOGGER_CREATE;
-
- // Choose orientation based on screensaverconfig
-#if defined(SS_ALWAYSPORTRAIT)
- BaseConstructL(EAppOrientationPortrait);
-
-#elif defined(SS_ALWAYSLANDSCAPE)
- BaseConstructL(EAppOrientationLandscape);
-
-#else
-
- // Not specified - follows device setting
- BaseConstructL();
-#endif
-
- SetKeyEventFlags( CAknAppUiBase::EDisableSendKeyShort | CAknAppUiBase::EDisableSendKeyLong );
-
- iModel = CScreensaverEngine::NewL();
-
- CreateViewL();
-
- iEikonEnv->SetSystem( ETrue );
- HideApplicationFromFSW();
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverAppUi::~CScreensaverAppUi
-// -----------------------------------------------------------------------------
-//
-CScreensaverAppUi::~CScreensaverAppUi()
- {
-
- delete iModel;
- iModel = NULL;
-
- SCRLOGGER_DELETE;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverAppUi::Model
-// -----------------------------------------------------------------------------
-//
-CScreensaverEngine& CScreensaverAppUi::Model() const
- {
- return *iModel;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverAppUi::HandleCommandL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverAppUi::HandleCommandL( TInt aCommand )
- {
- switch ( aCommand )
- {
- case EEikCmdExit:
- Exit();
- break;
- default:
- break;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverAppUi::GetView
-// -----------------------------------------------------------------------------
-//
-CScreensaverView* CScreensaverAppUi::ScreensaverView()
- {
- return iView;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverAppUi::CreateViewL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverAppUi::CreateViewL()
- {
- SCRLOGGER_WRITEF(_L("SCR:CScreensaverAppUi::CreateViewL start") );
- iView = CScreensaverView::NewL();
-
- AddViewL( iView ); // transfer ownership to CAknViewAppUi
-
- SetDefaultViewL( *iView );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverAppUi::HandleKeyEventL
-// -----------------------------------------------------------------------------
-//
-TKeyResponse CScreensaverAppUi::HandleKeyEventL( const TKeyEvent& aKeyEvent,
- TEventCode aType )
- {
- SCRLOGGER_WRITEF(_L("SCR:CScreensaverAppUi::HandleKeyEventL start") );
- // Stop on keyup instead of keydown, otherwise the underlying
- // app might get orphaned key up events and soil its pants. EXCEPT
- // in preview mode stop on keydown, because the keup from starting
- // the preview might be received here, and preview stopped before
- // it even properly started
- TBool stop = EFalse;
-
- if ( !iView )
- {
- return EKeyWasConsumed;
- }
-
- if ( aType == EEventKey && aKeyEvent.iCode == EKeyNo )
- {
- stop = ETrue;
- }
- else
- {
- if ( iModel->ScreenSaverIsPreviewing() )
- {
- if ( aType == EEventKeyDown )
- {
- stop = ETrue;
- }
- }
- else
- {
- if ( aType == EEventKeyUp &&
- !iModel->SharedDataInterface()->IsKeyguardOn() )
- {
- stop = ETrue;
- }
- }
- }
-
- if ( stop )
- {
- iModel->StopScreenSaver();
- }
-
- return EKeyWasConsumed;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverAppUi::HandleScreenDeviceChangedL
-// Stops screensaver as soon as screen device changes. Resourcechange
-// about e.g. resulting layout change comes annoyingly late
-// -----------------------------------------------------------------------------
-//
-void CScreensaverAppUi::HandleScreenDeviceChangedL()
- {
-#if defined(SS_FASTSTOPONSCREENDEVICECHANGE)
- // Slightly faster stop when screendevice changes. Instead of
- // letting the created user activity stop, do it here.
- // NOTE that if forced orientation is not used and there is an
- // application that changes screen orientation for itself (e.g.
- // viewfinder), screensaver will die here when activated if fast
- // stop is used.
-#if !defined(SS_ALWAYSPORTRAIT) && !defined(SS_ALWAYSLANDSCAPE)
- // Do not stop, if forced orientation is used!
- // Screensaver may cause a screen device change when activated,
- // and will promptly commit suicide here
- iModel->StopScreenSaver();
-#endif
-#endif
-
- CAknViewAppUi::HandleScreenDeviceChangedL();
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverAppUi::HandleWsEventL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverAppUi::HandleWsEventL( const TWsEvent& aEvent,
- CCoeControl* aDestination )
- {
- SCRLOGGER_WRITEF(_L("SCR:CScreensaverAppUi::HandleWsEventL start") );
- // First, let parent class handle the event
- CAknViewAppUi::HandleWsEventL( aEvent, aDestination );
-
- // In case of a pointer event, also stop screensaver
- if ( aEvent.Type() == EEventPointer )
- {
- iModel->StopScreenSaver();
- }
- }
-
-//End of file
--- a/src/screensaverbase.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,339 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: The control base class of display object.
-*
-*/
-
-
-
-#include <coecntrl.h>
-#include <power_save_display_mode.h>
-
-#include "screensaverbase.h"
-#include "screensaverview.h"
-#include "screensaverappui.h"
-#include "ScreensaverUtils.h"
-#include "screensavershareddatai.h"
-#include "screensaverutility.h"
-
-const TInt KRefreshRate = 60000000; // 60 sec
-
-
-// Time delayed before a wserv heartbeat stop request is issued.
-// Delay is needed, because draw commands may still be handled, if
-// stop request is issued right after screen refresh.
-#ifdef RD_UI_TRANSITION_EFFECTS_PHASE2
-const TInt KCaptureDelay = 2000000; // 2.0 sec, used to delay the capturing operation
-#else
-const TInt KCaptureDelay = 100000; // 0.1 sec
-#endif
-
-// -----------------------------------------------------------------------------
-// CScreensaverBase::CScreensaverBase
-// -----------------------------------------------------------------------------
-//
-CScreensaverBase::CScreensaverBase()
- {
-
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverBase::~CScreensaverBase
-// -----------------------------------------------------------------------------
-//
-CScreensaverBase::~CScreensaverBase()
- {
- DeleteTimer( iCaptureScreenTimer );
-
- delete iPowerSaveDisplayMode;
-
- delete iOffScrnBmp;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverBase::StartDrawObject
-// -----------------------------------------------------------------------------
-//
-void CScreensaverBase::StartDrawObject()
- {
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverBase::StartDrawObject start") );
- StartTimer();
-
- DrawObject();
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverBase::StopDrawObject
-// -----------------------------------------------------------------------------
-//
-void CScreensaverBase::StopDrawObject()
- {
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverBase::StopDrawObject start") );
- if ( LcdPartialMode() && LcdPartialMode()->Status() )
- {
- SCRLOGGER_WRITE("Model: StopScreenSaver(), exit power save");
- LcdPartialMode()->Exit();
- }
-
- CancelTimer();
-
- ClearScreen();
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverBase::DrawObject
-// -----------------------------------------------------------------------------
-//
-void CScreensaverBase::DrawObject()
- {
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverBase::DrawObject start") );
- SetRect( Rect() );
-
- DrawNow();
-
- StartCaptureScreenTimer();
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverBase::View
-// -----------------------------------------------------------------------------
-//
-CScreensaverView* CScreensaverBase::View() const
- {
- return STATIC_CAST( CScreensaverAppUi*, CCoeEnv::Static()->AppUi() )->ScreensaverView();
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverBase::Model
-// -----------------------------------------------------------------------------
-//
-const CScreensaverEngine& CScreensaverBase::Model() const
- {
- return STATIC_CAST( CScreensaverAppUi*, CCoeEnv::Static()->AppUi() )->Model();
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverBase::Array
-// -----------------------------------------------------------------------------
-//
-CScreensaverIndicatorArray& CScreensaverBase::Array() const
- {
- return Model().IndicatorArray();
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverBase::SetPowerSaveDisplayActiveArea
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverBase::SetPowerSaveDisplayActiveArea( TRect& aRect )
- {
- // Save the requested area
- iPowerSaveDisplayActiveArea = aRect;
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverBase::ActivatePowerSaveDisplay
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverBase::ActivatePowerSaveDisplay( TBool aFullColors ) const
- {
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverBase::ActivatePowerSaveDisplay start") );
- TInt err = KErrNone;
-
- if ( ( Model().ScreenSaverIsOn()
- && ( !iPowerSaveDisplayActiveArea.IsEmpty() ) ) )
- {
- TInt startLine = 0;
- TInt endLine = 0;
-
- // Normal mode - using saver bar height
- startLine = iPowerSaveDisplayActiveArea.iTl.iY;
- endLine = iPowerSaveDisplayActiveArea.iBr.iY;
-
- SCRLOGGER_WRITEF( _L("SCR: Powersave supports %d lines"),
- LcdPartialMode()->MaxLines() );
-
- // Check whether power save mode should be used
- // When local variation added, PS will override if local says
- // yes, but PS says no
- if ( Model().SharedDataInterface()->IsUsePowerSaveMode() )
- {
- SCRLOGGER_WRITEF( _L("SCR: Requesting powersave, lines: %d, %d"),
- startLine, endLine );
- TUint16* addr = ( TUint16* )iOffScrnBmp->DataAddress();
- err = LcdPartialMode()->Set( startLine, endLine, addr, aFullColors );
-
- Model().SharedDataInterface()->SetSSForcedLightsOn( 0 );
- }
- else
- {
- SCRLOGGER_WRITE("Power save mode not in use, not requested");
- err = KErrCancel;
- }
- }
- else
- {
- // Screensaver not on - cannot set power save mode on
- err = KErrNotReady;
- }
-
- return err;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverBase::DrawPictographArea
-// -----------------------------------------------------------------------------
-//
-void CScreensaverBase::DrawPictographArea()
- {
- // Currently animation is not supported - do nothing
- }
-
-// ----------------------------------------------------------------------------
-// CScreensaverBase::StartCaptureScreenTimer
-// -----------------------------------------------------------------------------
-//
-void CScreensaverBase::StartCaptureScreenTimer()
- {
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverBase::StartCaptureScreenTimer start") );
- DeleteTimer( iCaptureScreenTimer );
-
- TRAP_IGNORE( iCaptureScreenTimer = CPeriodic::NewL( CActive::EPriorityStandard ) );
-
- iCaptureScreenTimer->Start( KCaptureDelay , KCaptureDelay ,
- TCallBack( HandleCaptureTimerExpiry, this ) );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverBase::InitialRefreshRate
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverBase::InitialRefreshRate()
- {
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverBase::InitialRefreshRate start") );
- TTime homeTime, timeTmp;
- TTimeIntervalSeconds interval;
- TInt initialRefresh = KRefreshRate;
- homeTime.HomeTime();
- timeTmp = homeTime;
- timeTmp.RoundUpToNextMinute();
- if ( timeTmp.SecondsFrom( homeTime, interval ) == KErrNone )
- {
- initialRefresh = interval.Int() * 1000000;
- }
-
- return initialRefresh;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverBase::DeleteTimer
-// -----------------------------------------------------------------------------
-//
-void CScreensaverBase::DeleteTimer( CPeriodic*& aTimer )
- {
- if ( aTimer )
- {
- aTimer->Cancel();
- delete aTimer;
- aTimer = NULL;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverBase::ConstructAndConnectLCDL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverBase::ConstructAndConnectLCDL()
- {
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverBase::ConstructAndConnectLCD start") );
- // User side handle object is created
- TRAPD( err, iPowerSaveDisplayMode = CPowerSaveDisplayMode::NewL() );
- if ( ( err != KErrNone ) || ( !iPowerSaveDisplayMode ) )
- {
- SCRLOGGER_WRITEF( _L("SCR: Model: No power save mode (err = %d)"), err );
- }
-
- iOffScrnBmp = new ( ELeave ) CFbsBitmap;
- User::LeaveIfError( iOffScrnBmp->Create( Size(), EColor64K ) );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverBase::LcdPartialMode
-// -----------------------------------------------------------------------------
-//
-CPowerSaveDisplayMode* CScreensaverBase::LcdPartialMode() const
- {
- return iPowerSaveDisplayMode;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverBase::HandleRefreshTimerExpiry
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverBase::HandleRefreshTimerExpiry( TAny* aPtr )
- {
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverBase::HandleRefreshTimerExpiry start") );
- CScreensaverBase* control = STATIC_CAST(CScreensaverBase*, aPtr);
-
- SCRLOGGER_WRITEF( _L("SCR: Inside CScreensaverView::HandleRefreshTimerExpiry()") );
-
- control->DrawObject();
-
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverBase::HandleCaptureTimerExpiry
-// Handles capture screen timer timeout
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverBase::HandleCaptureTimerExpiry( TAny* aPtr )
- {
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverBase::HandleCaptureTimerExpiry start") );
- CScreensaverBase *control= STATIC_CAST( CScreensaverBase*, aPtr );
-
- SCRLOGGER_WRITEF( _L("SCR: Inside CScreensaverView::HandleWsHbStopTimerTimeout()") );
-
- if ( control )
- {
- TInt err = control->CaptureScreen();
- control->DeleteTimer( control->iCaptureScreenTimer );
- ScreensaverUtility::StopWServHeartBeat();
-
-#ifdef RD_UI_TRANSITION_EFFECTS_PHASE2
-
- if ( KErrNone == err )
- {
- control->ActivatePowerSaveDisplay();
- }
-
-#endif
- }
-
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverBase::CaptureScreen
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverBase::CaptureScreen()
- {
- CWsScreenDevice* device = iCoeEnv->ScreenDevice();
- TInt err = device->CopyScreenToBitmap( iOffScrnBmp, iPowerSaveDisplayActiveArea );
- return err;
- }
-
-//End of file
--- a/src/screensaverctrlmovingtext.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,598 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Implementation of screensaver moving text display class.
-*
-*/
-
-#ifdef USE_DATE_AND_TEXT
-
-#include <e32def.h>
-#include <eikdef.h>
-#include <AknUtils.h>
-#include <e32math.h>
-#include <aknlayoutscalable_avkon.cdl.h>
-#include <screensaver.rsg>
-
-#include "screensaverappui.h"
-#include "screensavershareddatai.h"
-#include "ScreensaverUtils.h"
-#include "screensaverutility.h"
-#include "screensaverctrlmovingtext.h"
-
-const TInt KInvertedColors = 1;
-
-//The color for text and background
-const TInt KInvertedBgColor = 215;
-const TInt KInvertedTextColor = 0;
-const TInt KInvertedTextBgColor = 215;
-
-const TInt KBgColor = 0;
-const TInt KTextColor = 215;
-const TInt KTextBgColor = 210;
-
-// the minimum top value
-const TInt KMinTop = 4;
-
-const TInt KRefreshRate = 60000000; // 60 sec
-//
-// Class CScreensaverCtrlMovingText
-//
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlMovingText::NewL
-// -----------------------------------------------------------------------------
-//
-CScreensaverCtrlMovingText* CScreensaverCtrlMovingText::NewL( TDisplayObjectType aType )
- {
- CScreensaverCtrlMovingText* obj = new( ELeave ) CScreensaverCtrlMovingText( aType );
- CleanupStack::PushL( obj );
- obj->ConstructL();
- CleanupStack::Pop();
- return obj;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlMovingText::~CScreensaverCtrlMovingText
-// -----------------------------------------------------------------------------
-//
-CScreensaverCtrlMovingText::~CScreensaverCtrlMovingText()
- {
- iEikonEnv->RemoveFromStack( this );
-
- DeleteTimer( iBarRefreshTimer );
- DeleteTimer( iCaptureScreenTimer );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlMovingText::HandleResourceChange
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlMovingText::HandleResourceChange( TInt aType )
- {
- if ( aType == KEikDynamicLayoutVariantSwitch )//&& iType != EDisplayNone)
- {
- // Screen layout has changed - resize
- SetRect( iCoeEnv->ScreenDevice()->SizeInPixels() );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlMovingText::SizeChanged
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlMovingText::SizeChanged()
- {
- GenerateDisplayAttributesForScreensaverBar();
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlMovingText::Draw
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlMovingText::Draw( const TRect& aRect ) const
- {
- if ( !Model().ScreenSaverIsOn() && !Model().ScreenSaverIsPreviewing() )
- {
- return;
- }
-
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::Draw, screensaver is on or previewing") );
- // Graphics context to draw on.
- CWindowGc& gc = SystemGc();
-
- // Fix for error ESMG-74Y4PE - S60 3.2 wk26, Power Saver:
- // Flickering when power saver is deactivated.
- // We now clear the screen with a black brush so the screensaver
- // background is changed to black. There will no longer be a white
- // intermediate screen and this will reduce the "flicker" effect.
- gc.SetBrushColor( KRgbBlack );
-
- // Start with a clear screen
- gc.Clear( aRect );
- // If there is no plugin module, indicator view overrides plugin module or
- // plugin drawing is suspended then the standard screensaver bar is shown,
- // let's draw it.
-
- DrawNew( gc, aRect );
-
- // Activate power save display mode after draw, so that
- // the image is already in screen buffer
- ScreensaverUtility::FlushDrawBuffer();
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::Draw, draw finished") );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlMovingText::SetMoving
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlMovingText::SetMoving( TBool aMove )
- {
- iMoveBar = aMove;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlMovingText::StartTimer
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlMovingText::StartTimer()
- {
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::StartTimer start") );
- Model().SharedDataInterface()->SetSSForcedLightsOn( ESSForceLightsOn );
-
- StartCaptureScreenTimer();
-
- StartBarRefreshTimer();
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::StartTimer finish") );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlMovingText::CancelTimer
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlMovingText::CancelTimer()
- {
- DeleteTimer( iBarRefreshTimer );
- DeleteTimer( iCaptureScreenTimer );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlMovingText::ClearScreen
-// Date & time saver
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlMovingText::ClearScreen()
- {
-
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlMovingText::Refresh
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlMovingText::Refresh()
- {
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::Refresh start") );
- // Currently only keylock indicator is updated, because
- // thats the only indicator whose state may change while screensaver
- // is displaying. Other indicators' state changing also dismisses
- // screensaver. Once redisplaying, the indicators are updated anyway.
- // Key lock indicator depends on status of key guard.
- TIndicatorPayload payload;
- payload.iType = EPayloadTypeInteger;
-
- Array().SetDependencyStatus( ESsKeyLockInd, !Model().SharedDataInterface()->IsKeyguardOn() );
- payload.iInteger = Model().SharedDataInterface()->UnreadMessagesNumber();
- Array().SetIndicatorPayload( ESsNewMessagesInd, payload );
- Array().SetDependencyStatus( ESsNewMessagesInd, ( payload.iInteger <= 0 ) );
- Array().SetDependencyStatus( ESsVoicemailInd, !Model().SharedDataInterface()->IsHaveNewVoicemail() );
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::Refresh move") );
- // Don't move bar during this refresh
- SetMoving( EFalse );
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::Refresh DrawObject") );
- // Cause a redraw
- DrawObject();
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::Refresh move") );
- // Allow moving
- SetMoving();
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::Refresh finish") );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlMovingText::CScreensaverCtrlMovingText
-// Date & time saver
-// -----------------------------------------------------------------------------
-//
-CScreensaverCtrlMovingText::CScreensaverCtrlMovingText( TDisplayObjectType aType )
- :iType( aType )
- {
- // No implementation required
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlMovingText::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlMovingText::ConstructL()
- {
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::ConstructL start") );
-
- if ( iType == EDisplayText )
- {
- iPictoI = CAknPictographInterface::NewL( *this, *this );
- }
-
- iTop = KMinTop;
- iRandSeed = RandomSeed();
- iMoveBar = ETrue;
-
- GetTextAndBgColor();
-
- CreateWindowL();
-
- // Cannot do this earlier - it'll cause a SizeChanged()
- SetRect( iCoeEnv->ScreenDevice()->SizeInPixels() );
-
- iEikonEnv->EikAppUi()->AddToStackL(
- this, ECoeStackPriorityEnvironmentFilter, ECoeStackFlagRefusesFocus );
- ConstructAndConnectLCDL();
- ActivateL();
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlMovingText::DrawNew
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlMovingText::DrawNew( CWindowGc& aGc, const TRect& /* aRect */) const
- {
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::DrawNew start") );
- // Draw bar background
- iLayoutBar.DrawRect( aGc );
-
- // Draw clock
- iLayoutClock.DrawRect( aGc );
- iLayoutClockText.DrawText( aGc, iTextTime );
-
- // Draw date / user text
- iLayoutDate.DrawRect( aGc );
-
- DrawText( aGc );
-
- // Draw indicators
- Array().Draw( aGc );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlMovingText::DrawPictoText
-// Draws text with pictographs
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlMovingText::DrawPictoText( CWindowGc &aGc ) const
- {
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::DrawPictoText start") );
- // Draw text and possible pictographs
- MAknPictographDrawer* pictoDrawer = iPictoI->Interface();
- ASSERT( pictoDrawer );
-
- if ( ( !pictoDrawer ) || ( !pictoDrawer->ContainsPictographs( iText ) ) )
- {
- // Just draw normally
- iLayoutDateText.DrawText( aGc, iText );
- return;
- }
-
- // Else draw normal text with pictographs
- aGc.UseFont( iLayoutDateText.Font() );
- aGc.SetPenColor( iLayoutDateText.Color() );
-
- // Calculating the offset (unfortunately not public in TAknLayoutText)
- // copied from AknUtils TAknLayoutText::LayoutText()
- pictoDrawer->DrawText( aGc, *iLayoutDateText.Font(), iText,
- iLayoutDateText.TextRect(), iLayoutDateText.Font()->AscentInPixels(),
- iLayoutDateText.Align() );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlMovingText::DrawText
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlMovingText::DrawText( CWindowGc& aGc ) const
- {
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::DrawText start") );
- if ( iPictoI )
- {
- // Draw text and pictographs in the layout
- DrawPictoText( aGc );
- }
- else
- {
- // Draw just text
- iLayoutDateText.DrawText( aGc, iText );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlMovingText::UpdateCurrentTimeL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlMovingText::UpdateCurrentTimeL()
- {
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::UpdateCurrentTimeL start") );
- // AVKON does not have proper format string for just time,
- // load from own resources
- FormatTextFromResourceL( iTextTime, R_SCREENSAVER_TIME_USUAL_WITHOUT_AMPM );
-
- if ( iType == EDisplayTime )
- {
- FormatTextFromResourceL( iText, R_QTN_DATE_USUAL_WITH_ZERO );
- }
- else
- {
- Model().SharedDataInterface()->GetDisplayObjectText( iText );
- }
-
- SetAmPmIndicatorPayloadL();
- // Convert numbers according to language
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlMovingText::GenerateDisplayAttributesForScreensaverBar
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlMovingText::GenerateDisplayAttributesForScreensaverBar( )
- {
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::GenerateDisplayAttributesForScreensaverBar start") );
- // Zero out power save area, it should then be set before power save
- // mode can be activated (also by plugins)
- iPowerSaveDisplayActiveArea.SetRect( 0, 0, 0, 0 );
-
- // Cool! We got scalable layouts. Use them.
- TAknWindowComponentLayout barLayoutComponent =
- AknLayoutScalable_Avkon::power_save_pane();
- iLayoutBar.LayoutRect( Rect(), barLayoutComponent.LayoutLine() );
-
- // Add bar height from layout to get total bar height
- TInt barHeight = iLayoutBar.Rect().Height();
-
- // Plain refresh, no move?
- if ( iMoveBar )
- {
- // Get random values for bar position and color.
- GetRandomTopValue( iLayoutBar.Rect().Height() );
- }
-
- // Create a rect with the new top to be used as layout rect
- TRect fakeScreen( Rect() );
- fakeScreen.iTl.iY = iTop;
-
- // Layout components
-
- // Bar itself
- iLayoutBar.LayoutRect( fakeScreen, barLayoutComponent.LayoutLine() );
- TRect barRect = iLayoutBar.Rect();
-
- // Clock (area + text)
- GetClockLayout( barRect );
-
- // Date (area + text)
- GetDateLayout( barRect );
-
- // Indicators (area + text)
- GetIndicatorAreaLayout( barRect );
-
- // Update current time
- TRAP_IGNORE( UpdateCurrentTimeL() );
-
- // Since it is known for sure at this point that screensaver
- // bar will be drawn the partial mode can activated for bar area
- // if it is supported by display hardware.
- const TScreensaverColorModel& colorModel = Model().GetColorModel();
-
- if ( colorModel.iNumberOfPartialModes > 0 )
- {
- TRect psRect( iLayoutBar.Rect() );
- SetPowerSaveDisplayActiveArea( psRect );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlMovingText::GetRandomTopValue
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlMovingText::GetRandomTopValue( TInt aBarHight )
- {
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::GetRandomTopValue start") );
- TInt range( iCoeEnv->ScreenDevice()->SizeInPixels().iHeight - aBarHight - 1 - 4 );
- TInt rand = Math::Rand( iRandSeed );
- rand %= range;
- iTop = ( rand > 3 ) ? ( rand/4 ) * 4 : 4;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlMovingText::RandomValue
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverCtrlMovingText::RandomSeed()
- {
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::RandomSeed start") );
- TTime time;
- time.HomeTime();
- return time.DateTime().MicroSecond();
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlMovingText::GetTextAndBgColor
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlMovingText::GetTextAndBgColor()
- {
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::GetTextAndBgColor start") );
- if( Model().SharedDataInterface()->IsInvertedColors() == KInvertedColors )
- {
- iBgColor = KInvertedBgColor;
- iTextColor = KInvertedTextColor;
- iTextBgColor = KInvertedTextBgColor;
- }
- else
- {
- iBgColor = KBgColor;
- iTextColor = KTextColor;
- iTextBgColor = KTextBgColor;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlMovingText::FormatTextL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlMovingText::FormatTextL( TDes& aText, const TDesC& aFormat )
- {
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::FormatTextL start") );
- TTime curTime;
- curTime.HomeTime();
- // Since screensaver is updated on the minute, make sure it displays
- // the time of the passing minute by adding a few seconds to the
- // time at the moment of the update.
- curTime += TTimeIntervalSeconds( 5 );
-
- TRAPD( err, curTime.FormatL( aText, aFormat ) );
- if ( err != KErrNone )
- {
- // If time can't be displayed then display an empty text
- aText = KNullDesC;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlMovingText::SetAmPmIndicatorPayload
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlMovingText::SetAmPmIndicatorPayloadL()
- {
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::SetAmPmIndicatorPayloadL start") );
- _LIT(KAmPmFormat, "%*A");
- TBuf<10> textAmPm;
- FormatTextL( textAmPm, KAmPmFormat );
-
- TIndicatorPayload payload;
- payload.iType = EPayloadTypeText;
- payload.iText.Zero();
- payload.iText.Append( textAmPm );
- Array().SetIndicatorPayload( ESsAmPmInd, payload );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlMovingText::FormatTextFromResourceL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlMovingText::FormatTextFromResourceL( TDes &aText, TInt aResourceId )
- {
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::FormatTextFromResourceL start") );
- TBuf<30> timeFormat;
- iCoeEnv->ReadResourceL( timeFormat, aResourceId );
- FormatTextL( aText, timeFormat );
- AknTextUtils::DisplayTextLanguageSpecificNumberConversion( aText );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlMovingText::GetClockLayout
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlMovingText::GetClockLayout( const TRect& aRect )
- {
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::GetClockLayout start") );
- TAknWindowComponentLayout clockarea =
- AknLayoutScalable_Avkon::aid_ps_clock_pane( 0 );
- TAknWindowLineLayout clockline = clockarea.LayoutLine();
- clockline.iC = iBgColor;
- iLayoutClock.LayoutRect( aRect, clockarea.LayoutLine() );
-
- TAknTextComponentLayout clocktext =
- AknLayoutScalable_Avkon::power_save_t2( 0 );
- clocktext.SetC( iTextColor );
- iLayoutClockText.LayoutText( aRect, clocktext.LayoutLine() );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlMovingText::GetClockLayout
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlMovingText::GetDateLayout( const TRect& aRect )
- {
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::GetDateLayout start") );
- TAknWindowComponentLayout datearea =
- AknLayoutScalable_Avkon::power_save_pane_g1( 0 );
- TAknWindowLineLayout dateline = datearea.LayoutLine();
- dateline.iC = iTextBgColor;
- iLayoutDate.LayoutRect( aRect, dateline );
-
- TAknTextComponentLayout datetext =
- AknLayoutScalable_Avkon::power_save_pane_t1( 0 );
- TAknTextLineLayout datetextline = datetext.LayoutLine();
- iLayoutDateText.LayoutText( aRect, datetextline );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlMovingText::GetClockLayout
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlMovingText::GetIndicatorAreaLayout( const TRect& aRect )
- {
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::GetIndicatorAreaLayout start") );
- TAknWindowComponentLayout indicatorarea =
- AknLayoutScalable_Avkon::aid_ps_indicator_pane( 0 );
- TAknWindowLineLayout indicatorline = indicatorarea.LayoutLine();
- indicatorline.iC = iBgColor;
- TAknLayoutRect layoutIndicatorArea;
- layoutIndicatorArea.LayoutRect( aRect, indicatorline );
-
- // Indicator texts
- TAknTextComponentLayout indtext =
- AknLayoutScalable_Avkon::power_save_pane_t4( 0 );
- TAknTextLineLayout indline = indtext.LayoutLine();
- TAknLayoutText layoutIndicatorText;
- layoutIndicatorText.LayoutText( aRect, indline );
-
- // Indicator icons
- TAknWindowComponentLayout inds =
- AknLayoutScalable_Avkon::indicator_ps_pane( 0 );
- TAknWindowLineLayout indsline = inds.LayoutLine();
- TAknLayoutRect layoutInds;
- layoutInds.LayoutRect( aRect, indsline );
-
- // Tell indicator array where to draw (this should be moved to
- // the array itself)
- Array().Setup( layoutIndicatorArea, layoutIndicatorText, layoutInds );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlMovingText::StartBarRefreshTimer
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlMovingText::StartBarRefreshTimer()
- {
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::StartBarRefreshTimer start") );
- DeleteTimer( iBarRefreshTimer );
-
- TRAP_IGNORE( iBarRefreshTimer = CPeriodic::NewL( CActive::EPriorityStandard ) );
-
- TInt initialRefreshRate = InitialRefreshRate();
-
- iBarRefreshTimer->Start( initialRefreshRate, KRefreshRate, TCallBack(
- HandleRefreshTimerExpiry, this ) );
-
- SCRLOGGER_WRITEF( _L("SCR: BarRefreshTimer->Start(%d, %d, HandleRefreshTimerExpiry)"),
- initialRefreshRate, KRefreshRate );
- }
-
-#endif //USE_DATE_AND_TEXT
-// End of file.
--- a/src/screensaverctrlnone.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,195 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Implementation of screensaver none display object class.
-*
-*/
-
-
-
-#include <screensaverplugin.h>
-#include <hal.h>
-
-#include "screensaverctrlnone.h"
-#include "ScreensaverUtils.h"
-#include "screensaverappui.h"
-#include "screensavershareddatai.h"
-
-//the param to set the display off/on
-const TInt KDisplayOff = 0;
-const TInt KDisplayOn = 1;
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlNone::NewL
-// -----------------------------------------------------------------------------
-//
-CScreensaverCtrlNone* CScreensaverCtrlNone::NewL()
- {
- CScreensaverCtrlNone* self = new( ELeave ) CScreensaverCtrlNone();
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlNone::~CScreensaverCtrlNone
-// -----------------------------------------------------------------------------
-//
-CScreensaverCtrlNone::~CScreensaverCtrlNone()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlNone::StartTimer
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlNone::StartTimer()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlNone::CancelTimer
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlNone::CancelTimer()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlNone::ClearScreen
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlNone::ClearScreen()
- {
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlNone::ClearScreen start") );
- SwitchDisplayState( KDisplayOn );
-
- SwitchLights( ESSForceLightsOn );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlNone::Refresh
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlNone::Refresh()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlNone::DrawObject
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlNone::DrawObject()
- {
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlNone::DrawObject start") );
- SwitchDisplayState( KDisplayOff );
- SwitchLights( ESSForceLightsOff );
- DrawNow();
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlNone::HandleResourceChange
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlNone::HandleResourceChange(TInt aType)
- {
- if ( aType == KEikDynamicLayoutVariantSwitch )//&& iType != EDisplayNone)
- {
- // Screen layout has changed - resize
- SetRect( iCoeEnv->ScreenDevice()->SizeInPixels() );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlNone::SizeChanged
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlNone::SizeChanged()
- {
- // Nothing to be implemented
- }
-
-// ---------------------------------------------------------------------------
-// CScreensaverCtrlNone::Draw
-// ---------------------------------------------------------------------------
-//
-void CScreensaverCtrlNone::Draw( const TRect& aRect ) const
- {
- if ( !Model().ScreenSaverIsOn() && !Model().ScreenSaverIsPreviewing() )
- {
- return;
- }
-
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlNone::Draw, screensaver is on or previewing") );
- CWindowGc& gc = SystemGc();
- gc.SetBrushColor( KRgbBlack );
- gc.Clear( aRect );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlNone::CScreensaverCtrlNone
-// -----------------------------------------------------------------------------
-//
-CScreensaverCtrlNone::CScreensaverCtrlNone()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlNone::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlNone::ConstructL()
- {
- CreateWindowL();
- SetRect( iCoeEnv->ScreenDevice()->SizeInPixels() );
- ActivateL();
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlNone::SwitchLights
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlNone::SwitchLights( TInt aSecs )
- {
- Model().SharedDataInterface()->SetSSForcedLightsOn( aSecs );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlNone::SwitchDisplayState
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlNone::SwitchDisplayState( TInt aState )
- {
- SCRLOGGER_WRITEF(_L("SCR:CScreensaverCtrlNone::SwitchDisplayState start") );
- TInt currentState ;
- //Get the current display state
- TInt result = KErrNone;
- TRAP_IGNORE( result = HAL::Get( HALData::EDisplayState, currentState ) );
-
- if( KErrNone != result )
- {
- //if can't get the state, revert to default type
- View()->SetDisplayObject(
- Model().SharedDataInterface()->DefaultScreensaverType() );
- return;
- }
-
- if ( aState != currentState ) //display already on/off; nothing to do
- {
- TRAP_IGNORE( HAL::Set( HALData::EDisplayState, aState ) );
- }
- }
-
-
-//End of file
--- a/src/screensaverctrlplugin.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,679 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Implementation of screensaver plugin display object class.
-*
-*/
-
-
-
-#include <AknDef.h>
-#include <power_save_display_mode.h>
-
-#include "ScreensaverpluginIntDef.h"
-#include "screensaverctrlplugin.h"
-#include "screensaverview.h"
-#include "screensaverappui.h"
-#include "screensaverutility.h"
-#include "ScreensaverUtils.h"
-#include "screensavershareddatai.h"
-
-// If plugin refresh rate is lower than this threshold, wserv heartbeat
-// is stopped between redraws
-const TInt KStopWsHbPluginRefreshThreshold = 1000000; // 1 sec
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlPlugin::NewL
-// -----------------------------------------------------------------------------
-//
-CScreensaverCtrlPlugin* CScreensaverCtrlPlugin::NewL()
- {
- CScreensaverCtrlPlugin* self = new( ELeave ) CScreensaverCtrlPlugin();
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop();
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlPlugin::~CScreensaverCtrlPlugin
-// -----------------------------------------------------------------------------
-//
-CScreensaverCtrlPlugin::~CScreensaverCtrlPlugin()
- {
- DeleteTimer( iPluginRefreshTimer );
- DeleteTimer( iPluginTimeoutTimer );
- DeletePlugin();
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlPlugin::StartTimer
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlPlugin::StartTimer()
- {
- // Notify plugin that screensaver is starting
- Model().SharedDataInterface()->SetSSForcedLightsOn( ESSForceLightsOn );
-
- SendPluginEvent( EScreensaverEventStarting );
-
-
- StartPluginRefreshTimer();
-
- if ( RefreshTimerValue() >= KStopWsHbPluginRefreshThreshold )
- {
- StartCaptureScreenTimer();
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlPlugin::CancelTimer
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlPlugin::CancelTimer()
- {
- DeleteTimer( iPluginRefreshTimer );
- DeleteTimer( iPluginTimeoutTimer );
-
- SendPluginEvent( EScreensaverEventStopping );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlPlugin::DrawObject
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlPlugin::DrawObject()
- {
- CScreensaverBase::DrawObject();
-
- if( iPluginFlag.IsSet( EPluginFlagSuspend ) )
- {
- Suspend( -1 );
- iPluginFlag.Clear( EPluginFlagSuspend );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlPlugin::ClearScreen
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlPlugin::ClearScreen()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlPlugin::Refresh
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlPlugin::Refresh()
- {
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlPlugin::Refresh start") );
- // Currently only keylock indicator is updated, because
- // thats the only indicator whose state may change while screensaver
- // is displaying. Other indicators' state changing also dismisses
- // screensaver. Once redisplaying, the indicators are updated anyway.
- // Key lock indicator depends on status of key guard.
- TIndicatorPayload payload;
- payload.iType = EPayloadTypeInteger;
-
- Array().SetDependencyStatus( ESsKeyLockInd, !Model().SharedDataInterface()->IsKeyguardOn() );
- payload.iInteger = Model().SharedDataInterface()->UnreadMessagesNumber();
- Array().SetIndicatorPayload( ESsNewMessagesInd, payload );
- Array().SetDependencyStatus( ESsNewMessagesInd, ( payload.iInteger <= 0 ) );
- Array().SetDependencyStatus( ESsVoicemailInd, !Model().SharedDataInterface()->IsHaveNewVoicemail() );
-
- Array().SetVisibilityForIndicators();
-
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlPlugin::Refresh DrawObject") );
- // Cause a redraw
- DrawObject();
-
- SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlPlugin::Refresh finish") );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlPlugin::SendPluginEvent
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverCtrlPlugin::SendPluginEvent( TScreensaverEvent aEvent )
- {
- if ( iPlugin )
- {
- TRAPD( err, iPlugin->HandleScreensaverEventL( aEvent, NULL ) );
- return err;
- }
-
- return KErrNone;
- }
-
-// ---------------------------------------------------------------------------
-// CScreensaverCtrlPlugin::PluginImplementationUid()
-// ---------------------------------------------------------------------------
-//
-TUid CScreensaverCtrlPlugin::PluginImplementationUid() const
- {
- return iPluginImplUid;
- }
-
-// From MScreensaverPluginHost
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlPlugin::UseStandardIndicators
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlPlugin::UseStandardIndicators()
- {
- SCRLOGGER_WRITE("Host: UseStandardIndicators()");
-
- iPluginFlag.Clear( EPluginFlagOverrideIndicators );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlPlugin::OverrideStandardIndicators
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlPlugin::OverrideStandardIndicators()
- {
- SCRLOGGER_WRITE("Host: OverrideStandardIndicators()");
-
- iPluginFlag.Set( EPluginFlagOverrideIndicators );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlPlugin::StandardIndicatorsUsed
-// -----------------------------------------------------------------------------
-//
-TBool CScreensaverCtrlPlugin::StandardIndicatorsUsed() const
- {
- SCRLOGGER_WRITE("Host: StandardIndicatorsUsed()");
-
- return iPluginFlag.IsClear( EPluginFlagOverrideIndicators );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlPlugin::SetRefreshTimerValue
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlPlugin::SetRefreshTimerValue( TInt aValue )
- {
- SCRLOGGER_WRITEF( _L("SCR: Host: SetRefreshTimerValue(%d)"), aValue );
-
- iPluginRefreshRate = aValue;
- iPluginFlag.Clear( EPluginFlagTimerNotUsed );
- StartPluginRefreshTimer();
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlPlugin::RefreshTimerValue
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverCtrlPlugin::RefreshTimerValue() const
- {
- SCRLOGGER_WRITE("Host: RefreshTimerValue()");
-
- return iPluginRefreshRate;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlPlugin::GetIndicatorPayload
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverCtrlPlugin::GetIndicatorPayload(
- TScreensaverIndicatorIndex aIndex, TIndicatorPayload& aResult ) const
- {
- SCRLOGGER_WRITEF( _L("SCR: Host: GetIndicatorPayload(%d, %x)"),
- aIndex, &aResult );
-
- return Model().IndicatorArray().GetIndicatorPayload( ( TScreensaverIndicatorId ) aIndex, aResult );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlPlugin::SetActiveDisplayArea
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverCtrlPlugin::SetActiveDisplayArea(
- TRect& aRect, const TScreensaverPartialMode& aMode )
- {
- SCRLOGGER_WRITEF( _L("SCR: Host: SetActiveDisplayArea(<rect>, %d)"), aMode );
- SCRLOGGER_WRITEF( _L(" -> rect: (%d, %d, %d, %d)"),
- aRect.iTl.iX, aRect.iTl.iY, aRect.iBr.iX, aRect.iBr.iY );
- // Make sure everything is in display memory
- ScreensaverUtility::FlushDrawBuffer();
-
- // Save the active area
- TInt err = SetPowerSaveDisplayActiveArea( aRect );
- if ( err == KErrNone )
- {
- // And activate power save display. Full mode = full colors
-// err = ActivatePowerSaveDisplay( aMode.iType
-// == EPartialModeTypeFull );
- }
-
- return err;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlPlugin::SetActiveDisplayArea
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverCtrlPlugin::SetActiveDisplayArea(
- TInt aStartRow, TInt aEndRow, const TScreensaverPartialMode& aMode )
- {
- SCRLOGGER_WRITEF( _L("SCR: Host: SetActiveDisplayArea(%d, %d, %d)"),
- aStartRow, aEndRow, aMode );
-
- TRect psRect( 0, aStartRow, 1, aEndRow);
- return SetActiveDisplayArea( psRect, aMode );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlPlugin::ExitPartialMode
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlPlugin::ExitPartialMode()
- {
- SCRLOGGER_WRITE("Host: ExitPartialMode()");
-
- LcdPartialMode()->Exit();
- // Make sure the partial area is empty
- // Make this less idiotic
- TRect psRect( 0, 0, 0, 0);
- SetPowerSaveDisplayActiveArea( psRect );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlPlugin::GetColorModel
-// -----------------------------------------------------------------------------
-//
-const TScreensaverColorModel& CScreensaverCtrlPlugin::GetColorModel() const
- {
- SCRLOGGER_WRITE("Host / Own use: GetColorModel()");
-
- return Model().GetColorModel();
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlPlugin::Suspend
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlPlugin::Suspend( TInt aTime )
- {
- SCRLOGGER_WRITEF( _L("SCR: Host: Suspend(%d)"), aTime );
-
- View()->SetDisplayObject( Model().SharedDataInterface()->DefaultScreensaverType() );
-
- CScreensaverEngine& model = MUTABLE_CAST( CScreensaverEngine&, Model() );
- model.SetExpiryTimerTimeout( KDefaultScreenSaverTimeout );
-
- View()->ShowDisplayObject();
-
- if ( aTime >= 0 )
- {
- model.StartSuspendTimer( aTime );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlPlugin::RequestLights
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlPlugin::RequestLights( TInt aSecs )
- {
- SCRLOGGER_WRITEF( _L("SCR: Host: RequestLights(%d)"), aSecs );
-
- if ( aSecs <= 0 )
- {
- // Turn lights off, kill lights timer
- Model().SharedDataInterface()->SetSSForcedLightsOn( 0 );
- }
- else
- {
- // Make sure nobody tries to overextend our hospitality
- TInt secs = (aSecs > KMaxLightsOnTime) ? KMaxLightsOnTime : aSecs;
-
- // Turn lights on, start lights timer
- Model().SharedDataInterface()->SetSSForcedLightsOn( secs );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlPlugin::DisplayInfo
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverCtrlPlugin::DisplayInfo( TScreensaverDisplayInfo* aInfo )
- {
- SCRLOGGER_WRITEF( _L("SCR: Host: DisplayInfo(%x)"), aInfo );
-
- if ( !aInfo )
- {
- return KErrArgument;
- }
- // Sanity check: the indicated size of the info struct should be
- // same or less than the actual size (allows for extensibility)
- if ( aInfo->iSize > sizeof( TScreensaverDisplayInfo ) )
- {
- ASSERT( EFalse );
- return KErrArgument;
- }
-
- // Fill our own perception of the info structure
- TScreensaverDisplayInfo info;
-
- info.iSize = aInfo->iSize;
-
- // Currently whole screen
- info.iRect = CCoeEnv::Static()->ScreenDevice()->SizeInPixels();
- info.iParent = this;
-
- // Copy only the size of the caller struct
- Mem::Copy( aInfo, &info, aInfo->iSize );
-
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlPlugin::UseRefreshTimer
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlPlugin::UseRefreshTimer( TBool aOn )
- {
- SCRLOGGER_WRITEF( _L("SCR: Host: UseRefreshTimer(%d)"), aOn );
-
- if ( aOn )
- {
- // Use normal timer, plugin timer allowed
- iPluginFlag.Clear( EPluginFlagTimerNotUsed );
- }
- else
- {
- // Plugin does not want Draw() calls, let timer tick the usual way
- iPluginFlag.Set( EPluginFlagTimerNotUsed );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlPlugin::RequestTimeout
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlPlugin::RequestTimeout( TInt aSecs )
- {
- CScreensaverEngine& model = MUTABLE_CAST( CScreensaverEngine&, Model() );
- model.SetExpiryTimerTimeout( 0 );
- StartPluginTimeoutTimer( aSecs );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlPlugin::RevertToDefaultSaver
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlPlugin::RevertToDefaultSaver()
- {
- SCRLOGGER_WRITE("Host: RevertToDefaultSaver()");
-
- Model().SharedDataInterface()->SetDisplayObjectType(
- Model().SharedDataInterface()->DefaultScreensaverType() );
- }
-
-// --- end MScreensaverPluginHost ---
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlPlugin::CScreensaverCtrlPlugin
-// -----------------------------------------------------------------------------
-//
-CScreensaverCtrlPlugin::CScreensaverCtrlPlugin()
- :iPluginFlag()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlPlugin::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlPlugin::ConstructL()
- {
- iPluginFlag.ClearAll();
-
-
- CreateWindowL();
-
- SetRect( iCoeEnv->ScreenDevice()->SizeInPixels() );
- ConstructAndConnectLCDL();
- LoadPluginL( this );
- ActivateL();
-
- // Notify plugin that display control has changed
- SendPluginEvent( EScreensaverEventDisplayChanged );
-
- if( Model().ScreenSaverIsPreviewing() )
- {
- SendPluginEvent( EScreensaverEventPreview );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlPlugin::HandleResourceChange
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlPlugin::HandleResourceChange( TInt aType )
- {
- if ( aType == KEikDynamicLayoutVariantSwitch )
- {
- // Screen layout has changed - resize
- SetRect( iCoeEnv->ScreenDevice()->SizeInPixels() );
- // Notify plugin that the display has changed
- SendPluginEvent( EScreensaverEventDisplayChanged );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlPlugin::SizeChanged
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlPlugin::SizeChanged()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlPlugin::Draw
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlPlugin::Draw( const TRect& /*aRect*/ ) const
- {
-
- if ( !Model().ScreenSaverIsOn() && !Model().ScreenSaverIsPreviewing() )
- {
- return;
- }
-
- // Graphics context to draw on.
- CWindowGc& gc = SystemGc();
-
- // Fix for error ESMG-74Y4PE - S60 3.2 wk26, Power Saver:
- // Flickering when power saver is deactivated.
- // We now clear the screen with a black brush so the screensaver
- // background is changed to black. There will no longer be a white
- // intermediate screen and this will reduce the "flicker" effect.
- gc.SetBrushColor( KRgbBlack );
-
- // Start with a clear screen
- // If there is no plugin module, indicator view overrides plugin module or
- // plugin drawing is suspended then the standard screensaver bar is shown,
- // let's draw it.
-
- // Let plugin module handle the drawing, unless not requested
-
- TInt err = KErrNone;
- if ( iPluginFlag.IsClear( EPluginFlagTimerNotUsed ) )
- {
- err = iPlugin->Draw( gc );
- }
- //Notice:add this code to shield the issue ELWG-7SF3R3.
- //Prevent screensaver plugin from being called unexpected draw function,
- //which would cause chosen images are not displayed.
- //Check the err code return by iPlugin->Draw:
- //If draw action is correct and iPluginFlag has already been set EPluginFlagSuspend,
- //then clear this EPluginFlagSuspend
- if ( KErrNone == err && iPluginFlag.IsSet( EPluginFlagSuspend ) )
- {
- iPluginFlag.Clear( EPluginFlagSuspend );
- }
-
- if( err != KErrNone )
- {
- iPluginFlag.Set( EPluginFlagSuspend );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlPlugin::LoadPluginL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlPlugin::LoadPluginL( MScreensaverPluginHost* /*aPluginHost*/ )
- {
- DeletePlugin();
- LoadPluginModuleL();
- User::LeaveIfNull( iPlugin );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlPlugin::LoadPluginModule
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlPlugin::LoadPluginModuleL()
- {
- TFileName pluginName;
-
- Model().SharedDataInterface()->GetPluginName( pluginName );
-
- // Create plugin object in the DLL
- // Convert the UID of the given screensaver plugin from text to integer
- // The string format of the UID: [12345678]
- // The number inside the brackets in hexadecimal format
- TLex lex( pluginName );
-
- // Skip the first character: '['
- lex.Get();
-
- TUint32 tempUid;
-
- // Get the UID
- TInt err = lex.Val( tempUid, EHex );
-
- // Bail out, if the UID is not parseable
- if ( err != KErrNone )
- {
- iPlugin = NULL;
- }
-
- iPluginImplUid = TUid::Uid( tempUid );
- //codescanner will crib if leaving function inside trap is called
- //after line break within the macro. Hence the following trap call
- //is made in a single line
- TRAP(err, iPlugin = STATIC_CAST( MScreensaverPlugin*,
- CScreensaverPluginInterfaceDefinition::NewL( iPluginImplUid ) ) );
-
- if( err != KErrNone )
- return;
-
- TRAP( err, err = iPlugin->InitializeL( this ) );
-
- if( err != KErrNone )
- {
- // Loaded OK, but failed to initialize - cannot use plugin
- TBool changed = Model().SharedDataInterface()->GetDisplayObjChanged();
- if( !changed )
- {
- //Just activate the screensaver revert to defaultsaver
- RevertToDefaultSaver();
- }
- Model().SharedDataInterface()->SetDisplayObjChanged( EFalse );
- delete iPlugin;
- iPlugin = NULL;
- }
-
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlPlugin::DeletePlugin
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlPlugin::DeletePlugin()
- {
- if( iPlugin )
- {
- delete iPlugin;
- iPlugin = NULL;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlPlugin::StartPluginRefreshTimer
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlPlugin::StartPluginRefreshTimer()
- {
- DeleteTimer( iPluginRefreshTimer );
-
- if( ( iPluginRefreshRate != 0 ) )
- {
- TRAP_IGNORE( iPluginRefreshTimer = CPeriodic::NewL( CActive::EPriorityStandard ) );
-
- iPluginRefreshTimer->Start( iPluginRefreshRate, iPluginRefreshRate,
- TCallBack( HandleRefreshTimerExpiry, this ) );
- SCRLOGGER_WRITEF( _L("SCR: iRefreshTimer->Start(%d, %d, HandleRefreshTimerExpiry)"),
- iPluginRefreshRate,iPluginRefreshRate );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlPlugin::StartPluginTimeoutTimer
-// -----------------------------------------------------------------------------
-//
-void CScreensaverCtrlPlugin::StartPluginTimeoutTimer( TInt aSecs )
- {
- // Cancel pending timeouts
- DeleteTimer( iPluginTimeoutTimer );
-
- TRAP_IGNORE( iPluginTimeoutTimer = CPeriodic::NewL( CActive::EPriorityStandard ) );
-
- // Nothing more to do?
- if( ( aSecs <= 0 ) || ( aSecs > ( 35 * 60 ) ) ) // 35 mins max
- {
- return;
- }
-
- TInt timeOut = aSecs * 1000000; // uSecs
-
- iPluginTimeoutTimer->Start( timeOut, timeOut, TCallBack(
- HandlePluginTimeoutTimerExpiry, this ) );
- SCRLOGGER_WRITEF( _L("SCR: iPluginTimeoutTimer->Start(%d, %d, HandlePluginTimeoutTimerTimeout)"),
- timeOut, timeOut );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverCtrlPlugin::HandlePluginTimeoutTimerExpiry
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverCtrlPlugin::HandlePluginTimeoutTimerExpiry( TAny* aPtr )
- {
- CScreensaverCtrlPlugin *plugin= STATIC_CAST( CScreensaverCtrlPlugin*, aPtr );
- SCRLOGGER_WRITEF( _L("SCR: Inside CScreensaverView::HandlePluginTimeoutTimerTimeout()") );
- if ( plugin )
- {
- plugin->DeleteTimer( plugin->iPluginRefreshTimer );
- plugin->DeleteTimer( plugin->iPluginTimeoutTimer );
- plugin->SendPluginEvent( EScreensaverEventTimeout );
- }
-
- return KErrNone;
- }
-//End of file
--- a/src/screensaverengine.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,897 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Screensaver engine class definition.
-*
-*/
-
-
-
-#include <barsread.h>
-#include <featmgr.h>
-#include <PUAcodes.hrh>
-#include <Profile.hrh>
-#include <screensaver.rsg>
-#include <AknUtils.h>
-
-#include "screensaverengine.h"
-#include "screensaverctrlmovingtext.h"
-#include "screensavershareddatai.h"
-#include "screensavershareddatamonitor.h"
-#include "screensaverappui.h"
-#include "ScreensaverUtils.h"
-#include "screensaverutility.h"
-#include "screensaveractivitymanager.h"
-
-// Minimum plugin suspension time
-const TInt KMinPluginSuspensionTime = 500000; // 0.5 sec
-
-// Inactivity timeout in seconds when keys locked
-const TInt KTimeoutShort = 5000000;
-const TInt KTimeoutPreviewLocked = 2000000;
-
-const TInt KNoPreview = 0;
-
-const TInt KPreviewTimeout = 10000000; // 10 sec
-
-const TText KSilentProfileInd= KPuaCodeSilentSymbol;
-const TText KSilentVibraInd= KPuaCodeAprofSilentVibra;
-const TText KSoundVibraInd= KPuaCodeAprofSoundVibra;
-const TText KSoundInd= KPuaCodeAprofSound;
-
-// Class CScreensaverEngine
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::NewL
-// -----------------------------------------------------------------------------
-//
-CScreensaverEngine* CScreensaverEngine::NewL()
- {
- CScreensaverEngine* self = new (ELeave) CScreensaverEngine();
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop(); //self
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::~CScreensaverEngine
-// -----------------------------------------------------------------------------
-//
-CScreensaverEngine::~CScreensaverEngine( )
- {
- iAsyncCb.Cancel();
- StopActivityMonitoring( iActivityManagerScreensaver );
- DisableSharedDataAndMonitor();
- delete iIndicatorArray;
- KillTimer( iPreviewTimer );
- KillTimer( iExpiryTimer );
- iAknUiServer.Close();
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::SharedDataInterface
-// -----------------------------------------------------------------------------
-//
-CScreensaverSharedDataI* CScreensaverEngine::SharedDataInterface( ) const
- {
- return iSharedDataI;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::ResetInactivityTimeout
-// -----------------------------------------------------------------------------
-//
-void CScreensaverEngine::ResetInactivityTimeout()
- {
- if ( iActivityManagerScreensaver )
- {
- SCRLOGGER_WRITEF(_L("SCR: Model: Setting inac timeout to %d secs"),
- Timeout());
- iActivityManagerScreensaver->SetInactivityTimeout( Timeout( ) );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::ScreenSaverIsOn
-// -----------------------------------------------------------------------------
-//
-TBool CScreensaverEngine::ScreenSaverIsOn( ) const
- {
- return iScreenSaverIsOn;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::ScreenSaverIsPreviewing
-// -----------------------------------------------------------------------------
-//
-TBool CScreensaverEngine::ScreenSaverIsPreviewing( ) const
- {
- return iScreenSaverIsPreviewing;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::StartScreenSaver
-// -----------------------------------------------------------------------------
-//
-void CScreensaverEngine::StartScreenSaver( )
- {
- SCRLOGGER_WRITE("Model: StartScreenSaver()");
-
- // Stop if previewing. If keylock was activated, the pause timer will
- // be started and the selected (not necessarily previewed) screensaver
- // will start
- if ( iScreenSaverIsPreviewing )
- {
- StopScreenSaver();
- return;
- }
-
- // if (DisplayFlag() == 1) then screensaver can be activated
- // else screensaver can't come during phone call.
- // Also not OK to start until system startup has been completed
- if ( ( !DisplayFlag() ) && ( iSharedDataI->IsSystemStartupComplete() ) )
- {
- if ( !iScreenSaverIsOn )
- {
- // Activating is done asynchronously to prevent screensaver from
- // flashing quickly in some cases. This flashing happens e.g. when
- // a call is missed and a note is showed about it.
- iAsyncCb.CallBack();
- }
- else
- {
- SCRLOGGER_WRITE("Model: StartScreenSaver(): already on, ignore");
- }
- }
- else
- {
- SCRLOGGER_WRITE("Model: SS not displaying, not allowed.");
- ResetInactivityTimeout( );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::StopScreenSaver
-// -----------------------------------------------------------------------------
-//
-void CScreensaverEngine::StopScreenSaver()
- {
- SCRLOGGER_WRITE("Stopping Screensaver");
- iAsyncCb.Cancel();
-
- if ( iSharedDataI->IsKeyguardOn() || iScreenSaverIsPreviewing )
- {
- StartPauseTimer();
- }
-
- if( iScreenSaverIsOn )
- {
- // disconnect in StopScreenSaver, It makes sure other applications could
- // receive application key event when screensaver is disactivated.
- iAknUiServer.ConnectAndSendAppsKeySuppress(EFalse);
- // Indicate we've stopped
- iSharedDataI->SetScreensaverStatus( EFalse );
-
- iScreenSaverIsOn = EFalse ;
-
- KillTimer( iExpiryTimer );
-
- View()->HideDisplayObject();
- }
-
- if( iScreenSaverIsPreviewing )
- {
- iSharedDataI->SetScreensaverPreviewMode( KNoPreview );
-
- iScreenSaverIsPreviewing = EFalse;
-
- View()->HideDisplayObject();
-
- // Update preview progress
- iSharedDataI->SetScreensaverPreviewState( EScreenSaverPreviewEnd );
- iSharedDataI->SetScreensaverPreviewState( EScreenSaverPreviewNone );
-
- KillTimer( iPreviewTimer );
- ResetInactivityTimeout();
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::StartPreviewModeL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverEngine::StartPreviewModeL( )
- {
- SCRLOGGER_WRITEF(_L("SCR: Inside CScreensaverEngine::StartPreviewModeL()") );
-
- iScreenSaverIsPreviewing = ETrue;
- // Change the display object into what's being previewed
- View()->CreatePreviewDisplayObjectL();
-
- if( iSharedDataI->ScreensaverPreviewState() == EScreenSaverPreviewError )
- {
- iScreenSaverIsPreviewing = EFalse;
- return;
- }
-
- StartPreviewTimer();
-
- UpdateIndicatorAttributes();
-
- if ( !View()->IsContentlessScreensaver() )
- {
- ScreensaverUtility::BringToForeground();
- }
-
- View()->ShowDisplayObject();
-
- iSharedDataI->SetScreensaverPreviewState( EScreenSaverPreviewStart );
-
- iActivityManagerScreensaver->SetInactivityTimeout(0);
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::DisplayObject
-// -----------------------------------------------------------------------------
-//
-void CScreensaverEngine::DisplayObject()
- {
- SCRLOGGER_WRITEF(_L("SCR: Inside CScreensaverEngine::DisplayObject()") );
- //if the display object type is plugin, we should recreate the object
- //cause when plugin is suspend status, it will be changed to the default
- //type
- if ( iSharedDataI->DisplayObjectType() == EDisplayPlugin )
- {
- View()->SetDisplayObject( EDisplayPlugin );
- SetExpiryTimerTimeout( KDefaultScreenSaverTimeout );
- }
-
- UpdateIndicatorAttributes();
-
- View()->ShowDisplayObject();
-
- iSharedDataI->SetScreensaverStatus( ETrue );
- }
-
-// ----------------------------------------------------------------------------
-// CScreensaverEngine::StartSuspendTimer
-// -----------------------------------------------------------------------------
-//
-void CScreensaverEngine::StartSuspendTimer( TInt aSec )
- {
- KillTimer( iSuspendTimer );
-
- // Let's keep this operation reasonable.
- TInt realTime = ( aSec > KMinPluginSuspensionTime )
- ? aSec : KMinPluginSuspensionTime;
-
- TRAP_IGNORE( iSuspendTimer = CPeriodic::NewL( CActive::EPriorityStandard ) );
-
- iSuspendTimer->Start( realTime, realTime, TCallBack(
- HandleSuspendTimerExpiry, this ) );
-
- SCRLOGGER_WRITEF(_L("SCR: iSuspendTimer->Start(%d, %d, HandleSuspensionTimerTimeout)"),
- realTime, realTime);
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::IndicatorArray
-// -----------------------------------------------------------------------------
-//
-CScreensaverIndicatorArray& CScreensaverEngine::IndicatorArray() const
- {
- return *iIndicatorArray;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::GetColorModel
-// -----------------------------------------------------------------------------
-//
-const TScreensaverColorModel& CScreensaverEngine::GetColorModel() const
- {
- SCRLOGGER_WRITE("Host / Own use: GetColorModel()");
-
- return iColorModel;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::AddPartialModeLevel
-// -----------------------------------------------------------------------------
-//
-void CScreensaverEngine::AddPartialModeLevel( TInt aBpp,
- TScreensaverPartialModeType aType )
- {
- TInt i;
- for (i = 0; i < iColorModel.iNumberOfPartialModes; i++ )
- {
- if ( (iColorModel.iPartialModes[i].iBpp == aBpp)
- && (iColorModel.iPartialModes[i].iType == aType) )
- {
- break;
- }
- }
- if ( i >= iColorModel.iNumberOfPartialModes )
- {
- iColorModel.iPartialModes[iColorModel.iNumberOfPartialModes].iBpp
- = aBpp;
- iColorModel.iPartialModes[iColorModel.iNumberOfPartialModes].iType
- = aType;
- iColorModel.iNumberOfPartialModes++;
- }
- }
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::UpdateIndicatorAttributes
-// This method is for updating screensaver indicator
-// attributes (payloads and dependencies). This is where indicator
-// payload values are connected to real values.
-// -----------------------------------------------------------------------------
-//
-void CScreensaverEngine::UpdateIndicatorAttributes()
- {
- SCRLOGGER_WRITEF(_L("SCR: Inside CScreensaverView::UpdateIndicatorAttributes()"));
-
- TIndicatorPayload payload;
-
- // First integer types.
- payload.iType = EPayloadTypeInteger;
-
- // Missed calls.
- payload.iInteger = iSharedDataI->NewMissedCalls();
- iIndicatorArray->SetIndicatorPayload( ESsMissedCallsInd, payload );
- // Missed calls indicator depends on status of new contacts note.
- iIndicatorArray->SetDependencyStatus( ESsMissedCallsInd,
- !iSharedDataI->IsNCNActive() );
-
- // Unread messages
- payload.iInteger = iSharedDataI->UnreadMessagesNumber();
- iIndicatorArray->SetIndicatorPayload( ESsNewMessagesInd, payload );
- iIndicatorArray->SetDependencyStatus( ESsNewMessagesInd, (payload.iInteger > 0
- ? EFalse : ETrue) );
-
- // Then string types.
- payload.iType = EPayloadTypeText;
-
- // Profile information
- TBool nameDisplayed = (iSharedDataI->ActiveProfile() == EProfileGeneralId) ? EFalse : ETrue;
- TBool isSilent = iSharedDataI->IsSilentMode();
- payload.iText.Zero( );
-
- if ( nameDisplayed || isSilent || iShowExtendedProfileInd )
- {
- // append alert type indicator
- if ( iShowExtendedProfileInd )
- {
- TBool isVibra = iSharedDataI->IsVibraMode( );
- if ( isSilent )
- {
- payload.iText.Append( isVibra ? KSilentVibraInd
- : KSilentProfileInd );
- }
- else
- {
- payload.iText.Append( isVibra ? KSoundVibraInd : KSoundInd );
- }
- }
- else
- {
- // Check if this is silent mode and we have to add indicator
- // character to string.
- if ( isSilent )
- {
- payload.iText.Append( KSilentProfileInd );
- }
- }
-
- if ( nameDisplayed )
- {
- const TDesC& profile = iSharedDataI->ProfileName( );
- // Don't panic if profile name is too long, 'less than' ensures
- // the 1 free space used for silent/vibra
- if ( profile.Length( ) < KMaxPayloadTextLength )
- {
- // append profile name
- payload.iText.Append( profile );
- }
- }
-
- // Profile indicator shown
- iIndicatorArray->SetDependencyStatus( ESsProfileInd, EFalse );
- }
- else
- {
- // Profile indicator not shown
- iIndicatorArray->SetDependencyStatus( ESsProfileInd, ETrue );
- }
-
- iIndicatorArray->SetIndicatorPayload( ESsProfileInd, payload );
-
- // AM/PM indicator is text but it is updated with every draw
- // in screensaver control, so that it changes properly even if
- // time rolls over between draws. Note that Am/Pm information is
- // maintained by screensaver display object, not shareddatainterface.
- if ( AknLayoutUtils::ScalableLayoutInterfaceAvailable() )
- {
- // Am/Pm indicator depends on 12-hour clock
- iIndicatorArray->SetDependencyStatus( ESsAmPmInd, !ScreensaverUtility::Query12HourClock( ) );
- }
- else
- {
- // Make sure it's not shown
- iIndicatorArray->SetDependencyStatus( ESsAmPmInd, ETrue );
- }
-
-
- // Key lock indicator depends on status of key guard.
- iIndicatorArray->SetDependencyStatus( ESsKeyLockInd, !iSharedDataI->IsKeyguardOn() );
-
- // Instant messaging indicator depends on existence of unseen IMs
- iIndicatorArray->SetDependencyStatus( ESsImInd, !iSharedDataI->IsHaveNewInstantMessages() );
-
- // Mail indicator depends on existence of unseen mails
- iIndicatorArray->SetDependencyStatus( ESsMailInd, !iSharedDataI->IsHaveNewEmail() );
-
- // Voicemail indicator depends on existence of unseen voicemail messages
- iIndicatorArray->SetDependencyStatus( ESsVoicemailInd, !iSharedDataI->IsHaveNewVoicemail() );
-
- //Set visibility for indicators if selected screensaver is a plugin
- //which overides standard indicators
- //TODO: Convert the iControlType to the iSettingType
-// if ( (iSharedDataI->ScreensaverObjectType() == EDisplayPlugin ) &&
-// ( AppUi()->ScreensaverView()->PluginFlags() & CScreensaverView::EPluginFlagOverrideIndicators ) )
-// {
- iIndicatorArray->SetVisibilityForIndicators();
-// }
- }
-
-
-// -----------------------------------------------------------------------------
-// Start screensaver expiry timer. When the timer expires the screensaver will
-// be stopped and hided.
-// -----------------------------------------------------------------------------
-//
-void CScreensaverEngine::SetExpiryTimerTimeout( TInt aTimeout )
- {
- SCRLOGGER_WRITEF( _L( "SCR:CScreensaverEngine::SetExpiryTimerTimeout(%d) start" ), aTimeout );
- KillTimer( iExpiryTimer );
-
- if ( 0 < aTimeout )
- {
- TRAP_IGNORE(
- iExpiryTimer = CPeriodic::NewL( CActive::EPriorityStandard );
- iExpiryTimer->Start( aTimeout , aTimeout ,
- TCallBack( HandleExpiryTimerExpiry, this ) );
- )
- }
- }
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::CScreensaverEngine
-// -----------------------------------------------------------------------------
-//
-CScreensaverEngine::CScreensaverEngine() : iAsyncCb( CActive::EPriorityLow )
- {
- TCallBack callbackFunc( StartSaverCb, this );
- iAsyncCb.Set( callbackFunc );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverEngine::ConstructL( )
- {
- SetupColorModelL();
-
- EnableSharedDataAndMonitorL();
-
- iIndicatorArray = CScreensaverIndicatorArray::NewL( iSharedDataI->IsInvertedColors() );
-
- StartActivityMonitoringL();
-
- FeatureManager::InitializeLibL();
- iShowExtendedProfileInd
- = FeatureManager::FeatureSupported( KFeatureIdProtocolCdma );
- FeatureManager::UnInitializeLib();
-
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::EnableSharedDataAndMonitorL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverEngine::EnableSharedDataAndMonitorL()
- {
- iSharedDataI = CScreensaverSharedDataI::NewL();
-
- iSharedDataMonitor = CScreensaverSharedDataMonitor::NewL( iSharedDataI );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::DisableSharedDataAndMonitor
-// -----------------------------------------------------------------------------
-//
-void CScreensaverEngine::DisableSharedDataAndMonitor( )
- {
- delete iSharedDataMonitor;
- iSharedDataMonitor = NULL;
-
- delete iSharedDataI;
- iSharedDataI = NULL;
-
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::StartActivityMonitoringL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverEngine::StartActivityMonitoringL( )
- {
- // Actually screensaver is the last exe to be launch at the startup,
- // so when it is being launched the elapsed time(User::InactivityTime())
- // is greater than the interval (15 sec) which screensaver pass to start
- // activitymanager for inactivitycallback.
- // So it has to do to reset inactivitytime (User::ResetInactivityTime() )
- // once in the screensaver constructor so that the inactivity callback
- // called after the interval time expired.
- User::ResetInactivityTime();
-
- // Start monitoring activity for screensaver
- iActivityManagerScreensaver
- = CScreensaverActivityManager::NewL( CActive::EPriorityUserInput );
- iActivityManagerScreensaver->Start( Timeout(),
- TCallBack( HandleInactiveEventL,this ),
- TCallBack( HandleActiveEventL, this ) );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::StopActivityMonitoring
-// -----------------------------------------------------------------------------
-//
-void CScreensaverEngine::StopActivityMonitoring( CScreensaverActivityManager*& aActivityManager )
- {
- if ( aActivityManager )
- {
- aActivityManager->Cancel();
- delete aActivityManager;
- aActivityManager = NULL;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::SetupColorModelL
-// THIS IS TEMPORARY VERSION OF SetupColorModelL function. It is used until
-// new version of LcdPartialMode module is integrated.
-// -----------------------------------------------------------------------------
-//
-void CScreensaverEngine::SetupColorModelL()
- {
- SCRLOGGER_WRITEF(_L("SCR: Inside CScreensaverEngine::SetupColorModelL()") );
- TResourceReader reader;
- TInt i, ctmp;
-
- TInt suggestedDrawingMode;
-
- CEikonEnv::Static()->CreateResourceReaderLC( reader, R_SCREENSAVER_COLOR_MODEL );
- suggestedDrawingMode = reader.ReadInt32( );
-
- //
- // Let's find out how many partial modes hardware
- // actually supports.
- //
- AddPartialModeLevel( (TInt)3,
- (TScreensaverPartialModeType)EPartialModeTypeMostPowerSaving );
- AddPartialModeLevel( (TInt)3,
- (TScreensaverPartialModeType)EPartialModeTypeDefault );
- AddPartialModeLevel( (TInt)16,
- (TScreensaverPartialModeType)EPartialModeTypeFull );
-
- if ( suggestedDrawingMode == ESsColorModel3BitMode )
- {
- // This can always be done, just set default partial mode to
- // most power saving. First try 'most power saving' and if not supported
- // then try default. if default isn't supported leave with error code.
- iColorModel.iSystemPartialMode.iBpp = 3;
- iColorModel.iSystemPartialMode.iType
- = EPartialModeTypeMostPowerSaving;
- }
-
- // Read color indices for 3-bit mode.
- reader.Read( iColorModel.iColors, 8 * sizeof(TInt16) );
-
- // Read rgb values for gradient effect.
- for (i = 0; i < 6; i++ )
- {
- ctmp = reader.ReadInt32( );
- iColorModel.iDarkGradient[i] = TRgb( ctmp );
- }
-
- for (i = 0; i < 6; i++ )
- {
- ctmp = reader.ReadInt32( );
- iColorModel.iLightGradient[i] = TRgb( ctmp );
- }
-
- CleanupStack::PopAndDestroy( ); // reader
- }
-
-// ----------------------------------------------------------------------------
-// CScreensaverEngine::StartPreviewTimer
-// -----------------------------------------------------------------------------
-//
-void CScreensaverEngine::StartPreviewTimer()
- {
- SCRLOGGER_WRITEF(_L("SCR: Inside CScreensaverEngine::StartPreviewTimer()") );
-
- KillTimer( iPreviewTimer );
-
- TRAP_IGNORE( iPreviewTimer = CPeriodic::NewL( CActive::EPriorityHigh ) );
-
- iPreviewTimer->Start( KPreviewTimeout, KPreviewTimeout, TCallBack(
- HandlePreviewTimerExpiry, this ) );
-
- SCRLOGGER_WRITEF(_L("SCR: iPreviewTimer->Start(%d, %d, HandlePreviewTimerTimeout)"),
- KPreviewTimeout,KPreviewTimeout);
- }
-
-// ----------------------------------------------------------------------------
-// CScreensaverEngine::StartPauseTimer
-// -----------------------------------------------------------------------------
-//
-void CScreensaverEngine::StartPauseTimer()
- {
- if ( iScreenSaverIsPreviewing )
- {
- iPauseTimerStartedAfterPreview = ETrue;
- }
-
- TInt timeout = ( iScreenSaverIsPreviewing )? KTimeoutPreviewLocked :
- KTimeoutShort;
-
- KillTimer( iPauseTimer );
-
- TRAP_IGNORE( iPauseTimer = CPeriodic::NewL( CActive::EPriorityHigh ) );
-
- if ( !iPauseTimer )
- {
- HandlePauseTimerExpiry( this );
- return;
- }
-
- iPauseTimer->Start( timeout, timeout, TCallBack(
- HandlePauseTimerExpiry, this ) );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::KillTimer
-// Stops and deletes a timer
-// -----------------------------------------------------------------------------
-//
-void CScreensaverEngine::KillTimer( CPeriodic*& aTimer )
- {
- if ( aTimer )
- {
- aTimer->Cancel( );
- delete aTimer;
- aTimer = NULL;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::HandlePreviewTimerExpiry
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverEngine::HandlePreviewTimerExpiry( TAny* aPtr )
- {
- CScreensaverEngine* Engine = STATIC_CAST(CScreensaverEngine*, aPtr);
- SCRLOGGER_WRITEF(_L("SCR: Inside CScreensaverView::HandlePreviewTimerTimeout()"));
-
- Engine->KillTimer( Engine->iPreviewTimer );
- Engine->StopScreenSaver();
-
- return KErrNone;
- }
-
-// ---------------------------------------------------------------------------
-// CScreensaverEngine::HandlePauseTimerExpiry
-// ---------------------------------------------------------------------------
-//
-TInt CScreensaverEngine::HandlePauseTimerExpiry( TAny* aPtr )
- {
- CScreensaverEngine* _this= STATIC_CAST(CScreensaverEngine*, aPtr);
- _this->KillTimer( _this->iPauseTimer );
- _this->iPauseTimerStartedAfterPreview = EFalse;
-
- if ( _this->iSharedDataI->IsKeyguardOn() )
- {
- SCRLOGGER_WRITE("HandleInactiveEventShortL() starting saver");
- _this->StartScreenSaver( );
- }
-
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::HandleActiveEventL
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverEngine::HandleActiveEventL( TAny* aPtr )
- {
- SCRLOGGER_WRITE("HandleActiveEventL(), stop if previewing");
- CScreensaverEngine* _this= STATIC_CAST(CScreensaverEngine*, aPtr);
- if ( !_this->iSharedDataI->IsKeyguardOn() )
- {
- _this->StopScreenSaver();
- }
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::HandleInactiveEventL
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverEngine::HandleInactiveEventL( TAny* aPtr )
- {
- SCRLOGGER_WRITE("HandleInactiveEventL(), starting screensaver");
-
- CScreensaverEngine* _this= STATIC_CAST(CScreensaverEngine*, aPtr);
- // Inactivity is detected immediately when preview starts
- if ( _this->iScreenSaverIsPreviewing )
- {
- _this->ResetInactivityTimeout();
- return KErrNone;
- }
- // Double-start is OK, it will be checked in StartScreenSaver()
- // This will be trigged by keylock activation after keyguard
- // timeout, or if keylock is disabled
- if ( !_this->iSharedDataI->IsOngoingCall() )
- {
- _this->StartScreenSaver( );
- }
-
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::HandleSuspendTimerExpiry
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverEngine::HandleSuspendTimerExpiry( TAny* aPtr )
- {
- CScreensaverEngine* control= STATIC_CAST(CScreensaverEngine*, aPtr);
- SCRLOGGER_WRITEF(_L("SCR: Inside CScreensaverEngine::HandleSuspendTimerExpiry()"));
-
- control->KillTimer( control->iSuspendTimer );
-
- control->View()->SetDisplayObject( EDisplayPlugin );
- control->View()->ShowDisplayObject();
-
- return KErrNone;
- }
-
-// ---------------------------------------------------------------------------
-// CScreensaverEngine::HandleKeyguardStateChanged
-// ---------------------------------------------------------------------------
-//
-void CScreensaverEngine::HandleKeyguardStateChanged( TBool aEnabled )
- {
- if ( aEnabled )
- {
- // Keys locked - if screensaver is running, this was caused by
- // automatic keyguard and screensaver should refresh the view
- // to show the keylock indicator
- if ( iScreenSaverIsOn && !iScreenSaverIsPreviewing )
- {
- View()->UpdateAndRefresh();
- }
- if ( !( iPauseTimerStartedAfterPreview &&
- iPauseTimer && iPauseTimer->IsActive() ) )
- {
- StartScreenSaver();
- }
- }
- else
- {
- StopScreenSaver();
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::View
-// -----------------------------------------------------------------------------
-//
-CScreensaverView* CScreensaverEngine::View() const
- {
- return STATIC_CAST( CScreensaverAppUi*, CCoeEnv::Static()->AppUi() )->ScreensaverView();
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::Timeout
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverEngine::Timeout( )
- {
- return iSharedDataI->ScreensaverTimeout( );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::DisplayFlag
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverEngine::DisplayFlag( )
- {
- return iSharedDataI->IsScreenSaverAllowed();
- }
-
-
-// -----------------------------------------------------------------------------
-// Handles expire timer timeout
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverEngine::HandleExpiryTimerExpiry( TAny* aPtr )
- {
- SCRLOGGER_WRITEF( _L( "SCR:CScreensaverEngine::HandleExpiryTimerExpiry(%d) start" ), aPtr );
- CScreensaverEngine *control = STATIC_CAST( CScreensaverEngine*, aPtr );
-
- if ( control )
- {
- control->KillTimer( control->iExpiryTimer );
- // Revert to default screensaver.
- control->View()->SetDisplayObject(
- control->SharedDataInterface()->DefaultScreensaverType() );
- control->View()->ShowDisplayObject();
- }
-
- return KErrNone;
- }
-
-
-// ---------------------------------------------------------------------------
-// Callback to do the screensaver starting.
-// ---------------------------------------------------------------------------
-//
-TInt CScreensaverEngine::StartSaverCb( TAny* aPtr )
- {
- CScreensaverEngine* self = static_cast<CScreensaverEngine*>( aPtr );
- // connect in StartScreenSaver, intercept and capture application
- // key event. It makes sure this event will not be received
- // by other applictions when screensaver is activated.
- self->iAknUiServer.ConnectAndSendAppsKeySuppress(ETrue);
- self->iScreenSaverIsOn = ETrue;
-
- // Report whether started from Idle BEFORE bringing to foreground
- self->iSharedDataI->SetSSStartedFromIdleStatus();
-
- if ( !self->View()->IsContentlessScreensaver() )
- {
- ScreensaverUtility::BringToForeground();
- }
-
- SCRLOGGER_WRITE("Model: SS is displaying (BringToForeground)");
-
- // Compress heap while displaying. No longer possible to
- // compress all heaps (User::CompressAllHeaps() is a no-op)
- User::Heap().Compress();
-
- self->iSharedDataI->SetDisplayObjChanged( EFalse );
-
- self->DisplayObject();
-
- return KErrNone;
- }
-
-
-// End of file.
--- a/src/screensaverindicator.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,220 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Implementation screensaver indicator array.
-*
-*/
-
-
-
-#include <AknUtils.h>
-#include <barsread.h>
-#include <biditext.h>
-#include <AknsConstants.h>
-#include <AknsUtils.h>
-#include <aknlayout.cdl.h>
-#include <AknLayoutFont.h>
-#include <screensaver.rsg>
-
-#include "screensaverplugin.h"
-#include "screensaverindicator.h"
-#include "ScreensaverUtils.h"
-
-
-
-//
-// CSCreensaverIndicator
-//
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicator::~CScreensaverIndicator
-// -----------------------------------------------------------------------------
-//
-CScreensaverIndicator::~CScreensaverIndicator()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicator::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicator::ConstructL(TResourceReader &aReader,
- TUint32 aBgColor, TUint aTextColor)
- {
- iId = (TScreensaverIndicatorId)aReader.ReadInt16();
- iDrawType = (TScreensaverDrawType)aReader.ReadInt16();
- iAlignment = (TScreensaverAlignment)aReader.ReadInt16();
-
- // Switch left & right alignment of indicators, if layout mirrored
- if (AknLayoutUtils::LayoutMirrored())
- {
- if (iAlignment == ESsAlignLeft)
- {
- iAlignment = ESsAlignRight;
- }
- else
- {
- iAlignment = ESsAlignLeft;
- }
- }
- iBgColor = TRgb(aBgColor);
- iTextColor = TRgb(aTextColor);
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicator::SetId
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicator::SetId(TScreensaverIndicatorId aId)
- {
- iId = aId;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicator::Visible
-// -----------------------------------------------------------------------------
-//
-TBool CScreensaverIndicator::Visible() const
- {
- return iVisible;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicator::SetVisibility
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicator::SetVisibility(TBool aValue)
- {
- iVisible = aValue;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicator::Width()
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverIndicator::Width() const
- {
- return iRect.Width();
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicator::Id
-// -----------------------------------------------------------------------------
-//
-TScreensaverIndicatorId CScreensaverIndicator::Id() const
- {
- return iId;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicator::Alignment
-// -----------------------------------------------------------------------------
-//
-TScreensaverAlignment CScreensaverIndicator::Alignment() const
- {
- return iAlignment;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicator::DrawType
-// -----------------------------------------------------------------------------
-//
-TScreensaverDrawType CScreensaverIndicator::DrawType() const
- {
- return iDrawType;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicator::MakeSkinItemId
-// -----------------------------------------------------------------------------
-//
-TAknsItemID CScreensaverIndicator::MakeSkinItemId(TInt aSkinBmpId)
- {
- TAknsItemID id;
- // All are AVKON generic ids
- id.Set(EAknsMajorGeneric, aSkinBmpId);
- return id;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicator::SetType
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicator::SetType(TScreensaverIndicatorType aType)
- {
- iType = aType;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicator::Type
-// -----------------------------------------------------------------------------
-//
-TScreensaverIndicatorType CScreensaverIndicator::Type()
- {
- return iType;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicator::SetIconLayout
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicator::SetIconLayout(TAknLayoutRect&, TInt)
- {
- iVisible = ETrue;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicator::SetTextLayout
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicator::SetTextLayout(TAknLayoutText&, TInt)
- {
- iVisible = ETrue;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicator::PreferredWidth
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverIndicator::PreferredWidth()
- {
- return -1;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicator::MinimumWidth
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverIndicator::MinimumWidth()
- {
- return 0;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicator::SetWidth
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicator::SetWidth(TInt)
- {
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicator::SetXPos
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicator::SetXPos(TInt)
- {
- }
-
-
-// End of file.
--- a/src/screensaverindicatorarray.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,498 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: CScreensaverIndicatorArray implementation.
-*
-*/
-
-
-
-#include <barsread.h>
-#include <screensaver.rsg>
-#include <AknUtils.h>
-
-#include "screensaverindicatorarray.h"
-#include "screensaverindicatornumberandicon.h"
-#include "screensaverindicatortext.h"
-#include "screensaverindicatoricon.h"
-#include "screensaverutility.h"
-
-const TInt KInvertedColors = 1;
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicatorArray::NewL
-// -----------------------------------------------------------------------------
-//
-CScreensaverIndicatorArray* CScreensaverIndicatorArray::NewL( TBool aColorInversionUsed )
- {
- CScreensaverIndicatorArray* array = new(ELeave) CScreensaverIndicatorArray();
- CleanupStack::PushL(array);
- array->ConstructL( aColorInversionUsed );
- CleanupStack::Pop(); // array
-
- return array;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicatorArray::~CScreensaverIndicatorArray
-// -----------------------------------------------------------------------------
-//
-CScreensaverIndicatorArray::~CScreensaverIndicatorArray()
- {
- if (iIndicators)
- {
- iIndicators->ResetAndDestroy();
- }
- delete iIndicators;
- delete iDependencyRecord;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicatorArray::NewIndicatorLC
-// -----------------------------------------------------------------------------
-//
-CScreensaverIndicator *CScreensaverIndicatorArray::NewIndicatorLC(
- TScreensaverIndicatorType aId)
- {
- CScreensaverIndicator *result= NULL;
-
- switch (aId)
- {
- case ESsIconIndicator:
- result = new( ELeave ) CScreensaverIndicatorIcon();
- break;
- case ESsTextIndicator:
- result = new( ELeave ) CScreensaverIndicatorText();
- break;
- case ESsNumberAndIconIndicator:
- result = new( ELeave ) CScreensaverIndicatorNumberAndIcon();
- break;
- default:
- User::Leave(KErrCorrupt);
- }
-
- CleanupStack::PushL( result );
- result->SetType(aId);
-
- return result;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicatorArray::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorArray::ConstructL( TBool aColorInversionUsed )
- {
- if (aColorInversionUsed == KInvertedColors)
- {
- iBgColor = TRgb(KRgbBlack).Value();
- iTextColor = TRgb(KRgbWhite).Value();
- }
- else //aColorInversionUsed == KNormalColors
- {
- iBgColor = TRgb(KRgbWhite).Value();
- iTextColor = TRgb(KRgbBlack).Value();
- }
-
- ConstructFromResourceL();
-
- }
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicatorArray::ConstructFromResourceL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorArray::ConstructFromResourceL()
- {
- ConstructParamFromResourceL();
-
- ConstructIndArrayL();
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicatorArray::ConstructParamFromResourceL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorArray::ConstructParamFromResourceL()
- {
- TResourceReader reader;
-
- CEikonEnv::Static()->CreateResourceReaderLC( reader, R_SCREENSAVER_PARAMETERS );
- iMargin = reader.ReadInt16();
- iGap = reader.ReadInt16();
- iTopMargin = reader.ReadInt16();
- iTextLevel = reader.ReadInt16();
- iHeight = reader.ReadInt16();
- CleanupStack::PopAndDestroy(); // reader
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicatorArray::ConstructIndArrayL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorArray::ConstructIndArrayL()
- {
- if( AknLayoutUtils::ScalableLayoutInterfaceAvailable() )
- {//use the new layout
- ConstructIndicatorsL( R_SCREENSAVER_INDICATOR_ARRAY_NEW_LAYOUT );
- }
- else
- {//use the old layout
- ConstructIndicatorsL( R_SCREENSAVER_INDICATOR_ARRAY );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicatorArray::ConstructIndicatorsL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorArray::ConstructIndicatorsL( TInt aResourceId )
- {
- TResourceReader reader;
-
- CEikonEnv::Static()->CreateResourceReaderLC(
- reader, aResourceId);
-
- iCount = reader.ReadInt16();
-
- iIndicators = new( ELeave ) CArrayPtrFlat<CScreensaverIndicator>( iCount );
- iDependencyRecord = new( ELeave ) CArrayFixFlat<TBool>( iCount );
-
- CScreensaverIndicator *nInd;
- TInt32 type;
- for (TInt i = 0; i < iCount; i++)
- {
- iDependencyRecord->AppendL( ETrue );
- type = reader.ReadInt32();
- nInd = NewIndicatorLC( ( TScreensaverIndicatorType ) type );
- nInd->ConstructL( reader, iBgColor, iTextColor );
- iIndicators->InsertL( 0, nInd );
- CleanupStack::Pop(); // nInd
- }
-
- CleanupStack::PopAndDestroy(); // reader
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicatorArray::Dependency
-// -----------------------------------------------------------------------------
-//
-TBool CScreensaverIndicatorArray::Dependency(TInt aIndex) const
- {
- return (*iDependencyRecord)[aIndex];
- }
-// -----------------------------------------------------------------------------
-// CScreensaverIndicatorArray::Setup
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorArray::Setup( TAknLayoutRect& aLayoutRect,
- TAknLayoutText& aLayoutText, TAknLayoutRect& aLayoutInds )
- {
- // Reset drawing parameters (do not use those defined in resources)
- iRect = aLayoutRect.Rect();
-
- TInt rightMargin = 0;
- // Left margin = indicators left edge - indicator area left edge
- // Right margin = 0, the AM/PM indicator needs to be on the edge
- // Except when mirrored the other way around. Right margin can be reduced
- // by 1 when mirrored, because the icons contain a border on top & right
- if ( AknLayoutUtils::LayoutMirrored() )
- {
- iMargin = 0;
- rightMargin = aLayoutInds.Rect().iTl.iX - iRect.iTl.iX - 1;
- }
- else
- {
- iMargin = aLayoutInds.Rect().iTl.iX - iRect.iTl.iX;
- rightMargin = 0;
- }
-
- TInt currentX = iRect.iBr.iX - rightMargin;
-
- TInt leftmostRightAlignedBorder = iRect.iBr.iX - rightMargin; // iMargin;
-
- // This is done in two passes, first we set up right-aligned indicators
- // and then left-aligned. If any left-aligned indicator overlaps with leftmost
- // right-aligned indicator the the process is stopped (right-aligned
- // indicators have higher priority).
- for ( TInt i = 0; i < iIndicators->Count(); i++ )
- {
- if (iIndicators->At(i)->Alignment() != ESsAlignRight)
- {
- continue;
- }
-
- SetIndicatorsAttribute( i, aLayoutText, aLayoutInds, currentX );
-
- if (iIndicators->At(i)->Visible())
- {
- currentX -= iIndicators->At(i)->Width() + iGap;
- leftmostRightAlignedBorder = currentX;
- if (currentX < iMargin)
- {
- break;
- }
- }
- }
-
- // Start second round from left edge
- currentX = iRect.iTl.iX + iMargin;
- for ( TInt i = 0; i < iIndicators->Count(); i++ )
- {
- if (iIndicators->At(i)->Alignment() != ESsAlignLeft)
- {
- continue;
- }
-
- SetIndicatorsAttribute( i, aLayoutText, aLayoutInds, currentX );
-
- if (iIndicators->At(i)->Visible())
- {
- if (currentX + iIndicators->At(i)->Width() + iGap >= leftmostRightAlignedBorder)
- {
- iIndicators->At(i)->SetVisibility(EFalse);
- break;
- }
- currentX += iIndicators->At(i)->Width() + iGap;
- if (currentX > iRect.Width() - iMargin)
- {
- break;
- }
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicatorArray::SetIndicatorsAttribute
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorArray::SetIndicatorsAttribute(
- TInt& Ind,
- TAknLayoutText& aLayoutText,
- TAknLayoutRect& aLayoutInds,
- TInt& aCurrentX )
- {
-
- // Set text layout for text containing indicators
- iIndicators->At(Ind)->SetTextLayout(aLayoutText, aCurrentX);
-
- // Set icon layout for icon containing indicators
- iIndicators->At(Ind)->SetIconLayout(aLayoutInds, aCurrentX);
-
- // Not visible, if conditions (e.g. there's icon & payload) are not met,
- // or there's no reason to show the indicator
- if (!iIndicators->At(Ind)->CheckVisibilityConditions() || Dependency(iIndicators->At(Ind)->Id()))
- {
- iIndicators->At(Ind)->SetVisibility(EFalse);
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicatorArray::Draw
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorArray::Draw(CWindowGc& aGc) const
- {
- aGc.SetBrushColor(iBgColor);
- aGc.SetPenColor(iTextColor);
- aGc.Clear(iRect);
-
- for (TInt i = 0; i < iIndicators->Count(); i++)
- {
- if (iIndicators->At(i)->Visible())
- {
- iIndicators->At(i)->Draw(aGc);
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicatorArray::CheckDependencyConflict
-// -----------------------------------------------------------------------------
-//
-TBool CScreensaverIndicatorArray::CheckDependencyConflict(
- TScreensaverIndicatorId aId) const
- {
- if ((iDependencyRecord) && (aId < iCount))
- {
- return Dependency(aId);
- }
-
- return EFalse;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicatorArray::SetDependencyStatus
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorArray::SetDependencyStatus(
- TScreensaverIndicatorId aId, TBool aValue)
- {
- if ((iDependencyRecord) && (aId < iCount))
- {
- (*iDependencyRecord)[aId] = aValue;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicatorArray::GetIndicatorPayload
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverIndicatorArray::GetIndicatorPayload(
- TScreensaverIndicatorId aId, TIndicatorPayload& aPayload) const
- {
- if (aId < iCount)
- {
- for (TInt i = 0; i < iIndicators->Count(); i++)
- {
- if (aId == iIndicators->At(i)->Id())
- {
- iIndicators->At(i)->Payload(aPayload);
- return KErrNone;
- }
- }
- }
-
- return KErrCorrupt;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicatorArray::SetIndicatorPayload
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverIndicatorArray::SetIndicatorPayload(
- TScreensaverIndicatorId aId, const TIndicatorPayload& aPayload)
- {
- if (aId < iCount)
- {
- for (TInt i = 0; i < iIndicators->Count(); i++)
- {
- if (aId == iIndicators->At(i)->Id())
- {
- iIndicators->At(i)->SetPayload(aPayload);
- return KErrNone;
- }
- }
- }
-
- return KErrCorrupt;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicatorArray::PreferredDrawingMode
-// -----------------------------------------------------------------------------
-//
-TScreensaverDrawType CScreensaverIndicatorArray::PreferredDrawingMode() const
- {
- TScreensaverDrawType result = ESsDrawTypeNotDrawn; // Default mode.
-
- for (TInt i = 0; i < iIndicators->Count(); i++)
- {
- if ((iIndicators->At(i)->CheckVisibilityConditions() == EFalse)
- || (CheckDependencyConflict(iIndicators->At(i)->Id())))
- {
- // This indicator can't be visible or there is
- // dependency conflict -> continue.
- continue;
- }
-
- switch (iIndicators->At(i)->DrawType())
- {
- case ESsDrawTypePrimary:
- // Primary draw type overides everything,
- // so we can return immediately.
- return ESsDrawTypePrimary;
- case ESsDrawTypeSecondary:
- result = ESsDrawTypeSecondary;
- break;
- default:
- break;
- }
- }
-
- return result;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicatorArray::ActualDrawingMode
-// -----------------------------------------------------------------------------
-//
-TScreensaverDrawType CScreensaverIndicatorArray::ActualDrawingMode() const
- {
- TScreensaverDrawType result = ESsDrawTypeNotDrawn; // Default mode.
-
- for (TInt i = 0; i < iIndicators->Count(); i++)
- {
- if ((iIndicators->At(i)->CheckVisibilityConditions() == EFalse)
- || !( iIndicators->At(i)->Visible() ) )
- {
- // This indicator can't be visible or it is visible
- continue;
- }
-
- switch (iIndicators->At(i)->DrawType())
- {
- case ESsDrawTypePrimary:
- return ESsDrawTypePrimary; // Primary draw type overides everything.
- case ESsDrawTypeSecondary:
- result = ESsDrawTypeSecondary;
- break;
- default:
- break;
- }
- }
-
- return result;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicatorArray::Height
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverIndicatorArray::Height() const
- {
- return iHeight;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicatorArray::SetVisibilityForIndicators
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorArray::SetVisibilityForIndicators()
- {
- for (int i = 0; i < iIndicators->Count(); i++)
- {
- // Not visible, if conditions (e.g. there's icon & payload) are not met,
- // or there's no reason to show the indicator
- if (!iIndicators->At(i)->CheckVisibilityConditions() || Dependency(iIndicators->At(i)->Id()))
- {
- iIndicators->At(i)->SetVisibility(EFalse);
- }
- else
- iIndicators->At(i)->SetVisibility(ETrue);
- }
-
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIndicatorArray::CScreensaverIndicatorArray
-// -----------------------------------------------------------------------------
-//
-CScreensaverIndicatorArray::CScreensaverIndicatorArray()
- {
-
- }
-
-// End of files
--- a/src/screensaverindicatoricon.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,218 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: CScreensaverIndicatorIcon implementation.
-*
-*/
-
-
-
-#include <AknsUtils.h>
-#include <barsread.h>
-
-#include "screensaverindicatoricon.h"
-
-//
-// CScreensaverIconIndicator
-//
-
-// -----------------------------------------------------------------------------
-// CScreensaverIconIndicator::~CScreensaverIconIndicator
-// -----------------------------------------------------------------------------
-//
-CScreensaverIndicatorIcon::~CScreensaverIndicatorIcon()
- {
- delete iIcon;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIconIndicator::Draw
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorIcon::Draw(CWindowGc& aGc) const
- {
- aGc.SetPenColor(iTextColor);
- aGc.SetBrushColor(iBgColor);
- if (Visible() && iIcon)
- {
- if (!iIcon->Mask())
- {
- aGc.BitBlt(iTopLeft, iIcon->Bitmap(), iRect);
- }
- else
- {
- aGc.BitBltMasked(iTopLeft, iIcon->Bitmap(), iRect, iIcon->Mask(),
- ETrue);
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIconIndicator::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorIcon::ConstructL(TResourceReader &aReader,
- TUint32 aBgColor, TUint aTextColor)
- {
- CScreensaverIndicator::ConstructL(aReader, aBgColor, aTextColor);
-
- // Icon & mask ids
- TInt id = aReader.ReadInt32();
- TInt maskid = aReader.ReadInt32();
-
- // Icon & mask skin identifiers
- TInt skinid = aReader.ReadInt32();
- TInt skinmaskid = aReader.ReadInt32();
-
- iIcon = CGulIcon::NewL();
-
- CFbsBitmap* bmp= NULL;
- CFbsBitmap* mask= NULL;
-
- // Load skinned bitmap
- AknsUtils::CreateColorIconLC(AknsUtils::SkinInstance(),
- MakeSkinItemId(skinid),
- KAknsIIDNone, // Lie so that we get default color, not skin color
- 0, // No color group
- bmp, mask, AknIconUtils::AvkonIconFileName(), id, maskid,
- iTextColor);
-
- CleanupStack::Pop(2);
-
- // Save the icon
- iIcon->SetBitmap(bmp);
- iIcon->SetMask(mask);
-
- // Set initial size for SVG graphics, this is later altered
- // as the layout is known
- // Set desired size for SVG graphics (height from LAF, width 3 x height)
- TAknLayoutRect screenLayout;
- screenLayout.LayoutRect(TRect(0, 0, 0, 0), AknLayout::screen() );
- TRect screenRect = screenLayout.Rect();
- TAknLayoutRect powerSavePaneLayout;
- powerSavePaneLayout.LayoutRect(screenRect,
- AknLayout::Power_save_pane_descendants_Line_1() );
- TRect powerSavePaneRect = powerSavePaneLayout.Rect();
- TAknLayoutRect rect;
- rect.LayoutRect(powerSavePaneRect,
- AknLayout::Power_save_pane_descendants_Line_3() );
- TInt height = rect.Rect().Height();
- TSize iconSize(3 * height, height);
- AknIconUtils::SetSize(iIcon->Bitmap(), iconSize);
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIconIndicator::SetupDrawingParameters
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorIcon::SetupDrawingParameters(const TPoint &aCorner,
- const TRect& aParentRect)
- {
- iVisible = EFalse;
-
- if (!iIcon)
- {
- return;
- }
-
- TSize size = iIcon->Bitmap()->SizeInPixels();
- iTopLeft.iX = aCorner.iX;
- if (iAlignment == ESsAlignRight)
- {
- // Change topright to topleft.
- iTopLeft.iX -= size.iWidth;
- }
- // Center bitmap in y direction.
- iTopLeft.iY = aCorner.iY + (aParentRect.Size().iHeight / 2) - (size.iHeight / 2) - 2;
-
- iRect = TRect(0, 0, size.iWidth, size.iHeight);
-
- iVisible = ETrue;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIconIndicator::CheckVisibilityConditions
-// -----------------------------------------------------------------------------
-//
-TBool CScreensaverIndicatorIcon::CheckVisibilityConditions() const
- {
- return (iIcon == 0 ? EFalse : ETrue);
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIconIndicator::Payload
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorIcon::Payload(TIndicatorPayload& aPayload) const
- {
- aPayload.iType = EPayloadTypeIcon;
- aPayload.iInteger = -1;
- aPayload.iText = KNullDesC;
- aPayload.iIsDisplayed = Visible();
- aPayload.iIcon = iIcon;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIconIndicator::SetPayload
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorIcon::SetPayload(const TIndicatorPayload& /*aPayload*/)
- {
- // Nothing to set, payload is icon and it is created from resources.
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverIconIndicator::SetIconLayout
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorIcon::SetIconLayout(TAknLayoutRect& aLayout, TInt aX)
- {
- if (!iIcon)
- {
- ASSERT(iIcon);
- return;
- }
-
- // Resize icon according to layout
- TInt height = aLayout.Rect().Height();
- TSize iconSize(KMaxTInt, height);
- AknIconUtils::SetSize(iIcon->Bitmap(), iconSize,
- EAspectRatioPreservedAndUnusedSpaceRemoved);
-
- // Set vertical icon position according to layout (this overrides
- // what's already there. Also set correct width in iRect
- iTopLeft.iY = aLayout.Rect().iTl.iY;
- iTopLeft.iX = aX;
- TSize size = iIcon->Bitmap()->SizeInPixels();
- iRect = TRect(0, 0, size.iWidth, size.iHeight);
-
- if (iAlignment == ESsAlignRight)
- {
- // Change topright to topleft.
- iTopLeft.iX -= size.iWidth;
- }
-
-#ifdef SS_LAYOUTTRACE
- SCRLOGGER_WRITEF(_L("SCR: Icon indicator (%d):"), iId);
- SCRLOGGER_WRITEF(_L("SCR: Rect: (%d,%d,%d,%d)"),
- iRect.iTl.iX,
- iRect.iTl.iY,
- iRect.iBr.iX,
- iRect.iBr.iY);
- SCRLOGGER_WRITEF(_L("SCR: Size: (%d,%d)"), size.iWidth, size.iHeight);
- SCRLOGGER_WRITEF(_L("SCR: Pos: (%d,%d)"), iTopLeft.iX, iTopLeft.iY);
-#endif
- }
-
-
-// End of file
--- a/src/screensaverindicatornumberandicon.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,434 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: CScreensaverIndicatorNumberAndIcon implementation.
-*
-*/
-
-
-
-#include <barsread.h>
-#include <AknsUtils.h>
-#include <AknLayoutFont.h>
-
-#include "screensaverindicatornumberandicon.h"
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverNumberAndIconIndicator::~CScreensaverNumberAndIconIndicator
-// -----------------------------------------------------------------------------
-//
-CScreensaverIndicatorNumberAndIcon::~CScreensaverIndicatorNumberAndIcon()
- {
- delete iIcon;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverNumberAndIconIndicator::Draw
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorNumberAndIcon::Draw( CWindowGc& aGc ) const
- {
- TBuf<10> nStr;
- nStr.AppendNum( iValue );
-
- aGc.SetPenColor( iTextColor );
- aGc.SetBrushColor( iBgColor );
-
- if ( iFont )
- {
- aGc.UseFont( iFont );
- }
- else
- {
- ASSERT( iFont != NULL );
- aGc.UseFont( CEikonEnv::Static()->AnnotationFont() );
- }
-
- if ( Visible() && iIcon )
- {
- // Convert number according to language
- AknTextUtils::DisplayTextLanguageSpecificNumberConversion( nStr );
-
- DrawIcon( aGc );
-
- // Draw number beside icon
- if ( ( iTextRect.IsEmpty() ) || ( !iFont ) )
- {
- // Draw using text position (old layout)
- aGc.DrawText( nStr, iTextPos );
- }
- else
- {
- // Use text rect
- ASSERT( iTextOffset> 0 );
- aGc.DrawText( nStr, iTextRect, iTextOffset );
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverNumberAndIconIndicator::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorNumberAndIcon::ConstructL( TResourceReader &aReader,
- TUint32 aBgColor, TUint aTextColor )
- {
- CScreensaverIndicator::ConstructL( aReader, aBgColor, aTextColor );
-
- iIconAlign = ( TScreensaverAlignment )aReader.ReadInt32();
- iFont = AknLayoutUtils::FontFromId( aReader.ReadInt32() );
- if ( !iFont )
- {
- iFont = LatinPlain12();
- }
-
- // create icon
- InitializeIconL( aReader );
-
- // Set desired size for SVG graphics (height from LAF, width 3 x height)
- InitializeLayout();
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverNumberAndIconIndicator::SetupDrawingParameters
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorNumberAndIcon::SetupDrawingParameters(
- const TPoint& aCorner, const TRect& aParentRect )
- {
- iVisible = EFalse;
-
- TBuf<10> nStr;
-
- if ( !iIcon )
- {
- return;
- }
-
- nStr.AppendNum( iValue );
-
- TSize bmsize = iIcon->Bitmap()->SizeInPixels();
- TInt textWidth = iFont ? iFont->TextWidthInPixels( nStr ) + 1 : nStr.Length()
- * 11; // Should be enough for APAC too
-
- iTopLeft.iX = aCorner.iX;
- if ( iAlignment == ESsAlignRight )
- {
- // Change topright to topleft.
- iTopLeft.iX -= bmsize.iWidth + textWidth;
- }
- // Center bitmap in y direction.
- iTopLeft.iY = aCorner.iY + ( aParentRect.Size().iHeight / 2 ) - ( bmsize.iHeight / 2 ) - 2;
-
- // Calculate text corner
- if ( iIconAlign == ESsAlignLeft )
- {
- iTextPos.iX = iTopLeft.iX + bmsize.iWidth + 1;
- }
- else
- {
- iTextPos.iX = iTopLeft.iX;
- }
-
- iTextPos.iY = aCorner.iY + iRect.Size().iHeight / 2 + 4;
-
- iRect = TRect( 0, 0, bmsize.iWidth + textWidth, aParentRect.Size().iHeight );
-
- // Make sure text rect is not used
- iTextRect.SetRect( 0, 0, 0, 0 );
-
- iVisible = ETrue;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverNumberAndIconIndicator::CheckVisibilityConditions
-// -----------------------------------------------------------------------------
-//
-TBool CScreensaverIndicatorNumberAndIcon::CheckVisibilityConditions() const
- {
- if ( ( iIcon ) && ( iValue > 0 ) )
- {
- return ETrue;
- }
-
- return EFalse;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverNumberAndIconIndicator::Payload
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorNumberAndIcon::Payload( TIndicatorPayload& aPayload ) const
- {
- aPayload.iType = EPayloadTypeInteger;
- aPayload.iInteger = iValue;
- aPayload.iText = KNullDesC;
- aPayload.iIsDisplayed = Visible();
- aPayload.iIcon = iIcon;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverNumberAndIconIndicator::SetPayload
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorNumberAndIcon::SetPayload(
- const TIndicatorPayload& aPayload )
- {
- if ( aPayload.iType != EPayloadTypeInteger )
- {
- return;
- }
-
- iValue = aPayload.iInteger;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverNumberAndIconIndicator::SetIconLayout
-// Sets icon position and size
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorNumberAndIcon::SetIconLayout( TAknLayoutRect& aLayout,
- TInt aX )
- {
- if ( !iIcon )
- {
- ASSERT( iIcon );
- return;
- }
-
- // Resize icon according to layout
- TInt height = aLayout.Rect().Height();
- TSize iconSize(KMaxTInt, height);
- AknIconUtils::SetSize( iIcon->Bitmap(), iconSize,
- EAspectRatioPreservedAndUnusedSpaceRemoved );
-
- // Overrides vertical icon position set earlier
- iTopLeft.iY = aLayout.Rect().iTl.iY;
-
- // Set initial rect
- iRect = TRect( 0, 0, PreferredWidth(), height );
-
- // Set X-position
- SetXPos( aX );
-
-#ifdef SS_LAYOUTTRACE
- SCRLOGGER_WRITEF( _L("SCR: NumberAndIcon indicator (%d):"), iId );
- SCRLOGGER_WRITEF( _L("SCR: Icon rect: (%d,%d,%d,%d)"),
- iRect.iTl.iX,
- iRect.iTl.iY,
- iRect.iBr.iX,
- iRect.iBr.iY );
- TSize size = iIcon->Bitmap()->SizeInPixels();
- SCRLOGGER_WRITEF( _L("SCR: Icon size: (%d,%d)"), size.iWidth, size.iHeight );
- SCRLOGGER_WRITEF( _L("SCR: Icon pos: (%d,%d)"), iTopLeft.iX, iTopLeft.iY );
-#endif
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverNumberAndIconIndicator::SetTextLayout
-// Sets text position and font
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorNumberAndIcon::SetTextLayout( TAknLayoutText& aLayout,
- TInt /* aX */ )
- {
- // Font from layout
- iFont = aLayout.Font();
- // Layout MUST have a font
- ASSERT( iFont != NULL );
-
- // Vertical dimension of text rect from layout
- // (x-dims will be set separately)
- iTextRect = aLayout.TextRect();
-
- // Calculate text offset from rect top
- const CAknLayoutFont* layoutFont =
- CAknLayoutFont::AsCAknLayoutFontOrNull( iFont );
-
- if ( layoutFont )
- {
- iTextOffset = layoutFont->TextPaneTopToBaseline();
- }
- else
- {
- iTextOffset = iFont->AscentInPixels();
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverNumberAndIconIndicator::PreferredWidth
-// Return width where the whole indicator can be drawn
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverIndicatorNumberAndIcon::PreferredWidth()
- {
- // Preferred width = icon width + text width + a little gap in between
- TBuf<10> nStr;
- nStr.AppendNum( iValue );
-
- TInt width = iFont ? iFont->TextWidthInPixels( nStr ) : nStr.Length() * 11; // Should be enough for APAC too
-
- // Add icon width
- width += MinimumWidth();
-
- // Add a little gap between text and icon
- return width + 1;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverNumberAndIconIndicator::MinimumWidth
-// Get minimum width
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverIndicatorNumberAndIcon::MinimumWidth()
- {
- // Minimum width is icon width
- return ( iIcon ? ( iIcon->Bitmap()->SizeInPixels()).iWidth : 0 );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverNumberAndIconIndicator::SetXPos
-// Sets the x-position for the indicator
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorNumberAndIcon::SetXPos( TInt aX )
- {
- iVisible = EFalse;
-
- if ( !iIcon )
- {
- return;
- }
-
- TBuf<10> nStr;
- nStr.AppendNum( iValue );
-
- TSize bmsize = iIcon->Bitmap()->SizeInPixels();
- TInt textWidth = iFont ? iFont->TextWidthInPixels( nStr ) + 1 : nStr.Length()
- * 11; // Should be enough for APAC too
-
- iTopLeft.iX = aX;
- if ( iAlignment == ESsAlignRight )
- {
- // Change topright to topleft.
- iTopLeft.iX -= bmsize.iWidth + textWidth;
- }
-
- // Calculate text corner
- if ( iIconAlign == ESsAlignLeft )
- {
- iTextRect.iTl.iX = iTopLeft.iX + bmsize.iWidth;
- }
- else
- {
- iTextRect.iTl.iX = iTopLeft.iX;
- }
-
- iTextRect.SetWidth( textWidth );
-
- iVisible = ETrue;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverNumberAndIconIndicator::InitializeLayout
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorNumberAndIcon::InitializeLayout()
- {
- // Set desired size for SVG graphics (height from LAF, width 3 x height)
- TAknLayoutRect screenLayout;
- screenLayout.LayoutRect( TRect(0, 0, 0, 0), AknLayout::screen() );
- TRect screenRect = screenLayout.Rect();
- TAknLayoutRect powerSavePaneLayout;
- powerSavePaneLayout.LayoutRect( screenRect,
- AknLayout::Power_save_pane_descendants_Line_1() );
- TRect powerSavePaneRect = powerSavePaneLayout.Rect();
- TAknLayoutRect rect;
- rect.LayoutRect( powerSavePaneRect,
- AknLayout::Power_save_pane_descendants_Line_3() );
- TInt height = rect.Rect().Height();
- TSize iconSize( 2 * height, height );
- AknIconUtils::SetSize( iIcon->Bitmap(), iconSize );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverNumberAndIconIndicator::InitializeIconL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorNumberAndIcon::InitializeIconL( TResourceReader &aReader )
- {
- // Icon & mask ids
- TInt id = aReader.ReadInt32();
- TInt maskid = aReader.ReadInt32();
-
- // Icon & mask skin identifiers
- TInt skinid = aReader.ReadInt32();
- TInt skinmask = aReader.ReadInt32();
-
- iIcon = CGulIcon::NewL();
-
- CFbsBitmap* bmp= NULL;
- CFbsBitmap* mask= NULL;
-
- // Load skinned bitmap
- AknsUtils::CreateColorIconLC( AknsUtils::SkinInstance(),
- MakeSkinItemId( skinid ),
- KAknsIIDNone, // Lie so that we get default color, not skin color
- 0, // No color group
- bmp, mask, AknIconUtils::AvkonIconFileName(), id, maskid,
- iTextColor );
-
- CleanupStack::Pop( 2 );
-
- // Save the icon
- iIcon->SetBitmap( bmp );
- iIcon->SetMask( mask );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverNumberAndIconIndicator::DrawIcon
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorNumberAndIcon::DrawIcon( CWindowGc& aGc ) const
- {
- if ( iIconAlign == ESsAlignLeft )
- {
- if ( !iIcon->Mask() )
- {
- aGc.BitBlt( iTopLeft, iIcon->Bitmap(), iRect );
- }
- else
- {
- aGc.BitBltMasked( iTopLeft, iIcon->Bitmap(), iRect,
- iIcon->Mask(), ETrue );
- }
- }
- else
- {
- // Calculate icon left point (right edge - icon width)
- TPoint pTmp = TPoint( iTopLeft.iX + iRect.Size().iWidth - iIcon->Bitmap()->SizeInPixels().iWidth, iTopLeft.iY );
-
- if ( !iIcon->Mask() )
- {
- aGc.BitBlt( pTmp, iIcon->Bitmap(), iRect );
- }
- else
- {
- aGc.BitBltMasked( pTmp, iIcon->Bitmap(), iRect, iIcon->Mask(),
- ETrue );
- }
- }
- }
-
-// End of file
--- a/src/screensaverindicatortext.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,234 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: CScreensaverIndicatorText implementation.
-*
-*/
-
-
-
-#include <AknLayoutFont.h>
-#include <barsread.h>
-
-#include "screensaverindicatortext.h"
-
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverTextIndicator::Draw
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorText::Draw( CWindowGc& aGc ) const
- {
- if ( iFont )
- {
- aGc.UseFont( iFont );
- }
- aGc.SetPenColor( iTextColor );
-
- // Draw normal bidi text
- TBidiText* bidi= NULL;
- TRAPD( err, bidi = TBidiText::NewL( iText, 1 ) );
- if ( err == KErrNone )
- {
- bidi->WrapText( Width(), *iFont, NULL );
- if ( iTextRect.IsEmpty() )
- {
- bidi->DrawText( aGc, iTopLeft );
- }
- else
- {
- TPoint pt = iTextRect.iTl;
- pt.iY += iTextOffset;
- bidi->DrawText( aGc, pt );
- }
- delete bidi;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverTextIndicator::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorText::ConstructL( TResourceReader &aReader,
- TUint32 aBgColor, TUint aTextColor )
- {
- CScreensaverIndicator::ConstructL( aReader, aBgColor, aTextColor );
-
- iFont = AknLayoutUtils::FontFromId( aReader.ReadInt32() );
- if ( !iFont )
- {
- iFont = LatinPlain12();
- }
-
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverTextIndicator::SetupDrawingParameters
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorText::SetupDrawingParameters( const TPoint& aCorner,
- const TRect& aParentRect )
- {
- iVisible = EFalse;
-
- if ( iText.Length() <= 0 )
- {
- return;
- }
-
- TInt textWidth = ( iFont ? iFont->TextWidthInPixels(iText) + 1
- : iText.Length() * 11 ); // Should be enough for APAC too
-
- iRect = TRect( 0, 0, textWidth, aParentRect.Size().iHeight );
-
- iTopLeft.iX = aCorner.iX;
-
- if ( iAlignment == ESsAlignRight )
- {
- // Change topright to topleft.
- iTopLeft.iX -= iRect.Size().iWidth;
- }
-
- iTopLeft.iY = aCorner.iY + ( aParentRect.Size().iHeight / 2 ) + ( ( aParentRect.Size().iHeight - iFont->HeightInPixels() ) / 2 ) + 2;
-
- // Make sure text rect is not used
- iTextRect.SetRect( 0, 0, 0, 0 );
-
- iVisible = ETrue;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverTextIndicator::ConstructL
-// -----------------------------------------------------------------------------
-//
-TBool CScreensaverIndicatorText::CheckVisibilityConditions() const
- {
- return ( iText.Length() > 0 ? ETrue : EFalse );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverTextIndicator::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorText::Payload( TIndicatorPayload &aPayload ) const
- {
- aPayload.iType = EPayloadTypeText;
- aPayload.iText = iText;
- aPayload.iInteger = -1;
- aPayload.iIsDisplayed = Visible();
- aPayload.iIcon = NULL;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverTextIndicator::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorText::SetPayload( const TIndicatorPayload& aPayload )
- {
- if ( aPayload.iType != EPayloadTypeText )
- {
- return;
- }
-
- if ( aPayload.iText.Length() > iText.MaxLength() )
- {
- return; // Don't panic.
- }
-
- iText = aPayload.iText;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverTextIndicator::SetTextLayout
-// Sets text position and font
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorText::SetTextLayout( TAknLayoutText& aLayout, TInt aX )
- {
- // Font from layout
- iFont = aLayout.Font();
- // Layout MUST have a font
- ASSERT( iFont != NULL );
-
- // Vertical dimension of text rect from layout
- iTextRect = aLayout.TextRect();
-
- // Calculate text offset from rect top
- const CAknLayoutFont* layoutFont =
- CAknLayoutFont::AsCAknLayoutFontOrNull( iFont );
-
- if ( layoutFont )
- {
- iTextOffset = layoutFont->TextPaneTopToBaseline();
- }
- else
- {
- iTextOffset = iFont->AscentInPixels();
- }
-
- // X-pos from parameter
- iTextRect.iTl.iX = aX;
-
- // Initially set indicator rect (this may later be overridden by SetWidth())
- iRect = TRect( 0, 0, PreferredWidth(), aLayout.TextRect().Height() );
-
- // If right-aligned, the X-pos indicates right edge - switch to left
- if ( iAlignment == ESsAlignRight )
- {
- // Change topright to topleft.
- iTextRect.iTl.iX -= Width(); // iRect.Size().iWidth;
- }
-
- // Indicator width = text rect width
- iTextRect.SetWidth( Width() );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverTextIndicator::PreferredWidth
-// Gets preferred indicator width
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverIndicatorText::PreferredWidth()
- {
- TInt textWidth = ( iFont ? iFont->TextWidthInPixels( iText ) + 1
- : iText.Length() * 11 ); // Should be enough for APAC too
- return textWidth;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverTextIndicator::SetWidth
-// Sets indicator width
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorText::SetWidth( TInt iWidth )
- {
- iRect.SetWidth( iWidth );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverTextIndicator::SetXPos
-// Sets indicator X-position (new layout)
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorText::SetXPos( TInt aX )
- {
- iTopLeft.iX = aX;
- if ( iAlignment == ESsAlignRight )
- {
- // Change topright to topleft.
- iTopLeft.iX -= iRect.Size().iWidth;
- }
- }
-
-// End of file
--- a/src/screensaverrepositorywatcher.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,171 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: CScreensaverRepositoryWatcher implementation.
-*
-*/
-
-
-
-#include <centralrepository.h>
-
-#include "screensaverrepositorywatcher.h"
-#include "ScreensaverUtils.h"
-//
-// CScreensaverRepositoryWatcher
-//
-// -----------------------------------------------------------------------------
-// CScreensaverRepositoryWatcher::NewL
-// -----------------------------------------------------------------------------
-//
-CScreensaverRepositoryWatcher* CScreensaverRepositoryWatcher::NewL(
- const TUid aUid,
- const TUint32 aKey,
- CCenRepNotifyHandler::TCenRepKeyType aKeyType,
- TCallBack aCallBack,
- CRepository* aRepository)
- {
- CScreensaverRepositoryWatcher* self = new(ELeave) CScreensaverRepositoryWatcher(aUid, aKey, aCallBack, aRepository);
-
- CleanupStack::PushL(self);
- self->ConstructL(aKeyType);
- CleanupStack::Pop(self);
-
- return self;
- }
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverRepositoryWatcher::NewL
-// -----------------------------------------------------------------------------
-//
-CScreensaverRepositoryWatcher* CScreensaverRepositoryWatcher::NewL(
- const TUid aUid,
- TCallBack aCallBack,
- CRepository* aRepository)
- {
- CScreensaverRepositoryWatcher* self = new(ELeave) CScreensaverRepositoryWatcher(
- aUid, NCentralRepositoryConstants::KInvalidNotificationId, aCallBack, aRepository);
-
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
-
- return self;
- }
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverRepositoryWatcher::CScreensaverRepositoryWatcher
-// -----------------------------------------------------------------------------
-//
-CScreensaverRepositoryWatcher::~CScreensaverRepositoryWatcher()
- {
- if (iNotifyHandler)
- {
- iNotifyHandler->StopListening();
- delete iNotifyHandler;
- }
- }
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverRepositoryWatcher::CScreensaverRepositoryWatcher
-// -----------------------------------------------------------------------------
-//
-CScreensaverRepositoryWatcher::CScreensaverRepositoryWatcher(
- const TUid aUid,
- const TUint32 aKey,
- TCallBack aCallBack,
- CRepository* aRepository)
- :iUid(aUid), iKey(aKey), iCallBack(aCallBack), iRepository(aRepository)
- {
- }
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverRepositoryWatcher::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverRepositoryWatcher::ConstructL(CCenRepNotifyHandler::TCenRepKeyType aKeyType)
- {
- iNotifyHandler = CCenRepNotifyHandler::NewL(*this, *iRepository, aKeyType, iKey);
- iNotifyHandler->StartListeningL();
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverRepositoryWatcher::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverRepositoryWatcher::ConstructL()
- {
- iNotifyHandler = CCenRepNotifyHandler::NewL(*this, *iRepository);
- iNotifyHandler->StartListeningL();
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverRepositoryWatcher::ChangedKey
-// -----------------------------------------------------------------------------
-//
-TUint32 CScreensaverRepositoryWatcher::ChangedKey()
- {
- return iChangedKey;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverRepositoryWatcher::HandleNotifyInt
-// -----------------------------------------------------------------------------
-//
-void CScreensaverRepositoryWatcher::HandleNotifyInt(TUint32 aKey, TInt aNewValue)
- {
- SCRLOGGER_WRITEF(_L("SCR: HandleNotifyInt aKey=%d, aNewValue=%d"), aKey, aNewValue);
-
- iChangedKey = aKey;
- iCallBack.CallBack();
- iChangedKey = NCentralRepositoryConstants::KInvalidNotificationId;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverRepositoryWatcher::HandleNotifyString
-// -----------------------------------------------------------------------------
-//
-void CScreensaverRepositoryWatcher::HandleNotifyString(TUint32 aKey, const TDesC16& aNewValue)
- {
- SCRLOGGER_WRITEF(_L("SCR: HandleNotifyString aKey=%d, aNewValue=%S"), aKey, &aNewValue);
-
- iChangedKey = aKey;
- iCallBack.CallBack();
- iChangedKey = NCentralRepositoryConstants::KInvalidNotificationId;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverRepositoryWatcher::HandleNotifyGeneric
-// -----------------------------------------------------------------------------
-//
-void CScreensaverRepositoryWatcher::HandleNotifyGeneric(TUint32 aKey)
- {
- iChangedKey = aKey;
- iCallBack.CallBack();
- iChangedKey = NCentralRepositoryConstants::KInvalidNotificationId;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverRepositoryWatcher::HandleNotifyError
-// -----------------------------------------------------------------------------
-//
-void CScreensaverRepositoryWatcher::HandleNotifyError(TUint32 /*aKey*/, TInt /*aError*/, CCenRepNotifyHandler* /*aHandler*/)
- {
- }
-
-
-// End of file.
--- a/src/screensavershareddatai.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,969 +0,0 @@
-/*
-* Copyright (c) 2003-2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Implementation for screensaver shared data connections.
-*
-*/
-
-
-
-#include <msvids.h>
-#include <MProfileName.h> // Profile API, not yet included in .h
-#include <MProfileTones.h>
-#include <TProfileToneSettings.h>
-#include <centralrepository.h>
-#include <coreapplicationuisdomainpskeys.h> // KCoreAppUIsUipInd, KLightsVTForcedLightsOn
-#include <activeidle2domainpskeys.h> // KPSUidAiInformation
-#include <settingsinternalcrkeys.h> // KSettingsScreenSaverPeriod
-#include <LogsDomainCRKeys.h> // KLogsNewMissedCalls
-#include <ScreensaverInternalCRKeys.h>
-#include <AvkonInternalCRKeys.h> // KAknNewContactsNoteActive
-#include <avkondomainpskeys.h> // KAknKeyguardStatus
-#include <ctsydomaincrkeys.h> // Message (voice) waiting status
-#include <ctsydomainpskeys.h> // KCTsyCallState
-#include <startupdomainpskeys.h> // KPSGlobalSystemState
-#include <AknSkinsInternalCRKeys.h>
-#include <MProfileEngine.h> // Profile engine API
-#include <MProfile.h>
-#include <NcnListDomainCRKeys.h>
-
-#include "screensaverappui.h"
-#include "screensaverctrlmovingtext.h"
-#include "screensaverengine.h"
-#include "screensavershareddatai.h"
-#include "ScreensaverInternalPSKeys.h"
-#include "screensaverutility.h"
-#include "screensaverrepositorywatcher.h"
-#include "screensaversubscriber.h"
-
-const TInt KTimeoutDefault = 15; // seconds (also in GS)
-const TInt KTimeoutMin = 5; // minimum timeout in seconds (also in GS)
-
-// Screensaver "On/Off" status values
-const TInt KScreensaverOff = 0;
-const TInt KScreensaverOn = 1;
-
-// Screensaver activated from idle status values
-const TInt KScreensaverNotFromIdle = 0;
-const TInt KScreensaverStartedFromIdle = 1;
-
-// Screen saver text type.
-// _LIT( KScreenSaverTypeText, "Text" );
-// Screensaver "None" (Sleep mode)
-// _LIT( KScreenSaverTypeNone, "None" );
-
-// Define security policies for Screensavers property keys
-_LIT_SECURITY_POLICY_PASS(KSSPolicyPass);
-_LIT_SECURITY_POLICY_C1(KSSPolicyWriteUserData, ECapabilityWriteUserData);
-_LIT_SECURITY_POLICY_S0(KSSPolicyWriteSSOnly, 0x100056cf);
-
-//
-// CScreensaverSharedDataI
-//
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::NewL
-// -----------------------------------------------------------------------------
-//
-CScreensaverSharedDataI* CScreensaverSharedDataI::NewL()
- {
- CScreensaverSharedDataI* self = new (ELeave) CScreensaverSharedDataI();
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(); //self
- return self;
- }
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::~CScreensaverSharedDataI
-// -----------------------------------------------------------------------------
-//
-CScreensaverSharedDataI::~CScreensaverSharedDataI()
- {
- // Release the active profile resources
- InvalidateActiveProfile();
-
- // Release the profile engine
- if (iProfileEngine)
- {
- // No need to delete pointer, just release resources
- iProfileEngine->Release();
- }
-
- delete iScreensaverRepositoryWatcher;
- delete iScreensaverRepository;
- delete iSettingsRepositoryWatcher;
- delete iSettingsRepository;
- delete iCTsyRepository;
- delete iInboxFolder;
- delete iMsvSession;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::DisplayObjectType
-// -----------------------------------------------------------------------------
-//
-TDisplayObjectType CScreensaverSharedDataI::DisplayObjectType() const
- {
- TInt type = 0;
-
- if (iScreensaverRepository)
- {
- iScreensaverRepository->Get( KScreenSaverObject, type );
- }
-
- return ( TDisplayObjectType )type;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::SetDisplayObjectType
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::SetDisplayObjectType( const TDisplayObjectType aType )
- {
- if( iScreensaverRepository )
- {
- iScreensaverRepository->Set(KScreenSaverObject, aType);
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::GetDisplayObjectText
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::GetDisplayObjectText( TDes& aDes ) const
- {
- CEikonEnv::Static()->ReadResource(aDes, R_SCREEN_SAVER_TEXT);
-
- if ( iScreensaverRepository )
- {
- iScreensaverRepository->Get( KScreenSaverText, aDes );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::PluginName
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::GetPluginName( TFileName& aFileName ) const
- {
- if ( iScreensaverRepository )
- {
- iScreensaverRepository->Get( KScreenSaverPluginName, aFileName );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::ColorInversionUsed
-// -----------------------------------------------------------------------------
-//
-TBool CScreensaverSharedDataI::IsInvertedColors() const
- {
- TInt colorInversionUsed(0);
-
- if( iScreensaverRepository )
- {
- iScreensaverRepository->Get( KScreenSaverInvertedColors, colorInversionUsed );
- }
-
- return ( colorInversionUsed != 0 );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::ScreensaverTimeout
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverSharedDataI::ScreensaverTimeout() const
- {
- TInt timeout = KTimeoutDefault;
-
- if (iSettingsRepository)
- {
- iSettingsRepository->Get(KSettingsAutomaticKeyguardTime, timeout);
- }
- // No less than minimum timeout
- // Old backed up minutes 1-4 will cause default timeout after
- // being restored to new sw using seconds
- if (timeout < KTimeoutMin)
- {
- return KTimeoutDefault;
- }
-
- return timeout;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::IsNCNActive
-// -----------------------------------------------------------------------------
-//
-TBool CScreensaverSharedDataI::IsNCNActive() const
- {
- // Setting the flag here is also needed, because Screensaver should not
- // display new calls when Ncn note has been cancelled (even if the missed
- // calls count is still nonzero).
- // Also, when the phone is (re)started, and there are missed calls,
- // Ncn will pop a note, This is the only way Screensaver knows about that.
-
- CRepository* avkonRepository = NULL;
-
- TRAP_IGNORE( avkonRepository = CRepository::NewL( KCRUidAvkon ) );
-
- TInt value = 0;
-
- if ( avkonRepository )
- {
- avkonRepository->Get( KAknNewContactsNoteActive, value );
- }
-
- delete avkonRepository;
-
- return ( value != 0 );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::NewMissedCalls
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverSharedDataI::NewMissedCalls() const
- {
- CRepository* logsRepository = NULL;
-
- TRAP_IGNORE( logsRepository = CRepository::NewL( KCRUidLogs ) );
-
- TInt value = 0;
-
- if ( logsRepository )
- {
- logsRepository->Get( KLogsNewMissedCalls, value );
- }
-
- delete logsRepository;
-
- return value;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::SetSSForcedLightsOn
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::SetSSForcedLightsOn(TInt aSecs)
- {
- SCRLOGGER_WRITEF(_L("SCR: RequestLights(%d)"), aSecs);
-
- RProperty::Set( KPSUidCoreApplicationUIs, KLightsSSForcedLightsOn, aSecs );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::SetScreensaverStatus
-// Indicate whether Screensaver is active or not
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::SetScreensaverStatus( TBool aOn /* = ETrue */ )
- {
- //Check if the value is already updated. If so, setting the value again
- //will cause unnecessary call backs to any subscribers of this property
- if ( aOn )
- {
- RProperty::Set( KPSUidScreenSaver, KScreenSaverOn, KScreensaverOn );
- //else - no need to re-apply the same value
- }
- else //aOn is false
- {
- RProperty::Set( KPSUidScreenSaver, KScreenSaverOn, KScreensaverOff );
- //else - no need to re-apply the same value
-
- //if stop from idle, change the status
- RProperty::Set( KPSUidScreenSaver, KScreenSaverOn, KScreensaverNotFromIdle);
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::SetSSStartedFromIdleStatus
-// Set "Screensaver started from Idle" status
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::SetSSStartedFromIdleStatus()
- {
- TInt idleState = EPSAiBackground;
- RProperty::Get(KPSUidAiInformation, KActiveIdleState, idleState);
-
- if (idleState == EPSAiBackground)
- {
- RProperty::Set( KPSUidScreenSaver, KScreenSaverActivatedFromIdle, KScreensaverNotFromIdle );
- }
- else
- {
- RProperty::Set( KPSUidScreenSaver, KScreenSaverActivatedFromIdle, KScreensaverStartedFromIdle );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::IsScreenSaverAllowed
-// Set "Screensaver started from Idle" status
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverSharedDataI::IsScreenSaverAllowed() const
- {
- TInt value = 0;
-
- RProperty::Get( KPSUidScreenSaver, KScreenSaverAllowScreenSaver, value );
-
- return value;
- }
-
-TInt CScreensaverSharedDataI::ScreensaverPreviewMode() const
- {
- TInt value = 0;
-
- RProperty::Get( KPSUidScreenSaver, KScreenSaverPreviewMode, value );
-
- return value;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::SetScreensaverPreviewMode
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::SetScreensaverPreviewMode( const TInt aMode )
- {
- RProperty::Set( KPSUidScreenSaver, KScreenSaverPreviewMode, aMode );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::ScreensaverPreviewState
-// Get preview state
-// -----------------------------------------------------------------------------
-//
-TScreenSaverPreviewState CScreensaverSharedDataI::ScreensaverPreviewState() const
- {
- TInt state = EScreenSaverPreviewNone;
- RProperty::Get( KPSUidScreenSaver, KScreenSaverPreviewState, state );
-
- return ( TScreenSaverPreviewState ) state;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::SetScreensaverPreviewState
-// Report preview state
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::SetScreensaverPreviewState(
- const TScreenSaverPreviewState aState )
- {
- RProperty::Set( KPSUidScreenSaver, KScreenSaverPreviewState, aState );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::IsKeyguardOn
-// -----------------------------------------------------------------------------
-//
-TBool CScreensaverSharedDataI::IsKeyguardOn() const
- {
- // Report preview state
- TInt state = 0;
-
- RProperty::Get( KPSUidAvkonDomain, KAknKeyguardStatus, state );
-
- return ( state != 0 );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::IsUsePowerSaveMode
-// -----------------------------------------------------------------------------
-TBool CScreensaverSharedDataI::IsUsePowerSaveMode() const
- {
- TInt state = 0;
-
- // Check if power save mode has been denied
- RProperty::Get( KPSUidScreenSaver, KScreenSaverNoPowerSaveMode, state );
-
- return ( state != 1 );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::SystemStartupComplete
-// Returns whether system startup has been completed
-// -----------------------------------------------------------------------------
-//
-TBool CScreensaverSharedDataI::IsSystemStartupComplete()
- {
- if ( iStartupComplete == EFalse )
- {
- TInt startupState = -1;
- RProperty::Get( KPSUidStartup, KPSGlobalSystemState, startupState );
-
- switch (startupState)
- {
- case ESwStateNormalRfOn:
- case ESwStateNormalRfOff:
- case ESwStateNormalBTSap:
- iStartupComplete = ETrue;
- break;
- default:
- break;
- }
- }
- return iStartupComplete;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::DefaultScreensaverType
-// -----------------------------------------------------------------------------
-//
-TDisplayObjectType CScreensaverSharedDataI::DefaultScreensaverType() const
- {
- return iDefaultType;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::UnreadMessagesNumber
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverSharedDataI::UnreadMessagesNumber()
- {
- TInt numberOfUnreadMessages = 0;
- // Check how many unread messages there are in the In-box.
- if( !iInboxFolder )
- {
- TRAPD( err, ConnectToInboxL() );
- if (err != KErrNone)
- {
- return numberOfUnreadMessages;
- }
- }
-
- const TInt itemCount = iInboxFolder->Count();
- for ( TInt index = 0; index < itemCount; index++ )
- {
- const TMsvEntry entry = ( *iInboxFolder )[index];
- if ( entry.iType.iUid == KUidMsvMessageEntryValue && entry.Unread())
- {
- if( entry.Visible() )
- {
- numberOfUnreadMessages++;
- }
- }
- }
- return numberOfUnreadMessages;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::ProfileName
-// -----------------------------------------------------------------------------
-const TDesC& CScreensaverSharedDataI::ProfileName()
- {
- // Get the active profile name from profile engine, not from
- // shareddata ( may not be up-to-date after phone restart )
-
- if ( ConnectToActiveProfile() )
- {
- // Ectract profile name
- const MProfileName& profileName = iActiveProfile->ProfileName();
-
- return ( profileName.Name() );
- }
-
- return KNullDesC;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::ActiveProfile
-// -----------------------------------------------------------------------------
-TInt CScreensaverSharedDataI::ActiveProfile()
- {
- // Return the current profile Id
- TInt profileId = 0;
-
- // Connect to profile engine
- if ( ConnectToProfileEngine() )
- {
- profileId = iProfileEngine->ActiveProfileId();
- }
-
- return profileId;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::IsHaveNewEmail
-// -----------------------------------------------------------------------------
-TBool CScreensaverSharedDataI::IsHaveNewEmail() const
- {
- TInt state = 0;
- // Check the new email state from PubSub
- TInt error = RProperty::Get(
- KPSUidCoreApplicationUIs, KCoreAppUIsNewEmailStatus, state);
-
- SCRLOGGER_WRITEF(_L("SCR: QueryNewEmail state=%d error=%d"), state, error);
-
- if ( ( error == KErrNone ) && ( state == ECoreAppUIsNewEmail ) )
- {
- return ETrue;
- }
- else
- {
- return EFalse;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::IsHaveNewVoicemail
-// -----------------------------------------------------------------------------
-TBool CScreensaverSharedDataI::IsHaveNewVoicemail() const
- {
- // Show the indicator, if either line has messages waiting
- if ( ( VoiceMailCount( KCtsyMessageWaitingVoiceMailCount ) > 0 )
- || ( VoiceMailCount( KCtsyMessageWaitingAuxLineCount ) > 0 ) )
- {
- return ETrue;
- }
- else
- {
- return EFalse;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::IsHaveNewInstantMessages
-// -----------------------------------------------------------------------------
-TBool CScreensaverSharedDataI::IsHaveNewInstantMessages() const
- {
- TInt showValue = 0;
- TInt error = RProperty::Get(
- KPSUidCoreApplicationUIs, KCoreAppUIsUipInd, showValue);
-
- SCRLOGGER_WRITEF(_L("SCR: QueryNewInstantMessages state=%d error=%d"),
- showValue, error);
-
- return ( ( error == KErrNone ) && ( showValue == ECoreAppUIsShow ) );
- }
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::IsSilentMode
-// -----------------------------------------------------------------------------
-TBool CScreensaverSharedDataI::IsSilentMode()
- {
- // Connect to active profile, and return silent mode status
- if (ConnectToActiveProfile())
- {
- return iActiveProfile->IsSilent();
- }
-
- return EFalse;
- }
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::IsVibraMode
-// -----------------------------------------------------------------------------
-TBool CScreensaverSharedDataI::IsVibraMode()
- {
- // Get the active profile name from profile engine, not from
- // shareddata (may not be up-to-date after phone restart)
- if (ConnectToActiveProfile())
- {
- // Extract profile vibra setting
- return iActiveProfile->ProfileTones().ToneSettings().iVibratingAlert;
- }
-
- return EFalse;
- }
-
-// ---------------------------------------------------------------------------
-// CScreensaverSharedDataI::IsOngoingCall()
-// ---------------------------------------------------------------------------
-//
-TBool CScreensaverSharedDataI::IsOngoingCall()
- {
- TInt state = EPSCTsyCallStateUninitialized;
- // Check the call state from PubSub
- RProperty::Get( KPSUidCtsyCallInformation, KCTsyCallState, state );
-
- return ( state != EPSCTsyCallStateNone &&
- state != EPSCTsyCallStateUninitialized );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::HandleSessionEventL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::HandleSessionEventL(TMsvSessionEvent aEvent, TAny* /*aArg1*/, TAny* /*aArg2*/, TAny* /*aArg3*/)
- {
- switch (aEvent)
- {
- case EMsvEntriesChanged:
- AppUi()->ScreensaverView()->UpdateAndRefresh();
- break;
- case EMsvCloseSession:
- case EMsvServerTerminated:
- delete iInboxFolder;
- iInboxFolder = NULL;
- delete iMsvSession;
- iMsvSession = NULL;
- break;
- default:
- break;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::HandleEntryEventL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::HandleEntryEventL(TMsvEntryEvent /*aEvent */, TAny* /*aArg1*/, TAny* /*aArg2*/, TAny* /*aArg3*/)
- {
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::ScreensaverRepository
-// -----------------------------------------------------------------------------
-//
-CRepository* CScreensaverSharedDataI::ScreensaverRepository() const
- {
- return iScreensaverRepository;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::CScreensaverSharedDataI
-// -----------------------------------------------------------------------------
-//
-CScreensaverSharedDataI::CScreensaverSharedDataI()
- {
- iStartupComplete = EFalse;
- }
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::ConstructL()
- {
- GetDefaultType();
- ConnectToSSCRL();
- ConnectToPslnSettingCRL();
- ConnectToCommonTsyCRL();
-
- // Define and publish "Screensaver is on" property
- // Read: pass, Write: Screensaver only
- DefineScreensaverProperties( KScreenSaverOn, KSSPolicyWriteSSOnly );
-
- // Define and publish "Screensaver activated from idle" property
- // Read: pass, Write: Screensaver only
- DefineScreensaverProperties( KScreenSaverActivatedFromIdle, KSSPolicyWriteSSOnly );
-
- // Define and attach "allow screensaver property"
- // Read: Readuserdata, Write: writeuserdata
- DefineScreensaverProperties( KScreenSaverAllowScreenSaver, KSSPolicyWriteUserData );
-
- // Define and attach "screensaver preview property"
- // Read: Readuserdata, Write: writeuserdata
- DefineScreensaverProperties( KScreenSaverPreviewMode, KSSPolicyWriteUserData );
-
- // Define and attach "screensaver preview state property"
- // Read: Readuserdata, Write: writeuserdata
- DefineScreensaverProperties( KScreenSaverPreviewState, KSSPolicyWriteUserData );
-
- // Define and initialize "current plugin settings changed" property
- // Read: pass, Write: pass
- DefineScreensaverProperties( KScreenSaverPluginSettingsChanged, KSSPolicyPass );
-
- // Define and initialize "no power save mode" property
- // Read: pass, Write: pass
- DefineScreensaverProperties( KScreenSaverNoPowerSaveMode, KSSPolicyPass );
-
- DefineScreensaverProperties( KScreenSaverActivate, KSSPolicyWriteUserData );
-
- iDisplayChange = EFalse;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::ConnectToSSCR
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::ConnectToSSCRL()
- {
- iScreensaverRepository = CRepository::NewL( KCRUidScreenSaver );
-
- if( iScreensaverRepository )
- iScreensaverRepositoryWatcher = CScreensaverRepositoryWatcher::NewL(
- KCRUidScreenSaver,
- TCallBack( HandleDisplayObjChanged, this ),
- iScreensaverRepository );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::ConnectToPslnSettingCRL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::ConnectToPslnSettingCRL()
- {
- TRAPD(ret, iSettingsRepository = CRepository::NewL(KCRUidSecuritySettings));
-
- if( ret == KErrNone )
- {
- iSettingsRepositoryWatcher = CScreensaverRepositoryWatcher::NewL(
- KCRUidPersonalizationSettings,
- KSettingsAutomaticKeyguardTime,
- CCenRepNotifyHandler::EIntKey,
- TCallBack(HandleTimeoutChanged, this),
- iSettingsRepository);
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::ConnectToCommonTsyCRL
-// Connects to common tsy central repository
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::ConnectToCommonTsyCRL()
- {
- iCTsyRepository = CRepository::NewL( KCRUidCtsyMessageWaitingIndicator );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::ConnectToInboxL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::ConnectToInboxL()
- {
- if (!iMsvSession)
- {
- iMsvSession = CMsvSession::OpenSyncL( *this );
- }
- iInboxFolder = iMsvSession->GetEntryL( KMsvGlobalInBoxIndexEntryId );
-
- TMsvSelectionOrdering ordering = iInboxFolder->SortType();
- ordering.SetShowInvisibleEntries( EFalse );
- iInboxFolder->SetSortTypeL( ordering );
-
- iInboxFolder->AddObserverL( *this );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::ConnectToProfileEngine
-// Connect to Profile engine. Returns ETrue if successfully connected
-// -----------------------------------------------------------------------------
-//
-TBool CScreensaverSharedDataI::ConnectToProfileEngine()
- {
- // Check if already connected
- if ( iProfileEngine )
- {
- // Done
- return ETrue;
- }
- // The member variable is also used to indicate successful
- // connection, hence a pointer instead of just RSystemAgent
- TRAPD( err, ( iProfileEngine = CreateProfileEngineL() ) );
-
- if ( err != KErrNone )
- {
- // Something went wrong on allocation
- iProfileEngine = NULL;
- return EFalse;
- }
-
- // Successfully connected
- return ETrue;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::ClearPreviewFlag
-// Connect to current active Profile. Returns ETrue if successfully connected
-// -----------------------------------------------------------------------------
-//
-TBool CScreensaverSharedDataI::ConnectToActiveProfile()
- {
- InvalidateActiveProfile();
-
- if ( ConnectToProfileEngine() )
- {
- TRAPD( err, ( iActiveProfile = iProfileEngine->ActiveProfileL() ) );
- if ( ( err == KErrNone ) && ( iActiveProfile ) )
- {
- return ETrue;
- }
- }
- return EFalse;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::DefineScreensaverProperties
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::DefineScreensaverProperties(
- TUint32 aKey, const TSecurityPolicy& aWritePolicy )
- {
- RProperty::Define(
- KPSUidScreenSaver,
- aKey,
- RProperty::EInt,
- KSSPolicyPass,
- aWritePolicy );
-
- RProperty::Set( KPSUidScreenSaver, aKey, 0);
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::HandleTimeoutChanged
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverSharedDataI::HandleTimeoutChanged(TAny* aPtr)
- {
- STATIC_CAST(CScreensaverSharedDataI*, aPtr)->ResetInactivityTimeout();
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::ResetInactivityTimeout
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::ResetInactivityTimeout()
- {
- AppUi()->Model().ResetInactivityTimeout();
- }
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::HandleDisplayObjChanged
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverSharedDataI::HandleDisplayObjChanged(TAny* aPtr)
- {
- CScreensaverSharedDataI* self = STATIC_CAST(CScreensaverSharedDataI*, aPtr);
-
- self->SetDisplayObjChanged( ETrue );
-
- self->AppUi()->ScreensaverView()->SetDisplayObject( self->DisplayObjectType() );
-
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::GetDefaultType
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::GetDefaultType()
- {
-/*
-default type is hardcoded, so commented out below code.
-Remove the comment when default type is read from CenRep.
- //Store the default screensaver for this device
- TBuf<16> screensaverName;
-
- TInt error = GetDefaultTypeString( screensaverName );
-
- if ( KErrNone == error )
- {
- if ( screensaverName.CompareF( KScreenSaverTypeNone ) == 0 )
- {
- iDefaultType = EDisplayNone;
- }
- else if ( screensaverName.CompareF( KScreenSaverTypeText ) == 0 )
- {
- iDefaultType = EDisplayText;
- }
- else //go back to the "old" option, ie - Date type
- {
- iDefaultType = EDisplayTime;
- }
- }
-*/
-
-#ifdef USE_DATE_AND_TEXT
- iDefaultType = EDisplayTime;
-#else
- iDefaultType = EDisplayNone;
-#endif
-
-
-
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::GetDefaultTypeString
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverSharedDataI::GetDefaultTypeString( TDes& DefaultScreenSaver )
- {
- CRepository* skinsRepository = NULL;
- TRAP_IGNORE( skinsRepository = CRepository::NewL( KCRUidPersonalisation ) );
-
- TInt error = skinsRepository->Get( KPslnSystemDefaultScreenSaver,
- DefaultScreenSaver );
-
- delete skinsRepository;
-
- return error;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::VoiceMailCount
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverSharedDataI::VoiceMailCount( const TUint32 aKey ) const
- {
- TInt line(0);
- TInt error = KErrNone;
-
- error = iCTsyRepository->Get( aKey, line );
-
- if( error != KErrNone )
- {
- line = 0;
- }
-
- return line;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::InvalidateActiveProfile
-// Invalidate the cached active profile, so that next call to ConnectToActiveProfile
-// will use the newest profile data (in case it has changed)
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::InvalidateActiveProfile()
- {
- if (iActiveProfile)
- {
- iActiveProfile->Release();
- iActiveProfile = NULL;
- }
- }
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::SetDisplayObjChanged
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::SetDisplayObjChanged( TBool aChanged )
- {
- iDisplayChange = aChanged;
- }
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::GetDisplayObjChanged
-// -----------------------------------------------------------------------------
-//
-TBool CScreensaverSharedDataI::GetDisplayObjChanged()const
- {
- return iDisplayChange;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::AppUi
-// -----------------------------------------------------------------------------
-//
-CScreensaverAppUi *CScreensaverSharedDataI::AppUi() const
- {
- return STATIC_CAST( CScreensaverAppUi*, CCoeEnv::Static()->AppUi() );
- }
-// End of file.
--- a/src/screensavershareddatamonitor.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,376 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Implementation for screensaver shared data monitoring.
-*
-*/
-
-
-
-#include <coemain.h>
-#include <ScreensaverInternalCRKeys.h>
-#include <UsbWatcherInternalPSKeys.h>
-#include <avkondomainpskeys.h> // kaknkeyguardstatus
-#include <ctsydomainpskeys.h> // kpsuidctsycallinformation
-#include <startupdomainpskeys.h> // kpsglobalsystemstate
-#include <ScreensaverInternalPSKeys.h>
-#include <UikonInternalPSKeys.h> // kuikmmcinserted
-#include <hwrmpowerstatesdkpskeys.h>
-#include <ctsydomaincrkeys.h>
-#include <centralrepository.h>
-
-#ifdef RD_UI_TRANSITION_EFFECTS_PHASE2
-#include <akntransitionutils.h>
-#endif
-
-#include "screensavershareddatamonitor.h"
-#include "screensavershareddatai.h"
-#include "screensaverrepositorywatcher.h"
-#include "screensaverview.h"
-#include "screensaverengine.h"
-#include "screensaverappui.h"
-#include "screensaversubscriber.h"
-#include "screensaverutility.h"
-
-//System shuttingdown value
-const TInt KSystemShuttingdown = 1;
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataMonitor::~CScreensaverSharedDataMonitor
-// -----------------------------------------------------------------------------
-//
-CScreensaverSharedDataMonitor::~CScreensaverSharedDataMonitor()
- {
- DeleteSubscriber( iPreviewModeSubscriber );
- iPreviewModeProperty.Close();
-
- DeleteSubscriber( iMMCWatchSubscriber );
- iMMCWatchProperty.Close();
-
- DeleteSubscriber( iUSBWatchSubscriber );
- iUSBWatchProperty.Close();
-
- DeleteSubscriber( iKeyguardStateSubscriber );
- iKeyguardStateProperty.Close();
-
- DeleteSubscriber( iCallStateSubscriber );
- iCallStateProperty.Close();
-
- DeleteSubscriber( iShuttingDownSubscriber );
- iShuttingDownProperty.Close();
-
- DeleteSubscriber( iActivateSSSubscriber );
- iActivateSSProperty.Close();
-
- DeleteSubscriber( iChargerStateSubscriber );
- iChargerStateProperty.Close();
-
- delete iMessageWaitingWatcher;
- delete iMessageWaitingRepository;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataMonitor::NewL
-// -----------------------------------------------------------------------------
-//
-CScreensaverSharedDataMonitor* CScreensaverSharedDataMonitor::NewL( CScreensaverSharedDataI* aData )
- {
- CScreensaverSharedDataMonitor* self = new( ELeave )CScreensaverSharedDataMonitor( aData );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop(); // self;
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataMonitor::CScreensaverSharedDataMonitor
-// -----------------------------------------------------------------------------
-//
-CScreensaverSharedDataMonitor::CScreensaverSharedDataMonitor(
- CScreensaverSharedDataI* aData )
- :iData( aData )
- {
- // No implementation required
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataMonitor::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataMonitor::ConstructL()
- {
- User::LeaveIfError(iPreviewModeProperty.Attach(KPSUidScreenSaver, KScreenSaverPreviewMode));
- iPreviewModeSubscriber = new (ELeave) CSubscriber(TCallBack(HandlePreviewModeChanged, this), iPreviewModeProperty);
- iPreviewModeSubscriber->SubscribeL();
-
-
- // MMC watcher
- User::LeaveIfError(iMMCWatchProperty.Attach(KPSUidUikon, KUikMMCInserted));
- iMMCWatchSubscriber = new (ELeave) CSubscriber(
- TCallBack(HandleMMCStateChanged, this), iMMCWatchProperty);
- iMMCWatchSubscriber->SubscribeL();
-
- // USB watcher (MMC dismount)
- User::LeaveIfError(iUSBWatchProperty.Attach(
- KPSUidUsbWatcher, KUsbWatcherSelectedPersonality));
- iUSBWatchSubscriber = new (ELeave) CSubscriber(
- TCallBack(HandleUSBStateChanged, this), iUSBWatchProperty);
- iUSBWatchSubscriber->SubscribeL();
-
- // Keyguard state watcher
- User::LeaveIfError(iKeyguardStateProperty.Attach(
- KPSUidAvkonDomain, KAknKeyguardStatus));
- iKeyguardStateSubscriber = new (ELeave) CSubscriber(
- TCallBack(HandleKeyguardStateChanged, this), iKeyguardStateProperty);
- iKeyguardStateSubscriber->SubscribeL();
-
- // Call state watcher
- User::LeaveIfError(iCallStateProperty.Attach( KPSUidCtsyCallInformation, KCTsyCallState ) );
- iCallStateSubscriber = new (ELeave) CSubscriber(
- TCallBack(HandleCallStateChanged, this), iCallStateProperty);
- iCallStateSubscriber->SubscribeL();
-
- // Shutting down state watcher
- User::LeaveIfError( iShuttingDownProperty.Attach( KPSUidStartup, KPSGlobalSystemState ) );
- iShuttingDownSubscriber = new (ELeave) CSubscriber(
- TCallBack(HandleShuttingDownStateChanged, this), iShuttingDownProperty);
- iShuttingDownSubscriber->SubscribeL();
-
- User::LeaveIfError( iActivateSSProperty.Attach( KPSUidScreenSaver, KScreenSaverActivate ) );
- iActivateSSSubscriber = new( ELeave ) CSubscriber(
- TCallBack( HandleActivateSSChanged, this ), iActivateSSProperty );
- iActivateSSSubscriber->SubscribeL();
-
- User::LeaveIfError( iChargerStateProperty.Attach( KPSUidHWRMPowerState, KHWRMChargingStatus ) );
- iChargerStateSubscriber = new (ELeave) CSubscriber(
- TCallBack( HandleChargerStateChanged, this ), iChargerStateProperty );
- iChargerStateSubscriber->SubscribeL();
-
- iMessageWaitingRepository = CRepository::NewL( KCRUidCtsyMessageWaitingIndicator );
- iMessageWaitingWatcher = CScreensaverRepositoryWatcher::NewL( KCRUidCtsyMessageWaitingIndicator,
- TCallBack( HandleMessageWaitingStateChanged, this ),
- iMessageWaitingRepository );
-
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataMonitor::View
-// -----------------------------------------------------------------------------
-//
-CScreensaverView* CScreensaverSharedDataMonitor::View()
- {
- return STATIC_CAST( CScreensaverAppUi*, CCoeEnv::Static()->AppUi() )->ScreensaverView();
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataMonitor::Model
-// -----------------------------------------------------------------------------
-//
-CScreensaverEngine& CScreensaverSharedDataMonitor::Model()
- {
- return STATIC_CAST( CScreensaverAppUi*, CCoeEnv::Static()->AppUi() )->Model();
- }
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataMonitor::DeteleSubscriber
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataMonitor::DeleteSubscriber( CSubscriber*& aSubscriber )
- {
- if ( aSubscriber )
- {
- aSubscriber->StopSubscribe();
- }
- delete aSubscriber;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataMonitor::HandlePreviewModeChanged
-// Handles preview mode property key change. If key is changed to 1,
-// preview mode is started
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverSharedDataMonitor::HandlePreviewModeChanged(TAny *aPtr)
- {
- CScreensaverSharedDataMonitor *data = STATIC_CAST(CScreensaverSharedDataMonitor*, aPtr);
-
- if ( data->iData->ScreensaverPreviewMode() == 1)
- {
- TRAP_IGNORE( data->Model().StartPreviewModeL() );
- }
-
- return KErrNone;
- }
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataMonitor::HandleMMCStateChanged
-// Handles MMC state change callback. If current plugin is loaded from
-// MMC, screensaver defaults to date & time when MMC removed
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverSharedDataMonitor::HandleMMCStateChanged(TAny* aPtr)
- {
- User::ResetInactivityTime();
- STATIC_CAST(CScreensaverSharedDataMonitor*, aPtr)->Model().StopScreenSaver();
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataMonitor::HandleUSBStateChanged
-// Handles USB state change callback. If current plugin is loaded from
-// MMC, screensaver defaults to date & time when USB attached
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverSharedDataMonitor::HandleUSBStateChanged(TAny* aPtr)
- {
- // Same handler as in MMC removal, parameter tells it's because of USB
- User::ResetInactivityTime();
- STATIC_CAST(CScreensaverSharedDataMonitor*, aPtr)->Model().StopScreenSaver();
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataMonitor::HandleKeyguardStateChanged
-// Handles keyguards status change callback.
-// When keys become locked, screensaver timeout is shortened.
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverSharedDataMonitor::HandleKeyguardStateChanged(TAny* aPtr)
- {
- // If keyguard just became unlocked, inform model so that
- // short timeout use is reset. Otherwise there might be a situation
- // where short timeout was in use, user opened keys, did something
- // without letting the device idle for short timeout period and
- // locked keys again. Then short timeout would remain in use without this
- // notification.
- // Also inform of keys locked, in case Screensaver is running this
- // happened because of automatic keyguard fired, and screensaver
- // should update the display to show the keyguard indicator
- CScreensaverSharedDataMonitor* _this =
- STATIC_CAST(CScreensaverSharedDataMonitor*, aPtr);
-
- _this->Model().HandleKeyguardStateChanged( _this->iData->IsKeyguardOn() );
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataMonitor::HandleCallStateChanged
-// Handles call state change callback. If call state changes,
-// screensaver is stopped
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverSharedDataMonitor::HandleCallStateChanged(TAny* aPtr)
- {
-#ifdef RD_UI_TRANSITION_EFFECTS_PHASE2
- // Prevent fullscreen transition from screensaver on incoming call
- CAknTransitionUtils::SetData( KScreensaverCallStateChange, (TAny*)1 );
-#endif
- User::ResetInactivityTime();
- STATIC_CAST(CScreensaverSharedDataMonitor*, aPtr)->Model().StopScreenSaver();
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataMonitor::HandleShuttingDownStateChanged
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverSharedDataMonitor::HandleShuttingDownStateChanged( TAny* /*aPtr*/ )
- {
- TInt startupState = -1;
-
- RProperty::Get( KPSUidStartup, KPSGlobalSystemState, startupState );
-
- if( startupState == ESwStateShuttingDown )
- {
- RProperty::Set( KPSUidScreenSaver, KScreenSaverAllowScreenSaver, KSystemShuttingdown);
- }
-
- return KErrNone;
- }
-
-// ---------------------------------------------------------------------------
-// CScreensaverSharedDataMonitor::HandleActivateSSChanged
-// ---------------------------------------------------------------------------
-//
-TInt CScreensaverSharedDataMonitor::HandleActivateSSChanged( TAny* aPtr )
- {
- TInt activateState = -1;
-
- RProperty::Get( KPSUidScreenSaver, KScreenSaverActivate, activateState );
-
- if( activateState && -1 != activateState )
- {
- // Enable SS
- SCRLOGGER_WRITE("SharedDataMonitor: Activate SS");
- STATIC_CAST(CScreensaverSharedDataMonitor*, aPtr)->Model().StartScreenSaver();
- }
- else if ( !activateState )
- {
- // Disable SS
- SCRLOGGER_WRITE("SharedDataMonitor: Stop SS");
- STATIC_CAST(CScreensaverSharedDataMonitor*, aPtr)->Model().StopScreenSaver();
- }
- else
- {
- // Unknown state
- }
- return KErrNone;
- }
-
-// ---------------------------------------------------------------------------
-// CScreensaverSharedDataMonitor::HandleChargerStateChanged
-// ---------------------------------------------------------------------------
-//
-TInt CScreensaverSharedDataMonitor::HandleChargerStateChanged( TAny* aPtr )
- {
- TInt state = -1;
-
- RProperty::Get( KPSUidHWRMPowerState, KHWRMChargingStatus, state );
-
- switch ( state )
- {
- case EChargingStatusError: // Some error has occurred when charger is connected or charging.
- case EChargingStatusNotConnected: // Charger not connected/uninitialized
- case EChargingStatusCharging: // Device is charging
- {
- User::ResetInactivityTime();
- STATIC_CAST(CScreensaverSharedDataMonitor*, aPtr)->Model().StopScreenSaver();
- }
- break;
- case EChargingStatusChargingComplete: // Charging completed
- case EChargingStatusNotCharging: // Charger is connected, device not charging
- case EChargingStatusAlmostComplete: // Charging almost completed
- case EChargingStatusChargingContinued: // Charging continued after brief interruption
- default:
- break;
- }
- return KErrNone;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CScreensaverSharedDataMonitor::HandleMessageWaitingStateChanged( TAny* aPtr )
- {
- CScreensaverSharedDataMonitor* self = STATIC_CAST(CScreensaverSharedDataMonitor*, aPtr);
- if ( self->iMessageWaitingWatcher->ChangedKey() == KCtsyMessageWaitingDisplayStatus )
- {
- self->View()->UpdateAndRefresh();
- }
- return KErrNone;
- }
-
-// End of file
--- a/src/screensaversubscriber.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Implementation of screensaver shared data Subscriber.
-*
-*/
-
-
-
-#include "screensaversubscriber.h"
-
-
-// -----------------------------------------------------------------------------
-// CSubscriber::CSubscriber
-// -----------------------------------------------------------------------------
-//
-CSubscriber::CSubscriber(TCallBack aCallBack, RProperty& aProperty)
- : CActive(EPriorityNormal), iCallBack(aCallBack), iProperty(aProperty)
- {
- CActiveScheduler::Add(this);
- }
-
-// -----------------------------------------------------------------------------
-// CSubscriber::~CSubscriber
-// -----------------------------------------------------------------------------
-//
-CSubscriber::~CSubscriber()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CSubscriber::SubscribeL
-// -----------------------------------------------------------------------------
-//
-void CSubscriber::SubscribeL()
- {
- if (!IsActive())
- {
- iProperty.Subscribe(iStatus);
- SetActive();
- }
- }
-
-// -----------------------------------------------------------------------------
-// CSubscriber::StopSubscribe
-// -----------------------------------------------------------------------------
-//
-void CSubscriber::StopSubscribe()
- {
- Cancel();
- }
-
-// -----------------------------------------------------------------------------
-// CSubscriber::RunL
-// -----------------------------------------------------------------------------
-//
-void CSubscriber::RunL()
- {
- if (iStatus.Int() == KErrNone)
- {
- SubscribeL();
- iCallBack.CallBack();
- }
- }
-
-// -----------------------------------------------------------------------------
-// CSubscriber::DoCancel
-// -----------------------------------------------------------------------------
-//
-void CSubscriber::DoCancel()
- {
- iProperty.Cancel();
- }
-
-
-// End of file.
--- a/src/screensaverutility.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,225 +0,0 @@
-/*
-* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Defines screensaver utility tools.
-*
-*/
-
-
-
-#include <coecntrl.h>
-#include <akntranseffect.h>
-#include <data_caging_path_literals.hrh>
-#include <gulicon.h>
-
-#ifdef RD_UI_TRANSITION_EFFECTS_PHASE2
-#include <akntransitionutils.h>
-#endif
-
-#include "screensaverutility.h"
-#include "screensaverappui.h"
-#include "ScreensaverUtils.h"
-
-
-// Screensaver window group priority boost (to ensure it's on top)
-const TInt KSSWinPriorityBoost = 2;
-
-_LIT(KSsBitmapName, "\\ssbackground.mbm");
-_LIT(KSsBitmapUserDrive, "c:");
-_LIT(KSsBitmapSystemDrive, "z:");
-
-// -----------------------------------------------------------------------------
-// CScreensaverUtility::Panic( TInt aPanic )
-// -----------------------------------------------------------------------------
-//
-void ScreensaverUtility::Panic( TInt aPanic )
- {
- User::Panic( _L("Screensaver"),aPanic );
- }
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverUtility::FlushDrawBuffer( TInt aPanic )
-// Flushes pending draw commands. A "must" before activating power save
-// mode, so that the image can be copied to power save memory
-// -----------------------------------------------------------------------------
-//
-void ScreensaverUtility::FlushDrawBuffer()
- {
- CCoeEnv::Static()->WsSession().Flush();
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverUtility::ScreenRotated( TInt aPanic )
-// Checks if screen has been rotated
-// -----------------------------------------------------------------------------
-//
-TBool ScreensaverUtility::ScreenRotated()
- {
- TPixelsAndRotation pxRot;
- CCoeEnv::Static()->ScreenDevice()->GetDefaultScreenSizeAndRotation(pxRot);
-
- // Rotated, if 90 or 270 degrees
- return ((pxRot.iRotation == CFbsBitGc::EGraphicsOrientationRotated90)
- || (pxRot.iRotation == CFbsBitGc::EGraphicsOrientationRotated270));
- }
-
-// -----------------------------------------------------------------------------
-// ScreensaverUtility::Query12HourClock
-// Query whether 12-hour clock is displayed
-// -----------------------------------------------------------------------------
-//
-TBool ScreensaverUtility::Query12HourClock( )
- {
- TLocale locale;
- return (locale.TimeFormat() == ETime12);
- }
-
-
-// -----------------------------------------------------------------------------
-// ScreensaverUtility::BringToForeground
-// -----------------------------------------------------------------------------
-//
-void ScreensaverUtility::BringToForeground()
- {
-#ifdef RD_UI_TRANSITION_EFFECTS_PHASE2
- const TInt KSsaCustomActivateContextNum = 1002;
-
- GfxTransEffect::BeginFullScreen( KSsaCustomActivateContextNum, TRect( ),
- AknTransEffect::EParameterType, AknTransEffect::GfxTransParam(
- KUidScreensaverApp,
- AknTransEffect::TParameter::EActivateExplicitContinue ) );
-#endif
- CEikonEnv::Static()->SetAutoForwarding( ETrue );
- CEikonEnv::Static()->BringForwards( ETrue, ECoeWinPriorityAlwaysAtFront
- + KSSWinPriorityBoost );
- }
-
-// -----------------------------------------------------------------------------
-// ScreensaverUtility::SendToBackground
-// -----------------------------------------------------------------------------
-//
-void ScreensaverUtility::SendToBackground()
- {
-#ifdef RD_UI_TRANSITION_EFFECTS_PHASE2
-
- // Start the exit effect context even if this is actually application switch. The exit context
- // makes possible to map effect by using the *previous* application uid (=Screen Saver).
- // Note: Not allowed to call GfxTransEffect::EndFullScreen() as AVKON takes care of that when
- // EApplicationExit context is used!
- const TInt KSsaCustomDeactivateContextNum = 1001;
-
- //condition takes care of special case of incomeing call (should not have effect then)
- if ( CAknTransitionUtils::GetData( KScreensaverCallStateChange ) == NULL )
- {
- if ( static_cast<CScreensaverAppUi*>(CCoeEnv::Static()->AppUi())->IsForeground() )
- {
- GfxTransEffect::BeginFullScreen( KSsaCustomDeactivateContextNum,
- TRect( ), AknTransEffect::EParameterType,
- AknTransEffect::GfxTransParam( KUidScreensaverApp,
- AknTransEffect::TParameter::EActivateExplicitContinue ) );
- }
- }
- CAknTransitionUtils::RemoveData( KScreensaverCallStateChange );
-#endif
-
- CEikonEnv::Static()->BringForwards( EFalse );
- }
-
-// -----------------------------------------------------------------------------
-// ScreensaverUtility::IsDrivePresent
-// -----------------------------------------------------------------------------
-//
-TBool ScreensaverUtility::IsDrivePresent(TInt aDrive)
- {
- RFs& fs = CCoeEnv::Static()->FsSession();
-
- TInt error = KErrNone;
- TDriveInfo driveInfo;
- error = fs.Drive(driveInfo, aDrive );
-
- // Not present, locked or unknown is bad
- if ((error != KErrNone) ||
- (driveInfo.iMediaAtt & KMediaAttLocked) ||
- (driveInfo.iType == EMediaNotPresent) ||
- (driveInfo.iType == EMediaUnknown))
- {
- return EFalse;
- }
-
- // Read-only is fine
- return ETrue;
- }
-
-// -----------------------------------------------------------------------------
-// ScreensaverUtility::LoadBitmapL
-// -----------------------------------------------------------------------------
-//
-CGulIcon* ScreensaverUtility::LoadBitmapL()
- {
- CGulIcon *icon = CGulIcon::NewL();
- CleanupStack::PushL( icon );
- icon->SetBitmap(new (ELeave) CFbsBitmap());
- CFbsBitmap* mask = new (ELeave) CFbsBitmap();
-
- // First try user path and then system path.
- TInt error;
- TFileName path;
- path.Copy(KSsBitmapUserDrive);
- path.Append(KDC_APP_BITMAP_DIR);
- path.Append(KSsBitmapName);
-
- for (TInt i = 0; i < 2; i++)
- {
- error = icon->Bitmap()->Load(path, 0);
- if (error == KErrNone)
- {
- error = mask->Load(path, 1);
- if (error != KErrNone)
- {
- delete mask;
- }
- else
- {
- icon->SetMask( mask );
- }
- CleanupStack::Pop(); // icon
- return icon;
- }
- path.Copy(KSsBitmapSystemDrive);
- path.Append(KDC_APP_BITMAP_DIR);
- path.Append(KSsBitmapName);
- }
-
- CleanupStack::PopAndDestroy(); // icon
- return NULL;
- }
-
-
-// -----------------------------------------------------------------------------
-// ScreensaverUtility::StopWServHeartBeat
-// -----------------------------------------------------------------------------
-//
-void ScreensaverUtility::StopWServHeartBeat()
- {
- SCRLOGGER_WRITE("Model: Stopping WServ HB, snoozing...");
- RWsSession ws;
- TInt err = ws.Connect( );
- if ( !err )
- {
- ws.PrepareForSwitchOff( );
- ws.Close( );
- }
- }
-
-// End of file
--- a/src/screensaverview.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,283 +0,0 @@
-/*
-* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Screensaver view class implementation.
-*
-*/
-
-
-
-#include <power_save_display_mode.h>
-#include <screensaver.rsg>
-
-#include "ScreensaverUtils.h"
-#include "screensaverview.h"
-#include "screensaverappui.h"
-#include "screensaverplugin.h"
-#include "screensaverutility.h"
-#include "screensaverctrlmovingtext.h"
-#include "screensaverctrlnone.h"
-#include "screensaverctrlplugin.h"
-#include "screensaverengine.h"
-#include "screensavershareddatai.h"
-
-const TUid KBigClockScreensaverPluginImplUid = { 0x2002E6DE };
-
-// -----------------------------------------------------------------------------
-// CScreensaverView::NewLC
-// add this NewLC code called by UI
-// -----------------------------------------------------------------------------
-//
-CScreensaverView* CScreensaverView::NewL()
- {
- CScreensaverView* self = new( ELeave ) CScreensaverView();
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop();
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverView::CScreensaverView
-// -----------------------------------------------------------------------------
-//
-CScreensaverView::CScreensaverView()
- {
- }
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverView::~CScreensaverView
-// -----------------------------------------------------------------------------
-//
-CScreensaverView::~CScreensaverView( )
- {
- DestroyDisplayObject();
- }
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverView::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverView::ConstructL( )
- {
- // Let CAknView do its stuff
- BaseConstructL();
-
- SetDisplayObject( PslnSettingScreensaverType() );
- }
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverView::CreateDisplayObjectL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverView::CreateDisplayObjectL( TDisplayObjectType aType )
- {
- SCRLOGGER_WRITEF(_L("SCR: CScreensaverView::CreateDisplayObjectL "),aType);
-
- DestroyDisplayObject();
-
- switch( aType )
- {
- case EDisplayPlugin:
- {
- iControl = CScreensaverCtrlPlugin::NewL();
- CScreensaverCtrlPlugin* pluginCtrl =
- STATIC_CAST( CScreensaverCtrlPlugin*, iControl );
- if ( pluginCtrl->PluginImplementationUid() ==
- KBigClockScreensaverPluginImplUid )
- {
- iIsContentless = ETrue;
- }
- break;
- }
- case EDisplayTime:
- case EDisplayText:
-#ifdef USE_DATE_AND_TEXT
- {
- iControl = CScreensaverCtrlMovingText::NewL( aType );
- break;
- }
-#endif
- case EDisplayNone:
- {
- iControl = CScreensaverCtrlNone::NewL();
- // iIsContentless = ETrue;
- break;
- }
-
- default:
- {
- break;
- }
- }
-
- iCurrentControlType = aType;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverView::SetDisplayObject
-// -----------------------------------------------------------------------------
-//
-void CScreensaverView::SetDisplayObject( TDisplayObjectType aType )
- {
- SCRLOGGER_WRITEF(_L("SCR: CScreensaverView::SetDisplayObject "));
-
- TRAPD( error, CreateDisplayObjectL( aType ) );
-
- if(error == KErrNone)
- return;
-
- SCRLOGGER_WRITE("ResetDisplayObject() setting default screensaver");
-
- TRAP_IGNORE( CreateDisplayObjectL( DefaultScreensaverType() ) );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverView::CreatePreviewDisplayObjectL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverView::CreatePreviewDisplayObjectL()
- {
- SCRLOGGER_WRITEF(_L("SCR: CScreensaverView::CreatePreviewDisplayObjectL "));
- TRAPD( error, CreateDisplayObjectL( PslnSettingScreensaverType() ) );
-
- if(error == KErrNone)
- {
- Model().SharedDataInterface()->SetScreensaverPreviewState(
- EScreenSaverPreviewLoaded );
- return;
- }
-
- Model().SharedDataInterface()->SetScreensaverPreviewState(
- EScreenSaverPreviewError );
- }
-
-// ---------------------------------------------------------------------------
-// CScreensaverView::IsContentlessScreensaver
-// ---------------------------------------------------------------------------
-//
-TBool CScreensaverView::IsContentlessScreensaver() const
- {
- return iIsContentless;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverView::Id
-// -----------------------------------------------------------------------------
-//
-TUid CScreensaverView::Id( ) const
- {
- return KUidScreensaverView;
- }
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverView::DoActivateL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverView::DoActivateL( const TVwsViewId& /*aPrevViewId*/,
- TUid /*aCustomMessageId*/, const TDesC8& /*aCustomMessage*/)
- {
- }
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverView::DoDeactivate
-// -----------------------------------------------------------------------------
-//
-void CScreensaverView::DoDeactivate( )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverView::ShowDisplayObject
-// -----------------------------------------------------------------------------
-//
-void CScreensaverView::ShowDisplayObject()
- {
- SCRLOGGER_WRITEF(_L("SCR: CScreensaverView::ShowDisplayObject "));
-
- iControl->StartDrawObject();
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverView::HideDisplayObject
-// -----------------------------------------------------------------------------
-//
-void CScreensaverView::HideDisplayObject()
- {
- SCRLOGGER_WRITEF(_L("SCR: CScreensaverView::HideDisplayObject "));
- iControl->StopDrawObject();
-
- if ( !IsContentlessScreensaver() )
- {
- ScreensaverUtility::SendToBackground();
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverView::UpdateAndRefresh
-// Updates indicators and refreshes the display
-// -----------------------------------------------------------------------------
-//
-void CScreensaverView::UpdateAndRefresh( )
- {
- SCRLOGGER_WRITEF(_L("SCR: CScreensaverView::UpdateAndRefresh "));
- iControl->Refresh();
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverView::DefaultScreensaverType
-// -----------------------------------------------------------------------------
-//
-TDisplayObjectType CScreensaverView::DefaultScreensaverType()
- {
- return Model().SharedDataInterface()->DefaultScreensaverType();
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverView::PslnSettingScreensaverType
-// -----------------------------------------------------------------------------
-//
-TDisplayObjectType CScreensaverView::PslnSettingScreensaverType()
- {
- return Model().SharedDataInterface()->DisplayObjectType();
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverView::Model
-// -----------------------------------------------------------------------------
-//
-CScreensaverEngine& CScreensaverView::Model() const
- {
- return STATIC_CAST( CScreensaverAppUi*, CCoeEnv::Static()->AppUi() )->Model();
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverView::DestroyDisplayObject
-// -----------------------------------------------------------------------------
-//
-void CScreensaverView::DestroyDisplayObject()
- {
- SCRLOGGER_WRITEF(_L("SCR: CScreensaverView::DestroyDisplayObject "));
- if( iControl )
- {
- delete iControl;
- iControl = NULL;
- }
- iIsContentless = EFalse;
- }
-// End of file
--- a/sysdef_1_4_0.dtd Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
- <!ELEMENT SystemDefinition (systemModel?, build?)>
- <!ATTLIST SystemDefinition
- name CDATA #REQUIRED
- schema CDATA #REQUIRED>
- <!ELEMENT systemModel (layer+)>
- <!ELEMENT layer (logicalset* | module*)*>
- <!ATTLIST layer
- name CDATA #REQUIRED
- levels CDATA #IMPLIED
- span CDATA #IMPLIED>
- <!ELEMENT logicalset (logicalsubset* | module* | unit* | package* | prebuilt*)*>
- <!ATTLIST logicalset name CDATA #REQUIRED>
- <!ELEMENT logicalsubset (module* | unit* | package* | prebuilt*)*>
- <!ATTLIST logicalsubset name CDATA #REQUIRED>
- <!ELEMENT module (component* | unit* | package* | prebuilt*)*>
- <!ATTLIST module
- name CDATA #REQUIRED
- level CDATA #IMPLIED>
- <!ELEMENT component (unit* | package* | prebuilt*)*>
- <!ATTLIST component name CDATA #REQUIRED>
- <!ELEMENT unit EMPTY>
- <!ATTLIST unit
- unitID ID #REQUIRED
- name CDATA #REQUIRED
- mrp CDATA #REQUIRED
- filter CDATA #IMPLIED
- bldFile CDATA #REQUIRED
- priority CDATA #IMPLIED
- contract CDATA #IMPLIED>
- <!ELEMENT package EMPTY>
- <!ATTLIST package
- name CDATA #REQUIRED
- mrp CDATA #REQUIRED
- filter CDATA #IMPLIED
- contract CDATA #IMPLIED>
- <!ELEMENT prebuilt EMPTY>
- <!ATTLIST prebuilt
- name CDATA #REQUIRED
- version CDATA #REQUIRED
- late (Y|N) #IMPLIED
- filter CDATA #IMPLIED
- contract CDATA #IMPLIED>
- <!ELEMENT build (option* | target+ | targetList+ | unitList+ | configuration+)*>
- <!ELEMENT unitList (unitRef+)>
- <!ATTLIST unitList
- name ID #REQUIRED
- description CDATA #REQUIRED>
- <!ELEMENT unitRef EMPTY>
- <!ATTLIST unitRef unit IDREF #REQUIRED>
- <!ELEMENT targetList EMPTY>
- <!ATTLIST targetList
- name ID #REQUIRED
- description CDATA #REQUIRED
- target IDREFS #REQUIRED>
- <!ELEMENT target EMPTY>
- <!ATTLIST target
- name ID #REQUIRED
- abldTarget CDATA #REQUIRED
- description CDATA #REQUIRED>
- <!ELEMENT option EMPTY>
- <!ATTLIST option
- name ID #REQUIRED
- abldOption CDATA #REQUIRED
- description CDATA #REQUIRED
- enable (Y | N | y | n) #REQUIRED>
- <!ELEMENT configuration (unitListRef+ | layerRef+ | task+)*>
- <!ATTLIST configuration
- name ID #REQUIRED
- description CDATA #REQUIRED
- filter CDATA #REQUIRED>
- <!ELEMENT task ( unitListRef* , (buildLayer | specialInstructions))>
- <!ELEMENT unitListRef EMPTY>
- <!ATTLIST unitListRef unitList IDREF #REQUIRED>
- <!ELEMENT layerRef EMPTY>
- <!ATTLIST layerRef layerName CDATA #REQUIRED>
- <!ELEMENT buildLayer EMPTY>
- <!ATTLIST buildLayer
- command CDATA #REQUIRED
- targetList IDREFS #IMPLIED
- unitParallel (Y | N | y | n) #REQUIRED
- targetParallel (Y | N | y | n) #IMPLIED>
- <!ELEMENT specialInstructions EMPTY>
- <!ATTLIST specialInstructions
- name CDATA #REQUIRED
- cwd CDATA #REQUIRED
- command CDATA #REQUIRED>
--- a/systemDefinition.xml Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE SystemDefinition SYSTEM "systemDefinition.dtd"[
-
- <!ENTITY layer_real_source_path "\sf\app\screensaver">
- <!ENTITY layer_name "screensaver">
-
- <!ENTITY layer_file SYSTEM "systemDefinitionLayer.xml">
- <!ENTITY targetDefinition_file SYSTEM "/epoc32/tools/systemDefinition/targetDefinition.xml">
- <!ENTITY defaultbuild_file SYSTEM "/epoc32/tools/systemDefinition/default_build.xml">
- <!ENTITY defaultclean_file SYSTEM "/epoc32/tools/systemDefinition/default_clean.xml">
-]>
-
-<SystemDefinition name="SystemDefinition" schema="1.4.0">
- <systemModel>
-&layer_file;
- </systemModel>
- <build>
-&targetDefinition_file;
-
- <configuration name="build" description="build layer" filter="">
- <layerRef layerName="&layer_name;"/>
-
-&defaultbuild_file;
- </configuration>
-
- <configuration name="clean" description="clean layer" filter="">
- <layerRef layerName="&layer_name;"/>
-
-&defaultclean_file;
- </configuration>
-
- </build>
-</SystemDefinition>
--- a/systemDefinitionLayer.xml Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-<layer name="screensaver">
- <module name="group_screensaver">
- <component name="group_screensaver">
- <unit unitID="screensaver" mrp="" bldFile="&layer_real_source_path;\group" name="screensaver" />
- </component>
- </module>
-</layer>