123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- #ifndef NULLSOFT_GEN_FF_ALBUMART_H
- #define NULLSOFT_GEN_FF_ALBUMART_H
- #include <api/wnd/wndclass/bufferpaintwnd.h>
- #include <api/skin/widgets/layer.h>
- #include <api/syscb/callbacks/metacb.h>
- #define ALBUMART_PARENT Layer
- static const GUID albumArtGuid =
- { 0x6dcb05e4, 0x8ac4, 0x48c2, { 0xb1, 0x93, 0x49, 0xf0, 0x91, 0xe, 0xf5, 0x4a } };
- class AlbumArtScriptController : public LayerScriptController
- {
- public:
- virtual const wchar_t *getClassName();
- virtual const wchar_t *getAncestorClassName();
- virtual ScriptObjectController *getAncestorController() { return layerController; }
- virtual int getNumFunctions();
- virtual const function_descriptor_struct *getExportedFunctions();
- virtual GUID getClassGuid();
- virtual ScriptObject *instantiate();
- virtual void destroy(ScriptObject *o);
- virtual void *encapsulate(ScriptObject *o);
- virtual void deencapsulate(void *o);
- private:
- static function_descriptor_struct exportedFunction[];
-
- };
- extern AlbumArtScriptController *albumartController;
- class AlbumArtThreadContext;
- class AlbumArt : public ALBUMART_PARENT,
- public CoreCallbackI,
- public MetadataCallbackI
- {
- public:
- AlbumArt();
- ~AlbumArt();
- protected:
- void metacb_ArtUpdated(const wchar_t *filename);
- virtual int corecb_onUrlChange(const wchar_t *filename);
- virtual int onInit();
-
- int setXuiParam(int _xuihandle, int attrid, const wchar_t *name, const wchar_t *strval);
- int skincb_onColorThemeChanged(const wchar_t *newcolortheme);
-
- bool LoadArt(AlbumArtThreadContext *context, HANDLE thread_to_notify);
-
- SkinBitmap *getBitmap();
- bool layer_isInvalid();
- void onSetVisible(int show);
- void CreateXMLParameters(int master_handle);
- private:
- void layer_adjustDest(RECT *r);
- int w,h;
- int valign;
- int align;
- bool stretched;
- bool forceRefresh;
- bool noAutoRefresh;
- bool noMakiCallback;
- volatile int isLoading;
- void ArtLoaded(int _w, int _h, ARGB32 *_bits);
- StringW src_file;
- ARGB32 *bits;
- SkinBitmap *artBitmap;
- AutoSkinBitmap missing_art_image;
- volatile LONG iterator;
- HANDLE thread_semaphore, hMainThread;
- friend class AlbumArtThreadContext;
- private:
-
- enum
- {
- ALBUMART_NOTFOUNDIMAGE,
- ALBUMART_SOURCE,
- ALBUMART_VALIGN,
- ALBUMART_ALIGN,
- ALBUMART_STRETCHED,
- ALBUMART_NOREFRESH
- };
- static XMLParamPair params[];
- int xuihandle;
- public:
- static scriptVar script_vcpu_refresh(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
- static scriptVar script_vcpu_onAlbumArtLoaded(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar success);
- static scriptVar script_vcpu_isLoading(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
- };
- extern const wchar_t albumArtXuiObjectStr[];
- extern char albumArtXuiSvcName[];
- class AlbumArtXuiSvc : public XuiObjectSvc<AlbumArt, albumArtXuiObjectStr, albumArtXuiSvcName> {};
- #endif
|