Current File : //home/mdkeenpw/www/wp-content/plugins/trx_addons/addons/ai-helper/classes/ListsMusicGeneration.php |
<?php
namespace TrxAddons\AiHelper;
if ( ! trait_exists( 'ListsMusicGeneration' ) ) {
/**
* Return arrays with the lists used for the music generation
*/
trait ListsMusicGeneration {
/**
* Return a list of music generation APIs
*
* @access public
* @static
*
* @return array The list of music generation APIs
*/
static function get_list_ai_music_apis() {
return apply_filters( 'trx_addons_filter_ai_helper_list_ai_music_apis', array(
'modelslab' => esc_html__( 'ModelsLab', 'trx_addons' ),
) );
}
/**
* Return a default list of music APIs with the enabled status
*
* @access public
* @static
*
* @return array The default list of music APIs
*/
static function get_list_ai_music_apis_enabled() {
$api_list = self::get_list_ai_music_apis();
if ( ! is_array( $api_list ) ) {
$api_list = array();
}
foreach( $api_list as $api => $title ) {
$api_list[ $api ] = 1;
}
return $api_list;
}
/**
* Return a list of music models for AI
*
* @access public
* @static
*
* @return array The list of music models
*/
static function get_list_ai_music_models( $groups = true ) {
$api_order = trx_addons_get_option( 'ai_helper_sc_mgenerator_api_order', self::get_list_ai_music_apis_enabled() );
$models = array();
foreach( $api_order as $api => $enable ) {
// ModelsLab
if ( $api == 'modelslab' && (int)$enable > 0 ) {
$ml_models = self::get_modelslab_music_models();
if ( is_array( $ml_models ) && count( $ml_models ) > 0 ) {
if ( $groups ) {
$models[ 'modelslab/-' ] = '\\-' . __( 'ModelsLab models', 'trx_addons' );
}
foreach ( $ml_models as $k => $v ) {
$models[ 'modelslab/' . $k ] = $v['title'];
}
}
}
}
return apply_filters( 'trx_addons_filter_ai_helper_list_ai_music_models', $models );
}
/**
* Return a list of music generator layouts
*
* @access public
* @static
*
* @return array The list of music generator layouts
*/
static function get_list_sc_music_generator_layouts() {
return apply_filters( 'trx_addons_filter_ai_helper_list_sc_music_generator_layouts', array(
'default' => esc_html__( 'Simple', 'trx_addons' ),
'extended' => esc_html__( 'Extended', 'trx_addons' ),
) );
}
/* MODELSLAB API
--------------------------------------------------------------------------------------- */
/**
* Return a default list of music models for ModelsLab
*
* @access public
* @static
*
* @return array The list of music models for ModelsLab
*/
static function get_default_modelslab_music_models() {
return apply_filters( 'trx_addons_filter_ai_helper_default_modelslab_music_models', array(
'music-generator' => array(
'title' => esc_html__( 'Music Generator', 'trx_addons' )
),
) );
}
/**
* Return a list of music models for ModelsLab
*
* @access public
* @static
*
* @return array The list of music models for ModelsLab
*/
static function get_modelslab_music_models() {
$models = array();
$token = trx_addons_get_option( 'ai_helper_token_modelslab', '' );
if ( ! empty( $token ) ) {
$models = trx_addons_get_option( 'ai_helper_music_models_modelslab', false );
if ( empty( $models ) || ! is_array( $models ) || empty( $models[0]['id'] ) ) {
$models = self::get_default_modelslab_music_models();
} else {
$new_models = array();
foreach ( $models as $k => $v ) {
if ( ! empty( $v['id'] ) ) {
$new_models[ $v['id'] ] = $v;
unset( $new_models[ $v['id'] ]['id'] );
}
}
$models = $new_models;
}
}
return $models;
}
}
}