* Implemented getting/setting the audio gain of media files.
* Renamed "remove_ref_for" command structures and constants to "invalidate_item". git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34565 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -139,8 +139,10 @@ enum {
|
||||
SERVER_GET_MEDIA_FILE_ITEMS,
|
||||
SERVER_GET_REF_FOR,
|
||||
SERVER_SET_REF_FOR,
|
||||
SERVER_REMOVE_REF_FOR,
|
||||
SERVER_INVALIDATE_MEDIA_ITEM,
|
||||
SERVER_REMOVE_MEDIA_ITEM,
|
||||
SERVER_GET_ITEM_AUDIO_GAIN,
|
||||
SERVER_SET_ITEM_AUDIO_GAIN,
|
||||
SERVER_GET_FORMAT_FOR_DESCRIPTION,
|
||||
SERVER_GET_DESCRIPTION_FOR_FORMAT,
|
||||
SERVER_GET_READERS,
|
||||
@@ -800,12 +802,12 @@ struct server_set_ref_for_request : request_data {
|
||||
struct server_set_ref_for_reply : reply_data {
|
||||
};
|
||||
|
||||
struct server_remove_ref_for_request : request_data {
|
||||
struct server_invalidate_item_request : request_data {
|
||||
char type[B_MEDIA_NAME_LENGTH];
|
||||
char item[B_MEDIA_NAME_LENGTH];
|
||||
};
|
||||
|
||||
struct server_remove_ref_for_reply : reply_data {
|
||||
struct server_invalidate_item_reply : reply_data {
|
||||
};
|
||||
|
||||
struct server_remove_media_item_request : request_data {
|
||||
@@ -816,6 +818,24 @@ struct server_remove_media_item_request : request_data {
|
||||
struct server_remove_media_item_reply : reply_data {
|
||||
};
|
||||
|
||||
struct server_get_item_audio_gain_request : request_data {
|
||||
char type[B_MEDIA_NAME_LENGTH];
|
||||
char item[B_MEDIA_NAME_LENGTH];
|
||||
};
|
||||
|
||||
struct server_get_item_audio_gain_reply : reply_data {
|
||||
float gain;
|
||||
};
|
||||
|
||||
struct server_set_item_audio_gain_request : request_data {
|
||||
char type[B_MEDIA_NAME_LENGTH];
|
||||
char item[B_MEDIA_NAME_LENGTH];
|
||||
float gain;
|
||||
};
|
||||
|
||||
struct server_set_item_audio_gain_reply : reply_data {
|
||||
};
|
||||
|
||||
struct server_get_decoder_for_format_request : request_data {
|
||||
media_format format;
|
||||
};
|
||||
|
||||
@@ -162,11 +162,26 @@ BMediaFiles::GetRefFor(const char* type, const char* item, entry_ref* _ref)
|
||||
|
||||
|
||||
status_t
|
||||
BMediaFiles::GetAudioGainFor(const char* type, const char* item,
|
||||
float* _audioGain)
|
||||
BMediaFiles::GetAudioGainFor(const char* type, const char* item, float* _gain)
|
||||
{
|
||||
UNIMPLEMENTED();
|
||||
*_audioGain = 1.0f;
|
||||
CALLED();
|
||||
|
||||
if (type == NULL || item == NULL || _gain == NULL)
|
||||
return B_BAD_VALUE;
|
||||
|
||||
server_get_item_audio_gain_request request;
|
||||
strncpy(request.type, type, B_MEDIA_NAME_LENGTH);
|
||||
strncpy(request.item, item, B_MEDIA_NAME_LENGTH);
|
||||
|
||||
server_get_item_audio_gain_reply reply;
|
||||
status_t status = QueryServer(SERVER_GET_ITEM_AUDIO_GAIN, &request,
|
||||
sizeof(request), &reply, sizeof(reply));
|
||||
if (status != B_OK) {
|
||||
ERROR("BMediaFiles::GetRefFor: failed: %s\n", strerror(status));
|
||||
return status;
|
||||
}
|
||||
|
||||
*_gain = reply.gain;
|
||||
return B_OK;
|
||||
}
|
||||
|
||||
@@ -195,10 +210,23 @@ BMediaFiles::SetRefFor(const char* type, const char* item,
|
||||
|
||||
|
||||
status_t
|
||||
BMediaFiles::SetAudioGainFor(const char* type, const char* item,
|
||||
float audioGain)
|
||||
BMediaFiles::SetAudioGainFor(const char* type, const char* item, float gain)
|
||||
{
|
||||
UNIMPLEMENTED();
|
||||
CALLED();
|
||||
|
||||
server_set_item_audio_gain_request request;
|
||||
strncpy(request.type, type, B_MEDIA_NAME_LENGTH);
|
||||
strncpy(request.item, item, B_MEDIA_NAME_LENGTH);
|
||||
request.gain = gain;
|
||||
|
||||
server_set_item_audio_gain_reply reply;
|
||||
status_t status = QueryServer(SERVER_SET_ITEM_AUDIO_GAIN, &request,
|
||||
sizeof(request), &reply, sizeof(reply));
|
||||
if (status != B_OK) {
|
||||
ERROR("BMediaFiles::SetAudioGainFor: failed: %s\n", strerror(status));
|
||||
return status;
|
||||
}
|
||||
|
||||
return B_OK;
|
||||
}
|
||||
|
||||
@@ -209,12 +237,12 @@ BMediaFiles::RemoveRefFor(const char* type, const char* item,
|
||||
{
|
||||
CALLED();
|
||||
|
||||
server_remove_ref_for_request request;
|
||||
server_invalidate_item_request request;
|
||||
strncpy(request.type, type, B_MEDIA_NAME_LENGTH);
|
||||
strncpy(request.item, item, B_MEDIA_NAME_LENGTH);
|
||||
|
||||
server_remove_ref_for_reply reply;
|
||||
status_t status = QueryServer(SERVER_REMOVE_REF_FOR, &request,
|
||||
server_invalidate_item_reply reply;
|
||||
status_t status = QueryServer(SERVER_INVALIDATE_MEDIA_ITEM, &request,
|
||||
sizeof(request), &reply, sizeof(reply));
|
||||
if (status != B_OK) {
|
||||
ERROR("BMediaFiles::RemoveRefFor: failed: %s\n", strerror(status));
|
||||
|
||||
@@ -804,11 +804,11 @@ ServerApp::_HandleMessage(int32 code, void* data, size_t size)
|
||||
break;
|
||||
}
|
||||
|
||||
case SERVER_REMOVE_REF_FOR:
|
||||
case SERVER_INVALIDATE_MEDIA_ITEM:
|
||||
{
|
||||
const server_remove_ref_for_request* request
|
||||
= reinterpret_cast<const server_remove_ref_for_request*>(data);
|
||||
server_remove_ref_for_reply reply;
|
||||
const server_invalidate_item_request* request
|
||||
= reinterpret_cast<const server_invalidate_item_request*>(data);
|
||||
server_invalidate_item_reply reply;
|
||||
|
||||
status_t status = gMediaFilesManager->InvalidateItem(
|
||||
request->type, request->item);
|
||||
@@ -829,6 +829,32 @@ ServerApp::_HandleMessage(int32 code, void* data, size_t size)
|
||||
break;
|
||||
}
|
||||
|
||||
case SERVER_GET_ITEM_AUDIO_GAIN:
|
||||
{
|
||||
const server_get_item_audio_gain_request& request
|
||||
= *reinterpret_cast<const server_get_item_audio_gain_request*>(
|
||||
data);
|
||||
server_get_item_audio_gain_reply reply;
|
||||
|
||||
status_t status = gMediaFilesManager->GetAudioGainFor(request.type,
|
||||
request.item, &reply.gain);
|
||||
request.SendReply(status, &reply, sizeof(reply));
|
||||
break;
|
||||
}
|
||||
|
||||
case SERVER_SET_ITEM_AUDIO_GAIN:
|
||||
{
|
||||
const server_set_item_audio_gain_request& request
|
||||
= *reinterpret_cast<const server_set_item_audio_gain_request*>(
|
||||
data);
|
||||
server_set_ref_for_reply reply;
|
||||
|
||||
status_t status = gMediaFilesManager->SetAudioGainFor(request.type,
|
||||
request.item, request.gain);
|
||||
request.SendReply(status, &reply, sizeof(reply));
|
||||
break;
|
||||
}
|
||||
|
||||
case SERVER_GET_READERS:
|
||||
{
|
||||
const server_get_readers_request *request
|
||||
|
||||
Reference in New Issue
Block a user