Opened 18 years ago
Closed 18 years ago
#522 closed defect (fixed)
Newer DirectFB and DFBCardCapabilities
Reported by: | kstuard (comcast.net) | Owned by: | danielk |
---|---|---|---|
Priority: | minor | Milestone: | unknown |
Component: | mythtv | Version: | head |
Severity: | medium | Keywords: | DFBCardCapabilities GetCardCapabilities |
Cc: | Ticket locked: | no |
Description
Problem:
Trying to compile the latest mythtv. Following error encountered:
videoout_directfb.cpp:195: error: ‘DFBCardCapabilities’ does not name a type
Resolution:
Search of Google returned the following page that was of help to me: http://mail.directfb.org/pipermail/directfb-users/2005-April/000179.html
It seems that DFBGraphicsDeviceDescription
has replaced DFBCardCapabilities
and GetDeviceDescription
has replaced GetCardCapabilities
.
The only file I changed was Files: source:mythtv/libs/libmythtv/videoout_directfb.cpp
Line 195 contains the reference to DFBCardCapabilities
.
Line 340 contains the reference to GetCardCapabilities
.
Once these changes were made, myth compiled without any errors.
Additional Details:
Compiling with qt-embedded-free-3.3.5
, DirectFB-0.9.23
, and linux-fusion-1.8
.
I would submit a diff of this myself, but that would break myth with earlier versions of DirectFB. I do not know which versions the change is in so do not know which #IFDEF
and what-not to make the change for all versions.
I will be monitoring this ticket for any additional questions or information you might need.
Change History (4)
comment:1 Changed 18 years ago by
comment:2 Changed 18 years ago by
Owner: | changed from Isaac Richards to danielk |
---|
I'll have a look at this.
comment:3 Changed 18 years ago by
The API changed in 0.9.23, and it is incompatible with previous versions. The only way to support both is conditional code, testing the DirectFB version.
#if (DIRECTFB_MAJOR_VERSION = 0) && (DIRECTFB_MINOR_VERSION <= 9) && (DIRECTFB_MICRO_VERSION <= 22) DFBCardCapabilities cardCapabilities; #else DFBGraphicsDeviceDescription cardDescription; #endif
The corresponding interface function has changed too:
- GetCardCapabilities(data->dfb, &(data->cardCapabilities)), false); + GetDeviceDescription(data->dfb, &(data->cardDescription)), false);
Michael
I downloaded one of the example programs (
DFBSee-0.7.4
) to see what they do with the problem of different functions in different versions. Turns out that it wasn't able to handle the change, either. I had to do the change in that program before amake
would work without errors.