- Fix Kit_Update_Reply on async sample load by using DRG_LV2_Base.Kit_Updated_Flag.
This commit is contained in:
parent
0082554711
commit
e1b8414c51
32
lv2_plugin.c
32
lv2_plugin.c
@ -240,18 +240,9 @@ DRT_Status DR_LV2_CurKit_Sample_Load()
|
||||
|
||||
status = DR_LV2_Kit_Sample_Load( Kit_Ptr);
|
||||
|
||||
LV2_Atom_Forge_Frame obj_frame;
|
||||
|
||||
DRG_LV2_Base.Kit_Updated_Flag = true;
|
||||
|
||||
DR_LOG_INFO_0( "Sample loaded!");
|
||||
|
||||
lv2_atom_forge_frame_time( &( DRG_LV2_Base.Forge), 0);
|
||||
lv2_atom_forge_object( &( DRG_LV2_Base.Forge), &obj_frame, 1, DRG_LV2_Base.URIS.UI_Msg);
|
||||
lv2_atom_forge_property_head( &( DRG_LV2_Base.Forge), DRG_LV2_Base.URIS.Kit_Update_Reply, 0);
|
||||
lv2_atom_forge_long( &( DRG_LV2_Base.Forge), DRG_LV2_Base.Kit_Id); // Cur kit Id
|
||||
lv2_atom_forge_pop( &( DRG_LV2_Base.Forge), &obj_frame);
|
||||
|
||||
DR_LOG_INFO_2( "Kit Update Reply: Kit_Id: (%ld) Kit_Name: [%s]", DRG_LV2_Base.Kit_Id, DRG_LV2_Base.Kit_Ptr->Name);
|
||||
}
|
||||
}
|
||||
|
||||
@ -653,14 +644,15 @@ static LV2_Handle DR_LV2_Instantiate( const LV2_Descriptor *LV2_Descripto
|
||||
DRG_LV2_Base.Logger.log = NULL;
|
||||
|
||||
DRG_LV2_Base.Kit_Ptr = NULL;
|
||||
DRG_LV2_Base.Kit_Id = DRD_ID_UNKNOWN;
|
||||
DRG_LV2_Base.Kit_Id_New = DRD_ID_UNKNOWN;
|
||||
DRG_LV2_Base.Bank_Id_LSB = -1;
|
||||
DRG_LV2_Base.Bank_Id_LSB = -1;
|
||||
DRG_LV2_Base.Program_Id = -1;
|
||||
DRG_LV2_Base.Bank_Id_LSB_New = 0;
|
||||
DRG_LV2_Base.Bank_Id_MSB_New = 0;
|
||||
DRG_LV2_Base.Program_Id_New = 0;
|
||||
DRG_LV2_Base.Kit_Id = DRD_ID_UNKNOWN;
|
||||
DRG_LV2_Base.Kit_Id_New = DRD_ID_UNKNOWN;
|
||||
DRG_LV2_Base.Kit_Updated_Flag = false;
|
||||
DRG_LV2_Base.Current_Path = NULL;
|
||||
DRG_LV2_Base.CurReq = -1;
|
||||
|
||||
@ -1336,6 +1328,22 @@ static void DR_LV2_Run( LV2_Handle Instance_Ptr, uint32_t N_Samples)
|
||||
pthread_cond_signal( &( lv2_base_ptr->Load_Cond));
|
||||
}
|
||||
*/
|
||||
if( lv2_base_ptr->Kit_Updated_Flag)
|
||||
{
|
||||
lv2_base_ptr->Kit_Updated_Flag = false;
|
||||
|
||||
// Send Kit_Update_Reply
|
||||
LV2_Atom_Forge_Frame obj_frame;
|
||||
|
||||
lv2_atom_forge_frame_time( &( DRG_LV2_Base.Forge), 0);
|
||||
lv2_atom_forge_object( &( DRG_LV2_Base.Forge), &obj_frame, 1, DRG_LV2_Base.URIS.UI_Msg);
|
||||
lv2_atom_forge_property_head( &( DRG_LV2_Base.Forge), DRG_LV2_Base.URIS.Kit_Update_Reply, 0);
|
||||
lv2_atom_forge_long( &( DRG_LV2_Base.Forge), DRG_LV2_Base.Kit_Id); // Cur kit Id
|
||||
lv2_atom_forge_pop( &( DRG_LV2_Base.Forge), &obj_frame);
|
||||
|
||||
DR_LOG_INFO_2( "Kit Update Reply: Kit_Id: (%ld) Kit_Name: [%s]", DRG_LV2_Base.Kit_Id, DRG_LV2_Base.Kit_Ptr->Name);
|
||||
}
|
||||
|
||||
/*
|
||||
if( current_kit_changed)
|
||||
{
|
||||
|
@ -294,6 +294,7 @@ typedef struct DRT_LV2_Base
|
||||
uint8_t Bank_Id_LSB_New;
|
||||
uint8_t Bank_Id_MSB_New;
|
||||
uint8_t Program_Id_New;
|
||||
int Kit_Updated_Flag;
|
||||
char *Current_Path;
|
||||
char **Request_Buf;
|
||||
int CurReq;
|
||||
|
Loading…
Reference in New Issue
Block a user