Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

full screen display #12

Open
wants to merge 77 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
a06bf26
Fixed Context Menu run on wrong album
Sep 11, 2020
16a5a12
Trying to decouple library, having a hard time compiling : (
Sep 27, 2020
40323d9
Configuration data & binding
Sep 27, 2020
22867b7
Updated configuration panel
Sep 27, 2020
76db6f7
Context menu for playlist mode
Sep 27, 2020
fa455b9
Playlist mode callbacks
Sep 27, 2020
ca0f8ab
Continue playlist mode implementation
Sep 27, 2020
e587974
Fix latest Selection related commit
Sep 27, 2020
8ea0d06
Enable album cover Png alpha channel
Sep 28, 2020
a0ca3ca
Get target album for each mode
Sep 29, 2020
32b21c8
Bits and pieces left behing in other commits
Sep 29, 2020
5e3a94d
Cover title and alpha channel override from cover scripts
Sep 29, 2020
ed30378
Hack to select album art while browsing through covers
Sep 29, 2020
09aa5a6
libPPUI updated VC project
Sep 29, 2020
15fca75
Also default source and target folders are now equal
Sep 30, 2020
84a401a
Also default source and target folders are now equal
Sep 30, 2020
75a15f7
Also default source and target folders are now equal
Sep 30, 2020
6910899
Finally time has come to start cleaning and tidying sources
Sep 30, 2020
eccec1e
Cleaning and tidying sources
Oct 1, 2020
844eb66
Source playlist combobox check for non-existing default playlist
Oct 2, 2020
315afc4
Update preview version to 0.5.2-mod-preview3
Oct 2, 2020
fc9df41
Custom Actions flags revised
Oct 2, 2020
593698c
Enum for source playlist checks
Oct 2, 2020
5bf99af
Fixed Bug in trackpos & new playlist focus callback
Oct 3, 2020
a018a72
Update preview version to 0.5.2-mod-preview4
Oct 3, 2020
b608eb0
Refresh Playlist Covers not following selection
Oct 7, 2020
d03c2ef
Some misc cleaning
Oct 7, 2020
79aa62d
Fix access to preferences from installed library viewers
Oct 7, 2020
b71a676
Refresh cover list on first addition to an empty list
Oct 8, 2020
f31f7f9
Misc code formatting corrections
Jan 23, 2021
6b30ed3
Error popup typo
Jan 23, 2021
58111d3
Add Playlist Activation option to custom actions (available from fb2k…
Jan 23, 2021
081de76
Add Playlist Activation option checkboxes
Jan 23, 2021
61879bc
Release 0 5 2-mod-preview5
Jan 23, 2021
f597825
x64 & dark mode
Sep 5, 2022
2ea7023
enable x64 js syntax checker
Sep 6, 2022
31b4479
v0.5.2.mod.7
Sep 7, 2022
e6269fa
fix library views list multiple enumeration (fb2k preference panel)
Oct 14, 2022
25735da
rev preference panel (init font name, confirmation dlgs dark mode)
Oct 17, 2022
5bfe810
rename ctxshow
Oct 17, 2022
dfe2f76
include ver.rc (0.5.2.mod.9)
Oct 17, 2022
c613b6a
fix active playlist selections (0.5.2.mod10)
Jan 16, 2023
781a493
fix external selections callback crashing an empty filtered coverflow
Feb 23, 2023
80b7edb
Barebone ActiveX interface chron.IChronControl (./com/info.txt)
Mar 15, 2023
e43fa7e
v0.5.2.mod.12
Mar 15, 2023
2876cfa
IChronControl: Fix invalid paramenter crash and refresh after color u…
Mar 16, 2023
3a28ebc
v0.5.2.mod.13
Mar 16, 2023
b22fe50
Fix MIDL .tlb post build event
Mar 18, 2023
37b4627
v0.5.2.mod.14
Mar 18, 2023
1fb5948
Move CoRevokeClass to ~container
Mar 20, 2023
6200c4f
Add refresh + fix hex color param
Mar 20, 2023
7952f21
v0.5.2.mod.15
Mar 20, 2023
61a0a49
Add fb2k SDK version/target to About component
May 13, 2023
cd00b0e
v0.5.2.mod.16
May 13, 2023
3c37f2a
Add AlbumArt Mirror.js
Aug 13, 2023
428efb8
CoverConfig: disable carrousel & fix crash with depricated built-ins
Aug 13, 2023
7388dfb
Config data and bindings x UI
Aug 13, 2023
29350a7
Container window x UI config
Aug 13, 2023
4d8e97c
DUI/CUI UI instance config
Aug 13, 2023
040ad12
Engine windows ImageGlass menu option, x UI container proxy
Aug 13, 2023
7ee4c74
PlaylistCallback x UI
Aug 13, 2023
81a00a1
Engine messages x UI
Aug 13, 2023
c095ed4
Extended x UI context menu
Aug 13, 2023
3dcf8d2
Engine, Reload worker and tracer x UI
Aug 13, 2023
b0ae8ec
Engine thread stub and Playback callbacks x UI
Aug 13, 2023
e76db27
Db album collection x UI
Aug 13, 2023
126b338
Selections x UI
Aug 13, 2023
de57102
Msc const and casts
Aug 13, 2023
0b269d2
Disable carousel
Aug 13, 2023
e317dd4
Updated resources
Aug 13, 2023
1e7ce20
Msc leftovers, const and cast (cont)
Aug 13, 2023
53cdc04
v0.5.2.mod.17
Aug 13, 2023
c4dac0e
v1.18.0
Aug 18, 2023
f6d2de6
Fix apply default Cover from preference dlg
Oct 4, 2023
0d61c39
v1.18.2: patch play drop-down library action
Oct 26, 2023
d7e1902
v1.18.3: WebP album art support
Aug 25, 2024
33b0614
v1.18.4: New library action 'Open image viewer'
Sep 1, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions BlockingQueue.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
#include <deque>
#include <mutex>

namespace engine {

template <typename T>
class BlockingQueue {
private:
Expand Down Expand Up @@ -44,3 +46,4 @@ class BlockingQueue {
return {std::move(rc)};
}
};
} // namespace
90 changes: 90 additions & 0 deletions COM_ClassFactory.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
#include "COM_ClassFactory.h"
#include "COM_ICoverflowControl.h"

void LockModule(BOOL bLock)
{
if (bLock) {
InterlockedIncrement(&g_lLocks);
} else {
InterlockedDecrement(&g_lLocks);
}
}

CoverflowClassFactory::CoverflowClassFactory()
{
m_refCount = 0;

g_srvObjCount++;
}

CoverflowClassFactory::~CoverflowClassFactory()
{
g_srvObjCount--;
}

STDMETHODIMP_(ULONG) CoverflowClassFactory::AddRef()
{
LockModule(TRUE);
return 2;
}

STDMETHODIMP_(ULONG) CoverflowClassFactory::Release()
{
LockModule(FALSE);
return 1;
}

STDMETHODIMP CoverflowClassFactory::QueryInterface(REFIID riid, LPVOID *ppAny)
{
#pragma warning(push)
#pragma warning(disable : 4838)
static const QITAB qit[] = {
QITABENT(CoverflowClassFactory, IClassFactory),
{0},
};
#pragma warning(pop)
return QISearch(this, qit, riid, ppAny);
}

STDMETHODIMP CoverflowClassFactory::CreateInstance(IUnknown* pUnkOuter, REFIID riid,
void** ppvObj) {
_Module.DllRegisterServer(TRUE);

HRESULT hr;

*ppvObj = nullptr;

if (pUnkOuter != nullptr) {
return CLASS_E_NOAGGREGATION;
}

ICoverflowControl* pControl = new ICoverflowControl();


if (pControl == NULL) {
return E_UNEXPECTED /*E_OUTOFMEMORY*/;
}

hr = pControl->QueryInterface(riid, ppvObj);

if (SUCCEEDED(hr)) {
pControl->Release();
}
else {
delete pControl;
}
return hr;
}

HRESULT __stdcall CoverflowClassFactory::LockServer(BOOL fLock)
{
if (fLock)

g_srvLockCount++;

else

g_srvLockCount--;

return S_OK;
}
29 changes: 29 additions & 0 deletions COM_ClassFactory.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#pragma once

#include "COM_Guid.h"

#ifndef _COVERFLOWCLASSFACTORY
#define _COVERFLOWCLASSFACTORY

#include <windows.h>

inline LONG g_lLocks = 0;

inline void LockModule(BOOL bLock);

class CoverflowClassFactory : public IClassFactory {
public:
STDMETHODIMP QueryInterface(REFIID riid, LPVOID* ppAny);
STDMETHODIMP_(ULONG) AddRef();
STDMETHODIMP_(ULONG) Release();

STDMETHODIMP CreateInstance(IUnknown* pUnkOuter, REFIID riid, void** ppvObject);
STDMETHODIMP LockServer(BOOL fLock);

CoverflowClassFactory();
virtual ~CoverflowClassFactory();

private:
ULONG m_refCount;
};
#endif
39 changes: 39 additions & 0 deletions COM_GetClassObject.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#pragma once
#include "COM_Guid.h"

#include <xkeycheck.h>
#include "COM_ClassFactory.h"

STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppAny)
{
static CoverflowClassFactory pFactory;
HRESULT hr;

*ppAny = NULL;

if (IsEqualCLSID(rclsid, CLSID_Coverflow_Control)) {

hr = pFactory.QueryInterface(riid, ppAny);

}
else {
FB2K_console_formatter() << "ICoverflowControl COM not available";
hr = CLASS_E_CLASSNOTAVAILABLE;
}

if (FAILED(hr)) {
FB2K_console_formatter() << "ICoverflowControl COM factory failed";
hr = CLASS_E_CLASSNOTAVAILABLE;
}

return hr;
}

STDAPI DllCanUnloadNow()
{
if (g_srvLockCount == 0 && g_objCount == 0) {
return S_OK;
} else {
return S_FALSE;
}
}
8 changes: 8 additions & 0 deletions COM_Guid.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#pragma once
#include <initguid.h>

// {2543AA7C-5E5A-4F20-AC6D-04D6683ACDDA}
DEFINE_GUID(CLSID_Coverflow_Control, 0x2543aa7c, 0x5e5a, 0x4f20, 0xac, 0x6d, 0x4, 0xd6, 0x68, 0x3a, 0xcd, 0xda);
// {2543AA7E-5E5A-4F20-AC6D-04D6683ACDDA}
DEFINE_GUID(CLSID_Coverflow_Library, 0x2543aa7e, 0x5e5a, 0x4f20, 0xac, 0x6d, 0x4, 0xd6, 0x68, 0x3a, 0xcd, 0xda);

Loading