| 1 | /* |
|---|
| 2 | * SapphireApplianceController.h |
|---|
| 3 | * Sapphire |
|---|
| 4 | * |
|---|
| 5 | * Created by pnmerrill on Jun. 20, 2007. |
|---|
| 6 | * Copyright 2007 Sapphire Development Team and/or www.nanopi.net |
|---|
| 7 | * All rights reserved. |
|---|
| 8 | * |
|---|
| 9 | * This program is free software; you can redistribute it and/or modify it under the terms of the GNU |
|---|
| 10 | * General Public License as published by the Free Software Foundation; either version 3 of the License, |
|---|
| 11 | * or (at your option) any later version. |
|---|
| 12 | * |
|---|
| 13 | * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even |
|---|
| 14 | * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|---|
| 15 | * Public License for more details. |
|---|
| 16 | * |
|---|
| 17 | * You should have received a copy of the GNU General Public License along with this program; if not, |
|---|
| 18 | * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
|---|
| 19 | */ |
|---|
| 20 | |
|---|
| 21 | #import <SapphireCompatClasses/SapphireMediaMenuController.h> |
|---|
| 22 | |
|---|
| 23 | @class SapphireSettings, SapphireTheme, SapphireLeopardOnly, SapphireImporterDataMenu, SapphireBrowser; |
|---|
| 24 | |
|---|
| 25 | /*! |
|---|
| 26 | * @brief The Main Controller |
|---|
| 27 | * |
|---|
| 28 | * This class Is the main controller. It uses SapphireMediaMenuController to create its main menu. |
|---|
| 29 | */ |
|---|
| 30 | @interface SapphireApplianceController : SapphireMediaMenuController |
|---|
| 31 | { |
|---|
| 32 | NSManagedObjectContext *moc; /*!< @brief The context of metadata*/ |
|---|
| 33 | NSMutableArray *names; /*!< @brief The menu names, in order*/ |
|---|
| 34 | NSMutableArray *controllers; /*!< @brief The controllers to launch from menu, in order*/ |
|---|
| 35 | NSArray *masterNames; /*!< @brief The list of all names, including hidden*/ |
|---|
| 36 | NSArray *masterControllers; /*!< @brief The list of all controllers, including hidden*/ |
|---|
| 37 | SapphireSettings *settings; /*!< @brief The settings*/ |
|---|
| 38 | SapphireLeopardOnly *leoOnly; /*!< @brief Leopard only stuff*/ |
|---|
| 39 | BOOL mountsOnly; /*!< @brief YES if only display mounts*/ |
|---|
| 40 | } |
|---|
| 41 | |
|---|
| 42 | /*! |
|---|
| 43 | * @brief Get the current predicate used |
|---|
| 44 | * |
|---|
| 45 | * @return The current predicate |
|---|
| 46 | */ |
|---|
| 47 | + (NSPredicate *)predicate; |
|---|
| 48 | |
|---|
| 49 | /*! |
|---|
| 50 | * @brief Change to the next predicate |
|---|
| 51 | * |
|---|
| 52 | * @return The next predicate |
|---|
| 53 | */ |
|---|
| 54 | + (NSPredicate *)nextPredicate; |
|---|
| 55 | |
|---|
| 56 | /*! |
|---|
| 57 | * @brief Get the unwatched predicate |
|---|
| 58 | * |
|---|
| 59 | * @return The unwatched predicate |
|---|
| 60 | */ |
|---|
| 61 | + (NSPredicate *)unwatchedPredicate; |
|---|
| 62 | |
|---|
| 63 | /*! |
|---|
| 64 | * @brief Get the favorite predicate |
|---|
| 65 | * |
|---|
| 66 | * @return The favorite predicate |
|---|
| 67 | */ |
|---|
| 68 | + (NSPredicate *)favoritePredicate; |
|---|
| 69 | |
|---|
| 70 | /*! |
|---|
| 71 | * @brief Get the left icon for a given predicate |
|---|
| 72 | * |
|---|
| 73 | * @return The left icon |
|---|
| 74 | */ |
|---|
| 75 | + (BRTexture *)gemForPredicate:(NSPredicate *)predicate; |
|---|
| 76 | |
|---|
| 77 | /*! |
|---|
| 78 | * @brief Log an exception to the console |
|---|
| 79 | * |
|---|
| 80 | * This function attempts to log an exception to the console. If the exception has a nice backtrace, it logs that along with the location of the Sapphire bundle in memory. If it does not, it logs the entire backtrace is hex addresses along with the location of all memory objects in the trace. The idea being that with this information, in either format, the developer can use atos to get exact line numbers. |
|---|
| 81 | * |
|---|
| 82 | * @param e The exception to log |
|---|
| 83 | */ |
|---|
| 84 | + (void)logException:(NSException *)e; |
|---|
| 85 | |
|---|
| 86 | /*! |
|---|
| 87 | * @brief Sets to display mounts only |
|---|
| 88 | * |
|---|
| 89 | * Sets this object to only display current mounts instead of the full menu |
|---|
| 90 | */ |
|---|
| 91 | - (void)setToMountsOnly; |
|---|
| 92 | |
|---|
| 93 | /*! |
|---|
| 94 | * @brief Get the tv browser |
|---|
| 95 | * |
|---|
| 96 | * Gets the browser for TV Shows |
|---|
| 97 | * |
|---|
| 98 | * @return The browser |
|---|
| 99 | */ |
|---|
| 100 | - (SapphireBrowser *)tvBrowser; |
|---|
| 101 | |
|---|
| 102 | /*! |
|---|
| 103 | * @brief Get the movie browser |
|---|
| 104 | * |
|---|
| 105 | * Gets the browser for movies |
|---|
| 106 | * |
|---|
| 107 | * @return The browser |
|---|
| 108 | */ |
|---|
| 109 | - (SapphireBrowser *)movieBrowser; |
|---|
| 110 | |
|---|
| 111 | /*! |
|---|
| 112 | * @brief Get the importer |
|---|
| 113 | * |
|---|
| 114 | * Gets the importer of all data |
|---|
| 115 | * |
|---|
| 116 | * @return The importer |
|---|
| 117 | */ |
|---|
| 118 | - (SapphireImporterDataMenu *)allImporter; |
|---|
| 119 | |
|---|
| 120 | /*! |
|---|
| 121 | * @brief Get the settings |
|---|
| 122 | * |
|---|
| 123 | * Gets the settings controller |
|---|
| 124 | * |
|---|
| 125 | * @return The settings controller |
|---|
| 126 | */ |
|---|
| 127 | - (SapphireSettings *)settings; |
|---|
| 128 | @end |
|---|