Thread: [Deinterlace-checkins] SF.net SVN: deinterlace:[4531] trunk/DScaler/DScaler
Brought to you by:
adcockj,
dschmelzer
From: <ad...@us...> - 2009-03-12 12:44:10
|
Revision: 4531 http://deinterlace.svn.sourceforge.net/deinterlace/?rev=4531&view=rev Author: adcockj Date: 2009-03-12 12:43:55 +0000 (Thu, 12 Mar 2009) Log Message: ----------- Forgot keywords on new files Modified Paths: -------------- trunk/DScaler/DScaler/SmartHandle.h trunk/DScaler/DScaler/SmartPtr.h Property Changed: ---------------- trunk/DScaler/DScaler/SmartHandle.h trunk/DScaler/DScaler/SmartPtr.h Modified: trunk/DScaler/DScaler/SmartHandle.h =================================================================== --- trunk/DScaler/DScaler/SmartHandle.h 2009-03-12 12:40:57 UTC (rev 4530) +++ trunk/DScaler/DScaler/SmartHandle.h 2009-03-12 12:43:55 UTC (rev 4531) @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// $Id: PCICard.h 4521 2009-02-25 19:24:07Z adcockj $ +// $Id$ ///////////////////////////////////////////////////////////////////////////// // // DScaler changes: Property changes on: trunk/DScaler/DScaler/SmartHandle.h ___________________________________________________________________ Added: svn:keywords + Id Modified: trunk/DScaler/DScaler/SmartPtr.h =================================================================== --- trunk/DScaler/DScaler/SmartPtr.h 2009-03-12 12:40:57 UTC (rev 4530) +++ trunk/DScaler/DScaler/SmartPtr.h 2009-03-12 12:43:55 UTC (rev 4531) @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// $Id: PCICard.h 4521 2009-02-25 19:24:07Z adcockj $ +// $Id$ ///////////////////////////////////////////////////////////////////////////// // // DScaler changes: Property changes on: trunk/DScaler/DScaler/SmartPtr.h ___________________________________________________________________ Added: svn:keywords + Id This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ad...@us...> - 2009-03-12 12:47:22
|
Revision: 4532 http://deinterlace.svn.sourceforge.net/deinterlace/?rev=4532&view=rev Author: adcockj Date: 2009-03-12 12:47:16 +0000 (Thu, 12 Mar 2009) Log Message: ----------- And forgot eol-style Modified Paths: -------------- trunk/DScaler/DScaler/SmartHandle.h trunk/DScaler/DScaler/SmartPtr.h Property Changed: ---------------- trunk/DScaler/DScaler/SmartHandle.h trunk/DScaler/DScaler/SmartPtr.h Modified: trunk/DScaler/DScaler/SmartHandle.h =================================================================== --- trunk/DScaler/DScaler/SmartHandle.h 2009-03-12 12:43:55 UTC (rev 4531) +++ trunk/DScaler/DScaler/SmartHandle.h 2009-03-12 12:47:16 UTC (rev 4532) @@ -1,276 +1,276 @@ -///////////////////////////////////////////////////////////////////////////// -// $Id$ -///////////////////////////////////////////////////////////////////////////// -// -// DScaler changes: -// * changed smart pointer class to support GDI handles -// This class supports anything that uses DeleteObject to delete -// -///////////////////////////////////////////////////////////////////////////// - - -/* - * yasper - A non-intrusive reference counted pointer. - * Version: 1.04 - * - * Many ideas borrowed from Yonat Sharon and - * Andrei Alexandrescu. - * - * (zlib license) - * ---------------------------------------------------------------------------------- - * Copyright (C) 2005-2007 Alex Rubinsteyn - * - * This software is provided 'as-is', without any express or implied - * warranty. In no event will the authors be held liable for any damages - * arising from the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software - * in a product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * 3. This notice may not be removed or altered from any source distribution. - * - * ----------------------------------------------------------------------------------- - * - * Send all questions, comments and bug reports to: - * Alex Rubinsteyn (alex.rubinsteyn {at-nospam} gmail {dot} com) - */ - - -#ifndef _SMART_HANDLE_H -#define _SMART_HANDLE_H - -#include "SmartPtr.h" - -struct EmptyHandleException : public std::exception -{ - EmptyHandleException() : std::exception("[SmartHandle Exception] Attempted to use empty handle") {} -}; - -template <typename X> -class SmartHandle -{ - -public: - typedef X element_type; - - /* - default constructor - - don't create Counter - */ - SmartHandle() : rawHandle(0), counter(0) { } - - /* - Construct from a raw handle - */ - SmartHandle(X raw, Counter* c = 0) : rawHandle(0), counter(0) - { - if (raw) - { - rawHandle = raw; - if (c) acquire(c); - else counter = new Counter; - } - } - - /* - Copy constructor - */ - SmartHandle(const SmartHandle< X >& otherPtr) - { - acquire( otherPtr.counter ); - rawHandle = otherPtr.rawHandle; - } - - /* - Destructor - */ - ~SmartHandle() - { - release(); - } - -/* - Assignment to another SmartHandle -*/ - -SmartHandle& operator=(const SmartHandle< X >& otherPtr) -{ - if (this != &otherPtr) - { - release(); - acquire(otherPtr.counter); - rawHandle = otherPtr.rawHandle; - } - return *this; -} - -/* - Assignment to raw pointers is really dangerous business. - If the raw pointer is also being used elsewhere, - we might prematurely delete it, causing much pain. - Use sparingly/with caution. -*/ - -SmartHandle& operator=(X raw) -{ - - if (raw) - { - release(); - counter = new Counter; - rawHandle = raw; - } - return *this; -} - - - - -/* - Conversion/casting operators -*/ - - - operator bool() const - { - return IsValid(); - } - - - /* - implicit casts to base types of the - the pointer we're storing - */ - - operator X() const - { - return rawHandle; - } - - -/* - Provide access to the raw handle -*/ - - X GetRawHandle() const - { - if (rawHandle == 0) throw new EmptyHandleException; - return rawHandle; - } - - -/* - Is there only one reference on the counter? -*/ - bool IsUnique() const - { - if (counter && counter->count == 1) return true; - return false; - } - - bool IsValid() const - { - if (counter && rawHandle) return true; - return false; - } - - unsigned GetCount() const - { - if (counter) return counter->count; - return 0; - } - -private: - X rawHandle; - - Counter* counter; - - // increment the count - void acquire(Counter* c) - { - counter = c; - if (c) - { - (c->count)++; - } - } - - // decrement the count, delete if it is 0 - void release() - { - if (counter) - { - (counter->count)--; - - if (counter->count == 0) - { - delete counter; - ::DeleteObject(rawHandle); - } - } - counter = 0; - rawHandle = 0; - - } -}; - - -template <typename X> -bool operator==(const SmartHandle< X >& lptr, const SmartHandle< X >& rptr) -{ - return lptr.GetRawHandle() == rptr.GetRawHandle(); -} - -template <typename X> -bool operator==(const SmartHandle< X >& lptr, X raw) -{ - return lptr.GetRawHandle() == raw ; -} - -template <typename X> -bool operator!=(const SmartHandle< X >& lptr, const SmartHandle< X >& rptr) -{ - return ( !operator==(lptr, rptr) ); -} - -template <typename X> -bool operator!=(const SmartHandle< X >& lptr, X raw) -{ - return ( !operator==(lptr, raw) ); -} - -template <typename X> -bool operator!(const SmartHandle< X >& p) -{ - return (!p.IsValid()); -} - - -/* less than comparisons for storage in containers */ -template <typename X> -bool operator< (const SmartHandle< X >& lptr, const SmartHandle < X >& rptr) -{ - return lptr.GetRawHandle() < rptr.GetRawHandle(); -} - -template <typename X> -bool operator< (const SmartHandle< X >& lptr, X raw) -{ - return lptr.GetRawHandle() < raw; -} - -template <typename X> -bool operator< (X raw, const SmartHandle< X >& rptr) -{ - return raw < rptr.GetRawHandle(); -} - -#endif - +///////////////////////////////////////////////////////////////////////////// +// $Id$ +///////////////////////////////////////////////////////////////////////////// +// +// DScaler changes: +// * changed smart pointer class to support GDI handles +// This class supports anything that uses DeleteObject to delete +// +///////////////////////////////////////////////////////////////////////////// + + +/* + * yasper - A non-intrusive reference counted pointer. + * Version: 1.04 + * + * Many ideas borrowed from Yonat Sharon and + * Andrei Alexandrescu. + * + * (zlib license) + * ---------------------------------------------------------------------------------- + * Copyright (C) 2005-2007 Alex Rubinsteyn + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + * ----------------------------------------------------------------------------------- + * + * Send all questions, comments and bug reports to: + * Alex Rubinsteyn (alex.rubinsteyn {at-nospam} gmail {dot} com) + */ + + +#ifndef _SMART_HANDLE_H +#define _SMART_HANDLE_H + +#include "SmartPtr.h" + +struct EmptyHandleException : public std::exception +{ + EmptyHandleException() : std::exception("[SmartHandle Exception] Attempted to use empty handle") {} +}; + +template <typename X> +class SmartHandle +{ + +public: + typedef X element_type; + + /* + default constructor + - don't create Counter + */ + SmartHandle() : rawHandle(0), counter(0) { } + + /* + Construct from a raw handle + */ + SmartHandle(X raw, Counter* c = 0) : rawHandle(0), counter(0) + { + if (raw) + { + rawHandle = raw; + if (c) acquire(c); + else counter = new Counter; + } + } + + /* + Copy constructor + */ + SmartHandle(const SmartHandle< X >& otherPtr) + { + acquire( otherPtr.counter ); + rawHandle = otherPtr.rawHandle; + } + + /* + Destructor + */ + ~SmartHandle() + { + release(); + } + +/* + Assignment to another SmartHandle +*/ + +SmartHandle& operator=(const SmartHandle< X >& otherPtr) +{ + if (this != &otherPtr) + { + release(); + acquire(otherPtr.counter); + rawHandle = otherPtr.rawHandle; + } + return *this; +} + +/* + Assignment to raw pointers is really dangerous business. + If the raw pointer is also being used elsewhere, + we might prematurely delete it, causing much pain. + Use sparingly/with caution. +*/ + +SmartHandle& operator=(X raw) +{ + + if (raw) + { + release(); + counter = new Counter; + rawHandle = raw; + } + return *this; +} + + + + +/* + Conversion/casting operators +*/ + + + operator bool() const + { + return IsValid(); + } + + + /* + implicit casts to base types of the + the pointer we're storing + */ + + operator X() const + { + return rawHandle; + } + + +/* + Provide access to the raw handle +*/ + + X GetRawHandle() const + { + if (rawHandle == 0) throw new EmptyHandleException; + return rawHandle; + } + + +/* + Is there only one reference on the counter? +*/ + bool IsUnique() const + { + if (counter && counter->count == 1) return true; + return false; + } + + bool IsValid() const + { + if (counter && rawHandle) return true; + return false; + } + + unsigned GetCount() const + { + if (counter) return counter->count; + return 0; + } + +private: + X rawHandle; + + Counter* counter; + + // increment the count + void acquire(Counter* c) + { + counter = c; + if (c) + { + (c->count)++; + } + } + + // decrement the count, delete if it is 0 + void release() + { + if (counter) + { + (counter->count)--; + + if (counter->count == 0) + { + delete counter; + ::DeleteObject(rawHandle); + } + } + counter = 0; + rawHandle = 0; + + } +}; + + +template <typename X> +bool operator==(const SmartHandle< X >& lptr, const SmartHandle< X >& rptr) +{ + return lptr.GetRawHandle() == rptr.GetRawHandle(); +} + +template <typename X> +bool operator==(const SmartHandle< X >& lptr, X raw) +{ + return lptr.GetRawHandle() == raw ; +} + +template <typename X> +bool operator!=(const SmartHandle< X >& lptr, const SmartHandle< X >& rptr) +{ + return ( !operator==(lptr, rptr) ); +} + +template <typename X> +bool operator!=(const SmartHandle< X >& lptr, X raw) +{ + return ( !operator==(lptr, raw) ); +} + +template <typename X> +bool operator!(const SmartHandle< X >& p) +{ + return (!p.IsValid()); +} + + +/* less than comparisons for storage in containers */ +template <typename X> +bool operator< (const SmartHandle< X >& lptr, const SmartHandle < X >& rptr) +{ + return lptr.GetRawHandle() < rptr.GetRawHandle(); +} + +template <typename X> +bool operator< (const SmartHandle< X >& lptr, X raw) +{ + return lptr.GetRawHandle() < raw; +} + +template <typename X> +bool operator< (X raw, const SmartHandle< X >& rptr) +{ + return raw < rptr.GetRawHandle(); +} + +#endif + Property changes on: trunk/DScaler/DScaler/SmartHandle.h ___________________________________________________________________ Added: svn:eol-style + native Modified: trunk/DScaler/DScaler/SmartPtr.h =================================================================== --- trunk/DScaler/DScaler/SmartPtr.h 2009-03-12 12:43:55 UTC (rev 4531) +++ trunk/DScaler/DScaler/SmartPtr.h 2009-03-12 12:47:16 UTC (rev 4532) @@ -1,407 +1,407 @@ -///////////////////////////////////////////////////////////////////////////// -// $Id$ -///////////////////////////////////////////////////////////////////////////// -// -// DScaler changes: -// * changed static casts to dynamic to allow -// more natural syntax with downcasting checks -// * Renamed from yasper::ptr to SmartPtr in line with coding style -// -///////////////////////////////////////////////////////////////////////////// - - -/* - * yasper - A non-intrusive reference counted pointer. - * Version: 1.04 - * - * Many ideas borrowed from Yonat Sharon and - * Andrei Alexandrescu. - * - * (zlib license) - * ---------------------------------------------------------------------------------- - * Copyright (C) 2005-2007 Alex Rubinsteyn - * - * This software is provided 'as-is', without any express or implied - * warranty. In no event will the authors be held liable for any damages - * arising from the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software - * in a product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * 3. This notice may not be removed or altered from any source distribution. - * - * ----------------------------------------------------------------------------------- - * - * Send all questions, comments and bug reports to: - * Alex Rubinsteyn (alex.rubinsteyn {at-nospam} gmail {dot} com) - */ - - -#ifndef _SMART_PTR_H -#define _SMART_PTR_H - -#include <exception> - -struct NullPointerException : public std::exception -{ - NullPointerException(): std::exception("[SmartPtr Exception] Attempted to use NULL pointer") {} -}; - -struct Counter -{ - Counter(unsigned c = 1) : count(c) {} - unsigned count; -}; - -template <typename X> -class SmartPtr -{ - -public: - typedef X element_type; - - /* - SmartPtr needs to be its own friend so SmartPtr< X > and SmartPtr< Y > can access - each other's private data members - */ - template <class Y> friend class SmartPtr; - /* - default constructor - - don't create Counter - */ - SmartPtr() : rawPtr(0), counter(0) { } - - /* - Construct from a raw pointer - */ - SmartPtr(X* raw, Counter* c = 0) : rawPtr(0), counter(0) - { - if (raw) - { - rawPtr = raw; - if (c) acquire(c); - else counter = new Counter; - } - } - - template <typename Y> - explicit SmartPtr(Y* raw, Counter* c = 0) : rawPtr(0), counter(0) - { - if (raw) - { - rawPtr = dynamic_cast<X*>( raw ); - if (c) acquire(c); - else counter = new Counter; - } - } - - - /* - Copy constructor - */ - SmartPtr(const SmartPtr< X >& otherPtr) - { - acquire( otherPtr.counter ); - rawPtr = otherPtr.rawPtr; - } - - template <typename Y> - explicit SmartPtr(const SmartPtr< Y >& otherPtr) : rawPtr(0), counter(0) - { - acquire(otherPtr.counter); - rawPtr = dynamic_cast<X*>( otherPtr.GetRawPointer()); - } - - - /* - Destructor - */ - ~SmartPtr() - { - release(); - } - -/* - Assignment to another SmartPtr -*/ - -SmartPtr& operator=(const SmartPtr< X >& otherPtr) -{ - if (this != &otherPtr) - { - release(); - acquire(otherPtr.counter); - rawPtr = otherPtr.rawPtr; - } - return *this; -} - -template <typename Y> -SmartPtr& operator=(const SmartPtr< Y >& otherPtr) -{ - if ( this != (SmartPtr< X >*) &otherPtr ) - { - release(); - acquire(otherPtr.counter); - rawPtr = dynamic_cast<X*> (otherPtr.GetRawPointer()); - } - return *this; -} - -/* - Assignment to raw pointers is really dangerous business. - If the raw pointer is also being used elsewhere, - we might prematurely delete it, causing much pain. - Use sparingly/with caution. -*/ - -SmartPtr& operator=(X* raw) -{ - - if (raw) - { - release(); - counter = new Counter; - rawPtr = raw; - } - return *this; -} - -template <typename Y> -SmartPtr& operator=(Y* raw) -{ - if (raw) - { - release(); - counter = new Counter; - rawPtr = dynamic_cast<X*>(raw); - } - return *this; -} - -/* - assignment to long to allow SmartPtr< X > = NULL, - also allows raw pointer assignment by conversion. - Raw pointer assignment is really dangerous! - If the raw pointer is being used elsewhere, - it will get deleted prematurely. -*/ - SmartPtr& operator=(long num) - { - if (num == 0) //pointer set to null - { - release(); - } - - else //assign raw pointer by conversion - { - release(); - counter = new Counter; - rawPtr = reinterpret_cast<X*>(num); - } - - return *this; - } - -/* - Member Access -*/ - X* operator->() const - { - return GetRawPointer(); - } - - -/* - Dereference the pointer -*/ - X& operator* () const - { - return *GetRawPointer(); - } - - -/* - Conversion/casting operators -*/ - - - operator bool() const - { - return IsValid(); - } - - - /* - implicit casts to base types of the - the pointer we're storing - */ - - template <typename Y> - operator Y*() const - { - return dynamic_cast<Y*>(rawPtr); - } - - template <typename Y> - operator const Y*() const - { - return dynamic_cast<const Y*>(rawPtr); - } - - template <typename Y> - operator SmartPtr<Y>() - { - //new SmartPtr must also take our counter or else the reference counts - //will go out of sync - return SmartPtr<Y>(rawPtr, counter); - } - - -/* - Provide access to the raw pointer -*/ - - X* GetRawPointer() const - { - if (rawPtr == 0) throw new NullPointerException; - return rawPtr; - } - - -/* - Is there only one reference on the counter? -*/ - bool IsUnique() const - { - if (counter && counter->count == 1) return true; - return false; - } - - bool IsValid() const - { - if (counter && rawPtr) return true; - return false; - } - - unsigned GetCount() const - { - if (counter) return counter->count; - return 0; - } - -private: - X* rawPtr; - - Counter* counter; - - // increment the count - void acquire(Counter* c) - { - counter = c; - if (c) - { - (c->count)++; - } - } - - // decrement the count, delete if it is 0 - void release() - { - if (counter) - { - (counter->count)--; - - if (counter->count == 0) - { - delete counter; - delete rawPtr; - } - } - counter = 0; - rawPtr = 0; - - } -}; - - -template <typename X, typename Y> -bool operator==(const SmartPtr< X >& lptr, const SmartPtr< Y >& rptr) -{ - return lptr.GetRawPointer() == rptr.GetRawPointer(); -} - -template <typename X, typename Y> -bool operator==(const SmartPtr< X >& lptr, Y* raw) -{ - return lptr.GetRawPointer() == raw ; -} - -template <typename X> -bool operator==(const SmartPtr< X >& lptr, long num) -{ - if (num == 0 && !lptr.IsValid()) //both pointer and address are null - { - return true; - } - - else //convert num to a pointer, compare addresses - { - return lptr == reinterpret_cast<X*>(num); - } - -} - -template <typename X, typename Y> -bool operator!=(const SmartPtr< X >& lptr, const SmartPtr< Y >& rptr) -{ - return ( !operator==(lptr, rptr) ); -} - -template <typename X, typename Y> -bool operator!=(const SmartPtr< X >& lptr, Y* raw) -{ - return ( !operator==(lptr, raw) ); -} - -template <typename X> -bool operator!=(const SmartPtr< X >& lptr, long num) -{ - return (!operator==(lptr, num) ); -} - -template <typename X> -bool operator!(const SmartPtr< X >& p) -{ - return (!p.IsValid()); -} - - -/* less than comparisons for storage in containers */ -template <typename X, typename Y> -bool operator< (const SmartPtr< X >& lptr, const SmartPtr < Y >& rptr) -{ - return lptr.GetRawPointer() < rptr.GetRawPointer(); -} - -template <typename X, typename Y> -bool operator< (const SmartPtr< X >& lptr, Y* raw) -{ - return lptr.GetRawPointer() < raw; -} - -template <typename X, typename Y> -bool operator< (X* raw, const SmartPtr< Y >& rptr) -{ - return raw < rptr.GetRawPointer(); -} - -#endif - +///////////////////////////////////////////////////////////////////////////// +// $Id$ +///////////////////////////////////////////////////////////////////////////// +// +// DScaler changes: +// * changed static casts to dynamic to allow +// more natural syntax with downcasting checks +// * Renamed from yasper::ptr to SmartPtr in line with coding style +// +///////////////////////////////////////////////////////////////////////////// + + +/* + * yasper - A non-intrusive reference counted pointer. + * Version: 1.04 + * + * Many ideas borrowed from Yonat Sharon and + * Andrei Alexandrescu. + * + * (zlib license) + * ---------------------------------------------------------------------------------- + * Copyright (C) 2005-2007 Alex Rubinsteyn + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + * ----------------------------------------------------------------------------------- + * + * Send all questions, comments and bug reports to: + * Alex Rubinsteyn (alex.rubinsteyn {at-nospam} gmail {dot} com) + */ + + +#ifndef _SMART_PTR_H +#define _SMART_PTR_H + +#include <exception> + +struct NullPointerException : public std::exception +{ + NullPointerException(): std::exception("[SmartPtr Exception] Attempted to use NULL pointer") {} +}; + +struct Counter +{ + Counter(unsigned c = 1) : count(c) {} + unsigned count; +}; + +template <typename X> +class SmartPtr +{ + +public: + typedef X element_type; + + /* + SmartPtr needs to be its own friend so SmartPtr< X > and SmartPtr< Y > can access + each other's private data members + */ + template <class Y> friend class SmartPtr; + /* + default constructor + - don't create Counter + */ + SmartPtr() : rawPtr(0), counter(0) { } + + /* + Construct from a raw pointer + */ + SmartPtr(X* raw, Counter* c = 0) : rawPtr(0), counter(0) + { + if (raw) + { + rawPtr = raw; + if (c) acquire(c); + else counter = new Counter; + } + } + + template <typename Y> + explicit SmartPtr(Y* raw, Counter* c = 0) : rawPtr(0), counter(0) + { + if (raw) + { + rawPtr = dynamic_cast<X*>( raw ); + if (c) acquire(c); + else counter = new Counter; + } + } + + + /* + Copy constructor + */ + SmartPtr(const SmartPtr< X >& otherPtr) + { + acquire( otherPtr.counter ); + rawPtr = otherPtr.rawPtr; + } + + template <typename Y> + explicit SmartPtr(const SmartPtr< Y >& otherPtr) : rawPtr(0), counter(0) + { + acquire(otherPtr.counter); + rawPtr = dynamic_cast<X*>( otherPtr.GetRawPointer()); + } + + + /* + Destructor + */ + ~SmartPtr() + { + release(); + } + +/* + Assignment to another SmartPtr +*/ + +SmartPtr& operator=(const SmartPtr< X >& otherPtr) +{ + if (this != &otherPtr) + { + release(); + acquire(otherPtr.counter); + rawPtr = otherPtr.rawPtr; + } + return *this; +} + +template <typename Y> +SmartPtr& operator=(const SmartPtr< Y >& otherPtr) +{ + if ( this != (SmartPtr< X >*) &otherPtr ) + { + release(); + acquire(otherPtr.counter); + rawPtr = dynamic_cast<X*> (otherPtr.GetRawPointer()); + } + return *this; +} + +/* + Assignment to raw pointers is really dangerous business. + If the raw pointer is also being used elsewhere, + we might prematurely delete it, causing much pain. + Use sparingly/with caution. +*/ + +SmartPtr& operator=(X* raw) +{ + + if (raw) + { + release(); + counter = new Counter; + rawPtr = raw; + } + return *this; +} + +template <typename Y> +SmartPtr& operator=(Y* raw) +{ + if (raw) + { + release(); + counter = new Counter; + rawPtr = dynamic_cast<X*>(raw); + } + return *this; +} + +/* + assignment to long to allow SmartPtr< X > = NULL, + also allows raw pointer assignment by conversion. + Raw pointer assignment is really dangerous! + If the raw pointer is being used elsewhere, + it will get deleted prematurely. +*/ + SmartPtr& operator=(long num) + { + if (num == 0) //pointer set to null + { + release(); + } + + else //assign raw pointer by conversion + { + release(); + counter = new Counter; + rawPtr = reinterpret_cast<X*>(num); + } + + return *this; + } + +/* + Member Access +*/ + X* operator->() const + { + return GetRawPointer(); + } + + +/* + Dereference the pointer +*/ + X& operator* () const + { + return *GetRawPointer(); + } + + +/* + Conversion/casting operators +*/ + + + operator bool() const + { + return IsValid(); + } + + + /* + implicit casts to base types of the + the pointer we're storing + */ + + template <typename Y> + operator Y*() const + { + return dynamic_cast<Y*>(rawPtr); + } + + template <typename Y> + operator const Y*() const + { + return dynamic_cast<const Y*>(rawPtr); + } + + template <typename Y> + operator SmartPtr<Y>() + { + //new SmartPtr must also take our counter or else the reference counts + //will go out of sync + return SmartPtr<Y>(rawPtr, counter); + } + + +/* + Provide access to the raw pointer +*/ + + X* GetRawPointer() const + { + if (rawPtr == 0) throw new NullPointerException; + return rawPtr; + } + + +/* + Is there only one reference on the counter? +*/ + bool IsUnique() const + { + if (counter && counter->count == 1) return true; + return false; + } + + bool IsValid() const + { + if (counter && rawPtr) return true; + return false; + } + + unsigned GetCount() const + { + if (counter) return counter->count; + return 0; + } + +private: + X* rawPtr; + + Counter* counter; + + // increment the count + void acquire(Counter* c) + { + counter = c; + if (c) + { + (c->count)++; + } + } + + // decrement the count, delete if it is 0 + void release() + { + if (counter) + { + (counter->count)--; + + if (counter->count == 0) + { + delete counter; + delete rawPtr; + } + } + counter = 0; + rawPtr = 0; + + } +}; + + +template <typename X, typename Y> +bool operator==(const SmartPtr< X >& lptr, const SmartPtr< Y >& rptr) +{ + return lptr.GetRawPointer() == rptr.GetRawPointer(); +} + +template <typename X, typename Y> +bool operator==(const SmartPtr< X >& lptr, Y* raw) +{ + return lptr.GetRawPointer() == raw ; +} + +template <typename X> +bool operator==(const SmartPtr< X >& lptr, long num) +{ + if (num == 0 && !lptr.IsValid()) //both pointer and address are null + { + return true; + } + + else //convert num to a pointer, compare addresses + { + return lptr == reinterpret_cast<X*>(num); + } + +} + +template <typename X, typename Y> +bool operator!=(const SmartPtr< X >& lptr, const SmartPtr< Y >& rptr) +{ + return ( !operator==(lptr, rptr) ); +} + +template <typename X, typename Y> +bool operator!=(const SmartPtr< X >& lptr, Y* raw) +{ + return ( !operator==(lptr, raw) ); +} + +template <typename X> +bool operator!=(const SmartPtr< X >& lptr, long num) +{ + return (!operator==(lptr, num) ); +} + +template <typename X> +bool operator!(const SmartPtr< X >& p) +{ + return (!p.IsValid()); +} + + +/* less than comparisons for storage in containers */ +template <typename X, typename Y> +bool operator< (const SmartPtr< X >& lptr, const SmartPtr < Y >& rptr) +{ + return lptr.GetRawPointer() < rptr.GetRawPointer(); +} + +template <typename X, typename Y> +bool operator< (const SmartPtr< X >& lptr, Y* raw) +{ + return lptr.GetRawPointer() < raw; +} + +template <typename X, typename Y> +bool operator< (X* raw, const SmartPtr< Y >& rptr) +{ + return raw < rptr.GetRawPointer(); +} + +#endif + Property changes on: trunk/DScaler/DScaler/SmartPtr.h ___________________________________________________________________ Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ad...@us...> - 2009-03-17 12:07:46
|
Revision: 4537 http://deinterlace.svn.sourceforge.net/deinterlace/?rev=4537&view=rev Author: adcockj Date: 2009-03-17 12:07:39 +0000 (Tue, 17 Mar 2009) Log Message: ----------- Updated copyright year Modified Paths: -------------- trunk/DScaler/DScaler/RES/STARTUP.BMP trunk/DScaler/DScalerRes/DScalerRes.rc Modified: trunk/DScaler/DScaler/RES/STARTUP.BMP =================================================================== (Binary files differ) Modified: trunk/DScaler/DScalerRes/DScalerRes.rc =================================================================== --- trunk/DScaler/DScalerRes/DScalerRes.rc 2009-03-13 12:37:11 UTC (rev 4536) +++ trunk/DScaler/DScalerRes/DScalerRes.rc 2009-03-17 12:07:39 UTC (rev 4537) @@ -1,4 +1,4 @@ -//Microsoft Developer Studio generated resource script. +// Microsoft Visual C++ generated resource script. // #include "resource.h" @@ -26,36 +26,30 @@ // Accelerator // -IDA_DSCALER ACCELERATORS MOVEABLE PURE +IDA_DSCALER ACCELERATORS BEGIN "+", IDM_VOLUMEPLUS, ASCII, NOINVERT "-", IDM_VOLUMEMINUS, ASCII, NOINVERT "0", IDM_SASPECT_0, VIRTKEY, CONTROL, NOINVERT "0", IDM_TASPECT_0, VIRTKEY, ALT, NOINVERT - "0", IDM_SASPECT_SQUARE, VIRTKEY, SHIFT, CONTROL, - NOINVERT + "0", IDM_SASPECT_SQUARE, VIRTKEY, SHIFT, CONTROL, NOINVERT "1", IDM_SASPECT_133, VIRTKEY, CONTROL, NOINVERT "1", IDM_TASPECT_133, VIRTKEY, ALT, NOINVERT "2", IDM_SASPECT_166, VIRTKEY, CONTROL, NOINVERT "2", IDM_TASPECT_166, VIRTKEY, ALT, NOINVERT - "2", IDM_SASPECT_166A, VIRTKEY, SHIFT, CONTROL, - NOINVERT + "2", IDM_SASPECT_166A, VIRTKEY, SHIFT, CONTROL, NOINVERT "3", IDM_SASPECT_178, VIRTKEY, CONTROL, NOINVERT "3", IDM_TASPECT_178, VIRTKEY, ALT, NOINVERT - "3", IDM_SASPECT_178A, VIRTKEY, SHIFT, CONTROL, - NOINVERT + "3", IDM_SASPECT_178A, VIRTKEY, SHIFT, CONTROL, NOINVERT "4", IDM_SASPECT_185, VIRTKEY, CONTROL, NOINVERT "4", IDM_TASPECT_185, VIRTKEY, ALT, NOINVERT - "4", IDM_SASPECT_185A, VIRTKEY, SHIFT, CONTROL, - NOINVERT + "4", IDM_SASPECT_185A, VIRTKEY, SHIFT, CONTROL, NOINVERT "5", IDM_SASPECT_200, VIRTKEY, CONTROL, NOINVERT "5", IDM_TASPECT_200, VIRTKEY, ALT, NOINVERT - "5", IDM_SASPECT_200A, VIRTKEY, SHIFT, CONTROL, - NOINVERT + "5", IDM_SASPECT_200A, VIRTKEY, SHIFT, CONTROL, NOINVERT "6", IDM_SASPECT_235, VIRTKEY, CONTROL, NOINVERT "6", IDM_TASPECT_235, VIRTKEY, ALT, NOINVERT - "6", IDM_SASPECT_235A, VIRTKEY, SHIFT, CONTROL, - NOINVERT + "6", IDM_SASPECT_235A, VIRTKEY, SHIFT, CONTROL, NOINVERT "7", IDM_SASPECT_144, VIRTKEY, CONTROL, NOINVERT "8", IDM_SASPECT_155, VIRTKEY, CONTROL, NOINVERT "9", IDM_SASPECT_CUSTOM, VIRTKEY, CONTROL, NOINVERT @@ -66,48 +60,39 @@ "?", IDM_TELETEXT_KEY6, ASCII, NOINVERT "A", IDM_SASPECT_AUTO_ON, VIRTKEY, NOINVERT "A", IDM_SASPECT_AUTO_OFF, VIRTKEY, SHIFT, NOINVERT - "A", IDM_SASPECT_AUTO_TOGGLE, VIRTKEY, SHIFT, CONTROL, - NOINVERT + "A", IDM_SASPECT_AUTO_TOGGLE, VIRTKEY, SHIFT, CONTROL, NOINVERT "B", IDM_BRIGHTNESS_MINUS, VIRTKEY, NOINVERT "B", IDM_WINPOS_BOUNCE, VIRTKEY, CONTROL, NOINVERT "B", IDM_BRIGHTNESS_PLUS, VIRTKEY, SHIFT, NOINVERT - "B", IDM_BRIGHTNESS_CURRENT, VIRTKEY, SHIFT, CONTROL, - NOINVERT + "B", IDM_BRIGHTNESS_CURRENT, VIRTKEY, SHIFT, CONTROL, NOINVERT "C", IDM_COLOR_MINUS, VIRTKEY, NOINVERT "C", IDM_CLOSE_FILE, VIRTKEY, CONTROL, NOINVERT "C", IDM_COLOR_PLUS, VIRTKEY, SHIFT, NOINVERT - "C", IDM_COLOR_CURRENT, VIRTKEY, SHIFT, CONTROL, - NOINVERT + "C", IDM_COLOR_CURRENT, VIRTKEY, SHIFT, CONTROL, NOINVERT "D", IDM_BDELAY_MINUS, VIRTKEY, NOINVERT "D", IDM_BDELAY_PLUS, VIRTKEY, SHIFT, NOINVERT - "D", IDM_BDELAY_CURRENT, VIRTKEY, SHIFT, CONTROL, - NOINVERT + "D", IDM_BDELAY_CURRENT, VIRTKEY, SHIFT, CONTROL, NOINVERT "E", IDM_VDELAY_MINUS, VIRTKEY, NOINVERT "E", IDM_VDELAY_PLUS, VIRTKEY, SHIFT, NOINVERT - "E", IDM_VDELAY_CURRENT, VIRTKEY, SHIFT, CONTROL, - NOINVERT + "E", IDM_VDELAY_CURRENT, VIRTKEY, SHIFT, CONTROL, NOINVERT "F", IDM_VT_SEARCH, VIRTKEY, CONTROL, NOINVERT "F", IDM_FLI_FILMDETECT, VIRTKEY, CONTROL, ALT, NOINVERT "G", IDM_DISPLAY_EPG, VIRTKEY, NOINVERT "G", IDM_DISPLAY_EPG_EARLIER, VIRTKEY, CONTROL, NOINVERT "G", IDM_DISPLAY_EPG_LATER, VIRTKEY, SHIFT, NOINVERT - "G", IDM_DISPLAY_EPG_NOW, VIRTKEY, SHIFT, CONTROL, - NOINVERT + "G", IDM_DISPLAY_EPG_NOW, VIRTKEY, SHIFT, CONTROL, NOINVERT "H", IDM_HUE_MINUS, VIRTKEY, NOINVERT "H", IDM_HUE_PLUS, VIRTKEY, SHIFT, NOINVERT - "H", IDM_HUE_CURRENT, VIRTKEY, SHIFT, CONTROL, - NOINVERT + "H", IDM_HUE_CURRENT, VIRTKEY, SHIFT, CONTROL, NOINVERT "I", IDM_SHOW_INFOS, VIRTKEY, NOINVERT "K", IDM_KONTRAST_MINUS, VIRTKEY, NOINVERT "K", IDM_KONTRAST_PLUS, VIRTKEY, SHIFT, NOINVERT - "K", IDM_KONTRAST_CURRENT, VIRTKEY, SHIFT, CONTROL, - NOINVERT + "K", IDM_KONTRAST_CURRENT, VIRTKEY, SHIFT, CONTROL, NOINVERT "L", IDM_TAKESTILL, VIRTKEY, NOINVERT "L", IDM_TAKECYCLICSTILL, VIRTKEY, CONTROL, NOINVERT "L", IDM_TAKECONSECUTIVESTILL, VIRTKEY, ALT, NOINVERT "L", IDM_TAKESTREAMSNAP, VIRTKEY, SHIFT, NOINVERT - "L", IDM_KEYBOARDLOCK, VIRTKEY, SHIFT, CONTROL, - NOINVERT + "L", IDM_KEYBOARDLOCK, VIRTKEY, SHIFT, CONTROL, NOINVERT "M", IDM_MUTE, VIRTKEY, NOINVERT "M", IDM_MUTE, VIRTKEY, SHIFT, NOINVERT "N", IDM_NOISE_FILTER, VIRTKEY, NOINVERT @@ -116,16 +101,14 @@ "O", IDM_OPEN_FILE, VIRTKEY, CONTROL, NOINVERT "O", IDM_WINPOS_ORBIT, VIRTKEY, ALT, NOINVERT "O", IDM_OVERSCAN_PLUS, VIRTKEY, SHIFT, NOINVERT - "O", IDM_OVERSCAN_CURRENT, VIRTKEY, SHIFT, CONTROL, - NOINVERT + "O", IDM_OVERSCAN_CURRENT, VIRTKEY, SHIFT, CONTROL, NOINVERT "P", IDM_CAPTURE_PAUSE, VIRTKEY, NOINVERT "P", IDM_SASPECT_CLIP, VIRTKEY, CONTROL, NOINVERT "P", IDM_PROGRESSIVE, VIRTKEY, CONTROL, ALT, NOINVERT "P", IDM_TSPLAY, VIRTKEY, SHIFT, NOINVERT "Q", IDM_HDELAY_MINUS, VIRTKEY, NOINVERT "Q", IDM_HDELAY_PLUS, VIRTKEY, SHIFT, NOINVERT - "Q", IDM_HDELAY_CURRENT, VIRTKEY, SHIFT, CONTROL, - NOINVERT + "Q", IDM_HDELAY_CURRENT, VIRTKEY, SHIFT, CONTROL, NOINVERT "R", IDM_RESET_STATS, VIRTKEY, NOINVERT "R", IDM_TSRECORD, VIRTKEY, SHIFT, NOINVERT "S", IDM_STATUSBAR, VIRTKEY, NOINVERT @@ -135,12 +118,10 @@ "T", IDM_VT_MIXEDMODE, VIRTKEY, SHIFT, NOINVERT "U", IDM_USATURATION_MINUS, VIRTKEY, NOINVERT "U", IDM_USATURATION_PLUS, VIRTKEY, SHIFT, NOINVERT - "U", IDM_USATURATION_CURRENT, VIRTKEY, SHIFT, CONTROL, - NOINVERT + "U", IDM_USATURATION_CURRENT, VIRTKEY, SHIFT, CONTROL, NOINVERT "V", IDM_VSATURATION_MINUS, VIRTKEY, NOINVERT "V", IDM_VSATURATION_PLUS, VIRTKEY, SHIFT, NOINVERT - "V", IDM_VSATURATION_CURRENT, VIRTKEY, SHIFT, CONTROL, - NOINVERT + "V", IDM_VSATURATION_CURRENT, VIRTKEY, SHIFT, CONTROL, NOINVERT VK_ADD, IDM_VOLUMEPLUS, VIRTKEY, NOINVERT VK_BACK, IDM_HIDE_OSD, VIRTKEY, NOINVERT VK_BACK, IDM_CHANNEL_PREVIOUS, VIRTKEY, CONTROL, NOINVERT @@ -152,32 +133,26 @@ VK_ESCAPE, IDM_RETURN_TO_WINDOW, VIRTKEY, NOINVERT VK_F1, IDM_HELP_README, VIRTKEY, NOINVERT VK_F1, IDM_SOURCE_INPUT1, VIRTKEY, CONTROL, ALT, NOINVERT - VK_F1, IDM_AUDIO_0, VIRTKEY, SHIFT, CONTROL, - NOINVERT + VK_F1, IDM_AUDIO_0, VIRTKEY, SHIFT, CONTROL, NOINVERT VK_F10, IDM_SOURCE_INPUT10, VIRTKEY, CONTROL, ALT, NOINVERT VK_F11, IDM_CHARSET_TEST, VIRTKEY, NOINVERT VK_F11, IDM_SOURCE_INPUT11, VIRTKEY, CONTROL, ALT, NOINVERT VK_F12, IDM_SOURCE_INPUT12, VIRTKEY, CONTROL, ALT, NOINVERT VK_F2, IDM_SOURCE_INPUT2, VIRTKEY, CONTROL, ALT, NOINVERT - VK_F2, IDM_AUDIO_1, VIRTKEY, SHIFT, CONTROL, - NOINVERT + VK_F2, IDM_AUDIO_1, VIRTKEY, SHIFT, CONTROL, NOINVERT VK_F3, IDM_VT_SEARCHNEXT, VIRTKEY, NOINVERT VK_F3, IDM_SOURCE_INPUT3, VIRTKEY, CONTROL, ALT, NOINVERT VK_F3, IDM_VT_SEARCHPREV, VIRTKEY, SHIFT, NOINVERT - VK_F3, IDM_AUDIO_2, VIRTKEY, SHIFT, CONTROL, - NOINVERT + VK_F3, IDM_AUDIO_2, VIRTKEY, SHIFT, CONTROL, NOINVERT VK_F4, IDM_END, VIRTKEY, ALT, NOINVERT VK_F4, IDM_SOURCE_INPUT4, VIRTKEY, CONTROL, ALT, NOINVERT - VK_F4, IDM_AUDIO_3, VIRTKEY, SHIFT, CONTROL, - NOINVERT + VK_F4, IDM_AUDIO_3, VIRTKEY, SHIFT, CONTROL, NOINVERT VK_F5, IDM_TELETEXT_KEY1, VIRTKEY, NOINVERT VK_F5, IDM_SOURCE_INPUT5, VIRTKEY, CONTROL, ALT, NOINVERT - VK_F5, IDM_AUDIO_4, VIRTKEY, SHIFT, CONTROL, - NOINVERT + VK_F5, IDM_AUDIO_4, VIRTKEY, SHIFT, CONTROL, NOINVERT VK_F6, IDM_TELETEXT_KEY2, VIRTKEY, NOINVERT VK_F6, IDM_SOURCE_INPUT6, VIRTKEY, CONTROL, ALT, NOINVERT - VK_F6, IDM_AUDIO_5, VIRTKEY, SHIFT, CONTROL, - NOINVERT + VK_F6, IDM_AUDIO_5, VIRTKEY, SHIFT, CONTROL, NOINVERT VK_F7, IDM_TELETEXT_KEY3, VIRTKEY, NOINVERT VK_F7, IDM_SOURCE_INPUT7, VIRTKEY, CONTROL, ALT, NOINVERT VK_F8, IDM_TELETEXT_KEY4, VIRTKEY, NOINVERT @@ -190,8 +165,7 @@ VK_LEFT, IDM_VT_PAGE_MINUS, VIRTKEY, NOINVERT VK_LEFT, IDM_RIGHT_CROP_MINUS, VIRTKEY, CONTROL, NOINVERT VK_LEFT, IDM_LEFT_CROP_PLUS, VIRTKEY, SHIFT, NOINVERT - VK_LEFT, IDM_LEFT_CROP_CURRENT, VIRTKEY, SHIFT, CONTROL, - NOINVERT + VK_LEFT, IDM_LEFT_CROP_CURRENT, VIRTKEY, SHIFT, CONTROL, NOINVERT VK_NEXT, IDM_CHANNELMINUS, VIRTKEY, NOINVERT VK_NEXT, IDM_PLAYLIST_NEXT, VIRTKEY, CONTROL, NOINVERT VK_NEXT, IDM_DISPLAY_EPG_NEXT, VIRTKEY, SHIFT, NOINVERT @@ -208,13 +182,11 @@ VK_RIGHT, IDM_VT_PAGE_PLUS, VIRTKEY, NOINVERT VK_RIGHT, IDM_RIGHT_CROP_PLUS, VIRTKEY, CONTROL, NOINVERT VK_RIGHT, IDM_LEFT_CROP_MINUS, VIRTKEY, SHIFT, NOINVERT - VK_RIGHT, IDM_RIGHT_CROP_CURRENT, VIRTKEY, SHIFT, CONTROL, - NOINVERT + VK_RIGHT, IDM_RIGHT_CROP_CURRENT, VIRTKEY, SHIFT, CONTROL, NOINVERT VK_SPACE, IDM_SPACEBAR, VIRTKEY, NOINVERT VK_SPACE, IDM_AUTODETECT, VIRTKEY, CONTROL, NOINVERT VK_SPACE, IDM_SHIFT_SPACEBAR, VIRTKEY, SHIFT, NOINVERT - VK_SPACE, IDM_FINDLOCK_PULL, VIRTKEY, SHIFT, CONTROL, - NOINVERT + VK_SPACE, IDM_FINDLOCK_PULL, VIRTKEY, SHIFT, CONTROL, NOINVERT VK_SUBTRACT, IDM_VOLUMEMINUS, VIRTKEY, NOINVERT VK_TAB, IDM_TOGGLE_MENU, VIRTKEY, NOINVERT VK_UP, IDM_VT_PAGE_UP, VIRTKEY, NOINVERT @@ -222,8 +194,7 @@ VK_UP, IDM_DISPLAY_EPG_PREV_IN_PAGE, VIRTKEY, SHIFT, NOINVERT "W", IDM_PIXELWIDTH_MINUS, VIRTKEY, NOINVERT "W", IDM_PIXELWIDTH_PLUS, VIRTKEY, SHIFT, NOINVERT - "W", IDM_PIXELWIDTH_CURRENT, VIRTKEY, SHIFT, CONTROL, - NOINVERT + "W", IDM_PIXELWIDTH_CURRENT, VIRTKEY, SHIFT, CONTROL, NOINVERT "X", IDM_CLEAROSD, VIRTKEY, NOINVERT "Y", IDM_VIEW_TOOLBARS_MAINTOOLBAR, VIRTKEY, NOINVERT "Z", IDM_ZOOM_MINUS, VIRTKEY, NOINVERT @@ -242,8 +213,8 @@ // Dialog // -IDD_HWINFO DIALOG DISCARDABLE 22, 17, 202, 116 -STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU +IDD_HWINFO DIALOG 22, 17, 202, 116 +STYLE DS_SETFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU CAPTION "DScaler Hardware Information" FONT 8, "MS Sans Serif" BEGIN @@ -264,23 +235,18 @@ END IDD_CHANNELLIST DIALOGEX 22, 17, 357, 254 -STYLE DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | WS_VISIBLE | WS_CAPTION +STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | WS_VISIBLE | WS_CAPTION CAPTION "Channel List" FONT 8, "MS Sans Serif", 0, 0, 0x1 BEGIN - GROUPBOX "Channel List",IDC_STATIC,5,0,115,228,BS_LEFT, - WS_EX_TRANSPARENT - LISTBOX IDC_PROGRAMLIST,10,10,105,190,LBS_NOINTEGRALHEIGHT | - LBS_WANTKEYBOARDINPUT | WS_VSCROLL | WS_TABSTOP + GROUPBOX "Channel List",IDC_STATIC,5,0,115,228,BS_LEFT,WS_EX_TRANSPARENT + LISTBOX IDC_PROGRAMLIST,10,10,105,190,LBS_NOINTEGRALHEIGHT | LBS_WANTKEYBOARDINPUT | WS_VSCROLL | WS_TABSTOP PUSHBUTTON "Clear List",IDC_CLEAR,10,207,50,13,WS_GROUP - CONTROL "Mute",IDC_CHANNEL_MUTE,"Button",BS_AUTOCHECKBOX | - BS_RIGHT | WS_TABSTOP,70,207,45,15,WS_EX_RIGHT + CONTROL "Mute",IDC_CHANNEL_MUTE,"Button",BS_AUTOCHECKBOX | BS_RIGHT | WS_TABSTOP,70,207,45,15,WS_EX_RIGHT GROUPBOX "Setup",IDC_STATIC,130,0,220,50,0,WS_EX_TRANSPARENT - CONTROL "Keyed numbers are channels, not positions (US Style)", - IDC_CUSTOMCHANNELORDER,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,135,20,210,8 - COMBOBOX IDC_COUNTRY,136,34,160,75,CBS_DROPDOWNLIST | WS_VSCROLL | - WS_TABSTOP + CONTROL "Keyed numbers are channels, not positions (US Style)",IDC_CUSTOMCHANNELORDER, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,135,20,210,8 + COMBOBOX IDC_COUNTRY,136,34,160,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP PUSHBUTTON "Scan",IDC_SCAN,300,35,45,12 GROUPBOX "Full Frequency Scan Settings",IDC_STATIC,130,60,220,55 LTEXT "From ",IDC_STATIC,140,75,31,15,SS_CENTERIMAGE @@ -291,8 +257,7 @@ LTEXT "Steps Of",IDC_STATIC,140,94,35,15,SS_CENTERIMAGE EDITTEXT IDC_SCAN_STEPS,175,95,40,12,ES_AUTOHSCROLL | ES_NUMBER LTEXT "Hz",IDC_STATIC,220,95,13,15,SS_CENTERIMAGE - CONTROL "Use AFC",IDC_SCAN_AFC,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,235,95,45,15 + CONTROL "Use AFC",IDC_SCAN_AFC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,235,95,45,15 GROUPBOX "Details",IDC_STATIC,130,118,220,130 LTEXT "Name",IDC_STATIC,140,130,30,15,SS_CENTERIMAGE EDITTEXT IDC_NAME,180,130,161,12,ES_AUTOHSCROLL @@ -304,13 +269,10 @@ PUSHBUTTON "Set",IDC_SETFREQ,259,169,45,13 SCROLLBAR IDC_FINETUNE,315,169,22,13 LTEXT "Channel",IDC_STATIC,139,188,29,12,SS_CENTERIMAGE - COMBOBOX IDC_CHANNEL,179,188,41,107,CBS_DROPDOWNLIST | WS_VSCROLL | - WS_TABSTOP - CONTROL "Active",IDC_ACTIVE,"Button",BS_AUTOCHECKBOX | BS_LEFT | - BS_VCENTER | WS_TABSTOP,259,188,45,12 + COMBOBOX IDC_CHANNEL,179,188,41,107,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + CONTROL "Active",IDC_ACTIVE,"Button",BS_AUTOCHECKBOX | BS_LEFT | BS_VCENTER | WS_TABSTOP,259,188,45,12 LTEXT "Format",IDC_STATIC,139,209,34,11,SS_CENTERIMAGE - COMBOBOX IDC_FORMAT,179,209,160,60,CBS_DROPDOWNLIST | WS_VSCROLL | - WS_TABSTOP + COMBOBOX IDC_FORMAT,179,209,160,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP PUSHBUTTON "Copy",IDC_ADD,141,231,45,12 PUSHBUTTON "Remove",IDC_REMOVE,191,231,45,12 PUSHBUTTON "Up",IDC_UP,250,231,45,12 @@ -321,105 +283,71 @@ END IDD_SPLASHBOX DIALOGEX 0, 0, 145, 192 -STYLE DS_NOIDLEMSG | DS_SETFOREGROUND | DS_3DLOOK | DS_CENTER | WS_POPUP | - WS_BORDER +STYLE DS_SETFONT | DS_NOIDLEMSG | DS_SETFOREGROUND | DS_3DLOOK | DS_CENTER | WS_POPUP | WS_BORDER EXSTYLE WS_EX_NOPARENTNOTIFY | WS_EX_TOOLWINDOW FONT 8, "System", 0, 0, 0x1 BEGIN - LISTBOX IDC_LIST1,38,140,66,48,NOT LBS_NOTIFY | - LBS_NOINTEGRALHEIGHT | NOT WS_BORDER | WS_TABSTOP + LISTBOX IDC_LIST1,38,140,66,48,NOT LBS_NOTIFY | LBS_NOINTEGRALHEIGHT | NOT WS_BORDER | WS_TABSTOP END -IDD_VIDEOSETTINGS DIALOG DISCARDABLE 0, 0, 358, 158 -STYLE DS_SYSMODAL | DS_SETFOREGROUND | DS_3DLOOK | WS_POPUP | WS_VISIBLE | - WS_CAPTION | WS_SYSMENU +IDD_VIDEOSETTINGS DIALOG 0, 0, 358, 158 +STYLE DS_SYSMODAL | DS_SETFONT | DS_SETFOREGROUND | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Video Settings" FONT 8, "MS Sans Serif" BEGIN LTEXT "&Brightness",IDC_STATIC,6,13,33,10 - CONTROL "Slider1",IDC_SLIDER1,"msctls_trackbar32",TBS_TOP | - WS_TABSTOP,50,5,258,20 - EDITTEXT IDC_D1,315,10,35,12,ES_CENTER | ES_AUTOHSCROLL | - WS_DISABLED | NOT WS_TABSTOP + CONTROL "Slider1",IDC_SLIDER1,"msctls_trackbar32",TBS_TOP | WS_TABSTOP,50,5,258,20 + EDITTEXT IDC_D1,315,10,35,12,ES_CENTER | ES_AUTOHSCROLL | WS_DISABLED | NOT WS_TABSTOP LTEXT "Con&trast",IDC_STATIC,6,33,33,10 - CONTROL "Slider1",IDC_SLIDER2,"msctls_trackbar32",TBS_TOP | - WS_TABSTOP,50,25,258,20 - EDITTEXT IDC_D2,315,30,35,12,ES_CENTER | ES_AUTOHSCROLL | - WS_DISABLED | NOT WS_TABSTOP + CONTROL "Slider1",IDC_SLIDER2,"msctls_trackbar32",TBS_TOP | WS_TABSTOP,50,25,258,20 + EDITTEXT IDC_D2,315,30,35,12,ES_CENTER | ES_AUTOHSCROLL | WS_DISABLED | NOT WS_TABSTOP LTEXT "&Hue",IDC_STATIC,6,52,33,10 - CONTROL "Slider1",IDC_SLIDER3,"msctls_trackbar32",TBS_TOP | - WS_TABSTOP,50,45,258,20 - EDITTEXT IDC_D3,315,50,35,12,ES_CENTER | ES_AUTOHSCROLL | - WS_DISABLED | NOT WS_TABSTOP + CONTROL "Slider1",IDC_SLIDER3,"msctls_trackbar32",TBS_TOP | WS_TABSTOP,50,45,258,20 + EDITTEXT IDC_D3,315,50,35,12,ES_CENTER | ES_AUTOHSCROLL | WS_DISABLED | NOT WS_TABSTOP LTEXT "&Color",IDC_STATIC,6,73,33,10 - CONTROL "Slider1",IDC_SLIDER4,"msctls_trackbar32",TBS_TOP | - WS_TABSTOP,50,65,258,20 - EDITTEXT IDC_D4,315,70,35,12,ES_CENTER | ES_AUTOHSCROLL | - WS_DISABLED | NOT WS_TABSTOP + CONTROL "Slider1",IDC_SLIDER4,"msctls_trackbar32",TBS_TOP | WS_TABSTOP,50,65,258,20 + EDITTEXT IDC_D4,315,70,35,12,ES_CENTER | ES_AUTOHSCROLL | WS_DISABLED | NOT WS_TABSTOP LTEXT "Color &U",IDC_STATIC,6,93,33,10 - CONTROL "Slider1",IDC_SLIDER5,"msctls_trackbar32",TBS_TOP | - WS_TABSTOP,50,85,258,20 - EDITTEXT IDC_D5,315,90,35,12,ES_CENTER | ES_AUTOHSCROLL | - WS_DISABLED | NOT WS_TABSTOP + CONTROL "Slider1",IDC_SLIDER5,"msctls_trackbar32",TBS_TOP | WS_TABSTOP,50,85,258,20 + EDITTEXT IDC_D5,315,90,35,12,ES_CENTER | ES_AUTOHSCROLL | WS_DISABLED | NOT WS_TABSTOP LTEXT "Color &V",IDC_STATIC,6,113,33,10 - CONTROL "Slider1",IDC_SLIDER6,"msctls_trackbar32",TBS_TOP | - WS_TABSTOP,50,105,258,20 - EDITTEXT IDC_D6,315,110,35,12,ES_CENTER | ES_AUTOHSCROLL | - WS_DISABLED | NOT WS_TABSTOP + CONTROL "Slider1",IDC_SLIDER6,"msctls_trackbar32",TBS_TOP | WS_TABSTOP,50,105,258,20 + EDITTEXT IDC_D6,315,110,35,12,ES_CENTER | ES_AUTOHSCROLL | WS_DISABLED | NOT WS_TABSTOP DEFPUSHBUTTON "&OK",IDOK,6,138,45,15 PUSHBUTTON "Cancel",IDCANCEL,57,138,45,15,WS_GROUP PUSHBUTTON "&Default",IDC_DEFAULT,113,138,45,15 END -IDD_AUDIOSETTINGS DIALOG DISCARDABLE 0, 0, 352, 202 -STYLE DS_SYSMODAL | DS_SETFOREGROUND | DS_3DLOOK | WS_POPUP | WS_VISIBLE | - WS_CAPTION | WS_SYSMENU +IDD_AUDIOSETTINGS DIALOG 0, 0, 352, 202 +STYLE DS_SYSMODAL | DS_SETFONT | DS_SETFOREGROUND | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Audio Controls" FONT 8, "MS Sans Serif" BEGIN - EDITTEXT IDC_VOLUME_VAL,14,154,20,12,ES_CENTER | ES_AUTOHSCROLL | - WS_DISABLED - EDITTEXT IDC_BAND1_VAL,69,52,18,12,ES_CENTER | ES_AUTOHSCROLL | - WS_DISABLED - EDITTEXT IDC_BAND2_VAL,99,52,18,12,ES_CENTER | ES_AUTOHSCROLL | - WS_DISABLED - CONTROL "",IDC_VOLUME_SLIDER,"msctls_trackbar32",TBS_VERT | - TBS_BOTH | WS_TABSTOP,11,62,29,93 - CONTROL "",IDC_BAND1_SLIDER,"msctls_trackbar32",TBS_VERT | - TBS_BOTH | WS_TABSTOP,64,71,24,97 - CONTROL "",IDC_BAND2_SLIDER,"msctls_trackbar32",TBS_VERT | - TBS_BOTH | WS_TABSTOP,94,71,24,97 + EDITTEXT IDC_VOLUME_VAL,14,154,20,12,ES_CENTER | ES_AUTOHSCROLL | WS_DISABLED + EDITTEXT IDC_BAND1_VAL,69,52,18,12,ES_CENTER | ES_AUTOHSCROLL | WS_DISABLED + EDITTEXT IDC_BAND2_VAL,99,52,18,12,ES_CENTER | ES_AUTOHSCROLL | WS_DISABLED + CONTROL "",IDC_VOLUME_SLIDER,"msctls_trackbar32",TBS_VERT | TBS_BOTH | WS_TABSTOP,11,62,29,93 + CONTROL "",IDC_BAND1_SLIDER,"msctls_trackbar32",TBS_VERT | TBS_BOTH | WS_TABSTOP,64,71,24,97 + CONTROL "",IDC_BAND2_SLIDER,"msctls_trackbar32",TBS_VERT | TBS_BOTH | WS_TABSTOP,94,71,24,97 LTEXT "Balance:",IDC_STATIC,11,2,40,9 - EDITTEXT IDC_BALANCE_VAL,15,32,18,12,ES_CENTER | ES_AUTOHSCROLL | - WS_DISABLED - CONTROL "",IDC_BALANCE_SLIDER,"msctls_trackbar32",TBS_TOP | - WS_TABSTOP,5,10,40,23 - CONTROL "Bass Boost",IDC_SUPERBASS,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,156,9,55,12 + EDITTEXT IDC_BALANCE_VAL,15,32,18,12,ES_CENTER | ES_AUTOHSCROLL | WS_DISABLED + CONTROL "",IDC_BALANCE_SLIDER,"msctls_trackbar32",TBS_TOP | WS_TABSTOP,5,10,40,23 + CONTROL "Bass Boost",IDC_SUPERBASS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,156,9,55,12 PUSHBUTTON "Cancel",IDCANCEL,173,179,45,15 PUSHBUTTON "Default",IDC_DEFAULT,7,180,45,15 DEFPUSHBUTTON "OK",IDOK,123,179,45,15 CONTROL "",IDC_STATIC,"Static",SS_ETCHEDFRAME,57,6,160,165 LTEXT "Spatial effect",IDC_STATIC,265,57,48,8 LTEXT "Loudness",IDC_STATIC,227,57,32,8 - CONTROL "",IDC_LOUDNESS_SLIDER,"msctls_trackbar32",TBS_VERT | - TBS_BOTH | WS_TABSTOP,229,71,24,97 - CONTROL "",IDC_SPATIALEFFECT_SLIDER,"msctls_trackbar32",TBS_VERT | - TBS_BOTH | WS_TABSTOP,265,70,24,97 - CONTROL "Use equalizer",IDC_USEEQUALIZER,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,62,12,59,10 - CONTROL "",IDC_BAND5_SLIDER,"msctls_trackbar32",TBS_VERT | - TBS_BOTH | WS_TABSTOP,184,71,24,97 - CONTROL "",IDC_BAND4_SLIDER,"msctls_trackbar32",TBS_VERT | - TBS_BOTH | WS_TABSTOP,154,71,24,97 - CONTROL "",IDC_BAND3_SLIDER,"msctls_trackbar32",TBS_VERT | - TBS_BOTH | WS_TABSTOP,124,71,24,97 - EDITTEXT IDC_BAND3_VAL,129,52,18,12,ES_CENTER | ES_AUTOHSCROLL | - WS_DISABLED - EDITTEXT IDC_BAND4_VAL,159,52,18,12,ES_CENTER | ES_AUTOHSCROLL | - WS_DISABLED - EDITTEXT IDC_BAND5_VAL,189,52,18,12,ES_CENTER | ES_AUTOHSCROLL | - WS_DISABLED + CONTROL "",IDC_LOUDNESS_SLIDER,"msctls_trackbar32",TBS_VERT | TBS_BOTH | WS_TABSTOP,229,71,24,97 + CONTROL "",IDC_SPATIALEFFECT_SLIDER,"msctls_trackbar32",TBS_VERT | TBS_BOTH | WS_TABSTOP,265,70,24,97 + CONTROL "Use equalizer",IDC_USEEQUALIZER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,62,12,59,10 + CONTROL "",IDC_BAND5_SLIDER,"msctls_trackbar32",TBS_VERT | TBS_BOTH | WS_TABSTOP,184,71,24,97 + CONTROL "",IDC_BAND4_SLIDER,"msctls_trackbar32",TBS_VERT | TBS_BOTH | WS_TABSTOP,154,71,24,97 + CONTROL "",IDC_BAND3_SLIDER,"msctls_trackbar32",TBS_VERT | TBS_BOTH | WS_TABSTOP,124,71,24,97 + EDITTEXT IDC_BAND3_VAL,129,52,18,12,ES_CENTER | ES_AUTOHSCROLL | WS_DISABLED + EDITTEXT IDC_BAND4_VAL,159,52,18,12,ES_CENTER | ES_AUTOHSCROLL | WS_DISABLED + EDITTEXT IDC_BAND5_VAL,189,52,18,12,ES_CENTER | ES_AUTOHSCROLL | WS_DISABLED CTEXT "120 Hz",IDC_BAND1_TEXT,70,30,18,18 CTEXT "500 Hz",IDC_BAND2_TEXT,100,30,20,18 CTEXT "1500 Hz",IDC_BAND3_TEXT,130,30,18,18 @@ -428,189 +356,131 @@ LTEXT "Volume:",IDC_STATIC,11,53,40,8 END -IDD_VTSTATUS DIALOG DISCARDABLE 22, 17, 162, 148 -STYLE DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | WS_VISIBLE | WS_CAPTION | - WS_SYSMENU +IDD_VTSTATUS DIALOG 22, 17, 162, 148 +STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "DScaler Teletext Info" FONT 8, "MS Sans Serif" BEGIN DEFPUSHBUTTON "OK",IDOK,55,126,50,15 LTEXT "Current Page Subcode",IDC_STATIC,9,49,89,10 - EDITTEXT IDC_TEXT3,105,48,45,12,ES_RIGHT | ES_AUTOHSCROLL | - ES_READONLY + EDITTEXT IDC_TEXT3,105,48,45,12,ES_RIGHT | ES_AUTOHSCROLL | ES_READONLY LTEXT "Pages Cached",IDC_STATIC,10,19,55,10 - EDITTEXT IDC_TEXT1,105,19,45,12,ES_RIGHT | ES_AUTOHSCROLL | - ES_READONLY + EDITTEXT IDC_TEXT1,105,19,45,12,ES_RIGHT | ES_AUTOHSCROLL | ES_READONLY LTEXT "Current Page",IDC_STATIC,10,34,55,10 - EDITTEXT IDC_TEXT2,105,34,45,12,ES_RIGHT | ES_AUTOHSCROLL | - ES_READONLY + EDITTEXT IDC_TEXT2,105,34,45,12,ES_RIGHT | ES_AUTOHSCROLL | ES_READONLY GROUPBOX "Teletext Cache State",IDC_STATIC,5,4,150,62 GROUPBOX "Teletext Channel Identification",IDC_STATIC,5,71,150,48 LTEXT "Network ID Code (P8/30/1)",IDC_STATIC,10,87,91,10 - EDITTEXT IDC_TEXT4,105,85,45,12,ES_RIGHT | ES_AUTOHSCROLL | - ES_READONLY + EDITTEXT IDC_TEXT4,105,85,45,12,ES_RIGHT | ES_AUTOHSCROLL | ES_READONLY LTEXT "PDC CNI (P8/30/2)",IDC_STATIC,10,102,91,10 - EDITTEXT IDC_TEXT5,105,100,45,12,ES_RIGHT | ES_AUTOHSCROLL | - ES_READONLY + EDITTEXT IDC_TEXT5,105,100,45,12,ES_RIGHT | ES_AUTOHSCROLL | ES_READONLY END -IDD_VPSSTATUS DIALOG DISCARDABLE 22, 17, 147, 226 -STYLE DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | WS_VISIBLE | WS_CAPTION | - WS_SYSMENU +IDD_VPSSTATUS DIALOG 22, 17, 147, 226 +STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "DScaler VPS Info" FONT 8, "MS Sans Serif" BEGIN GROUPBOX "VPS-Identifier",IDC_STATIC,5,5,135,45 LTEXT "Name",IDC_STATIC,15,15,30,12,SS_CENTERIMAGE - EDITTEXT IDC_VPS_NAME,50,15,85,12,ES_RIGHT | ES_AUTOHSCROLL | - ES_READONLY + EDITTEXT IDC_VPS_NAME,50,15,85,12,ES_RIGHT | ES_AUTOHSCROLL | ES_READONLY LTEXT "CNI",IDC_STATIC,15,30,60,12,SS_CENTERIMAGE - EDITTEXT IDC_VPS_CNI,90,30,45,12,ES_RIGHT | ES_AUTOHSCROLL | - ES_READONLY + EDITTEXT IDC_VPS_CNI,90,30,45,12,ES_RIGHT | ES_AUTOHSCROLL | ES_READONLY GROUPBOX "PIL",IDC_STATIC,5,55,135,45 LTEXT "Day.Month",IDC_STATIC,15,65,60,12,SS_CENTERIMAGE - EDITTEXT IDC_VPS_MONTH,90,65,45,12,ES_RIGHT | ES_AUTOHSCROLL | - ES_READONLY + EDITTEXT IDC_VPS_MONTH,90,65,45,12,ES_RIGHT | ES_AUTOHSCROLL | ES_READONLY LTEXT "Hour:Minute",IDC_STATIC,15,80,60,12,SS_CENTERIMAGE - EDITTEXT IDC_VPS_TIME,90,80,45,12,ES_RIGHT | ES_AUTOHSCROLL | - ES_READONLY + EDITTEXT IDC_VPS_TIME,90,80,45,12,ES_RIGHT | ES_AUTOHSCROLL | ES_READONLY GROUPBOX "PCS",IDC_STATIC,5,105,135,45 LTEXT "Audio",IDC_STATIC,15,115,60,12,SS_CENTERIMAGE - EDITTEXT IDC_VPS_AUDIO,90,115,45,12,ES_RIGHT | ES_AUTOHSCROLL | - ES_READONLY + EDITTEXT IDC_VPS_AUDIO,90,115,45,12,ES_RIGHT | ES_AUTOHSCROLL | ES_READONLY LTEXT "Service Code",IDC_STATIC,15,130,60,12,SS_CENTERIMAGE - EDITTEXT IDC_VPS_SERVICE,90,130,45,12,ES_RIGHT | ES_AUTOHSCROLL | - ES_READONLY + EDITTEXT IDC_VPS_SERVICE,90,130,45,12,ES_RIGHT | ES_AUTOHSCROLL | ES_READONLY GROUPBOX "Other",IDC_STATIC,5,155,135,45 LTEXT "Label",IDC_STATIC,15,165,30,12,SS_CENTERIMAGE - EDITTEXT IDC_VPS_LABEL,50,165,85,12,ES_RIGHT | ES_AUTOHSCROLL | - ES_READONLY + EDITTEXT IDC_VPS_LABEL,50,165,85,12,ES_RIGHT | ES_AUTOHSCROLL | ES_READONLY LTEXT "PTY",IDC_STATIC,15,180,30,12,SS_CENTERIMAGE - EDITTEXT IDC_VPS_PTY,90,180,45,12,ES_RIGHT | ES_AUTOHSCROLL | - ES_READONLY + EDITTEXT IDC_VPS_PTY,90,180,45,12,ES_RIGHT | ES_AUTOHSCROLL | ES_READONLY DEFPUSHBUTTON "OK",IDOK,48,205,50,15 END -IDD_MIXERSETUP DIALOG DISCARDABLE 22, 17, 301, 294 -STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU +IDD_MIXERSETUP DIALOG 22, 17, 301, 294 +STYLE DS_SETFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU CAPTION "Mixer & Source Setup" FONT 8, "MS Sans Serif" BEGIN - CONTROL "Use the System's Mixer",IDC_USE_MIXER,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,6,6,89,11 - COMBOBOX IDC_MIXER,72,25,178,163,CBS_DROPDOWNLIST | CBS_SORT | - WS_DISABLED | WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_DEST,72,43,178,163,CBS_DROPDOWNLIST | CBS_SORT | - WS_DISABLED | WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_MIXER_INPUT_ALL,72,78,178,177,CBS_DROPDOWNLIST | - CBS_SORT | WS_DISABLED | WS_VSCROLL | WS_TABSTOP - CONTROL "Use separate lines for different source inputs", - IDC_SEPARATE_INPUT,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,13,97,155,11 - COMBOBOX IDC_MIXER_INPUT0,60,114,87,158,CBS_DROPDOWNLIST | - CBS_SORT | WS_DISABLED | WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_MIXER_INPUT1,60,129,87,159,CBS_DROPDOWNLIST | - CBS_SORT | WS_DISABLED | WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_MIXER_INPUT2,60,146,87,160,CBS_DROPDOWNLIST | - CBS_SORT | WS_DISABLED | WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_MIXER_INPUT3,60,164,87,142,CBS_DROPDOWNLIST | - CBS_SORT | WS_DISABLED | WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_MIXER_INPUT4,60,181,87,173,CBS_DROPDOWNLIST | - CBS_SORT | WS_DISABLED | WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_MIXER_INPUT5,60,198,87,121,CBS_DROPDOWNLIST | - CBS_SORT | WS_DISABLED | WS_VSCROLL | WS_TABSTOP - CONTROL "Disable the use of the card's hardware mute (only affects those with mute)", - IDC_DISABLE_HW_MUTE,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,6,236,245,11 - CONTROL "Reset the above mixer lines to original states on exit", - IDC_RESETONEXIT,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,6,249,179,11 + CONTROL "Use the System's Mixer",IDC_USE_MIXER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,6,89,11 + COMBOBOX IDC_MIXER,72,25,178,163,CBS_DROPDOWNLIST | CBS_SORT | WS_DISABLED | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_DEST,72,43,178,163,CBS_DROPDOWNLIST | CBS_SORT | WS_DISABLED | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_MIXER_INPUT_ALL,72,78,178,177,CBS_DROPDOWNLIST | CBS_SORT | WS_DISABLED | WS_VSCROLL | WS_TABSTOP + CONTROL "Use separate lines for different source inputs",IDC_SEPARATE_INPUT, + "Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,13,97,155,11 + COMBOBOX IDC_MIXER_INPUT0,60,114,87,158,CBS_DROPDOWNLIST | CBS_SORT | WS_DISABLED | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_MIXER_INPUT1,60,129,87,159,CBS_DROPDOWNLIST | CBS_SORT | WS_DISABLED | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_MIXER_INPUT2,60,146,87,160,CBS_DROPDOWNLIST | CBS_SORT | WS_DISABLED | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_MIXER_INPUT3,60,164,87,142,CBS_DROPDOWNLIST | CBS_SORT | WS_DISABLED | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_MIXER_INPUT4,60,181,87,173,CBS_DROPDOWNLIST | CBS_SORT | WS_DISABLED | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_MIXER_INPUT5,60,198,87,121,CBS_DROPDOWNLIST | CBS_SORT | WS_DISABLED | WS_VSCROLL | WS_TABSTOP + CONTROL "Disable the use of the card's hardware mute (only affects those with mute)",IDC_DISABLE_HW_MUTE, + "Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,6,236,245,11 + CONTROL "Reset the above mixer lines to original states on exit",IDC_RESETONEXIT, + "Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,6,249,179,11 DEFPUSHBUTTON "OK",IDOK,160,274,47,15 PUSHBUTTON "Cancel",IDCANCEL,213,274,45,15 LTEXT "Mixer device:",IDC_STATIC,6,26,56,11 LTEXT "Destination:",IDC_STATIC,6,44,46,11 - LTEXT "input0",IDC_MIXER_INPUT0NAME,13,113,47,17, - SS_CENTERIMAGE - LTEXT "input1",IDC_MIXER_INPUT1NAME,13,128,43,17, - SS_CENTERIMAGE - LTEXT "input2",IDC_MIXER_INPUT2NAME,13,144,46,17, - SS_CENTERIMAGE - LTEXT "input3",IDC_MIXER_INPUT3NAME,13,163,47,17, - SS_CENTERIMAGE - LTEXT "input4",IDC_MIXER_INPUT4NAME,13,179,46,17, - SS_CENTERIMAGE - LTEXT "input5",IDC_MIXER_INPUT5NAME,13,195,46,17, - SS_CENTERIMAGE + LTEXT "input0",IDC_MIXER_INPUT0NAME,13,113,47,17,SS_CENTERIMAGE + LTEXT "input1",IDC_MIXER_INPUT1NAME,13,128,43,17,SS_CENTERIMAGE + LTEXT "input2",IDC_MIXER_INPUT2NAME,13,144,46,17,SS_CENTERIMAGE + LTEXT "input3",IDC_MIXER_INPUT3NAME,13,163,47,17,SS_CENTERIMAGE + LTEXT "input4",IDC_MIXER_INPUT4NAME,13,179,46,17,SS_CENTERIMAGE + LTEXT "input5",IDC_MIXER_INPUT5NAME,13,195,46,17,SS_CENTERIMAGE GROUPBOX "Mixer Lines for Source Inputs",IDC_STATIC,6,64,289,168 LTEXT "Mixer Line:",IDC_MIXER_INPUTNAME_ALL,13,79,37,11 - LTEXT "Static destination",IDC_DEST_STATIC,72,44,182,13,NOT - WS_VISIBLE - LTEXT "The current source has no inputs.",IDC_SOURCE_NO_INPUT, - 66,89,132,20,NOT WS_VISIBLE - COMBOBOX IDC_MIXER_INPUT7,208,114,87,158,CBS_DROPDOWNLIST | - CBS_SORT | WS_DISABLED | WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_MIXER_INPUT8,208,129,87,159,CBS_DROPDOWNLIST | - CBS_SORT | WS_DISABLED | WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_MIXER_INPUT9,208,146,87,160,CBS_DROPDOWNLIST | - CBS_SORT | WS_DISABLED | WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_MIXER_INPUT10,208,164,87,142,CBS_DROPDOWNLIST | - CBS_SORT | WS_DISABLED | WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_MIXER_INPUT11,208,181,87,173,CBS_DROPDOWNLIST | - CBS_SORT | WS_DISABLED | WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_MIXER_INPUT12,208,198,87,121,CBS_DROPDOWNLIST | - CBS_SORT | WS_DISABLED | WS_VSCROLL | WS_TABSTOP - LTEXT "input7",IDC_MIXER_INPUT7NAME,152,113,54,17, - SS_CENTERIMAGE - LTEXT "input8",IDC_MIXER_INPUT8NAME,152,128,55,17, - SS_CENTERIMAGE - LTEXT "input9",IDC_MIXER_INPUT9NAME,152,144,56,17, - SS_CENTERIMAGE - LTEXT "input10",IDC_MIXER_INPUT10NAME,152,163,56,17, - SS_CENTERIMAGE - LTEXT "input11",IDC_MIXER_INPUT11NAME,152,179,55,17, - SS_CENTERIMAGE - LTEXT "input12",IDC_MIXER_INPUT12NAME,152,195,56,17, - SS_CENTERIMAGE - COMBOBOX IDC_MIXER_INPUT6,60,215,87,121,CBS_DROPDOWNLIST | - CBS_SORT | WS_DISABLED | WS_VSCROLL | WS_TABSTOP - LTEXT "input6",IDC_MIXER_INPUT6NAME,13,212,47,17, - SS_CENTERIMAGE + LTEXT "Static destination",IDC_DEST_STATIC,72,44,182,13,NOT WS_VISIBLE + LTEXT "The current source has no inputs.",IDC_SOURCE_NO_INPUT,66,89,132,20,NOT WS_VISIBLE + COMBOBOX IDC_MIXER_INPUT7,208,114,87,158,CBS_DROPDOWNLIST | CBS_SORT | WS_DISABLED | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_MIXER_INPUT8,208,129,87,159,CBS_DROPDOWNLIST | CBS_SORT | WS_DISABLED | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_MIXER_INPUT9,208,146,87,160,CBS_DROPDOWNLIST | CBS_SORT | WS_DISABLED | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_MIXER_INPUT10,208,164,87,142,CBS_DROPDOWNLIST | CBS_SORT | WS_DISABLED | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_MIXER_INPUT11,208,181,87,173,CBS_DROPDOWNLIST | CBS_SORT | WS_DISABLED | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_MIXER_INPUT12,208,198,87,121,CBS_DROPDOWNLIST | CBS_SORT | WS_DISABLED | WS_VSCROLL | WS_TABSTOP + LTEXT "input7",IDC_MIXER_INPUT7NAME,152,113,54,17,SS_CENTERIMAGE + LTEXT "input8",IDC_MIXER_INPUT8NAME,152,128,55,17,SS_CENTERIMAGE + LTEXT "input9",IDC_MIXER_INPUT9NAME,152,144,56,17,SS_CENTERIMAGE + LTEXT "input10",IDC_MIXER_INPUT10NAME,152,163,56,17,SS_CENTERIMAGE + LTEXT "input11",IDC_MIXER_INPUT11NAME,152,179,55,17,SS_CENTERIMAGE + LTEXT "input12",IDC_MIXER_INPUT12NAME,152,195,56,17,SS_CENTERIMAGE + COMBOBOX IDC_MIXER_INPUT6,60,215,87,121,CBS_DROPDOWNLIST | CBS_SORT | WS_DISABLED | WS_VSCROLL | WS_TABSTOP + LTEXT "input6",IDC_MIXER_INPUT6NAME,13,212,47,17,SS_CENTERIMAGE END -IDD_ABOUT DIALOG DISCARDABLE 22, 17, 277, 140 -STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU +IDD_ABOUT DIALOGEX 22, 17, 277, 140 +STYLE DS_SETFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU CAPTION "About DScaler" -FONT 8, "MS Sans Serif" +FONT 8, "MS Sans Serif", 0, 0, 0x0 BEGIN DEFPUSHBUTTON "OK",IDOK,105,127,58,13 CTEXT "DScaler Version 4.x",IDC_VERSION,0,3,277,9 - CTEXT "Copyright \xA9 2000-2007 John Adcock",IDC_STATIC,0,27,277, - 10 + CTEXT "Copyright \xA9 2000-2009 John Adcock",IDC_STATIC,0,27,277,10 GROUPBOX "License Information",IDC_STATIC,0,39,277,82 - CTEXT "http://www.dscaler.org",IDC_LINK,0,15,277,9,SS_NOTIFY | - SS_SUNKEN - LTEXT "This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.", - IDC_STATIC,3,51,273,26 - LTEXT "This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.", - IDC_STATIC,3,78,274,35 + CTEXT "http://www.dscaler.org",IDC_LINK,0,15,277,9,SS_NOTIFY | SS_SUNKEN + LTEXT "This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.",IDC_STATIC,3,51,273,26 + LTEXT "This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.",IDC_STATIC,3,78,274,35 END -IDD_SELECTCARD DIALOG DISCARDABLE 0, 0, 300, 199 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +IDD_SELECTCARD DIALOG 0, 0, 300, 199 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Card & Tuner Setup" FONT 8, "MS Sans Serif" BEGIN DEFPUSHBUTTON "OK",IDOK,8,178,50,14 PUSHBUTTON "Cancel",IDCANCEL,66,178,50,14 PUSHBUTTON "&Auto-Detect",IDC_AUTODETECT,35,141,50,14 - COMBOBOX IDC_CARDSSELECT,73,57,178,190,CBS_DROPDOWNLIST | - CBS_SORT | WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_TUNERSELECT,73,80,178,190,CBS_DROPDOWNLIST | - CBS_SORT | WS_VSCROLL | WS_TABSTOP - LTEXT "Use this dialog to select the card closest to your card type.\nSome tuners are autodetected and will be selected here. Otherwise you must try and find out what tuner you have.", - IDC_STATIC,7,7,286,25 - LTEXT "The easiest way is by looking at the documentation that came with the card. Otherwise you will have to see if there is any marking on the silver tuner box on the card.", - IDC_STATIC,7,34,286,22 + COMBOBOX IDC_CARDSSELECT,73,57,178,190,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_TUNERSELECT,73,80,178,190,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP + LTEXT "Use this dialog to select the card closest to your card type.\nSome tuners are autodetected and will be selected here. Otherwise you must try and find out what tuner you have.",IDC_STATIC,7,7,286,25 + LTEXT "The easiest way is by looking at the documentation that came with the card. Otherwise you will have to see if there is any marking on the silver tuner box on the card.",IDC_STATIC,7,34,286,22 LTEXT "Card",IDC_STATIC,14,58,34,9 LTEXT "Tuner",IDC_STATIC,14,80,38,9 LTEXT "Video Decoder:",IDC_STATIC,12,104,51,10 @@ -621,65 +491,49 @@ LTEXT "",IDC_BT_DEVICE_ID,209,118,64,10 LTEXT "Auto Detect ID:",IDC_STATIC,12,118,50,10 LTEXT "",IDC_BT_AUTODECTECT_ID,76,118,65,10 - CTEXT "If you don't know what card/tuner to select, try the auto-detection by the software. That will probably select for you the right card, but please note that the tuner detection is only working in few cases.", - IDC_STATIC,108,133,178,35 + CTEXT "If you don't know what card/tuner to select, try the auto-detection by the software. That will probably select for you the right card, but please note that the tuner detection is only working in few cases.",IDC_STATIC,108,133,178,35 END -IDD_DISASM_CRASH DIALOG DISCARDABLE 0, 0, 399, 234 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +IDD_DISASM_CRASH DIALOG 0, 0, 399, 234 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "DScaler Program Failure" FONT 8, "MS Sans Serif" BEGIN DEFPUSHBUTTON "OK",IDOK,342,213,50,14 - LISTBOX IDC_ASMBOX,7,19,279,100,LBS_OWNERDRAWFIXED | - LBS_USETABSTOPS | LBS_NOINTEGRALHEIGHT | LBS_NODATA | - LBS_NOSEL | WS_VSCROLL | WS_TABSTOP - LTEXT "crash reason: programmer needs good whack on head", - IDC_STATIC_BOMBREASON,8,182,219,8 - LISTBOX IDC_REGDUMP,291,19,101,158,NOT LBS_NOTIFY | - LBS_NOINTEGRALHEIGHT | LBS_NOSEL | WS_VSCROLL | - WS_HSCROLL | WS_TABSTOP + LISTBOX IDC_ASMBOX,7,19,279,100,LBS_OWNERDRAWFIXED | LBS_USETABSTOPS | LBS_NOINTEGRALHEIGHT | LBS_NODATA | LBS_NOSEL | WS_VSCROLL | WS_TABSTOP + LTEXT "crash reason: programmer needs good whack on head",IDC_STATIC_BOMBREASON,8,182,219,8 + LISTBOX IDC_REGDUMP,291,19,101,158,NOT LBS_NOTIFY | LBS_NOINTEGRALHEIGHT | LBS_NOSEL | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP LTEXT "Program disassembly",IDC_STATIC,7,7,66,8 LTEXT "CPU registers",IDC_STATIC,293,5,44,8 - LTEXT "DScaler has crashed due to a program error. Please hit Save to dump diagnostic information to a file called 'crashinfo.txt' in the DScaler program directory. OK exits the dialog.", - IDC_STATIC,7,196,274,24 + LTEXT "DScaler has crashed due to a program error. Please hit Save to dump diagnostic information to a file called 'crashinfo.txt' in the DScaler program directory. OK exits the dialog.",IDC_STATIC,7,196,274,24 PUSHBUTTON "Save",IDC_SAVE2,342,180,50,14 PUSHBUTTON "Help",IDC_HELP2,342,197,50,14,WS_DISABLED - LISTBOX IDC_CALL_STACK,7,139,279,38,LBS_NOINTEGRALHEIGHT | - WS_VSCROLL | WS_TABSTOP + LISTBOX IDC_CALL_STACK,7,139,279,38,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP LTEXT "Estimated call stack",IDC_STATIC,7,128,64,8 - LTEXT "Exiting this dialog may be followed by a system crash please save all your work!", - IDC_STATIC,7,222,279,8 + LTEXT "Exiting this dialog may be followed by a system crash please save all your work!",IDC_STATIC,7,222,279,8 END -IDD_TSOPTIONS DIALOG DISCARDABLE 0, 0, 238, 279 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +IDD_TSOPTIONS DIALOG 0, 0, 238, 279 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "TimeShift Options" FONT 8, "MS Sans Serif" BEGIN - PUSHBUTTON "Compression Options...",IDC_TSCOMPRESSIONBUTTON,9,6,82, - 14 + PUSHBUTTON "Compression Options...",IDC_TSCOMPRESSIONBUTTON,9,6,82,14 PUSHBUTTON "Tips",IDC_TSCOMPRESSIONHELP,93,6,30,14 PUSHBUTTON "Audio-Mixer Setup...",IDC_TSMIXERBUTTON,15,33,82,14 - COMBOBOX IDC_TSWAVEINCOMBO,57,52,159,72,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_TSWAVEOUTCOMBO,57,67,159,72,CBS_DROPDOWNLIST | - WS_DISABLED | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_TSWAVEINCOMBO,57,52,159,72,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_TSWAVEOUTCOMBO,57,67,159,72,CBS_DROPDOWNLIST | WS_DISABLED | WS_VSCROLL | WS_TABSTOP PUSHBUTTON "Help",IDC_TSWAVEHELP,189,33,30,14 CONTROL "1/2-height even scanlines only",IDC_TSHALFEVENRADIO, "Button",BS_AUTORADIOBUTTON | WS_GROUP,15,170,113,8 CONTROL "1/2-height odd scanlines only",IDC_TSHALFODDRADIO, "Button",BS_AUTORADIOBUTTON,15,179,109,8 - CONTROL "1/2-height even and odd averaged", - IDC_TSHALFAVERAGEDRADIO,"Button",BS_AUTORADIOBUTTON,15, - 189,127,8 - CONTROL "Full height (interlaced)",IDC_TSFULLHEIGHTRADIO,"Button", - BS_AUTORADIOBUTTON,15,199,85,8 + CONTROL "1/2-height even and odd averaged",IDC_TSHALFAVERAGEDRADIO, + "Button",BS_AUTORADIOBUTTON,15,189,127,8 + CONTROL "Full height (interlaced)",IDC_TSFULLHEIGHTRADIO,"Button",BS_AUTORADIOBUTTON,15,199,85,8 PUSHBUTTON "Help",IDC_TSHEIGHTHELP,189,167,30,14 - CONTROL "YUY2",IDC_TSYUY2RADIO,"Button",BS_AUTORADIOBUTTON | - WS_GROUP,15,227,35,8 - CONTROL "RGB",IDC_TSRGBRADIO,"Button",BS_AUTORADIOBUTTON,15,237, - 35,8 + CONTROL "YUY2",IDC_TSYUY2RADIO,"Button",BS_AUTORADIOBUTTON | WS_GROUP,15,227,35,8 + CONTROL "RGB",IDC_TSRGBRADIO,"Button",BS_AUTORADIOBUTTON,15,237,35,8 DEFPUSHBUTTON "OK",IDOK,65,258,50,14 PUSHBUTTON "Cancel",IDCANCEL,121,258,50,14 RTEXT "Wave In:",IDC_STATIC,18,54,36,8 @@ -695,342 +549,241 @@ LTEXT "Fastest, least overhead",IDC_STATIC,144,227,75,8 LTEXT "Slower, more overhead",IDC_STATIC,144,237,75,8 GROUPBOX "Destination",IDC_STATIC,9,90,216,66 - EDITTEXT IDC_TS_PATH_DISPLAY,18,111,156,12,ES_AUTOHSCROLL | - ES_READONLY + EDITTEXT IDC_TS_PATH_DISPLAY,18,111,156,12,ES_AUTOHSCROLL | ES_READONLY LTEXT "Save recorded files to",IDC_STATIC,18,99,111,9 PUSHBUTTON "Select",IDC_TS_PATH_SELECT,183,111,30,12 EDITTEXT IDC_TS_SIZE,18,138,45,12,ES_AUTOHSCROLL | ES_NUMBER LTEXT "MiB",IDC_STATIC,66,141,15,8 LTEXT "Size of each recorded file",IDC_STATIC,18,126,138,8 - CONTROL "No limit",IDC_TS_SIZE_NO_LIMIT,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,135,141,51,9 + CONTROL "No limit",IDC_TS_SIZE_NO_LIMIT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,135,141,51,9 GROUPBOX "Audio",IDC_STATIC,9,24,216,63 LTEXT "(0000.00 GiB)",IDC_TS_SIZE_GIB,84,141,48,8 END -IDD_OVERLAYSETTINGS DIALOG DISCARDABLE 0, 0, 372, 202 -STYLE DS_SYSMODAL | DS_SETFOREGROUND | DS_3DLOOK | WS_POPUP | WS_VISIBLE | - WS_CAPTION | WS_SYSMENU +IDD_OVERLAYSETTINGS DIALOG 0, 0, 372, 202 +STYLE DS_SYSMODAL | DS_SETFONT | DS_SETFOREGROUND | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Overlay Settings" FONT 8, "MS Sans Serif" BEGIN LTEXT "&Brightness",IDC_STATIC,12,54,33,10 - CONTROL "Slider1",IDC_SLIDER1,"msctls_trackbar32",TBS_TOP | - WS_TABSTOP,56,46,258,20 - EDITTEXT IDC_D1,322,51,35,12,ES_CENTER | ES_AUTOHSCROLL | - WS_DISABLED | NOT WS_TABSTOP + CONTROL "Slider1",IDC_SLIDER1,"msctls_trackbar32",TBS_TOP | WS_TABSTOP,56,46,258,20 + EDITTEXT IDC_D1,322,51,35,12,ES_CENTER | ES_AUTOHSCROLL | WS_DISABLED | NOT WS_TABSTOP LTEXT "Con&trast",IDC_STATIC,12,75,33,10 - CONTROL "Slider1",IDC_SLIDER2,"msctls_trackbar32",TBS_TOP | - WS_TABSTOP,56,67,258,20 - EDITTEXT IDC_D2,322,72,35,12,ES_CENTER | ES_AUTOHSCROLL | - WS_DISABLED | NOT WS_TABSTOP + CONTROL "Slider1",IDC_SLIDER2,"msctls_trackbar32",TBS_TOP | WS_TABSTOP,56,67,258,20 + EDITTEXT IDC_D2,322,72,35,12,ES_CENTER | ES_AUTOHSCROLL | WS_DISABLED | NOT WS_TABSTOP LTEXT "&Hue",IDC_STATIC,12,94,33,10 - CONTROL "Slider1",IDC_SLIDER3,"msctls_trackbar32",TBS_TOP | - WS_TABSTOP,56,86,258,20 - EDITTEXT IDC_D3,322,91,35,12,ES_CENTER | ES_AUTOHSCROLL | - WS_DISABLED | NOT WS_TABSTOP + CONTROL "Slider1",IDC_SLIDER3,"msctls_trackbar32",TBS_TOP | WS_TABSTOP,56,86,258,20 + EDITTEXT IDC_D3,322,91,35,12,ES_CENTER | ES_AUTOHSCROLL | WS_DISABLED | NOT WS_TABSTOP LTEXT "&Color",IDC_STATIC,12,115,33,10 - CONTROL "Slider1",IDC_SLIDER4,"msctls_trackbar32",TBS_TOP | - WS_TABSTOP,56,107,258,20 - EDITTEXT IDC_D4,322,112,35,12,ES_CENTER | ES_AUTOHSCROLL | - WS_DISABLED | NOT WS_TABSTOP + CONTROL "Slider1",IDC_SLIDER4,"msctls_trackbar32",TBS_TOP | WS_TABSTOP,56,107,258,20 + EDITTEXT IDC_D4,322,112,35,12,ES_CENTER | ES_AUTOHSCROLL | WS_DISABLED | NOT WS_TABSTOP LTEXT "&Gamma",IDC_STATIC,12,134,33,10 - CONTROL "Slider1",IDC_SLIDER5,"msctls_trackbar32",TBS_TOP | - WS_TABSTOP,56,126,258,20 - EDITTEXT IDC_D5,322,131,35,12,ES_CENTER | ES_AUTOHSCROLL | - WS_DISABLED | NOT WS_TABSTOP + CONTROL "Slider1",IDC_SLIDER5,"msctls_trackbar32",TBS_TOP | WS_TABSTOP,56,126,258,20 + EDITTEXT IDC_D5,322,131,35,12,ES_CENTER | ES_AUTOHSCROLL | WS_DISABLED | NOT WS_TABSTOP LTEXT "&Sharpness",IDC_STATIC,12,155,33,10 - CONTROL "Slider1",IDC_SLIDER6,"msctls_trackbar32",TBS_TOP | - WS_TABSTOP,56,147,258,20 - EDITTEXT IDC_D6,322,152,35,12,ES_CENTER | ES_AUTOHSCROLL | - WS_DISABLED | NOT WS_TABSTOP + CONTROL "Slider1",IDC_SLIDER6,"msctls_trackbar32",TBS_TOP | WS_TABSTOP,56,147,258,20 + EDITTEXT IDC_D6,322,152,35,12,ES_CENTER | ES_AUTOHSCROLL | WS_DISABLED | NOT WS_TABSTOP DEFPUSHBUTTON "&OK",IDOK,5,182,45,15 PUSHBUTTON "Cancel",IDCANCEL,57,182,45,15,WS_GROUP PUSHBUTTON "&Default",IDC_DEFAULT,110,182,45,15 - CONTROL "Use Overlay Controls",IDC_OVERLAYSETTINGS_ENABLE,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,5,10,92,14 + CONTROL "Use Overlay Controls",IDC_OVERLAYSETTINGS_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,10,92,14 GROUPBOX "",IDC_STATIC,5,35,362,139 - LTEXT "With certain graphic cards (like ATI Radeon cards), when the window is not on the primary monitor, the DScaler overlay adjustments will not be taken into account. In this case, use the overlay adjustments of your graphic card driver.", - IDC_STATIC,105,4,252,26 + LTEXT "With certain graphic cards (like ATI Radeon cards), when the window is not on the primary monitor, the DScaler overlay adjustments will not be taken into account. In this case, use the overlay adjustments of your graphic card driver.",IDC_STATIC,105,4,252,26 END -IDD_TREESETTING DIALOG DISCARDABLE 0, 0, 418, 265 -STYLE DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME +IDD_TREESETTING DIALOG 0, 0, 418, 265 +STYLE DS_SETFONT | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME CAPTION "Dialog" FONT 8, "MS Sans Serif" BEGIN - CONTROL "Tree1",IDC_TREESETTINGS_TREE,"SysTreeView32", - TVS_HASBUTTONS | TVS_HASLINES | TVS_SHOWSELALWAYS | - TVS_TRACKSELECT | WS_BORDER | WS_TABSTOP,5,5,125,228 - CONTROL "",IDC_TREESETTINGS_PAGEFRAME,"Static",SS_BLACKFRAME | - NOT WS_VISIBLE,133,25,282,205 + CONTROL "Tree1",IDC_TREESETTINGS_TREE,"SysTreeView32",TVS_HASBUTTONS | TVS_HASLINES | TVS_SHOWSELALWAYS | TVS_TRACKSELECT | WS_BORDER | WS_TABSTOP,5,5,125,228 + CONTROL "",IDC_TREESETTINGS_PAGEFRAME,"Static",SS_BLACKFRAME | NOT WS_VISIBLE,133,25,282,205 PUSHBUTTON "OK",IDOK,249,238,50,14 PUSHBUTTON "Cancel",IDCANCEL,304,238,50,14 PUSHBUTTON "Help",IDC_HELPBTN,359,238,50,14 - CONTROL "",IDC_TREESETTINGS_LINE,"Static",SS_ETCHEDHORZ,184,233, - 230,1 + CONTROL "",IDC_TREESETTINGS_LINE,"Static",SS_ETCHEDHORZ,184,233,230,1 LTEXT "",IDC_TREESETTINGS_STATIC,133,5,197,15,SS_CENTERIMAGE END -IDD_TREESETTINGS_EMPTY DIALOG DISCARDABLE 0, 0, 6, 6 -STYLE DS_CONTROL | WS_CHILD +IDD_TREESETTINGS_EMPTY DIALOG 0, 0, 6, 6 +STYLE DS_SETFONT | DS_CONTROL | WS_CHILD FONT 8, "MS Sans Serif" BEGIN END -IDD_TREESETTINGS_OLEPAGE DIALOG DISCARDABLE 0, 0, 200, 160 -STYLE DS_CONTROL | WS_CHILD +IDD_TREESETTINGS_OLEPAGE DIALOG 0, 0, 200, 160 +STYLE DS_SETFONT | DS_CONTROL | WS_CHILD FONT 8, "MS Sans Serif" BEGIN - CONTROL "Tab1",IDD_TREESETTINGS_TAB,"SysTabControl32", - TCS_HOTTRACK,0,0,200,160 + CONTROL "Tab1",IDD_TREESETTINGS_TAB,"SysTabControl32",TCS_HOTTRACK,0,0,200,160 END IDD_TREESETTINGS_GENERIC DIALOGEX 0, 0, 197, 169 -STYLE DS_CONTROL | WS_CHILD +STYLE DS_SETFONT | DS_CONTROL | WS_CHILD EXSTYLE WS_EX_APPWINDOW FONT 8, "MS Sans Serif", 0, 0, 0x1 BEGIN - LISTBOX IDC_TREESETTINGS_GENERIC_LIST,0,0,197,112,LBS_SORT | - LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | - WS_TABSTOP - EDITTEXT IDC_TREESETTINGS_GENERIC_EDIT,11,125,63,14, - ES_AUTOHSCROLL | ES_NUMBER | NOT WS_VISIBLE - CONTROL "Spin1",IDC_TREESETTINGS_GENERIC_SPIN,"msctls_updown32", - UDS_ALIGNRIGHT | UDS_ARROWKEYS | NOT WS_VISIBLE,75,125, - 11,14 - CONTROL "",IDC_TREESETTINGS_GENERIC_CHECK,"Button", - BS_AUTOCHECKBOX | BS_NOTIFY | NOT WS_VISIBLE | - WS_TABSTOP,11,128,174,10 + LISTBOX IDC_TREESETTINGS_GENERIC_LIST,0,0,197,112,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP + EDITTEXT IDC_TREESETTINGS_GENERIC_EDIT,11,125,63,14,ES_AUTOHSCROLL | ES_NUMBER | NOT WS_VISIBLE + CONTROL "Spin1",IDC_TREESETTINGS_GENERIC_SPIN,"msctls_updown32",UDS_ALIGNRIGHT | UDS_ARROWKEYS | NOT WS_VISIBLE,75,125,11,14 + CONTROL "",IDC_TREESETTINGS_GENERIC_CHECK,"Button",BS_AUTOCHECKBOX | BS_NOTIFY | NOT WS_VISIBLE | WS_TABSTOP,11,128,174,10 CONTROL "Slider1",IDC_TREESETTINGS_GENERIC_SLIDER, - "msctls_trackbar32",TBS_TOP | NOT WS_VISIBLE | - WS_TABSTOP,7,142,133,21 - PUSHBUTTON "Default",IDC_TREESETTINGS_GENERIC_DEFAULT,142,145,45,14, - NOT WS_VISIBLE - COMBOBOX IDC_TREESETTINGS_GENERIC_CHOOSEFROMLIST,11,127,123,75, - CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP - GROUPBOX "",IDC_TREESETTINGS_GENERIC_TOPBOX,0,0,197,34,NOT - WS_VISIBLE + "msctls_trackbar32"... [truncated message content] |
From: <ad...@us...> - 2009-03-19 17:08:19
|
Revision: 4542 http://deinterlace.svn.sourceforge.net/deinterlace/?rev=4542&view=rev Author: adcockj Date: 2009-03-19 17:08:00 +0000 (Thu, 19 Mar 2009) Log Message: ----------- Minor refactoring of aspect filter code Modified Paths: -------------- trunk/DScaler/DScaler/AspectFilters.cpp trunk/DScaler/DScaler/AspectFilters.h trunk/DScaler/DScaler/AspectRatio.cpp Modified: trunk/DScaler/DScaler/AspectFilters.cpp =================================================================== --- trunk/DScaler/DScaler/AspectFilters.cpp 2009-03-19 17:06:21 UTC (rev 4541) +++ trunk/DScaler/DScaler/AspectFilters.cpp 2009-03-19 17:08:00 UTC (rev 4542) @@ -36,7 +36,6 @@ extern BOOL bIsFullScreen; extern BOOL bShowMenu; - //uncomment line below to get debug log for aspect ratio //#define __ASPECTFILTER_DEBUG__ @@ -44,26 +43,26 @@ // Values go from Amplitude/2+Offset to Amplitude+Offset, down to Offset, and then back to Amplitude/2+Offset // This results in a bounce between Offset and Amplitude+Offset, starting at the midpoint. -CPeriodBouncer::CPeriodBouncer(time_t period, double amplitude, double offset) +CPeriodBouncer::CPeriodBouncer(time_t period, double amplitude, double offset) : + m_Period(period), + m_Amplitude(amplitude), + m_Offset(offset) { - time(&m_StartTime); - m_Period = period; - m_Amplitude = amplitude; - m_Offset = offset; + time(&m_StartTime); } -CPeriodBouncer::CPeriodBouncer(time_t startTime, time_t period, double amplitude, double offset) -{ - m_StartTime = startTime; - m_Period = period; - m_Amplitude = amplitude; - m_Offset = offset; + CPeriodBouncer::CPeriodBouncer(time_t startTime, time_t period, double amplitude, double offset) : + m_StartTime(startTime), + m_Period(period), + m_Amplitude(amplitude), + m_Offset(offset) +{ } double CPeriodBouncer::position() { double phase = fmod((((double)((time(NULL)-m_StartTime)%m_Period))/m_Period+0.25),1); - // We go from 0% to 100% over m_Period - but start 25% of the way into the phase. + // We go from 0% to 100% over m_Period - but start 25% of the way into the phase. double val = phase*m_Amplitude*2.0; if (val > m_Amplitude) { @@ -96,12 +95,6 @@ { } -// Called to actually perform the adjustment for 1 filter -// If it returns TRUE, this is a request from the filter to re-run the aspect calculation -// The TRUE Value is currently only used by the filter which adjusts the window rectangle -// as this adjustment affects all calculations. Current implementation only allows -// 1 level of re-calculate requests. - void CAspectFilter::DebugDump() { ; // empty if not implemented @@ -112,21 +105,20 @@ } -COverscanAspectFilter::COverscanAspectFilter(int TopOverscanSize, int BottomOverscanSize, int LeftOverscanSize, int RightOverscanSize) +COverscanAspectFilter::COverscanAspectFilter(int TopOverscanSize, int BottomOverscanSize, int LeftOverscanSize, int RightOverscanSize) : + m_TopOverscan(TopOverscanSize), + m_BottomOverscan(BottomOverscanSize), + m_LeftOverscan(LeftOverscanSize), + m_RightOverscan(RightOverscanSize) { - m_TopOverscan = TopOverscanSize; - m_BottomOverscan = BottomOverscanSize; - m_LeftOverscan = LeftOverscanSize; - m_RightOverscan = RightOverscanSize; } -BOOL COverscanAspectFilter::adjustAspect(CAspectRectangles &ar) +void COverscanAspectFilter::adjustAspect(CAspectRectangles &ar, bool& RequestRerun) { ar.m_CurrentOverlaySrcRect.shrink(m_LeftOverscan, m_RightOverscan, m_TopOverscan, m_BottomOverscan); - return FALSE; } -LPCSTR COverscanAspectFilter::getFilterName() +const char* COverscanAspectFilter::getFilterName() { return "COverscanAspectFilter"; } @@ -164,13 +156,12 @@ } } -BOOL CAnalogueBlankingFilter::adjustAspect(CAspectRectangles &ar) +void CAnalogueBlankingFilter::adjustAspect(CAspectRectangles &ar, bool& RequestRerun) { ar.m_CurrentOverlaySrcRect.shrink(m_LeftShift, m_RightShift, m_TopShift, m_BottomShift); - return FALSE; } -LPCSTR CAnalogueBlankingFilter::getFilterName() +const char* CAnalogueBlankingFilter::getFilterName() { return "CAnalogueBlankingFilter"; } @@ -194,14 +185,13 @@ m_pYOrbitBouncer = new CPeriodBouncer(AspectSettings.BounceStartTime,OrbitPeriodY,OrbitSize,-OrbitSize/2.0); } -BOOL COrbitAspectFilter::adjustAspect(CAspectRectangles &ar) +void COrbitAspectFilter::adjustAspect(CAspectRectangles &ar, bool& RequestRerun) { ar.m_CurrentOverlaySrcRect.shift((int)m_pXOrbitBouncer->position(), (int)m_pYOrbitBouncer->position()); - return FALSE; } -LPCSTR COrbitAspectFilter::getFilterName() +const char* COrbitAspectFilter::getFilterName() { return "COrbitAspectFilter"; } @@ -225,19 +215,18 @@ -1.0 * (double)AspectSettings.BounceAmplitude / 100.0); } -BOOL CBounceDestinationAspectFilter::adjustAspect(CAspectRectangles &ar) +void CBounceDestinationAspectFilter::adjustAspect(CAspectRectangles &ar, bool& RequestRerun) { CAspectRect oldDest = ar.m_CurrentOverlayDestRect; - m_Child->adjustAspect(ar); + m_Child->adjustAspect(ar, RequestRerun); double pos = m_pBouncer->position(); ar.m_CurrentOverlayDestRect.shift((int) (((oldDest.width()-ar.m_CurrentOverlayDestRect.width())*pos)/2), (int) (((oldDest.height()-ar.m_CurrentOverlayDestRect.height())*pos)/2)); - return FALSE; } -LPCSTR CBounceDestinationAspectFilter::getFilterName() +const char* CBounceDestinationAspectFilter::getFilterName() { return "CBounceDestinationAspectFilter"; } @@ -249,13 +238,13 @@ // Applys child filters than adjusts the position of the destination rectangle - this class fixed floating point positions // from -1 to 1 (0 = centered, -1 = left/top +1 = right/bottom -CPositionDestinationAspectFilter::CPositionDestinationAspectFilter(double x, double y) +CPositionDestinationAspectFilter::CPositionDestinationAspectFilter(double x, double y) : + m_XPos(x), + m_YPos(y) { - m_XPos = x; - m_YPos = y; } -BOOL CPositionDestinationAspectFilter::adjustAspect(CAspectRectangles &ar) +void CPositionDestinationAspectFilter::adjustAspect(CAspectRectangles &ar, bool& RequestRerun) { #ifdef __ASPECTFILTER_DEBUG__ LOG(2,"PRE FILTER VALUES: %s",this->getFilterName()); @@ -264,7 +253,7 @@ CAspectRect oldDest = ar.m_CurrentOverlayDestRect; - m_Child->adjustAspect(ar); + m_Child->adjustAspect(ar, RequestRerun); ar.m_CurrentOverlayDestRect.shift((int) (((oldDest.width()-ar.m_CurrentOverlayDestRect.width())*m_XPos)/2), (int) (((oldDest.height()-ar.m_CurrentOverlayDestRect.height())*m_YPos)/2)); @@ -273,11 +262,9 @@ LOG(2,"POST FILTER VALUES: %s",this->getFilterName()); ar.DebugDump(); #endif - - return FALSE; } -LPCSTR CPositionDestinationAspectFilter::getFilterName() +const char* CPositionDestinationAspectFilter::getFilterName() { return "CPositionDestinationAspectFilter"; } @@ -287,7 +274,7 @@ LOG(2,"m_XPos = %lf, m_YPos = %lf",m_XPos,m_YPos); } -BOOL CCropAspectFilter::adjustAspect(CAspectRectangles &ar) +void CCropAspectFilter::adjustAspect(CAspectRectangles &ar, bool& RequestRerun) { #ifdef __ASPECTFILTER_DEBUG__ LOG(2,"PRE FILTER VALUES: %s",this->getFilterName()); @@ -319,25 +306,23 @@ LOG(2,"POST FILTER VALUES: %s",this->getFilterName()); ar.DebugDump(); #endif - - return FALSE; } -LPCSTR CCropAspectFilter::getFilterName() +const char* CCropAspectFilter::getFilterName() { return "CCropAspectFilter"; } // Applies the child filters and uncrops the source image to use all the area available in // the original destination rectangle. -BOOL CUnCropAspectFilter::adjustAspect(CAspectRectangles &ar) +void CUnCropAspectFilter::adjustAspect(CAspectRectangles &ar, bool& RequestRerun) { // Save source and dest going in - needed for un-cropping the window... CAspectRect rOriginalDest(ar.m_CurrentOverlayDestRect); CAspectRect rOriginalSrc(ar.m_CurrentOverlaySrcRect); // Apply sub-filters - m_Child->adjustAspect(ar); + m_Child->adjustAspect(ar, RequestRerun); CAspectRect lastSrc = ar.m_CurrentOverlaySrcRect; // Figure out where we have space left and add it back in (up to the amount of image we have) @@ -365,11 +350,9 @@ ar.m_CurrentOverlayDestRect.right -= (int)floor((lastSrc.right-ar.m_CurrentOverlaySrcRect.right)*hScale); ar.m_CurrentOverlayDestRect.top += (int)floor((ar.m_CurrentOverlaySrcRect.top-lastSrc.top)*vScale); ar.m_CurrentOverlayDestRect.bottom -= (int)floor((lastSrc.bottom-ar.m_CurrentOverlaySrcRect.bottom)*vScale); - - return FALSE; } -LPCSTR CUnCropAspectFilter::getFilterName() +const char* CUnCropAspectFilter::getFilterName() { return "CUnCropAspectFilter"; } @@ -388,7 +371,7 @@ m_YZoom = (double)_yZoom / 100.0; } -BOOL CPanAndZoomAspectFilter::adjustAspect(CAspectRectangles &ar) +void CPanAndZoomAspectFilter::adjustAspect(CAspectRectangles &ar, bool& RequestRerun) { int dx; int dy; @@ -510,11 +493,9 @@ if (ar.m_CurrentOverlaySrcRect.right > rOriginalSrc.right) ar.m_CurrentOverlaySrcRect.right = rOriginalSrc.right; if (ar.m_CurrentOverlaySrcRect.top < rOriginalSrc.top) ar.m_CurrentOverlaySrcRect.top = rOriginalSrc.top; if (ar.m_CurrentOverlaySrcRect.bottom > rOriginalSrc.bottom) ar.m_CurrentOverlaySrcRect.bottom = rOriginalSrc.bottom; - - return FALSE; } -LPCSTR CPanAndZoomAspectFilter::getFilterName() +const char* CPanAndZoomAspectFilter::getFilterName() { return "CPanAndZoomAspectFilter"; } @@ -531,7 +512,7 @@ // Performs important sanity checks on the destination rectangle // Should occur at the end of the aspect processing chain (but before the ResizeWindow filter) -BOOL CScreenSanityAspectFilter::adjustAspect(CAspectRectangles &ar) +void CScreenSanityAspectFilter::adjustAspect(CAspectRectangles &ar, bool& RequestRerun) { // crop the Destination rect so that the overlay destination region is // always on the screen we will also update the source area to reflect this @@ -575,112 +556,107 @@ // Ensure we do not shrink too small...avoids crashes when window gets too small ar.m_CurrentOverlayDestRect.enforceMinSize(1); ar.m_CurrentOverlaySrcRect.enforceMinSize(1); - return FALSE; } -LPCSTR CScreenSanityAspectFilter::getFilterName() +const char* CScreenSanityAspectFilter::getFilterName() { return "CScreenSanityAspectFilter"; } // Attemtps to resize the client window to match the aspect ratio -BOOL CResizeWindowAspectFilter::adjustAspect(CAspectRectangles &ar) +void CResizeWindowAspectFilter::adjustAspect(CAspectRectangles &ar, bool& RequestRerun) { LONG OrigClientTop = 0; - if (!bIsFullScreen) + // See if we need to resize the window + CAspectRect currentClientRect; + CAspectRect newRect = ar.m_CurrentOverlayDestRect; + + /*currentClientRect.setToClient(hWnd,TRUE); + if (IsStatusBarVisible()) { - // See if we need to resize the window - CAspectRect currentClientRect; - CAspectRect newRect = ar.m_CurrentOverlayDestRect; - - /*currentClientRect.setToClient(hWnd,TRUE); - if (IsStatusBarVisible()) + currentClientRect.bottom -= StatusBar_Height(); + }*/ + GetDisplayAreaRect(GetMainWnd(), ¤tClientRect, TRUE); + ClientToScreen(GetMainWnd(), (POINT*) ¤tClientRect.left); + ClientToScreen(GetMainWnd(), (POINT*) ¤tClientRect.right); + + #ifdef __ASPECTFILTER_DEBUG__ + currentClientRect.DebugDump("Current Client Rect"); + newRect.DebugDump("Target Client Rect"); + #endif + + // Do we match???? + if (!currentClientRect.tolerantEquals(newRect,8)) + { + // Nope! Scale the existing window using "smart" logic to grow or shrink the window as needed + RECT screenRect = {0,0,GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYSCREEN) }; + // + // Laurent's comment + // Maybe the two following lines should replace the previous one. + // + //RECT screenRect; + //GetMonitorRect(hWnd, &screenRect); + + currentClientRect.adjustSourceAspectSmart(newRect.sourceAspect(),screenRect); + + #ifdef __ASPECTFILTER_DEBUG__ + currentClientRect.DebugDump("New Client Rect"); + #endif + + // Add the status bar back in... + /*if (IsStatusBarVisible()) { - currentClientRect.bottom -= StatusBar_Height(); + currentClientRect.bottom += StatusBar_Height(); }*/ - GetDisplayAreaRect(GetMainWnd(), ¤tClientRect, TRUE); - ClientToScreen(GetMainWnd(), (POINT*) ¤tClientRect.left); - ClientToScreen(GetMainWnd(), (POINT*) ¤tClientRect.right); + + currentClientRect.enforceMinSize(8); + + // Convert client rect to window rect... + AddDisplayAreaRect(GetMainWnd(), ¤tClientRect); + OrigClientTop = currentClientRect.top; + AdjustWindowRectEx(¤tClientRect, + GetWindowLong(GetMainWnd(), GWL_STYLE), + FALSE, /* we deal with the menu later */ + GetWindowLong(GetMainWnd(), GWL_EXSTYLE)); + // Adjust for the menu bar + // Workaround since AdjustWindowRectEx does not work correctly with a wrapped menu bar + if(bShowMenu) + { + RECT TempRect = currentClientRect; + SendMessage(GetMainWnd(), WM_NCCALCSIZE, FALSE, (LPARAM)(LPRECT)&TempRect); + currentClientRect.top -= TempRect.top - OrigClientTop; + } + #ifdef __ASPECTFILTER_DEBUG__ - currentClientRect.DebugDump("Current Client Rect"); - newRect.DebugDump("Target Client Rect"); + currentClientRect.DebugDump("New Window Pos"); #endif - // Do we match???? - if (!currentClientRect.tolerantEquals(newRect,8)) - { - // Nope! Scale the existing window using "smart" logic to grow or shrink the window as needed - RECT screenRect = {0,0,GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYSCREEN) }; - // - // Laurent's comment - // Maybe the two following lines should replace the previous one. - // - //RECT screenRect; - //GetMonitorRect(hWnd, &screenRect); - - currentClientRect.adjustSourceAspectSmart(newRect.sourceAspect(),screenRect); - - #ifdef __ASPECTFILTER_DEBUG__ - currentClientRect.DebugDump("New Client Rect"); - #endif - - // Add the status bar back in... - /*if (IsStatusBarVisible()) + // Set the window... + SetWindowPos(GetMainWnd(), NULL,currentClientRect.left,currentClientRect.top,currentClientRect.width(),currentClientRect.height(), + SWP_NOZORDER); + + #ifdef __ASPECTFILTER_DEBUG__ + currentClientRect.setToClient(hWnd,TRUE); + if (IsStatusBarVisible()) { - currentClientRect.bottom += StatusBar_Height(); - }*/ - - currentClientRect.enforceMinSize(8); - - // Convert client rect to window rect... - AddDisplayAreaRect(GetMainWnd(), ¤tClientRect); - - OrigClientTop = currentClientRect.top; - AdjustWindowRectEx(¤tClientRect, - GetWindowLong(GetMainWnd(), GWL_STYLE), - FALSE, /* we deal with the menu later */ - GetWindowLong(GetMainWnd(), GWL_EXSTYLE)); - // Adjust for the menu bar - // Workaround since AdjustWindowRectEx does not work correct with a wrapped menu bar - if(bShowMenu) - { - RECT TempRect = currentClientRect; - SendMessage(GetMainWnd(), WM_NCCALCSIZE, FALSE, (LPARAM)(LPRECT)&TempRect); - currentClientRect.top -= TempRect.top - OrigClientTop; + currentClientRect.bottom -= StatusBar_Height(); } - - #ifdef __ASPECTFILTER_DEBUG__ - currentClientRect.DebugDump("New Window Pos"); - #endif + currentClientRect.DebugDump("Actual New Client "); + #endif - // Set the window... - SetWindowPos(GetMainWnd(), NULL,currentClientRect.left,currentClientRect.top,currentClientRect.width(),currentClientRect.height(), - SWP_NOZORDER); - - #ifdef __ASPECTFILTER_DEBUG__ - currentClientRect.setToClient(hWnd,TRUE); - if (IsStatusBarVisible()) - { - currentClientRect.bottom -= StatusBar_Height(); - } - currentClientRect.DebugDump("Actual New Client "); - #endif - - // Recalculate the overlay - return TRUE; - } - } - return FALSE; + // Recalculate the overlay + RequestRerun = true; + } } -LPCSTR CResizeWindowAspectFilter::getFilterName() +const char* CResizeWindowAspectFilter::getFilterName() { return "CResizeWindowAspectFilter"; } -void CFilterChain::BuildFilterChain(int SrcWidth, int SrcHeight) +CMasterFilterChain::CMasterFilterChain(int SrcWidth, int SrcHeight) { if (AspectSettings.bAnalogueBlanking) { @@ -766,7 +742,8 @@ AspectSettings.ZoomFactorY)); } - if (AspectSettings.AutoResizeWindow) + // only put resize filter in if main window is not full screen + if (AspectSettings.AutoResizeWindow && !bIsFullScreen) { m_FilterChain.push_back(new CResizeWindowAspectFilter()); } @@ -777,37 +754,18 @@ // Applies all filters in a chain. See above for return Value. // If allowReadjust is FALSE, the filter will ignore any re-calculate requests from filters // to avoid infinite recursion. -BOOL CFilterChain::ApplyFilters(CAspectRectangles &ar, BOOL allowReadjust) +void CMasterFilterChain::adjustAspect(CAspectRectangles &ar, bool& RequestRerun) { for(vector<SmartPtr<CAspectFilter> >::iterator it = m_FilterChain.begin(); it != m_FilterChain.end(); ++it) { - #ifdef __ASPECTFILTER_DEBUG__ - LOG(2,"PRE FILTER VALUES: %s",(*it)->getFilterName()); - (*it)->DebugDump(); - ar.DebugDump(); - #endif - BOOL readjust = (*it)->adjustAspect(ar); - #ifdef __ASPECTFILTER_DEBUG__ - LOG(2,"POST FILTER VALUES: %s",(*it)->getFilterName()); - ar.DebugDump(); - if (readjust) - { - if (allowReadjust) - { - LOG(2,"READJUST REQUESTED\n"); - } - else - { - LOG(2,"READJUST REQUESTED BUT NOT ALLOWED\n"); - } - } - #endif - if (readjust && allowReadjust) - { - return TRUE; - } + (*it)->adjustAspect(ar, RequestRerun); } - return FALSE; } + +const char* CMasterFilterChain::getFilterName() +{ + return "Master Filter Chain"; +} + Modified: trunk/DScaler/DScaler/AspectFilters.h =================================================================== --- trunk/DScaler/DScaler/AspectFilters.h 2009-03-19 17:06:21 UTC (rev 4541) +++ trunk/DScaler/DScaler/AspectFilters.h 2009-03-19 17:08:00 UTC (rev 4542) @@ -85,15 +85,9 @@ public: CAspectFilter(); virtual ~CAspectFilter(); - virtual LPCSTR getFilterName() = 0; + virtual const char* getFilterName() = 0; - /** Called to actually perform the adjustment for 1 filter - If it returns TRUE, this is a request from the filter to re-run the aspect calculation - The TRUE Value is currently only used by the filter which adjusts the window rectangle - as this adjustment affects all calculations. Current implementation only allows - 1 level of re-calculate requests. - */ - virtual BOOL adjustAspect(CAspectRectangles &ar) = 0; + virtual void adjustAspect(CAspectRectangles& ar, bool& RequestRerun) = 0; virtual void DebugDump(); void SetChild(SmartPtr<CAspectFilter> Child); @@ -108,8 +102,8 @@ { public: COverscanAspectFilter(int TopOverscanSize, int BottomOverscanSize, int LeftOverscanSize, int RightOverscanSize); - virtual BOOL adjustAspect(CAspectRectangles &ar); - virtual LPCSTR getFilterName(); + virtual void adjustAspect(CAspectRectangles& ar, bool& RequestRerun); + virtual const char* getFilterName(); virtual void DebugDump(); protected: @@ -124,8 +118,8 @@ { public: CAnalogueBlankingFilter(int SourceWidth, int SourceHeight); - virtual BOOL adjustAspect(CAspectRectangles &ar); - virtual LPCSTR getFilterName(); + virtual void adjustAspect(CAspectRectangles& ar, bool& RequestRerun); + virtual const char* getFilterName(); virtual void DebugDump(); protected: @@ -144,8 +138,8 @@ { public: COrbitAspectFilter(time_t OrbitPeriodX, time_t OrbitPeriodY, long OrbitSize); - virtual BOOL adjustAspect(CAspectRectangles &ar); - virtual LPCSTR getFilterName(); + virtual void adjustAspect(CAspectRectangles& ar, bool& RequestRerun); + virtual const char* getFilterName(); virtual void DebugDump(); protected: @@ -159,8 +153,8 @@ { public: CBounceDestinationAspectFilter(time_t period); - virtual BOOL adjustAspect(CAspectRectangles &ar); - virtual LPCSTR getFilterName(); + virtual void adjustAspect(CAspectRectangles& ar, bool& RequestRerun); + virtual const char* getFilterName(); virtual void DebugDump(); protected: @@ -174,8 +168,8 @@ { public: CPositionDestinationAspectFilter(double x, double y); - virtual BOOL adjustAspect(CAspectRectangles &ar); - virtual LPCSTR getFilterName(); + virtual void adjustAspect(CAspectRectangles& ar, bool& RequestRerun); + virtual const char* getFilterName(); virtual void DebugDump(); protected: @@ -187,8 +181,8 @@ class CCropAspectFilter : public CAspectFilter { public: - virtual BOOL adjustAspect(CAspectRectangles &ar); - virtual LPCSTR getFilterName(); + virtual void adjustAspect(CAspectRectangles& ar, bool& RequestRerun); + virtual const char* getFilterName(); }; /** Applies the child filters and uncrops the source image to use all the area available in @@ -197,8 +191,8 @@ class CUnCropAspectFilter : public CAspectFilter { public: - virtual BOOL adjustAspect(CAspectRectangles &ar); - virtual LPCSTR getFilterName(); + virtual void adjustAspect(CAspectRectangles &ar, bool& RequestRerun); + virtual const char* getFilterName(); }; /** Zooms in on the source image @@ -212,8 +206,8 @@ { public: CPanAndZoomAspectFilter(long _xPos, long _yPos, long _xZoom, long _yZoom); - virtual BOOL adjustAspect(CAspectRectangles &ar); - virtual LPCSTR getFilterName(); + virtual void adjustAspect(CAspectRectangles& ar, bool& RequestRerun); + virtual const char* getFilterName(); virtual void DebugDump(); protected: @@ -230,8 +224,8 @@ { public: CScreenSanityAspectFilter(int SrcWidth, int SrcHeight); - virtual BOOL adjustAspect(CAspectRectangles &ar); - virtual LPCSTR getFilterName(); + virtual void adjustAspect(CAspectRectangles& ar, bool& RequestRerun); + virtual const char* getFilterName(); protected: int m_SrcWidth; int m_SrcHeight; @@ -242,19 +236,20 @@ class CResizeWindowAspectFilter : public CAspectFilter { public: - virtual BOOL adjustAspect(CAspectRectangles &ar); - virtual LPCSTR getFilterName(); + virtual void adjustAspect(CAspectRectangles& ar, bool& RequestRerun); + virtual const char* getFilterName(); }; /** Ordered list of aspect filters to be applied */ -class CFilterChain +class CMasterFilterChain : public CAspectFilter { public: - BOOL ApplyFilters(CAspectRectangles &ar, BOOL allowReadjust); - void BuildFilterChain(int SrcWidth, int SrcHeight); + CMasterFilterChain(int SrcWidth, int SrcHeight); + virtual void adjustAspect(CAspectRectangles& ar, bool& RequestRerun); + virtual const char* getFilterName(); protected: std::vector< SmartPtr<CAspectFilter> > m_FilterChain; }; -#endif \ No newline at end of file +#endif Modified: trunk/DScaler/DScaler/AspectRatio.cpp =================================================================== --- trunk/DScaler/DScaler/AspectRatio.cpp 2009-03-19 17:06:21 UTC (rev 4541) +++ trunk/DScaler/DScaler/AspectRatio.cpp 2009-03-19 17:08:00 UTC (rev 4542) @@ -110,7 +110,6 @@ } else { - CFilterChain FilterChain; int SourceHeight; int SourceWidth; @@ -190,8 +189,10 @@ // Build filter chain and apply /// \todo Filter chain should be saved and only rebuilt if options are changed - FilterChain.BuildFilterChain(SourceWidth, SourceHeight); - if (FilterChain.ApplyFilters(ar, allowResize)) + CMasterFilterChain FilterChain(SourceWidth, SourceHeight); + bool RequestResize(false); + FilterChain.adjustAspect(ar, RequestResize); + if (RequestResize && allowResize) { InFunction = FALSE; WorkoutOverlaySize(FALSE, FALSE); // Prevent further recursion - only allow 1 level of request for readjusting the overlay This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ad...@us...> - 2009-03-23 12:57:32
|
Revision: 4545 http://deinterlace.svn.sourceforge.net/deinterlace/?rev=4545&view=rev Author: adcockj Date: 2009-03-23 12:57:21 +0000 (Mon, 23 Mar 2009) Log Message: ----------- Initial refactoring of CSetting Consistently use BOOL Modified Paths: -------------- trunk/DScaler/DScaler/AspectFilters.cpp trunk/DScaler/DScaler/AspectFilters.h trunk/DScaler/DScaler/AspectRatio.cpp trunk/DScaler/DScaler/AspectRatio.h trunk/DScaler/DScaler/AspectRect.h trunk/DScaler/DScaler/AudioControls.cpp trunk/DScaler/DScaler/AudioControls.h trunk/DScaler/DScaler/BT848Card.cpp trunk/DScaler/DScaler/BT848Card.h trunk/DScaler/DScaler/BT848Card_Audio.cpp trunk/DScaler/DScaler/BT848Card_Types.cpp trunk/DScaler/DScaler/BT848Source.cpp trunk/DScaler/DScaler/BT848Source.h trunk/DScaler/DScaler/BT848Source_Audio.cpp trunk/DScaler/DScaler/BT848Source_UI.cpp trunk/DScaler/DScaler/BT848_VoodooTV_IFdem.cpp trunk/DScaler/DScaler/BT848_VoodooTV_IFdem.h trunk/DScaler/DScaler/BitmapAsButton.cpp trunk/DScaler/DScaler/CX2388xCard.cpp trunk/DScaler/DScaler/CX2388xCard.h trunk/DScaler/DScaler/CX2388xSource.cpp trunk/DScaler/DScaler/CX2388xSource.h trunk/DScaler/DScaler/CX2388xSource_UI.cpp trunk/DScaler/DScaler/Calibration.cpp trunk/DScaler/DScaler/Calibration.h trunk/DScaler/DScaler/Channels.cpp trunk/DScaler/DScaler/Crash.cpp trunk/DScaler/DScaler/Credits.cpp trunk/DScaler/DScaler/D3D9Output.cpp trunk/DScaler/DScaler/DScaler.cpp trunk/DScaler/DScaler/DScaler2005.vcproj trunk/DScaler/DScaler/DScalerApp.cpp trunk/DScaler/DScaler/DScalerUtils.h trunk/DScaler/DScaler/DynamicFunction.h trunk/DScaler/DScaler/FD_60Hz.cpp trunk/DScaler/DScaler/FD_Prog.cpp trunk/DScaler/DScaler/GenericTuner.cpp trunk/DScaler/DScaler/GenericTuner.h trunk/DScaler/DScaler/GradientStatic.cpp trunk/DScaler/DScaler/GradientStatic.h trunk/DScaler/DScaler/HierarchicalConfigParser.cpp trunk/DScaler/DScaler/HierarchicalConfigParser.h trunk/DScaler/DScaler/I2CBus.cpp trunk/DScaler/DScaler/I2CBus.h trunk/DScaler/DScaler/I2CBusForLineInterface.cpp trunk/DScaler/DScaler/I2CBusForLineInterface.h trunk/DScaler/DScaler/I2CDevice.cpp trunk/DScaler/DScaler/I2CDevice.h trunk/DScaler/DScaler/I2CLineInterface.h trunk/DScaler/DScaler/IOutput.cpp trunk/DScaler/DScaler/IOutput.h trunk/DScaler/DScaler/ISetting.cpp trunk/DScaler/DScaler/ISetting.h trunk/DScaler/DScaler/ITuner.cpp trunk/DScaler/DScaler/ITuner.h trunk/DScaler/DScaler/MSP34x0AudioControls.cpp trunk/DScaler/DScaler/MSP34x0AudioControls.h trunk/DScaler/DScaler/MSP34x0AudioDecoder.cpp trunk/DScaler/DScaler/MSP34x0AudioDecoder.h trunk/DScaler/DScaler/MT2032.cpp trunk/DScaler/DScaler/MT2032.h trunk/DScaler/DScaler/MT2050.cpp trunk/DScaler/DScaler/MT2050.h trunk/DScaler/DScaler/NoTuner.h trunk/DScaler/DScaler/OSD.cpp trunk/DScaler/DScaler/OpenDlg.cpp trunk/DScaler/DScaler/OpenDlg.h trunk/DScaler/DScaler/OverlayOutput.cpp trunk/DScaler/DScaler/PCICard.cpp trunk/DScaler/DScaler/PIC16C54.cpp trunk/DScaler/DScaler/PIC16C54.h trunk/DScaler/DScaler/ParsingCommon.cpp trunk/DScaler/DScaler/Providers.cpp trunk/DScaler/DScaler/SAA7134I2CBus.cpp trunk/DScaler/DScaler/SAA7134I2CBus.h trunk/DScaler/DScaler/SAA7134Source.cpp trunk/DScaler/DScaler/SAA7134Source.h trunk/DScaler/DScaler/SAA7134Source_Audio.cpp trunk/DScaler/DScaler/SAA7134Source_UI.cpp trunk/DScaler/DScaler/ScheduledRecording.cpp trunk/DScaler/DScaler/ScheduledRecording.h trunk/DScaler/DScaler/Setting.cpp trunk/DScaler/DScaler/Setting.h trunk/DScaler/DScaler/SettingHolder.cpp trunk/DScaler/DScaler/SettingHolder.h trunk/DScaler/DScaler/Settings.h trunk/DScaler/DScaler/SettingsMaster.cpp trunk/DScaler/DScaler/SettingsMaster.h trunk/DScaler/DScaler/SizeSettings.cpp trunk/DScaler/DScaler/SmartHandle.h trunk/DScaler/DScaler/SmartPtr.h trunk/DScaler/DScaler/Source.h trunk/DScaler/DScaler/StillSource.h trunk/DScaler/DScaler/TDA8275.cpp trunk/DScaler/DScaler/TDA8275.h trunk/DScaler/DScaler/TDA8290.cpp trunk/DScaler/DScaler/TDA8290.h trunk/DScaler/DScaler/TDA9873AudioDecoder.cpp trunk/DScaler/DScaler/TDA9873AudioDecoder.h trunk/DScaler/DScaler/TDA9874.cpp trunk/DScaler/DScaler/TDA9874.h trunk/DScaler/DScaler/TDA9874AudioDecoder.cpp trunk/DScaler/DScaler/TDA9874AudioDecoder.h trunk/DScaler/DScaler/TDA9875.cpp trunk/DScaler/DScaler/TDA9875.h trunk/DScaler/DScaler/TDA9875AudioControls.cpp trunk/DScaler/DScaler/TDA9875AudioControls.h trunk/DScaler/DScaler/TDA9875AudioDecoder.cpp trunk/DScaler/DScaler/TDA9875AudioDecoder.h trunk/DScaler/DScaler/TDA9887.cpp trunk/DScaler/DScaler/TDA9887.h trunk/DScaler/DScaler/TSOptionsDlg.cpp trunk/DScaler/DScaler/TVFormats.cpp trunk/DScaler/DScaler/TVFormats.h trunk/DScaler/DScaler/TimeShift.cpp trunk/DScaler/DScaler/TimeShift.h trunk/DScaler/DScaler/ToolbarControl.cpp trunk/DScaler/DScaler/Toolbars.cpp trunk/DScaler/DScaler/Toolbars.h trunk/DScaler/DScaler/TreeSettingsDlg.cpp trunk/DScaler/DScaler/TreeSettingsDlg.h trunk/DScaler/DScaler/TreeSettingsGeneric.cpp trunk/DScaler/DScaler/TreeSettingsOleProperties.cpp trunk/DScaler/DScaler/TreeSettingsOleProperties.h trunk/DScaler/DScaler/TreeSettingsPage.cpp trunk/DScaler/DScaler/TreeSettingsPage.h trunk/DScaler/DScaler/VBI_VideoText.cpp trunk/DScaler/DScaler/VTMosaicGraphics.cpp trunk/DScaler/DScaler/VTMosaicGraphics.h trunk/DScaler/DScaler/VideoSettings.cpp trunk/DScaler/DScaler/avi.cpp trunk/DScaler/DScaler/avi_file.cpp trunk/DScaler/DScaler/dshowsource/BaseCrossbar.h trunk/DScaler/DScaler/dshowsource/CaptureDevice.cpp trunk/DScaler/DScaler/dshowsource/CaptureDevice.h trunk/DScaler/DScaler/dshowsource/DSAudioDevicePage.cpp trunk/DScaler/DScaler/dshowsource/DSAudioDevicePage.h trunk/DScaler/DScaler/dshowsource/DSFileSource.h trunk/DScaler/DScaler/dshowsource/DSGraph.cpp trunk/DScaler/DScaler/dshowsource/DSGraph.h trunk/DScaler/DScaler/dshowsource/DSObject.h trunk/DScaler/DScaler/dshowsource/DSProvider.cpp trunk/DScaler/DScaler/dshowsource/DSProvider.h trunk/DScaler/DScaler/dshowsource/DSSource.cpp trunk/DScaler/DScaler/dshowsource/DSSource.h trunk/DScaler/DScaler/dshowsource/DSSourceBase.cpp trunk/DScaler/DScaler/dshowsource/DSSourceBase.h trunk/DScaler/DScaler/dshowsource/DSVideoFormatPage.cpp trunk/DScaler/DScaler/dshowsource/DSVideoFormatPage.h trunk/DScaler/DScaler/dshowsource/DShowBaseSource.h trunk/DScaler/DScaler/dshowsource/DShowFileSource.cpp trunk/DScaler/DScaler/dshowsource/DShowFileSource.h trunk/DScaler/DScaler/dshowsource/DevEnum.cpp trunk/DScaler/DScaler/dshowsource/DevEnum.h trunk/DScaler/DScaler/dshowsource/PinEnum.cpp trunk/DScaler/DScaler/dshowsource/PinEnum.h trunk/DScaler/DScaler/dshowsource/SingleCrossbar.cpp trunk/DScaler/DScaler/dshowsource/SingleCrossbar.h Removed Paths: ------------- trunk/DScaler/DScaler/SettingConfig.cpp trunk/DScaler/DScaler/SettingConfig.h trunk/DScaler/DScaler/SettingGroup.cpp trunk/DScaler/DScaler/SettingGroup.h trunk/DScaler/DScaler/SettingKey.cpp trunk/DScaler/DScaler/SettingKey.h trunk/DScaler/DScaler/SettingLimiter.cpp trunk/DScaler/DScaler/SettingLimiter.h trunk/DScaler/DScaler/SettingObject.cpp trunk/DScaler/DScaler/SettingObject.h trunk/DScaler/DScaler/SettingRepository.cpp trunk/DScaler/DScaler/SettingRepository.h trunk/DScaler/DScaler/SettingValue.cpp trunk/DScaler/DScaler/SettingValue.h trunk/DScaler/DScaler/TreeSettingsAssociations.cpp trunk/DScaler/DScaler/TreeSettingsAssociations.h trunk/DScaler/DScaler/TreeSettingsSettingConfig.cpp trunk/DScaler/DScaler/TreeSettingsSettingConfig.h Modified: trunk/DScaler/DScaler/AspectFilters.cpp =================================================================== --- trunk/DScaler/DScaler/AspectFilters.cpp 2009-03-23 04:24:30 UTC (rev 4544) +++ trunk/DScaler/DScaler/AspectFilters.cpp 2009-03-23 12:57:21 UTC (rev 4545) @@ -113,7 +113,7 @@ { } -void COverscanAspectFilter::adjustAspect(CAspectRectangles &ar, bool& RequestRerun) +void COverscanAspectFilter::adjustAspect(CAspectRectangles &ar, BOOL& RequestRerun) { ar.m_CurrentOverlaySrcRect.shrink(m_LeftOverscan, m_RightOverscan, m_TopOverscan, m_BottomOverscan); } @@ -156,7 +156,7 @@ } } -void CAnalogueBlankingFilter::adjustAspect(CAspectRectangles &ar, bool& RequestRerun) +void CAnalogueBlankingFilter::adjustAspect(CAspectRectangles &ar, BOOL& RequestRerun) { ar.m_CurrentOverlaySrcRect.shrink(m_LeftShift, m_RightShift, m_TopShift, m_BottomShift); } @@ -185,7 +185,7 @@ m_pYOrbitBouncer = new CPeriodBouncer(AspectSettings.BounceStartTime,OrbitPeriodY,OrbitSize,-OrbitSize/2.0); } -void COrbitAspectFilter::adjustAspect(CAspectRectangles &ar, bool& RequestRerun) +void COrbitAspectFilter::adjustAspect(CAspectRectangles &ar, BOOL& RequestRerun) { ar.m_CurrentOverlaySrcRect.shift((int)m_pXOrbitBouncer->position(), (int)m_pYOrbitBouncer->position()); @@ -215,7 +215,7 @@ -1.0 * (double)AspectSettings.BounceAmplitude / 100.0); } -void CBounceDestinationAspectFilter::adjustAspect(CAspectRectangles &ar, bool& RequestRerun) +void CBounceDestinationAspectFilter::adjustAspect(CAspectRectangles &ar, BOOL& RequestRerun) { CAspectRect oldDest = ar.m_CurrentOverlayDestRect; @@ -244,7 +244,7 @@ { } -void CPositionDestinationAspectFilter::adjustAspect(CAspectRectangles &ar, bool& RequestRerun) +void CPositionDestinationAspectFilter::adjustAspect(CAspectRectangles &ar, BOOL& RequestRerun) { #ifdef __ASPECTFILTER_DEBUG__ LOG(2,"PRE FILTER VALUES: %s",this->getFilterName()); @@ -274,7 +274,7 @@ LOG(2,"m_XPos = %lf, m_YPos = %lf",m_XPos,m_YPos); } -void CCropAspectFilter::adjustAspect(CAspectRectangles &ar, bool& RequestRerun) +void CCropAspectFilter::adjustAspect(CAspectRectangles &ar, BOOL& RequestRerun) { #ifdef __ASPECTFILTER_DEBUG__ LOG(2,"PRE FILTER VALUES: %s",this->getFilterName()); @@ -315,7 +315,7 @@ // Applies the child filters and uncrops the source image to use all the area available in // the original destination rectangle. -void CUnCropAspectFilter::adjustAspect(CAspectRectangles &ar, bool& RequestRerun) +void CUnCropAspectFilter::adjustAspect(CAspectRectangles &ar, BOOL& RequestRerun) { // Save source and dest going in - needed for un-cropping the window... CAspectRect rOriginalDest(ar.m_CurrentOverlayDestRect); @@ -371,7 +371,7 @@ m_YZoom = (double)_yZoom / 100.0; } -void CPanAndZoomAspectFilter::adjustAspect(CAspectRectangles &ar, bool& RequestRerun) +void CPanAndZoomAspectFilter::adjustAspect(CAspectRectangles &ar, BOOL& RequestRerun) { int dx; int dy; @@ -512,7 +512,7 @@ // Performs important sanity checks on the destination rectangle // Should occur at the end of the aspect processing chain (but before the ResizeWindow filter) -void CScreenSanityAspectFilter::adjustAspect(CAspectRectangles &ar, bool& RequestRerun) +void CScreenSanityAspectFilter::adjustAspect(CAspectRectangles &ar, BOOL& RequestRerun) { // crop the Destination rect so that the overlay destination region is // always on the screen we will also update the source area to reflect this @@ -564,7 +564,7 @@ } // Attemtps to resize the client window to match the aspect ratio -void CResizeWindowAspectFilter::adjustAspect(CAspectRectangles &ar, bool& RequestRerun) +void CResizeWindowAspectFilter::adjustAspect(CAspectRectangles &ar, BOOL& RequestRerun) { LONG OrigClientTop = 0; @@ -647,7 +647,7 @@ #endif // Recalculate the overlay - RequestRerun = true; + RequestRerun = TRUE; } } @@ -754,7 +754,7 @@ // Applies all filters in a chain. See above for return Value. // If allowReadjust is FALSE, the filter will ignore any re-calculate requests from filters // to avoid infinite recursion. -void CMasterFilterChain::adjustAspect(CAspectRectangles &ar, bool& RequestRerun) +void CMasterFilterChain::adjustAspect(CAspectRectangles &ar, BOOL& RequestRerun) { for(vector<SmartPtr<CAspectFilter> >::iterator it = m_FilterChain.begin(); it != m_FilterChain.end(); Modified: trunk/DScaler/DScaler/AspectFilters.h =================================================================== --- trunk/DScaler/DScaler/AspectFilters.h 2009-03-23 04:24:30 UTC (rev 4544) +++ trunk/DScaler/DScaler/AspectFilters.h 2009-03-23 12:57:21 UTC (rev 4545) @@ -87,7 +87,7 @@ virtual ~CAspectFilter(); virtual const char* getFilterName() = 0; - virtual void adjustAspect(CAspectRectangles& ar, bool& RequestRerun) = 0; + virtual void adjustAspect(CAspectRectangles& ar, BOOL& RequestRerun) = 0; virtual void DebugDump(); void SetChild(SmartPtr<CAspectFilter> Child); @@ -102,7 +102,7 @@ { public: COverscanAspectFilter(int TopOverscanSize, int BottomOverscanSize, int LeftOverscanSize, int RightOverscanSize); - virtual void adjustAspect(CAspectRectangles& ar, bool& RequestRerun); + virtual void adjustAspect(CAspectRectangles& ar, BOOL& RequestRerun); virtual const char* getFilterName(); virtual void DebugDump(); @@ -118,7 +118,7 @@ { public: CAnalogueBlankingFilter(int SourceWidth, int SourceHeight); - virtual void adjustAspect(CAspectRectangles& ar, bool& RequestRerun); + virtual void adjustAspect(CAspectRectangles& ar, BOOL& RequestRerun); virtual const char* getFilterName(); virtual void DebugDump(); @@ -138,7 +138,7 @@ { public: COrbitAspectFilter(time_t OrbitPeriodX, time_t OrbitPeriodY, long OrbitSize); - virtual void adjustAspect(CAspectRectangles& ar, bool& RequestRerun); + virtual void adjustAspect(CAspectRectangles& ar, BOOL& RequestRerun); virtual const char* getFilterName(); virtual void DebugDump(); @@ -153,7 +153,7 @@ { public: CBounceDestinationAspectFilter(time_t period); - virtual void adjustAspect(CAspectRectangles& ar, bool& RequestRerun); + virtual void adjustAspect(CAspectRectangles& ar, BOOL& RequestRerun); virtual const char* getFilterName(); virtual void DebugDump(); @@ -168,7 +168,7 @@ { public: CPositionDestinationAspectFilter(double x, double y); - virtual void adjustAspect(CAspectRectangles& ar, bool& RequestRerun); + virtual void adjustAspect(CAspectRectangles& ar, BOOL& RequestRerun); virtual const char* getFilterName(); virtual void DebugDump(); @@ -181,7 +181,7 @@ class CCropAspectFilter : public CAspectFilter { public: - virtual void adjustAspect(CAspectRectangles& ar, bool& RequestRerun); + virtual void adjustAspect(CAspectRectangles& ar, BOOL& RequestRerun); virtual const char* getFilterName(); }; @@ -191,7 +191,7 @@ class CUnCropAspectFilter : public CAspectFilter { public: - virtual void adjustAspect(CAspectRectangles &ar, bool& RequestRerun); + virtual void adjustAspect(CAspectRectangles &ar, BOOL& RequestRerun); virtual const char* getFilterName(); }; @@ -206,7 +206,7 @@ { public: CPanAndZoomAspectFilter(long _xPos, long _yPos, long _xZoom, long _yZoom); - virtual void adjustAspect(CAspectRectangles& ar, bool& RequestRerun); + virtual void adjustAspect(CAspectRectangles& ar, BOOL& RequestRerun); virtual const char* getFilterName(); virtual void DebugDump(); @@ -224,7 +224,7 @@ { public: CScreenSanityAspectFilter(int SrcWidth, int SrcHeight); - virtual void adjustAspect(CAspectRectangles& ar, bool& RequestRerun); + virtual void adjustAspect(CAspectRectangles& ar, BOOL& RequestRerun); virtual const char* getFilterName(); protected: int m_SrcWidth; @@ -236,7 +236,7 @@ class CResizeWindowAspectFilter : public CAspectFilter { public: - virtual void adjustAspect(CAspectRectangles& ar, bool& RequestRerun); + virtual void adjustAspect(CAspectRectangles& ar, BOOL& RequestRerun); virtual const char* getFilterName(); }; @@ -246,7 +246,7 @@ { public: CMasterFilterChain(int SrcWidth, int SrcHeight); - virtual void adjustAspect(CAspectRectangles& ar, bool& RequestRerun); + virtual void adjustAspect(CAspectRectangles& ar, BOOL& RequestRerun); virtual const char* getFilterName(); protected: std::vector< SmartPtr<CAspectFilter> > m_FilterChain; Modified: trunk/DScaler/DScaler/AspectRatio.cpp =================================================================== --- trunk/DScaler/DScaler/AspectRatio.cpp 2009-03-23 04:24:30 UTC (rev 4544) +++ trunk/DScaler/DScaler/AspectRatio.cpp 2009-03-23 12:57:21 UTC (rev 4545) @@ -190,7 +190,7 @@ // Build filter chain and apply /// \todo Filter chain should be saved and only rebuilt if options are changed CMasterFilterChain FilterChain(SourceWidth, SourceHeight); - bool RequestResize(false); + BOOL RequestResize(FALSE); FilterChain.adjustAspect(ar, RequestResize); if (RequestResize && allowResize) { Modified: trunk/DScaler/DScaler/AspectRatio.h =================================================================== --- trunk/DScaler/DScaler/AspectRatio.h 2009-03-23 04:24:30 UTC (rev 4544) +++ trunk/DScaler/DScaler/AspectRatio.h 2009-03-23 12:57:21 UTC (rev 4545) @@ -72,7 +72,7 @@ BOOL ProcessAspectRatioSelection(HWND hWnd, WORD wMenuID); void AspectRatio_SetMenu(HMENU hMenu); void WorkoutOverlaySize(BOOL ForceRedraw, BOOL allowResize = TRUE); -void PaintColorkey(HWND hWnd, BOOL bEnable, HDC hDC, RECT* PaintRect, BOOL bNoMiddlePainting = false); +void PaintColorkey(HWND hWnd, BOOL bEnable, HDC hDC, RECT* PaintRect, BOOL bNoMiddlePainting = FALSE); int FindAspectRatio(short** EvenField, short** OddField); void AdjustAspectRatio(long SourceAspectAdjust, TDeinterlaceInfo* pInfo); void GetSourceRect(RECT* rect); Modified: trunk/DScaler/DScaler/AspectRect.h =================================================================== --- trunk/DScaler/DScaler/AspectRect.h 2009-03-23 04:24:30 UTC (rev 4544) +++ trunk/DScaler/DScaler/AspectRect.h 2009-03-23 12:57:21 UTC (rev 4545) @@ -68,12 +68,12 @@ // Considers 2 rectangles equal if they are within n pixels of each other on each edge BOOL tolerantEquals(const CAspectRect &src, int tolerance = 4) { - if (fabs(m_OutputAdjustment-src.m_OutputAdjustment) > .00001) return false; - if (abs(left - src.left) > tolerance) return false; - if (abs(right - src.right) > tolerance) return false; - if (abs(top - src.top) > tolerance) return false; - if (abs(bottom - src.bottom) > tolerance) return false; - return true; + if (fabs(m_OutputAdjustment-src.m_OutputAdjustment) > .00001) return FALSE; + if (abs(left - src.left) > tolerance) return FALSE; + if (abs(right - src.right) > tolerance) return FALSE; + if (abs(top - src.top) > tolerance) return FALSE; + if (abs(bottom - src.bottom) > tolerance) return FALSE; + return TRUE; } int width() Modified: trunk/DScaler/DScaler/AudioControls.cpp =================================================================== --- trunk/DScaler/DScaler/AudioControls.cpp 2009-03-23 04:24:30 UTC (rev 4544) +++ trunk/DScaler/DScaler/AudioControls.cpp 2009-03-23 12:57:21 UTC (rev 4545) @@ -39,21 +39,21 @@ } -bool CAudioControls::HasMute() +BOOL CAudioControls::HasMute() { return FALSE; } -void CAudioControls::SetMute(bool bMute) +void CAudioControls::SetMute(BOOL bMute) { } -bool CAudioControls::IsMuted() +BOOL CAudioControls::IsMuted() { return FALSE; } -bool CAudioControls::HasVolume() +BOOL CAudioControls::HasVolume() { return FALSE; } @@ -67,7 +67,7 @@ return 0; } -bool CAudioControls::HasBalance() +BOOL CAudioControls::HasBalance() { return FALSE; } @@ -81,7 +81,7 @@ return 0; } -bool CAudioControls::HasBass() +BOOL CAudioControls::HasBass() { return FALSE; } @@ -95,7 +95,7 @@ return 0; } -bool CAudioControls::HasTreble() +BOOL CAudioControls::HasTreble() { return FALSE; } @@ -109,7 +109,7 @@ return 0; } -bool CAudioControls::HasEqualizers() +BOOL CAudioControls::HasEqualizers() { return FALSE; } @@ -128,21 +128,21 @@ return 0; } -bool CAudioControls::HasBassBoost() +BOOL CAudioControls::HasBassBoost() { return FALSE; } -void CAudioControls::SetBassBoost(bool bBoost) +void CAudioControls::SetBassBoost(BOOL bBoost) { } -bool CAudioControls::IsBassBoosted() +BOOL CAudioControls::IsBassBoosted() { return FALSE; } -bool CAudioControls::HasLoudness() +BOOL CAudioControls::HasLoudness() { return FALSE; } @@ -156,7 +156,7 @@ return 0; } -bool CAudioControls::HasSpatialEffect() +BOOL CAudioControls::HasSpatialEffect() { return FALSE; } @@ -170,7 +170,7 @@ return 0; } -bool CAudioControls::HasDolby() +BOOL CAudioControls::HasDolby() { return FALSE; } @@ -179,7 +179,7 @@ { } -bool CAudioControls::HasAutoVolumeCorrection() +BOOL CAudioControls::HasAutoVolumeCorrection() { return FALSE; } Modified: trunk/DScaler/DScaler/AudioControls.h =================================================================== --- trunk/DScaler/DScaler/AudioControls.h 2009-03-23 04:24:30 UTC (rev 4544) +++ trunk/DScaler/DScaler/AudioControls.h 2009-03-23 12:57:21 UTC (rev 4545) @@ -39,39 +39,39 @@ public: CAudioControls(); virtual ~CAudioControls(); - virtual bool HasMute(); - virtual void SetMute(bool bMute = true); - virtual bool IsMuted(); - virtual bool HasVolume(); + virtual BOOL HasMute(); + virtual void SetMute(BOOL bMute = TRUE); + virtual BOOL IsMuted(); + virtual BOOL HasVolume(); virtual void SetVolume(WORD nVolume); virtual WORD GetVolume(); - virtual bool HasBalance(); + virtual BOOL HasBalance(); virtual void SetBalance(WORD nBalance); virtual WORD GetBalance(); - virtual bool HasBass(); + virtual BOOL HasBass(); virtual void SetBass(WORD nLevel); virtual WORD GetBass(); - virtual bool HasTreble(); + virtual BOOL HasTreble(); virtual void SetTreble(WORD nLevel); virtual WORD GetTreble(); - virtual bool HasEqualizers(); + virtual BOOL HasEqualizers(); virtual WORD GetEqualizerCount(); virtual void SetEqualizerLevel(WORD nIndex, WORD nLevel); virtual WORD GetEqualizerLevel(WORD nIndex); - virtual bool HasBassBoost(); - virtual void SetBassBoost(bool bBoost); - virtual bool IsBassBoosted(); - virtual bool HasLoudness(); + virtual BOOL HasBassBoost(); + virtual void SetBassBoost(BOOL bBoost); + virtual BOOL IsBassBoosted(); + virtual BOOL HasLoudness(); virtual void SetLoudness(WORD nLevel); virtual WORD GetLoudness(); - virtual bool HasSpatialEffect(); + virtual BOOL HasSpatialEffect(); virtual void SetSpatialEffect(int nLevel); virtual int GetSpatialEffect(); - virtual bool HasDolby(); + virtual BOOL HasDolby(); virtual void SetDolby(WORD nMode, WORD nNoise, WORD nSpatial, WORD nPan, WORD nPanorama); // \todo: define a getter for Dolby - virtual bool HasAutoVolumeCorrection(); + virtual BOOL HasAutoVolumeCorrection(); virtual void SetAutoVolumeCorrection(long milliSeconds); virtual long GetAutoVolumeCorrection(); }; Modified: trunk/DScaler/DScaler/BT848Card.cpp =================================================================== --- trunk/DScaler/DScaler/BT848Card.cpp 2009-03-23 04:24:30 UTC (rev 4544) +++ trunk/DScaler/DScaler/BT848Card.cpp 2009-03-23 12:57:21 UTC (rev 4545) @@ -106,7 +106,7 @@ m_CurrentInput(0), m_TunerType("n/a"), m_AudioDecoderType("n/a"), - m_I2CInitialized(false), + m_I2CInitialized(FALSE), m_I2CBus(new CI2CBusForLineInterface(this)), m_AudioControls(new CAudioControls()), m_AudioDecoder(new CAudioDecoder()) @@ -934,7 +934,7 @@ m_I2CSleepCycle = (unsigned long)(frequency / 50000); - m_I2CInitialized = true; + m_I2CInitialized = TRUE; } void CBT848Card::Sleep() @@ -950,7 +950,7 @@ } } -void CBT848Card::SetSDA(bool value) +void CBT848Card::SetSDA(BOOL value) { if (!m_I2CInitialized) { @@ -969,7 +969,7 @@ WriteDword(BT848_I2C, m_I2CRegister); } -void CBT848Card::SetSCL(bool value) +void CBT848Card::SetSCL(BOOL value) { if (!m_I2CInitialized) { @@ -988,24 +988,24 @@ WriteDword(BT848_I2C, m_I2CRegister); } -bool CBT848Card::GetSDA() +BOOL CBT848Card::GetSDA() { if (!m_I2CInitialized) { InitializeI2C(); } - bool state = ReadDword(BT848_I2C) & BT848_I2C_SDA ? true : false; + BOOL state = ReadDword(BT848_I2C) & BT848_I2C_SDA ? TRUE : FALSE; LOG(3, state ? "BT848 GetSDA - d^" : "BT848 GetSDA - d_"); return state; } -bool CBT848Card::GetSCL() +BOOL CBT848Card::GetSCL() { if (!m_I2CInitialized) { InitializeI2C(); } - bool state = ReadDword(BT848_I2C) & BT848_I2C_SCL ? true : false; + BOOL state = ReadDword(BT848_I2C) & BT848_I2C_SCL ? TRUE : FALSE; LOG(3, state ? "BT848 GetSCL - c^" : "BT848 GetSCL - c_"); return state; } Modified: trunk/DScaler/DScaler/BT848Card.h =================================================================== --- trunk/DScaler/DScaler/BT848Card.h 2009-03-23 04:24:30 UTC (rev 4544) +++ trunk/DScaler/DScaler/BT848Card.h 2009-03-23 12:57:21 UTC (rev 4545) @@ -196,30 +196,30 @@ HMENU GetCardSpecificMenu(); - void InitAudio(bool UsePin1); + void InitAudio(BOOL UsePin1); // AudioControls facade void SetAudioMute(); void SetAudioUnMute(WORD nVolume, eAudioInput Input); - bool HasAudioVolume(); + BOOL HasAudioVolume(); void SetAudioVolume(WORD nVolume); - bool HasAudioBalance(); + BOOL HasAudioBalance(); void SetAudioBalance(WORD nBalance); - bool HasAudioBass(); + BOOL HasAudioBass(); void SetAudioBass(WORD nBass); - bool HasAudioTreble(); + BOOL HasAudioTreble(); void SetAudioTreble(WORD nTreble); - bool HasAudioEqualizers(); + BOOL HasAudioEqualizers(); void SetAudioEqualizerLevel(WORD nIndex, WORD nLevel); - bool HasAudioBassBoost(); - void SetAudioBassBoost(bool bBoost); - bool HasAudioLoudness(); + BOOL HasAudioBassBoost(); + void SetAudioBassBoost(BOOL bBoost); + BOOL HasAudioLoudness(); void SetAudioLoudness(WORD nLevel); - bool HasAudioSpatialEffect(); + BOOL HasAudioSpatialEffect(); void SetAudioSpatialEffect(int nLevel); - bool HasAudioDolby(); + BOOL HasAudioDolby(); void SetAudioDolby(WORD nMode, WORD nNoise, WORD nSpatial, WORD nPan, WORD nPanorama); - bool HasAudioAutoVolumeCorrection(); + BOOL HasAudioAutoVolumeCorrection(); void SetAudioAutoVolumeCorrection(long milliSeconds); // AudioDecoder facade @@ -242,7 +242,7 @@ eTunerId AutoDetectTuner(eTVCardId CardId); eTVCardId AutoDetectCardType(); - bool AutoDetectMSP3400(); + BOOL AutoDetectMSP3400(); BOOL InitTuner(eTunerId tunerId); std::string GetInputName(int nVideoSource); @@ -253,9 +253,9 @@ LPCSTR GetAudioInputName(eAudioInput nInput); int GetNumAudioInputs(); - bool GetHasUseInputPin1(); - bool GetUseInputPin1(); - void SetUseInputPin1(bool AValue); + BOOL GetHasUseInputPin1(); + BOOL GetUseInputPin1(); + void SetUseInputPin1(BOOL AValue); void SetPMSChannelGain(int ChannelNum, WORD Gain); @@ -267,10 +267,10 @@ SmartPtr<CAD9882> GetAD9882() { return m_AD9882; } // I2C stuff - void SetSDA(bool value); - void SetSCL(bool value); - bool GetSDA(); - bool GetSCL(); + void SetSDA(BOOL value); + void SetSCL(BOOL value); + BOOL GetSDA(); + BOOL GetSCL(); void Sleep(); void I2CLock(); void I2CUnlock(); @@ -293,7 +293,7 @@ ULONG GetTickCount(); DWORD m_I2CSleepCycle; DWORD m_I2CRegister; - bool m_I2CInitialized; + BOOL m_I2CInitialized; void InitializeI2C(); void SetGeometryEvenOdd(BOOL bOdd, int wHScale, int wVScale, int wHActive, int wVActive, int wHDelay, int wVDelay, BYTE bCrop); @@ -358,7 +358,7 @@ static const TCardType m_TVCards[TVCARD_LASTONE]; static const TAutoDectect878 m_AutoDectect878[]; static const eTunerId m_Tuners_miro[]; - static const bool m_Tuners_miro_fm[]; + static const BOOL m_Tuners_miro_fm[]; static const eTunerId m_Tuners_avermedia_0[]; static const eTunerId m_Tuners_avermedia_0_fm[]; static const eTunerId m_Tuners_avermedia_1[]; Modified: trunk/DScaler/DScaler/BT848Card_Audio.cpp =================================================================== --- trunk/DScaler/DScaler/BT848Card_Audio.cpp 2009-03-23 04:24:30 UTC (rev 4544) +++ trunk/DScaler/DScaler/BT848Card_Audio.cpp 2009-03-23 12:57:21 UTC (rev 4545) @@ -53,7 +53,7 @@ using namespace std; -void CBT848Card::InitAudio(bool UsePin1) +void CBT848Card::InitAudio(BOOL UsePin1) { // Initialize m_AudioDecoder and m_AudioControls m_AudioControls = 0L; @@ -151,7 +151,7 @@ TDADecoder->SetI2CBus(m_I2CBus); int dic, sic; - bool isPresent = TDADecoder->IsDevicePresent(dic, sic); + BOOL isPresent = TDADecoder->IsDevicePresent(dic, sic); if(isPresent) { @@ -165,7 +165,7 @@ // used only for PV951 (Hercules SmartTV) CPIC16C54 pic = CPIC16C54(); pic.SetI2CBus(m_I2CBus); - bool picAlive = pic.IsDevicePresent(); + BOOL picAlive = pic.IsDevicePresent(); ostringstream oss; oss << "TDA9874" << ((dic==0x11) ? "A":"H"); @@ -362,7 +362,7 @@ m_AudioControls->SetLoudness(nLevel); } -void CBT848Card::SetAudioBassBoost(bool bBoost) +void CBT848Card::SetAudioBassBoost(BOOL bBoost) { m_AudioControls->SetBassBoost(bBoost); } @@ -446,79 +446,79 @@ } -bool CBT848Card::HasAudioEqualizers() +BOOL CBT848Card::HasAudioEqualizers() { return m_AudioControls->HasEqualizers(); } -bool CBT848Card::HasAudioSpatialEffect() +BOOL CBT848Card::HasAudioSpatialEffect() { return m_AudioControls->HasSpatialEffect(); } -bool CBT848Card::HasAudioDolby() +BOOL CBT848Card::HasAudioDolby() { return m_AudioControls->HasDolby(); } -bool CBT848Card::HasAudioBassBoost() +BOOL CBT848Card::HasAudioBassBoost() { return m_AudioControls->HasBassBoost(); } -bool CBT848Card::HasAudioVolume() +BOOL CBT848Card::HasAudioVolume() { return m_AudioControls->HasVolume(); } -bool CBT848Card::HasAudioTreble() +BOOL CBT848Card::HasAudioTreble() { return m_AudioControls->HasTreble(); } -bool CBT848Card::HasAudioLoudness() +BOOL CBT848Card::HasAudioLoudness() { return m_AudioControls->HasLoudness(); } -bool CBT848Card::HasAudioBass() +BOOL CBT848Card::HasAudioBass() { return m_AudioControls->HasBass(); } -bool CBT848Card::HasAudioBalance() +BOOL CBT848Card::HasAudioBalance() { return m_AudioControls->HasBalance(); } -bool CBT848Card::HasAudioAutoVolumeCorrection() +BOOL CBT848Card::HasAudioAutoVolumeCorrection() { return m_AudioControls->HasAutoVolumeCorrection(); } -bool CBT848Card::GetHasUseInputPin1() +BOOL CBT848Card::GetHasUseInputPin1() { SmartPtr<CMSP34x0AudioDecoder> MSP34x0AudioDecoder(m_AudioDecoder); if(MSP34x0AudioDecoder) { - return true; + return TRUE; } - return false; + return FALSE; } -bool CBT848Card::GetUseInputPin1() +BOOL CBT848Card::GetUseInputPin1() { SmartPtr<CMSP34x0AudioDecoder> MSP34x0AudioDecoder(m_AudioDecoder); if(MSP34x0AudioDecoder) { return MSP34x0AudioDecoder->GetUseInputPin1(); } - return false; + return FALSE; } -void CBT848Card::SetUseInputPin1(bool AValue) +void CBT848Card::SetUseInputPin1(BOOL AValue) { SmartPtr<CMSP34x0AudioDecoder> MSP34x0AudioDecoder(m_AudioDecoder); SmartPtr<CTDA9875AudioDecoder> TDA9875AudioDecoder(m_AudioDecoder); Modified: trunk/DScaler/DScaler/BT848Card_Types.cpp =================================================================== --- trunk/DScaler/DScaler/BT848Card_Types.cpp 2009-03-23 04:24:30 UTC (rev 4544) +++ trunk/DScaler/DScaler/BT848Card_Types.cpp 2009-03-23 12:57:21 UTC (rev 4545) @@ -4407,16 +4407,16 @@ TUNER_ABSENT }; -const bool CBT848Card::m_Tuners_miro_fm[] = +const BOOL CBT848Card::m_Tuners_miro_fm[] = { - false ,false ,false ,false , - false ,false ,false ,false , - false ,false ,false ,false , - false ,false ,false ,true , - true ,true ,true ,true , - true ,true ,true ,false , - false ,false ,false ,false , - false ,false ,false ,false + FALSE ,FALSE ,FALSE ,FALSE , + FALSE ,FALSE ,FALSE ,FALSE , + FALSE ,FALSE ,FALSE ,FALSE , + FALSE ,FALSE ,FALSE ,TRUE , + TRUE ,TRUE ,TRUE ,TRUE , + TRUE ,TRUE ,TRUE ,FALSE , + FALSE ,FALSE ,FALSE ,FALSE , + FALSE ,FALSE ,FALSE ,FALSE }; const eTunerId CBT848Card::m_Tuners_avermedia_0[] = @@ -4469,10 +4469,10 @@ eTunerId TunerId=TUNER_ABSENT; // Maybe for future use - bool TVTunerDoesFM=false; - bool HasRemoteControl=false; + BOOL TVTunerDoesFM=FALSE; + BOOL HasRemoteControl=FALSE; // Not implemented yet - bool HasTEA5757=false; + BOOL HasTEA5757=FALSE; if(m_TVCards[CardId].TunerId == TUNER_USER_SETUP) { @@ -4504,7 +4504,7 @@ LOG(2, "AutoDetectTuner: Lifetec card. ID: %08x",id); if (id & 0x4000) { - TVTunerDoesFM = true; + TVTunerDoesFM = TRUE; } } break; @@ -4537,18 +4537,18 @@ if (Val & 0x20) { - TVTunerDoesFM = true; + TVTunerDoesFM = TRUE; if (m_Tuners_miro_fm[Id]) { - HasTEA5757 = true; - TVTunerDoesFM = false; + HasTEA5757 = TRUE; + TVTunerDoesFM = FALSE; } } } else { Id = 63-Id; - TVTunerDoesFM = false; + TVTunerDoesFM = FALSE; switch (Id) { case 1: //PAL / mono @@ -4653,15 +4653,15 @@ int blk2 = Eeprom[1] + 3; int radio = Eeprom[blk2-1] & 0x01; int infrared = Eeprom[blk2-1] & 0x04; - TVTunerDoesFM = false; + TVTunerDoesFM = FALSE; if (radio) { - TVTunerDoesFM = true; + TVTunerDoesFM = TRUE; } - HasRemoteControl = false; + HasRemoteControl = FALSE; if (infrared) { - HasRemoteControl = true; + HasRemoteControl = TRUE; } } break; @@ -4699,13 +4699,13 @@ } } // We assume we have a remote control - HasRemoteControl = true; + HasRemoteControl = TRUE; } break; case TVCARD_VHX: { - TVTunerDoesFM = false; - HasTEA5757 = true; + TVTunerDoesFM = FALSE; + HasTEA5757 = TRUE; } break; case TVCARD_MAGICTVIEW061: @@ -4723,14 +4723,14 @@ if (Id == 0x4002144f) { - TVTunerDoesFM = true; + TVTunerDoesFM = TRUE; } } break; case TVCARD_PXELVWPLTVPRO: case TVCARD_WINFAST2000: { - HasRemoteControl = true; + HasRemoteControl = TRUE; } break; default: @@ -4849,12 +4849,12 @@ #define I2C_MSP3400C_0 0x80 -bool CBT848Card::AutoDetectMSP3400() +BOOL CBT848Card::AutoDetectMSP3400() { BYTE writebf[4]; BYTE readbf[3]; - bool HasMSP34xx = false; + BOOL HasMSP34xx = FALSE; writebf[0] = I2C_MSP3400C_0; //address @@ -4887,7 +4887,7 @@ if ( (rev1 != rev2) || (rev1 != 0 && rev1 != 0xFFFF) ) { // Revision seems to be OK! ... Accept! - HasMSP34xx = true; + HasMSP34xx = TRUE; } } } @@ -5174,7 +5174,7 @@ void CBT848Card::CtrlSilkSDISwitch(BYTE SLV, BYTE IEN) { BYTE Buffer[] = {SLV, IEN}; - // The switch is flakey sometimes; it will return true, but won't + // The switch is flakey sometimes; it will return TRUE, but won't // switch it; if you do multiple times in a row, however, it switches // fine. Not sure whether it's DScaler or the switch. Guessing the // switch. Modified: trunk/DScaler/DScaler/BT848Source.cpp =================================================================== --- trunk/DScaler/DScaler/BT848Source.cpp 2009-03-23 04:24:30 UTC (rev 4544) +++ trunk/DScaler/DScaler/BT848Source.cpp 2009-03-23 12:57:21 UTC (rev 4545) @@ -348,7 +348,6 @@ m_Volume = new CVolumeSetting(this, "Volume", 900, 0, 1000, IniSection, pAudioControl); m_Volume->SetStepValue(20); - //m_Volume->SetOSDDivider(10); m_Settings.push_back(m_Volume); m_Bass = new CBassSetting(this, "Bass", 0, -96, 127, IniSection, pAudioControl); @@ -964,137 +963,137 @@ } -ISetting* CBT848Source::GetBrightness() +CSliderSetting* CBT848Source::GetBrightness() { return m_Brightness; } -ISetting* CBT848Source::GetContrast() +CSliderSetting* CBT848Source::GetContrast() { return m_Contrast; } -ISetting* CBT848Source::GetHue() +CSliderSetting* CBT848Source::GetHue() { return m_Hue; } -ISetting* CBT848Source::GetSaturation() +CSliderSetting* CBT848Source::GetSaturation() { return m_Saturation; } -ISetting* CBT848Source::GetSaturationU() +CSliderSetting* CBT848Source::GetSaturationU() { return m_SaturationU; } -ISetting* CBT848Source::GetSaturationV() +CSliderSetting* CBT848Source::GetSaturationV() { return m_SaturationV; } -ISetting* CBT848Source::GetTopOverscan() +CSliderSetting* CBT848Source::GetTopOverscan() { return m_TopOverscan; } -ISetting* CBT848Source::GetBottomOverscan() +CSliderSetting* CBT848Source::GetBottomOverscan() { return m_BottomOverscan; } -ISetting* CBT848Source::GetLeftOverscan() +CSliderSetting* CBT848Source::GetLeftOverscan() { return m_LeftOverscan; } -ISetting* CBT848Source::GetRightOverscan() +CSliderSetting* CBT848Source::GetRightOverscan() { return m_RightOverscan; } -ISetting* CBT848Source::GetHDelay() +CSliderSetting* CBT848Source::GetHDelay() { return m_HDelay; } -ISetting* CBT848Source::GetVDelay() +CSliderSetting* CBT848Source::GetVDelay() { return m_VDelay; } -void CBT848Source::BtAgcDisableOnChange(long NewValue, long OldValue) +void CBT848Source::BtAgcDisableOnChange(BOOL NewValue, BOOL OldValue) { m_pBT848Card->SetAgcDisable(NewValue); } -void CBT848Source::BtCrushOnChange(long NewValue, long OldValue) +void CBT848Source::BtCrushOnChange(BOOL NewValue, BOOL OldValue) { m_pBT848Card->SetCrush(NewValue); } -void CBT848Source::BtEvenChromaAGCOnChange(long NewValue, long OldValue) +void CBT848Source::BtEvenChromaAGCOnChange(BOOL NewValue, BOOL OldValue) { m_pBT848Card->SetEvenChromaAGC(NewValue); } -void CBT848Source::BtOddChromaAGCOnChange(long NewValue, long OldValue) +void CBT848Source::BtOddChromaAGCOnChange(BOOL NewValue, BOOL OldValue) { m_pBT848Card->SetOddChromaAGC(NewValue); } -void CBT848Source::BtEvenLumaPeakOnChange(long NewValue, long OldValue) +void CBT848Source::BtEvenLumaPeakOnChange(BOOL NewValue, BOOL OldValue) { m_pBT848Card->SetEvenLumaPeak(NewValue); } -void CBT848Source::BtOddLumaPeakOnChange(long NewValue, long OldValue) +void CBT848Source::BtOddLumaPeakOnChange(BOOL NewValue, BOOL OldValue) { m_pBT848Card->SetOddLumaPeak(NewValue); } -void CBT848Source::BtFullLumaRangeOnChange(long NewValue, long OldValue) +void CBT848Source::BtFullLumaRangeOnChange(BOOL NewValue, BOOL OldValue) { m_pBT848Card->SetFullLumaRange(NewValue); } -void CBT848Source::BtEvenLumaDecOnChange(long NewValue, long OldValue) +void CBT848Source::BtEvenLumaDecOnChange(BOOL NewValue, BOOL OldValue) { m_pBT848Card->SetEvenLumaDec(NewValue); } -void CBT848Source::BtOddLumaDecOnChange(long NewValue, long OldValue) +void CBT848Source::BtOddLumaDecOnChange(BOOL NewValue, BOOL OldValue) { m_pBT848Card->SetOddLumaDec(NewValue); } -void CBT848Source::BtEvenCombOnChange(long NewValue, long OldValue) +void CBT848Source::BtEvenCombOnChange(BOOL NewValue, BOOL OldValue) { m_pBT848Card->SetEvenComb(NewValue); } -void CBT848Source::BtOddCombOnChange(long NewValue, long OldValue) +void CBT848Source::BtOddCombOnChange(BOOL NewValue, BOOL OldValue) { m_pBT848Card->SetOddComb(NewValue); } -void CBT848Source::BtColorBarsOnChange(long NewValue, long OldValue) +void CBT848Source::BtColorBarsOnChange(BOOL NewValue, BOOL OldValue) { m_pBT848Card->SetColorBars(NewValue); } -void CBT848Source::BtGammaCorrectionOnChange(long NewValue, long OldValue) +void CBT848Source::BtGammaCorrectionOnChange(BOOL NewValue, BOOL OldValue) { m_pBT848Card->SetGammaCorrection(NewValue); } -void CBT848Source::BtVertFilterOnChange(long NewValue, long OldValue) +void CBT848Source::BtVertFilterOnChange(BOOL NewValue, BOOL OldValue) { m_pBT848Card->SetVertFilter(NewValue); } -void CBT848Source::BtHorFilterOnChange(long NewValue, long OldValue) +void CBT848Source::BtHorFilterOnChange(BOOL NewValue, BOOL OldValue) { m_pBT848Card->SetHorFilter(NewValue); } @@ -1486,12 +1485,12 @@ m_pBT848Card->SetWhiteCrushDown((BYTE)NewValue); } -void CBT848Source::BtCoringOnChange(long NewValue, long OldValue) +void CBT848Source::BtCoringOnChange(BOOL NewValue, BOOL OldValue) { m_pBT848Card->SetCoring(NewValue); } -void CBT848Source::BtColorKillOnChange(long NewValue, long OldValue) +void CBT848Source::BtColorKillOnChange(BOOL NewValue, BOOL OldValue) { m_pBT848Card->SetColorKill(NewValue); } @@ -1642,7 +1641,7 @@ } } -void CBT848Source::IsVideoProgressiveOnChange(long NewValue, long OldValue) +void CBT848Source::IsVideoProgressiveOnChange(BOOL NewValue, BOOL OldValue) { // since this setting affects the DMA program, we must do a stop/start Stop_Capture(); @@ -1721,7 +1720,7 @@ } } -void CBT848Source::AD9882SOGOnChange(long NewValue, long OldValue) +void CBT848Source::AD9882SOGOnChange(BOOL NewValue, BOOL OldValue) { if(m_CardType->GetValue() == TVCARD_CWCEC_ATLAS) { @@ -1729,7 +1728,7 @@ } } -void CBT848Source::AD9882CoastSelOnChange(long NewValue, long OldValue) +void CBT848Source::AD9882CoastSelOnChange(BOOL NewValue, BOOL OldValue) { if(m_CardType->GetValue() == TVCARD_CWCEC_ATLAS) { @@ -1737,7 +1736,7 @@ } } -void CBT848Source::AD9882CoastOvrOnChange(long NewValue, long OldValue) +void CBT848Source::AD9882CoastOvrOnChange(BOOL NewValue, BOOL OldValue) { if(m_CardType->GetValue() == TVCARD_CWCEC_ATLAS) { @@ -1745,7 +1744,7 @@ } } -void CBT848Source::AD9882CoastPolOnChange(long NewValue, long OldValue) +void CBT848Source::AD9882CoastPolOnChange(BOOL NewValue, BOOL OldValue) { if(m_CardType->GetValue() == TVCARD_CWCEC_ATLAS) { Modified: trunk/DScaler/DScaler/BT848Source.h =================================================================== --- trunk/DScaler/DScaler/BT848Source.h 2009-03-23 04:24:30 UTC (rev 4544) +++ trunk/DScaler/DScaler/BT848Source.h 2009-03-23 12:57:21 UTC (rev 4545) @@ -49,23 +49,23 @@ BOOL HandleWindowsCommands(HWND hWnd, UINT wParam, LONG lParam); SmartPtr<CBT848Card> GetBT848Card(); std::string GetStatus(); - ISetting* GetVolume(); - ISetting* GetBalance(); + CSliderSetting* GetVolume(); + CSliderSetting* GetBalance(); void Mute(); void UnMute(); - ISetting* GetBrightness(); - ISetting* GetContrast(); - ISetting* GetHue(); - ISetting* GetSaturation(); - ISetting* GetSaturationU(); - ISetting* GetSaturationV(); - ISetting* GetAnalogueBlanking() {return NULL;}; - ISetting* GetTopOverscan(); - ISetting* GetBottomOverscan(); - ISetting* GetLeftOverscan(); - ISetting* GetRightOverscan(); - ISetting* GetHDelay(); - ISetting* GetVDelay(); + CSliderSetting* GetBrightness(); + CSliderSetting* GetContrast(); + CSliderSetting* GetHue(); + CSliderSetting* GetSaturation(); + CSliderSetting* GetSaturationU(); + CSliderSetting* GetSaturationV(); + CYesNoSetting* GetAnalogueBlanking() {return NULL;}; + CSliderSetting* GetTopOverscan(); + CSliderSetting* GetBottomOverscan(); + CSliderSetting* GetLeftOverscan(); + CSliderSetting* GetRightOverscan(); + CSliderSetting* GetHDelay(); + CSliderSetting* GetVDelay(); /// Gets the current field being processed by the card int GetRISCPosAsInt(); @@ -136,7 +136,7 @@ void InitAudio(); void InitAudioControls(); - ISetting* GetCurrentAudioSetting(); + CSliderSetting* GetCurrentAudioSetting(); //static void StaticAudioStandardDetected(void *pThis, int What, long Value); void AudioStandardDetected(long Standard); Modified: trunk/DScaler/DScaler/BT848Source_Audio.cpp =================================================================== --- trunk/DScaler/DScaler/BT848Source_Audio.cpp 2009-03-23 04:24:30 UTC (rev 4544) +++ trunk/DScaler/DScaler/BT848Source_Audio.cpp 2009-03-23 12:57:21 UTC (rev 4545) @@ -34,12 +34,12 @@ using namespace std; -ISetting* CBT848Source::GetVolume() +CSliderSetting* CBT848Source::GetVolume() { return m_Volume; } -ISetting* CBT848Source::GetBalance() +CSliderSetting* CBT848Source::GetBalance() { return m_Balance; } @@ -130,7 +130,7 @@ EventCollector->RaiseEvent(this, EVENT_SOUNDCHANNEL, OldValue, NewValue); } -void CBT848Source::AutoStereoSelectOnChange(long NewValue, long OldValue) +void CBT848Source::AutoStereoSelectOnChange(BOOL NewValue, BOOL OldValue) { if (NewValue) { @@ -144,12 +144,12 @@ { } -void CBT848Source::UseInputPin1OnChange(long NewValue, long OldValue) +void CBT848Source::UseInputPin1OnChange(BOOL NewValue, BOOL OldValue) { m_pBT848Card->SetUseInputPin1(m_UseInputPin1->GetValue() != 0); } -void CBT848Source::UseEqualizerOnChange(long NewValue, long OldValue) +void CBT848Source::UseEqualizerOnChange(BOOL NewValue, BOOL OldValue) { if(m_pBT848Card->HasAudioEqualizers()) { @@ -226,9 +226,9 @@ m_pBT848Card->SetAudioLoudness((WORD)m_AudioLoudness->GetValue()); } -void CBT848Source::AudioSuperbassOnChange(long NewValue, long OldValue) +void CBT848Source::AudioSuperbassOnChange(BOOL NewValue, BOOL OldValue) { - m_pBT848Card->SetAudioBassBoost(m_AudioSuperbass->GetValue() ? true : false ); + m_pBT848Card->SetAudioBassBoost(m_AudioSuperbass->GetValue() ? TRUE : FALSE ); } void CBT848Source::AudioSpatialEffectOnChange(long NewValue, long OldValue) @@ -403,7 +403,7 @@ } } -void CBT848Source::AudioStandardInStatusBarOnChange(long NewValue, long OldValue) +void CBT848Source::AudioStandardInStatusBarOnChange(BOOL NewValue, BOOL OldValue) { } @@ -478,7 +478,7 @@ } } -ISetting* CBT848Source::GetCurrentAudioSetting() +CSliderSetting* CBT848Source::GetCurrentAudioSetting() { switch(m_VideoSource->GetValue()) { Modified: trunk/DScaler/DScaler/BT848Source_UI.cpp =================================================================== --- trunk/DScaler/DScaler/BT848Source_UI.cpp 2009-03-23 04:24:30 UTC (rev 4544) +++ trunk/DScaler/DScaler/BT848Source_UI.cpp 2009-03-23 12:57:21 UTC (rev 4545) @@ -525,7 +525,7 @@ case IDC_USEEQUALIZER: { BOOL bEnabled = (IsDlgButtonChecked(hDlg, IDC_USEEQUALIZER) == BST_CHECKED); - pThis->m_UseEqualizer->SetValue( bEnabled ); + pThis->m_UseEqualizer->SetValue(bEnabled); if (bEnabled) { ShowWindow(GetDlgItem(hDlg, IDC_BAND1_SLIDER),SW_SHOW); @@ -581,7 +581,7 @@ case IDC_SUPERBASS: { BOOL bEnabled = (IsDlgButtonChecked(hDlg, IDC_SUPERBASS) == BST_CHECKED); - pThis->m_AudioSuperbass->SetValue( bEnabled ); + pThis->m_AudioSuperbass->SetValue(bEnabled); } break; case IDOK: @@ -591,11 +591,11 @@ case IDCANCEL: pThis->Mute(); - pThis->m_Volume->SetValue(TVolume); + pThis->m_Volume->SetValue(TVolume); pThis->m_Balance->SetValue(TBalance); pThis->m_AudioSuperbass->SetValue(TSuperBass); pThis->m_AudioLoudness->SetValue(TLoudness); - pThis->m_AudioSpatialEffect->SetValue(TSpatialEffect); + pThis->m_AudioSpatialEffect->SetValue(TSpatialEffect); pThis->m_EqualizerBand1->SetValue(TEqualizerVal[1]); pThis->m_EqualizerBand2->SetValue(TEqualizerVal[2]); @@ -612,24 +612,24 @@ case IDC_DEFAULT: pThis->Mute(); - pThis->m_Volume->SetDefault(); - pThis->m_Balance->SetDefault(); - pThis->m_AudioSuperbass->SetDefault(); - pThis->m_AudioLoudness->SetDefault(); - pThis->m_AudioSpatialEffect->SetDefault(); + pThis->m_Volume->ChangeValue(RESET_SILENT); + pThis->m_Balance->ChangeValue(RESET_SILENT); + pThis->m_AudioSuperbass->ChangeValue(RESET_SILENT); + pThis->m_AudioLoudness->ChangeValue(RESET_SILENT); + pThis->m_AudioSpatialEffect->ChangeValue(RESET_SILENT); if (pThis->m_UseEqualizer->GetValue()) { - pThis->m_EqualizerBand1->SetDefault(); - pThis->m_EqualizerBand2->SetDefault(); - pThis->m_EqualizerBand3->SetDefault(); - pThis->m_EqualizerBand4->SetDefault(); - pThis->m_EqualizerBand5->SetDefault(); + pThis->m_EqualizerBand1->ChangeValue(RESET_SILENT); + pThis->m_EqualizerBand2->ChangeValue(RESET_SILENT); + pThis->m_EqualizerBand3->ChangeValue(RESET_SILENT); + pThis->m_EqualizerBand4->ChangeValue(RESET_SILENT); + pThis->m_EqualizerBand5->ChangeValue(RESET_SILENT); } else { - pThis->m_Bass->SetDefault(); - pThis->m_Treble->SetDefault(); + pThis->m_Bass->ChangeValue(RESET_SILENT); + pThis->m_Treble->ChangeValue(RESET_SILENT); } SetDlgItemInt(hDlg, IDC_VOLUME_VAL, pThis->m_Volume->GetValue(), FALSE); SetDlgItemInt(hDlg, IDC_BALANCE_VAL, pThis->m_Balance->GetValue(), TRUE); Modified: trunk/DScaler/DScaler/BT848_VoodooTV_IFdem.cpp =================================================================== --- trunk/DScaler/DScaler/BT848_VoodooTV_IFdem.cpp 2009-03-23 04:24:30 UTC (rev 4544) +++ trunk/DScaler/DScaler/BT848_VoodooTV_IFdem.cpp 2009-03-23 12:57:21 UTC (rev 4545) @@ -37,18 +37,18 @@ m_pBT848Card = pBT848Card; } -bool CPreTuneVoodooFM::Detect() +BOOL CPreTuneVoodooFM::Detect() { if ((m_pBT848Card != NULL) && ((m_pBT848Card->GetCardType() == TVCARD_VOODOOTV_200) || (m_pBT848Card->GetCardType() == TVCARD_VOODOOTV_FM))) { - return true; + return TRUE; } - return false; + return FALSE; } -void CPreTuneVoodooFM::TunerSet(bool bPreSet, eVideoFormat videoFormat) +void CPreTuneVoodooFM::TunerSet(BOOL bPreSet, eVideoFormat videoFormat) { if (bPreSet && (m_pBT848Card!=NULL)) { Modified: trunk/DScaler/DScaler/BT848_VoodooTV_IFdem.h =================================================================== --- trunk/DScaler/DScaler/BT848_VoodooTV_IFdem.h 2009-03-23 04:24:30 UTC (rev 4544) +++ trunk/DScaler/DScaler/BT848_VoodooTV_IFdem.h 2009-03-23 12:57:21 UTC (rev 4545) @@ -38,10 +38,10 @@ public: CPreTuneVoodooFM(CBT848Card* pBT848Card); - void TunerSet(bool bPreSet, eVideoFormat videoFormat); - bool Detect(); + void TunerSet(BOOL bPreSet, eVideoFormat videoFormat); + BOOL Detect(); - void Init(bool bPreInit, eVideoFormat videoFormat) { TunerSet(bPreInit, videoFormat); } + void Init(BOOL bPreInit, eVideoFormat videoFormat) { TunerSet(bPreInit, videoFormat); } eTunerAFCStatus GetAFCStatus(long &nFreqDeviation) { return TUNER_AFC_NOTSUPPORTED; } protected: // from CI2CDevice Modified: trunk/DScaler/DScaler/BitmapAsButton.cpp =================================================================== --- trunk/DScaler/DScaler/BitmapAsButton.cpp 2009-03-23 04:24:30 UTC (rev 4544) +++ trunk/DScaler/DScaler/BitmapAsButton.cpp 2009-03-23 12:57:21 UTC (rev 4545) @@ -412,11 +412,11 @@ case WM_RBUTTONDOWN: m_mouserdown = TRUE; - ::InvalidateRect( hDlg, NULL, false ); + ::InvalidateRect( hDlg, NULL, FALSE ); break; case WM_RBUTTONUP: m_mouserdown = FALSE; - ::InvalidateRect( hDlg, NULL, false ); + ::InvalidateRect( hDlg, NULL, FALSE ); break; case WM_LBUTTONDOWN: @@ -434,7 +434,7 @@ SendMessage(hWndParent, WM_HSCROLL, bRight?SB_RIGHT:SB_LEFT, (LPARAM)hWndButton); } } - ::InvalidateRect( hDlg, NULL, false ); + ::InvalidateRect( hDlg, NULL, FALSE ); break; case WM_LBUTTONUP: m_mouseldown = FALSE; @@ -458,7 +458,7 @@ ButtonState=0; }*/ } - ::InvalidateRect( hDlg, NULL, false ); + ::InvalidateRect( hDlg, NULL, FALSE ); break; case WM_MOUSEMOVE: @@ -480,11 +480,11 @@ if (wParam != MK_LBUTTON ) { - m_mouseldown = false; + m_mouseldown = FALSE; } if (wParam != MK_RBUTTON ) { - m_mouserdown = false; + m_mouserdown = FALSE; } if (m_mouseldown) @@ -509,16 +509,16 @@ if (!m_mouseldown && !m_mouserdown) { - m_mouseover = true; - ::InvalidateRect( hDlg, NULL, false ); + m_mouseover = TRUE; + ::InvalidateRect( hDlg, NULL, FALSE ); } } break; case WM_MOUSELEAVE: - m_mouseover = false; - m_mouseldown = false; - m_mouserdown = false; - ::InvalidateRect( hDlg, NULL, false ); + m_mouseover = FALSE; + m_mouseldown = FALSE; + m_mouserdown = FALSE; + ::InvalidateRect( hDlg, NULL, FALSE ); m_trackmouse = FALSE; break; @@ -567,12 +567,12 @@ if (ButtonType == BITMAPASBUTTON_CHECKBOX) { ButtonState = (wParam == BST_CHECKED) ? 1:0; - InvalidateRect(hDlg, NULL, false); + InvalidateRect(hDlg, NULL, FALSE); } if ((ButtonType == BITMAPASBUTTON_3STATE)||(ButtonType == BITMAPASBUTTON_4STATE)) { ButtonState = wParam; - InvalidateRect(hDlg, NULL, false); + InvalidateRect(hDlg, NULL, FALSE); } break; @@ -584,7 +584,7 @@ SliderRangeMax = HIWORD(lParam); if (wParam) { - ::InvalidateRect( hDlg, NULL, false ); + ::InvalidateRect( hDlg, NULL, FALSE ); } } break; @@ -606,7 +606,7 @@ if (wParam) { - ::InvalidateRect( hDlg, NULL, false ); + ::InvalidateRect( hDlg, NULL, FALSE ); } } break; Modified: trunk/DScaler/DScaler/CX2388xCard.cpp =================================================================== --- trunk/DScaler/DScaler/CX2388xCard.cpp 2009-03-23 04:24:30 UTC (rev 4544) +++ trunk/DScaler/DScaler/CX2388xCard.cpp 2009-03-23 12:57:21 UTC (rev 4545) @@ -51,7 +51,7 @@ m_CurrentAudioStandard(AUDIO_STANDARD_AUTO), m_CurrentStereoType(STEREOTYPE_AUTO), m_TunerType("n/a"), - m_I2CInitialized(false), + m_I2CInitialized(FALSE), m_I2CBus(new CI2CBusForLineInterface(this)), m_AudioControls(new CAudioControls()), m_AudioDecoder(new CAudioDecoder()) @@ -104,8 +104,8 @@ /******************************************************************************* Halt the Odd/Both Risc Program. - both_fields == true - Halt both fields. - == false - Halt odd field only. + both_fields == TRUE - Halt both fields. + == FALSE - Halt odd field only. *******************************************************************************/ void CCX2388xCard::StopCapture() { @@ -1404,7 +1404,7 @@ m_I2CSleepCycle = (unsigned long)(frequency / 50000); - m_I2CInitialized = true; + m_I2CInitialized = TRUE; } void CCX2388xCard::Sleep() @@ -1420,7 +1420,7 @@ } } -void CCX2388xCard::SetSDA(bool value) +void CCX2388xCard::SetSDA(BOOL value) { if (!m_I2CInitialized) { @@ -1437,7 +1437,7 @@ WriteDword(CX2388X_I2C, m_I2CRegister); } -void CCX2388xCard::SetSCL(bool value) +void CCX2388xCard::SetSCL(BOOL value) { if (!m_I2CInitialized) { @@ -1454,23 +1454,23 @@ WriteDword(CX2388X_I2C, m_I2CRegister); } -bool CCX2388xCard::GetSDA() +BOOL CCX2388xCard::GetSDA() { if (!m_I2CInitialized) { InitializeI2C(); } - bool state = ReadDword(CX2388X_I2C) & CX2388X_I2C_SDA ? true : false; + BOOL state = ReadDword(CX2388X_I2C) & CX2388X_I2C_SDA ? TRUE : FALSE; return state; } -bool CCX2388xCard::GetSCL() +BOOL CCX2388xCard::GetSCL() { if (!m_I2CInitialized) { InitializeI2C(); } - bool state = ReadDword(CX2388X_I2C) & CX2388X_I2C_SCL ? true : false; + BOOL state = ReadDword(CX2388X_I2C) & CX2388X_I2C_SCL ? TRUE : FALSE; return state; } Modified: trunk/DScaler/DScaler/CX2388xCard.h =================================================================== --- trunk/DScaler/DScaler/CX2388xCard.h 2009-03-23 04:24:30 UTC (rev 4544) +++ trunk/DScaler/DScaler/CX2388xCard.h 2009-03-23 12:57:21 UTC (rev 4545) @@ -218,10 +218,10 @@ static BOOL APIENTRY ChipSettingProc(HWND hDlg, UINT message, UINT wParam, LONG lParam); // I2C stuff - void SetSDA(bool value); - void SetSCL(bool value); - bool GetSDA(); - bool GetSCL(); + void SetSDA(BOOL value); + void SetSCL(BOOL value); + BOOL GetSDA(); + BOOL GetSCL(); void Sleep(); void I2CLock(); void I2CUnlock(); @@ -250,7 +250,7 @@ ULONG GetTickCount(); DWORD m_I2CSleepCycle; DWORD m_I2CRegister; - bool m_I2CInitialized; + BOOL m_I2CInitialized; void InitializeI2C(); private: Modified: trun... [truncated message content] |
From: <ad...@us...> - 2009-03-23 13:02:04
|
Revision: 4546 http://deinterlace.svn.sourceforge.net/deinterlace/?rev=4546&view=rev Author: adcockj Date: 2009-03-23 13:01:54 +0000 (Mon, 23 Mar 2009) Log Message: ----------- Renamed remotely Added Paths: ----------- trunk/DScaler/DScaler/SettingGroup.cpp Removed Paths: ------------- trunk/DScaler/DScaler/ISetting.cpp Deleted: trunk/DScaler/DScaler/ISetting.cpp =================================================================== --- trunk/DScaler/DScaler/ISetting.cpp 2009-03-23 12:57:21 UTC (rev 4545) +++ trunk/DScaler/DScaler/ISetting.cpp 2009-03-23 13:01:54 UTC (rev 4546) @@ -1,69 +0,0 @@ -// -// $Id$ -// -///////////////////////////////////////////////////////////////////////////// -// -// Copyright (c) 2002 John Adcock. All rights reserved. -// -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA -// -///////////////////////////////////////////////////////////////////////////// - -/** - * @file CSimpleSetting.cpp Settings classes implementation - */ - -#include "stdafx.h" - -#include "ISetting.h" -#include "Setting.h" - -CSettingGroup::CSettingGroup(LPCSTR szName, DWORD Flags, BOOL IsActiveByDefault) : - m_Name(szName), - m_Flags(Flags) -{ - m_IsActive = new CYesNoSetting(szName, IsActiveByDefault, "SettingsPerChannel", szName); - m_IsActive->ReadFromIni(); -} - - -CSettingGroup::~CSettingGroup() -{ - m_IsActive->WriteToIni(TRUE); -} - -LPCSTR CSettingGroup::GetName() -{ - return m_Name.c_str(); -} - -BOOL CSettingGroup::IsGroupActive() -{ - return m_IsActive->GetValue(); -} - -CSimpleSetting* CSettingGroup::GetIsActiveSetting() -{ - return m_IsActive; -} - - -/** - Adds group to pSetting -*/ -void CSettingGroup::AddSetting(CSimpleSetting *pSetting) -{ - pSetting->SetGroup(this); -} Copied: trunk/DScaler/DScaler/SettingGroup.cpp (from rev 4545, trunk/DScaler/DScaler/ISetting.cpp) =================================================================== --- trunk/DScaler/DScaler/SettingGroup.cpp (rev 0) +++ trunk/DScaler/DScaler/SettingGroup.cpp 2009-03-23 13:01:54 UTC (rev 4546) @@ -0,0 +1,69 @@ +// +// $Id$ +// +///////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2002 John Adcock. All rights reserved. +// +// This program is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation; either version 2 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA +// +///////////////////////////////////////////////////////////////////////////// + +/** + * @file CSimpleSetting.cpp Settings classes implementation + */ + +#include "stdafx.h" + +#include "ISetting.h" +#include "Setting.h" + +CSettingGroup::CSettingGroup(LPCSTR szName, DWORD Flags, BOOL IsActiveByDefault) : + m_Name(szName), + m_Flags(Flags) +{ + m_IsActive = new CYesNoSetting(szName, IsActiveByDefault, "SettingsPerChannel", szName); + m_IsActive->ReadFromIni(); +} + + +CSettingGroup::~CSettingGroup() +{ + m_IsActive->WriteToIni(TRUE); +} + +LPCSTR CSettingGroup::GetName() +{ + return m_Name.c_str(); +} + +BOOL CSettingGroup::IsGroupActive() +{ + return m_IsActive->GetValue(); +} + +CSimpleSetting* CSettingGroup::GetIsActiveSetting() +{ + return m_IsActive; +} + + +/** + Adds group to pSetting +*/ +void CSettingGroup::AddSetting(CSimpleSetting *pSetting) +{ + pSetting->SetGroup(this); +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ad...@us...> - 2009-03-23 13:04:37
|
Revision: 4547 http://deinterlace.svn.sourceforge.net/deinterlace/?rev=4547&view=rev Author: adcockj Date: 2009-03-23 13:04:32 +0000 (Mon, 23 Mar 2009) Log Message: ----------- Renamed remotely Added Paths: ----------- trunk/DScaler/DScaler/SettingGroup.h Removed Paths: ------------- trunk/DScaler/DScaler/ISetting.h Deleted: trunk/DScaler/DScaler/ISetting.h =================================================================== --- trunk/DScaler/DScaler/ISetting.h 2009-03-23 13:01:54 UTC (rev 4546) +++ trunk/DScaler/DScaler/ISetting.h 2009-03-23 13:04:32 UTC (rev 4547) @@ -1,83 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// $Id$ -///////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2003 JOhn Adcock. All rights reserved. -///////////////////////////////////////////////////////////////////////////// -// -// This file is subject to the terms of the GNU General Public License as -// published by the Free Software Foundation. A copy of this license is -// included with this software distribution in the file COPYING. If you -// do not have a copy, you may obtain a copy by writing to the Free -// Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -// -// This software is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details -///////////////////////////////////////////////////////////////////////////// - -/** - * @file ISetting.h interface for the ISetting class. - */ - -#ifndef _ISETTING_H_ -#define _ISETTING_H_ - -#include "DS_ApiCommon.h" -#include "DS_Control.h" - - -//See ISetting.cpp for a detailed description of the functions - -class CSettingGroup; - -/** Interface for control of a setting -*/ - -class CSimpleSetting; -class CYesNoSetting; - -enum eGroupSettingsFlags -{ - SETTING_BY_CHANNEL = 1, - SETTING_BY_FORMAT = 2, - SETTING_BY_INPUT = 4, - SETTING_BY_AUDIOINPUT = 8, -}; - - -/** - Setting group class. - Contains info like name & description - - Optionally is part of a group tree list. - Optionnaly belongs to an SettingObject. -*/ -class CSettingGroup -{ -public: - - CSettingGroup(LPCSTR szName, DWORD Flags = 0, BOOL IsActiveByDefault = FALSE); - ~CSettingGroup(); - - LPCSTR GetName(); - - BOOL IsSetByChannel() { return ((m_Flags & SETTING_BY_CHANNEL) == SETTING_BY_CHANNEL);}; - BOOL IsSetByFormat() { return ((m_Flags & SETTING_BY_FORMAT) == SETTING_BY_FORMAT);}; - BOOL IsSetByInput() { return ((m_Flags & SETTING_BY_INPUT) == SETTING_BY_INPUT);}; - BOOL IsSetByAudioInput() { return ((m_Flags & SETTING_BY_AUDIOINPUT) == SETTING_BY_AUDIOINPUT);}; - - BOOL IsGroupActive(); - - void AddSetting(CSimpleSetting *pSetting); - CSimpleSetting* GetIsActiveSetting(); - -protected: - /// Name of the group - std::string m_Name; - DWORD m_Flags; - - SmartPtr<CYesNoSetting> m_IsActive; -}; - -#endif Copied: trunk/DScaler/DScaler/SettingGroup.h (from rev 4546, trunk/DScaler/DScaler/ISetting.h) =================================================================== --- trunk/DScaler/DScaler/SettingGroup.h (rev 0) +++ trunk/DScaler/DScaler/SettingGroup.h 2009-03-23 13:04:32 UTC (rev 4547) @@ -0,0 +1,83 @@ +///////////////////////////////////////////////////////////////////////////// +// $Id$ +///////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2003 JOhn Adcock. All rights reserved. +///////////////////////////////////////////////////////////////////////////// +// +// This file is subject to the terms of the GNU General Public License as +// published by the Free Software Foundation. A copy of this license is +// included with this software distribution in the file COPYING. If you +// do not have a copy, you may obtain a copy by writing to the Free +// Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. +// +// This software is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details +///////////////////////////////////////////////////////////////////////////// + +/** + * @file ISetting.h interface for the ISetting class. + */ + +#ifndef _ISETTING_H_ +#define _ISETTING_H_ + +#include "DS_ApiCommon.h" +#include "DS_Control.h" + + +//See ISetting.cpp for a detailed description of the functions + +class CSettingGroup; + +/** Interface for control of a setting +*/ + +class CSimpleSetting; +class CYesNoSetting; + +enum eGroupSettingsFlags +{ + SETTING_BY_CHANNEL = 1, + SETTING_BY_FORMAT = 2, + SETTING_BY_INPUT = 4, + SETTING_BY_AUDIOINPUT = 8, +}; + + +/** + Setting group class. + Contains info like name & description + + Optionally is part of a group tree list. + Optionnaly belongs to an SettingObject. +*/ +class CSettingGroup +{ +public: + + CSettingGroup(LPCSTR szName, DWORD Flags = 0, BOOL IsActiveByDefault = FALSE); + ~CSettingGroup(); + + LPCSTR GetName(); + + BOOL IsSetByChannel() { return ((m_Flags & SETTING_BY_CHANNEL) == SETTING_BY_CHANNEL);}; + BOOL IsSetByFormat() { return ((m_Flags & SETTING_BY_FORMAT) == SETTING_BY_FORMAT);}; + BOOL IsSetByInput() { return ((m_Flags & SETTING_BY_INPUT) == SETTING_BY_INPUT);}; + BOOL IsSetByAudioInput() { return ((m_Flags & SETTING_BY_AUDIOINPUT) == SETTING_BY_AUDIOINPUT);}; + + BOOL IsGroupActive(); + + void AddSetting(CSimpleSetting *pSetting); + CSimpleSetting* GetIsActiveSetting(); + +protected: + /// Name of the group + std::string m_Name; + DWORD m_Flags; + + SmartPtr<CYesNoSetting> m_IsActive; +}; + +#endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ad...@us...> - 2009-03-23 13:19:40
|
Revision: 4548 http://deinterlace.svn.sourceforge.net/deinterlace/?rev=4548&view=rev Author: adcockj Date: 2009-03-23 13:19:35 +0000 (Mon, 23 Mar 2009) Log Message: ----------- Cope with ISetting header rename and further settings refactoring Modified Paths: -------------- trunk/DScaler/DScaler/DScaler2005.vcproj trunk/DScaler/DScaler/Setting.cpp trunk/DScaler/DScaler/Setting.h trunk/DScaler/DScaler/SettingGroup.cpp trunk/DScaler/DScaler/SettingGroup.h trunk/DScaler/DScaler/SettingsMaster.cpp trunk/DScaler/DScaler/TreeSettingsGeneric.cpp Modified: trunk/DScaler/DScaler/DScaler2005.vcproj =================================================================== --- trunk/DScaler/DScaler/DScaler2005.vcproj 2009-03-23 13:04:32 UTC (rev 4547) +++ trunk/DScaler/DScaler/DScaler2005.vcproj 2009-03-23 13:19:35 UTC (rev 4548) @@ -4247,54 +4247,6 @@ > </File> <File - RelativePath="ISetting.cpp" - > - <FileConfiguration - Name="Release|Win32" - > - <Tool - Name="VCCLCompilerTool" - Optimization="0" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - BrowseInformation="1" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug|Win32" - > - <Tool - Name="VCCLCompilerTool" - Optimization="0" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - BrowseInformation="1" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Express|Win32" - > - <Tool - Name="VCCLCompilerTool" - Optimization="0" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - BrowseInformation="1" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Express|Win32" - > - <Tool - Name="VCCLCompilerTool" - Optimization="0" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - BrowseInformation="1" - /> - </FileConfiguration> - </File> - <File RelativePath="ITuner.cpp" > <FileConfiguration @@ -6104,6 +6056,10 @@ </FileConfiguration> </File> <File + RelativePath=".\SettingGroup.cpp" + > + </File> + <File RelativePath=".\SettingHolder.cpp" > </File> @@ -8661,10 +8617,6 @@ > </File> <File - RelativePath="ISetting.h" - > - </File> - <File RelativePath="ITuner.h" > </File> @@ -8829,6 +8781,10 @@ > </File> <File + RelativePath=".\SettingGroup.h" + > + </File> + <File RelativePath=".\SettingHolder.h" > </File> Modified: trunk/DScaler/DScaler/Setting.cpp =================================================================== --- trunk/DScaler/DScaler/Setting.cpp 2009-03-23 13:04:32 UTC (rev 4547) +++ trunk/DScaler/DScaler/Setting.cpp 2009-03-23 13:19:35 UTC (rev 4548) @@ -151,7 +151,7 @@ GUI info, static callback function, pointer for callback function */ -CSimpleSetting::CSimpleSetting(LPCSTR DisplayName, LPCSTR Section, LPCSTR Entry, CSettingGroup* pGroup) : +CSimpleSetting::CSimpleSetting(const string& DisplayName, const string& Section, const string& Entry, CSettingGroup* pGroup) : m_DisplayName(DisplayName), m_Section(Section), m_Entry(Entry), @@ -181,29 +181,29 @@ m_EnableOnChange = FALSE; } -void CSimpleSetting::SetSection(LPCSTR NewValue) +void CSimpleSetting::SetSection(const string& NewValue) { m_Section = NewValue; } -LPCSTR CSimpleSetting::GetDisplayName() +const string& CSimpleSetting::GetDisplayName() { - return m_DisplayName.c_str(); + return m_DisplayName; } -LPCSTR CSimpleSetting::GetSection() +const string& CSimpleSetting::GetSection() { - return m_Section.c_str(); + return m_Section; } -void CSimpleSetting::SetEntry(LPCSTR NewValue) +void CSimpleSetting::SetEntry(const string& NewValue) { m_Entry = NewValue; } -LPCSTR CSimpleSetting::GetEntry() +const string& CSimpleSetting::GetEntry() { - return m_Entry.c_str(); + return m_Entry; } @@ -382,7 +382,7 @@ for the rest of the parameters: @see CSimpleSetting */ -CListSetting::CListSetting(LPCSTR DisplayName, long Default, long Max, LPCSTR Section, LPCSTR Entry, const char** pszList, CSettingGroup* pGroup) : +CListSetting::CListSetting(const string& DisplayName, long Default, long Max, const string& Section, const string& Entry, const char** pszList, CSettingGroup* pGroup) : CSimpleSetting(DisplayName, Section, Entry, pGroup), m_Default(Default), m_Max(Max), @@ -471,9 +471,9 @@ } } -void CListSetting::SetValueFromString(LPCSTR NewValue) +void CListSetting::SetValueFromString(const string& NewValue) { - SetValue(atol(NewValue)); + SetValue(FromString<long>(NewValue)); } LPARAM CListSetting::GetValueAsMessage() @@ -526,7 +526,7 @@ For the parameters: @see CSimpleSetting */ -CSliderSetting::CSliderSetting(LPCSTR DisplayName, long Default, long Min, long Max, LPCSTR Section, LPCSTR Entry, CSettingGroup* pGroup) : +CSliderSetting::CSliderSetting(const string& DisplayName, long Default, long Min, long Max, const string& Section, const string& Entry, CSettingGroup* pGroup) : CSimpleSetting(DisplayName, Section, Entry, pGroup), m_Default(Default), m_Min(Min), @@ -598,7 +598,7 @@ return ToString(m_Value); } -void CSliderSetting::SetValueFromString(LPCSTR NewValue) +void CSliderSetting::SetValueFromString(const string& NewValue) { SetValue(FromString<long>(NewValue)); } @@ -704,7 +704,7 @@ For the rest of the parameters: @see CSimpleSetting */ -CYesNoSetting::CYesNoSetting(LPCSTR DisplayName, BOOL Default, LPCSTR Section, LPCSTR Entry, CSettingGroup* pGroup) : +CYesNoSetting::CYesNoSetting(const string& DisplayName, BOOL Default, const string& Section, const string& Entry, CSettingGroup* pGroup) : CSimpleSetting(DisplayName, Section, Entry, pGroup), m_Default(Default), m_Value(Default) @@ -734,7 +734,7 @@ { if(IsWindowClass(hWnd, "Button")) { - Button_SetText(hWnd, GetDisplayName()); + Button_SetText(hWnd, GetDisplayName().c_str()); } } @@ -775,13 +775,13 @@ return ToString(m_Value); } -void CYesNoSetting::SetValueFromString(LPCSTR NewValue) +void CYesNoSetting::SetValueFromString(const string& NewValue) { - if(_stricmp(NewValue, "YES") == 0 || _stricmp(NewValue, "TRUE") == 0) + if(AreEqualInsensitive(NewValue, "YES") || AreEqualInsensitive(NewValue, "TRUE")) { SetValue(TRUE); } - else if(_stricmp(NewValue, "NO") == 0 || _stricmp(NewValue, "FALSE") == 0) + else if(AreEqualInsensitive(NewValue, "NO") || AreEqualInsensitive(NewValue, "FALSE")) { SetValue(FALSE); } @@ -835,7 +835,7 @@ For the rest of the parameters: @see CSimpleSetting */ -CStringSetting::CStringSetting(LPCSTR DisplayName, LPCSTR Default, LPCSTR Section, LPCSTR Entry, CSettingGroup* pGroup) : +CStringSetting::CStringSetting(const string& DisplayName, const string& Default, const string& Section, const string& Entry, CSettingGroup* pGroup) : CSimpleSetting(DisplayName, Section, Entry, pGroup), m_Value(Default), m_Default(Default) @@ -879,9 +879,9 @@ } } -void CStringSetting::SetValueFromString(LPCSTR NewValue) +void CStringSetting::SetValueFromString(const string& NewValue) { - SetValue(NewValue); + SetValue(NewValue.c_str()); } LPARAM CStringSetting::GetValueAsMessage() @@ -891,7 +891,7 @@ void CStringSetting::SetValueFromMessage(LPARAM LParam) { - SetValue((LPCSTR)LParam); + SetValue((const char*)LParam); } void CStringSetting::ChangeValueInternal(eCHANGEVALUE TypeOfChange) @@ -957,7 +957,7 @@ case ONOFF: if(IsWindowClass(hWnd, "Button")) { - Button_SetText(hWnd, GetDisplayName()); + Button_SetText(hWnd, GetDisplayName().c_str()); } break; case SLIDER: @@ -1098,15 +1098,15 @@ return ""; } -void CSettingWrapper::SetValueFromString(LPCSTR NewValue) +void CSettingWrapper::SetValueFromString(const string& NewValue) { if(m_Setting->Type == CHARSTRING) { - SetValue(reinterpret_cast<long>(NewValue)); + SetValue(reinterpret_cast<long>(NewValue.c_str())); } else { - SetValue(atol(NewValue)); + SetValue(FromString<long>(NewValue)); } } Modified: trunk/DScaler/DScaler/Setting.h =================================================================== --- trunk/DScaler/DScaler/Setting.h 2009-03-23 13:04:32 UTC (rev 4547) +++ trunk/DScaler/DScaler/Setting.h 2009-03-23 13:19:35 UTC (rev 4548) @@ -23,7 +23,7 @@ #ifndef __SETTING_H___ #define __SETTING_H___ -#include "ISetting.h" +#include "SettingGroup.h" #include "SettingHolder.h" @@ -32,7 +32,7 @@ class CSimpleSetting { public: - CSimpleSetting(LPCSTR DisplayName, LPCSTR Section, LPCSTR Entry, CSettingGroup* pGroup = NULL); + CSimpleSetting(const std::string& DisplayName, const std::string& Section, const std::string& Entry, CSettingGroup* pGroup = NULL); virtual ~CSimpleSetting(); virtual SETTING_TYPE GetType() = 0; @@ -45,12 +45,12 @@ virtual std::string GetDisplayValue() = 0; void OSDShow(); - LPCSTR GetDisplayName(); + const std::string& GetDisplayName(); - void SetSection(LPCSTR NewValue); - LPCSTR GetSection(); - void SetEntry(LPCSTR NewValue); - LPCSTR GetEntry(); + void SetSection(const std::string& NewValue); + const std::string& GetSection(); + void SetEntry(const std::string& NewValue); + const std::string& GetEntry(); BOOL ReadFromIni(); void WriteToIni(BOOL bOptimizeFileAccess); @@ -68,7 +68,7 @@ private: virtual std::string GetValueAsString() = 0; - virtual void SetValueFromString(LPCSTR NewValue) = 0; + virtual void SetValueFromString(const std::string& NewValue) = 0; virtual void ChangeValueInternal(eCHANGEVALUE TypeOfChange) = 0; /// Internal storage for display name std::string m_DisplayName; @@ -107,7 +107,7 @@ virtual std::string GetDisplayValue(); private: virtual std::string GetValueAsString(); - virtual void SetValueFromString(LPCSTR NewValue); + virtual void SetValueFromString(const std::string& NewValue); void SetValue(long NewValue); virtual void ChangeValueInternal(eCHANGEVALUE TypeOfChange); SETTING* m_Setting; @@ -119,7 +119,7 @@ class CYesNoSetting : public CSimpleSetting { public: - CYesNoSetting(LPCSTR DisplayName, BOOL Default, LPCSTR Section, LPCSTR Entry, + CYesNoSetting(const std::string& DisplayName, BOOL Default, const std::string& Section, const std::string& Entry, CSettingGroup* pGroup = NULL); ~CYesNoSetting(); SETTING_TYPE GetType() {return YESNO;}; @@ -134,7 +134,7 @@ virtual std::string GetDisplayValue(); private: virtual std::string GetValueAsString(); - virtual void SetValueFromString(LPCSTR NewValue); + virtual void SetValueFromString(const std::string& NewValue); virtual void ChangeValueInternal(eCHANGEVALUE TypeOfChange); virtual void OnChange(BOOL NewValue, BOOL OldValue) {}; BOOL m_Default; @@ -146,7 +146,7 @@ class CSliderSetting : public CSimpleSetting { public: - CSliderSetting(LPCSTR DisplayName, long Default, long Min, long Max, LPCSTR Section, LPCSTR Entry, + CSliderSetting(const std::string& DisplayName, long Default, long Min, long Max, const std::string& Section, const std::string& Entry, CSettingGroup* pGroup = NULL); ~CSliderSetting(); SETTING_TYPE GetType() {return SLIDER;}; @@ -166,7 +166,7 @@ virtual std::string GetDisplayValue(); private: virtual std::string GetValueAsString(); - virtual void SetValueFromString(LPCSTR NewValue); + virtual void SetValueFromString(const std::string& NewValue); virtual void ChangeValueInternal(eCHANGEVALUE TypeOfChange); virtual void OnChange(long NewValue, long OldValue) {}; long m_Default; @@ -181,7 +181,7 @@ class CListSetting : public CSimpleSetting { public: - CListSetting(LPCSTR DisplayName, long Default, long Max, LPCSTR Section, LPCSTR Entry, const char** pszList, + CListSetting(const std::string& DisplayName, long Default, long Max, const std::string& Section, const std::string& Entry, const char** pszList, CSettingGroup* pGroup = NULL); ~CListSetting(); SETTING_TYPE GetType() {return ITEMFROMLIST;}; @@ -198,7 +198,7 @@ virtual std::string GetDisplayValue(); private: virtual std::string GetValueAsString(); - virtual void SetValueFromString(LPCSTR NewValue); + virtual void SetValueFromString(const std::string& NewValue); virtual void ChangeValueInternal(eCHANGEVALUE TypeOfChange); virtual void OnChange(long NewValue, long OldValue) {}; long m_Default; @@ -213,7 +213,7 @@ class CStringSetting : public CSimpleSetting { public: - CStringSetting(LPCSTR DisplayName, LPCSTR Default, LPCSTR Section, LPCSTR Entry, CSettingGroup* pGroup = NULL); + CStringSetting(const std::string& DisplayName, const std::string& Default, const std::string& Section, const std::string& Entry, CSettingGroup* pGroup = NULL); ~CStringSetting(); SETTING_TYPE GetType() {return CHARSTRING;}; void GetDisplayText(LPSTR szBuffer); @@ -223,8 +223,8 @@ BOOL ReadFromIni(); void WriteToIni(BOOL bOptimizeFileAccess); - BOOL ReadFromIniSubSection(LPCSTR szSubSection); - void WriteToIniSubSection(LPCSTR szSubSection, BOOL bOptimizeFileAccess = TRUE); + BOOL ReadFromIniSubSection(const std::string& szSubSection); + void WriteToIniSubSection(const std::string& szSubSection, BOOL bOptimizeFileAccess = TRUE); void SetupControl(HWND hWnd); void SetControlValue(HWND hWnd); @@ -234,7 +234,7 @@ virtual std::string GetDisplayValue(); private: virtual std::string GetValueAsString(); - virtual void SetValueFromString(LPCSTR NewValue); + virtual void SetValueFromString(const std::string& NewValue); virtual void ChangeValueInternal(eCHANGEVALUE TypeOfChange); virtual void OnChange(const std::string& NewValue, const std::string& OldValue) {}; std::string m_Value; @@ -254,7 +254,7 @@ class C ## Name ## Setting : public CYesNoSetting \ { \ public: \ - C ## Name ## Setting(const Class* Parent, LPCSTR DisplayName, BOOL Default, LPCSTR Section, CSettingGroup* pGroup = NULL) : \ + C ## Name ## Setting(const Class* Parent, const std::string& DisplayName, BOOL Default, const std::string& Section, CSettingGroup* pGroup = NULL) : \ CYesNoSetting(DisplayName, Default, Section, #Name, pGroup), m_Parent((Class*)Parent) {;} \ virtual void OnChange(BOOL NewValue, BOOL OldValue) {m_Parent->Name ## OnChange(NewValue, OldValue);} \ private: \ @@ -269,7 +269,7 @@ class C ## Name ## Setting : public CSliderSetting \ { \ public: \ - C ## Name ## Setting(const Class* Parent, LPCSTR DisplayName, long Default, long Min, long Max, LPCSTR Section, CSettingGroup* pGroup = NULL) : \ + C ## Name ## Setting(const Class* Parent, const std::string& DisplayName, long Default, long Min, long Max, const std::string& Section, CSettingGroup* pGroup = NULL) : \ CSliderSetting(DisplayName, Default, Min, Max, Section, #Name, pGroup), m_Parent((Class*)Parent) {;} \ void OnChange(long NewValue, long OldValue) {m_Parent->Name ## OnChange(NewValue, OldValue);} \ private: \ @@ -284,7 +284,7 @@ class C ## Name ## Setting : public CListSetting \ { \ public: \ - C ## Name ## Setting(const Class* Parent, LPCSTR DisplayName, long Default, long Max, LPCSTR Section, const char** pszList, CSettingGroup* pGroup = NULL) : \ + C ## Name ## Setting(const Class* Parent, const std::string& DisplayName, long Default, long Max, const std::string& Section, const char** pszList, CSettingGroup* pGroup = NULL) : \ CListSetting(DisplayName, Default, Max, Section, #Name, pszList, pGroup), m_Parent((Class*)Parent) {;} \ void OnChange(long NewValue, long OldValue) {m_Parent->Name ## OnChange(NewValue, OldValue);} \ private: \ @@ -299,7 +299,7 @@ class C ## Name ## Setting : public CStringSetting \ { \ public: \ - C ## Name ## Setting(const Class* Parent, LPCSTR DisplayName, char* Default, LPCSTR Section, CSettingGroup* pGroup = NULL) : \ + C ## Name ## Setting(const Class* Parent, const std::string& DisplayName, char* Default, const std::string& Section, CSettingGroup* pGroup = NULL) : \ CStringSetting(DisplayName, (long)Default, Section, #Name, pGroup), m_Parent((Class*)Parent) {;} \ void OnChange(const std::string& NewValue, const std::string& OldValue) {m_Parent->Name ## OnChange(NewValue, OldValue);} \ private: \ Modified: trunk/DScaler/DScaler/SettingGroup.cpp =================================================================== --- trunk/DScaler/DScaler/SettingGroup.cpp 2009-03-23 13:04:32 UTC (rev 4547) +++ trunk/DScaler/DScaler/SettingGroup.cpp 2009-03-23 13:19:35 UTC (rev 4548) @@ -27,14 +27,16 @@ #include "stdafx.h" -#include "ISetting.h" +#include "SettingGroup.h" #include "Setting.h" -CSettingGroup::CSettingGroup(LPCSTR szName, DWORD Flags, BOOL IsActiveByDefault) : - m_Name(szName), +using namespace std; + +CSettingGroup::CSettingGroup(const string& Name, DWORD Flags, BOOL IsActiveByDefault) : + m_Name(Name), m_Flags(Flags) { - m_IsActive = new CYesNoSetting(szName, IsActiveByDefault, "SettingsPerChannel", szName); + m_IsActive = new CYesNoSetting(Name, IsActiveByDefault, "SettingsPerChannel", Name); m_IsActive->ReadFromIni(); } @@ -44,9 +46,9 @@ m_IsActive->WriteToIni(TRUE); } -LPCSTR CSettingGroup::GetName() +const string& CSettingGroup::GetName() { - return m_Name.c_str(); + return m_Name; } BOOL CSettingGroup::IsGroupActive() @@ -65,5 +67,5 @@ */ void CSettingGroup::AddSetting(CSimpleSetting *pSetting) { - pSetting->SetGroup(this); + pSetting->SetGroup(this); } Modified: trunk/DScaler/DScaler/SettingGroup.h =================================================================== --- trunk/DScaler/DScaler/SettingGroup.h 2009-03-23 13:04:32 UTC (rev 4547) +++ trunk/DScaler/DScaler/SettingGroup.h 2009-03-23 13:19:35 UTC (rev 4548) @@ -17,11 +17,11 @@ ///////////////////////////////////////////////////////////////////////////// /** - * @file ISetting.h interface for the ISetting class. + * @file SettingGroup.h */ -#ifndef _ISETTING_H_ -#define _ISETTING_H_ +#ifndef _SETTING_GROUP_H_ +#define _SETTING_GROUP_H_ #include "DS_ApiCommon.h" #include "DS_Control.h" @@ -57,10 +57,10 @@ { public: - CSettingGroup(LPCSTR szName, DWORD Flags = 0, BOOL IsActiveByDefault = FALSE); + CSettingGroup(const std::string& Name, DWORD Flags = 0, BOOL IsActiveByDefault = FALSE); ~CSettingGroup(); - LPCSTR GetName(); + const std::string& GetName(); BOOL IsSetByChannel() { return ((m_Flags & SETTING_BY_CHANNEL) == SETTING_BY_CHANNEL);}; BOOL IsSetByFormat() { return ((m_Flags & SETTING_BY_FORMAT) == SETTING_BY_FORMAT);}; Modified: trunk/DScaler/DScaler/SettingsMaster.cpp =================================================================== --- trunk/DScaler/DScaler/SettingsMaster.cpp 2009-03-23 13:04:32 UTC (rev 4547) +++ trunk/DScaler/DScaler/SettingsMaster.cpp 2009-03-23 13:19:35 UTC (rev 4548) @@ -360,7 +360,7 @@ { for (int i = 0; i < m_SettingsGroups.size(); i++) { - if(strcmp(m_SettingsGroups[i]->GetName(), szName) == 0) + if(m_SettingsGroups[i]->GetName() == szName) { return m_SettingsGroups[i]; } Modified: trunk/DScaler/DScaler/TreeSettingsGeneric.cpp =================================================================== --- trunk/DScaler/DScaler/TreeSettingsGeneric.cpp 2009-03-23 13:04:32 UTC (rev 4547) +++ trunk/DScaler/DScaler/TreeSettingsGeneric.cpp 2009-03-23 13:19:35 UTC (rev 4548) @@ -148,9 +148,9 @@ for(int i=0;i<m_SettingsCount;i++) { CSimpleSetting* pSetting = m_Settings[i]; - if ((pSetting != NULL) && (pSetting->GetDisplayName() != NULL) && (pSetting->GetType() != NOT_PRESENT)) + if ((pSetting != NULL) && !pSetting->GetDisplayName().empty() && (pSetting->GetType() != NOT_PRESENT)) { - int index=m_ListBox.AddString(pSetting->GetDisplayName()); + int index=m_ListBox.AddString(pSetting->GetDisplayName().c_str()); if(index!=LB_ERR) { m_ListBox.SetItemData(index,i); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ad...@us...> - 2009-03-26 16:44:34
|
Revision: 4552 http://deinterlace.svn.sourceforge.net/deinterlace/?rev=4552&view=rev Author: adcockj Date: 2009-03-26 16:44:23 +0000 (Thu, 26 Mar 2009) Log Message: ----------- Initial Tidy up of Channel code Modified Paths: -------------- trunk/DScaler/DScaler/Channels.cpp trunk/DScaler/DScaler/Channels.h trunk/DScaler/DScaler/EPG.cpp trunk/DScaler/DScaler/ProgramList.cpp trunk/DScaler/DScaler/ScheduledRecording.cpp trunk/DScaler/DScaler/Toolbars.cpp Modified: trunk/DScaler/DScaler/Channels.cpp =================================================================== --- trunk/DScaler/DScaler/Channels.cpp 2009-03-26 13:47:59 UTC (rev 4551) +++ trunk/DScaler/DScaler/Channels.cpp 2009-03-26 16:44:23 UTC (rev 4552) @@ -52,20 +52,6 @@ m_Active = Active; } -CChannel::CChannel(const CChannel& CopyFrom) -{ - m_Name = CopyFrom.m_Name; - m_EPGName = CopyFrom.m_EPGName; - m_Freq = CopyFrom.m_Freq; - m_Chan = CopyFrom.m_Chan; - m_Format = CopyFrom.m_Format; - m_Active = CopyFrom.m_Active; -} - -CChannel::~CChannel() -{ -} - LPCSTR CChannel::GetName() const { static char sbuf[256]; @@ -116,53 +102,21 @@ // ------------ CChannelList BEGIN ------------ // -------------------------------------------- -CChannelList::CChannelList() : m_Channels() +CChannelList::CChannelList() : + m_MinFrequency(0), + m_MaxFrequency(0), + m_MinChannelNumber(0), + m_MaxChannelNumber(0) { - m_MinFrequency = 0; - m_MaxFrequency = 0; - - m_MinChannelNumber = 0; - m_MaxChannelNumber = 0; } -CChannelList::CChannelList(const CChannelList& pCopy) : m_Channels() -{ - - m_MinFrequency = pCopy.m_MinFrequency; - m_MaxFrequency = pCopy.m_MaxFrequency; - - m_MinChannelNumber = pCopy.m_MinChannelNumber; - m_MaxChannelNumber = pCopy.m_MaxChannelNumber; - - AddChannels(&pCopy); -} - - -CChannelList::~CChannelList() -{ - Clear(); -} - - void CChannelList::Clear() { - m_MinFrequency = 0; - m_MaxFrequency = 0; - - m_MinChannelNumber = 0; - m_MaxChannelNumber = 0; - - for(Channels::iterator it = m_Channels.begin(); - it != m_Channels.end(); - ++it) - { - delete (*it); - } m_Channels.clear(); + UpdateFields(); } - int CChannelList::GetSize() const { return m_Channels.size(); @@ -201,17 +155,15 @@ return m_MaxFrequency; } -CChannel* CChannelList::GetChannel(int index) const +SmartPtr<CChannel> CChannelList::GetChannel(int index) const { - ASSERT(index >= 0); - ASSERT(index < m_Channels.size()); return m_Channels[index]; } -CChannel* CChannelList::GetChannelByNumber(int iChannelNumber) +SmartPtr<CChannel> CChannelList::GetChannelByNumber(int iChannelNumber) { - CChannel* returned = NULL; + SmartPtr<CChannel> returned; for(Channels::iterator it = m_Channels.begin(); it != m_Channels.end(); @@ -226,9 +178,9 @@ return returned; } -CChannel* CChannelList::GetChannelByFrequency(DWORD dwFreq) +SmartPtr<CChannel> CChannelList::GetChannelByFrequency(DWORD dwFreq) { - CChannel* returned = NULL; + SmartPtr<CChannel> returned; for(Channels::iterator it = m_Channels.begin(); it != m_Channels.end(); @@ -243,126 +195,60 @@ return returned; } -BOOL CChannelList::AddChannel(CChannel* pChannel) +void CChannelList::AddChannel(SmartPtr<CChannel> pChannel) { - BOOL returned = FALSE; - if (NULL != pChannel) + if (pChannel) { m_Channels.push_back(pChannel); UpdateFields(); - returned = TRUE; } - return returned; } - -BOOL CChannelList::AddChannel(LPCSTR szName, DWORD dwFreq, int iChannelNumber, eVideoFormat eFormat, BOOL bActive) +void CChannelList::RemoveChannel(int index) { - CChannel* newChannel = new CChannel(szName, dwFreq, iChannelNumber, eFormat, bActive); - return AddChannel(newChannel); -} - -BOOL CChannelList::AddChannel(LPCSTR szName, LPCSTR szEPGName, DWORD dwFreq, int iChannelNumber, eVideoFormat eFormat, BOOL bActive) -{ - CChannel* newChannel = new CChannel(szName, szEPGName, dwFreq, iChannelNumber, eFormat, bActive); - return AddChannel(newChannel); -} - -BOOL CChannelList::AddChannel(LPCSTR szName, DWORD dwFreq, eVideoFormat eFormat, BOOL bActive) -{ - return AddChannel(szName, dwFreq, m_MaxChannelNumber + 1, eFormat, bActive); -} - -BOOL CChannelList::AddChannel(LPCSTR szName, LPCSTR szEPGName, DWORD dwFreq, eVideoFormat eFormat, BOOL bActive) -{ - return AddChannel(szName, szEPGName, dwFreq, m_MaxChannelNumber + 1, eFormat, bActive); -} - -BOOL CChannelList::AddChannel(DWORD dwFrequency, int iChannelNumber, eVideoFormat eVideoFormat, BOOL bActive) -{ - static char sbuf[256]; - sprintf(sbuf, "Channel %d", iChannelNumber); - return AddChannel(sbuf, dwFrequency, iChannelNumber, eVideoFormat, bActive); -} - -int CChannelList::AddChannels(const CChannelList* const pChannels) -{ - ASSERT(NULL != pChannels); - - int count = 0; - - for (int i = 0; i < pChannels->GetSize(); i++) - { - if (AddChannel(new CChannel(*pChannels->GetChannel(i)))) - { - count++; - } - } - - ASSERT(count == pChannels->GetSize()); - return count; //s/b=pChannels->GetSize() -} - -BOOL CChannelList::RemoveChannel(int index) -{ if ((index < 0) || (index >= GetSize())) { - return FALSE; + return; } - //this sequence is truly bizarre... - delete m_Channels[index]; m_Channels.erase(m_Channels.begin() + index); UpdateFields(); - return TRUE; } -BOOL CChannelList::SetChannel(int index, CChannel* pChannel) +void CChannelList::SetChannel(int index, SmartPtr<CChannel>pChannel) { - BOOL returned = FALSE; - - if ((index >= 0) && (NULL != pChannel)) + if ((index >= 0) && !pChannel) { if (index >= GetSize()) { - returned = AddChannel(pChannel); + AddChannel(pChannel); } else { - CChannel* oldChannel = GetChannel(index); - //if same - do nothing - if ((NULL != oldChannel) && (pChannel != oldChannel)) - { - delete oldChannel; - m_Channels[index] = pChannel; - UpdateFields(); - returned = TRUE; - } + m_Channels[index] = pChannel; + UpdateFields(); } } - return returned; } -BOOL CChannelList::SwapChannels(int a, int b) +void CChannelList::SwapChannels(int a, int b) { if ((a < 0) || (a >= GetSize()) || (b < 0) || (b >= GetSize())) { - return FALSE; + return; } if (a == b) { //now, that is very funny... - return TRUE; + return; } - CChannel* channelA = GetChannel(a); - CChannel* channelB = GetChannel(b); + SmartPtr<CChannel> channelA = GetChannel(a); + SmartPtr<CChannel> channelB = GetChannel(b); m_Channels[a] = channelB; m_Channels[b] = channelA; - - return TRUE; } @@ -371,28 +257,46 @@ if (m_MinFrequency == 0) { m_MinFrequency = (GetSize() == 0) ? 0 : GetChannel(0)->GetFrequency(); + m_MaxFrequency = m_MinFrequency; } if (m_MinChannelNumber == 0) { m_MinChannelNumber = (GetSize() == 0) ? 0 : GetChannel(0)->GetChannelNumber(); + m_MaxChannelNumber = m_MinChannelNumber; } - - CChannel* returned = NULL; - - for(int i = 0; i < GetSize(); i++) + for(int i(1); i < GetSize(); ++i) { - m_MinFrequency = min(m_MinFrequency, GetChannelFrequency(i)); - m_MaxFrequency = max(m_MaxFrequency, GetChannelFrequency(i)); + m_MinFrequency = min(m_MinFrequency, GetChannel(i)->GetFrequency()); + m_MaxFrequency = max(m_MaxFrequency, GetChannel(i)->GetFrequency()); - m_MinChannelNumber = min(m_MinChannelNumber, GetChannelNumber(i)); - m_MaxChannelNumber = max(m_MaxChannelNumber, GetChannelNumber(i)); + m_MinChannelNumber = min(m_MinChannelNumber, GetChannel(i)->GetChannelNumber()); + m_MaxChannelNumber = max(m_MaxChannelNumber, GetChannel(i)->GetChannelNumber()); } } -BOOL CChannelList::WriteFile(LPCSTR szFilename, CChannelList::FileFormat format) const +// ------------ CChannelList END -------------- +// -------------------------------------------- + +// ------------ CUserChannels BEGIN ------------ +// -------------------------------------------- + +CUserChannels::CUserChannels() : CChannelList() { +} + +CUserChannels::CUserChannels(const CUserChannels& pCopy) : CChannelList((CChannelList&)pCopy) +{ +} + + +CUserChannels::~CUserChannels() +{ +} + +BOOL CUserChannels::WriteFile(LPCSTR szFilename) const +{ if (NULL == szFilename) { return FALSE; @@ -401,18 +305,7 @@ BOOL success = FALSE; FILE* file = fopen(szFilename, "w"); if (NULL != file) { - switch (format) - { - case FILE_FORMAT_ASCII: - success = WriteASCIIImpl(file); - break; - - case FILE_FORMAT_XML: - success = WriteXMLImpl(file); - break; - default : - break; - }//switch + success = WriteASCIIImpl(file); success = (fclose(file) == 0) && success; file = NULL; } @@ -421,7 +314,7 @@ } -BOOL CChannelList::ReadFile(LPCSTR szFilename, CChannelList::FileFormat format) +BOOL CUserChannels::ReadFile(LPCSTR szFilename) { if (NULL == szFilename) { @@ -431,47 +324,13 @@ BOOL success = FALSE; FILE* file = fopen(szFilename, "r"); if (NULL != file) { - switch (format) - { - case FILE_FORMAT_ASCII: - success = ReadASCIIImpl(file); - break; - - case FILE_FORMAT_XML: - success = ReadXMLImpl(file); - break; - - default : - break; - - }//switch + success = ReadASCIIImpl(file); success = (fclose(file) == 0) && success; file = NULL; } return success; } - -// ------------ CChannelList END -------------- -// -------------------------------------------- - -// ------------ CUserChannels BEGIN ------------ -// -------------------------------------------- - -CUserChannels::CUserChannels() : CChannelList() -{ -} - -CUserChannels::CUserChannels(const CUserChannels& pCopy) : CChannelList((CChannelList&)pCopy) -{ -} - - -CUserChannels::~CUserChannels() -{ -} - - BOOL CUserChannels::ReadASCIIImpl(FILE* SettingFile) { ASSERT(NULL != SettingFile); @@ -616,16 +475,16 @@ for(int i = 0; i < GetSize(); i++) { - fprintf(SettingFile, "Name: %s\n", GetChannelName(i)); - if (strcmp(GetChannelName(i), GetChannelEPGName(i))) - fprintf(SettingFile, "EPGName: %s\n", GetChannelEPGName(i)); + fprintf(SettingFile, "Name: %s\n", GetChannel(i)->GetName()); + if (strcmp(GetChannel(i)->GetName(), GetChannel(i)->GetEPGName())) + fprintf(SettingFile, "EPGName: %s\n", GetChannel(i)->GetEPGName()); //fprintf(SettingFile, "Freq2: %ld\n", MulDiv((*it)->GetFrequency(),16,1000000)); - fprintf(SettingFile, "Freq: %ld\n", GetChannelFrequency(i)/1000); - fprintf(SettingFile, "Chan: %d\n", GetChannelNumber(i)); - fprintf(SettingFile, "Active: %d\n", GetChannelActive(i)); - if(GetChannelFormat(i) != -1) + fprintf(SettingFile, "Freq: %ld\n", GetChannel(i)->GetFrequency()/1000); + fprintf(SettingFile, "Chan: %d\n", GetChannel(i)->GetChannelNumber()); + fprintf(SettingFile, "Active: %d\n", GetChannel(i)->IsActive()); + if(GetChannel(i)->GetFormat() != -1) { - fprintf(SettingFile, "Form: %d\n", GetChannelFormat(i)); + fprintf(SettingFile, "Form: %d\n", GetChannel(i)->GetFormat()); } } @@ -634,45 +493,6 @@ return bSuccess; } -BOOL CUserChannels::ReadXMLImpl(FILE* file) -{ - BOOL returned = FALSE; - - - - return returned; -} - -BOOL CUserChannels::WriteXMLImpl(FILE* SettingFile) const -{ - //quick and dirty - ASSERT(NULL != SettingFile); - - BOOL bSuccess = FALSE; - //fprintf(SettingFile, "<?xml-stylesheet type=\"text/xsl\" href=\"program-list.xsl\"?>"); - fprintf(SettingFile, "<channel-list>\n"); - for(int i = 0; i < GetSize(); i++) - { - fprintf(SettingFile, "\t<channel id=\"%d\">\n", i); - fprintf(SettingFile, "\t\t<name>%s</name>\n", GetChannelName(i)); - if (strcmp(GetChannelName(i), GetChannelEPGName(i))) - fprintf(SettingFile, "\t\t<EPGname>%s</EPGname>\n", GetChannelEPGName(i)); - fprintf(SettingFile, "\t\t<frequency>%ld</frequency>\n", GetChannelFrequency(i));//watch out. ASCII has freq/1000 - fprintf(SettingFile, "\t\t<number>%d</number>\n", GetChannelNumber(i)); - fprintf(SettingFile, "\t\t<active>%d</active>\n", GetChannelActive(i)); - if(GetChannelFormat(i) != -1) - { - fprintf(SettingFile, "\t\t<format>%d</format>\n", GetChannelFormat(i)); - } - fprintf(SettingFile, "\t</channel>\n"); - }//for - fprintf(SettingFile, "</channel-list>\n"); - bSuccess = TRUE; - - return bSuccess;//TRUE -} - - // ------------ CUserChannels END -------------- // -------------------------------------------- @@ -724,42 +544,6 @@ return FALSE; } - -BOOL CCountryChannels::WriteXMLImpl(FILE* xmlCountryFile) const -{ - - ASSERT(NULL != xmlCountryFile); - - BOOL bSuccess = FALSE; - - fprintf(xmlCountryFile, "\t<country>\n"); - fprintf(xmlCountryFile, "\t\t<name>%s</name>\n", GetCountryName()); - fprintf(xmlCountryFile, "\t\t<format>%d</format>\n", GetCountryFormat()); - for(int i = 0; i < GetSize(); i++) - { - fprintf(xmlCountryFile, "\t\t<channel id=\"%d\">\n", i); - fprintf(xmlCountryFile, "\t\t\t<name>%s</name>\n", GetChannelName(i)); - fprintf(xmlCountryFile, "\t\t\t<frequency>%ld</frequency>\n", GetChannelFrequency(i)); - fprintf(xmlCountryFile, "\t\t\t<number>%d</number>\n", GetChannelNumber(i)); - fprintf(xmlCountryFile, "\t\t\t<active>%d</active>\n", GetChannelActive(i)); - if(GetChannelFormat(i) != -1) - { - fprintf(xmlCountryFile, "\t\t\t<format>%d</format>\n", GetChannelFormat(i)); - } - fprintf(xmlCountryFile, "\t\t</channel>\n"); - }//for each channel - fprintf(xmlCountryFile, "\t</country>\n"); - - bSuccess = TRUE; - return bSuccess; -} - -BOOL CCountryChannels::ReadXMLImpl(FILE* file) -{ - return FALSE; -} - - // ------------ CCountryChannels END -------------- // ------------------------------------------------ @@ -799,66 +583,6 @@ return m_Countries[index]; } - -BOOL CCountryList::AddChannels(LPCSTR szName, CChannelList* pChannels) -{ - BOOL returned = FALSE; - if (NULL != pChannels) - { - CCountryChannels * newChannelList = new CCountryChannels(szName); - for (int i = 0; i < pChannels->GetSize(); i++) - { - CChannel channel = *pChannels->GetChannel(i); - CChannel * newChannel = new CChannel(channel); - newChannelList->CChannelList::AddChannel(newChannel); - } - - m_Countries.push_back(newChannelList); - returned = TRUE; - } - return returned; -} - - -BOOL CCountryList::AddChannels(CCountryChannels* pChannels) -{ - BOOL returned = FALSE; - if (NULL != pChannels) - { - //avoid adding twice the same pointer - BOOL found = FALSE; - for (int i = 0; i < GetSize(); i++) - { - const CCountryChannels* channels = GetChannels(i); - if (channels == pChannels) - { - found = TRUE; - break; - } - }//for - if (FALSE == found) - { - m_Countries.push_back(pChannels); - returned = TRUE; - } - } - return returned; -} - - -BOOL CCountryList::RemoveChannels(int index) -{ - if ((index < 0) || (index >= GetSize())) - { - return FALSE; - } - - delete m_Countries[index]; - m_Countries.erase(m_Countries.begin() + index); - return TRUE; -} - - //That is an utility function that was in ProgramList.cpp //Used in Load_Country_Settings eVideoFormat StrToVideoFormat(char* pszFormat) @@ -885,13 +609,13 @@ return FALSE; } - BOOL returned = ReadASCII(file); + BOOL returned = ReadASCIIImpl(file); returned = (fclose(file) == 0) && returned; return returned; } -BOOL CCountryList::ReadASCII(FILE* CountryFile) +BOOL CCountryList::ReadASCIIImpl(FILE* CountryFile) { ASSERT(NULL != CountryFile); @@ -900,7 +624,7 @@ char* Pos1; char* eol_ptr; CString channelName; - CCountryChannels* NewCountry = NULL; + SmartPtr<CCountryChannels> NewCountry; eVideoFormat Format = VIDEOFORMAT_LAST_TV; int channelCounter = 0; @@ -925,9 +649,9 @@ } if(((Pos = strchr(line, '[')) != 0) && ((Pos1 = strrchr(line, ']')) != 0) && Pos1 > Pos) { - if(NewCountry != NULL) + if(NewCountry) { - AddChannels(NewCountry); + m_Countries.push_back(NewCountry); } Pos++; @@ -939,7 +663,7 @@ } else { - if (NewCountry == NULL) + if (!NewCountry) { return FALSE; } @@ -973,12 +697,17 @@ channelName.TrimRight(); //eliminate the trailing ";" in name if it exists, //otherwise pickup a default name - if (channelName.GetLength() < 2) { - NewCountry->AddChannel(freq, channelNumber, Format, FALSE); + SmartPtr<CChannel> NewChannel; + if (channelName.GetLength() < 2) + { + string ChannelName(MakeString() << "Channel " << channelNumber); + NewChannel = new CChannel(ChannelName.c_str(), freq, channelNumber, Format, FALSE); } - else { - NewCountry->AddChannel(channelName.Right(channelName.GetLength() - 2), freq, channelNumber, Format, FALSE); + else + { + NewChannel = new CChannel(channelName.Right(channelName.GetLength() - 2), freq, channelNumber, Format, FALSE); } + NewCountry->AddChannel(NewChannel); } channelCounter++; break; @@ -988,52 +717,13 @@ } } } - if(NewCountry != NULL) + if(NewCountry) { - AddChannels(NewCountry); + m_Countries.push_back(NewCountry); } return TRUE; } -BOOL CCountryList::WriteXML(LPCSTR szFilename) const -{ - if (NULL == szFilename) { - return FALSE; - } - - FILE* file = fopen(szFilename, "w"); - if (NULL == file) { - return FALSE; - } - - BOOL returned = WriteXML(file); - returned = (fclose(file) == 0) && returned; - - return returned; -} - - -BOOL CCountryList::WriteXML(FILE* xmlCountryFile) const -{ - ASSERT(NULL != xmlCountryFile); - - BOOL bSuccess = FALSE; - - fprintf(xmlCountryFile, "<channel-list>\n"); - for (int j = 0; j < GetSize(); j++) { - const CCountryChannels* channels = GetChannels(j); - channels->WriteXMLImpl(xmlCountryFile); - }//for each channel list - fprintf(xmlCountryFile, "</channel-list>\n"); - - bSuccess = TRUE; - - return bSuccess; -} - - // ------------ CCountryList END -------------- // ------------------------------------------------ - - Modified: trunk/DScaler/DScaler/Channels.h =================================================================== --- trunk/DScaler/DScaler/Channels.h 2009-03-26 13:47:59 UTC (rev 4551) +++ trunk/DScaler/DScaler/Channels.h 2009-03-26 16:44:23 UTC (rev 4552) @@ -39,9 +39,6 @@ CChannel(LPCSTR Name, LPCSTR EPGName, DWORD Freq, int ChannelNumber, eVideoFormat Format, BOOL Active = TRUE); CChannel(LPCSTR Name, DWORD Freq, int ChannelNumber, eVideoFormat Format, BOOL Active = TRUE); - - CChannel(const CChannel& CopyFrom); - ~CChannel(); LPCSTR GetName() const; LPCSTR GetEPGName() const; DWORD GetFrequency() const; @@ -62,24 +59,9 @@ class CChannelList { - - public : - enum FileFormat { - FILE_FORMAT_ASCII = 0, - FILE_FORMAT_XML, - FILE_FORMAT_LASTONE - }; - -private: - //Just in case I change my mind later on the type of this - typedef std::vector<CChannel*> Channels; - -public : CChannelList(); - CChannelList(const CChannelList&); - CChannelList(DWORD dwBeginFrequency, DWORD dwEndFrequency, DWORD dwSteps); - ~CChannelList(); + virtual ~CChannelList() {}; void Clear(); @@ -93,77 +75,21 @@ DWORD GetHigherFrequency() const; - CChannel* GetChannel(int iChannelIndex) const; + SmartPtr<CChannel> GetChannel(int iChannelIndex) const; - CChannel* GetChannelByNumber(int iChannelNumber); //May return NULL + SmartPtr<CChannel> GetChannelByNumber(int iChannelNumber); //May return NULL - CChannel* GetChannelByFrequency(DWORD dwFreq); //May return NULL + SmartPtr<CChannel> GetChannelByFrequency(DWORD dwFreq); //May return NULL - inline BOOL AddChannel(LPCSTR szName, DWORD dwFreq, int iChannelNumber, int eFormat, BOOL bActive = TRUE) - { - return AddChannel(szName, dwFreq, iChannelNumber, (eVideoFormat)eFormat, bActive); - } - - - BOOL AddChannel(LPCSTR szName, DWORD dwFreq, int iChannelNumber, eVideoFormat eFormat, BOOL bActive = TRUE); - - BOOL AddChannel(LPCSTR szName, LPCSTR szEPGName, DWORD dwFreq, int iChannelNumber, eVideoFormat eFormat, BOOL bActive = TRUE); - - BOOL AddChannel(LPCSTR szName, DWORD dwFreq, eVideoFormat eFormat, BOOL bActive = TRUE); - - BOOL AddChannel(LPCSTR szName, LPCSTR szEPGName, DWORD dwFreq, eVideoFormat eFormat, BOOL bActive = TRUE); - - //Generates a name for you as the channels are not named - //in the channels.txt file (channels/country) - //It would be nice to use the comment next to the frequency - //but some are really too large.. - BOOL AddChannel(DWORD dwFrequency, int iChannelNumber, eVideoFormat eVideoFormat = VIDEOFORMAT_LAST_TV, BOOL bActive = TRUE); - //The given channel will be destroyed when list is cleared - BOOL AddChannel(CChannel*); + void AddChannel(SmartPtr<CChannel>); - BOOL RemoveChannel(int index); + void RemoveChannel(int index); - BOOL SetChannel(int index, CChannel* pChannel); + void SetChannel(int index, SmartPtr<CChannel> pChannel); - BOOL SwapChannels(int, int ); + void SwapChannels(int, int ); - int AddChannels(const CChannelList* const); - - BOOL WriteFile(LPCSTR, CChannelList::FileFormat) const; - - BOOL ReadFile(LPCSTR, CChannelList::FileFormat); - - - //Read/Write using the legacy "program.txt" file format - inline BOOL WriteASCII(LPCSTR szFilename) const {return WriteFile(szFilename, CChannelList::FILE_FORMAT_ASCII);}; - - inline BOOL ReadASCII(LPCSTR szFilename) {return ReadFile(szFilename, CChannelList::FILE_FORMAT_ASCII);}; - - inline BOOL WriteXML(LPCSTR szFilename) const {return WriteFile(szFilename, CChannelList::FILE_FORMAT_XML);}; - - inline BOOL ReadXML(LPCSTR szFilename) {return ReadFile(szFilename, CChannelList::FILE_FORMAT_XML);}; - - - //Shortcuts.. - inline LPCSTR GetChannelName(int index) const {return GetChannel(index)->GetName();}; - - inline LPCSTR GetChannelEPGName(int index) const {return GetChannel(index)->GetEPGName();}; - - inline BOOL GetChannelActive(int index) const {return GetChannel(index)->IsActive();}; - - inline void SetChannelActive(int index, BOOL bActive) - { - GetChannel(index)->SetActive(bActive); - } - - inline int GetChannelNumber(int index) const {return GetChannel(index)->GetChannelNumber();}; - - inline DWORD GetChannelFrequency(int index) const {return GetChannel(index)->GetFrequency();}; - - inline eVideoFormat GetChannelFormat(int index) const {return GetChannel(index)->GetFormat();}; - - protected : void SetMinChannelNumber(int); @@ -173,13 +99,8 @@ //when a modification to the list is done (by adding/removing channels) virtual void UpdateFields(); - virtual BOOL WriteASCIIImpl(FILE*) const= 0; - virtual BOOL ReadASCIIImpl(FILE*) = 0; - - virtual BOOL WriteXMLImpl(FILE*) const= 0; - virtual BOOL ReadXMLImpl(FILE*) = 0; - private: + typedef std::vector< SmartPtr<CChannel> > Channels; DWORD m_MinFrequency; DWORD m_MaxFrequency; @@ -199,21 +120,19 @@ ~CUserChannels(); -protected : + //Read/Write using the legacy "program.txt" file format + BOOL WriteFile(LPCSTR szFilename) const; + BOOL ReadFile(LPCSTR szFilename); +private : BOOL WriteASCIIImpl(FILE*) const; BOOL ReadASCIIImpl(FILE*); - - BOOL WriteXMLImpl(FILE*) const; - BOOL ReadXMLImpl(FILE*); - }; class CCountryList; class CCountryChannels : public CChannelList { - friend class CCountryList; public: @@ -225,15 +144,9 @@ const LPCSTR GetCountryName() const; const eVideoFormat GetCountryFormat() const; -protected : - - BOOL WriteASCIIImpl(FILE*) const; - BOOL ReadASCIIImpl(FILE*); - - BOOL WriteXMLImpl(FILE*) const; - BOOL ReadXMLImpl(FILE*); - private: + virtual BOOL WriteASCIIImpl(FILE*) const; + virtual BOOL ReadASCIIImpl(FILE*); std::string m_szName; eVideoFormat m_Format; }; @@ -241,10 +154,6 @@ class CCountryList { -private: - //could be a map too..would be better for lookups - typedef std::vector<CCountryChannels*> Countries; - public : CCountryList(); ~CCountryList(); @@ -265,27 +174,15 @@ inline DWORD GetHigherFrequency(int index) const {return GetChannels(index)->GetHigherFrequency();}; - //Adds the content of the given channel list - //(makes a deep copy) - BOOL AddChannels(LPCSTR szName, CChannelList*); - - //Makes a shallow copy only - BOOL AddChannels(CCountryChannels*); - - BOOL RemoveChannels(int); - void Clear(); - - BOOL ReadASCII(FILE*); BOOL ReadASCII(LPCSTR); - - BOOL WriteXML(FILE*) const; - BOOL WriteXML(LPCSTR) const; - private: - Countries m_Countries; + BOOL ReadASCIIImpl(FILE*); + //could be a map too..would be better for lookups + typedef std::vector<CCountryChannels*> Countries; + Countries m_Countries; }; Modified: trunk/DScaler/DScaler/EPG.cpp =================================================================== --- trunk/DScaler/DScaler/EPG.cpp 2009-03-26 13:47:59 UTC (rev 4551) +++ trunk/DScaler/DScaler/EPG.cpp 2009-03-26 16:44:23 UTC (rev 4552) @@ -1297,11 +1297,11 @@ } for (int i=0; (i < MyChannels.GetSize()); i++) { - if (!_stricmp(EPGName, MyChannels.GetChannelEPGName(i))) + if (!_stricmp(EPGName, MyChannels.GetChannel(i)->GetEPGName())) { if (Name) { - *Name = MyChannels.GetChannelName(i); + *Name = MyChannels.GetChannel(i)->GetName(); } if (Number) { Modified: trunk/DScaler/DScaler/ProgramList.cpp =================================================================== --- trunk/DScaler/DScaler/ProgramList.cpp 2009-03-26 13:47:59 UTC (rev 4551) +++ trunk/DScaler/DScaler/ProgramList.cpp 2009-03-26 16:44:23 UTC (rev 4552) @@ -112,7 +112,7 @@ //The implementation is now in Channels BOOL Load_Program_List_ASCII() { - return MyChannels.ReadASCII(SZ_DEFAULT_PROGRAMS_FILENAME); + return MyChannels.ReadFile(SZ_DEFAULT_PROGRAMS_FILENAME); } void Channel_SetCurrent() @@ -216,11 +216,11 @@ } -void UpdateDetails(HWND hDlg, const CChannel* const pChannel) +void UpdateDetails(HWND hDlg, SmartPtr<CChannel> pChannel) { static char sbuf[256]; MyInUpdate = TRUE; - if (NULL == pChannel) + if (!pChannel) { Edit_SetText(GetDlgItem(hDlg, IDC_NAME), ""); Edit_SetText(GetDlgItem(hDlg, IDC_EPGNAME), ""); @@ -1229,7 +1229,8 @@ Edit_GetText(GetDlgItem(hDlg, IDC_NAME), sbuf, 255); Edit_GetText(GetDlgItem(hDlg, IDC_EPGNAME), sbuf2, 255); BOOL Active = (Button_GetCheck(GetDlgItem(hDlg, IDC_ACTIVE)) == BST_CHECKED); - MyChannels.AddChannel(sbuf, sbuf2, Freq, Channel, (eVideoFormat)Format, Active); + SmartPtr<CChannel> NewChannel(new CChannel(sbuf, sbuf2, Freq, Channel, (eVideoFormat)Format, Active)); + MyChannels.AddChannel(NewChannel); CurrentProgram = ListBox_AddString(GetDlgItem(hDlg, IDC_PROGRAMLIST), sbuf); ListBox_SetCurSel(GetDlgItem(hDlg, IDC_PROGRAMLIST), CurrentProgram); MyInUpdate = FALSE; @@ -1337,7 +1338,7 @@ { TidyUp(hDlg); // try to write out programs - if (!MyChannels.WriteASCII(SZ_DEFAULT_PROGRAMS_FILENAME)) + if (!MyChannels.WriteFile(SZ_DEFAULT_PROGRAMS_FILENAME)) { CString dummy("Unable to write to file \n\""); dummy += SZ_DEFAULT_PROGRAMS_FILENAME; @@ -1357,7 +1358,7 @@ TidyUp(hDlg); // revert to previously saved channel list MyChannels.Clear(); - MyChannels.ReadASCII(SZ_DEFAULT_PROGRAMS_FILENAME); + MyChannels.ReadFile(SZ_DEFAULT_PROGRAMS_FILENAME); // revert to previous settings MyScanMode = OldScanMode; CountryCode = OldCountryCode; @@ -1469,7 +1470,7 @@ { if(NewChannel >= 0 && NewChannel < MyChannels.GetSize()) { - if (MyChannels.GetChannelFrequency(NewChannel) != 0) + if (MyChannels.GetChannel(NewChannel)->GetFrequency() != 0) { int OldChannel = CurrentProgram; @@ -1495,7 +1496,7 @@ CurrentProgram = NewChannel; if(MyChannels.GetChannel(CurrentProgram)->GetFormat() != -1) { - VideoFormat = MyChannels.GetChannelFormat(CurrentProgram); + VideoFormat = MyChannels.GetChannel(CurrentProgram)->GetFormat(); } else { @@ -1517,7 +1518,7 @@ for(int i = 0; i < 3; i++) { if(Providers_GetCurrentSource()->SetTunerFrequency( - MyChannels.GetChannelFrequency(CurrentProgram), + MyChannels.GetChannel(CurrentProgram)->GetFrequency(), VideoFormat)) { break; @@ -1566,7 +1567,7 @@ // look for next active channel ++CurrentProg; while(CurrentProg < MyChannels.GetSize() && - !MyChannels.GetChannelActive(CurrentProg)) + !MyChannels.GetChannel(CurrentProg)->IsActive()) { ++CurrentProg; } @@ -1576,7 +1577,7 @@ { CurrentProg = 0; while(CurrentProg < MyChannels.GetSize() && - !MyChannels.GetChannelActive(CurrentProg)) + !MyChannels.GetChannel(CurrentProg)->IsActive()) { ++CurrentProg; } @@ -1608,7 +1609,7 @@ // look for next active channel --CurrentProg; while(CurrentProg > -1 && - !MyChannels.GetChannelActive(CurrentProg)) + !MyChannels.GetChannel(CurrentProg)->IsActive()) { --CurrentProg; } @@ -1618,7 +1619,7 @@ { CurrentProg = MyChannels.GetSize() - 1; while(CurrentProg > -1 && - !MyChannels.GetChannelActive(CurrentProg)) + !MyChannels.GetChannel(CurrentProg)->IsActive()) { --CurrentProg; } @@ -1643,7 +1644,7 @@ { if(MyChannels.GetSize() > 0) { - if (MyChannels.GetChannelFrequency(PreviousProgram) != 0) + if (MyChannels.GetChannel(PreviousProgram)->GetFrequency() != 0) { Channel_Change(PreviousProgram); } @@ -1665,7 +1666,7 @@ // Find the channel the user typed. for (int j = 0; j < MyChannels.GetSize(); ++j) { - if (MyChannels.GetChannelFrequency(j) != 0 && int(MyChannels.GetChannelNumber(j)) == ChannelNumber) + if (MyChannels.GetChannel(j)->GetFrequency() != 0 && int(MyChannels.GetChannel(j)->GetChannelNumber()) == ChannelNumber) { found = TRUE; ChannelNumber = j; @@ -1713,18 +1714,18 @@ j = 0; for (int i = 0; (i < MyChannels.GetSize()) && (j < MAX_CHANNELS); i++) { - if ((MyChannels.GetChannelFrequency(i) != 0) && MyChannels.GetChannelActive(i)) + if ((MyChannels.GetChannel(i)->GetFrequency() != 0) && MyChannels.GetChannel(i)->IsActive()) { // Cut every 28 channels which is ok even when in 640x480 // For the first column, take into account the first items (InitialNbMenuItems) // but reduce by 1 because of the two line separators if ((j+InitialNbMenuItems-1) % 28) { - AppendMenu(hMenuChannels, MF_STRING | MF_ENABLED, IDM_CHANNEL_SELECT + j, MyChannels.GetChannelName(i)); + AppendMenu(hMenuChannels, MF_STRING | MF_ENABLED, IDM_CHANNEL_SELECT + j, MyChannels.GetChannel(i)->GetName()); } else { - AppendMenu(hMenuChannels, MF_STRING | MF_ENABLED | MF_MENUBARBREAK, IDM_CHANNEL_SELECT + j, MyChannels.GetChannelName(i)); + AppendMenu(hMenuChannels, MF_STRING | MF_ENABLED | MF_MENUBARBREAK, IDM_CHANNEL_SELECT + j, MyChannels.GetChannel(i)->GetName()); } j++; } @@ -1756,7 +1757,7 @@ for (int channelIndex = 0; channelIndex < MyChannels.GetSize() && (j < MAX_CHANNELS); channelIndex++) { - if ((MyChannels.GetChannelFrequency(channelIndex) != 0) && MyChannels.GetChannelActive(channelIndex)) + if ((MyChannels.GetChannel(channelIndex)->GetFrequency() != 0) && MyChannels.GetChannel(channelIndex)->IsActive()) { EnableMenuItem(hMenuChannels, IDM_CHANNEL_SELECT + j, bHasTuner ? MF_ENABLED : MF_GRAYED); CheckMenuItem(hMenuChannels, IDM_CHANNEL_SELECT + j, (CurrentProgram == channelIndex) ? MF_CHECKED : MF_UNCHECKED); @@ -1791,7 +1792,7 @@ { for (int channelIndex = 0; channelIndex < MyChannels.GetSize() && (j < MAX_CHANNELS); channelIndex++) { - if ((MyChannels.GetChannelFrequency(channelIndex) != 0) && MyChannels.GetChannelActive(channelIndex)) + if ((MyChannels.GetChannel(channelIndex)->GetFrequency() != 0) && MyChannels.GetChannel(channelIndex)->IsActive()) { if ((wMenuID - IDM_CHANNEL_SELECT) == j) { @@ -1896,5 +1897,3 @@ SmartPtr<CSettingsHolder> Holder(SettingsMaster->FindMsgHolder(WM_ANTIPLOP_GETVALUE)); return new CTreeSettingsGeneric("Anti Plop Settings", Holder); } - - Modified: trunk/DScaler/DScaler/ScheduledRecording.cpp =================================================================== --- trunk/DScaler/DScaler/ScheduledRecording.cpp 2009-03-26 13:47:59 UTC (rev 4551) +++ trunk/DScaler/DScaler/ScheduledRecording.cpp 2009-03-26 16:44:23 UTC (rev 4552) @@ -292,7 +292,7 @@ void CScheduledRecording::getChannels(std::vector<std::string> &channels) { CUserChannels MyChannels; - MyChannels.ReadASCII(SZ_DEFAULT_PROGRAMS_FILENAME); + MyChannels.ReadFile(SZ_DEFAULT_PROGRAMS_FILENAME); int count = MyChannels.GetSize(); @@ -662,8 +662,8 @@ { CUserChannels MyChannels; - MyChannels.ReadASCII(SZ_DEFAULT_PROGRAMS_FILENAME); - int channel_number = MyChannels.GetChannelNumber(++channel_index); + MyChannels.ReadFile(SZ_DEFAULT_PROGRAMS_FILENAME); + int channel_number = MyChannels.GetChannel(++channel_index)->GetChannelNumber(); Channel_ChangeToNumber(channel_number); Modified: trunk/DScaler/DScaler/Toolbars.cpp =================================================================== --- trunk/DScaler/DScaler/Toolbars.cpp 2009-03-26 13:47:59 UTC (rev 4551) +++ trunk/DScaler/DScaler/Toolbars.cpp 2009-03-26 16:44:23 UTC (rev 4552) @@ -55,9 +55,6 @@ #define new DEBUG_NEW #endif - -//typedef vector<CChannel*> CHANNELLIST; - extern CUserChannels MyChannels; extern long CurrentProgram; @@ -189,7 +186,7 @@ for(Channel = 0; Channel < ChannelListSize; Channel++) { - nIndex = SendMessage(GetDlgItem(hWnd, IDC_TOOLBAR_CHANNELS_LIST), CB_ADDSTRING, 0, (long)MyChannels.GetChannelName(Channel)); + nIndex = SendMessage(GetDlgItem(hWnd, IDC_TOOLBAR_CHANNELS_LIST), CB_ADDSTRING, 0, (long)MyChannels.GetChannel(Channel)->GetName()); SendMessage(GetDlgItem(hWnd, IDC_TOOLBAR_CHANNELS_LIST), CB_SETITEMDATA, nIndex, Channel); if (CurrentProgram == Channel) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ad...@us...> - 2009-03-29 15:11:48
|
Revision: 4561 http://deinterlace.svn.sourceforge.net/deinterlace/?rev=4561&view=rev Author: adcockj Date: 2009-03-29 15:11:44 +0000 (Sun, 29 Mar 2009) Log Message: ----------- Fixed some shared pointer issues and settings bugs Modified Paths: -------------- trunk/DScaler/DScaler/BT848Card.h trunk/DScaler/DScaler/BT848Card_Types.cpp trunk/DScaler/DScaler/BT848Source.cpp trunk/DScaler/DScaler/BT848Source_UI.cpp trunk/DScaler/DScaler/CX2388xSource_UI.cpp trunk/DScaler/DScaler/PCICard.cpp trunk/DScaler/DScaler/PCICard.h trunk/DScaler/DScaler/SAA7134Source_UI.cpp Modified: trunk/DScaler/DScaler/BT848Card.h =================================================================== --- trunk/DScaler/DScaler/BT848Card.h 2009-03-28 21:43:51 UTC (rev 4560) +++ trunk/DScaler/DScaler/BT848Card.h 2009-03-29 15:11:44 UTC (rev 4561) @@ -299,7 +299,7 @@ void SetGeometryEvenOdd(BOOL bOdd, int wHScale, int wVScale, int wHActive, int wVActive, int wHDelay, int wVDelay, BYTE bCrop); void SetPLL(ePLLFreq PLL); BOOL IsCCIRSource(int nInput); - SmartPtr<const TCardType> GetCardSetup(); + const TCardType* GetCardSetup(); void StandardBT848InputSelect(int nInput); void Sasem4ChannelInputSelect(int nInput); Modified: trunk/DScaler/DScaler/BT848Card_Types.cpp =================================================================== --- trunk/DScaler/DScaler/BT848Card_Types.cpp 2009-03-28 21:43:51 UTC (rev 4560) +++ trunk/DScaler/DScaler/BT848Card_Types.cpp 2009-03-29 15:11:44 UTC (rev 4561) @@ -4770,7 +4770,7 @@ (*this.*m_TVCards[m_CardType].pInputSwitchFunction)(nInput); } -SmartPtr<const CBT848Card::TCardType> CBT848Card::GetCardSetup() +const CBT848Card::TCardType* CBT848Card::GetCardSetup() { return &(m_TVCards[m_CardType]); } Modified: trunk/DScaler/DScaler/BT848Source.cpp =================================================================== --- trunk/DScaler/DScaler/BT848Source.cpp 2009-03-28 21:43:51 UTC (rev 4560) +++ trunk/DScaler/DScaler/BT848Source.cpp 2009-03-29 15:11:44 UTC (rev 4561) @@ -360,10 +360,10 @@ m_Settings.push_back(m_Balance); // save per input removed - m_Settings.push_back(NULL); + m_Settings.push_back(new CYesNoSetting("", FALSE, "", "")); // save per format removed - m_Settings.push_back(NULL); + m_Settings.push_back(new CYesNoSetting("", FALSE, "", "")); m_AudioSource2 = new CAudioSource2Setting(this, "Audio Source 2", AUDIOINPUT_MUTE, AUDIOINPUT_TUNER, AUDIOINPUT_STEREO, IniSection, pAudioSource); m_Settings.push_back(m_AudioSource2); Modified: trunk/DScaler/DScaler/BT848Source_UI.cpp =================================================================== --- trunk/DScaler/DScaler/BT848Source_UI.cpp 2009-03-28 21:43:51 UTC (rev 4560) +++ trunk/DScaler/DScaler/BT848Source_UI.cpp 2009-03-29 15:11:44 UTC (rev 4561) @@ -1198,7 +1198,7 @@ break; case IDM_HWINFO: - DialogBoxParam(hResourceInst, MAKEINTRESOURCE(IDD_HWINFO), hWnd, CBT848Card::ChipSettingProc, (LPARAM)m_pBT848Card); + DialogBoxParam(hResourceInst, MAKEINTRESOURCE(IDD_HWINFO), hWnd, CBT848Card::ChipSettingProc, (LPARAM)(CBT848Card*)m_pBT848Card); break; case IDM_AUDIOSETTINGS: Modified: trunk/DScaler/DScaler/CX2388xSource_UI.cpp =================================================================== --- trunk/DScaler/DScaler/CX2388xSource_UI.cpp 2009-03-28 21:43:51 UTC (rev 4560) +++ trunk/DScaler/DScaler/CX2388xSource_UI.cpp 2009-03-29 15:11:44 UTC (rev 4561) @@ -330,7 +330,7 @@ break; case IDM_HWINFO: - DialogBoxParam(hResourceInst, MAKEINTRESOURCE(IDD_HWINFO), hWnd, CCX2388xCard::ChipSettingProc, (LPARAM)m_pCard); + DialogBoxParam(hResourceInst, MAKEINTRESOURCE(IDD_HWINFO), hWnd, CCX2388xCard::ChipSettingProc, (LPARAM)(CCX2388xCard*)m_pCard); break; case IDM_SOURCE_INPUT1: Modified: trunk/DScaler/DScaler/PCICard.cpp =================================================================== --- trunk/DScaler/DScaler/PCICard.cpp 2009-03-28 21:43:51 UTC (rev 4560) +++ trunk/DScaler/DScaler/PCICard.cpp 2009-03-29 15:11:44 UTC (rev 4561) @@ -28,7 +28,7 @@ #include "DebugLog.h" #include "BuildNum.h" -CPCICard::CPCICard(CHardwareDriver* pDriver) : +CPCICard::CPCICard(SmartPtr<CHardwareDriver> pDriver) : m_pDriver(pDriver), m_MemoryAddress(0), m_MemoryLength(0), Modified: trunk/DScaler/DScaler/PCICard.h =================================================================== --- trunk/DScaler/DScaler/PCICard.h 2009-03-28 21:43:51 UTC (rev 4560) +++ trunk/DScaler/DScaler/PCICard.h 2009-03-29 15:11:44 UTC (rev 4561) @@ -43,7 +43,7 @@ */ BOOL OpenPCICard(WORD dwVendorID, WORD dwDeviceID, int dwDeviceIndex); protected: - CPCICard(CHardwareDriver* pDriver); + CPCICard(SmartPtr<CHardwareDriver> pDriver); ~CPCICard(); /// Close the card and unmap memory void ClosePCICard(); Modified: trunk/DScaler/DScaler/SAA7134Source_UI.cpp =================================================================== --- trunk/DScaler/DScaler/SAA7134Source_UI.cpp 2009-03-28 21:43:51 UTC (rev 4560) +++ trunk/DScaler/DScaler/SAA7134Source_UI.cpp 2009-03-29 15:11:44 UTC (rev 4561) @@ -1403,7 +1403,7 @@ break; case IDM_HWINFO: - DialogBoxParam(hResourceInst, MAKEINTRESOURCE(IDD_HWINFO), hWnd, CSAA7134Card::ChipSettingProc, (LPARAM)m_pSAA7134Card); + DialogBoxParam(hResourceInst, MAKEINTRESOURCE(IDD_HWINFO), hWnd, CSAA7134Card::ChipSettingProc, (LPARAM)(CSAA7134Card*)m_pSAA7134Card); break; case IDM_ADV_VIDEOSETTINGS: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ad...@us...> - 2009-03-31 08:00:14
|
Revision: 4563 http://deinterlace.svn.sourceforge.net/deinterlace/?rev=4563&view=rev Author: adcockj Date: 2009-03-31 08:00:05 +0000 (Tue, 31 Mar 2009) Log Message: ----------- Avoid having NULL Settings added to keep spacing aligned with API in SettingsHolder, use CEmptySetting instead Modified Paths: -------------- trunk/DScaler/DScaler/BT848Source.cpp trunk/DScaler/DScaler/CX2388xSource.cpp trunk/DScaler/DScaler/Setting.cpp trunk/DScaler/DScaler/Setting.h Modified: trunk/DScaler/DScaler/BT848Source.cpp =================================================================== --- trunk/DScaler/DScaler/BT848Source.cpp 2009-03-31 07:58:30 UTC (rev 4562) +++ trunk/DScaler/DScaler/BT848Source.cpp 2009-03-31 08:00:05 UTC (rev 4563) @@ -360,10 +360,10 @@ m_Settings.push_back(m_Balance); // save per input removed - m_Settings.push_back(new CYesNoSetting("", FALSE, "", "")); + m_Settings.push_back(new CEmptySetting); // save per format removed - m_Settings.push_back(new CYesNoSetting("", FALSE, "", "")); + m_Settings.push_back(new CEmptySetting); m_AudioSource2 = new CAudioSource2Setting(this, "Audio Source 2", AUDIOINPUT_MUTE, AUDIOINPUT_TUNER, AUDIOINPUT_STEREO, IniSection, pAudioSource); m_Settings.push_back(m_AudioSource2); Modified: trunk/DScaler/DScaler/CX2388xSource.cpp =================================================================== --- trunk/DScaler/DScaler/CX2388xSource.cpp 2009-03-31 07:58:30 UTC (rev 4562) +++ trunk/DScaler/DScaler/CX2388xSource.cpp 2009-03-31 08:00:05 UTC (rev 4563) @@ -278,13 +278,13 @@ m_Settings.push_back(m_TunerType); // save per input removed - m_Settings.push_back(NULL); + m_Settings.push_back(new CEmptySetting); // save per format removed - m_Settings.push_back(NULL); + m_Settings.push_back(new CEmptySetting); // save per channel removed - m_Settings.push_back(NULL); + m_Settings.push_back(new CEmptySetting); m_IsVideoProgressive = new CIsVideoProgressiveSetting(this, "Is Video Progressive", FALSE, IniSection, pH3DGroup); m_Settings.push_back(m_IsVideoProgressive); Modified: trunk/DScaler/DScaler/Setting.cpp =================================================================== --- trunk/DScaler/DScaler/Setting.cpp 2009-03-31 07:58:30 UTC (rev 4562) +++ trunk/DScaler/DScaler/Setting.cpp 2009-03-31 08:00:05 UTC (rev 4563) @@ -933,6 +933,11 @@ } } +CEmptySetting::CEmptySetting() : + CYesNoSetting("", FALSE, "", "") +{ +} + CSettingWrapper::CSettingWrapper(SETTING* pSetting, CSettingGroup* pGroup) : CSimpleSetting(pSetting->szDisplayName, pSetting->szIniSection, pSetting->szIniEntry, pGroup), m_Setting(pSetting) Modified: trunk/DScaler/DScaler/Setting.h =================================================================== --- trunk/DScaler/DScaler/Setting.h 2009-03-31 07:58:30 UTC (rev 4562) +++ trunk/DScaler/DScaler/Setting.h 2009-03-31 08:00:05 UTC (rev 4563) @@ -245,6 +245,13 @@ }; +class CEmptySetting : public CYesNoSetting +{ +public: + CEmptySetting(); +}; + + /// This class should be used to store the value of all string settings within the /// main DScaler app, using this class means that the allocated string gets deleted properly on exit class SettingStringValue This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ad...@us...> - 2009-04-03 09:09:41
|
Revision: 4564 http://deinterlace.svn.sourceforge.net/deinterlace/?rev=4564&view=rev Author: adcockj Date: 2009-04-03 09:09:35 +0000 (Fri, 03 Apr 2009) Log Message: ----------- Fixed some more shared pointer issues Modified Paths: -------------- trunk/DScaler/DScaler/BT848Card.cpp trunk/DScaler/DScaler/BT848Card_Tuner.cpp trunk/DScaler/DScaler/CX2388xCard.cpp trunk/DScaler/DScaler/CX2388xCard.h trunk/DScaler/DScaler/CX2388xCard_H3D.cpp trunk/DScaler/DScaler/CX2388xCard_Tuner.cpp trunk/DScaler/DScaler/CX2388xSource.cpp trunk/DScaler/DScaler/GenericTuner.cpp trunk/DScaler/DScaler/ITuner.cpp trunk/DScaler/DScaler/ITuner.h trunk/DScaler/DScaler/MT2032.cpp trunk/DScaler/DScaler/MT2050.cpp trunk/DScaler/DScaler/SAA7134Card.cpp trunk/DScaler/DScaler/SAA7134Card.h trunk/DScaler/DScaler/SAA7134Card_Tuner.cpp trunk/DScaler/DScaler/SAA7134Source_UI.cpp trunk/DScaler/DScaler/TDA8275.cpp Modified: trunk/DScaler/DScaler/BT848Card.cpp =================================================================== --- trunk/DScaler/DScaler/BT848Card.cpp 2009-03-31 08:00:05 UTC (rev 4563) +++ trunk/DScaler/DScaler/BT848Card.cpp 2009-04-03 09:09:35 UTC (rev 4564) @@ -102,7 +102,6 @@ CBT848Card::CBT848Card(SmartPtr<CHardwareDriver> pDriver) : CPCICard(pDriver), m_CardType(TVCARD_UNKNOWN), - m_Tuner(NULL), m_CurrentInput(0), m_TunerType("n/a"), m_AudioDecoderType("n/a"), Modified: trunk/DScaler/DScaler/BT848Card_Tuner.cpp =================================================================== --- trunk/DScaler/DScaler/BT848Card_Tuner.cpp 2009-03-31 08:00:05 UTC (rev 4563) +++ trunk/DScaler/DScaler/BT848Card_Tuner.cpp 2009-04-03 09:09:35 UTC (rev 4564) @@ -149,7 +149,7 @@ { if (pExternalIFDemodulator->SetDetectedI2CAddress(m_I2CBus)) { - m_Tuner->AttachIFDem(pExternalIFDemodulator, TRUE); + m_Tuner->AttachIFDem(pExternalIFDemodulator); pExternalIFDemodulator->Init(TRUE, videoFormat); } else Modified: trunk/DScaler/DScaler/CX2388xCard.cpp =================================================================== --- trunk/DScaler/DScaler/CX2388xCard.cpp 2009-03-31 08:00:05 UTC (rev 4563) +++ trunk/DScaler/DScaler/CX2388xCard.cpp 2009-04-03 09:09:35 UTC (rev 4564) @@ -41,11 +41,9 @@ using namespace std; -CCX2388xCard::CCX2388xCard(CHardwareDriver* pDriver) : +CCX2388xCard::CCX2388xCard(SmartPtr<CHardwareDriver> pDriver) : CPCICard(pDriver), m_CardType(CX2388xCARD_UNKNOWN), - m_Tuner(NULL), - m_SAA7118(NULL), m_RISCIsRunning(FALSE), m_CurrentInput(0), m_CurrentAudioStandard(AUDIO_STANDARD_AUTO), @@ -60,12 +58,6 @@ CCX2388xCard::~CCX2388xCard() { - delete m_I2CBus; - delete m_AudioDecoder; - delete m_AudioControls; - delete m_Tuner; - delete m_SAA7118; - ClosePCICard(); } Modified: trunk/DScaler/DScaler/CX2388xCard.h =================================================================== --- trunk/DScaler/DScaler/CX2388xCard.h 2009-03-31 08:00:05 UTC (rev 4563) +++ trunk/DScaler/DScaler/CX2388xCard.h 2009-04-03 09:09:35 UTC (rev 4564) @@ -149,7 +149,7 @@ } TParseCardInfo; public: - CCX2388xCard(CHardwareDriver* pDriver); + CCX2388xCard(SmartPtr<CHardwareDriver> pDriver); ~CCX2388xCard(); void SetCardType(int CardType); @@ -225,7 +225,7 @@ void Sleep(); void I2CLock(); void I2CUnlock(); - ITuner* GetTuner() const; + SmartPtr<ITuner> GetTuner() const; // Audio void AudioInit(int nInput, eVideoFormat TVFormat, eCX2388xAudioStandard Standard, eCX2388xStereoType StereoType); @@ -300,13 +300,13 @@ private: eCX2388xCardId m_CardType; - CI2CBus* m_I2CBus; - II2CTuner* m_Tuner; - CSAA7118* m_SAA7118; + SmartPtr<CI2CBus> m_I2CBus; + SmartPtr<II2CTuner> m_Tuner; + SmartPtr<CSAA7118> m_SAA7118; BOOL m_RISCIsRunning; - CAudioDecoder* m_AudioDecoder; - CAudioControls* m_AudioControls; + SmartPtr<CAudioDecoder> m_AudioDecoder; + SmartPtr<CAudioControls> m_AudioControls; std::string m_TunerType; int m_CurrentInput; DWORD m_FilterDefault; Modified: trunk/DScaler/DScaler/CX2388xCard_H3D.cpp =================================================================== --- trunk/DScaler/DScaler/CX2388xCard_H3D.cpp 2009-03-31 08:00:05 UTC (rev 4563) +++ trunk/DScaler/DScaler/CX2388xCard_H3D.cpp 2009-04-03 09:09:35 UTC (rev 4564) @@ -484,7 +484,7 @@ { // had better check that we've been initilaized here as // this is a public function - if(m_SAA7118 != NULL) + if(m_SAA7118) { // get existing sharpness and set luma comb filter BYTE LuminaceControl = m_SAA7118->GetRegister(0x09) & 0xF0; Modified: trunk/DScaler/DScaler/CX2388xCard_Tuner.cpp =================================================================== --- trunk/DScaler/DScaler/CX2388xCard_Tuner.cpp 2009-03-31 08:00:05 UTC (rev 4563) +++ trunk/DScaler/DScaler/CX2388xCard_Tuner.cpp 2009-04-03 09:09:35 UTC (rev 4564) @@ -41,10 +41,9 @@ BOOL CCX2388xCard::InitTuner(eTunerId tunerId) { // clean up if we get called twice - if(m_Tuner != NULL) + if(m_Tuner) { - delete m_Tuner; - m_Tuner = NULL; + m_Tuner = 0L; } switch (tunerId) @@ -91,7 +90,7 @@ } // Look for possible external IF demodulator - IExternalIFDemodulator *pExternalIFDemodulator = NULL; + SmartPtr<IExternalIFDemodulator> pExternalIFDemodulator; // TDA8275s are paired with a TDA8290. if (tunerId == TUNER_TDA8275) @@ -100,16 +99,16 @@ pExternalIFDemodulator = CTDA8290::CreateDetectedTDA8290(m_I2CBus); } - if (pExternalIFDemodulator == NULL) + if (!pExternalIFDemodulator) { // bUseTDA9887 is the setting in CX2388xCards.ini. if (m_CX2388xCards[m_CardType].bUseTDA9887) { // Have a TDA9887 object detected and created. - CTDA9887Ex *pTDA9887 = CTDA9887Ex::CreateDetectedTDA9887Ex(m_I2CBus); + SmartPtr<CTDA9887Ex> pTDA9887 = CTDA9887Ex::CreateDetectedTDA9887Ex(m_I2CBus); // If a TDA9887 was found. - if (pTDA9887 != NULL) + if (pTDA9887) { // Set card specific modes that were parsed from CX2388xCards.ini. size_t count = m_CX2388xCards[m_CardType].tda9887Modes.size(); @@ -126,10 +125,10 @@ eVideoFormat videoFormat = m_Tuner->GetDefaultVideoFormat(); - if (pExternalIFDemodulator != NULL) + if (pExternalIFDemodulator) { // Attach the IF demodulator to the tuner. - m_Tuner->AttachIFDem(pExternalIFDemodulator, TRUE); + m_Tuner->AttachIFDem(pExternalIFDemodulator); // Let the IF demodulator know of pre-initialization. pExternalIFDemodulator->Init(TRUE, videoFormat); } @@ -159,7 +158,7 @@ } } - if (pExternalIFDemodulator != NULL) + if (pExternalIFDemodulator) { //End initialization pExternalIFDemodulator->Init(FALSE, videoFormat); @@ -168,17 +167,16 @@ if (!bFoundTuner) { LOG(1,"Tuner: No tuner found at I2C addresses 0xC0-0xCF"); - - delete m_Tuner; m_Tuner = new CNoTuner(); m_TunerType = "None "; } return bFoundTuner; } -ITuner* CCX2388xCard::GetTuner() const +SmartPtr<ITuner> CCX2388xCard::GetTuner() const { - return m_Tuner; + SmartPtr<ITuner> RetVal(m_Tuner); + return RetVal; } string CCX2388xCard::GetTunerType() Modified: trunk/DScaler/DScaler/CX2388xSource.cpp =================================================================== --- trunk/DScaler/DScaler/CX2388xSource.cpp 2009-03-31 08:00:05 UTC (rev 4563) +++ trunk/DScaler/DScaler/CX2388xSource.cpp 2009-04-03 09:09:35 UTC (rev 4564) @@ -1562,7 +1562,7 @@ { // be a bit defensive here to avoid a possible // crash - if(m_pCard->GetTuner() != NULL) + if(m_pCard->GetTuner()) { eVideoFormat videoFormat = m_pCard->GetTuner()->GetDefaultVideoFormat(); m_VideoFormat->ChangeDefault(videoFormat); Modified: trunk/DScaler/DScaler/GenericTuner.cpp =================================================================== --- trunk/DScaler/DScaler/GenericTuner.cpp 2009-03-31 08:00:05 UTC (rev 4563) +++ trunk/DScaler/DScaler/GenericTuner.cpp 2009-04-03 09:09:35 UTC (rev 4564) @@ -554,14 +554,14 @@ if (m_I2CBus != NULL) { - if (m_ExternalIFDemodulator != NULL) + if (m_ExternalIFDemodulator) { m_ExternalIFDemodulator->TunerSet(TRUE, videoFormat); } BOOL result = m_I2CBus->Write(buffer, sizeof(buffer)); - if (m_ExternalIFDemodulator != NULL) + if (m_ExternalIFDemodulator) { m_ExternalIFDemodulator->TunerSet(FALSE, videoFormat); } @@ -615,7 +615,7 @@ { // not working but needed for FM Radio /* - if (m_ExternalIFDemodulator != NULL) + if (m_ExternalIFDemodulator) { m_ExternalIFDemodulator->TunerSet(TRUE, VIDEOFORMAT_LASTONE+1); } @@ -624,7 +624,7 @@ BOOL result = m_I2CBus->Write(buffer, sizeof(buffer)); /* - if (m_ExternalIFDemodulator != NULL) + if (m_ExternalIFDemodulator) { m_ExternalIFDemodulator->TunerSet(FALSE, VIDEOFORMAT_LASTONE+1); } @@ -675,7 +675,7 @@ { if (m_I2CBus != NULL) { - if (m_ExternalIFDemodulator != NULL) + if (m_ExternalIFDemodulator) { eTunerAFCStatus AFCStatus = m_ExternalIFDemodulator->GetAFCStatus(nFreqDeviation); return AFCStatus; Modified: trunk/DScaler/DScaler/ITuner.cpp =================================================================== --- trunk/DScaler/DScaler/ITuner.cpp 2009-03-31 08:00:05 UTC (rev 4563) +++ trunk/DScaler/DScaler/ITuner.cpp 2009-04-03 09:09:35 UTC (rev 4564) @@ -35,22 +35,15 @@ ITuner::ITuner() { - m_ExternalIFDemodulator = NULL; - m_bFreeIFDemodulatorOnDestruction = FALSE; } ITuner::~ITuner() { - if (m_bFreeIFDemodulatorOnDestruction && (m_ExternalIFDemodulator != NULL)) - { - delete m_ExternalIFDemodulator; - } } -void ITuner::AttachIFDem(IExternalIFDemodulator* pExternalIFDemodulator, BOOL bFreeOnDestruction) +void ITuner::AttachIFDem(SmartPtr<IExternalIFDemodulator> pExternalIFDemodulator) { m_ExternalIFDemodulator = pExternalIFDemodulator; - m_bFreeIFDemodulatorOnDestruction = bFreeOnDestruction; } Modified: trunk/DScaler/DScaler/ITuner.h =================================================================== --- trunk/DScaler/DScaler/ITuner.h 2009-03-31 08:00:05 UTC (rev 4563) +++ trunk/DScaler/DScaler/ITuner.h 2009-04-03 09:09:35 UTC (rev 4564) @@ -88,11 +88,10 @@ //Sets frequency deviation from optimum if there is a carrier (e.g. -62500 or 125000 Hz) virtual eTunerAFCStatus GetAFCStatus(long &nFreqDeviation) = 0; - virtual void AttachIFDem(IExternalIFDemodulator* pExternalIFDemodulator, BOOL bFreeOnDestruction = FALSE); + virtual void AttachIFDem(SmartPtr<IExternalIFDemodulator> pExternalIFDemodulator); protected: - IExternalIFDemodulator* m_ExternalIFDemodulator; - BOOL m_bFreeIFDemodulatorOnDestruction; + SmartPtr<IExternalIFDemodulator> m_ExternalIFDemodulator; }; Modified: trunk/DScaler/DScaler/MT2032.cpp =================================================================== --- trunk/DScaler/DScaler/MT2032.cpp 2009-03-31 08:00:05 UTC (rev 4563) +++ trunk/DScaler/DScaler/MT2032.cpp 2009-04-03 09:09:35 UTC (rev 4564) @@ -92,7 +92,7 @@ { int xogc, xok = 0; - if (m_ExternalIFDemodulator != NULL) + if (m_ExternalIFDemodulator) { m_ExternalIFDemodulator->Init(TRUE, m_DefaultVideoFormat); } @@ -138,7 +138,7 @@ } while (xok != 1); - if (m_ExternalIFDemodulator != NULL) + if (m_ExternalIFDemodulator) { m_ExternalIFDemodulator->Init(FALSE, m_DefaultVideoFormat); } @@ -385,7 +385,7 @@ return; } - if (m_ExternalIFDemodulator != NULL) + if (m_ExternalIFDemodulator) { m_ExternalIFDemodulator->TunerSet(TRUE, videoFormat); } @@ -427,7 +427,7 @@ m_Locked = (lock==6)?TRUE:FALSE; - if (m_ExternalIFDemodulator != NULL) + if (m_ExternalIFDemodulator) { m_ExternalIFDemodulator->TunerSet(FALSE, videoFormat); } @@ -500,7 +500,7 @@ eTunerAFCStatus CMT2032::GetAFCStatus(long &nFreqDeviation) { eTunerAFCStatus AFCStatus = TUNER_AFC_NOTSUPPORTED; - if (m_ExternalIFDemodulator != NULL) + if (m_ExternalIFDemodulator) { AFCStatus = m_ExternalIFDemodulator->GetAFCStatus(nFreqDeviation); } Modified: trunk/DScaler/DScaler/MT2050.cpp =================================================================== --- trunk/DScaler/DScaler/MT2050.cpp 2009-03-31 08:00:05 UTC (rev 4563) +++ trunk/DScaler/DScaler/MT2050.cpp 2009-04-03 09:09:35 UTC (rev 4564) @@ -90,7 +90,7 @@ { int SRO, xok = 0; - if (m_ExternalIFDemodulator != NULL) + if (m_ExternalIFDemodulator) { m_ExternalIFDemodulator->Init(TRUE, m_DefaultVideoFormat); } @@ -123,7 +123,7 @@ LOG(1, "MT2050: SRO Crystal problem - tuner will not function!"); } - if (m_ExternalIFDemodulator != NULL) + if (m_ExternalIFDemodulator) { m_ExternalIFDemodulator->Init(FALSE, m_DefaultVideoFormat); } @@ -266,7 +266,7 @@ buf [4] = 64 + div2a; } - if (m_ExternalIFDemodulator != NULL) + if (m_ExternalIFDemodulator) { m_ExternalIFDemodulator->TunerSet(TRUE, videoFormat); } @@ -293,7 +293,7 @@ nlock++; } while(nlock < 100); - if (m_ExternalIFDemodulator != NULL) + if (m_ExternalIFDemodulator) { m_ExternalIFDemodulator->TunerSet(FALSE, videoFormat); } @@ -341,7 +341,7 @@ eTunerAFCStatus CMT2050::GetAFCStatus(long &nFreqDeviation) { eTunerAFCStatus AFCStatus = TUNER_AFC_NOTSUPPORTED; - if (m_ExternalIFDemodulator != NULL) + if (m_ExternalIFDemodulator) { AFCStatus = m_ExternalIFDemodulator->GetAFCStatus(nFreqDeviation); } Modified: trunk/DScaler/DScaler/SAA7134Card.cpp =================================================================== --- trunk/DScaler/DScaler/SAA7134Card.cpp 2009-03-31 08:00:05 UTC (rev 4563) +++ trunk/DScaler/DScaler/SAA7134Card.cpp 2009-04-03 09:09:35 UTC (rev 4564) @@ -55,18 +55,17 @@ #define new DEBUG_NEW #endif -CSAA7134Card::CSAA7134Card(CHardwareDriver* pDriver) : +CSAA7134Card::CSAA7134Card(SmartPtr<CHardwareDriver> pDriver) : CPCICard(pDriver), m_CardType(SAA7134CARDID_UNKNOWN), - m_Tuner(NULL), m_PreparedRegions(0x00), m_VideoStandard(VIDEOSTANDARD_INVALID), m_bAudioLineReservedForMute(FALSE), + m_I2CBus(new CSAA7134I2CBus(this)), m_bStereoExternalLines(FALSE) { m_LastTriggerError = 0UL; - m_I2CBus = new CSAA7134I2CBus(this); } @@ -76,9 +75,6 @@ WriteDword(SAA7134_IRQ2, 0UL); MaskDataDword(SAA7134_MAIN_CTRL, 0, 0x000000FF); - delete m_I2CBus; - delete m_Tuner; - ClosePCICard(); } Modified: trunk/DScaler/DScaler/SAA7134Card.h =================================================================== --- trunk/DScaler/DScaler/SAA7134Card.h 2009-03-31 08:00:05 UTC (rev 4563) +++ trunk/DScaler/DScaler/SAA7134Card.h 2009-04-03 09:09:35 UTC (rev 4564) @@ -190,7 +190,7 @@ public: - CSAA7134Card(CHardwareDriver* pDriver); + CSAA7134Card(SmartPtr<CHardwareDriver> pDriver); ~CSAA7134Card(); @@ -209,7 +209,7 @@ std::string GetChipType(); std::string GetTunerType(); - ITuner* GetTuner() const; + SmartPtr<ITuner> GetTuner() const; int GetNumInputs(); std::string GetInputName(int nVideoSource); @@ -435,13 +435,13 @@ BOOL IsCCIRSource(int nInput); const TCardType* GetCardSetup(); - void StandardSAA7134InputSelect(int nInput); + void StandardSAA7134InputSelect(int nInput); private: /// Holds the list of all cards static const TCardType m_SAA7134UnknownCard; - static std::vector<CCardTypeEx> m_SAA713xCards; + static std::vector<CCardTypeEx> m_SAA713xCards; static const HCParser::CParseConstant k_parseAudioPinConstants[]; static const HCParser::CParseConstant k_parseInputTypeConstants[]; @@ -453,22 +453,22 @@ static const HCParser::CParseTag k_parseCard[]; static const HCParser::CParseTag k_parseCardList[]; - eSAA7134CardId m_CardType; - std::string m_TunerType; + eSAA7134CardId m_CardType; + std::string m_TunerType; - CI2CBus* m_I2CBus; - II2CTuner* m_Tuner; + SmartPtr<CI2CBus> m_I2CBus; + SmartPtr<II2CTuner> m_Tuner; /// Stores amount of memory assigned to DMA - DWORD m_DMAChannelMemorySize[7]; + DWORD m_DMAChannelMemorySize[7]; /// Stores regions prepared for DMA BYTE m_PreparedRegions; - DWORD m_LastTriggerError; + DWORD m_LastTriggerError; - eVideoStandard m_VideoStandard; + eVideoStandard m_VideoStandard; - eAudioInputSource m_AudioInputSource; + eAudioInputSource m_AudioInputSource; BOOL m_bAudioLineReservedForMute; BOOL m_bStereoExternalLines; }; Modified: trunk/DScaler/DScaler/SAA7134Card_Tuner.cpp =================================================================== --- trunk/DScaler/DScaler/SAA7134Card_Tuner.cpp 2009-03-31 08:00:05 UTC (rev 4563) +++ trunk/DScaler/DScaler/SAA7134Card_Tuner.cpp 2009-04-03 09:09:35 UTC (rev 4564) @@ -49,10 +49,9 @@ BOOL CSAA7134Card::InitTuner(eTunerId tunerId) { // clean up if we get called twice - if (m_Tuner != NULL) + if (m_Tuner) { - delete m_Tuner; - m_Tuner = NULL; + m_Tuner = 0L; } // Create a tuner object for the selected tuner. @@ -95,7 +94,7 @@ } // Look for possible external IF demodulator - IExternalIFDemodulator* pExternalIFDemodulator = NULL; + SmartPtr<IExternalIFDemodulator> pExternalIFDemodulator; // TDA8275s are paired with a TDA8290. if (tunerId == TUNER_TDA8275) @@ -104,16 +103,16 @@ pExternalIFDemodulator = CTDA8290::CreateDetectedTDA8290(m_I2CBus); } - if (pExternalIFDemodulator == NULL) + if (!pExternalIFDemodulator) { // bUseTDA9887 is the setting in SAA713xCards.ini. if (m_SAA713xCards[m_CardType].bUseTDA9887) { // Have a TDA9887 object detected and created. - CTDA9887Ex *pTDA9887Ex = CTDA9887Ex::CreateDetectedTDA9887Ex(m_I2CBus); + SmartPtr<CTDA9887Ex> pTDA9887Ex = CTDA9887Ex::CreateDetectedTDA9887Ex(m_I2CBus); // If a TDA9887 was found. - if (pTDA9887Ex != NULL) + if (pTDA9887Ex) { // Set card specific modes that were parsed from SAA713xCards.ini. size_t count = m_SAA713xCards[m_CardType].tda9887Modes.size(); @@ -130,10 +129,10 @@ eVideoFormat videoFormat = m_Tuner->GetDefaultVideoFormat(); - if (pExternalIFDemodulator != NULL) + if (pExternalIFDemodulator) { // Attach the IF demodulator to the tuner. - m_Tuner->AttachIFDem(pExternalIFDemodulator, TRUE); + m_Tuner->AttachIFDem(pExternalIFDemodulator); // Let the IF demodulator know of pre-initialization. pExternalIFDemodulator->Init(TRUE, videoFormat); } @@ -161,7 +160,7 @@ } } - if (pExternalIFDemodulator != NULL) + if (pExternalIFDemodulator) { // End initialization pExternalIFDemodulator->Init(FALSE, videoFormat); @@ -171,7 +170,6 @@ { LOG(1,"Tuner: No tuner found at I2C addresses 0xC0-0xCF"); - delete m_Tuner; m_Tuner = new CNoTuner(); m_TunerType = "None "; } @@ -179,9 +177,10 @@ } -ITuner* CSAA7134Card::GetTuner() const +SmartPtr<ITuner> CSAA7134Card::GetTuner() const { - return m_Tuner; + SmartPtr<ITuner> RetVal(m_Tuner); + return RetVal; } Modified: trunk/DScaler/DScaler/SAA7134Source_UI.cpp =================================================================== --- trunk/DScaler/DScaler/SAA7134Source_UI.cpp 2009-03-31 08:00:05 UTC (rev 4563) +++ trunk/DScaler/DScaler/SAA7134Source_UI.cpp 2009-04-03 09:09:35 UTC (rev 4564) @@ -1553,7 +1553,7 @@ { // be a bit defensive here to avoid a possible // crash - if(m_pSAA7134Card->GetTuner() != NULL) + if(m_pSAA7134Card->GetTuner()) { eVideoFormat videoFormat = m_pSAA7134Card->GetTuner()->GetDefaultVideoFormat(); m_VideoFormat->ChangeDefault(videoFormat); Modified: trunk/DScaler/DScaler/TDA8275.cpp =================================================================== --- trunk/DScaler/DScaler/TDA8275.cpp 2009-03-31 08:00:05 UTC (rev 4563) +++ trunk/DScaler/DScaler/TDA8275.cpp 2009-04-03 09:09:35 UTC (rev 4564) @@ -172,7 +172,7 @@ BOOL CTDA8275::SetTVFrequency(long frequencyHz, eVideoFormat videoFormat) { - if (m_ExternalIFDemodulator != NULL) + if (m_ExternalIFDemodulator) { m_ExternalIFDemodulator->TunerSet(TRUE, videoFormat); } @@ -180,7 +180,7 @@ BOOL success = SetFrequency(frequencyHz, CTDA8290::GetTDA8290Standard(videoFormat)); m_Frequency = frequencyHz; - if (m_ExternalIFDemodulator != NULL) + if (m_ExternalIFDemodulator) { m_ExternalIFDemodulator->TunerSet(FALSE, videoFormat); } @@ -213,7 +213,7 @@ eTunerAFCStatus CTDA8275::GetAFCStatus(long &nFreqDeviation) { - if (m_ExternalIFDemodulator != NULL) + if (m_ExternalIFDemodulator) { return m_ExternalIFDemodulator->GetAFCStatus(nFreqDeviation); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ad...@us...> - 2009-04-28 09:29:41
|
Revision: 4580 http://deinterlace.svn.sourceforge.net/deinterlace/?rev=4580&view=rev Author: adcockj Date: 2009-04-28 09:29:36 +0000 (Tue, 28 Apr 2009) Log Message: ----------- Split out mixer classes in separate file Add interfaces to access functionality in preparation for addition of Vista functionality Modified Paths: -------------- trunk/DScaler/DScaler/DScaler2005.vcproj trunk/DScaler/DScaler/MixerDev.cpp trunk/DScaler/DScaler/MixerDev.h Added Paths: ----------- trunk/DScaler/DScaler/MixerDevClasses.cpp trunk/DScaler/DScaler/MixerDevClasses.h Modified: trunk/DScaler/DScaler/DScaler2005.vcproj =================================================================== --- trunk/DScaler/DScaler/DScaler2005.vcproj 2009-04-27 11:05:31 UTC (rev 4579) +++ trunk/DScaler/DScaler/DScaler2005.vcproj 2009-04-28 09:29:36 UTC (rev 4580) @@ -236,7 +236,7 @@ IntermediateDirectory="$(ConfigurationName)" ConfigurationType="1" InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" - UseOfMFC="2" + UseOfMFC="0" ATLMinimizesCRunTimeLibraryUsage="false" CharacterSet="2" > @@ -342,7 +342,7 @@ IntermediateDirectory="$(ConfigurationName)" ConfigurationType="1" InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" - UseOfMFC="2" + UseOfMFC="0" ATLMinimizesCRunTimeLibraryUsage="false" CharacterSet="2" > @@ -4260,6 +4260,10 @@ </FileConfiguration> </File> <File + RelativePath=".\MixerDevClasses.cpp" + > + </File> + <File RelativePath="MSP34x0.cpp" > <FileConfiguration @@ -4654,27 +4658,6 @@ RuntimeLibrary="0" /> </FileConfiguration> - <FileConfiguration - Name="Debug|Win32" - > - <Tool - Name="VCCLCompilerTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Express|Win32" - > - <Tool - Name="VCCLCompilerTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Express|Win32" - > - <Tool - Name="VCCLCompilerTool" - /> - </FileConfiguration> </File> <File RelativePath="OpenDlg.cpp" @@ -8514,6 +8497,10 @@ > </File> <File + RelativePath=".\MixerDevClasses.h" + > + </File> + <File RelativePath="MSP34x0.h" > </File> Modified: trunk/DScaler/DScaler/MixerDev.cpp =================================================================== --- trunk/DScaler/DScaler/MixerDev.cpp 2009-04-27 11:05:31 UTC (rev 4579) +++ trunk/DScaler/DScaler/MixerDev.cpp 2009-04-28 09:29:36 UTC (rev 4580) @@ -29,6 +29,7 @@ #include "..\DScalerRes\resource.h" #include "resource.h" #include "MixerDev.h" +#include "MixerDevClasses.h" #include "DScaler.h" #include "Audio.h" #include "Providers.h" @@ -38,7 +39,6 @@ #define MAX_SUPPORTED_INPUTS 6 // Not readily changable - // MixerDev prototypes and globals void MixerDev_UpdateSettings(CSource* pSource); @@ -49,7 +49,7 @@ // Mixer typedefs -typedef CMixer* (tSyncChangesCallback)(void* pContext); +typedef IMixer* (tSyncChangesCallback)(void* pContext); // Mixer prototypes @@ -57,15 +57,15 @@ static void Mixer_SetCurrentMixerFromName(); static void Mixer_SetCurrentMixer(long nMixerIndex); -static CMixerLineDst* Mixer_GetCurrentDestination(); -static CMixerLineSrc* Mixer_GetCurrentActiveSource(); +static IMixerLineDst* Mixer_GetCurrentDestination(); +static IMixerLineSrc* Mixer_GetCurrentActiveSource(); static void Mixer_EventOnChangeNotification(void*, CEventObject*, eEventType, long, long, eEventType*); static void Mixer_OnInputChange(long nVideoInput); static void Mixer_OnSourceChange(CSource *pSource); -static CMixer* LoadSourceSettingsCallback(void* pContext); +static IMixer* LoadSourceSettingsCallback(void* pContext); static void Mixer_SetupActiveInputs(CSource* pCurrentSource); @@ -75,7 +75,6 @@ static void Mixer_DoSettingsTransition(tSyncChangesCallback* pSyncfunc, void* pContext); static long Mixer_NameToIndex(char* szName); -static CMixer* Mixer_Allocate(long nMixerIndex); BOOL APIENTRY MixerSetupProc(HWND hDlg, UINT message, UINT wParam, LONG lParam); @@ -89,7 +88,7 @@ // Global variables -static CMixer* g_pCurrentMixer = NULL; +static IMixer* g_pCurrentMixer = NULL; static long g_nActiveInputsCount = 0; static long g_nActiveInput = -1; @@ -103,7 +102,9 @@ static long g_nDestinationIndex; // Saved setting variable static long g_nSourceIndexes[MAX_SUPPORTED_INPUTS]; // Saved setting variable +static CMixerList g_mixerList; + //---------------------------------------------------------------------- // Public functions //---------------------------------------------------------------------- @@ -144,7 +145,7 @@ void Mixer_SetMute(BOOL bEnabled) { - CMixerLineSrc* pLineSrc = Mixer_GetCurrentActiveSource(); + IMixerLineSrc* pLineSrc = Mixer_GetCurrentActiveSource(); if (pLineSrc != NULL) { @@ -155,7 +156,7 @@ BOOL Mixer_GetMute(void) { - CMixerLineSrc* pLineSrc = Mixer_GetCurrentActiveSource(); + IMixerLineSrc* pLineSrc = Mixer_GetCurrentActiveSource(); if (pLineSrc != NULL) { @@ -180,7 +181,7 @@ void Mixer_SetVolume(long newVolume) { - CMixerLineSrc* pLineSrc = Mixer_GetCurrentActiveSource(); + IMixerLineSrc* pLineSrc = Mixer_GetCurrentActiveSource(); if (pLineSrc != NULL) { @@ -204,7 +205,7 @@ long Mixer_GetVolume() { - CMixerLineSrc* pLineSrc = Mixer_GetCurrentActiveSource(); + IMixerLineSrc* pLineSrc = Mixer_GetCurrentActiveSource(); if (pLineSrc != NULL) { @@ -217,7 +218,7 @@ void Mixer_AdjustVolume(long delta) { - CMixerLineSrc* pLineSrc = Mixer_GetCurrentActiveSource(); + IMixerLineSrc* pLineSrc = Mixer_GetCurrentActiveSource(); if (pLineSrc != NULL) { @@ -261,9 +262,7 @@ } else { - CMixerFinder mixerFinder; - - if (mixerFinder.GetMixerCount() > 0) + if (g_mixerList.GetMixerCount() > 0) { BOOL bWasInvalidSection = g_bMixerDevInvalidSection; @@ -328,11 +327,11 @@ g_pCurrentMixer = NULL; } - g_pCurrentMixer = Mixer_Allocate(nMixerIndex); + g_pCurrentMixer = g_mixerList.GetMixer(nMixerIndex); } -static CMixerLineDst* Mixer_GetCurrentDestination() +static IMixerLineDst* Mixer_GetCurrentDestination() { if (g_bUseMixer && g_pCurrentMixer != NULL && g_nDestinationIndex != -1) { @@ -343,14 +342,14 @@ } -static CMixerLineSrc* Mixer_GetCurrentActiveSource() +static IMixerLineSrc* Mixer_GetCurrentActiveSource() { if (g_nActiveInput == -1 || g_nSourceIndexes[g_nActiveInput] == -1) { return NULL; } - CMixerLineDst* pLineDst = Mixer_GetCurrentDestination(); + IMixerLineDst* pLineDst = Mixer_GetCurrentDestination(); if (pLineDst != NULL) { @@ -391,7 +390,7 @@ g_nActiveInput = nVideoInput; } - CMixerLineDst* pLineDst = Mixer_GetCurrentDestination(); + IMixerLineDst* pLineDst = Mixer_GetCurrentDestination(); if (pLineDst == NULL) { @@ -416,7 +415,7 @@ if (nActiveSourceIndex != -1) { - CMixerLineSrc* pLineSrc = pLineDst->GetSourceLine(nActiveSourceIndex); + IMixerLineSrc* pLineSrc = pLineDst->GetSourceLine(nActiveSourceIndex); if (pLineSrc != NULL) { @@ -448,7 +447,7 @@ Mixer_DoSettingsTransition(LoadSourceSettingsCallback, pSource); } -static CMixer* LoadSourceSettingsCallback(void* pContext) +static IMixer* LoadSourceSettingsCallback(void* pContext) { CSource* pSource = (CSource*)pContext; @@ -471,7 +470,7 @@ return g_pCurrentMixer; } - return Mixer_Allocate(nMixerIndex); + return g_mixerList.GetMixer(nMixerIndex); } return NULL; @@ -505,8 +504,8 @@ static void Mixer_MuteInputs(long nDestinationIndex, long* pIndexes, long nCount, BOOL bMute) { - CMixerLineDst* pLineDst; - CMixerLineSrc* pLineSrc; + IMixerLineDst* pLineDst; + IMixerLineSrc* pLineSrc; if (g_pCurrentMixer == NULL || nDestinationIndex == -1 || nCount == 0) { @@ -535,8 +534,8 @@ static void Mixer_StoreRestoreInputs(long nDestinationIndex, long* pIndexes, long nCount, BOOL bRestore) { - CMixerLineDst* pLineDst; - CMixerLineSrc* pLineSrc; + IMixerLineDst* pLineDst; + IMixerLineSrc* pLineSrc; if (g_pCurrentMixer == NULL || nDestinationIndex == -1 || nCount == 0) { @@ -649,7 +648,7 @@ } // Synchronize all new settings except g_pCurrentMixer - CMixer* pNewMixer = (pSyncfunc)(pContext); + IMixer* pNewMixer = (pSyncfunc)(pContext); // Check the new mixer info if (g_bUseMixer && pNewMixer != NULL && g_nDestinationIndex != -1) @@ -699,34 +698,12 @@ if (szName != NULL) { - CMixerFinder mixerFinder; - nMixerIndex = mixerFinder.FindMixer(szName); + nMixerIndex = g_mixerList.FindMixer(szName); } return nMixerIndex; } - -static CMixer* Mixer_Allocate(long nMixerIndex) -{ - CMixer* pMixer = NULL; - - if (nMixerIndex != -1) - { - try - { - pMixer = new CMixer(nMixerIndex); - } - catch (...) - { - // do nothing - } - } - - return pMixer; -} - - //---------------------------------------------------------------------- // APIENTRY MixerSetupProc //---------------------------------------------------------------------- @@ -741,10 +718,10 @@ static void RefillDestinationBox(HWND hDlg, long nSelectIndex); static void RefillSourceBox(HWND hDlg, long nSourceControlId, long nSelectIndex); -static CMixer* SynchronizeDlgChangesCallback(void* pContext); +static IMixer* SynchronizeDlgChangesCallback(void* pContext); static int ComboBox_GetCurSelItemData(HWND hControl); -static CMixer* g_pDlgActiveMixer = NULL; +static IMixer* g_pDlgActiveMixer = NULL; BOOL APIENTRY MixerSetupProc(HWND hDlg, UINT message, UINT wParam, LONG lParam) @@ -1106,22 +1083,19 @@ static void RefillMixerDeviceBox(HWND hDlg, long nSelectIndex) { - CMixerFinder mixerFinder; - char buffer[MAXPNAMELEN]; - HWND hMixerControl = GetDlgItem(hDlg, IDC_MIXER); ComboBox_ResetContent(hMixerControl); - int mixerCount = mixerFinder.GetMixerCount(); + int mixerCount = g_mixerList.GetMixerCount(); BOOL bSelected = FALSE; int index; for (int i = 0; i < mixerCount; i++) { - mixerFinder.GetMixerName(i, buffer); + const char* name = g_mixerList.GetMixer(i)->GetName(); - index = ComboBox_AddString(hMixerControl, buffer); + index = ComboBox_AddString(hMixerControl, name); ComboBox_SetItemData(hMixerControl, index, i); if (i == nSelectIndex) @@ -1158,7 +1132,7 @@ for (int i = 0; i < destinationCount; i++) { - CMixerLineDst* pLineDst = g_pDlgActiveMixer->GetDestinationLine(i); + IMixerLineDst* pLineDst = g_pDlgActiveMixer->GetDestinationLine(i); if (pLineDst->IsTypicalRecordingLine() && destinationCount - recordingLines > 1) @@ -1223,7 +1197,7 @@ ComboBox_SetCurSel(hSourceControl, index); - CMixerLineDst* pLineDst = g_pDlgActiveMixer->GetDestinationLine(nDestinationIndex); + IMixerLineDst* pLineDst = g_pDlgActiveMixer->GetDestinationLine(nDestinationIndex); if (pLineDst != NULL) { @@ -1251,7 +1225,7 @@ } -static CMixer* SynchronizeDlgChangesCallback(void* pContext) +static IMixer* SynchronizeDlgChangesCallback(void* pContext) { HWND hDlg = (HWND)pContext; @@ -1317,7 +1291,6 @@ return -1; } - //---------------------------------------------------------------------- // Long array utilities //---------------------------------------------------------------------- @@ -1457,428 +1430,7 @@ *dividendSize = resultCount; } - //---------------------------------------------------------------------- -// CMixerLineSrc -//---------------------------------------------------------------------- - -CMixerLineSrc::CMixerLineSrc(HMIXER hMixer, DWORD nDstIndex, DWORD nSrcIndex) -{ - MMRESULT mmresult; - - m_hMixer = hMixer; - m_VolumeControlID = 0xFFFFFFFF; - m_MuteControlID = 0xFFFFFFFF; - - ZeroMemory(&m_mxl, sizeof(MIXERLINE)); - - m_mxl.cbStruct = sizeof(MIXERLINE); - m_mxl.dwDestination = nDstIndex; - m_mxl.dwSource = nSrcIndex; - - mmresult = mixerGetLineInfo((HMIXEROBJ)hMixer, &m_mxl, MIXER_GETLINEINFOF_SOURCE); - if (mmresult != MMSYSERR_NOERROR || m_mxl.cControls == 0) - { - strcpy(m_mxl.szName, "Error"); - return; - } - - MIXERLINECONTROLS mxlc; - LPMIXERCONTROL pmxctrl; - - pmxctrl = (MIXERCONTROL*)malloc(sizeof(MIXERCONTROL) * m_mxl.cControls); - - mxlc.cbStruct = sizeof(MIXERLINECONTROLS); - mxlc.dwLineID = m_mxl.dwLineID; - mxlc.cControls = m_mxl.cControls; - mxlc.cbmxctrl = sizeof(MIXERCONTROL); - mxlc.pamxctrl = pmxctrl; - - mmresult = mixerGetLineControls((HMIXEROBJ)hMixer, &mxlc, MIXER_GETLINECONTROLSF_ALL); - - for (DWORD i = 0; i < m_mxl.cControls; i++) - { - if (pmxctrl[i].dwControlType == MIXERCONTROL_CONTROLTYPE_VOLUME) - { - m_VolumeControlID = pmxctrl[i].dwControlID; - m_VolumeMinimum = pmxctrl[i].Bounds.dwMinimum; - m_VolumeMaximum = pmxctrl[i].Bounds.dwMaximum; - - } - else if (pmxctrl[i].dwControlType == MIXERCONTROL_CONTROLTYPE_MUTE) - { - m_MuteControlID = pmxctrl[i].dwControlID; - } - } - - free(pmxctrl); -} - - -CMixerLineSrc::~CMixerLineSrc() -{ -} - - -const char* CMixerLineSrc::GetName() -{ - return m_mxl.szName; -} - - -void CMixerLineSrc::SetMute(BOOL bEnable) -{ - if (m_MuteControlID != 0xFFFFFFFF) - { - MixerControlDetailsSet(m_MuteControlID, bEnable); - } -} - - -BOOL CMixerLineSrc::GetMute() -{ - DWORD dwEnabled = FALSE; - - if (m_MuteControlID != 0xFFFFFFFF) - { - MixerControlDetailsGet(m_MuteControlID, &dwEnabled); - } - - return dwEnabled; -} - - -void CMixerLineSrc::SetVolume(int volumePercentage) -{ - if (m_VolumeControlID != 0xFFFFFFFF) - { - // sets all channels to the same volume - MixerControlDetailsSet(m_VolumeControlID, - MulDiv(volumePercentage, (m_VolumeMaximum - m_VolumeMinimum), 100)); - } -} - - -int CMixerLineSrc::GetVolume() -{ - DWORD nVolume = 0; - - if (m_VolumeControlID != 0xFFFFFFFF) - { - // get average volume, ignores balance - if (MixerControlDetailsGet(m_VolumeControlID, &nVolume)) - { - return MulDiv(nVolume, 100, m_VolumeMaximum - m_VolumeMinimum); - } - } - - return nVolume; -} - - -void CMixerLineSrc::StoreState() -{ - MixerControlDetailsGet(m_MuteControlID, &m_StoredMute); - MixerControlDetailsGet(m_VolumeControlID, &m_StoredVolume); -} - - -void CMixerLineSrc::RestoreState() -{ - MixerControlDetailsSet(m_MuteControlID, m_StoredMute); - MixerControlDetailsSet(m_VolumeControlID, m_StoredVolume); -} - - -BOOL CMixerLineSrc::MixerControlDetailsSet(DWORD dwControlID, DWORD dwValue) -{ - MIXERCONTROLDETAILS mxcd; - - mxcd.cbStruct = sizeof(MIXERCONTROLDETAILS); - mxcd.cChannels = 1; - mxcd.dwControlID = dwControlID; - mxcd.cMultipleItems = 0; - mxcd.cbDetails = sizeof(DWORD); - mxcd.paDetails = &dwValue; - - return mixerSetControlDetails((HMIXEROBJ)m_hMixer, &mxcd, - MIXER_SETCONTROLDETAILSF_VALUE | MIXER_OBJECTF_HMIXER) == MMSYSERR_NOERROR; -} - - -BOOL CMixerLineSrc::MixerControlDetailsGet(DWORD dwControlID, LPDWORD lpdwValue) -{ - MIXERCONTROLDETAILS mxcd; - - mxcd.cbStruct = sizeof(MIXERCONTROLDETAILS); - mxcd.cChannels = 1; - mxcd.dwControlID = dwControlID; - mxcd.cMultipleItems = 0; - mxcd.cbDetails = sizeof(DWORD); - mxcd.paDetails = lpdwValue; - - return mixerGetControlDetails((HMIXEROBJ)m_hMixer, &mxcd, - MIXER_SETCONTROLDETAILSF_VALUE | MIXER_OBJECTF_HMIXER) == MMSYSERR_NOERROR; -} - - -//---------------------------------------------------------------------- -// CMixerLineDst -//---------------------------------------------------------------------- - -CMixerLineDst::CMixerLineDst(HMIXER hMixer, DWORD nDstIndex) -{ - ZeroMemory(&m_mxl, sizeof(MIXERLINE)); - - m_mxl.cbStruct = sizeof(MIXERLINE); - m_mxl.dwDestination = nDstIndex; - - m_nSourceCount = 0; - m_pSourceLines = NULL; - - MMRESULT mmresult = mixerGetLineInfo((HMIXEROBJ)hMixer, &m_mxl, - MIXER_GETLINEINFOF_DESTINATION); - - if (mmresult != MMSYSERR_NOERROR || m_mxl.cConnections == 0) - { - strcpy(m_mxl.szName, "Error"); - return; - } - - m_nSourceCount = m_mxl.cConnections; - m_pSourceLines = new CMixerLineSrc*[m_nSourceCount]; - - for (DWORD i = 0; i < m_nSourceCount; i++) - { - m_pSourceLines[i] = new CMixerLineSrc(hMixer, nDstIndex, i); - } -} - - -CMixerLineDst::~CMixerLineDst() -{ - if (m_pSourceLines != NULL) - { - for (DWORD i = 0; i < m_nSourceCount; i++) - { - delete m_pSourceLines[i]; - } - delete [] m_pSourceLines; - } -} - - -const char* CMixerLineDst::GetName() -{ - return m_mxl.szName; -} - - -long CMixerLineDst::GetSourceCount() -{ - return m_nSourceCount; -} - - -CMixerLineSrc* CMixerLineDst::GetSourceLine(DWORD nIndex) -{ - if (nIndex >= m_nSourceCount) - { - return NULL; - } - - return m_pSourceLines[nIndex]; -} - - -void CMixerLineDst::StoreState() -{ - for (DWORD i = 0; i < m_nSourceCount; i++) - { - m_pSourceLines[i]->StoreState(); - } -} - - -void CMixerLineDst::RestoreState() -{ - for (DWORD i = 0; i < m_nSourceCount; i++) - { - m_pSourceLines[i]->RestoreState(); - } -} - - -BOOL CMixerLineDst::IsTypicalSpeakerLine() -{ - return (m_mxl.dwComponentType == MIXERLINE_COMPONENTTYPE_DST_SPEAKERS); -} - - -BOOL CMixerLineDst::IsTypicalRecordingLine() -{ - return (m_mxl.dwComponentType == MIXERLINE_COMPONENTTYPE_DST_WAVEIN); -} - - -//---------------------------------------------------------------------- -// CMixer -//---------------------------------------------------------------------- - -CMixer::CMixer(DWORD nMixerIndex) -{ - MMRESULT mmresult; - - m_hMixer = NULL; - m_nDestinationCount = 0; - m_pDestinationLines = NULL; - - m_nMixerIndex = nMixerIndex; - - mmresult = mixerGetDevCaps(m_nMixerIndex, &m_mxcaps, sizeof(MIXERCAPS)); - if (mmresult != MMSYSERR_NOERROR || m_mxcaps.cDestinations == 0) - { - delete this; - throw NULL; - } - - mmresult = mixerOpen(&m_hMixer, m_nMixerIndex, NULL, NULL, MIXER_OBJECTF_MIXER); - if (mmresult != MMSYSERR_NOERROR) - { - delete this; - throw NULL; - } - - m_nDestinationCount = m_mxcaps.cDestinations; - m_pDestinationLines = new CMixerLineDst*[m_nDestinationCount]; - - for (DWORD i = 0; i < m_nDestinationCount; i++) - { - m_pDestinationLines[i] = new CMixerLineDst(m_hMixer, i); - } -} - - -CMixer::~CMixer() -{ - if (m_pDestinationLines != NULL) - { - for (DWORD i = 0; i < m_nDestinationCount; i++) - { - delete m_pDestinationLines[i]; - } - - delete [] m_pDestinationLines; - } - - if (m_hMixer != NULL) - { - mixerClose(m_hMixer); - } -} - - -const char* CMixer::GetName() -{ - return m_mxcaps.szPname; -} - - -DWORD CMixer::GetIndex() -{ - return m_nMixerIndex; -} - - -long CMixer::GetDestinationCount() -{ - return m_nDestinationCount; -} - - -CMixerLineDst* CMixer::GetDestinationLine(DWORD nIndex) -{ - if (nIndex >= m_nDestinationCount) - { - return NULL; - } - - return m_pDestinationLines[nIndex]; -} - - -void CMixer::StoreState() -{ - for (DWORD i = 0; i < m_nDestinationCount; i++) - { - m_pDestinationLines[i]->StoreState(); - } -} - - -void CMixer::RestoreState() -{ - for (DWORD i = 0; i < m_nDestinationCount; i++) - { - m_pDestinationLines[i]->RestoreState(); - } -} - - -//---------------------------------------------------------------------- -// CMixerFinder -//---------------------------------------------------------------------- - -CMixerFinder::CMixerFinder() -{ - m_nMixerCount = mixerGetNumDevs(); -} - - -CMixerFinder::~CMixerFinder() -{ -} - - -long CMixerFinder::GetMixerCount() -{ - return m_nMixerCount; -} - - -BOOL CMixerFinder::GetMixerName(long nMixerIndex, char szName[MAXPNAMELEN]) -{ - MIXERCAPS mxcaps; - MMRESULT mmresult; - - _ASSERTE(nMixerIndex >= 0 && (UINT)nMixerIndex < m_nMixerCount); - - mmresult = mixerGetDevCaps(nMixerIndex, &mxcaps, sizeof(MIXERCAPS)); - if (mmresult == MMSYSERR_NOERROR) - { - strcpy(szName, mxcaps.szPname); - return TRUE; - } - return FALSE; -} - - -long CMixerFinder::FindMixer(const char* szName) -{ - char buffer[MAXPNAMELEN]; - - for (UINT i = 0; i < m_nMixerCount; i++) - { - if (GetMixerName(i, buffer) && lstrcmp(buffer, szName) == 0) - { - return i; - } - } - return -1; -} - - -//---------------------------------------------------------------------- // MixerDev stuff //---------------------------------------------------------------------- Modified: trunk/DScaler/DScaler/MixerDev.h =================================================================== --- trunk/DScaler/DScaler/MixerDev.h 2009-04-27 11:05:31 UTC (rev 4579) +++ trunk/DScaler/DScaler/MixerDev.h 2009-04-28 09:29:36 UTC (rev 4580) @@ -54,123 +54,6 @@ void Mixer_SetupDlg(HWND hWndParent); -void MixerDev_SetMenu(HMENU hMenu); +void MixerDev_SetMenu(HMENU hMenu); - - - -// Internal classes - -/** Individual lines of a destination (e.g. MIDI, Line-In, CD-Audio) -*/ -class CMixerLineSrc -{ -public: - CMixerLineSrc(HMIXER hMixer, DWORD nDstIndex, DWORD nSrcIndex); - virtual ~CMixerLineSrc(); - - const char* GetName(); - - void SetMute(BOOL bEnable); - BOOL GetMute(); - - void SetVolume(int volumePercentage); - int GetVolume(); - - void StoreState(); - void RestoreState(); - -private: - BOOL MixerControlDetailsSet(DWORD dwControlID, DWORD dwValue); - BOOL MixerControlDetailsGet(DWORD dwControlID, LPDWORD lpdwValue); - -private: - HMIXER m_hMixer; - MIXERLINE m_mxl; - - DWORD m_VolumeControlID; - DWORD m_VolumeMinimum; - DWORD m_VolumeMaximum; - - DWORD m_MuteControlID; - - DWORD m_StoredVolume; - DWORD m_StoredMute; -}; - - -/** System mixer destination lines -*/ -class CMixerLineDst -{ -public: - CMixerLineDst(HMIXER hMixer, DWORD nDstIndex); - virtual ~CMixerLineDst(); - - const char* GetName(); - - long GetSourceCount(); - CMixerLineSrc* GetSourceLine(DWORD nIndex); - - void StoreState(); - void RestoreState(); - - BOOL IsTypicalSpeakerLine(); - BOOL IsTypicalRecordingLine(); - -private: - MIXERLINE m_mxl; - - DWORD m_nSourceCount; - CMixerLineSrc** m_pSourceLines; -}; - - -/** System mixer control -*/ -class CMixer -{ -public: - CMixer(DWORD nMixerIndex); - virtual ~CMixer(); - - const char* GetName(); - DWORD GetIndex(); - - long GetDestinationCount(); - CMixerLineDst* GetDestinationLine(DWORD nIndex); - - void StoreState(); - void RestoreState(); - -private: - HMIXER m_hMixer; - MIXERCAPS m_mxcaps; - - DWORD m_nMixerIndex; - - DWORD m_nDestinationCount; - CMixerLineDst** m_pDestinationLines; -}; - - -/** Provides functions for finding mixers -*/ -class CMixerFinder -{ -public: - CMixerFinder(); - virtual ~CMixerFinder(); - - long GetMixerCount(); - BOOL GetMixerName(long nMixerIndex, char szName[MAXPNAMELEN]); - - long FindMixer(const char* szName); - -private: - UINT m_nMixerCount; -}; - - #endif - Added: trunk/DScaler/DScaler/MixerDevClasses.cpp =================================================================== --- trunk/DScaler/DScaler/MixerDevClasses.cpp (rev 0) +++ trunk/DScaler/DScaler/MixerDevClasses.cpp 2009-04-28 09:29:36 UTC (rev 4580) @@ -0,0 +1,404 @@ +///////////////////////////////////////////////////////////////////////////// +// $Id$ +///////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2000 John Adcock. All rights reserved. +///////////////////////////////////////////////////////////////////////////// +// +// This file is subject to the terms of the GNU General Public License as +// published by the Free Software Foundation. A copy of this license is +// included with this software distribution in the file COPYING. If you +// do not have a copy, you may obtain a copy by writing to the Free +// Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. +// +// This software is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details +///////////////////////////////////////////////////////////////////////////// +// +// This software was based on Multidec 5.6 Those portions are +// Copyright (C) 1999/2000 Espresso (ech...@ho...) +// +///////////////////////////////////////////////////////////////////////////// + +/** + * @file MixerDev.cpp Mixer Classes + */ + +#include "stdafx.h" +#include "MixerDev.h" +#include "MixerDevClasses.h" + +using namespace std; + +//---------------------------------------------------------------------- +// CMixerLineSrc +//---------------------------------------------------------------------- + +CMixerLineSrc::CMixerLineSrc(HMIXER hMixer, DWORD nDstIndex, DWORD nSrcIndex) +{ + MMRESULT mmresult; + + m_hMixer = hMixer; + m_VolumeControlID = 0xFFFFFFFF; + m_MuteControlID = 0xFFFFFFFF; + + ZeroMemory(&m_mxl, sizeof(MIXERLINE)); + + m_mxl.cbStruct = sizeof(MIXERLINE); + m_mxl.dwDestination = nDstIndex; + m_mxl.dwSource = nSrcIndex; + + mmresult = mixerGetLineInfo((HMIXEROBJ)hMixer, &m_mxl, MIXER_GETLINEINFOF_SOURCE); + if (mmresult != MMSYSERR_NOERROR || m_mxl.cControls == 0) + { + strcpy(m_mxl.szName, "Error"); + return; + } + + MIXERLINECONTROLS mxlc; + LPMIXERCONTROL pmxctrl; + + pmxctrl = (MIXERCONTROL*)malloc(sizeof(MIXERCONTROL) * m_mxl.cControls); + + mxlc.cbStruct = sizeof(MIXERLINECONTROLS); + mxlc.dwLineID = m_mxl.dwLineID; + mxlc.cControls = m_mxl.cControls; + mxlc.cbmxctrl = sizeof(MIXERCONTROL); + mxlc.pamxctrl = pmxctrl; + + mmresult = mixerGetLineControls((HMIXEROBJ)hMixer, &mxlc, MIXER_GETLINECONTROLSF_ALL); + + for (DWORD i = 0; i < m_mxl.cControls; i++) + { + if (pmxctrl[i].dwControlType == MIXERCONTROL_CONTROLTYPE_VOLUME) + { + m_VolumeControlID = pmxctrl[i].dwControlID; + m_VolumeMinimum = pmxctrl[i].Bounds.dwMinimum; + m_VolumeMaximum = pmxctrl[i].Bounds.dwMaximum; + + } + else if (pmxctrl[i].dwControlType == MIXERCONTROL_CONTROLTYPE_MUTE) + { + m_MuteControlID = pmxctrl[i].dwControlID; + } + } + + free(pmxctrl); +} + + +CMixerLineSrc::~CMixerLineSrc() +{ +} + + +const char* CMixerLineSrc::GetName() +{ + return m_mxl.szName; +} + + +void CMixerLineSrc::SetMute(BOOL bEnable) +{ + if (m_MuteControlID != 0xFFFFFFFF) + { + MixerControlDetailsSet(m_MuteControlID, bEnable); + } +} + + +BOOL CMixerLineSrc::GetMute() +{ + DWORD dwEnabled = FALSE; + + if (m_MuteControlID != 0xFFFFFFFF) + { + MixerControlDetailsGet(m_MuteControlID, &dwEnabled); + } + + return dwEnabled; +} + + +void CMixerLineSrc::SetVolume(int volumePercentage) +{ + if (m_VolumeControlID != 0xFFFFFFFF) + { + // sets all channels to the same volume + MixerControlDetailsSet(m_VolumeControlID, + MulDiv(volumePercentage, (m_VolumeMaximum - m_VolumeMinimum), 100)); + } +} + + +int CMixerLineSrc::GetVolume() +{ + DWORD nVolume = 0; + + if (m_VolumeControlID != 0xFFFFFFFF) + { + // get average volume, ignores balance + if (MixerControlDetailsGet(m_VolumeControlID, &nVolume)) + { + return MulDiv(nVolume, 100, m_VolumeMaximum - m_VolumeMinimum); + } + } + + return nVolume; +} + + +void CMixerLineSrc::StoreState() +{ + MixerControlDetailsGet(m_MuteControlID, &m_StoredMute); + MixerControlDetailsGet(m_VolumeControlID, &m_StoredVolume); +} + + +void CMixerLineSrc::RestoreState() +{ + MixerControlDetailsSet(m_MuteControlID, m_StoredMute); + MixerControlDetailsSet(m_VolumeControlID, m_StoredVolume); +} + + +BOOL CMixerLineSrc::MixerControlDetailsSet(DWORD dwControlID, DWORD dwValue) +{ + MIXERCONTROLDETAILS mxcd; + + mxcd.cbStruct = sizeof(MIXERCONTROLDETAILS); + mxcd.cChannels = 1; + mxcd.dwControlID = dwControlID; + mxcd.cMultipleItems = 0; + mxcd.cbDetails = sizeof(DWORD); + mxcd.paDetails = &dwValue; + + return mixerSetControlDetails((HMIXEROBJ)m_hMixer, &mxcd, + MIXER_SETCONTROLDETAILSF_VALUE | MIXER_OBJECTF_HMIXER) == MMSYSERR_NOERROR; +} + + +BOOL CMixerLineSrc::MixerControlDetailsGet(DWORD dwControlID, LPDWORD lpdwValue) +{ + MIXERCONTROLDETAILS mxcd; + + mxcd.cbStruct = sizeof(MIXERCONTROLDETAILS); + mxcd.cChannels = 1; + mxcd.dwControlID = dwControlID; + mxcd.cMultipleItems = 0; + mxcd.cbDetails = sizeof(DWORD); + mxcd.paDetails = lpdwValue; + + return mixerGetControlDetails((HMIXEROBJ)m_hMixer, &mxcd, + MIXER_SETCONTROLDETAILSF_VALUE | MIXER_OBJECTF_HMIXER) == MMSYSERR_NOERROR; +} + + +//---------------------------------------------------------------------- +// CMixerLineDst +//---------------------------------------------------------------------- + +CMixerLineDst::CMixerLineDst(HMIXER hMixer, DWORD nDstIndex) +{ + ZeroMemory(&m_mxl, sizeof(MIXERLINE)); + + m_mxl.cbStruct = sizeof(MIXERLINE); + m_mxl.dwDestination = nDstIndex; + + MMRESULT mmresult = mixerGetLineInfo((HMIXEROBJ)hMixer, &m_mxl, + MIXER_GETLINEINFOF_DESTINATION); + + if (mmresult != MMSYSERR_NOERROR || m_mxl.cConnections == 0) + { + strcpy(m_mxl.szName, "Error"); + return; + } + + for (DWORD i = 0; i < m_mxl.cConnections; i++) + { + SmartPtr<IMixerLineSrc> NewSource = new CMixerLineSrc(hMixer, nDstIndex, i); + m_pSourceLines.push_back(NewSource); + } +} + +CMixerLineDst::~CMixerLineDst() +{ +} + +const char* CMixerLineDst::GetName() +{ + return m_mxl.szName; +} + + +long CMixerLineDst::GetSourceCount() +{ + return m_pSourceLines.size(); +} + + +IMixerLineSrc* CMixerLineDst::GetSourceLine(DWORD nIndex) +{ + if (nIndex >= m_pSourceLines.size()) + { + return NULL; + } + + return m_pSourceLines[nIndex]; +} + + +void CMixerLineDst::StoreState() +{ + for (DWORD i = 0; i < m_pSourceLines.size(); i++) + { + m_pSourceLines[i]->StoreState(); + } +} + + +void CMixerLineDst::RestoreState() +{ + for (DWORD i = 0; i < m_pSourceLines.size(); i++) + { + m_pSourceLines[i]->RestoreState(); + } +} + + +BOOL CMixerLineDst::IsTypicalSpeakerLine() +{ + return (m_mxl.dwComponentType == MIXERLINE_COMPONENTTYPE_DST_SPEAKERS); +} + + +BOOL CMixerLineDst::IsTypicalRecordingLine() +{ + return (m_mxl.dwComponentType == MIXERLINE_COMPONENTTYPE_DST_WAVEIN); +} + + +//---------------------------------------------------------------------- +// CMixer +//---------------------------------------------------------------------- + +CMixer::CMixer(DWORD nMixerIndex) +{ + MMRESULT mmresult; + + m_hMixer = NULL; + + m_nMixerIndex = nMixerIndex; + + mmresult = mixerGetDevCaps(m_nMixerIndex, &m_mxcaps, sizeof(MIXERCAPS)); + if (mmresult != MMSYSERR_NOERROR || m_mxcaps.cDestinations == 0) + { + return; + } + + mmresult = mixerOpen(&m_hMixer, m_nMixerIndex, NULL, NULL, MIXER_OBJECTF_MIXER); + if (mmresult != MMSYSERR_NOERROR) + { + return; + } + + for (DWORD i = 0; i < m_mxcaps.cDestinations; i++) + { + SmartPtr<IMixerLineDst> NewDest = new CMixerLineDst(m_hMixer, i); + m_pDestinationLines.push_back(NewDest); + } +} + + +CMixer::~CMixer() +{ + if (m_hMixer != NULL) + { + mixerClose(m_hMixer); + } +} + + +const char* CMixer::GetName() +{ + return m_mxcaps.szPname; +} + + +DWORD CMixer::GetIndex() +{ + return m_nMixerIndex; +} + + +long CMixer::GetDestinationCount() +{ + return m_pDestinationLines.size(); +} + + +CMixerLineDst* CMixer::GetDestinationLine(DWORD nIndex) +{ + if (nIndex >= m_pDestinationLines.size()) + { + return NULL; + } + + return m_pDestinationLines[nIndex]; +} + + +void CMixer::StoreState() +{ + for (DWORD i = 0; i < m_pDestinationLines.size(); i++) + { + m_pDestinationLines[i]->StoreState(); + } +} + + +void CMixer::RestoreState() +{ + for (DWORD i = 0; i < m_pDestinationLines.size(); i++) + { + m_pDestinationLines[i]->RestoreState(); + } +} + + +//---------------------------------------------------------------------- +// CMixerFinder +//---------------------------------------------------------------------- + +CMixerList::CMixerList() +{ + long nMixerCount = mixerGetNumDevs(); + for(long i(0); i < nMixerCount; ++i) + { + SmartPtr<IMixer> NewMixer = new CMixer(i); + m_Mixers.push_back(NewMixer); + } +} + +long CMixerList::GetMixerCount() +{ + return m_Mixers.size(); +} + +IMixer* CMixerList::GetMixer(long nMixerIndex) +{ + return m_Mixers[nMixerIndex]; +} + +long CMixerList::FindMixer(const char* MixerName) +{ + for (size_t i(0); i < m_Mixers.size(); ++i) + { + if (lstrcmp(m_Mixers[i]->GetName(), MixerName) == 0) + { + return i; + } + } + return -1; +} Property changes on: trunk/DScaler/DScaler/MixerDevClasses.cpp ___________________________________________________________________ Added: svn:keywords + Id Revision Added: svn:eol-style + native Added: trunk/DScaler/DScaler/MixerDevClasses.h =================================================================== --- trunk/DScaler/DScaler/MixerDevClasses.h (rev 0) +++ trunk/DScaler/DScaler/MixerDevClasses.h 2009-04-28 09:29:36 UTC (rev 4580) @@ -0,0 +1,190 @@ +///////////////////////////////////////////////////////////////////////////// +// $Id$ +///////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2000 John Adcock. All rights reserved. +///////////////////////////////////////////////////////////////////////////// +// +// This file is subject to the terms of the GNU General Public License as +// published by the Free Software Foundation. A copy of this license is +// included with this software distribution in the file COPYING. If you +// do not have a copy, you may obtain a copy by writing to the Free +// Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. +// +// This software is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details +///////////////////////////////////////////////////////////////////////////// +// +// This software was based on Multidec 5.6 Those portions are +// Copyright (C) 1999/2000 Espresso (ech...@ho...) +// +///////////////////////////////////////////////////////////////////////////// + +/** + * @file mixerdev.h mixerdev Header file + */ + +#ifndef __MIXERDEVPRIVATE_H___ +#define __MIXERDEVPRIVATE_H___ + +// Internal classes + +/** Individual lines of a destination (e.g. MIDI, Line-In, CD-Audio) +*/ +class IMixerLineSrc +{ +public: + virtual ~IMixerLineSrc() {}; + virtual const char* GetName() = 0; + + virtual void SetMute(BOOL bEnable) = 0; + virtual BOOL GetMute() = 0; + + virtual void SetVolume(int volumePercentage) = 0; + virtual int GetVolume() = 0; + + virtual void StoreState() = 0; + virtual void RestoreState() = 0; +}; + + +class CMixerLineSrc : public IMixerLineSrc +{ +public: + CMixerLineSrc(HMIXER hMixer, DWORD nDstIndex, DWORD nSrcIndex); + virtual ~CMixerLineSrc(); + + const char* GetName(); + + void SetMute(BOOL bEnable); + BOOL GetMute(); + + void SetVolume(int volumePercentage); + int GetVolume(); + + void StoreState(); + void RestoreState(); + +private: + BOOL MixerControlDetailsSet(DWORD dwControlID, DWORD dwValue); + BOOL MixerControlDetailsGet(DWORD dwControlID, LPDWORD lpdwValue); + +private: + HMIXER m_hMixer; + MIXERLINE m_mxl; + + DWORD m_VolumeControlID; + DWORD m_VolumeMinimum; + DWORD m_VolumeMaximum; + + DWORD m_MuteControlID; + + DWORD m_StoredVolume; + DWORD m_StoredMute; +}; + + +/** System mixer destination lines +*/ +class IMixerLineDst +{ +public: + virtual ~IMixerLineDst() {}; + virtual const char* GetName() = 0; + + virtual long GetSourceCount() = 0; + virtual IMixerLineSrc* GetSourceLine(DWORD nIndex) = 0; + + virtual void StoreState() = 0; + virtual void RestoreState() = 0; + + virtual BOOL IsTypicalSpeakerLine() = 0; + virtual BOOL IsTypicalRecordingLine() = 0; +}; + + +class CMixerLineDst : public IMixerLineDst +{ +public: + CMixerLineDst(HMIXER hMixer, DWORD nDstIndex); + virtual ~CMixerLineDst(); + + const char* GetName(); + + long GetSourceCount(); + IMixerLineSrc* GetSourceLine(DWORD nIndex); + + void StoreState(); + void RestoreState(); + + BOOL IsTypicalSpeakerLine(); + BOOL IsTypicalRecordingLine(); + +private: + MIXERLINE m_mxl; + std::vector< SmartPtr<IMixerLineSrc> > m_pSourceLines; +}; + + +/** System mixer control +*/ +class IMixer +{ +public: + virtual ~IMixer() {}; + virtual const char* GetName() = 0; + virtual DWORD GetIndex() = 0; + + virtual long GetDestinationCount() = 0; + virtual IMixerLineDst* GetDestinationLine(DWORD nIndex) = 0; + + virtual void StoreState() = 0; + virtual void RestoreState() = 0; + +}; + +class CMixer : public IMixer +{ +public: + CMixer(DWORD nMixerIndex); + virtual ~CMixer(); + + const char* GetName(); + DWORD GetIndex(); + + long GetDestinationCount(); + CMixerLineDst* GetDestinationLine(DWORD nIndex); + + void StoreState(); + void RestoreState(); + +private: + HMIXER m_hMixer; + MIXERCAPS m_mxcaps; + + DWORD m_nMixerIndex; + + DWORD m_nDestinationCount; + std::vector< SmartPtr<IMixerLineDst> > m_pDestinationLines; +}; + + +/** Provides functions for finding mixers +*/ + +class CMixerList +{ +public: + CMixerList(); + long GetMixerCount(); + IMixer* GetMixer(long nMixerIndex); + long FindMixer(const char* MixerName); + +private: + std::vector< SmartPtr<CMixer> > m_Mixers; +}; + + +#endif + Property changes on: trunk/DScaler/DScaler/MixerDevClasses.h ___________________________________________________________________ Added: svn:keywords + Id Revision Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ad...@us...> - 2009-04-28 09:37:35
|
Revision: 4581 http://deinterlace.svn.sourceforge.net/deinterlace/?rev=4581&view=rev Author: adcockj Date: 2009-04-28 09:37:32 +0000 (Tue, 28 Apr 2009) Log Message: ----------- More tabs to spaces Modified Paths: -------------- trunk/DScaler/DScaler/CX2388xCard_Tuner.cpp trunk/DScaler/DScaler/DynamicFunction.h trunk/DScaler/DScaler/SAA7134Card.h trunk/DScaler/DScaler/SAA7134Card_Tuner.cpp trunk/DScaler/DScaler/SmartHandle.h trunk/DScaler/DScaler/SmartPtr.h Modified: trunk/DScaler/DScaler/CX2388xCard_Tuner.cpp =================================================================== --- trunk/DScaler/DScaler/CX2388xCard_Tuner.cpp 2009-04-28 09:29:36 UTC (rev 4580) +++ trunk/DScaler/DScaler/CX2388xCard_Tuner.cpp 2009-04-28 09:37:32 UTC (rev 4581) @@ -175,7 +175,7 @@ SmartPtr<ITuner> CCX2388xCard::GetTuner() const { - SmartPtr<ITuner> RetVal(m_Tuner); + SmartPtr<ITuner> RetVal(m_Tuner); return RetVal; } Modified: trunk/DScaler/DScaler/DynamicFunction.h =================================================================== --- trunk/DScaler/DScaler/DynamicFunction.h 2009-04-28 09:29:36 UTC (rev 4580) +++ trunk/DScaler/DScaler/DynamicFunction.h 2009-04-28 09:37:32 UTC (rev 4581) @@ -36,9 +36,9 @@ } operator BOOL() const - { - return m_pFunc != 0; - } + { + return m_pFunc != 0; + } protected: FUNCTYPE m_pFunc; }; Modified: trunk/DScaler/DScaler/SAA7134Card.h =================================================================== --- trunk/DScaler/DScaler/SAA7134Card.h 2009-04-28 09:29:36 UTC (rev 4580) +++ trunk/DScaler/DScaler/SAA7134Card.h 2009-04-28 09:37:32 UTC (rev 4581) @@ -457,7 +457,7 @@ std::string m_TunerType; SmartPtr<CI2CBus> m_I2CBus; - SmartPtr<II2CTuner> m_Tuner; + SmartPtr<II2CTuner> m_Tuner; /// Stores amount of memory assigned to DMA DWORD m_DMAChannelMemorySize[7]; Modified: trunk/DScaler/DScaler/SAA7134Card_Tuner.cpp =================================================================== --- trunk/DScaler/DScaler/SAA7134Card_Tuner.cpp 2009-04-28 09:29:36 UTC (rev 4580) +++ trunk/DScaler/DScaler/SAA7134Card_Tuner.cpp 2009-04-28 09:37:32 UTC (rev 4581) @@ -179,7 +179,7 @@ SmartPtr<ITuner> CSAA7134Card::GetTuner() const { - SmartPtr<ITuner> RetVal(m_Tuner); + SmartPtr<ITuner> RetVal(m_Tuner); return RetVal; } Modified: trunk/DScaler/DScaler/SmartHandle.h =================================================================== --- trunk/DScaler/DScaler/SmartHandle.h 2009-04-28 09:29:36 UTC (rev 4580) +++ trunk/DScaler/DScaler/SmartHandle.h 2009-04-28 09:37:32 UTC (rev 4581) @@ -11,13 +11,13 @@ /* * yasper - A non-intrusive reference counted pointer. - * Version: 1.04 - * + * Version: 1.04 + * * Many ideas borrowed from Yonat Sharon and * Andrei Alexandrescu. * * (zlib license) - * ---------------------------------------------------------------------------------- + * ---------------------------------------------------------------------------------- * Copyright (C) 2005-2007 Alex Rubinsteyn * * This software is provided 'as-is', without any express or implied @@ -60,196 +60,196 @@ public: typedef X element_type; - /* - default constructor - - don't create Counter - */ - SmartHandle() : rawHandle(0), counter(0) { } - - /* - Construct from a raw handle - */ - SmartHandle(X raw, Counter* c = 0) : rawHandle(0), counter(0) - { - if (raw) - { - rawHandle = raw; - if (c) acquire(c); - else counter = new Counter; - } - } - - /* - Copy constructor - */ - SmartHandle(const SmartHandle< X >& otherPtr) - { - acquire( otherPtr.counter ); - rawHandle = otherPtr.rawHandle; - } - - /* - Destructor - */ - ~SmartHandle() - { + /* + default constructor + - don't create Counter + */ + SmartHandle() : rawHandle(0), counter(0) { } + + /* + Construct from a raw handle + */ + SmartHandle(X raw, Counter* c = 0) : rawHandle(0), counter(0) + { + if (raw) + { + rawHandle = raw; + if (c) acquire(c); + else counter = new Counter; + } + } + + /* + Copy constructor + */ + SmartHandle(const SmartHandle< X >& otherPtr) + { + acquire( otherPtr.counter ); + rawHandle = otherPtr.rawHandle; + } + + /* + Destructor + */ + ~SmartHandle() + { release(); - } + } /* - Assignment to another SmartHandle + Assignment to another SmartHandle */ SmartHandle& operator=(const SmartHandle< X >& otherPtr) { - if (this != &otherPtr) - { - release(); - acquire(otherPtr.counter); - rawHandle = otherPtr.rawHandle; - } - return *this; + if (this != &otherPtr) + { + release(); + acquire(otherPtr.counter); + rawHandle = otherPtr.rawHandle; + } + return *this; } /* - Assignment to raw pointers is really dangerous business. - If the raw pointer is also being used elsewhere, - we might prematurely delete it, causing much pain. - Use sparingly/with caution. + Assignment to raw pointers is really dangerous business. + If the raw pointer is also being used elsewhere, + we might prematurely delete it, causing much pain. + Use sparingly/with caution. */ SmartHandle& operator=(X raw) { - if (raw) - { - release(); - counter = new Counter; - rawHandle = raw; - } - return *this; + if (raw) + { + release(); + counter = new Counter; + rawHandle = raw; + } + return *this; } /* - Conversion/casting operators + Conversion/casting operators */ - operator BOOL() const - { - return IsValid(); - } + operator BOOL() const + { + return IsValid(); + } - - /* - implicit casts to base types of the - the pointer we're storing - */ - - operator X() const - { - return rawHandle; - } + + /* + implicit casts to base types of the + the pointer we're storing + */ + + operator X() const + { + return rawHandle; + } /* - Provide access to the raw handle + Provide access to the raw handle */ - X GetRawHandle() const - { - if (rawHandle == 0) throw new EmptyHandleException; - return rawHandle; - } + X GetRawHandle() const + { + if (rawHandle == 0) throw new EmptyHandleException; + return rawHandle; + } - + /* - Is there only one reference on the counter? + Is there only one reference on the counter? */ - BOOL IsUnique() const - { - if (counter && counter->count == 1) return TRUE; - return FALSE; - } - - BOOL IsValid() const - { - if (counter && rawHandle) return TRUE; - return FALSE; - } + BOOL IsUnique() const + { + if (counter && counter->count == 1) return TRUE; + return FALSE; + } + + BOOL IsValid() const + { + if (counter && rawHandle) return TRUE; + return FALSE; + } - unsigned GetCount() const - { - if (counter) return counter->count; - return 0; - } + unsigned GetCount() const + { + if (counter) return counter->count; + return 0; + } private: - X rawHandle; + X rawHandle; - Counter* counter; + Counter* counter; - // increment the count - void acquire(Counter* c) - { - counter = c; - if (c) - { - (c->count)++; - } - } + // increment the count + void acquire(Counter* c) + { + counter = c; + if (c) + { + (c->count)++; + } + } - // decrement the count, delete if it is 0 - void release() - { + // decrement the count, delete if it is 0 + void release() + { if (counter) - { - (counter->count)--; + { + (counter->count)--; - if (counter->count == 0) - { - delete counter; - ::DeleteObject(rawHandle); - } - } - counter = 0; - rawHandle = 0; + if (counter->count == 0) + { + delete counter; + ::DeleteObject(rawHandle); + } + } + counter = 0; + rawHandle = 0; - } + } }; template <typename X> BOOL operator==(const SmartHandle< X >& lptr, const SmartHandle< X >& rptr) { - return lptr.GetRawHandle() == rptr.GetRawHandle(); + return lptr.GetRawHandle() == rptr.GetRawHandle(); } template <typename X> BOOL operator==(const SmartHandle< X >& lptr, X raw) { - return lptr.GetRawHandle() == raw ; + return lptr.GetRawHandle() == raw ; } template <typename X> BOOL operator!=(const SmartHandle< X >& lptr, const SmartHandle< X >& rptr) { - return ( !operator==(lptr, rptr) ); + return ( !operator==(lptr, rptr) ); } template <typename X> BOOL operator!=(const SmartHandle< X >& lptr, X raw) { - return ( !operator==(lptr, raw) ); + return ( !operator==(lptr, raw) ); } template <typename X> BOOL operator!(const SmartHandle< X >& p) { - return (!p.IsValid()); + return (!p.IsValid()); } @@ -257,19 +257,19 @@ template <typename X> BOOL operator< (const SmartHandle< X >& lptr, const SmartHandle < X >& rptr) { - return lptr.GetRawHandle() < rptr.GetRawHandle(); + return lptr.GetRawHandle() < rptr.GetRawHandle(); } template <typename X> BOOL operator< (const SmartHandle< X >& lptr, X raw) { - return lptr.GetRawHandle() < raw; + return lptr.GetRawHandle() < raw; } template <typename X> BOOL operator< (X raw, const SmartHandle< X >& rptr) { - return raw < rptr.GetRawHandle(); + return raw < rptr.GetRawHandle(); } #endif Modified: trunk/DScaler/DScaler/SmartPtr.h =================================================================== --- trunk/DScaler/DScaler/SmartPtr.h 2009-04-28 09:29:36 UTC (rev 4580) +++ trunk/DScaler/DScaler/SmartPtr.h 2009-04-28 09:37:32 UTC (rev 4581) @@ -12,13 +12,13 @@ /* * yasper - A non-intrusive reference counted pointer. - * Version: 1.04 - * + * Version: 1.04 + * * Many ideas borrowed from Yonat Sharon and * Andrei Alexandrescu. * * (zlib license) - * ---------------------------------------------------------------------------------- + * ---------------------------------------------------------------------------------- * Copyright (C) 2005-2007 Alex Rubinsteyn * * This software is provided 'as-is', without any express or implied @@ -56,8 +56,8 @@ struct Counter { - Counter(unsigned c = 1) : count(c) {} - unsigned count; + Counter(unsigned c = 1) : count(c) {} + unsigned count; }; template <typename X> @@ -67,320 +67,320 @@ public: typedef X element_type; - /* - SmartPtr needs to be its own friend so SmartPtr< X > and SmartPtr< Y > can access - each other's private data members - */ - template <class Y> friend class SmartPtr; - /* - default constructor - - don't create Counter - */ - SmartPtr() : rawPtr(0), counter(0) { } - - /* - Construct from a raw pointer - */ - SmartPtr(X* raw, Counter* c = 0) : rawPtr(0), counter(0) - { - if (raw) - { - rawPtr = raw; - if (c) acquire(c); - else counter = new Counter; - } - } - - template <typename Y> - explicit SmartPtr(Y* raw, Counter* c = 0) : rawPtr(0), counter(0) - { - if (raw) - { - rawPtr = dynamic_cast<X*>( raw ); - if (c) acquire(c); - else counter = new Counter; - } - } - - - /* - Copy constructor - */ - SmartPtr(const SmartPtr< X >& otherPtr) - { - acquire( otherPtr.counter ); - rawPtr = otherPtr.rawPtr; - } - - template <typename Y> - explicit SmartPtr(const SmartPtr< Y >& otherPtr) : rawPtr(0), counter(0) - { - acquire(otherPtr.counter); - rawPtr = dynamic_cast<X*>( otherPtr.GetRawPointer()); - } - + /* + SmartPtr needs to be its own friend so SmartPtr< X > and SmartPtr< Y > can access + each other's private data members + */ + template <class Y> friend class SmartPtr; + /* + default constructor + - don't create Counter + */ + SmartPtr() : rawPtr(0), counter(0) { } + + /* + Construct from a raw pointer + */ + SmartPtr(X* raw, Counter* c = 0) : rawPtr(0), counter(0) + { + if (raw) + { + rawPtr = raw; + if (c) acquire(c); + else counter = new Counter; + } + } + + template <typename Y> + explicit SmartPtr(Y* raw, Counter* c = 0) : rawPtr(0), counter(0) + { + if (raw) + { + rawPtr = dynamic_cast<X*>( raw ); + if (c) acquire(c); + else counter = new Counter; + } + } + + + /* + Copy constructor + */ + SmartPtr(const SmartPtr< X >& otherPtr) + { + acquire( otherPtr.counter ); + rawPtr = otherPtr.rawPtr; + } + + template <typename Y> + explicit SmartPtr(const SmartPtr< Y >& otherPtr) : rawPtr(0), counter(0) + { + acquire(otherPtr.counter); + rawPtr = dynamic_cast<X*>( otherPtr.GetRawPointer()); + } + - /* - Destructor - */ - ~SmartPtr() - { - release(); - } + /* + Destructor + */ + ~SmartPtr() + { + release(); + } /* - Assignment to another SmartPtr + Assignment to another SmartPtr */ SmartPtr& operator=(const SmartPtr< X >& otherPtr) { - if (this != &otherPtr) - { - release(); - acquire(otherPtr.counter); - rawPtr = otherPtr.rawPtr; - } - return *this; + if (this != &otherPtr) + { + release(); + acquire(otherPtr.counter); + rawPtr = otherPtr.rawPtr; + } + return *this; } template <typename Y> SmartPtr& operator=(const SmartPtr< Y >& otherPtr) { - if ( this != (SmartPtr< X >*) &otherPtr ) - { - release(); - acquire(otherPtr.counter); - rawPtr = dynamic_cast<X*> (otherPtr.GetRawPointer()); - } - return *this; + if ( this != (SmartPtr< X >*) &otherPtr ) + { + release(); + acquire(otherPtr.counter); + rawPtr = dynamic_cast<X*> (otherPtr.GetRawPointer()); + } + return *this; } /* - Assignment to raw pointers is really dangerous business. - If the raw pointer is also being used elsewhere, - we might prematurely delete it, causing much pain. - Use sparingly/with caution. + Assignment to raw pointers is really dangerous business. + If the raw pointer is also being used elsewhere, + we might prematurely delete it, causing much pain. + Use sparingly/with caution. */ SmartPtr& operator=(X* raw) { - if (raw) - { - release(); - counter = new Counter; - rawPtr = raw; - } - return *this; + if (raw) + { + release(); + counter = new Counter; + rawPtr = raw; + } + return *this; } template <typename Y> SmartPtr& operator=(Y* raw) { - if (raw) - { - release(); - counter = new Counter; - rawPtr = dynamic_cast<X*>(raw); - } - return *this; + if (raw) + { + release(); + counter = new Counter; + rawPtr = dynamic_cast<X*>(raw); + } + return *this; } /* - assignment to long to allow SmartPtr< X > = NULL, - also allows raw pointer assignment by conversion. - Raw pointer assignment is really dangerous! - If the raw pointer is being used elsewhere, - it will get deleted prematurely. + assignment to long to allow SmartPtr< X > = NULL, + also allows raw pointer assignment by conversion. + Raw pointer assignment is really dangerous! + If the raw pointer is being used elsewhere, + it will get deleted prematurely. */ - SmartPtr& operator=(long num) - { - if (num == 0) //pointer set to null - { - release(); - } + SmartPtr& operator=(long num) + { + if (num == 0) //pointer set to null + { + release(); + } - else //assign raw pointer by conversion - { - release(); - counter = new Counter; - rawPtr = reinterpret_cast<X*>(num); - } + else //assign raw pointer by conversion + { + release(); + counter = new Counter; + rawPtr = reinterpret_cast<X*>(num); + } - return *this; - } + return *this; + } /* - Member Access + Member Access */ - X* operator->() const - { - return GetRawPointer(); - } + X* operator->() const + { + return GetRawPointer(); + } /* - Dereference the pointer + Dereference the pointer */ - X& operator* () const - { - return *GetRawPointer(); - } + X& operator* () const + { + return *GetRawPointer(); + } /* - Conversion/casting operators + Conversion/casting operators */ - operator BOOL() const - { - return IsValid(); - } + operator BOOL() const + { + return IsValid(); + } - - /* - implicit casts to base types of the - the pointer we're storing - */ - - template <typename Y> - operator Y*() const - { - return dynamic_cast<Y*>(rawPtr); - } + + /* + implicit casts to base types of the + the pointer we're storing + */ + + template <typename Y> + operator Y*() const + { + return dynamic_cast<Y*>(rawPtr); + } - template <typename Y> - operator const Y*() const - { - return dynamic_cast<const Y*>(rawPtr); - } + template <typename Y> + operator const Y*() const + { + return dynamic_cast<const Y*>(rawPtr); + } - template <typename Y> - operator SmartPtr<Y>() - { - //new SmartPtr must also take our counter or else the reference counts - //will go out of sync - return SmartPtr<Y>(rawPtr, counter); - } + template <typename Y> + operator SmartPtr<Y>() + { + //new SmartPtr must also take our counter or else the reference counts + //will go out of sync + return SmartPtr<Y>(rawPtr, counter); + } /* - Provide access to the raw pointer + Provide access to the raw pointer */ - X* GetRawPointer() const - { - if (rawPtr == 0) throw new NullPointerException; - return rawPtr; - } + X* GetRawPointer() const + { + if (rawPtr == 0) throw new NullPointerException; + return rawPtr; + } - + /* - Is there only one reference on the counter? + Is there only one reference on the counter? */ - BOOL IsUnique() const - { - if (counter && counter->count == 1) return TRUE; - return FALSE; - } - - BOOL IsValid() const - { - if (counter && rawPtr) return TRUE; - return FALSE; - } + BOOL IsUnique() const + { + if (counter && counter->count == 1) return TRUE; + return FALSE; + } + + BOOL IsValid() const + { + if (counter && rawPtr) return TRUE; + return FALSE; + } - unsigned GetCount() const - { - if (counter) return counter->count; - return 0; - } + unsigned GetCount() const + { + if (counter) return counter->count; + return 0; + } private: - X* rawPtr; + X* rawPtr; - Counter* counter; + Counter* counter; - // increment the count - void acquire(Counter* c) - { - counter = c; - if (c) - { - (c->count)++; - } - } + // increment the count + void acquire(Counter* c) + { + counter = c; + if (c) + { + (c->count)++; + } + } - // decrement the count, delete if it is 0 - void release() - { + // decrement the count, delete if it is 0 + void release() + { if (counter) - { - (counter->count)--; + { + (counter->count)--; - if (counter->count == 0) - { - delete counter; - delete rawPtr; - } - } - counter = 0; - rawPtr = 0; + if (counter->count == 0) + { + delete counter; + delete rawPtr; + } + } + counter = 0; + rawPtr = 0; - } + } }; template <typename X, typename Y> BOOL operator==(const SmartPtr< X >& lptr, const SmartPtr< Y >& rptr) { - return lptr.GetRawPointer() == rptr.GetRawPointer(); + return lptr.GetRawPointer() == rptr.GetRawPointer(); } template <typename X, typename Y> BOOL operator==(const SmartPtr< X >& lptr, Y* raw) { - return lptr.GetRawPointer() == raw ; + return lptr.GetRawPointer() == raw ; } template <typename X> BOOL operator==(const SmartPtr< X >& lptr, long num) { - if (num == 0 && !lptr.IsValid()) //both pointer and address are null - { - return TRUE; - } + if (num == 0 && !lptr.IsValid()) //both pointer and address are null + { + return TRUE; + } - else //convert num to a pointer, compare addresses - { - return lptr == reinterpret_cast<X*>(num); - } - + else //convert num to a pointer, compare addresses + { + return lptr == reinterpret_cast<X*>(num); + } + } template <typename X, typename Y> BOOL operator!=(const SmartPtr< X >& lptr, const SmartPtr< Y >& rptr) { - return ( !operator==(lptr, rptr) ); + return ( !operator==(lptr, rptr) ); } template <typename X, typename Y> BOOL operator!=(const SmartPtr< X >& lptr, Y* raw) { - return ( !operator==(lptr, raw) ); + return ( !operator==(lptr, raw) ); } template <typename X> BOOL operator!=(const SmartPtr< X >& lptr, long num) { - return (!operator==(lptr, num) ); + return (!operator==(lptr, num) ); } template <typename X> BOOL operator!(const SmartPtr< X >& p) { - return (!p.IsValid()); + return (!p.IsValid()); } @@ -388,19 +388,19 @@ template <typename X, typename Y> BOOL operator< (const SmartPtr< X >& lptr, const SmartPtr < Y >& rptr) { - return lptr.GetRawPointer() < rptr.GetRawPointer(); + return lptr.GetRawPointer() < rptr.GetRawPointer(); } template <typename X, typename Y> BOOL operator< (const SmartPtr< X >& lptr, Y* raw) { - return lptr.GetRawPointer() < raw; + return lptr.GetRawPointer() < raw; } template <typename X, typename Y> BOOL operator< (X* raw, const SmartPtr< Y >& rptr) { - return raw < rptr.GetRawPointer(); + return raw < rptr.GetRawPointer(); } #endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ad...@us...> - 2009-04-28 15:01:10
|
Revision: 4582 http://deinterlace.svn.sourceforge.net/deinterlace/?rev=4582&view=rev Author: adcockj Date: 2009-04-28 13:46:17 +0000 (Tue, 28 Apr 2009) Log Message: ----------- Replace mixer global with singleton Modified Paths: -------------- trunk/DScaler/DScaler/MixerDev.cpp trunk/DScaler/DScaler/MixerDevClasses.cpp trunk/DScaler/DScaler/MixerDevClasses.h Modified: trunk/DScaler/DScaler/MixerDev.cpp =================================================================== --- trunk/DScaler/DScaler/MixerDev.cpp 2009-04-28 09:37:32 UTC (rev 4581) +++ trunk/DScaler/DScaler/MixerDev.cpp 2009-04-28 13:46:17 UTC (rev 4582) @@ -102,9 +102,7 @@ static long g_nDestinationIndex; // Saved setting variable static long g_nSourceIndexes[MAX_SUPPORTED_INPUTS]; // Saved setting variable -static CMixerList g_mixerList; - //---------------------------------------------------------------------- // Public functions //---------------------------------------------------------------------- @@ -262,7 +260,7 @@ } else { - if (g_mixerList.GetMixerCount() > 0) + if (CMixerList::getInstance()->GetMixerCount() > 0) { BOOL bWasInvalidSection = g_bMixerDevInvalidSection; @@ -327,7 +325,7 @@ g_pCurrentMixer = NULL; } - g_pCurrentMixer = g_mixerList.GetMixer(nMixerIndex); + g_pCurrentMixer = CMixerList::getInstance()->GetMixer(nMixerIndex); } @@ -470,7 +468,7 @@ return g_pCurrentMixer; } - return g_mixerList.GetMixer(nMixerIndex); + return CMixerList::getInstance()->GetMixer(nMixerIndex); } return NULL; @@ -698,7 +696,7 @@ if (szName != NULL) { - nMixerIndex = g_mixerList.FindMixer(szName); + nMixerIndex = CMixerList::getInstance()->FindMixer(szName); } return nMixerIndex; @@ -1087,13 +1085,13 @@ ComboBox_ResetContent(hMixerControl); - int mixerCount = g_mixerList.GetMixerCount(); + int mixerCount = CMixerList::getInstance()->GetMixerCount(); BOOL bSelected = FALSE; int index; for (int i = 0; i < mixerCount; i++) { - const char* name = g_mixerList.GetMixer(i)->GetName(); + const char* name = CMixerList::getInstance()->GetMixer(i)->GetName(); index = ComboBox_AddString(hMixerControl, name); ComboBox_SetItemData(hMixerControl, index, i); Modified: trunk/DScaler/DScaler/MixerDevClasses.cpp =================================================================== --- trunk/DScaler/DScaler/MixerDevClasses.cpp 2009-04-28 09:37:32 UTC (rev 4581) +++ trunk/DScaler/DScaler/MixerDevClasses.cpp 2009-04-28 13:46:17 UTC (rev 4582) @@ -26,7 +26,6 @@ */ #include "stdafx.h" -#include "MixerDev.h" #include "MixerDevClasses.h" using namespace std; @@ -402,3 +401,10 @@ } return -1; } + +CMixerList* CMixerList::getInstance() +{ + static CMixerList TheInstance; + return &TheInstance; +} + Modified: trunk/DScaler/DScaler/MixerDevClasses.h =================================================================== --- trunk/DScaler/DScaler/MixerDevClasses.h 2009-04-28 09:37:32 UTC (rev 4581) +++ trunk/DScaler/DScaler/MixerDevClasses.h 2009-04-28 13:46:17 UTC (rev 4582) @@ -176,12 +176,12 @@ class CMixerList { public: - CMixerList(); long GetMixerCount(); IMixer* GetMixer(long nMixerIndex); long FindMixer(const char* MixerName); - + static CMixerList* getInstance(); private: + CMixerList(); std::vector< SmartPtr<CMixer> > m_Mixers; }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ad...@us...> - 2009-04-28 16:09:17
|
Revision: 4584 http://deinterlace.svn.sourceforge.net/deinterlace/?rev=4584&view=rev Author: adcockj Date: 2009-04-28 16:09:14 +0000 (Tue, 28 Apr 2009) Log Message: ----------- First cut at using vista audio api for volume control Modified Paths: -------------- trunk/DScaler/DScaler/MixerDevClasses.cpp trunk/DScaler/DScaler/MixerDevClasses.h Modified: trunk/DScaler/DScaler/MixerDevClasses.cpp =================================================================== --- trunk/DScaler/DScaler/MixerDevClasses.cpp 2009-04-28 13:49:31 UTC (rev 4583) +++ trunk/DScaler/DScaler/MixerDevClasses.cpp 2009-04-28 16:09:14 UTC (rev 4584) @@ -27,6 +27,9 @@ #include "stdafx.h" #include "MixerDevClasses.h" +#include "Mmdeviceapi.h" +#define __IKsJackDescription_INTERFACE_DEFINED__ +#include "Endpointvolume.h" using namespace std; @@ -337,7 +340,7 @@ } -CMixerLineDst* CMixer::GetDestinationLine(DWORD nIndex) +IMixerLineDst* CMixer::GetDestinationLine(DWORD nIndex) { if (nIndex >= m_pDestinationLines.size()) { @@ -365,19 +368,281 @@ } } +// get a name for the device +// may not be very friendly, need to test +string GetDeviceName(CComPtr<IMMDevice>& Device) +{ + USES_CONVERSION; + LPWSTR Id = NULL; + Device->GetId(&Id); + if(Id == NULL) + { + throw logic_error("Can't get device name"); + } + string result(OLE2A(Id)); + CoTaskMemFree(Id); + return result; +} //---------------------------------------------------------------------- +// CVistaMixerLineSrc +// corresponds to an input audio endpoint +//---------------------------------------------------------------------- +class CVistaMixerLineSrc : public IMixerLineSrc +{ +public: + CVistaMixerLineSrc(CComPtr<IMMDevice>& Device) : + m_Name(GetDeviceName(Device)) + { + if(FAILED(Device->Activate(__uuidof(IAudioEndpointVolume), CLSCTX_ALL, NULL, (VOID**)&m_AudioEndPointVolume))) + { + throw logic_error("Can't get endpoint volume control"); + } + } + + virtual ~CVistaMixerLineSrc() + { + } + + const char* GetName() + { + return m_Name.c_str(); + } + + void SetMute(BOOL bEnable) + { + m_AudioEndPointVolume->SetMute(bEnable, NULL); + } + + BOOL GetMute() + { + BOOL Mute(FALSE); + m_AudioEndPointVolume->GetMute(&Mute); + return Mute; + } + + void SetVolume(int volumePercentage) + { + m_AudioEndPointVolume->SetMasterVolumeLevelScalar(float(volumePercentage / 100.0), NULL); + } + + int GetVolume() + { + float Volume(0.0); + m_AudioEndPointVolume->GetMasterVolumeLevelScalar(&Volume); + return long(Volume * 100.0); + } + + void StoreState() + { + m_AudioEndPointVolume->GetMasterVolumeLevelScalar(&m_StoredVolume); + m_AudioEndPointVolume->GetMute(&m_StoredMute); + } + + void RestoreState() + { + m_AudioEndPointVolume->SetMasterVolumeLevelScalar(m_StoredVolume, NULL); + m_AudioEndPointVolume->SetMute(m_StoredMute, NULL); + } + +private: + CComPtr<IAudioEndpointVolume> m_AudioEndPointVolume; + float m_StoredVolume; + BOOL m_StoredMute; + std::string m_Name; +}; + +//---------------------------------------------------------------------- +// CVistaMixerLineDst +// Corresponds to an output audio endpoint +// Note that we dont try and match the input sto the outputs in terms +// of topology, we'll see if this matters in practice after some testing +//---------------------------------------------------------------------- +class CVistaMixerLineDst : public IMixerLineDst +{ +public: + CVistaMixerLineDst(CComPtr<IMMDevice>& Device, CComPtr<IMMDeviceEnumerator> DeviceEnum) : + m_Device(Device), + m_Name(GetDeviceName(Device)) + { + CComPtr<IMMDeviceCollection> DeviceCollection; + if(FAILED(DeviceEnum->EnumAudioEndpoints(eCapture, DEVICE_STATEMASK_ALL, &DeviceCollection))) + { + throw logic_error("Couldn't enumerate audio endpoints"); + } + UINT Count(0); + if(FAILED(DeviceCollection->GetCount(&Count))) + { + throw logic_error("Couldn't count items in endpoint collection"); + } + for(UINT i(0); i < Count; ++i) + { + CComPtr<IMMDevice> Device; + if(FAILED(DeviceCollection->Item(i, &Device))) + { + throw logic_error("Couldn't get item in endpoint collection"); + } + + SmartPtr<IMixerLineSrc> NewSource = new CVistaMixerLineSrc(Device); + m_SourceLines.push_back(NewSource); + + // done with this copy of pointer + Device.Release(); + } + } + + virtual ~CVistaMixerLineDst() + { + } + + const char* GetName() + { + return m_Name.c_str(); + } + + long GetSourceCount() + { + return m_SourceLines.size(); + } + + IMixerLineSrc* GetSourceLine(DWORD nIndex) + { + return m_SourceLines[nIndex]; + } + + void StoreState() + { + for (DWORD i = 0; i < m_SourceLines.size(); i++) + { + m_SourceLines[i]->StoreState(); + } + } + + void RestoreState() + { + for (DWORD i = 0; i < m_SourceLines.size(); i++) + { + m_SourceLines[i]->RestoreState(); + } + } + + BOOL IsTypicalSpeakerLine() + { + return TRUE; + } + + BOOL IsTypicalRecordingLine() + { + return FALSE; + } + +private: + CComPtr<IMMDevice> m_Device; + std::vector< SmartPtr<IMixerLineSrc> > m_SourceLines; + std::string m_Name; +}; + +//---------------------------------------------------------------------- +// CVistaMixer +// In Vista the sound design is different +// the ideaof an audo end point seems to correspond to the concept of +// dest line and there is no coresponding conecpt to Mixer so we'll just +// have Mixer has one Dest line +//---------------------------------------------------------------------- +class CVistaMixer : public IMixer +{ +public: + CVistaMixer(DWORD nMixerIndex, CComPtr<IMMDevice>& Device, CComPtr<IMMDeviceEnumerator> DeviceEnum) : + m_nMixerIndex(nMixerIndex), + m_DestinationLine(Device, DeviceEnum) + { + } + + ~CVistaMixer() + { + } + + const char* GetName() + { + return m_DestinationLine.GetName(); + } + DWORD GetIndex() + { + return m_nMixerIndex; + } + + long GetDestinationCount() + { + return 1; + } + + IMixerLineDst* GetDestinationLine(DWORD nIndex) + { + return &m_DestinationLine; + } + + void StoreState() + { + m_DestinationLine.StoreState(); + } + + void RestoreState() + { + m_DestinationLine.RestoreState(); + } + +private: + DWORD m_nMixerIndex; + + CVistaMixerLineDst m_DestinationLine; +}; + + +//---------------------------------------------------------------------- // CMixerFinder //---------------------------------------------------------------------- CMixerList::CMixerList() { - long nMixerCount = mixerGetNumDevs(); - for(long i(0); i < nMixerCount; ++i) + CComPtr<IMMDeviceEnumerator> DeviceEnum; + if(FAILED(DeviceEnum.CoCreateInstance(__uuidof(MMDeviceEnumerator)))) { - SmartPtr<IMixer> NewMixer = new CMixer(i); - m_Mixers.push_back(NewMixer); + // do old school mixer based classed + long nMixerCount = mixerGetNumDevs(); + for(long i(0); i < nMixerCount; ++i) + { + SmartPtr<IMixer> NewMixer = new CMixer(i); + m_Mixers.push_back(NewMixer); + } } + else + { + // do new Vista style approach + CComPtr<IMMDeviceCollection> DeviceCollection; + if(FAILED(DeviceEnum->EnumAudioEndpoints(eRender, DEVICE_STATEMASK_ALL, &DeviceCollection))) + { + throw logic_error("Couldn't enumerate audio endpoints"); + } + UINT Count(0); + if(FAILED(DeviceCollection->GetCount(&Count))) + { + throw logic_error("Couldn't count items in endpoint collection"); + } + for(UINT i(0); i < Count; ++i) + { + CComPtr<IMMDevice> Device; + if(FAILED(DeviceCollection->Item(i, &Device))) + { + throw logic_error("Couldn't get item in endpoint collection"); + } + + SmartPtr<IMixer> NewMixer = new CVistaMixer(i, Device, DeviceEnum); + m_Mixers.push_back(NewMixer); + + // done with this copy of pointer + Device.Release(); + } + } } long CMixerList::GetMixerCount() Modified: trunk/DScaler/DScaler/MixerDevClasses.h =================================================================== --- trunk/DScaler/DScaler/MixerDevClasses.h 2009-04-28 13:49:31 UTC (rev 4583) +++ trunk/DScaler/DScaler/MixerDevClasses.h 2009-04-28 16:09:14 UTC (rev 4584) @@ -154,7 +154,7 @@ DWORD GetIndex(); long GetDestinationCount(); - CMixerLineDst* GetDestinationLine(DWORD nIndex); + IMixerLineDst* GetDestinationLine(DWORD nIndex); void StoreState(); void RestoreState(); @@ -162,10 +162,7 @@ private: HMIXER m_hMixer; MIXERCAPS m_mxcaps; - DWORD m_nMixerIndex; - - DWORD m_nDestinationCount; std::vector< SmartPtr<IMixerLineDst> > m_pDestinationLines; }; @@ -185,6 +182,4 @@ std::vector< SmartPtr<CMixer> > m_Mixers; }; - #endif - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ad...@us...> - 2009-04-28 18:28:10
|
Revision: 4585 http://deinterlace.svn.sourceforge.net/deinterlace/?rev=4585&view=rev Author: adcockj Date: 2009-04-28 18:28:08 +0000 (Tue, 28 Apr 2009) Log Message: ----------- Switched off Vista code for time being and fixed some lifetime issues with older code Modified Paths: -------------- trunk/DScaler/DScaler/MixerDev.cpp trunk/DScaler/DScaler/MixerDevClasses.cpp trunk/DScaler/DScaler/MixerDevClasses.h Modified: trunk/DScaler/DScaler/MixerDev.cpp =================================================================== --- trunk/DScaler/DScaler/MixerDev.cpp 2009-04-28 16:09:14 UTC (rev 4584) +++ trunk/DScaler/DScaler/MixerDev.cpp 2009-04-28 18:28:08 UTC (rev 4585) @@ -321,7 +321,6 @@ return; } - delete g_pCurrentMixer; g_pCurrentMixer = NULL; } @@ -673,11 +672,6 @@ // Synchronize g_pCurrentMixer if (g_pCurrentMixer != pNewMixer) { - if (g_pCurrentMixer != NULL) - { - delete g_pCurrentMixer; - } - g_pCurrentMixer = pNewMixer; } @@ -790,12 +784,6 @@ break; } - // Make sure it's our own - if (g_pDlgActiveMixer != g_pCurrentMixer) - { - delete g_pDlgActiveMixer; - } - g_pDlgActiveMixer = NULL; } @@ -904,10 +892,6 @@ case IDCANCEL: if (g_pDlgActiveMixer != NULL) { - if (g_pDlgActiveMixer != g_pCurrentMixer) - { - delete g_pDlgActiveMixer; - } g_pDlgActiveMixer = NULL; } Modified: trunk/DScaler/DScaler/MixerDevClasses.cpp =================================================================== --- trunk/DScaler/DScaler/MixerDevClasses.cpp 2009-04-28 16:09:14 UTC (rev 4584) +++ trunk/DScaler/DScaler/MixerDevClasses.cpp 2009-04-28 18:28:08 UTC (rev 4585) @@ -605,7 +605,7 @@ CMixerList::CMixerList() { CComPtr<IMMDeviceEnumerator> DeviceEnum; - if(FAILED(DeviceEnum.CoCreateInstance(__uuidof(MMDeviceEnumerator)))) + if(TRUE || FAILED(DeviceEnum.CoCreateInstance(__uuidof(MMDeviceEnumerator)))) { // do old school mixer based classed long nMixerCount = mixerGetNumDevs(); @@ -652,7 +652,14 @@ IMixer* CMixerList::GetMixer(long nMixerIndex) { - return m_Mixers[nMixerIndex]; + if(nMixerIndex >= 0 && nMixerIndex <= m_Mixers.size()) + { + return m_Mixers[nMixerIndex]; + } + else + { + return NULL; + } } long CMixerList::FindMixer(const char* MixerName) Modified: trunk/DScaler/DScaler/MixerDevClasses.h =================================================================== --- trunk/DScaler/DScaler/MixerDevClasses.h 2009-04-28 16:09:14 UTC (rev 4584) +++ trunk/DScaler/DScaler/MixerDevClasses.h 2009-04-28 18:28:08 UTC (rev 4585) @@ -179,7 +179,7 @@ static CMixerList* getInstance(); private: CMixerList(); - std::vector< SmartPtr<CMixer> > m_Mixers; + std::vector< SmartPtr<IMixer> > m_Mixers; }; #endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ad...@us...> - 2009-04-29 12:47:52
|
Revision: 4587 http://deinterlace.svn.sourceforge.net/deinterlace/?rev=4587&view=rev Author: adcockj Date: 2009-04-29 12:47:43 +0000 (Wed, 29 Apr 2009) Log Message: ----------- Make use of d3d9.dll dynamic Modified Paths: -------------- trunk/DScaler/DScaler/D3D9Output.cpp trunk/DScaler/DScaler/DScaler2005.vcproj Modified: trunk/DScaler/DScaler/D3D9Output.cpp =================================================================== --- trunk/DScaler/DScaler/D3D9Output.cpp 2009-04-29 12:21:05 UTC (rev 4586) +++ trunk/DScaler/DScaler/D3D9Output.cpp 2009-04-29 12:47:43 UTC (rev 4587) @@ -31,6 +31,7 @@ #include "SettingsPerChannel.h" #include "SettingsMaster.h" #include "PaintingHDC.h" +#include "DynamicFunction.h" #include <multimon.h> // the instance of the d3d9 object @@ -613,15 +614,19 @@ BOOL CD3D9Output::InitDD(HWND hWnd) { - if( NULL == (g_pD3D = Direct3DCreate9(D3D_SDK_VERSION))) + DynamicFunctionS1<IDirect3D9*, UINT> create3D9("D3D9.dll", "Direct3DCreate9"); + if(!create3D9) { + return FALSE; + } + if( NULL == (g_pD3D = create3D9(D3D_SDK_VERSION))) + { ErrorBox("Direct3DCreate9 failed"); return FALSE; } m_hWnd=hWnd; - // find display adapter HMONITOR hmon=MonitorFromWindow(hWnd, MONITOR_DEFAULTTOPRIMARY); D3DADAPTER_IDENTIFIER9 adapter; Modified: trunk/DScaler/DScaler/DScaler2005.vcproj =================================================================== --- trunk/DScaler/DScaler/DScaler2005.vcproj 2009-04-29 12:21:05 UTC (rev 4586) +++ trunk/DScaler/DScaler/DScaler2005.vcproj 2009-04-29 12:47:43 UTC (rev 4587) @@ -86,7 +86,7 @@ /> <Tool Name="VCLinkerTool" - AdditionalDependencies="COMMODE.OBJ libtiff.lib libjpeg.lib winmm.lib COMCTL32.LIB version.lib htmlhelp.lib vfw32.lib strmiids.lib quartz.lib setupapi.lib d3d9.lib Unicows.lib" + AdditionalDependencies="COMMODE.OBJ libtiff.lib libjpeg.lib winmm.lib COMCTL32.LIB version.lib htmlhelp.lib vfw32.lib strmiids.lib quartz.lib setupapi.lib Unicows.lib" OutputFile="..\Release\DScaler.exe" LinkIncremental="1" SuppressStartupBanner="true" @@ -187,7 +187,7 @@ /> <Tool Name="VCLinkerTool" - AdditionalDependencies="libtiff.lib libjpeg.lib winmm.lib COMCTL32.LIB version.lib htmlhelp.lib vfw32.lib strmiids.lib quartz.lib setupapi.lib d3d9.lib Unicows.lib" + AdditionalDependencies="libtiff.lib libjpeg.lib winmm.lib COMCTL32.LIB version.lib htmlhelp.lib vfw32.lib strmiids.lib quartz.lib setupapi.lib Unicows.lib" OutputFile="..\Debug\DScaler.exe" LinkIncremental="2" SuppressStartupBanner="true" @@ -294,7 +294,7 @@ /> <Tool Name="VCLinkerTool" - AdditionalDependencies="libtiff.lib libjpeg.lib winmm.lib COMCTL32.LIB version.lib htmlhelp.lib vfw32.lib strmiids.lib quartz.lib setupapi.lib d3d9.lib Unicows.lib" + AdditionalDependencies="libtiff.lib libjpeg.lib winmm.lib COMCTL32.LIB version.lib htmlhelp.lib vfw32.lib strmiids.lib quartz.lib setupapi.lib Unicows.lib" OutputFile="..\Debug\DScaler.exe" LinkIncremental="2" SuppressStartupBanner="true" @@ -406,7 +406,7 @@ /> <Tool Name="VCLinkerTool" - AdditionalDependencies="COMMODE.OBJ libtiff.lib libjpeg.lib winmm.lib COMCTL32.LIB version.lib htmlhelp.lib vfw32.lib strmiids.lib quartz.lib setupapi.lib d3d9.lib Unicows.lib" + AdditionalDependencies="COMMODE.OBJ libtiff.lib libjpeg.lib winmm.lib COMCTL32.LIB version.lib htmlhelp.lib vfw32.lib strmiids.lib quartz.lib setupapi.lib Unicows.lib" OutputFile="..\Release\DScaler.exe" LinkIncremental="1" SuppressStartupBanner="true" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ad...@us...> - 2009-05-08 15:20:45
|
Revision: 4590 http://deinterlace.svn.sourceforge.net/deinterlace/?rev=4590&view=rev Author: adcockj Date: 2009-05-08 15:20:43 +0000 (Fri, 08 May 2009) Log Message: ----------- Added missing files from last commit Added Paths: ----------- trunk/DScaler/DScaler/StringHelpers.cpp trunk/DScaler/DScaler/StringHelpers.h Added: trunk/DScaler/DScaler/StringHelpers.cpp =================================================================== --- trunk/DScaler/DScaler/StringHelpers.cpp (rev 0) +++ trunk/DScaler/DScaler/StringHelpers.cpp 2009-05-08 15:20:43 UTC (rev 4590) @@ -0,0 +1,74 @@ +//////////////////////////////////////////////////////////////////////////// +// $Id$ +///////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2009 John Adcock. All rights reserved. +///////////////////////////////////////////////////////////////////////////// +// +// This file is subject to the terms of the GNU General Public License as +// published by the Free Software Foundation. A copy of this license is +// included with this software distribution in the file COPYING. If you +// do not have a copy, you may obtain a copy by writing to the Free +// Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. +// +// This software is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details +///////////////////////////////////////////////////////////////////////////// + +/** + * @file DScalerUtils.cpp + */ + +#include "stdafx.h" +#include "DScalerUtils.h" + +using namespace std; + +BOOL AreEqualInsensitive(const tstring& String1, const tstring& String2) +{ + return _tcsicmp(String1.c_str(), String2.c_str()) == 0; +} + +void Trim(tstring& StringToTrim) +{ +} + + +std::string UnicodeToMBCS(const std::wstring& InString) +{ + //covert to char + int n=WideCharToMultiByte(CP_ACP, 0, InString.c_str(), -1, NULL, 0, NULL, NULL); + vector<char> name(n); + WideCharToMultiByte(CP_ACP, 0, InString.c_str(), -1, &name[0], n, NULL, NULL); + return &name[0]; +} + +std::wstring MBCSToUnicode(const std::string& InString) +{ + //covert to wide char + int n=MultiByteToWideChar(CP_ACP, 0, InString.c_str(), -1, NULL, 0); + vector<wchar_t> name(n); + MultiByteToWideChar(CP_ACP, 0, InString.c_str(), -1, &name[0], n); + return &name[0]; +} + + +tstring ReplaceCharWithString(const tstring& InString, char CharToReplace, const tstring& StringToReplace) +{ + tstring Result; + const TCHAR* CurChar = InString.c_str(); + while (*CurChar != '\0' ) + { + if (*CurChar == CharToReplace ) + { + Result += StringToReplace; + } + else + { + Result += *CurChar; + } + ++CurChar; + } + return Result; +} Property changes on: trunk/DScaler/DScaler/StringHelpers.cpp ___________________________________________________________________ Added: svn:keywords + Id Revision Added: svn:eol-style + native Added: trunk/DScaler/DScaler/StringHelpers.h =================================================================== --- trunk/DScaler/DScaler/StringHelpers.h (rev 0) +++ trunk/DScaler/DScaler/StringHelpers.h 2009-05-08 15:20:43 UTC (rev 4590) @@ -0,0 +1,106 @@ +///////////////////////////////////////////////////////////////////////////// +// $Id$ +///////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2009 John Adcock. All rights reserved. +///////////////////////////////////////////////////////////////////////////// +// +// This file is subject to the terms of the GNU General Public License as +// published by the Free Software Foundation. A copy of this license is +// included with this software distribution in the file COPYING. If you +// do not have a copy, you may obtain a copy by writing to the Free +// Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. +// +// This software is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details +///////////////////////////////////////////////////////////////////////////// + +/** + * @file StringHelpers.h + */ + +#ifndef __STRING_HELPERS_H___ +#define __STRING_HELPERS_H___ + +#include <string> +#include <sstream> + +#define DS_MAKE_CHAR_PTR(__TEXT__) #__TEXT__ + +std::string UnicodeToMBCS(const std::wstring& InString); +std::wstring MBCSToUnicode(const std::string& InString); +__inline std::string MBCSToMBCS(const std::string& InString) {return InString;}; +__inline std::wstring UnicodeToUnicode(const std::wstring& InString) {return InString;}; + + +#ifdef _UNICODE + typedef std::wstring tstring; + typedef std::wstringstream tstringstream; + typedef std::wostringstream tostringstream; + typedef std::wistringstream tistringstream; + #define ADD_API_LETTER(_NAME_) DS_MAKE_CHAR_PTR(_NAME_##W) + #define TStringToMBCS UnicodeToMBCS + #define TStringToUnicode UnicodeToUnicode + #define MBCSToTString MBCSToUnicode + #define UnicodeToTString UnicodeToUnicode +#else + typedef std::string tstring; + typedef std::stringstream tstringstream; + typedef std::ostringstream tostringstream; + typedef std::istringstream tistringstream; + #define ADD_API_LETTER(_NAME_) DS_MAKE_CHAR_PTR(_NAME_##A) + #define TStringToMBCS MBCSToMBCS + #define TStringToUnicode MBCSToUnicode + #define MBCSToTString MBCSToMBCS + #define UnicodeToTString UnicodeToMBCS +#endif + +class MakeString +{ +public: + template <typename T> + MakeString& operator<<(T const & Input) + { + m_Buffer << Input; + return *this; + } + operator tstring () const + { + return m_Buffer.str(); + } +private: + tostringstream m_Buffer; +}; + +template<typename T> +inline tstring ToString(const T& Input) +{ + tostringstream oss; + oss << Input; + return oss.str(); +} + +template<typename T> +inline std::string ToMBCSString(const T& Input) +{ + std::ostringstream oss; + oss << Input; + return oss.str(); +} + +template<typename T> +inline T FromString(const tstring& Input) +{ + T RetVal; + tistringstream iss(Input); + iss >> RetVal; + return RetVal; +} + +BOOL AreEqualInsensitive(const tstring& String1, const tstring& String2); +void Trim(tstring& StringToTrim); + +tstring ReplaceCharWithString(const tstring& InString, char CharToReplace, const tstring& StringToReplace); + +#endif Property changes on: trunk/DScaler/DScaler/StringHelpers.h ___________________________________________________________________ Added: svn:keywords + Id Revision Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ad...@us...> - 2009-05-08 15:22:11
|
Revision: 4591 http://deinterlace.svn.sourceforge.net/deinterlace/?rev=4591&view=rev Author: adcockj Date: 2009-05-08 15:22:05 +0000 (Fri, 08 May 2009) Log Message: ----------- Removed use of ATL string conversion Modified Paths: -------------- trunk/DScaler/DScaler/MixerDevClasses.cpp trunk/DScaler/DScaler/TreeSettingsOleProperties.cpp trunk/DScaler/DScaler/dshowsource/CaptureDevice.cpp trunk/DScaler/DScaler/dshowsource/DShowFileSource.cpp trunk/DScaler/DScaler/dshowsource/DevEnum.cpp trunk/DScaler/DScaler/dshowsource/debug.cpp Modified: trunk/DScaler/DScaler/MixerDevClasses.cpp =================================================================== --- trunk/DScaler/DScaler/MixerDevClasses.cpp 2009-05-08 15:20:43 UTC (rev 4590) +++ trunk/DScaler/DScaler/MixerDevClasses.cpp 2009-05-08 15:22:05 UTC (rev 4591) @@ -372,14 +372,13 @@ // may not be very friendly, need to test tstring GetDeviceName(CComPtr<IMMDevice>& Device) { - USES_CONVERSION; LPWSTR Id = NULL; Device->GetId(&Id); if(Id == NULL) { throw logic_error("Can't get device name"); } - tstring result(OLE2T(Id)); + tstring result(UnicodeToTString(Id)); CoTaskMemFree(Id); return result; } Modified: trunk/DScaler/DScaler/TreeSettingsOleProperties.cpp =================================================================== --- trunk/DScaler/DScaler/TreeSettingsOleProperties.cpp 2009-05-08 15:20:43 UTC (rev 4590) +++ trunk/DScaler/DScaler/TreeSettingsOleProperties.cpp 2009-05-08 15:22:05 UTC (rev 4591) @@ -116,8 +116,6 @@ BOOL CTreeSettingsOleProperties::OnInitDialog(HWND hDlg, HWND hwndFocus, LPARAM lParam) { - USES_CONVERSION; - m_tabCtrl = GetDlgItem(hDlg, IDD_TREESETTINGS_TAB); //find maximum width and height of the pages @@ -158,7 +156,7 @@ HRESULT hr=m_pages[i]->m_pPropertyPage->GetPageInfo(&pageInfo); if(SUCCEEDED(hr)) { - TabCtrl_InsertItem(m_tabCtrl, i,OLE2T(pageInfo.pszTitle)); + TabCtrl_InsertItem(m_tabCtrl, i,UnicodeToTString(pageInfo.pszTitle).c_str()); hr=m_pages[i]->m_pPropertyPage->Activate(m_tabCtrl, &rect, FALSE); if(SUCCEEDED(hr)) { Modified: trunk/DScaler/DScaler/dshowsource/CaptureDevice.cpp =================================================================== --- trunk/DScaler/DScaler/dshowsource/CaptureDevice.cpp 2009-05-08 15:20:43 UTC (rev 4590) +++ trunk/DScaler/DScaler/dshowsource/CaptureDevice.cpp 2009-05-08 15:22:05 UTC (rev 4591) @@ -40,8 +40,6 @@ CDShowCaptureDevice::CDShowCaptureDevice(IGraphBuilder *pGraph,tstring device,tstring deviceName,BOOL bConnectAudio) :CDShowBaseSource(pGraph),m_bIsConnected(FALSE),m_pCrossbar(NULL),m_pTVTuner(NULL),m_pTVAudio(NULL),m_bConnectAudio(bConnectAudio) { - USES_CONVERSION; - HRESULT hr=m_pBuilder.CoCreateInstance(CLSID_CaptureGraphBuilder2); if(FAILED(hr)) { Modified: trunk/DScaler/DScaler/dshowsource/DShowFileSource.cpp =================================================================== --- trunk/DScaler/DScaler/dshowsource/DShowFileSource.cpp 2009-05-08 15:20:43 UTC (rev 4590) +++ trunk/DScaler/DScaler/dshowsource/DShowFileSource.cpp 2009-05-08 15:22:05 UTC (rev 4591) @@ -36,7 +36,6 @@ CDShowFileSource::CDShowFileSource(IGraphBuilder *pGraph,tstring filename) :CDShowBaseSource(pGraph),m_file(filename),m_bIsConnected(FALSE) { - USES_CONVERSION; HRESULT hr=m_pBuilder.CoCreateInstance(CLSID_CaptureGraphBuilder2); if(FAILED(hr)) { @@ -66,7 +65,6 @@ void CDShowFileSource::Connect(CComPtr<IBaseFilter> VideoFilter) { - USES_CONVERSION; HRESULT hr; //is this a grf file? grf files needs special handling Modified: trunk/DScaler/DScaler/dshowsource/DevEnum.cpp =================================================================== --- trunk/DScaler/DScaler/dshowsource/DevEnum.cpp 2009-05-08 15:20:43 UTC (rev 4590) +++ trunk/DScaler/DScaler/dshowsource/DevEnum.cpp 2009-05-08 15:22:05 UTC (rev 4591) @@ -90,9 +90,8 @@ WCHAR *szDisplayName=NULL; if(SUCCEEDED(pMoniker->GetDisplayName(NULL,NULL,&szDisplayName))) { - USES_CONVERSION; - m_DisplayName = szDisplayName ? OLE2T(szDisplayName) : _T(""); + m_DisplayName = szDisplayName ? UnicodeToTString(szDisplayName) : _T(""); CoTaskMemFree(szDisplayName); } else Modified: trunk/DScaler/DScaler/dshowsource/debug.cpp =================================================================== --- trunk/DScaler/DScaler/dshowsource/debug.cpp 2009-05-08 15:20:43 UTC (rev 4590) +++ trunk/DScaler/DScaler/dshowsource/debug.cpp 2009-05-08 15:22:05 UTC (rev 4591) @@ -118,7 +118,6 @@ void DumpPreferredMediaTypes(CComPtr<IBaseFilter> pFilter,tstring &text) { - USES_CONVERSION; tostringstream str; CDShowPinEnum pins(pFilter); @@ -129,7 +128,7 @@ HRESULT hr=pFilter->QueryFilterInfo(&FilterInfo); if(SUCCEEDED(hr)) { - str << W2A(FilterInfo.achName) << _T("---") << endl; + str << UnicodeToTString(FilterInfo.achName) << _T("---") << endl; } else { @@ -151,7 +150,7 @@ hr=pin->QueryPinInfo(&PinInfo); if(SUCCEEDED(hr)) { - str << W2A(PinInfo.achName); + str << UnicodeToTString(PinInfo.achName); } else { @@ -207,7 +206,6 @@ void DumpFilter(CComPtr<IBaseFilter> pFilter,tstring &text) { - USES_CONVERSION; tostringstream str; CDShowPinEnum pins(pFilter); FILTER_INFO FilterInfo; @@ -216,7 +214,7 @@ HRESULT hr=pFilter->QueryFilterInfo(&FilterInfo); if(SUCCEEDED(hr)) { - str << _T("---") << W2A(FilterInfo.achName) << _T("---") << endl; + str << _T("---") << UnicodeToTString(FilterInfo.achName) << _T("---") << endl; } else { @@ -236,7 +234,7 @@ hr=pin->QueryPinInfo(&PinInfo); if(SUCCEEDED(hr)) { - str << _T(" ---") << W2A(PinInfo.achName); + str << _T(" ---") << UnicodeToTString(PinInfo.achName); } else { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ad...@us...> - 2009-05-08 17:03:06
|
Revision: 4593 http://deinterlace.svn.sourceforge.net/deinterlace/?rev=4593&view=rev Author: adcockj Date: 2009-05-08 17:02:47 +0000 (Fri, 08 May 2009) Log Message: ----------- Use Smart pointers for channel list Modified Paths: -------------- trunk/DScaler/DScaler/Channels.cpp trunk/DScaler/DScaler/Channels.h Modified: trunk/DScaler/DScaler/Channels.cpp =================================================================== --- trunk/DScaler/DScaler/Channels.cpp 2009-05-08 15:26:03 UTC (rev 4592) +++ trunk/DScaler/DScaler/Channels.cpp 2009-05-08 17:02:47 UTC (rev 4593) @@ -550,7 +550,6 @@ CCountryList::~CCountryList() { - Clear(); } int CCountryList::GetSize() const @@ -560,12 +559,6 @@ void CCountryList::Clear() { - for(Countries::iterator it = m_Countries.begin(); - it != m_Countries.end(); - ++it) - { - delete (*it); - } m_Countries.clear(); } Modified: trunk/DScaler/DScaler/Channels.h =================================================================== --- trunk/DScaler/DScaler/Channels.h 2009-05-08 15:26:03 UTC (rev 4592) +++ trunk/DScaler/DScaler/Channels.h 2009-05-08 17:02:47 UTC (rev 4593) @@ -181,7 +181,7 @@ BOOL ReadASCIIImpl(FILE*); //could be a map too..would be better for lookups - typedef std::vector<CCountryChannels*> Countries; + typedef std::vector<SmartPtr<CCountryChannels>> Countries; Countries m_Countries; }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ad...@us...> - 2009-05-09 13:25:34
|
Revision: 4595 http://deinterlace.svn.sourceforge.net/deinterlace/?rev=4595&view=rev Author: adcockj Date: 2009-05-09 13:25:19 +0000 (Sat, 09 May 2009) Log Message: ----------- Simplify handling of UWM_DEINTERLACE_SETSTATUS Modified Paths: -------------- trunk/DScaler/DScaler/DScaler.cpp trunk/DScaler/DScaler/Deinterlace.cpp Modified: trunk/DScaler/DScaler/DScaler.cpp =================================================================== --- trunk/DScaler/DScaler/DScaler.cpp 2009-05-09 11:54:34 UTC (rev 4594) +++ trunk/DScaler/DScaler/DScaler.cpp 2009-05-09 13:25:19 UTC (rev 4595) @@ -3928,9 +3928,10 @@ break; case UWM_DEINTERLACE_SETSTATUS: - if(wParam!=NULL) + if(lParam!=NULL) { - StatusBar_ShowText(STATUS_MODE,(LPCTSTR)wParam); + tstring Status(MBCSToTString((LPCSTR)lParam)); + StatusBar_ShowText(STATUS_MODE, Status); } return 0; break; Modified: trunk/DScaler/DScaler/Deinterlace.cpp =================================================================== --- trunk/DScaler/DScaler/Deinterlace.cpp 2009-05-09 11:54:34 UTC (rev 4594) +++ trunk/DScaler/DScaler/Deinterlace.cpp 2009-05-09 13:25:19 UTC (rev 4595) @@ -172,12 +172,7 @@ ///This function is called from the output thread. void Deinterlace_SetStatus(LPCSTR StatusText) { - size_t len=strlen(StatusText); - if(len>0) - { - static tstring StringToShow(MBCSToTString(StatusText)); - PostMessageToMainWindow(UWM_DEINTERLACE_SETSTATUS, (WPARAM)StringToShow.c_str(),0); - } + PostMessageToMainWindow(UWM_DEINTERLACE_SETSTATUS, 0, (LPARAM)StatusText); } void ResetDeinterlaceStats() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ad...@us...> - 2009-05-10 21:32:10
|
Revision: 4598 http://deinterlace.svn.sourceforge.net/deinterlace/?rev=4598&view=rev Author: adcockj Date: 2009-05-10 21:32:01 +0000 (Sun, 10 May 2009) Log Message: ----------- Use shared pointer to avoid double delete of Hardware driver Modified Paths: -------------- trunk/DScaler/DScaler/CX2388xProvider.cpp trunk/DScaler/DScaler/CX2388xProvider.h trunk/DScaler/DScaler/Providers.cpp Modified: trunk/DScaler/DScaler/CX2388xProvider.cpp =================================================================== --- trunk/DScaler/DScaler/CX2388xProvider.cpp 2009-05-10 19:12:52 UTC (rev 4597) +++ trunk/DScaler/DScaler/CX2388xProvider.cpp 2009-05-10 21:32:01 UTC (rev 4598) @@ -34,7 +34,7 @@ #include "CX2388xProvider.h" #include "CX2388xSource.h" -CCX2388xProvider::CCX2388xProvider(CHardwareDriver* pHardwareDriver) +CCX2388xProvider::CCX2388xProvider(SmartPtr<CHardwareDriver> pHardwareDriver) { TCHAR szSection[12]; BOOL IsMemoryInitialized = FALSE; @@ -80,7 +80,7 @@ } -SmartPtr<CCX2388xSource> CCX2388xProvider::CreateCorrectSource(CHardwareDriver* pHardwareDriver, LPCTSTR szSection, WORD VendorID, WORD DeviceID, int DeviceIndex, DWORD SubSystemId) +SmartPtr<CCX2388xSource> CCX2388xProvider::CreateCorrectSource(SmartPtr<CHardwareDriver> pHardwareDriver, LPCTSTR szSection, WORD VendorID, WORD DeviceID, int DeviceIndex, DWORD SubSystemId) { // \todo use the subsystem id to create the correct specilized version of the card SmartPtr<CCX2388xCard> pNewCard = new CCX2388xCard(pHardwareDriver); @@ -112,7 +112,7 @@ } } -BOOL CCX2388xProvider::MemoryInit(CHardwareDriver* pHardwareDriver) +BOOL CCX2388xProvider::MemoryInit(SmartPtr<CHardwareDriver> pHardwareDriver) { try { Modified: trunk/DScaler/DScaler/CX2388xProvider.h =================================================================== --- trunk/DScaler/DScaler/CX2388xProvider.h 2009-05-10 19:12:52 UTC (rev 4597) +++ trunk/DScaler/DScaler/CX2388xProvider.h 2009-05-10 21:32:01 UTC (rev 4598) @@ -38,21 +38,21 @@ class CCX2388xProvider : public ISourceProvider { public: - CCX2388xProvider(CHardwareDriver* pHardwareDriver); + CCX2388xProvider(SmartPtr<CHardwareDriver> pHardwareDriver); virtual ~CCX2388xProvider(); int GetNumberOfSources(); SmartPtr<CSource> GetSource(int SourceIndex); private: /// uses the subsystem id to determin the correct source to create SmartPtr<CCX2388xSource> CreateCorrectSource( - CHardwareDriver* pHardwareDriver, + SmartPtr<CHardwareDriver> pHardwareDriver, LPCTSTR szSection, WORD VendorID, WORD DeviceID, int DeviceIndex, DWORD SubSystemId); /// creates the system accesable memory to be used by all cards - BOOL MemoryInit(CHardwareDriver* pHardwareDriver); + BOOL MemoryInit(SmartPtr<CHardwareDriver> pHardwareDriver); void MemoryFree(); std::vector< SmartPtr<CCX2388xSource> > m_Sources; /// Memory used for the RISC code Modified: trunk/DScaler/DScaler/Providers.cpp =================================================================== --- trunk/DScaler/DScaler/Providers.cpp 2009-05-10 19:12:52 UTC (rev 4597) +++ trunk/DScaler/DScaler/Providers.cpp 2009-05-10 21:32:01 UTC (rev 4598) @@ -146,7 +146,7 @@ #endif // WANT_BT8X8_SUPPORT #ifdef WANT_CX2388X_SUPPORT - CX2388xProvider = new CCX2388xProvider(HardwareDriver.GetRawPointer()); + CX2388xProvider = new CCX2388xProvider(HardwareDriver); // if we have any of these cards warn the user about the driver issues // hopefully this will be enought to get a new release out This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ad...@us...> - 2009-07-08 15:22:15
|
Revision: 4645 http://deinterlace.svn.sourceforge.net/deinterlace/?rev=4645&view=rev Author: adcockj Date: 2009-07-08 15:22:14 +0000 (Wed, 08 Jul 2009) Log Message: ----------- Fixes for VBI in unicode mode. Modified Paths: -------------- trunk/DScaler/DScaler/VBI_VideoText.cpp trunk/DScaler/DScaler/VTDecoder.cpp Modified: trunk/DScaler/DScaler/VBI_VideoText.cpp =================================================================== --- trunk/DScaler/DScaler/VBI_VideoText.cpp 2009-07-08 15:19:06 UTC (rev 4644) +++ trunk/DScaler/DScaler/VBI_VideoText.cpp 2009-07-08 15:22:14 UTC (rev 4645) @@ -109,7 +109,7 @@ BOOL VTShowOSD = FALSE; TCHAR VTOSDBuffer[4] = _T(""); -TCHAR* VTPageOSD = NULL; +TCHAR* VTPageOSD = NULL; TCHAR VTPageInput[4] = _T(""); // This variable controls the display duration for VT_ShowHeader(); @@ -1643,7 +1643,7 @@ void VT_SetPageOSD(TCHAR OSD[3]) { - TCHAR szOSD[9]; + char szOSD[9]; if (OSD == NULL) { @@ -1652,18 +1652,18 @@ if (VTShowSubcodeInOSD != FALSE && LOWORD(VTLoadedPageCode) == VTPageHex) { - _stprintf(szOSD, _T("%03X/%-4X"), VTPageHex, HIWORD(VTLoadedPageCode)); + sprintf(szOSD, "%03X/%-4X", VTPageHex, HIWORD(VTLoadedPageCode)); } else { - _stprintf(szOSD, _T(" P%03X \x07"), VTPageHex); + sprintf(szOSD, " P%03X \x07", VTPageHex); } } else { BOOL bSpace = FALSE; - CopyMemory(VTOSDBuffer, OSD, 3); + CopyMemory(VTOSDBuffer, OSD, 3 * sizeof(TCHAR)); for (BYTE i = 0; i < 3; i++) { @@ -1676,7 +1676,7 @@ VTPageOSD = VTOSDBuffer; - _stprintf(szOSD, _T(" P%c%c%c \x07"), VTPageOSD[0], VTPageOSD[1], VTPageOSD[2]); + sprintf(szOSD, " P%c%c%c \x07", VTPageOSD[0], VTPageOSD[1], VTPageOSD[2]); } CopyMemory(VTVisiblePage.Frame[0], szOSD, 8); @@ -1997,9 +1997,9 @@ } else { - TCHAR szOldClock[8]; + char szOldClock[8]; - CopyMemory(szOldClock, &VTVisiblePage.Frame[0][32], 8 * sizeof(TCHAR)); + CopyMemory(szOldClock, &VTVisiblePage.Frame[0][32], 8); VTDecoder.GetDisplayHeader(&VTVisiblePage, TRUE); // Only redraw the clock if it changed Modified: trunk/DScaler/DScaler/VTDecoder.cpp =================================================================== --- trunk/DScaler/DScaler/VTDecoder.cpp 2009-07-08 15:19:06 UTC (rev 4644) +++ trunk/DScaler/DScaler/VTDecoder.cpp 2009-07-08 15:22:14 UTC (rev 4645) @@ -1708,7 +1708,7 @@ { vector<TCHAR> Buffer(sizeof(m_BroadcastServiceData.StatusDisplay) + 1); EnterCriticalSection(&m_ServiceDataStoreMutex); - CheckParity((BYTE*)&Buffer[0], sizeof(m_BroadcastServiceData.StatusDisplay), TRUE); + CheckParity((BYTE*)m_BroadcastServiceData.StatusDisplay, sizeof(m_BroadcastServiceData.StatusDisplay), TRUE); Buffer.assign((char*)m_BroadcastServiceData.StatusDisplay, (char*)m_BroadcastServiceData.StatusDisplay + sizeof(m_BroadcastServiceData.StatusDisplay)); LeaveCriticalSection(&m_ServiceDataStoreMutex); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ad...@us...> - 2009-07-08 15:24:22
|
Revision: 4647 http://deinterlace.svn.sourceforge.net/deinterlace/?rev=4647&view=rev Author: adcockj Date: 2009-07-08 15:24:19 +0000 (Wed, 08 Jul 2009) Log Message: ----------- Change access to channels to avoid deleting the channels too early Modified Paths: -------------- trunk/DScaler/DScaler/Channels.cpp trunk/DScaler/DScaler/Channels.h trunk/DScaler/DScaler/ProgramList.cpp trunk/DScaler/DScaler/ScheduledRecording.cpp Modified: trunk/DScaler/DScaler/Channels.cpp =================================================================== --- trunk/DScaler/DScaler/Channels.cpp 2009-07-08 15:23:02 UTC (rev 4646) +++ trunk/DScaler/DScaler/Channels.cpp 2009-07-08 15:24:19 UTC (rev 4647) @@ -150,13 +150,13 @@ return m_MaxFrequency; } -SmartPtr<CChannel> CChannelList::GetChannel(int index) const +const CChannel* CChannelList::GetChannel(int index) const { return m_Channels[index]; } -SmartPtr<CChannel> CChannelList::GetChannelByNumber(int iChannelNumber) +const CChannel* CChannelList::GetChannelByNumber(int iChannelNumber) { SmartPtr<CChannel> returned; @@ -173,7 +173,7 @@ return returned; } -SmartPtr<CChannel> CChannelList::GetChannelByFrequency(DWORD dwFreq) +const CChannel* CChannelList::GetChannelByFrequency(DWORD dwFreq) { SmartPtr<CChannel> returned; @@ -239,8 +239,8 @@ return; } - SmartPtr<CChannel> channelA = GetChannel(a); - SmartPtr<CChannel> channelB = GetChannel(b); + SmartPtr<CChannel> channelA(m_Channels[a]); + SmartPtr<CChannel> channelB(m_Channels[b]); m_Channels[a] = channelB; m_Channels[b] = channelA; @@ -684,13 +684,9 @@ SmartPtr<CChannel> NewChannel; if (channelName.length() < 2) { - channelName = MakeString() << _T("Channel ") << channelNumber; - NewChannel = new CChannel(channelName.c_str(), freq, channelNumber, Format, FALSE); + channelName = MakeString() << _T("; Channel ") << channelNumber; } - else - { - NewChannel = new CChannel(channelName.c_str(), freq, channelNumber, Format, FALSE); - } + NewChannel = new CChannel(channelName.c_str() + 2, freq, channelNumber, Format, FALSE); NewCountry->AddChannel(NewChannel); } channelCounter++; Modified: trunk/DScaler/DScaler/Channels.h =================================================================== --- trunk/DScaler/DScaler/Channels.h 2009-07-08 15:23:02 UTC (rev 4646) +++ trunk/DScaler/DScaler/Channels.h 2009-07-08 15:24:19 UTC (rev 4647) @@ -74,11 +74,11 @@ DWORD GetHigherFrequency() const; - SmartPtr<CChannel> GetChannel(int iChannelIndex) const; + const CChannel* GetChannel(int iChannelIndex) const; - SmartPtr<CChannel> GetChannelByNumber(int iChannelNumber); //May return NULL + const CChannel* GetChannelByNumber(int iChannelNumber); //May return NULL - SmartPtr<CChannel> GetChannelByFrequency(DWORD dwFreq); //May return NULL + const CChannel* GetChannelByFrequency(DWORD dwFreq); //May return NULL //The given channel will be destroyed when list is cleared void AddChannel(SmartPtr<CChannel>); Modified: trunk/DScaler/DScaler/ProgramList.cpp =================================================================== --- trunk/DScaler/DScaler/ProgramList.cpp 2009-07-08 15:23:02 UTC (rev 4646) +++ trunk/DScaler/DScaler/ProgramList.cpp 2009-07-08 15:24:19 UTC (rev 4647) @@ -216,7 +216,7 @@ } -void UpdateDetails(HWND hDlg, SmartPtr<CChannel> pChannel) +void UpdateDetails(HWND hDlg, const CChannel* pChannel) { static TCHAR sbuf[256]; MyInUpdate = TRUE; @@ -305,7 +305,7 @@ for(int i = 0; i < MyChannels.GetSize(); i++) { - CChannel* Channel = MyChannels.GetChannel(i).GetRawPointer(); + const CChannel* Channel = MyChannels.GetChannel(i); _stprintf(sbuf, _T("%s"), Channel->GetName()); ListBox_AddString(GetDlgItem(hDlg, IDC_PROGRAMLIST), sbuf); } @@ -340,7 +340,7 @@ const CCountryChannels* channels = MyCountries.GetChannels(iCountryCode); for(int i = 0; i < channels->GetSize(); i++) { - CChannel* channel = channels->GetChannel(i).GetRawPointer(); + const CChannel* channel = channels->GetChannel(i); // Channel names not yet available so adding name // to combo a bit pointless, the class does support this for the // future though @@ -588,7 +588,7 @@ MyInUpdate = TRUE; - CChannel* channel = MyCountries.GetChannels(iCountryCode)->GetChannel(iCurrentChannelIndex).GetRawPointer(); + const CChannel* channel = MyCountries.GetChannels(iCountryCode)->GetChannel(iCurrentChannelIndex); UpdateDetails(hDlg, channel); // don't attempt to scan duplicate frequencies @@ -672,7 +672,7 @@ MyInUpdate = TRUE; - CChannel* channel = MyCountries.GetChannels(iCountryCode)->GetChannel(iCurrentChannelIndex).GetRawPointer(); + const CChannel* channel = MyCountries.GetChannels(iCountryCode)->GetChannel(iCurrentChannelIndex); UpdateDetails(hDlg, channel); DWORD ReturnedFreq = FindFrequency(channel->GetFrequency(), channel->GetFormat(), 0); @@ -893,7 +893,7 @@ ComboBox_AddString(GetDlgItem(hDlg, IDC_FORMAT), _T("Same as Tuner")); for(i = 0; i < VIDEOFORMAT_LAST_TV; ++i) { - ComboBox_AddString(GetDlgItem(hDlg, IDC_FORMAT), VideoFormatNames[i]); + ComboBox_AddString(GetDlgItem(hDlg, IDC_FORMAT), MBCSToTString(VideoFormatNames[i]).c_str()); } ComboBox_AddString(GetDlgItem(hDlg, IDC_FORMAT), _T("Tuner default")); ComboBox_AddString(GetDlgItem(hDlg, IDC_FORMAT), _T("FM Radio")); Modified: trunk/DScaler/DScaler/ScheduledRecording.cpp =================================================================== --- trunk/DScaler/DScaler/ScheduledRecording.cpp 2009-07-08 15:23:02 UTC (rev 4646) +++ trunk/DScaler/DScaler/ScheduledRecording.cpp 2009-07-08 15:24:19 UTC (rev 4647) @@ -351,11 +351,11 @@ int count = MyChannels.GetSize(); tstring channel_name; - CChannel* channel; + const CChannel* channel; for(int i=0;i<count;i++) { - channel = MyChannels.GetChannel(i).GetRawPointer(); + channel = MyChannels.GetChannel(i); if(!channel) continue; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |