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

gstreamer-1.22.3 and wxwidgets-3.2.1-3 support + README changes (Mageia 9 dependencies) #164

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
13 changes: 13 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,5 +1,18 @@
* Removed libindicate support
* Added Best of playlist generator
* Gstreamer-1.22 and wxwidgets-3.2 support
* Fullscreen cover view on cover panel click
* Bugfixes

2023-02-24 0.4.7

* Added to CoverEditor the option to select a cover from a file and also to download it from an url
* Enable last.fm cover download
* Updated lyric sources
* Better gstreamer integration (formats support, audio pipeline reworked)
* UI changes
* Bugfixes


2019-06-05 0.4.6

Expand Down
28 changes: 25 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,21 +45,31 @@ Its been developed in XUbuntu
### Ubuntu (pre 20.0):

```bash
sudo apt install libgdk-pixbuf2.0-dev libtag-extras-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libwxsqlite3-3.0-dev libwxbase3.0-dev
sudo apt install libgdk-pixbuf2.0-dev libtag-extras-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libwxsqlite3-3.0-dev libwxbase3.0-dev binutils
```

---

### Ubuntu 20.04

```bash
sudo apt install libgpod-dev libjsoncpp-dev libgdk-pixbuf2.0-dev libtag-extras-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libwxsqlite3-3.0-dev libwxbase3.0-dev libtag1-dev libcurl4-gnutls-dev
sudo apt install libgpod-dev libjsoncpp-dev libgdk-pixbuf2.0-dev libtag-extras-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libwxsqlite3-3.0-dev libwxbase3.0-dev libtag1-dev libcurl4-gnutls-dev binutils
```

---

### Ubuntu 22.04

```bash
sudo apt install libgpod-dev libjsoncpp-dev libgdk-pixbuf2.0-dev libtag-extras-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libwxsqlite3-3.0-dev libwxbase3.0-dev libtag1-dev libcurl4-gnutls-dev libdbus-1-dev gettext
sudo apt install libgpod-dev libjsoncpp-dev libgdk-pixbuf2.0-dev libtag-extras-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libwxsqlite3-3.0-dev libwxbase3.0-dev libtag1-dev libcurl4-gnutls-dev libdbus-1-dev gettext binutils
```

---

### Mageia 9

```
sudo urpmi lib64wx_gtk3u_wxsqlite3_3.2-devel lib64taglib-devel lib64sqlite3-devel lib64curl-devel gstreamer1.0-devtools lib64dbus-devel lib64gio2.0_0 lib64jsoncpp-devel binutils
```

---
Expand All @@ -77,10 +87,22 @@ sudo make install

### Faster build on multi-core systems

#### Old cmake versions

```bash
./build \
-j$(nproc) \
-j$(nproc)
sudo make install
```

#### New cmake versions

```bash
./build \
"" \
-j$(nproc)
sudo make install
```

---
17 changes: 9 additions & 8 deletions src/audio/FaderPlaybin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -390,7 +390,7 @@ static void gst_about_to_finish( GstElement * playbin, guFaderPlaybin::WeakPtr *
static void gst_audio_changed( GstElement * playbin, guFaderPlaybin::WeakPtr * wpp )
{
guLogDebug( "gst_audio_changed << %p", wpp );
if( wpp == NULL)
if( (wpp == NULL) || (!GST_IS_BIN(playbin)) )
{
guLogTrace( "gst_audio_changed: parent fader playbin is null" );
return;
Expand Down Expand Up @@ -514,6 +514,7 @@ guFaderPlaybin::guFaderPlaybin( guMediaCtrl * mediactrl, const wxString &uri, co
guFaderPlaybin::~guFaderPlaybin()
{
guLogDebug( wxT( "guFaderPlaybin::~guFaderPlaybin (%li) e: %i" ), m_Id, m_ErrorCode );
m_SharedPointer.reset();
if( m_RecordBin != NULL )
guGstPipelineActuator( m_RecordBin ).Disable();
//m_Player->RemovePlayBin( this );
Expand All @@ -537,20 +538,20 @@ guFaderPlaybin::~guFaderPlaybin()
guLogDebug( "guFaderPlaybin::~guFaderPlaybin wait on GST_STATE_CHANGE_ASYNC" );
gst_element_get_state( m_Playbin, NULL, NULL, GST_SECOND );
}
// guLogDebug( "mPlaybin refcount: %i", GST_OBJECT_REFCOUNT( m_Playbin ) );
GstBus * bus = gst_pipeline_get_bus( GST_PIPELINE( m_Playbin ) );
gst_bus_remove_watch( bus );
// guLogDebug( "mPlaybin bus refcount: %i", GST_OBJECT_REFCOUNT( bus ) - 1 );
gst_object_unref( bus );
gst_object_unref( GST_OBJECT( m_Playbin ) );

guGstStateToNullAndUnref( m_FaderVolume );
guGstStateToNullAndUnref( m_Volume );

guGstStateToNullAndUnref( m_Equalizer ) ;

guGstStateToNullAndUnref( m_ReplayGain );
guGstStateToNullAndUnref( m_ReplayGainLimiter );

// guLogDebug( "mPlaybin refcount: %i", GST_OBJECT_REFCOUNT( m_Playbin ) );
GstBus * bus = gst_pipeline_get_bus( GST_PIPELINE( m_Playbin ) );
gst_bus_remove_watch( bus );
// guLogDebug( "mPlaybin bus refcount: %i", GST_OBJECT_REFCOUNT( bus ) - 1 );
gst_object_unref( bus );
gst_object_unref( GST_OBJECT( m_Playbin ) );
}

if( m_FaderTimeLine )
Expand Down
6 changes: 6 additions & 0 deletions src/misc/Utils.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,12 @@ namespace Guayadeque {

#define guDEFAULT_BROWSER_USER_AGENT wxT( "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/55.0.2883.87 Chrome/55.0.2883.87 Safari/537.36" )

#if wxCHECK_VERSION(3, 2, 0)
#define guENSURE_BITMAP(x) (x.GetBitmap(x.GetDefaultSize()))
#else
#define guENSURE_BITMAP(x) (x)
#endif

class guTrackArray;
class guMediaViewer;

Expand Down
12 changes: 6 additions & 6 deletions src/ui/aui/AuiNotebook.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -293,7 +293,7 @@ void guAuiTabArt::DrawTab(wxDC &dc, wxWindow * wnd, const wxAuiNotebookPage &pag
int close_button_width = 0;
if( close_button_state != wxAUI_BUTTON_STATE_HIDDEN )
{
close_button_width = m_activeCloseBmp.GetWidth();
close_button_width = guENSURE_BITMAP(m_activeCloseBmp).GetWidth();
}


Expand All @@ -303,12 +303,12 @@ void guAuiTabArt::DrawTab(wxDC &dc, wxWindow * wnd, const wxAuiNotebookPage &pag
bitmap_offset = tab_x + 8;

// draw bitmap
dc.DrawBitmap(page.bitmap,
dc.DrawBitmap(guENSURE_BITMAP(page.bitmap),
bitmap_offset,
drawn_tab_yoff + (drawn_tab_height/2) - (page.bitmap.GetHeight()/2),
drawn_tab_yoff + (drawn_tab_height/2) - (guENSURE_BITMAP(page.bitmap).GetHeight()/2),
true);

text_offset = bitmap_offset + page.bitmap.GetWidth();
text_offset = bitmap_offset + guENSURE_BITMAP(page.bitmap).GetWidth();
text_offset += 3; // bitmap padding
}
else
Expand All @@ -331,12 +331,12 @@ void guAuiTabArt::DrawTab(wxDC &dc, wxWindow * wnd, const wxAuiNotebookPage &pag
// draw close button if necessary
if (close_button_state != wxAUI_BUTTON_STATE_HIDDEN)
{
wxBitmap bmp = m_disabledCloseBmp;
wxBitmap bmp = guENSURE_BITMAP(m_disabledCloseBmp);

if (close_button_state == wxAUI_BUTTON_STATE_HOVER ||
close_button_state == wxAUI_BUTTON_STATE_PRESSED)
{
bmp = m_activeCloseBmp;
bmp = guENSURE_BITMAP(m_activeCloseBmp);
}

wxRect rect(tab_x + tab_width - close_button_width - 1,
Expand Down
28 changes: 25 additions & 3 deletions src/ui/cover/CoverPanel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ guCoverPanel::guCoverPanel( wxWindow * parent, guPlayerPanel * playerpanel ) :
Bind( wxEVT_SIZE, &guCoverPanel::OnSize, this );
Bind( wxEVT_PAINT, &guCoverPanel::OnPaint, this );
Bind( wxEVT_TIMER, &guCoverPanel::OnResizeTimer, this, guCOVERPANEL_RESIZE_TIMER_ID );
Bind( wxEVT_LEFT_UP, &guCoverPanel::OnClick, this);
Bind( wxEVT_RIGHT_UP, &guCoverPanel::OnClick, this);

wxCommandEvent Event;
OnUpdatedTrack( Event );
Expand All @@ -51,6 +53,8 @@ guCoverPanel::~guCoverPanel()
Unbind( wxEVT_SIZE, &guCoverPanel::OnSize, this );
Unbind( wxEVT_PAINT, &guCoverPanel::OnPaint, this );
Unbind( wxEVT_TIMER, &guCoverPanel::OnResizeTimer, this, guCOVERPANEL_RESIZE_TIMER_ID );
Unbind( wxEVT_LEFT_UP, &guCoverPanel::OnClick, this);
Unbind( wxEVT_RIGHT_UP, &guCoverPanel::OnClick, this);
}

// -------------------------------------------------------------------------------- //
Expand All @@ -73,17 +77,32 @@ void guCoverPanel::OnResizeTimer( wxTimerEvent &event )
UpdateImage();
}

// -------------------------------------------------------------------------------- //
void guCoverPanel::OnClick( wxMouseEvent &event )
{
if ( m_CoverWindow == NULL ) {
m_CoverWindow = new guCoverWindow( this );
}
else
{
m_CoverWindow->Raise();
}

if( m_CoverWindow )
{
m_CoverWindow->SetBitmap( m_CoverType, m_CoverPath );
m_CoverWindow->ShowFullScreen( true );
}
}

// -------------------------------------------------------------------------------- //
void guCoverPanel::OnSize( wxSizeEvent &event )
{
wxSize Size = event.GetSize();
int MinSize = wxMin( Size.GetWidth(), Size.GetHeight() );
//guLogMessage( wxT( "NewSize: %u" ), MinSize );
if( MinSize != m_LastSize )
{
m_LastSize = MinSize;
//guLogMessage( wxT( "Updating Size: %u" ), MinSize );
// UpdateImage();
if( m_ResizeTimer.IsRunning() )
{
m_ResizeTimer.Stop();
Expand Down Expand Up @@ -149,6 +168,9 @@ void guCoverPanel::OnUpdatedTrack( wxCommandEvent &event )
{
m_CoverType = CurrentTrack->m_CoverType;
m_CoverPath = CurrentTrack->m_CoverPath;
if ( m_CoverWindow != NULL ) {
m_CoverWindow->SetBitmap( m_CoverType, m_CoverPath );
}
guLogMessage( wxT( "Changed image to %i '%s'" ), m_CoverType, m_CoverPath.c_str() );
}
else
Expand Down
6 changes: 5 additions & 1 deletion src/ui/cover/CoverPanel.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
#ifndef __COVERPANEL_H__
#define __COVERPANEL_H__

#include "CoverWindow.h"
#include "PlayerPanel.h"

#include <wx/bitmap.h>
Expand All @@ -45,21 +46,24 @@ class guCoverPanel : public wxPanel
guPlayerPanel * m_PlayerPanel;
int m_LastSize;
wxBitmap m_CoverImage;
int m_CoverType;
guSongCoverType m_CoverType;
wxString m_CoverPath;
wxMutex m_CoverImageMutex;
wxTimer m_ResizeTimer;

virtual void OnSize( wxSizeEvent &event );
virtual void OnPaint( wxPaintEvent &event );
virtual void OnResizeTimer( wxTimerEvent &event );
virtual void OnClick( wxMouseEvent &event );

void UpdateImage( void );

public :
guCoverPanel( wxWindow * parent, guPlayerPanel * playerpanel );
~guCoverPanel();

guCoverWindow * m_CoverWindow = NULL;

void OnUpdatedTrack( wxCommandEvent &event );

};
Expand Down